diff --git a/Vagrant/Vagrantfile b/Vagrant/Vagrantfile index 6d0f563..8b0c195 100644 --- a/Vagrant/Vagrantfile +++ b/Vagrant/Vagrantfile @@ -265,4 +265,66 @@ EOF SHELL end + config.vm.define "malcolm", autostart: false do |cfg| + cfg.vm.box = "ubuntu/bionic64" + cfg.vm.hostname = "malcolm" + cfg.vm.network :private_network, ip: "192.168.38.11", gateway: "192.168.38.1", dns: "8.8.8.8" + cfg.vm.network :private_network, ip: "192.168.39.11", gateway: "192.168.39.1", dns: "8.8.8.8" + + cfg.vm.provider "virtualbox" do |vb| + vb.name = "malcolm" + vb.memory = "10240" + vb.gui = false + vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"] + end + + cfg.vm.provision "shell", inline: <<-SHELL + export DEBIAN_FRONTEND=noninteractive + iptables -F + apt update + apt install -y screen + + echo "# the maximum number of open file handles" > /etc/security/limits.d/limits.conf + echo "* soft nofile 65535" > /etc/security/limits.d/limits.conf + echo "* hard nofile 65535" > /etc/security/limits.d/limits.conf + echo "# do not limit the size of memory that can be locked" > /etc/security/limits.d/limits.conf + echo "* soft memlock unlimited" > /etc/security/limits.d/limits.conf + echo "* hard memlock unlimited" > /etc/security/limits.d/limits.conf + + echo fs.file-max=2097152 >> /etc/sysctl.conf + echo fs.inotify.max_user_watches=131072 >> /etc/sysctl.conf + echo fs.inotify.max_queued_events=131072 >> /etc/sysctl.conf + echo fs.inotify.max_user_instances=512 >> /etc/sysctl.conf + echo vm.max_map_count=262144 >> /etc/sysctl.conf + echo vm.swappiness=1 >> /etc/sysctl.conf + echo net.core.somaxconn=65535 >> /etc/sysctl.conf + echo vm.dirty_background_ratio=40 >> /etc/sysctl.conf + echo vm.dirty_ratio=80 >> /etc/sysctl.conf + echo sysctl -w vm.max_map_count=262144 >> /etc/sysctl.conf + SHELL + cfg.vm.provision "reload" + cfg.vm.provision "shell", inline: <<-SHELL + echo "### Copy Malcolm" + cp -r /vagrant/resources/malcolm /opt + chown -R vagrant /opt/malcolm + chgrp -R vagrant /opt/malcolm + cd /opt/malcolm + echo "### Install Malcolm" + su -l vagrant -c "cd /opt/malcolm ; sudo -u vagrant scripts/install.py --defaults --restart-malcolm" + #echo "### Configure Malcolm" + #su -l vagrant -c "cd /opt/malcolm ; scripts/install.py --defaults --restart-malcolm --configure" + SHELL + cfg.vm.provision "reload" + cfg.vm.provision "shell", inline: <<-SHELL + cd /opt/malcolm + echo "### Download Malcolm Containers" + sudo -u vagrant docker-compose pull -q + echo "### Start Malcolm" + ifconfig enp0s8 promisc + sed -i "s/PCAP_ENABLE_NETSNIFF.*'/PCAP_ENABLE_NETSNIFF : \'true\'/" docker-compose.yml· + sed -i "s/PCAP_IFACE.*'/PCAP_IFACE : \'enp0s8\'/" /opt/malcolm/docker-compose.yml | grep PCAP + sed -i "s/PCAP_ROTATE_MINUTES.*/PCAP_ROTATE_MINUTES : 1/" docker-compose.yml· + screen -dm bash -c "sudo -u vagrant scripts/start" + SHELL + end end diff --git a/Vagrant/resources/malcolm/.dockerignore b/Vagrant/resources/malcolm/.dockerignore new file mode 100644 index 0000000..2790c07 --- /dev/null +++ b/Vagrant/resources/malcolm/.dockerignore @@ -0,0 +1,24 @@ +**/*-build.log +**/*.crt +**/*.iso +**/*.key +**/*.pem +**/*.keystore +**/.git* +**/__pycache__ +**/auth.env +**/.ldap_config_defaults +**/htpasswd +**/malcolm_*images.tar.gz +docker-compose*yml +Dockerfiles +elasticsearch +elasticsearch-backup +malcolm-iso +sensor-iso +moloch-logs +moloch-raw +nginx/nginx_ldap.conf +pcap +scripts +zeek-logs diff --git a/Vagrant/resources/malcolm/.gitignore b/Vagrant/resources/malcolm/.gitignore new file mode 100644 index 0000000..f629b0f --- /dev/null +++ b/Vagrant/resources/malcolm/.gitignore @@ -0,0 +1,20 @@ +# moloch +/moloch/etc/GeoLite2-* +/moloch/etc/oui.txt* +/moloch/etc/ipv4-address-space.csv* +/README.css + +# auth-related +/.ldap_config_defaults + +# development +.vagrant +malcolm_*images.tar.gz +*.iso +*-build.log + +# Byte-compiled / optimized / DLL files +__pycache__/ +__pypackages__/ +*.py[cod] +*$py.class diff --git a/Vagrant/resources/malcolm/.travis.yml b/Vagrant/resources/malcolm/.travis.yml new file mode 100644 index 0000000..472c3b6 --- /dev/null +++ b/Vagrant/resources/malcolm/.travis.yml @@ -0,0 +1,3 @@ +language: python +install: pip install flake8 +script: flake8 . --count --select=E9,F63,F72,F82 --show-source --statistics diff --git a/Vagrant/resources/malcolm/Dockerfiles/arkime.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/arkime.Dockerfile new file mode 100644 index 0000000..6f99409 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/arkime.Dockerfile @@ -0,0 +1,237 @@ +FROM debian:buster-slim AS build + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +ENV DEBIAN_FRONTEND noninteractive + +ENV ARKIME_VERSION "2.7.1" +ENV ARKIMEDIR "/data/moloch" +ENV ARKIME_URL "https://codeload.github.com/arkime/arkime/tar.gz/v${ARKIME_VERSION}" +ENV ARKIME_LOCALELASTICSEARCH no +ENV ARKIME_INET yes + +ADD moloch/scripts/bs4_remove_div.py /data/ +ADD moloch/patch/* /data/patches/ +ADD README.md $ARKIMEDIR/doc/ +ADD doc.css $ARKIMEDIR/doc/ +ADD docs/images $ARKIMEDIR/doc/images/ + +RUN sed -i "s/buster main/buster main contrib non-free/g" /etc/apt/sources.list && \ + apt-get -q update && \ + apt-get install -q -y --no-install-recommends \ + binutils \ + bison \ + cmake \ + curl \ + file \ + flex \ + g++ \ + gcc \ + gettext \ + git-core \ + groff \ + groff-base \ + imagemagick \ + libcap-dev \ + libjson-perl \ + libkrb5-dev \ + libmaxminddb-dev \ + libpcap0.8-dev \ + libssl-dev \ + libtool \ + libwww-perl \ + libyaml-dev \ + make \ + meson \ + ninja-build \ + pandoc \ + patch \ + python3-dev \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + rename \ + sudo \ + swig \ + wget \ + zlib1g-dev && \ + pip3 install --no-cache-dir beautifulsoup4 && \ + cd $ARKIMEDIR/doc/images && \ + find . -name "*.png" -exec bash -c 'convert "{}" -fuzz 2% -transparent white -background white -alpha remove -strip -interlace Plane -quality 85% "{}.jpg" && rename "s/\.png//" "{}.jpg"' \; && \ + cd $ARKIMEDIR/doc && \ + sed -i "s/^# Malcolm$//" README.md && \ + sed -i '/./,$!d' README.md && \ + sed -i "s/.png/.jpg/g" README.md && \ + sed -i "s@docs/images@images@g" README.md && \ + pandoc -s --self-contained --metadata title="Malcolm README" --css $ARKIMEDIR/doc/doc.css -o $ARKIMEDIR/doc/README.html $ARKIMEDIR/doc/README.md && \ + cd /data && \ + mkdir -p "./moloch-"$ARKIME_VERSION && \ + curl -sSL "$ARKIME_URL" | tar xzvf - -C "./moloch-"$ARKIME_VERSION --strip-components 1 && \ + cd "./moloch-"$ARKIME_VERSION && \ + bash -c 'for i in /data/patches/*; do patch -p 1 -r - --no-backup-if-mismatch < $i || true; done' && \ + find $ARKIMEDIR/doc/images/screenshots -name "*.png" -delete && \ + export PATH="$ARKIMEDIR/bin:${PATH}" && \ + ln -sfr $ARKIMEDIR/bin/npm /usr/local/bin/npm && \ + ln -sfr $ARKIMEDIR/bin/node /usr/local/bin/node && \ + ln -sfr $ARKIMEDIR/bin/npx /usr/local/bin/npx && \ + python3 /data/bs4_remove_div.py -i ./viewer/vueapp/src/components/users/Users.vue -o ./viewer/vueapp/src/components/users/Users.new -c "new-user-form" && \ + mv -vf ./viewer/vueapp/src/components/users/Users.new ./viewer/vueapp/src/components/users/Users.vue && \ + sed -i 's/v-if.*password.*"/v-if="false"/g' ./viewer/vueapp/src/components/settings/Settings.vue && \ + rm -rf ./viewer/vueapp/src/components/upload && \ + sed -i "s/^\(ARKIME_LOCALELASTICSEARCH=\).*/\1"$ARKIME_LOCALELASTICSEARCH"/" ./release/Configure && \ + sed -i "s/^\(ARKIME_INET=\).*/\1"$ARKIME_INET"/" ./release/Configure && \ + ./easybutton-build.sh --install && \ + npm cache clean --force && \ + bash -c "file ${ARKIMEDIR}/bin/* ${ARKIMEDIR}/node-v*/bin/* | grep 'ELF 64-bit' | sed 's/:.*//' | xargs -l -r strip -v --strip-unneeded" + +FROM debian:buster-slim + +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/arkime' +LABEL org.opencontainers.image.description='Malcolm container providing Arkime' + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "arkime" +ENV PGROUP "arkime" +ENV PUSER_PRIV_DROP true + +ENV DEBIAN_FRONTEND noninteractive +ENV TERM xterm + +ARG ES_HOST=elasticsearch +ARG ES_PORT=9200 +ARG MALCOLM_USERNAME=admin +ARG ARKIME_INTERFACE=eth0 +ARG ARKIME_ANALYZE_PCAP_THREADS=1 +ARG WISE=off +ARG VIEWER=on +#Whether or not Arkime is in charge of deleting old PCAP files to reclaim space +ARG MANAGE_PCAP_FILES=false +#Whether or not to auto-tag logs based on filename +ARG AUTO_TAG=true +ARG PCAP_PIPELINE_DEBUG=false +ARG PCAP_PIPELINE_DEBUG_EXTRA=false +ARG PCAP_MONITOR_HOST=pcap-monitor +ARG MAXMIND_GEOIP_DB_LICENSE_KEY="" + +# Declare envs vars for each arg +ENV ES_HOST $ES_HOST +ENV ES_PORT $ES_PORT +ENV ARKIME_ELASTICSEARCH "http://"$ES_HOST":"$ES_PORT +ENV ARKIME_INTERFACE $ARKIME_INTERFACE +ENV MALCOLM_USERNAME $MALCOLM_USERNAME +# this needs to be present, but is unused as nginx is going to handle auth for us +ENV ARKIME_PASSWORD "ignored" +ENV ARKIMEDIR "/data/moloch" +ENV ARKIME_ANALYZE_PCAP_THREADS $ARKIME_ANALYZE_PCAP_THREADS +ENV WISE $WISE +ENV VIEWER $VIEWER +ENV MANAGE_PCAP_FILES $MANAGE_PCAP_FILES +ENV AUTO_TAG $AUTO_TAG +ENV PCAP_PIPELINE_DEBUG $PCAP_PIPELINE_DEBUG +ENV PCAP_PIPELINE_DEBUG_EXTRA $PCAP_PIPELINE_DEBUG_EXTRA +ENV PCAP_MONITOR_HOST $PCAP_MONITOR_HOST + +COPY --from=build $ARKIMEDIR $ARKIMEDIR + +RUN sed -i "s/buster main/buster main contrib non-free/" /etc/apt/sources.list && \ + apt-get -q update && \ + apt-get install -q -y --no-install-recommends \ + curl \ + file \ + geoip-bin \ + gettext \ + libcap2-bin \ + libjson-perl \ + libkrb5-3 \ + libmaxminddb0 \ + libpcap0.8 \ + libssl1.0 \ + libtool \ + libwww-perl \ + libyaml-0-2 \ + libzmq5 \ + procps \ + psmisc \ + python \ + python3 \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + rename \ + sudo \ + supervisor \ + vim-tiny \ + wget \ + tar gzip unzip cpio bzip2 lzma xz-utils p7zip-full unrar zlib1g && \ + pip3 install --no-cache-dir beautifulsoup4 pyzmq && \ + ln -sfr $ARKIMEDIR/bin/npm /usr/local/bin/npm && \ + ln -sfr $ARKIMEDIR/bin/node /usr/local/bin/node && \ + ln -sfr $ARKIMEDIR/bin/npx /usr/local/bin/npx && \ + apt-get -q -y --purge remove gcc gcc-8 cpp cpp-8 libssl-dev && \ + apt-get -q -y autoremove && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# add configuration and scripts +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD moloch/scripts /data/ +ADD shared/bin/pcap_moloch_and_zeek_processor.py /data/ +ADD shared/bin/pcap_utils.py /data/ +ADD shared/bin/elastic_search_status.sh /data/ +ADD moloch/etc $ARKIMEDIR/etc/ +ADD moloch/wise/source.*.js $ARKIMEDIR/wiseService/ +ADD moloch/supervisord.conf /etc/supervisord.conf + +# MaxMind now requires a (free) license key to download the free versions of +# their GeoIP databases. This should be provided as a build argument. +# see https://dev.maxmind.com/geoip/geoipupdate/#Direct_Downloads +# see https://github.com/arkime/arkime/issues/1350 +# see https://github.com/arkime/arkime/issues/1352 +RUN [ ${#MAXMIND_GEOIP_DB_LICENSE_KEY} -gt 1 ] && for DB in ASN Country City; do \ + cd /tmp && \ + curl -s -S -L -o "GeoLite2-$DB.mmdb.tar.gz" "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-$DB&license_key=$MAXMIND_GEOIP_DB_LICENSE_KEY&suffix=tar.gz" && \ + tar xf "GeoLite2-$DB.mmdb.tar.gz" --wildcards --no-anchored '*.mmdb' --strip=1 && \ + mkdir -p $ARKIMEDIR/etc/ $ARKIMEDIR/logs/ && \ + mv -v "GeoLite2-$DB.mmdb" $ARKIMEDIR/etc/; \ + rm -f "GeoLite2-$DB*"; \ + done; \ + curl -s -S -L -o $ARKIMEDIR/etc/ipv4-address-space.csv "https://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.csv" && \ + curl -s -S -L -o $ARKIMEDIR/etc/oui.txt "https://raw.githubusercontent.com/wireshark/wireshark/master/manuf" + +RUN groupadd --gid $DEFAULT_GID $PGROUP && \ + useradd -M --uid $DEFAULT_UID --gid $DEFAULT_GID --home $ARKIMEDIR $PUSER && \ + usermod -a -G tty $PUSER && \ + chmod 755 /data/*.sh && \ + ln -sfr /data/pcap_moloch_and_zeek_processor.py /data/pcap_moloch_processor.py && \ + cp -f /data/moloch_update_geo.sh $ARKIMEDIR/bin/moloch_update_geo.sh && \ + chmod u+s $ARKIMEDIR/bin/moloch-capture && \ + mkdir -p /var/run/moloch && \ + chown -R $PUSER:$PGROUP $ARKIMEDIR/etc $ARKIMEDIR/logs /var/run/moloch +#Update Path +ENV PATH="/data:$ARKIMEDIR/bin:${PATH}" + +EXPOSE 8000 8005 8081 +WORKDIR $ARKIMEDIR + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh"] + +CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf", "-n"] + + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/elasticsearch.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/elasticsearch.Dockerfile new file mode 100644 index 0000000..9d70089 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/elasticsearch.Dockerfile @@ -0,0 +1,57 @@ +FROM amazon/opendistro-for-elasticsearch:1.13.2 + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/elasticsearch-od' +LABEL org.opencontainers.image.description='Malcolm container providing Elasticsearch (the Apache-licensed Open Distro variant)' + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUID $DEFAULT_UID +ENV PUSER "elasticsearch" +ENV PGROUP "elasticsearch" +ENV PUSER_PRIV_DROP true + +ENV TERM xterm + +ARG GITHUB_OAUTH_TOKEN="" +ARG DISABLE_INSTALL_DEMO_CONFIG=true +ENV DISABLE_INSTALL_DEMO_CONFIG $DISABLE_INSTALL_DEMO_CONFIG +ENV JAVA_HOME=/usr/share/elasticsearch/jdk + +# Malcolm manages authentication and encryption via NGINX reverse proxy +# https://opendistro.github.io/for-elasticsearch-docs/docs/security/configuration/disable/ +# https://opendistro.github.io/for-elasticsearch-docs/docs/install/docker/#customize-the-docker-image +# https://github.com/opendistro-for-elasticsearch/opendistro-build/issues/613 +RUN yum install -y openssl && \ + /usr/share/elasticsearch/bin/elasticsearch-plugin remove opendistro_security && \ + echo -e 'cluster.name: "docker-cluster"\nnetwork.host: 0.0.0.0' > /usr/share/elasticsearch/config/elasticsearch.yml && \ + chown -R $PUSER:$PGROUP /usr/share/elasticsearch/config/elasticsearch.yml && \ + sed -i "s/user=1000\b/user=%(ENV_PUID)s/g" /usr/share/elasticsearch/plugins/opendistro-performance-analyzer/pa_config/supervisord.conf && \ + sed -i "s/user=1000\b/user=%(ENV_PUID)s/g" /usr/share/elasticsearch/performance-analyzer-rca/pa_config/supervisord.conf && \ + sed -i '/[^#].*\/usr\/share\/elasticsearch\/bin\/elasticsearch.*/i /usr/local/bin/jdk-cacerts-auto-import.sh || true' /usr/local/bin/docker-entrypoint.sh +# just used for initial keystore creation +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD shared/bin/jdk-cacerts-auto-import.sh /usr/local/bin/ + +USER root + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh"] + +CMD ["/usr/local/bin/docker-entrypoint.sh"] + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/file-monitor.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/file-monitor.Dockerfile new file mode 100644 index 0000000..8e64662 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/file-monitor.Dockerfile @@ -0,0 +1,248 @@ +FROM debian:buster-slim + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/file-monitor' +LABEL org.opencontainers.image.description='Malcolm container for scanning files extracted by Zeek' + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "monitor" +ENV PGROUP "monitor" +ENV PUSER_PRIV_DROP true + +ENV DEBIAN_FRONTEND noninteractive +ENV TERM xterm + +ARG ZEEK_EXTRACTOR_PATH=/data/zeek/extract_files +ARG ZEEK_LOG_DIRECTORY=/data/zeek/logs +ARG EXTRACTED_FILE_IGNORE_EXISTING=false +ARG EXTRACTED_FILE_PRESERVATION=quarantined +ARG EXTRACTED_FILE_WATCHER_START_SLEEP=30 +ARG EXTRACTED_FILE_SCANNER_START_SLEEP=10 +ARG EXTRACTED_FILE_LOGGER_START_SLEEP=5 +ARG EXTRACTED_FILE_MIN_BYTES=64 +ARG EXTRACTED_FILE_MAX_BYTES=134217728 +ARG VTOT_API2_KEY=0 +ARG VTOT_REQUESTS_PER_MINUTE=4 +ARG MALASS_HOST=0 +ARG MALASS_PORT=80 +ARG MALASS_MAX_REQUESTS=20 +ARG EXTRACTED_FILE_ENABLE_CLAMAV=false +ARG EXTRACTED_FILE_UPDATE_RULES=false +ARG EXTRACTED_FILE_PIPELINE_DEBUG=false +ARG EXTRACTED_FILE_PIPELINE_DEBUG_EXTRA=false +ARG CLAMD_SOCKET_FILE=/tmp/clamd.ctl +ARG CLAMD_MAX_REQUESTS=8 +ARG YARA_MAX_REQUESTS=8 +ARG CAPA_MAX_REQUESTS=4 +ARG EXTRACTED_FILE_ENABLE_YARA=false +ARG EXTRACTED_FILE_YARA_CUSTOM_ONLY=false +ARG EXTRACTED_FILE_ENABLE_CAPA=false +ARG EXTRACTED_FILE_CAPA_VERBOSE=false +ARG EXTRACTED_FILE_HTTP_SERVER_DEBUG=false +ARG EXTRACTED_FILE_HTTP_SERVER_ENABLE=false +ARG EXTRACTED_FILE_HTTP_SERVER_ENCRYPT=false +ARG EXTRACTED_FILE_HTTP_SERVER_KEY=quarantined +ARG EXTRACTED_FILE_HTTP_SERVER_PORT=8440 + +ENV ZEEK_EXTRACTOR_PATH $ZEEK_EXTRACTOR_PATH +ENV ZEEK_LOG_DIRECTORY $ZEEK_LOG_DIRECTORY +ENV EXTRACTED_FILE_IGNORE_EXISTING $EXTRACTED_FILE_IGNORE_EXISTING +ENV EXTRACTED_FILE_PRESERVATION $EXTRACTED_FILE_PRESERVATION +ENV EXTRACTED_FILE_WATCHER_START_SLEEP $EXTRACTED_FILE_WATCHER_START_SLEEP +ENV EXTRACTED_FILE_SCANNER_START_SLEEP $EXTRACTED_FILE_SCANNER_START_SLEEP +ENV EXTRACTED_FILE_LOGGER_START_SLEEP $EXTRACTED_FILE_LOGGER_START_SLEEP +ENV EXTRACTED_FILE_MIN_BYTES $EXTRACTED_FILE_MIN_BYTES +ENV EXTRACTED_FILE_MAX_BYTES $EXTRACTED_FILE_MAX_BYTES +ENV VTOT_API2_KEY $VTOT_API2_KEY +ENV VTOT_REQUESTS_PER_MINUTE $VTOT_REQUESTS_PER_MINUTE +ENV MALASS_HOST $MALASS_HOST +ENV MALASS_PORT $MALASS_PORT +ENV MALASS_MAX_REQUESTS $MALASS_MAX_REQUESTS +ENV EXTRACTED_FILE_ENABLE_CLAMAV $EXTRACTED_FILE_ENABLE_CLAMAV +ENV EXTRACTED_FILE_UPDATE_RULES $EXTRACTED_FILE_UPDATE_RULES +ENV EXTRACTED_FILE_PIPELINE_DEBUG $EXTRACTED_FILE_PIPELINE_DEBUG +ENV EXTRACTED_FILE_PIPELINE_DEBUG_EXTRA $EXTRACTED_FILE_PIPELINE_DEBUG_EXTRA +ENV CLAMD_SOCKET_FILE $CLAMD_SOCKET_FILE +ENV CLAMD_MAX_REQUESTS $CLAMD_MAX_REQUESTS +ENV YARA_MAX_REQUESTS $YARA_MAX_REQUESTS +ENV CAPA_MAX_REQUESTS $CAPA_MAX_REQUESTS +ENV EXTRACTED_FILE_ENABLE_YARA $EXTRACTED_FILE_ENABLE_YARA +ENV EXTRACTED_FILE_YARA_CUSTOM_ONLY $EXTRACTED_FILE_YARA_CUSTOM_ONLY +ENV EXTRACTED_FILE_ENABLE_CAPA $EXTRACTED_FILE_ENABLE_CAPA +ENV EXTRACTED_FILE_CAPA_VERBOSE $EXTRACTED_FILE_CAPA_VERBOSE +ENV SRC_BASE_DIR "/usr/local/src" +ENV CLAMAV_RULES_DIR "/var/lib/clamav" +ENV YARA_VERSION "4.1.1" +ENV YARA_URL "https://github.com/VirusTotal/yara/archive/v${YARA_VERSION}.tar.gz" +ENV YARA_RULES_URL "https://github.com/Neo23x0/signature-base" +ENV YARA_RULES_DIR "/yara-rules" +ENV YARA_RULES_SRC_DIR "$SRC_BASE_DIR/signature-base" +ENV CAPA_VERSION "1.6.3" +ENV CAPA_URL "https://github.com/fireeye/capa/releases/download/v${CAPA_VERSION}/capa-v${CAPA_VERSION}-linux.zip" +ENV CAPA_DIR "/opt/capa" +ENV CAPA_BIN "${CAPA_DIR}/capa" +ENV EXTRACTED_FILE_HTTP_SERVER_DEBUG $EXTRACTED_FILE_HTTP_SERVER_DEBUG +ENV EXTRACTED_FILE_HTTP_SERVER_ENABLE $EXTRACTED_FILE_HTTP_SERVER_ENABLE +ENV EXTRACTED_FILE_HTTP_SERVER_ENCRYPT $EXTRACTED_FILE_HTTP_SERVER_ENCRYPT +ENV EXTRACTED_FILE_HTTP_SERVER_KEY $EXTRACTED_FILE_HTTP_SERVER_KEY +ENV EXTRACTED_FILE_HTTP_SERVER_PORT $EXTRACTED_FILE_HTTP_SERVER_PORT + +ENV SUPERCRONIC_VERSION "0.1.12" +ENV SUPERCRONIC_URL "https://github.com/aptible/supercronic/releases/download/v$SUPERCRONIC_VERSION/supercronic-linux-amd64" +ENV SUPERCRONIC "supercronic-linux-amd64" +ENV SUPERCRONIC_SHA1SUM "048b95b48b708983effb2e5c935a1ef8483d9e3e" +ENV SUPERCRONIC_CRONTAB "/etc/crontab" + +RUN sed -i "s/buster main/buster main contrib non-free/g" /etc/apt/sources.list && \ + apt-get update && \ + apt-get install --no-install-recommends -y -q \ + automake \ + bc \ + clamav \ + clamav-daemon \ + clamav-freshclam \ + curl \ + gcc \ + git \ + jq \ + libclamunrar9 \ + libjansson-dev \ + libjansson4 \ + libmagic-dev \ + libmagic1 \ + libssl-dev \ + libssl1.1 \ + libtool \ + make \ + pkg-config \ + unzip && \ + apt-get -y -q install \ + inotify-tools \ + libzmq5 \ + psmisc \ + python3 \ + python3-bs4 \ + python3-dev \ + python3-pip \ + python3-pyinotify \ + python3-requests \ + python3-zmq && \ + pip3 install clamd supervisor yara-python python-magic psutil pycryptodome && \ + curl -fsSLO "$SUPERCRONIC_URL" && \ + echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - && \ + chmod +x "$SUPERCRONIC" && \ + mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" && \ + ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic && \ + mkdir -p "${SRC_BASE_DIR}" && \ + cd "${SRC_BASE_DIR}" && \ + curl -sSL "${YARA_URL}" | tar xzf - -C "${SRC_BASE_DIR}" && \ + cd "./yara-${YARA_VERSION}" && \ + ./bootstrap.sh && \ + ./configure --prefix=/usr \ + --with-crypto \ + --enable-magic \ + --enable-cuckoo \ + --enable-dotnet && \ + make && \ + make install && \ + rm -rf "${SRC_BASE_DIR}"/yara* && \ + cd /tmp && \ + git clone --depth 1 --single-branch "${YARA_RULES_URL}" "${YARA_RULES_SRC_DIR}" && \ + mkdir -p "${YARA_RULES_DIR}" && \ + ln -f -s -r "${YARA_RULES_SRC_DIR}"/yara/* "${YARA_RULES_SRC_DIR}"/vendor/yara/* "${YARA_RULES_DIR}"/ && \ + cd /tmp && \ + curl -fsSL -o ./capa.zip "${CAPA_URL}" && \ + unzip ./capa.zip && \ + chmod 755 ./capa && \ + mkdir -p "${CAPA_DIR}" && \ + mv ./capa "${CAPA_BIN}" && \ + rm -f ./capa.zip && \ + apt-get -y -q --allow-downgrades --allow-remove-essential --allow-change-held-packages --purge remove \ + automake \ + build-essential \ + gcc \ + gcc-8 \ + libc6-dev \ + libgcc-8-dev \ + libjansson-dev \ + libmagic-dev \ + libssl-dev \ + libtool \ + make \ + python3-dev && \ + apt-get -y -q --allow-downgrades --allow-remove-essential --allow-change-held-packages autoremove && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* && \ + mkdir -p /var/log/clamav "${CLAMAV_RULES_DIR}" && \ + curl -s -S -L -o "${CLAMAV_RULES_DIR}"/main.cvd http://database.clamav.net/main.cvd && \ + curl -s -S -L -o "${CLAMAV_RULES_DIR}"/daily.cvd http://database.clamav.net/daily.cvd && \ + curl -s -S -L -o "${CLAMAV_RULES_DIR}"/bytecode.cvd http://database.clamav.net/bytecode.cvd && \ + groupadd --gid ${DEFAULT_GID} ${PGROUP} && \ + useradd -m --uid ${DEFAULT_UID} --gid ${DEFAULT_GID} ${PUSER} && \ + usermod -a -G tty ${PUSER} && \ + chown -R ${PUSER}:${PGROUP} /var/log/clamav "${CLAMAV_RULES_DIR}" "${CAPA_DIR}" "${YARA_RULES_DIR}" "${YARA_RULES_SRC_DIR}" && \ + find /var/log/clamav "${CLAMAV_RULES_DIR}" "${CAPA_DIR}" "${YARA_RULES_DIR}" "${YARA_RULES_SRC_DIR}" -type d -exec chmod 750 "{}" \; && \ + sed -i 's/^Foreground .*$/Foreground true/g' /etc/clamav/clamd.conf && \ + sed -i "s/^User .*$/User ${PUSER}/g" /etc/clamav/clamd.conf && \ + sed -i "s|^LocalSocket .*$|LocalSocket $CLAMD_SOCKET_FILE|g" /etc/clamav/clamd.conf && \ + sed -i "s/^LocalSocketGroup .*$/LocalSocketGroup ${PGROUP}/g" /etc/clamav/clamd.conf && \ + sed -i "s/^MaxFileSize .*$/MaxFileSize $EXTRACTED_FILE_MAX_BYTES/g" /etc/clamav/clamd.conf && \ + sed -i "s/^MaxScanSize .*$/MaxScanSize $(echo "$EXTRACTED_FILE_MAX_BYTES * 4" | bc)/g" /etc/clamav/clamd.conf && \ + echo "TCPSocket 3310" >> /etc/clamav/clamd.conf && \ + if ! [ -z $HTTPProxyServer ]; then echo "HTTPProxyServer $HTTPProxyServer" >> /etc/clamav/freshclam.conf; fi && \ + if ! [ -z $HTTPProxyPort ]; then echo "HTTPProxyPort $HTTPProxyPort" >> /etc/clamav/freshclam.conf; fi && \ + sed -i 's/^Foreground .*$/Foreground true/g' /etc/clamav/freshclam.conf && \ + sed -i "s/^DatabaseOwner .*$/DatabaseOwner ${PUSER}/g" /etc/clamav/freshclam.conf && \ + ln -r -s /usr/local/bin/zeek_carve_scanner.py /usr/local/bin/vtot_scan.py && \ + ln -r -s /usr/local/bin/zeek_carve_scanner.py /usr/local/bin/clam_scan.py && \ + ln -r -s /usr/local/bin/zeek_carve_scanner.py /usr/local/bin/yara_scan.py && \ + ln -r -s /usr/local/bin/zeek_carve_scanner.py /usr/local/bin/capa_scan.py && \ + ln -r -s /usr/local/bin/zeek_carve_scanner.py /usr/local/bin/malass_scan.py && \ + echo "0 */6 * * * /bin/bash /usr/local/bin/capa-update.sh\n0 */6 * * * /bin/bash /usr/local/bin/yara-rules-update.sh" > ${SUPERCRONIC_CRONTAB} + +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD shared/bin/zeek_carve*.py /usr/local/bin/ +ADD shared/bin/malass_client.py /usr/local/bin/ +ADD file-monitor/supervisord.conf /etc/supervisord.conf +ADD file-monitor/docker-entrypoint.sh /docker-entrypoint.sh +ADD file-monitor/*update.sh /usr/local/bin/ + +USER ${PUSER} + +RUN /usr/bin/freshclam freshclam --config-file=/etc/clamav/freshclam.conf + +USER root + +WORKDIR /data/zeek/extract_files + +ENV PATH "${CAPA_DIR}:${PATH}" + +VOLUME ["$CAPA_DIR"] +VOLUME ["$CLAMAV_RULES_DIR"] +VOLUME ["$YARA_RULES_DIR"] +VOLUME ["$YARA_RULES_SRC_DIR"] + +EXPOSE 3310 +EXPOSE $EXTRACTED_FILE_HTTP_SERVER_PORT + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh", "/docker-entrypoint.sh"] + +CMD ["/usr/local/bin/supervisord", "-c", "/etc/supervisord.conf", "-n"] + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/file-upload.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/file-upload.Dockerfile new file mode 100644 index 0000000..4df4504 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/file-upload.Dockerfile @@ -0,0 +1,109 @@ +FROM debian:buster-slim AS build + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +ENV DEBIAN_FRONTEND noninteractive + +ARG SITE_NAME="Capture File and Log Archive Upload" + +ENV SITE_NAME $SITE_NAME +ENV JQUERY_FILE_UPLOAD_VERSION v9.19.1 +ENV JQUERY_FILE_UPLOAD_URL "https://github.com/blueimp/jQuery-File-Upload/archive/${JQUERY_FILE_UPLOAD_VERSION}.tar.gz" + +RUN apt-get update && \ + apt-get -y -q --allow-downgrades --allow-remove-essential --allow-change-held-packages install --no-install-recommends npm node-encoding git ca-certificates curl wget && \ + npm install -g bower && \ + mkdir -p /jQuery-File-Upload && \ + curl -sSL "$JQUERY_FILE_UPLOAD_URL" | tar xzvf - -C /jQuery-File-Upload --strip-components 1 && \ + cd /jQuery-File-Upload && \ + bower --allow-root install bootstrap && \ + bower --allow-root install jquery && \ + bower --allow-root install blueimp-gallery && \ + bower --allow-root install bootstrap-tagsinput && \ + rm -rf /jQuery-File-Upload/*.html /jQuery-File-Upload/test/ /jQuery-File-Upload/server/gae-go/ \ + /jQuery-File-Upload/server/gae-python/ + +FROM debian:buster-slim AS runtime + +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/file-upload' +LABEL org.opencontainers.image.description='Malcolm container providing an interface for uploading PCAP files and Zeek logs for processing' + +ARG DEFAULT_UID=33 +ARG DEFAULT_GID=33 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "www-data" +ENV PGROUP "www-data" +# not dropping privileges globally in this container as required to run SFTP server. this can +# be handled by supervisord instead on an as-needed basis, and/or php-fpm/nginx itself +# will drop privileges to www-data as well. +ENV PUSER_PRIV_DROP false + +ENV DEBIAN_FRONTEND noninteractive +ENV TERM xterm + +COPY --from=build /jQuery-File-Upload/ /var/www/upload/ + +RUN apt-get update && \ + apt-get -y -q --allow-downgrades --allow-remove-essential --allow-change-held-packages install --no-install-recommends \ + wget \ + ca-certificates \ + openssh-server \ + supervisor \ + vim-tiny \ + less \ + php7.3-gd \ + php7.3-fpm \ + php7.3-apcu \ + nginx-light && \ + apt-get clean -y -q && \ + rm -rf /var/lib/apt/lists/* + +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD docs/images/logo/Malcolm_banner.png /var/www/upload/Malcolm_banner.png +ADD file-upload/docker-entrypoint.sh /docker-entrypoint.sh +ADD file-upload/jquery-file-upload/bootstrap.min.css /var/www/upload/bower_components/bootstrap/dist/css/bootstrap.min.css +ADD file-upload/jquery-file-upload/index.html /var/www/upload/index.html +ADD file-upload/jquery-file-upload/index.php /var/www/upload/server/php/index.php +ADD file-upload/nginx/sites-available/default /etc/nginx/sites-available/default +ADD file-upload/php/php.ini /etc/php/7.3/fpm/php.ini +ADD file-upload/sshd_config /tmp/sshd_config +ADD file-upload/supervisord.conf /supervisord.conf + +RUN mkdir -p /var/run/sshd /var/www/upload/server/php/chroot /run/php && \ + mv /var/www/upload/server/php/files /var/www/upload/server/php/chroot && \ + ln -s /var/www/upload/server/php/chroot/files /var/www/upload/server/php/files && \ + ln -sr /var/www/upload /var/www/upload/upload && \ + perl -i -pl -e 's/^#?(\s*PermitRootLogin\s+)[\w\-]+$/$1no/i;' \ + -e 's/^#?(\s*PasswordAuthentication\s+)\w+$/$1no/i' /etc/ssh/sshd_config && \ + chmod a+x /docker-entrypoint.sh && \ + cat /tmp/sshd_config >>/etc/ssh/sshd_config && \ + chmod 775 /var/www/upload/server/php/chroot/files && \ + chmod 755 /var /var/www /var/www/upload /var/www/upload/server /var/www/upload/server/php \ + /var/www/upload/server/php/chroot && \ + echo "Put your files into /files. Don't use subdirectories." \ + >/var/www/upload/server/php/chroot/README.txt && \ + rm -rf /var/lib/apt/lists/* /var/cache/* /tmp/* /var/tmp/* /var/www/upload/server/php/chroot/files/.gitignore /tmp/sshd_config + +VOLUME [ "/var/www/upload/server/php/chroot/files" ] +EXPOSE 22 80 + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh", "/docker-entrypoint.sh"] + +CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf", "-u", "root", "-n"] + + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/filebeat.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/filebeat.Dockerfile new file mode 100644 index 0000000..b166b6c --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/filebeat.Dockerfile @@ -0,0 +1,108 @@ +FROM docker.elastic.co/beats/filebeat-oss:7.10.2 + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/filebeat-oss' +LABEL org.opencontainers.image.description='Malcolm container providing Filebeat (the Apache-licensed variant)' + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "filebeat" +ENV PGROUP "filebeat" +# not dropping privileges globally: supervisord will take care of it +# on a case-by-case basis so that one script (filebeat-watch-zeeklogs-uploads-folder.sh) +# can chown uploaded files +ENV PUSER_PRIV_DROP false + +ENV TERM xterm + +ARG FILEBEAT_LOG_CLEANUP_MINUTES=0 +ARG FILEBEAT_ZIP_CLEANUP_MINUTES=0 +ARG FILEBEAT_SCAN_FREQUENCY=10s +ARG FILEBEAT_CLEAN_INACTIVE=45m +ARG FILEBEAT_IGNORE_OLDER=30m +ARG FILEBEAT_CLOSE_INACTIVE=30s +ARG FILEBEAT_CLOSE_RENAMED=true +ARG FILEBEAT_CLOSE_REMOVED=true +ARG FILEBEAT_CLOSE_EOF=true +ARG FILEBEAT_CLEAN_REMOVED=true +ARG FILEBEAT_LOG_PATH="/data/zeek/current" +ARG FILEBEAT_NGINX_LOG_PATH="/data/nginx" +ARG NGINX_LOG_ACCESS_AND_ERRORS=false +ARG AUTO_TAG=true + +ENV SUPERCRONIC_VERSION "0.1.12" +ENV SUPERCRONIC_URL "https://github.com/aptible/supercronic/releases/download/v$SUPERCRONIC_VERSION/supercronic-linux-amd64" +ENV SUPERCRONIC "supercronic-linux-amd64" +ENV SUPERCRONIC_SHA1SUM "048b95b48b708983effb2e5c935a1ef8483d9e3e" +ENV SUPERCRONIC_CRONTAB "/etc/crontab" + +USER root + +RUN yum install -y epel-release && \ + yum update -y && \ + yum install -y curl inotify-tools file psmisc tar gzip unzip cpio bzip2 lzma xz p7zip p7zip-plugins unar python3-setuptools python3-pip && \ + yum clean all && \ + ln -sr /usr/sbin/fuser /bin/fuser && \ + python3 -m pip install patool entrypoint2 pyunpack python-magic ordered-set supervisor && \ + curl -fsSLO "$SUPERCRONIC_URL" && \ + echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - && \ + chmod +x "$SUPERCRONIC" && \ + mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" && \ + ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic + +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD filebeat/filebeat.yml /usr/share/filebeat/filebeat.yml +ADD filebeat/filebeat-nginx.yml /usr/share/filebeat-nginx/filebeat-nginx.yml +ADD filebeat/scripts /data/ +ADD shared/bin/elastic_search_status.sh /data/ +ADD filebeat/supervisord.conf /etc/supervisord.conf +RUN mkdir -p /usr/share/filebeat-nginx/data && \ + chown -R root:${PGROUP} /usr/share/filebeat-nginx && \ + cp -a /usr/share/filebeat/module /usr/share/filebeat-nginx/module && \ + chmod 750 /usr/share/filebeat-nginx && \ + chmod 770 /usr/share/filebeat-nginx/data && \ + chmod 755 /data/*.sh /data/*.py && \ + (echo -e "* * * * * /data/filebeat-process-zeek-folder.sh\n*/5 * * * * /data/filebeat-clean-zeeklogs-processed-folder.py" > ${SUPERCRONIC_CRONTAB}) + +ENV FILEBEAT_LOG_CLEANUP_MINUTES $FILEBEAT_LOG_CLEANUP_MINUTES +ENV FILEBEAT_ZIP_CLEANUP_MINUTES $FILEBEAT_ZIP_CLEANUP_MINUTES +ENV FILEBEAT_SCAN_FREQUENCY $FILEBEAT_SCAN_FREQUENCY +ENV FILEBEAT_CLEAN_INACTIVE $FILEBEAT_CLEAN_INACTIVE +ENV FILEBEAT_IGNORE_OLDER $FILEBEAT_IGNORE_OLDER +ENV FILEBEAT_CLOSE_INACTIVE $FILEBEAT_CLOSE_INACTIVE +ENV FILEBEAT_CLOSE_RENAMED $FILEBEAT_CLOSE_RENAMED +ENV FILEBEAT_CLOSE_REMOVED $FILEBEAT_CLOSE_REMOVED +ENV FILEBEAT_CLOSE_EOF $FILEBEAT_CLOSE_EOF +ENV FILEBEAT_CLEAN_REMOVED $FILEBEAT_CLEAN_REMOVED +ENV FILEBEAT_LOG_PATH $FILEBEAT_LOG_PATH +ENV FILEBEAT_NGINX_LOG_PATH $FILEBEAT_NGINX_LOG_PATH +ENV NGINX_LOG_ACCESS_AND_ERRORS $NGINX_LOG_ACCESS_AND_ERRORS +ENV AUTO_TAG $AUTO_TAG + +ENV FILEBEAT_REGISTRY_FILE "/usr/share/filebeat/data/registry/filebeat/data.json" +ENV FILEBEAT_ZEEK_DIR "/data/zeek/" +ENV PATH="/data:${PATH}" + +VOLUME ["/usr/share/filebeat/data", "/usr/share/filebeat-nginx/data"] + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh"] + +CMD ["/usr/local/bin/supervisord", "-c", "/etc/supervisord.conf", "-u", "root", "-n"] + + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/freq.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/freq.Dockerfile new file mode 100644 index 0000000..a677a52 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/freq.Dockerfile @@ -0,0 +1,75 @@ +FROM debian:buster-slim + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/freq' +LABEL org.opencontainers.image.description='Malcolm container providing an interface to Mark Baggett''s freq_server.py' + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "freq" +ENV PGROUP "freq" +ENV PUSER_PRIV_DROP true + +ENV DEBIAN_FRONTEND noninteractive +ENV TERM xterm + +ARG FREQ_PORT=10004 +ARG FREQ_LOOKUP=true + +ENV FREQ_PORT $FREQ_PORT +ENV FREQ_LOOKUP $FREQ_LOOKUP + +ENV FREQ_URL "https://codeload.github.com/markbaggett/freq/tar.gz/master" + +RUN sed -i "s/buster main/buster main contrib non-free/g" /etc/apt/sources.list && \ + apt-get update && \ + apt-get -y -q install \ + curl \ + procps \ + psmisc \ + python3 \ + python3-dev \ + python3-pip && \ + pip3 install supervisor && \ + cd /opt && \ + mkdir -p ./freq_server && \ + curl -sSL "$FREQ_URL" | tar xzvf - -C ./freq_server --strip-components 1 && \ + rm -rf /opt/freq_server/systemd /opt/freq_server/upstart /opt/freq_server/*.md /opt/freq_server/*.exe && \ + mv -v "$(ls /opt/freq_server/*.freq | tail -n 1)" /opt/freq_server/freq_table.freq && \ + groupadd --gid ${DEFAULT_GID} ${PGROUP} && \ + useradd -M --uid ${DEFAULT_UID} --gid ${DEFAULT_GID} --home /nonexistant ${PUSER} && \ + chown -R ${PUSER}:${PGROUP} /opt/freq_server && \ + usermod -a -G tty ${PUSER} && \ + apt-get -y -q --allow-downgrades --allow-remove-essential --allow-change-held-packages --purge remove git python3-dev build-essential && \ + apt-get -y -q --allow-downgrades --allow-remove-essential --allow-change-held-packages autoremove && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD freq-server/supervisord.conf /etc/supervisord.conf + +WORKDIR /opt/freq_server + +EXPOSE $FREQ_PORT + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh"] + +CMD ["/usr/local/bin/supervisord", "-c", "/etc/supervisord.conf", "-n"] + + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/htadmin.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/htadmin.Dockerfile new file mode 100644 index 0000000..fdbde79 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/htadmin.Dockerfile @@ -0,0 +1,99 @@ +FROM debian:buster-slim + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/htadmin' +LABEL org.opencontainers.image.description='Malcolm container providing htadmin for managing login accounts in an htpasswd file' + +ARG DEFAULT_UID=33 +ARG DEFAULT_GID=33 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "www-data" +ENV PGROUP "www-data" +# not dropping privileges globally so nginx can bind privileged ports internally. +# nginx and php-fpm will drop privileges to "www-data" user for worker processes +ENV PUSER_PRIV_DROP false + +ENV DEBIAN_FRONTEND noninteractive +ENV TERM xterm + +ARG PHP_VERSION=7.3 +ARG MCRYPT_VERSION=1.0.2 +ARG BOOTSTRAP_VERSION=3.3.6 + +ENV PHP_VERSION $PHP_VERSION +ENV MCRYPT_VERSION $MCRYPT_VERSION +ENV BOOTSTRAP_VERSION $BOOTSTRAP_VERSION + +ENV HTADMIN_URL "https://codeload.github.com/mmguero-dev/htadmin/tar.gz/master" + +RUN apt-get update && \ + apt-get -y -q --allow-downgrades --allow-remove-essential --allow-change-held-packages --no-install-recommends install \ + bcrypt \ + ca-certificates \ + curl \ + libmcrypt-dev \ + libmcrypt4 \ + make \ + mcrypt \ + nginx-light \ + php-dev \ + php-pear \ + php$PHP_VERSION-apcu \ + php$PHP_VERSION-cli \ + php$PHP_VERSION-curl \ + php$PHP_VERSION-fpm \ + php$PHP_VERSION-gd \ + procps \ + supervisor && \ + ( yes '' | pecl channel-update pecl.php.net ) && \ + ( yes '' | pecl install mcrypt-$MCRYPT_VERSION ) && \ + ln -s -r /usr/lib/php/20??????/*.so /usr/lib/php/$PHP_VERSION/ && \ + mkdir -p /run/php && \ + cd /tmp && \ + mkdir -p ./htadmin && \ + curl -sSL "$HTADMIN_URL" | tar xzvf - -C ./htadmin --strip-components 1 && \ + mv /tmp/htadmin/sites/html/htadmin /var/www/htadmin && \ + cd /var/www/htadmin && \ + ( grep -rhoPi "(src|href)=['\"]https?://.+?['\"]" ./includes/* | sed "s/^[a-zA-Z]*=['\"]*//" | sed "s/['\"]$//" | xargs -r -l curl -s -S -L -J -O ) && \ + sed -i "s@http[^'\"]*/@@gI" ./includes/* && \ + mkdir fonts && cd fonts && \ + curl -s -S -L -J -O "https://maxcdn.bootstrapcdn.com/bootstrap/$BOOTSTRAP_VERSION/fonts/glyphicons-halflings-regular.ttf" && \ + curl -s -S -L -J -O "https://maxcdn.bootstrapcdn.com/bootstrap/$BOOTSTRAP_VERSION/fonts/glyphicons-halflings-regular.woff" && \ + curl -s -S -L -J -O "https://maxcdn.bootstrapcdn.com/bootstrap/$BOOTSTRAP_VERSION/fonts/glyphicons-halflings-regular.woff2" && \ + chown -R ${PUSER}:${PGROUP} /var/www && \ + apt-get -y -q --allow-downgrades --allow-remove-essential --allow-change-held-packages --purge remove \ + make libmcrypt-dev php-pear php-dev && \ + apt-get autoremove -y -q && \ + apt-get clean -y -q && \ + rm -rf /var/lib/apt/lists/* /var/cache/* /tmp/* /var/tmp/* /var/www/html + +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD docs/images/favicon/favicon.ico /var/www/htadmin/ +ADD htadmin/supervisord.conf /supervisord.conf +ADD htadmin/htadmin.sh /usr/local/bin/ +ADD htadmin/src /var/www/htadmin/ +ADD htadmin/php/php.ini /etc/php/$PHP_VERSION/fpm/php.ini +ADD htadmin/nginx/sites-available/default /etc/nginx/sites-available/default + +EXPOSE 80 + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh"] + +CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf", "-u", "root", "-n"] + + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/kibana-helper.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/kibana-helper.Dockerfile new file mode 100644 index 0000000..9f83f33 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/kibana-helper.Dockerfile @@ -0,0 +1,92 @@ +FROM alpine:3.14 + +# Copyright (c) 2020 Battelle Energy Alliance, LLC. All rights reserved. +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/kibana-helper' +LABEL org.opencontainers.image.description='Malcolm container providing Kibana support functions' + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "helper" +ENV PGROUP "helper" +ENV PUSER_PRIV_DROP true + +ENV TERM xterm + +ARG ARKIME_INDEX_PATTERN="sessions2-*" +ARG ARKIME_INDEX_PATTERN_ID="sessions2-*" +ARG ARKIME_INDEX_TIME_FIELD="firstPacket" +ARG CREATE_ES_ARKIME_SESSION_INDEX="true" +ARG ELASTICSEARCH_URL="http://elasticsearch:9200" +ARG ISM_SNAPSHOT_COMPRESSED=false +ARG ISM_SNAPSHOT_REPO=logs +ARG KIBANA_OFFLINE_REGION_MAPS_PORT="28991" +ARG KIBANA_URL="http://kibana:5601/kibana" + +ENV ARKIME_INDEX_PATTERN $ARKIME_INDEX_PATTERN +ENV ARKIME_INDEX_PATTERN_ID $ARKIME_INDEX_PATTERN_ID +ENV ARKIME_INDEX_TIME_FIELD $ARKIME_INDEX_TIME_FIELD +ENV CREATE_ES_ARKIME_SESSION_INDEX $CREATE_ES_ARKIME_SESSION_INDEX +ENV ELASTICSEARCH_URL $ELASTICSEARCH_URL +ENV ISM_SNAPSHOT_COMPRESSED $ISM_SNAPSHOT_COMPRESSED +ENV ISM_SNAPSHOT_REPO $ISM_SNAPSHOT_REPO +ENV KIBANA_OFFLINE_REGION_MAPS_PORT $KIBANA_OFFLINE_REGION_MAPS_PORT +ENV KIBANA_URL $KIBANA_URL +ENV PATH="/data:${PATH}" + +ENV SUPERCRONIC_VERSION "0.1.12" +ENV SUPERCRONIC_URL "https://github.com/aptible/supercronic/releases/download/v$SUPERCRONIC_VERSION/supercronic-linux-amd64" +ENV SUPERCRONIC "supercronic-linux-amd64" +ENV SUPERCRONIC_SHA1SUM "048b95b48b708983effb2e5c935a1ef8483d9e3e" +ENV SUPERCRONIC_CRONTAB "/etc/crontab" + +ADD kibana/dashboards /opt/kibana/dashboards +ADD kibana/maps /opt/maps +ADD kibana/scripts /data/ +ADD kibana/supervisord.conf /etc/supervisord.conf +ADD kibana/zeek_template.json /data/zeek_template.json +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD shared/bin/elastic_search_status.sh /data/ +ADD shared/bin/elastic_index_size_prune.py /data/ + +RUN apk --no-cache add bash python3 py3-pip curl procps psmisc npm shadow jq && \ + npm install -g http-server && \ + pip3 install supervisor humanfriendly && \ + curl -fsSLO "$SUPERCRONIC_URL" && \ + echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - && \ + chmod +x "$SUPERCRONIC" && \ + mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" && \ + ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic && \ + addgroup -g ${DEFAULT_GID} ${PGROUP} ; \ + adduser -D -H -u ${DEFAULT_UID} -h /nonexistant -s /sbin/nologin -G ${PGROUP} -g ${PUSER} ${PUSER} ; \ + addgroup ${PUSER} tty ; \ + addgroup ${PUSER} shadow ; \ + mkdir -p /data/init && \ + chown -R ${PUSER}:${PGROUP} /opt/kibana/dashboards /opt/maps /data/init && \ + chmod 755 /data/*.sh /data/*.py /data/init && \ + chmod 400 /opt/maps/* && \ + (echo -e "*/2 * * * * /data/kibana-create-moloch-sessions-index.sh\n0 10 * * * /data/kibana_index_refresh.py --template zeek_template\n*/20 * * * * /data/elastic_index_size_prune.py" > ${SUPERCRONIC_CRONTAB}) + +EXPOSE $KIBANA_OFFLINE_REGION_MAPS_PORT + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh"] + +CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf", "-n"] + +VOLUME ["/data/init"] + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/kibana.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/kibana.Dockerfile new file mode 100644 index 0000000..a931396 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/kibana.Dockerfile @@ -0,0 +1,157 @@ +FROM amazonlinux:2 AS build + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# set up build environment for kibana plugins built from source + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "kibana" +ENV PGROUP "kibana" + +ENV TERM xterm + +ARG ELASTIC_VERSION="7.10.2" +ENV ELASTIC_VERSION $ELASTIC_VERSION + +# base system dependencies for checking out and building elastic/kibana-based plugins + +USER root + +RUN amazon-linux-extras install -y epel && \ + yum install -y curl patch procps psmisc tar zip unzip gcc-c++ make moreutils jq git && \ + groupadd -g ${DEFAULT_GID} ${PGROUP} && \ + adduser -u ${DEFAULT_UID} -d /home/kibana -s /bin/bash -G ${PGROUP} -g ${PUSER} ${PUSER} && \ + mkdir -p /usr/share && \ + git clone --depth 1 --recurse-submodules --shallow-submodules --single-branch --branch "v${ELASTIC_VERSION}" https://github.com/elastic/elasticsearch /usr/share/elastic && \ + git clone --depth 1 --recurse-submodules --shallow-submodules --single-branch --branch "v${ELASTIC_VERSION}" https://github.com/elastic/kibana /usr/share/kibana && \ + chown -R ${DEFAULT_UID}:${DEFAULT_GID} /usr/share/kibana /usr/share/elastic + +# build plugins as non-root + +USER ${PUSER} + +# use nodenv (https://github.com/nodenv/nodenv) to manage nodejs/yarn + +ENV PATH "/home/kibana/.nodenv/bin:${PATH}" + +RUN git clone --single-branch --depth=1 --recurse-submodules --shallow-submodules https://github.com/nodenv/nodenv.git /home/kibana/.nodenv && \ + cd /home/kibana/.nodenv && \ + ./src/configure && \ + make -C src && \ + cd /tmp && \ + eval "$(nodenv init -)" && \ + mkdir -p "$(nodenv root)"/plugins && \ + git clone --depth 1 --recurse-submodules --shallow-submodules --single-branch https://github.com/nodenv/node-build.git "$(nodenv root)"/plugins/node-build && \ + git clone --depth 1 --recurse-submodules --shallow-submodules --single-branch https://github.com/nodenv/nodenv-update.git "$(nodenv root)"/plugins/nodenv-update && \ + git clone --depth 1 --recurse-submodules --shallow-submodules --single-branch https://github.com/pine/nodenv-yarn-install.git "$(nodenv root)"/plugins/nodenv-yarn-install && \ + nodenv install "$(cat /usr/share/kibana/.node-version)" && \ + nodenv global "$(cat /usr/share/kibana/.node-version)" + +# check out and build plugins + +RUN eval "$(nodenv init -)" && \ + mkdir -p /usr/share/kibana/plugins && \ + git clone --depth 1 --recurse-submodules --shallow-submodules --single-branch --branch feature/update_7.10.1 https://github.com/mmguero-dev/kbn_sankey_vis.git /usr/share/kibana/plugins/sankey_vis && \ + cd /usr/share/kibana/plugins/sankey_vis && \ + yarn kbn bootstrap && \ + yarn install && \ + yarn build --kibana-version "${ELASTIC_VERSION}" && \ + mv ./build/kbnSankeyVis-7.10.2.zip ./build/kbnSankeyVis.zip + +FROM amazon/opendistro-for-elasticsearch-kibana:1.13.2 + +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/kibana-od' +LABEL org.opencontainers.image.description='Malcolm container providing Kibana (the Apache-licensed Open Distro variant)' + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "kibana" +ENV PGROUP "kibana" +ENV PUSER_PRIV_DROP true + +ENV TERM xterm + +ARG ELASTICSEARCH_URL="http://elasticsearch:9200" +ARG CREATE_ES_ARKIME_SESSION_INDEX="true" +ARG ARKIME_INDEX_PATTERN="sessions2-*" +ARG ARKIME_INDEX_PATTERN_ID="sessions2-*" +ARG ARKIME_INDEX_TIME_FIELD="firstPacket" +ARG KIBANA_DEFAULT_DASHBOARD="0ad3d7c2-3441-485e-9dfe-dbb22e84e576" + +ENV CREATE_ES_ARKIME_SESSION_INDEX $CREATE_ES_ARKIME_SESSION_INDEX +ENV ARKIME_INDEX_PATTERN $ARKIME_INDEX_PATTERN +ENV ARKIME_INDEX_PATTERN_ID $ARKIME_INDEX_PATTERN_ID +ENV ARKIME_INDEX_TIME_FIELD $ARKIME_INDEX_TIME_FIELD +ENV KIBANA_DEFAULT_DASHBOARD $KIBANA_DEFAULT_DASHBOARD +ENV KIBANA_OFFLINE_REGION_MAPS $KIBANA_OFFLINE_REGION_MAPS +ENV KIBANA_OFFLINE_REGION_MAPS_PORT $KIBANA_OFFLINE_REGION_MAPS_PORT +ENV PATH="/data:${PATH}" +ENV ELASTICSEARCH_URL $ELASTICSEARCH_URL +ENV KIBANA_DEFAULT_DASHBOARD $KIBANA_DEFAULT_DASHBOARD + +USER root + +# curl -sSL -o /tmp/kibana-drilldown.zip "https://codeload.github.com/mmguero-dev/kibana-plugin-drilldownmenu/zip/master" && \ +# cd /tmp && \ +# echo "Installing Drilldown menu plugin..." && \ +# unzip /tmp/kibana-drilldown.zip && \ +# mkdir ./kibana &&\ +# mv ./kibana-plugin-drilldownmenu-* ./kibana/kibana-plugin-drilldownmenu && \ +# cd ./kibana/kibana-plugin-drilldownmenu && \ +# sed -i "s/7\.6\.2/7\.10\.0/g" ./package.json && \ +# npm install && \ +# cd /tmp && \ +# zip -r drilldown.zip kibana --exclude ./kibana/kibana-plugin-drilldownmenu/.git\* && \ +# cd /usr/share/kibana/plugins && \ +# /usr/share/kibana/bin/kibana-plugin install file:///tmp/drilldown.zip --allow-root && \ +# rm -rf /tmp/kibana /tmp/*drilldown* && \ +# cd /tmp && \ +# rm -rf /tmp/npm-* + +COPY --from=build /usr/share/kibana/plugins/sankey_vis/build/kbnSankeyVis.zip /tmp/kbnSankeyVis.zip +ADD "https://github.com/dlumbrer/kbn_network/releases/download/7.10.0-1/kbn_network-7.10.0.zip" /tmp/kibana-network.zip + +RUN yum install -y curl psmisc zip unzip && \ + yum clean all && \ + usermod -a -G tty ${PUSER} && \ + # Malcolm manages authentication and encryption via NGINX reverse proxy + /usr/share/kibana/bin/kibana-plugin remove opendistroSecurityKibana --allow-root && \ + cd /usr/share/kibana/plugins && \ + /usr/share/kibana/bin/kibana-plugin install file:///tmp/kbnSankeyVis.zip --allow-root && \ + cd /tmp && \ + unzip kibana-network.zip kibana/kbn_network/kibana.json kibana/kbn_network/package.json && \ + sed -i "s/7\.10\.0/7\.10\.2/g" kibana/kbn_network/kibana.json && \ + sed -i "s/7\.10\.0/7\.10\.2/g" kibana/kbn_network/package.json && \ + zip kibana-network.zip kibana/kbn_network/kibana.json kibana/kbn_network/package.json && \ + cd /usr/share/kibana/plugins && \ + /usr/share/kibana/bin/kibana-plugin install file:///tmp/kibana-network.zip --allow-root && \ + rm -rf /tmp/kibana-comments.zip /tmp/kibana + +ADD kibana/kibana.yml /usr/share/kibana/config/kibana.yml +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh"] + +CMD ["/usr/local/bin/kibana-docker"] + +EXPOSE 5601 + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/logstash.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/logstash.Dockerfile new file mode 100644 index 0000000..95e526d --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/logstash.Dockerfile @@ -0,0 +1,138 @@ +FROM amazonlinux:2 AS build + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +RUN amazon-linux-extras install -y epel && \ + yum install -y \ + autoconf \ + automake \ + bison \ + bzip2 \ + curl \ + gcc-c++ \ + glibc-devel \ + glibc-headers \ + java-latest-openjdk-devel \ + libffi-devel \ + libtool \ + libyaml-devel \ + make \ + openssl-devel \ + patch \ + procps \ + readline-devel \ + tar \ + wget \ + which \ + zlib-devel + +RUN /bin/bash -lc "command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -" && \ + /bin/bash -lc "command curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -" && \ + /bin/bash -lc "curl -L get.rvm.io | bash -s stable" && \ + /bin/bash -lc "rvm autolibs fail" && \ + /bin/bash -lc "rvm install jruby-9.2.17.0" && \ + /bin/bash -lc "rvm use jruby-9.2.17.0 --default" && \ + /bin/bash -lc "gem install bundler --no-document" + +ENV OUIFILTER_URL "https://codeload.github.com/mmguero-dev/logstash-filter-ieee_oui/tar.gz/master" + +RUN cd /opt && \ + mkdir -p ./logstash-filter-ieee_oui && \ + curl -sSL "$OUIFILTER_URL" | tar xzvf - -C ./logstash-filter-ieee_oui --strip-components 1 && \ + /bin/bash -lc "export JAVA_HOME=$(realpath $(dirname $(find /usr/lib/jvm -name javac -type f))/../) && cd /opt/logstash-filter-ieee_oui && ( bundle install || bundle install ) && gem build logstash-filter-ieee_oui.gemspec && bundle info logstash-filter-ieee_oui" + +FROM docker.elastic.co/logstash/logstash-oss:7.10.2 + +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/logstash-oss' +LABEL org.opencontainers.image.description='Malcolm container providing Logstash (the Apache-licensed variant)' + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "logstash" +ENV PGROUP "logstash" +ENV PUSER_PRIV_DROP true + +ENV TERM xterm + +ARG LOGSTASH_ENRICHMENT_PIPELINE=enrichment +ARG LOGSTASH_PARSE_PIPELINE_ADDRESSES=zeek-parse +ARG LOGSTASH_ELASTICSEARCH_PIPELINE_ADDRESS_INTERNAL=internal-es +ARG LOGSTASH_ELASTICSEARCH_PIPELINE_ADDRESS_EXTERNAL=external-es +ARG LOGSTASH_ELASTICSEARCH_OUTPUT_PIPELINE_ADDRESSES=internal-es,external-es + +ENV LOGSTASH_ENRICHMENT_PIPELINE $LOGSTASH_ENRICHMENT_PIPELINE +ENV LOGSTASH_PARSE_PIPELINE_ADDRESSES $LOGSTASH_PARSE_PIPELINE_ADDRESSES +ENV LOGSTASH_ELASTICSEARCH_PIPELINE_ADDRESS_INTERNAL $LOGSTASH_ELASTICSEARCH_PIPELINE_ADDRESS_INTERNAL +ENV LOGSTASH_ELASTICSEARCH_PIPELINE_ADDRESS_EXTERNAL $LOGSTASH_ELASTICSEARCH_PIPELINE_ADDRESS_EXTERNAL +ENV LOGSTASH_ELASTICSEARCH_OUTPUT_PIPELINE_ADDRESSES $LOGSTASH_ELASTICSEARCH_OUTPUT_PIPELINE_ADDRESSES +ENV JAVA_HOME=/usr/share/logstash/jdk + +USER root + +COPY --from=build /opt/logstash-filter-ieee_oui /opt/logstash-filter-ieee_oui + +RUN yum install -y epel-release && \ + yum update -y && \ + yum install -y curl gettext python-setuptools python-pip python-requests python-yaml openssl && \ + yum clean all && \ + pip install py2-ipaddress supervisor && \ + logstash-plugin install logstash-filter-translate logstash-filter-cidr logstash-filter-dns \ + logstash-filter-json logstash-filter-prune logstash-filter-http \ + logstash-filter-grok logstash-filter-geoip logstash-filter-uuid \ + logstash-filter-kv logstash-filter-mutate logstash-filter-dissect \ + logstash-input-beats logstash-output-elasticsearch && \ + logstash-plugin install /opt/logstash-filter-ieee_oui/logstash-filter-ieee_oui-1.0.6.gem && \ + rm -rf /opt/logstash-filter-ieee_oui /root/.cache /root/.gem /root/.bundle + +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD shared/bin/jdk-cacerts-auto-import.sh /usr/local/bin/ +ADD logstash/maps/*.yaml /etc/ +ADD logstash/config/log4j2.properties /usr/share/logstash/config/ +ADD logstash/config/logstash.yml /usr/share/logstash/config/ +ADD logstash/pipelines/ /usr/share/logstash/malcolm-pipelines/ +ADD logstash/scripts /usr/local/bin/ +ADD logstash/supervisord.conf /etc/supervisord.conf + +RUN bash -c "chmod --silent 755 /usr/local/bin/*.sh /usr/local/bin/*.py || true" && \ + usermod -a -G tty ${PUSER} && \ + rm -f /usr/share/logstash/pipeline/logstash.conf && \ + rmdir /usr/share/logstash/pipeline && \ + mkdir /logstash-persistent-queue && \ + chown --silent -R ${PUSER}:root /usr/share/logstash/malcolm-pipelines /logstash-persistent-queue && \ + curl -sSL -o /usr/share/logstash/config/oui.txt "https://raw.githubusercontent.com/wireshark/wireshark/master/manuf" && \ + ( awk -F '\t' '{gsub(":", "", $1); if (length($1) == 6) {if ($3) {print $1"\t"$3} else if ($2) {print $1"\t"$2}}}' /usr/share/logstash/config/oui.txt > /usr/share/logstash/config/oui-logstash.txt) && \ + python /usr/local/bin/ja3_build_list.py -o /etc/ja3.yaml + +# As the keystore is encapsulated in logstash, this isn't really necessary. It's included +# here just to suppress the prompt when creating the keystore. If you're concerned about it +# you could change or remove this from the Dockerfile, and/or override it with your +# own envrionment variable at runtime. +ENV LOGSTASH_KEYSTORE_PASS "a410a267b1404c949284dee25518a917" + +VOLUME ["/logstash-persistent-queue"] + +EXPOSE 5044 +EXPOSE 9001 +EXPOSE 9600 + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh"] + +CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf", "-n"] + + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/name-map-ui.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/name-map-ui.Dockerfile new file mode 100644 index 0000000..cfc5c73 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/name-map-ui.Dockerfile @@ -0,0 +1,80 @@ +FROM alpine:3.14 + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/name-map-ui' +LABEL org.opencontainers.image.description='Malcolm container providing a user interface for mapping names to network hosts and subnets' + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "nginxsrv" +ENV PGROUP "nginxsrv" +ENV PUSER_PRIV_DROP true +ENV PUSER_CHOWN "/var/www/html;/var/lib/nginx;/var/log/nginx" + +ENV TERM xterm + +ENV JQUERY_VERSION 1.6.4 +ENV LISTJS_VERSION v1.5.0 + +RUN apk --no-cache add bash php7 php7-fpm php7-mysqli php7-json php7-openssl php7-curl php7-fileinfo \ + php7-zlib php7-xml php7-phar php7-intl php7-dom php7-xmlreader php7-ctype php7-session \ + php7-mbstring php7-gd nginx supervisor curl inotify-tools file psmisc shadow + +COPY name-map-ui/config/nginx.conf /etc/nginx/nginx.conf +COPY name-map-ui/config/fpm-pool.conf /etc/php7/php-fpm.d/www.conf +COPY name-map-ui/config/php.ini /etc/php7/conf.d/custom.ini +COPY name-map-ui/config/supervisord.conf /etc/supervisord.conf +COPY name-map-ui/config/supervisor_logstash_ctl.conf /etc/supervisor/logstash/supervisord.conf +COPY name-map-ui/scripts/*.sh /usr/local/bin/ + +RUN curl -sSL -o /tmp/jquery.min.js "https://code.jquery.com/jquery-${JQUERY_VERSION}.min.js" && \ + curl -sSL -o /tmp/list.min.js "https://raw.githubusercontent.com/javve/list.js/${LISTJS_VERSION}/dist/list.min.js" && \ + rm -rf /etc/nginx/conf.d/default.conf /var/www/html/* && \ + mkdir -p /var/www/html/upload /var/www/html/maps && \ + cd /var/www/html && \ + mv /tmp/jquery.min.js /tmp/list.min.js ./ && \ + chmod 644 ./jquery.min.js ./list.min.js && \ + ln -s . name-map-ui && \ + addgroup -g ${DEFAULT_GID} ${PGROUP} ; \ + adduser -D -H -u ${DEFAULT_UID} -h /var/www/html -s /sbin/nologin -G ${PGROUP} -g ${PUSER} ${PUSER} ; \ + addgroup ${PUSER} nginx ; \ + addgroup ${PUSER} shadow ; \ + addgroup ${PUSER} tty ; \ + addgroup nginx tty ; \ + chown -R ${PUSER}:${PGROUP} /var/www/html && \ + chown -R ${PUSER}:${PGROUP} /var/lib/nginx && \ + chown -R ${PUSER}:${PGROUP} /var/log/nginx && \ + chmod 755 /usr/local/bin/*.sh + +VOLUME /var/www/html + +WORKDIR /var/www/html + +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +COPY name-map-ui/site/ /var/www/html/ +COPY docs/images/logo/Malcolm_banner.png /var/www/html/ +COPY docs/images/favicon/favicon.ico /var/www/html/ + +EXPOSE 8080 + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh"] + +CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf", "-n"] + + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/nginx.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/nginx.Dockerfile new file mode 100644 index 0000000..ff74f15 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/nginx.Dockerfile @@ -0,0 +1,252 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +#################################################################################### +# thanks to: nginx - https://github.com/nginxinc/docker-nginx/blob/master/mainline/alpine/Dockerfile +# kvspb/nginx-auth-ldap - https://github.com/kvspb/nginx-auth-ldap +# tiredofit/docker-nginx-ldap - https://github.com/tiredofit/docker-nginx-ldap/blob/master/Dockerfile +# jwilder/nginx-proxy - https://github.com/jwilder/nginx-proxy/blob/master/Dockerfile.alpine + +#################################################################################### + +FROM alpine:3.13 as stunnel_build + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=300 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "builder" +ENV PGROUP "abuild" + +ADD https://codeload.github.com/alpinelinux/aports/tar.gz/master /aports-master.tar.gz + +USER root + +RUN set -x ; \ + apk add --no-cache alpine-sdk sudo openssl-dev linux-headers; \ + sed -i 's/^#\s*\(%wheel\s\+ALL=(ALL)\s\+NOPASSWD:\s\+ALL\)/\1/' /etc/sudoers ; \ + adduser -D -u ${DEFAULT_UID} -h /apkbuild -G ${PGROUP} ${PUSER} ; \ + addgroup ${PUSER} wheel ; \ + chmod 644 /aports-master.tar.gz + +USER ${PUSER} + +RUN set -x ; \ + cd /apkbuild ; \ + tar xvf /aports-master.tar.gz aports-master/community/stunnel ; \ + cd /apkbuild/aports-master/community/stunnel ; \ + abuild-keygen -a -i -n ; \ + abuild checksum ; \ + abuild -R + +#################################################################################### + +FROM alpine:3.13 + +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/nginx-proxy' +LABEL org.opencontainers.image.description='Malcolm container providing an NGINX reverse proxy for the other services' + +ARG DEFAULT_UID=101 +ARG DEFAULT_GID=101 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "nginx" +ENV PGROUP "nginx" +# not dropping privileges globally so nginx and stunnel can bind privileged ports internally. +# nginx itself will drop privileges to "nginx" user for worker processes +ENV PUSER_PRIV_DROP false + +ENV TERM xterm + +USER root + +# authentication method: encrypted HTTP basic authentication ('true') vs nginx-auth-ldap ('false') +ARG NGINX_BASIC_AUTH=true + +# NGINX LDAP (NGINX_BASIC_AUTH=false) can support LDAP, LDAPS, or LDAP+StartTLS. +# For StartTLS, set NGINX_LDAP_TLS_STUNNEL=true to issue the StartTLS command +# and use stunnel to tunnel the connection. +ARG NGINX_LDAP_TLS_STUNNEL=false + +# stunnel will require and verify certificates for StartTLS when one or more +# trusted CA certificate files are placed in the ./nginx/ca-trust directory. +# For additional security, hostname or IP address checking of the associated +# CA certificate(s) can be enabled by providing these values. +# see https://www.stunnel.org/howto.html +# https://www.openssl.org/docs/man1.1.1/man3/X509_check_host.html +ARG NGINX_LDAP_TLS_STUNNEL_CHECK_HOST= +ARG NGINX_LDAP_TLS_STUNNEL_CHECK_IP= +ARG NGINX_LDAP_TLS_STUNNEL_VERIFY_LEVEL=2 + +ENV NGINX_BASIC_AUTH $NGINX_BASIC_AUTH +ENV NGINX_LDAP_TLS_STUNNEL $NGINX_LDAP_TLS_STUNNEL +ENV NGINX_LDAP_TLS_STUNNEL_CHECK_HOST $NGINX_LDAP_TLS_STUNNEL_CHECK_HOST +ENV NGINX_LDAP_TLS_STUNNEL_CHECK_IP $NGINX_LDAP_TLS_STUNNEL_CHECK_IP +ENV NGINX_LDAP_TLS_STUNNEL_VERIFY_LEVEL $NGINX_LDAP_TLS_STUNNEL_VERIFY_LEVEL + +# build latest nginx with nginx-auth-ldap +ENV NGINX_VERSION=1.20.1 +ENV NGINX_AUTH_LDAP_BRANCH=master + +ADD https://codeload.github.com/mmguero-dev/nginx-auth-ldap/tar.gz/$NGINX_AUTH_LDAP_BRANCH /nginx-auth-ldap.tar.gz +ADD http://nginx.org/download/nginx-$NGINX_VERSION.tar.gz /nginx.tar.gz + +COPY --from=stunnel_build /apkbuild/packages/community/x86_64/stunnel-*.apk /tmp/ + +RUN set -x ; \ + CONFIG="\ + --prefix=/etc/nginx \ + --sbin-path=/usr/sbin/nginx \ + --modules-path=/usr/lib/nginx/modules \ + --conf-path=/etc/nginx/nginx.conf \ + --error-log-path=/var/log/nginx/error.log \ + --http-log-path=/var/log/nginx/access.log \ + --pid-path=/var/run/nginx.pid \ + --lock-path=/var/run/nginx.lock \ + --http-client-body-temp-path=/var/cache/nginx/client_temp \ + --http-proxy-temp-path=/var/cache/nginx/proxy_temp \ + --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \ + --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \ + --http-scgi-temp-path=/var/cache/nginx/scgi_temp \ + --user=${PUSER} \ + --group=${PGROUP} \ + --with-http_ssl_module \ + --with-http_realip_module \ + --with-http_addition_module \ + --with-http_sub_module \ + --with-http_dav_module \ + --with-http_flv_module \ + --with-http_mp4_module \ + --with-http_gunzip_module \ + --with-http_gzip_static_module \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_stub_status_module \ + --with-http_auth_request_module \ + --with-http_xslt_module=dynamic \ + --with-http_image_filter_module=dynamic \ + --with-http_geoip_module=dynamic \ + --with-http_perl_module=dynamic \ + --with-threads \ + --with-stream \ + --with-stream_ssl_module \ + --with-stream_ssl_preread_module \ + --with-stream_realip_module \ + --with-stream_geoip_module=dynamic \ + --with-http_slice_module \ + --with-mail \ + --with-mail_ssl_module \ + --with-compat \ + --with-file-aio \ + --with-http_v2_module \ + --add-module=/usr/src/nginx-auth-ldap \ + " ; \ + apk add --no-cache curl shadow; \ + addgroup -g ${DEFAULT_GID} -S ${PGROUP} ; \ + adduser -S -D -H -u ${DEFAULT_UID} -h /var/cache/nginx -s /sbin/nologin -G ${PGROUP} -g ${PUSER} ${PUSER} ; \ + addgroup ${PUSER} shadow ; \ + mkdir -p /var/cache/nginx ; \ + chown ${PUSER}:${PGROUP} /var/cache/nginx ; \ + apk add --no-cache --virtual .nginx-build-deps \ + gcc \ + gd-dev \ + geoip-dev \ + gnupg \ + libc-dev \ + libressl-dev \ + libxslt-dev \ + linux-headers \ + make \ + openldap-dev \ + pcre-dev \ + perl-dev \ + tar \ + zlib-dev \ + ; \ + \ + mkdir -p /usr/src/nginx-auth-ldap /www /www/logs/nginx ; \ + tar -zxC /usr/src -f /nginx.tar.gz ; \ + tar -zxC /usr/src/nginx-auth-ldap --strip=1 -f /nginx-auth-ldap.tar.gz ; \ + cd /usr/src/nginx-$NGINX_VERSION ; \ + ./configure $CONFIG --with-debug ; \ + make -j$(getconf _NPROCESSORS_ONLN) ; \ + mv objs/nginx objs/nginx-debug ; \ + mv objs/ngx_http_xslt_filter_module.so objs/ngx_http_xslt_filter_module-debug.so ; \ + mv objs/ngx_http_image_filter_module.so objs/ngx_http_image_filter_module-debug.so ; \ + mv objs/ngx_http_geoip_module.so objs/ngx_http_geoip_module-debug.so ; \ + mv objs/ngx_http_perl_module.so objs/ngx_http_perl_module-debug.so ; \ + mv objs/ngx_stream_geoip_module.so objs/ngx_stream_geoip_module-debug.so ; \ + ./configure $CONFIG ; \ + make -j$(getconf _NPROCESSORS_ONLN) ; \ + make install ; \ + rm -rf /etc/nginx/html/ ; \ + mkdir -p /etc/nginx/conf.d/ ; \ + mkdir -p /usr/share/nginx/html/ ; \ + install -m644 html/index.html /usr/share/nginx/html/ ; \ + install -m644 html/50x.html /usr/share/nginx/html/ ; \ + install -m755 objs/nginx-debug /usr/sbin/nginx-debug ; \ + install -m755 objs/ngx_http_xslt_filter_module-debug.so /usr/lib/nginx/modules/ngx_http_xslt_filter_module-debug.so ; \ + install -m755 objs/ngx_http_image_filter_module-debug.so /usr/lib/nginx/modules/ngx_http_image_filter_module-debug.so ; \ + install -m755 objs/ngx_http_geoip_module-debug.so /usr/lib/nginx/modules/ngx_http_geoip_module-debug.so ; \ + install -m755 objs/ngx_http_perl_module-debug.so /usr/lib/nginx/modules/ngx_http_perl_module-debug.so ; \ + install -m755 objs/ngx_stream_geoip_module-debug.so /usr/lib/nginx/modules/ngx_stream_geoip_module-debug.so ; \ + ln -s ../../usr/lib/nginx/modules /etc/nginx/modules ; \ + strip /usr/sbin/nginx* ; \ + strip /usr/lib/nginx/modules/*.so ; \ + rm -rf /usr/src/nginx-$NGINX_VERSION ; \ + \ + # Bring in gettext so we can get `envsubst`, then throw + # the rest away. To do this, we need to install `gettext` + # then move `envsubst` out of the way so `gettext` can + # be deleted completely, then move `envsubst` back. + apk add --no-cache --virtual .gettext gettext ; \ + mv /usr/bin/envsubst /tmp/ ; \ + \ + runDeps="$( \ + scanelf --needed --nobanner /usr/sbin/nginx /usr/lib/nginx/modules/*.so /tmp/envsubst \ + | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \ + | sort -u \ + | xargs -r apk info --installed \ + | sort -u \ + )" ; \ + apk add --no-cache --virtual .nginx-rundeps $runDeps ca-certificates bash wget openssl apache2-utils openldap supervisor tzdata; \ + update-ca-certificates; \ + apk add --no-cache --allow-untrusted /tmp/stunnel-*.apk; \ + apk del .nginx-build-deps ; \ + apk del .gettext ; \ + mv /tmp/envsubst /usr/local/bin/ ; \ + rm -rf /usr/src/* /var/tmp/* /var/cache/apk/* /tmp/stunnel-*.apk /nginx.tar.gz /nginx-auth-ldap.tar.gz; \ + touch /etc/nginx/nginx_ldap.conf /etc/nginx/nginx_blank.conf; + +COPY --from=jwilder/nginx-proxy:alpine /app/nginx.tmpl /etc/nginx/ +COPY --from=jwilder/nginx-proxy:alpine /etc/nginx/network_internal.conf /etc/nginx/ +COPY --from=jwilder/nginx-proxy:alpine /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/ + +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD nginx/scripts /usr/local/bin/ +ADD nginx/*.conf /etc/nginx/ +ADD nginx/supervisord.conf /etc/ +ADD docs/images/icon/favicon.ico /etc/nginx/favicon.ico + +EXPOSE 80 + +VOLUME ["/etc/nginx/certs", "/etc/nginx/dhparam"] + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh", "/usr/local/bin/docker_entrypoint.sh"] + +CMD ["supervisord", "-c", "/etc/supervisord.conf", "-u", "root", "-n"] + + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/pcap-capture.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/pcap-capture.Dockerfile new file mode 100644 index 0000000..de575e6 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/pcap-capture.Dockerfile @@ -0,0 +1,97 @@ +FROM debian:buster-slim + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/pcap-capture' +LABEL org.opencontainers.image.description='Malcolm container providing network traffic capture capabilities via netsniff-ng and tcpdump' + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "pcap" +ENV PGROUP "pcap" +# not dropping privileges globally: supervisord will take care of it +# for all processes, but first we need root to sure capabilities for +# traffic capturing tools are in-place before they are started. +# despite doing setcap here in the Dockerfile, the chown in +# docker-uid-gid-setup.sh will cause them to be lost, so we need +# a final check in supervisor.sh before startup +ENV PUSER_PRIV_DROP false + +ENV DEBIAN_FRONTEND noninteractive +ENV TERM xterm + +ARG PCAP_ENABLE_TCPDUMP=false +ARG PCAP_ENABLE_NETSNIFF=false +# PCAP_IFACE=comma-separated list of capture interfaces +ARG PCAP_IFACE=eth0 +ARG PCAP_NETSNIFF_MAGIC=0xa1b2c3d4 +ARG PCAP_TCPDUMP_FILENAME_PATTERN=%Y%m%d%H%M%S.pcap +ARG PCAP_ROTATE_MINUTES=30 +ARG PCAP_ROTATE_MEGABYTES=500 +ARG PCAP_PATH=/pcap +ARG PCAP_FILTER= +ARG PCAP_SNAPLEN=0 + +ENV PCAP_ENABLE_TCPDUMP $PCAP_ENABLE_TCPDUMP +ENV PCAP_ENABLE_NETSNIFF $PCAP_ENABLE_NETSNIFF +ENV PCAP_IFACE $PCAP_IFACE +ENV PCAP_NETSNIFF_MAGIC $PCAP_NETSNIFF_MAGIC +ENV PCAP_TCPDUMP_FILENAME_PATTERN $PCAP_TCPDUMP_FILENAME_PATTERN +ENV PCAP_ROTATE_MINUTES $PCAP_ROTATE_MINUTES +ENV PCAP_ROTATE_MEGABYTES $PCAP_ROTATE_MEGABYTES +ENV PCAP_PATH $PCAP_PATH +ENV PCAP_FILTER $PCAP_FILTER +ENV PCAP_SNAPLEN $PCAP_SNAPLEN + +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD pcap-capture/supervisord.conf /etc/supervisord.conf +ADD pcap-capture/scripts/*.sh /usr/local/bin/ +ADD pcap-capture/templates/*.template /etc/supervisor.d/ + +RUN apt-get update && \ + apt-get install --no-install-recommends -y -q \ + bc \ + ethtool \ + libcap2-bin \ + netsniff-ng \ + procps \ + psmisc \ + supervisor \ + tcpdump && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* && \ + groupadd --gid ${DEFAULT_GID} ${PGROUP} && \ + useradd -M --uid ${DEFAULT_UID} --gid ${DEFAULT_GID} ${PUSER} && \ + mkdir -p /etc/supervisor.d && \ + chown -R ${PUSER}:${PGROUP} /etc/supervisor.d && \ + chmod -R 750 /etc/supervisor.d && \ + chown root:${PGROUP} /sbin/ethtool && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /sbin/ethtool && \ + chown root:${PGROUP} /usr/sbin/tcpdump && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/sbin/tcpdump && \ + chown root:${PGROUP} /usr/sbin/netsniff-ng && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip CAP_IPC_LOCK+eip CAP_SYS_ADMIN+eip' /usr/sbin/netsniff-ng && \ + chmod 755 /usr/local/bin/*.sh + +WORKDIR "$PCAP_PATH" + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh"] + +CMD ["/usr/local/bin/supervisor.sh"] + + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/pcap-monitor.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/pcap-monitor.Dockerfile new file mode 100644 index 0000000..0722646 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/pcap-monitor.Dockerfile @@ -0,0 +1,80 @@ +FROM debian:buster-slim + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/pcap-monitor' +LABEL org.opencontainers.image.description='Malcolm container watching for captured or uploaded artifacts to be processed' + +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "watcher" +ENV PGROUP "watcher" +# not dropping privileges globally: supervisord will take care of it +# on a case-by-case basis so that one script (watch-pcap-uploads-folder.sh) +# can chown uploaded files +ENV PUSER_PRIV_DROP false + +ENV DEBIAN_FRONTEND noninteractive +ENV TERM xterm + +ARG ELASTICSEARCH_URL="http://elasticsearch:9200" +ARG PCAP_PATH=/pcap +ARG PCAP_PIPELINE_DEBUG=false +ARG PCAP_PIPELINE_DEBUG_EXTRA=false +ARG PCAP_PIPELINE_IGNORE_PREEXISTING=false +ARG ZEEK_PATH=/zeek + +ENV ELASTICSEARCH_URL $ELASTICSEARCH_URL +ENV PCAP_PATH $PCAP_PATH +ENV PCAP_PIPELINE_DEBUG $PCAP_PIPELINE_DEBUG +ENV PCAP_PIPELINE_DEBUG_EXTRA $PCAP_PIPELINE_DEBUG_EXTRA +ENV PCAP_PIPELINE_IGNORE_PREEXISTING $PCAP_PIPELINE_IGNORE_PREEXISTING +ENV ZEEK_PATH $ZEEK_PATH + +RUN apt-get update && \ + apt-get install --no-install-recommends -y -q \ + file \ + inotify-tools \ + libzmq5 \ + procps \ + psmisc \ + python \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + supervisor \ + vim-tiny && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* && \ + pip3 install --no-cache-dir elasticsearch elasticsearch_dsl pyzmq pyinotify python-magic && \ + groupadd --gid ${DEFAULT_GID} ${PGROUP} && \ + useradd -M --uid ${DEFAULT_UID} --gid ${DEFAULT_GID} ${PUSER} + +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD pcap-monitor/supervisord.conf /etc/supervisord.conf +ADD pcap-monitor/scripts/ /usr/local/bin/ +ADD shared/bin/pcap_watcher.py /usr/local/bin/ +ADD shared/bin/pcap_utils.py /usr/local/bin/ + +EXPOSE 30441 + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh"] + +CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf", "-u", "root", "-n"] + + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/Dockerfiles/zeek.Dockerfile b/Vagrant/resources/malcolm/Dockerfiles/zeek.Dockerfile new file mode 100644 index 0000000..f72ab65 --- /dev/null +++ b/Vagrant/resources/malcolm/Dockerfiles/zeek.Dockerfile @@ -0,0 +1,234 @@ +FROM debian:buster-slim + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +LABEL maintainer="malcolm.netsec@gmail.com" +LABEL org.opencontainers.image.authors='malcolm.netsec@gmail.com' +LABEL org.opencontainers.image.url='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.documentation='https://github.com/cisagov/Malcolm/blob/master/README.md' +LABEL org.opencontainers.image.source='https://github.com/cisagov/Malcolm' +LABEL org.opencontainers.image.vendor='Cybersecurity and Infrastructure Security Agency' +LABEL org.opencontainers.image.title='malcolmnetsec/zeek' +LABEL org.opencontainers.image.description='Malcolm container providing Zeek' + +ENV DEBIAN_FRONTEND noninteractive +ENV TERM xterm + +# configure unprivileged user and runtime parameters +ARG DEFAULT_UID=1000 +ARG DEFAULT_GID=1000 +ENV DEFAULT_UID $DEFAULT_UID +ENV DEFAULT_GID $DEFAULT_GID +ENV PUSER "zeeker" +ENV PGROUP "zeeker" +ENV PUSER_PRIV_DROP true + +# for download and install +ARG ZEEK_LTS=1 +ARG ZEEK_VERSION=4.0.3-0 +ARG SPICY_VERSION=1.1.0 + +ENV ZEEK_LTS $ZEEK_LTS +ENV ZEEK_VERSION $ZEEK_VERSION +ENV SPICY_VERSION $SPICY_VERSION + +# for build +ENV LLVM_VERSION "11" +ENV CC "clang-${LLVM_VERSION}" +ENV CXX "clang++-${LLVM_VERSION}" +ENV ASM "clang-${LLVM_VERSION}" +ENV CCACHE_DIR "/var/spool/ccache" +ENV CCACHE_COMPRESS 1 + +# put Zeek and Spicy in PATH +ENV ZEEK_DIR "/opt/zeek" +ENV SPICY_DIR "/opt/spicy" +ENV PATH "${ZEEK_DIR}/bin:${SPICY_DIR}/bin:${ZEEK_DIR}/lib/zeek/plugins/packages/spicy-plugin/bin:${PATH}" + +# add script for building 3rd-party plugins +ADD shared/bin/zeek_install_plugins.sh /usr/local/bin/ + +# build and install system packages, zeek, spicy and plugins +RUN echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list && \ + apt-get -q update && \ + apt-get install -q -y --no-install-recommends \ + ca-certificates \ + curl \ + file \ + git \ + gnupg2 \ + jq \ + less \ + libcap2-bin \ + moreutils \ + procps \ + psmisc \ + vim-tiny && \ + ( curl -sSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - ) && \ + echo "deb http://apt.llvm.org/buster/ llvm-toolchain-buster-${LLVM_VERSION} main" >> /etc/apt/sources.list && \ + echo "deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster-${LLVM_VERSION} main" >> /etc/apt/sources.list && \ + apt-get -q update && \ + apt-get install -q -y -t buster-backports --no-install-recommends \ + bison \ + ccache \ + clang-${LLVM_VERSION} \ + cmake \ + flex \ + libatomic1 \ + libclang-${LLVM_VERSION}-dev \ + libfl-dev \ + libgoogle-perftools4 \ + libkrb5-3 \ + libmaxminddb-dev \ + libmaxminddb0 \ + libpcap-dev \ + libpcap0.8 \ + libssl-dev \ + libtcmalloc-minimal4 \ + libunwind8 \ + libzmq5 \ + llvm-${LLVM_VERSION}-dev \ + locales-all \ + make \ + ninja-build \ + python3 \ + python3-git \ + python3-pip \ + python3-semantic-version \ + python3-setuptools \ + python3-wheel \ + supervisor \ + zlib1g-dev && \ + python3 -m pip install --no-cache-dir pyzmq && \ + mkdir -p /tmp/zeek-packages && \ + cd /tmp/zeek-packages && \ + if [ -n "${ZEEK_LTS}" ]; then ZEEK_LTS="-lts"; fi && export ZEEK_LTS && \ + curl -sSL --remote-name-all \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/libbroker${ZEEK_LTS}-dev_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeek${ZEEK_LTS}-core-dev_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeek${ZEEK_LTS}-core_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeek${ZEEK_LTS}-libcaf-dev_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeek${ZEEK_LTS}_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeek${ZEEK_LTS}-btest_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeek${ZEEK_LTS}-zkg_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeekctl${ZEEK_LTS}_${ZEEK_VERSION}_amd64.deb" && \ + dpkg -i ./*.deb && \ + mkdir -p /tmp/spicy-packages && \ + cd /tmp/spicy-packages && \ + curl -sSL --remote-name-all \ + "https://github.com/zeek/spicy/releases/download/v${SPICY_VERSION}/spicy_linux_debian10.deb" && \ + dpkg -i ./*.deb && \ + cd /tmp && \ + mkdir -p "${CCACHE_DIR}" && \ + zkg autoconfig --force && \ + zkg install --force --skiptests zeek/spicy-plugin && \ + bash /usr/local/bin/zeek_install_plugins.sh && \ + ( find "${ZEEK_DIR}"/lib -type d -name CMakeFiles -exec rm -rf "{}" \; 2>/dev/null || true ) && \ + ( find "${ZEEK_DIR}"/var/lib/zkg -type d -name build -exec rm -rf "{}" \; 2>/dev/null || true ) && \ + ( find "${ZEEK_DIR}"/var/lib/zkg/clones -type d -name .git -execdir bash -c "pwd; du -sh; git pull --depth=1 --ff-only; git reflog expire --expire=all --all; git tag -l | xargs -r git tag -d; git gc --prune=all; du -sh" \; ) && \ + rm -rf "${ZEEK_DIR}"/var/lib/zkg/scratch && \ + ( find "${ZEEK_DIR}/" "${SPICY_DIR}/" -type f -exec file "{}" \; | grep -Pi "ELF 64-bit.*not stripped" | sed 's/:.*//' | xargs -l -r strip --strip-unneeded ) && \ + mkdir -p "${ZEEK_DIR}"/var/lib/zkg/clones/package/spicy-plugin/build/plugin/bin/ && \ + ln -s -r "${ZEEK_DIR}"/lib/zeek/plugins/packages/spicy-plugin/bin/spicyz \ + "${ZEEK_DIR}"/var/lib/zkg/clones/package/spicy-plugin/build/plugin/bin/spicyz && \ + mkdir -p "${ZEEK_DIR}"/var/lib/zkg/clones/package/spicy-plugin/plugin/lib/ && \ + ln -s -r "${ZEEK_DIR}"/lib/zeek/plugins/packages/spicy-plugin/lib/bif \ + "${ZEEK_DIR}"/var/lib/zkg/clones/package/spicy-plugin/plugin/lib/bif && \ + cd /usr/lib/locale && \ + ( ls | grep -Piv "^(en|en_US|en_US\.utf-?8|C\.utf-?8)$" | xargs -l -r rm -rf ) && \ + cd /tmp && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/cache/*/* + +# add configuration and scripts +ADD shared/bin/docker-uid-gid-setup.sh /usr/local/bin/ +ADD shared/bin/pcap_moloch_and_zeek_processor.py /usr/local/bin/ +ADD shared/bin/pcap_utils.py /usr/local/bin/ +ADD shared/pcaps /tmp/pcaps +ADD zeek/supervisord.conf /etc/supervisord.conf +ADD zeek/config/*.zeek ${ZEEK_DIR}/share/zeek/site/ +ADD zeek/config/*.txt ${ZEEK_DIR}/share/zeek/site/ + +# sanity checks to make sure the plugins installed and copied over correctly +# these ENVs should match the number of third party scripts/plugins installed by zeek_install_plugins.sh +# todo: Bro::LDAP is broken right now, disabled +ENV ZEEK_THIRD_PARTY_PLUGINS_COUNT 19 +ENV ZEEK_THIRD_PARTY_PLUGINS_GREP "(_Zeek::Spicy|ANALYZER_SPICY_DHCP|ANALYZER_SPICY_DNS|ANALYZER_SPICY_HTTP|ANALYZER_SPICY_OPENVPN|ANALYZER_SPICY_IPSEC|ANALYZER_SPICY_TFTP|ANALYZER_SPICY_WIREGUARD|ANALYZER_SPICY_LDAP_TCP|Corelight::CommunityID|Corelight::PE_XOR|ICSNPP::BACnet|ICSNPP::BSAP_IP|ICSNPP::BSAP_SERIAL|ICSNPP::ENIP|Salesforce::GQUIC|Zeek::PROFINET|Zeek::S7comm|Zeek::TDS)" +ENV ZEEK_THIRD_PARTY_SCRIPTS_COUNT 15 +ENV ZEEK_THIRD_PARTY_SCRIPTS_GREP "(bzar/main|callstranger-detector/callstranger|cve-2020-0601/cve-2020-0601|cve-2020-13777/cve-2020-13777|CVE-2020-16898/CVE-2020-16898|CVE-2021-31166/detect|hassh/hassh|ja3/ja3|pingback/detect|ripple20/ripple20|SIGRed/CVE-2020-1350|zeek-EternalSafety/main|zeek-httpattacks/main|zeek-sniffpass/__load__|zerologon/main)\.(zeek|bro)" + +RUN mkdir -p /tmp/logs && \ + cd /tmp/logs && \ + "$ZEEK_DIR"/bin/zeek -NN local >zeeknn.log 2>/dev/null && \ + bash -c "(( $(grep -cP "$ZEEK_THIRD_PARTY_PLUGINS_GREP" zeeknn.log) >= $ZEEK_THIRD_PARTY_PLUGINS_COUNT)) && echo 'Zeek plugins loaded correctly' || (echo 'One or more Zeek plugins did not load correctly' && cat zeeknn.log && exit 1)" && \ + "$ZEEK_DIR"/bin/zeek -C -r /tmp/pcaps/udp.pcap local policy/misc/loaded-scripts 2>/dev/null && \ + bash -c "(( $(grep -cP "$ZEEK_THIRD_PARTY_SCRIPTS_GREP" loaded_scripts.log) == $ZEEK_THIRD_PARTY_SCRIPTS_COUNT)) && echo 'Zeek scripts loaded correctly' || (echo 'One or more Zeek scripts did not load correctly' && cat loaded_scripts.log && exit 1)" && \ + cd /tmp && \ + rm -rf /tmp/logs /tmp/pcaps + +RUN groupadd --gid ${DEFAULT_GID} ${PUSER} && \ + useradd -M --uid ${DEFAULT_UID} --gid ${DEFAULT_GID} --home /nonexistant ${PUSER} && \ + usermod -a -G tty ${PUSER} && \ + ln -sfr /usr/local/bin/pcap_moloch_and_zeek_processor.py /usr/local/bin/pcap_zeek_processor.py + +#Whether or not to auto-tag logs based on filename +ARG AUTO_TAG=true +#Whether or not to run "zeek -r XXXXX.pcap local" on each pcap file +ARG ZEEK_AUTO_ANALYZE_PCAP_FILES=false +ARG ZEEK_AUTO_ANALYZE_PCAP_THREADS=1 +ARG ZEEK_EXTRACTOR_MODE=none +ARG ZEEK_EXTRACTOR_PATH=/zeek/extract_files +ARG PCAP_PIPELINE_DEBUG=false +ARG PCAP_PIPELINE_DEBUG_EXTRA=false +ARG PCAP_MONITOR_HOST=pcap-monitor + +ENV AUTO_TAG $AUTO_TAG +ENV ZEEK_AUTO_ANALYZE_PCAP_FILES $ZEEK_AUTO_ANALYZE_PCAP_FILES +ENV ZEEK_AUTO_ANALYZE_PCAP_THREADS $ZEEK_AUTO_ANALYZE_PCAP_THREADS +ENV ZEEK_EXTRACTOR_MODE $ZEEK_EXTRACTOR_MODE +ENV ZEEK_EXTRACTOR_PATH $ZEEK_EXTRACTOR_PATH +ENV PCAP_PIPELINE_DEBUG $PCAP_PIPELINE_DEBUG +ENV PCAP_PIPELINE_DEBUG_EXTRA $PCAP_PIPELINE_DEBUG_EXTRA +ENV PCAP_MONITOR_HOST $PCAP_MONITOR_HOST + +# environment variables for zeek runtime tweaks (used in local.zeek) +ARG ZEEK_DISABLE_HASH_ALL_FILES= +ARG ZEEK_DISABLE_LOG_PASSWORDS= +ARG ZEEK_DISABLE_SSL_VALIDATE_CERTS= +ARG ZEEK_DISABLE_TRACK_ALL_ASSETS= +ARG ZEEK_DISABLE_BEST_GUESS_ICS=true +# TODO: assess spicy-analyzer that replace built-in Zeek parsers +# for now, disable them by default when a Zeek parser exists +ARG ZEEK_DISABLE_SPICY_DHCP=true +ARG ZEEK_DISABLE_SPICY_DNS=true +ARG ZEEK_DISABLE_SPICY_HTTP=true +ARG ZEEK_DISABLE_SPICY_IPSEC= +ARG ZEEK_DISABLE_SPICY_OPENVPN= +ARG ZEEK_DISABLE_SPICY_TFTP= +ARG ZEEK_DISABLE_SPICY_WIREGUARD= + +ENV ZEEK_DISABLE_HASH_ALL_FILES $ZEEK_DISABLE_HASH_ALL_FILES +ENV ZEEK_DISABLE_LOG_PASSWORDS $ZEEK_DISABLE_LOG_PASSWORDS +ENV ZEEK_DISABLE_SSL_VALIDATE_CERTS $ZEEK_DISABLE_SSL_VALIDATE_CERTS +ENV ZEEK_DISABLE_TRACK_ALL_ASSETS $ZEEK_DISABLE_TRACK_ALL_ASSETS +ENV ZEEK_DISABLE_BEST_GUESS_ICS $ZEEK_DISABLE_BEST_GUESS_ICS +ENV ZEEK_DISABLE_SPICY_DHCP $ZEEK_DISABLE_SPICY_DHCP +ENV ZEEK_DISABLE_SPICY_DNS $ZEEK_DISABLE_SPICY_DNS +ENV ZEEK_DISABLE_SPICY_HTTP $ZEEK_DISABLE_SPICY_HTTP +ENV ZEEK_DISABLE_SPICY_OPENVPN $ZEEK_DISABLE_SPICY_OPENVPN +ENV ZEEK_DISABLE_SPICY_TFTP $ZEEK_DISABLE_SPICY_TFTP +ENV ZEEK_DISABLE_SPICY_WIREGUARD $ZEEK_DISABLE_SPICY_WIREGUARD + +ENTRYPOINT ["/usr/local/bin/docker-uid-gid-setup.sh"] + +CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf", "-n"] + + +# to be populated at build-time: +ARG BUILD_DATE +ARG MALCOLM_VERSION +ARG VCS_REVISION + +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.version=$MALCOLM_VERSION +LABEL org.opencontainers.image.revision=$VCS_REVISION diff --git a/Vagrant/resources/malcolm/License.txt b/Vagrant/resources/malcolm/License.txt new file mode 100644 index 0000000..3cd0fd5 --- /dev/null +++ b/Vagrant/resources/malcolm/License.txt @@ -0,0 +1,42 @@ +Software License Agreement + +For more information, please see DHS_TOU.pdf. + +Malcolm is Copyright (c) 2021 Battelle Energy Alliance, LLC, and is developed +and released through the cooperation of the Cybersecurity and Infrastructure +Security Agency of the U.S. Department of Homeland Security. All rights reserved. + +A U.S. Government contractor developed MALCOLM for the Cybersecurity and +Infrastructure Security Agency of the U.S. Department of Homeland Security +and therefore MALCOLM is subject to United States copyright law. The United +States Government has unlimited rights in the copyright in MALCOLM, which +is sufficient to allow end users to download, access, install, copy, modify, +and otherwise use MALCOLM for its intended purpose. Specifically, the U.S. +Government is providing MALCOLM to Users with a royalty-free, irrevocable, +worldwide license to use, disclose, reproduce, prepare derivative works, +distribute copies to the public, including by electronic means, and perform +publicly and display publicly MALCOLM, in any manner, including by electronic +means, and for any purpose whatsoever. + + +https://github.com/cisagov/Malcolm + + +Copyright 2021 Battelle Energy Alliance, LLC + + +ALL RIGHTS RESERVED + + +These data were produced by Office of Nuclear Energy of the U.S. Department of +Energy under Contract No. DE-AC07-05ID14517 with +the Department of Energy. The Government is granted for itself, and +others acting on its behalf, a paid-up, a nonexclusive, irrevocable +worldwide license in this data to reproduce, distribute copies to the +public, prepare derivative works, perform publicly and display +publicly, and to permit others to do so. NEITHER THE UNITED STATES NOR +THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF THEIR EMPLOYEES, +MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL LIABILITY +OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY +DATA, APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS THAT ITS +USE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS. diff --git a/Vagrant/resources/malcolm/Notice.txt b/Vagrant/resources/malcolm/Notice.txt new file mode 100644 index 0000000..8ffd0ca --- /dev/null +++ b/Vagrant/resources/malcolm/Notice.txt @@ -0,0 +1,39 @@ +This project contains code from Idaho National Laboratory's Malcolm Project + +https://github.com/cisagov/Malcolm + +See License.txt for license terms. + +Malcolm is Copyright (c) 2021 Battelle Energy Alliance, LLC, and is developed +and released through the cooperation of the Cybersecurity and Infrastructure +Security Agency of the U.S. Department of Homeland Security. All rights reserved. + +ALL RIGHTS RESERVED + +A U.S. Government contractor developed MALCOLM for the Cybersecurity and +Infrastructure Security Agency of the U.S. Department of Homeland Security +and therefore MALCOLM is subject to United States copyright law. The United +States Government has unlimited rights in the copyright in MALCOLM, which +is sufficient to allow end users to download, access, install, copy, modify, +and otherwise use MALCOLM for its intended purpose. Specifically, the U.S. +Government is providing MALCOLM to Users with a royalty-free, irrevocable, +worldwide license to use, disclose, reproduce, prepare derivative works, +distribute copies to the public, including by electronic means, and perform +publicly and display publicly MALCOLM, in any manner, including by electronic +means, and for any purpose whatsoever. + +These data were produced by Office of Nuclear Energy of the U.S. Department of +Energy under Contract No. DE-AC07-05ID14517 with the Department of Energy. The +Government is granted for itself, and others acting on its behalf, a paid-up, a +nonexclusive, irrevocable worldwide license in this data to reproduce, distribute +copies to the public, prepare derivative works, perform publicly and display publicly, +and to permit others to do so. NEITHER THE UNITED STATES NOR THE UNITED STATES +DEPARTMENT OF ENERGY, NOR ANY OF THEIR EMPLOYEES, MAKES ANY WARRANTY, EXPRESS OR +IMPLIED, OR ASSUMES ANY LEGAL LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, +COMPLETENESS, OR USEFULNESS OF ANY DATA, APPARATUS, PRODUCT, OR PROCESS DISCLOSED, +OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS. + + +Authors: + +Seth Grover (malcolm.netsec@gmail.com) diff --git a/Vagrant/resources/malcolm/README.md b/Vagrant/resources/malcolm/README.md new file mode 100644 index 0000000..48f038e --- /dev/null +++ b/Vagrant/resources/malcolm/README.md @@ -0,0 +1,1967 @@ +# Malcolm + +![](./docs/images/logo/Malcolm_banner.png) + +[Malcolm](https://github.com/cisagov/Malcolm) is a powerful network traffic analysis tool suite designed with the following goals in mind: + +* **Easy to use** – Malcolm accepts network traffic data in the form of full packet capture (PCAP) files and Zeek (formerly Bro) logs. These artifacts can be uploaded via a simple browser-based interface or captured live and forwarded to Malcolm using lightweight forwarders. In either case, the data is automatically normalized, enriched, and correlated for analysis. +* **Powerful traffic analysis** – Visibility into network communications is provided through two intuitive interfaces: Kibana, a flexible data visualization plugin with dozens of prebuilt dashboards providing an at-a-glance overview of network protocols; and Arkime (formerly Moloch), a powerful tool for finding and identifying the network sessions comprising suspected security incidents. +* **Streamlined deployment** – Malcolm operates as a cluster of Docker containers, isolated sandboxes which each serve a dedicated function of the system. This Docker-based deployment model, combined with a few simple scripts for setup and run-time management, makes Malcolm suitable to be deployed quickly across a variety of platforms and use cases, whether it be for long-term deployment on a Linux server in a security operations center (SOC) or for incident response on a Macbook for an individual engagement. +* **Secure communications** – All communications with Malcolm, both from the user interface and from remote log forwarders, are secured with industry standard encryption protocols. +* **Permissive license** – Malcolm is comprised of several widely used open source tools, making it an attractive alternative to security solutions requiring paid licenses. +* **Expanding control systems visibility** – While Malcolm is great for general-purpose network traffic analysis, its creators see a particular need in the community for tools providing insight into protocols used in industrial control systems (ICS) environments. Ongoing Malcolm development will aim to provide additional parsers for common ICS protocols. + +Although all of the open source tools which make up Malcolm are already available and in general use, Malcolm provides a framework of interconnectivity which makes it greater than the sum of its parts. And while there are many other network traffic analysis solutions out there, ranging from complete Linux distributions like Security Onion to licensed products like Splunk Enterprise Security, the creators of Malcolm feel its easy deployment and robust combination of tools fill a void in the network security space that will make network traffic analysis accessible to many in both the public and private sectors as well as individual enthusiasts. + +In short, Malcolm provides an easily deployable network analysis tool suite for full packet capture artifacts (PCAP files) and Zeek logs. While Internet access is required to build it, it is not required at runtime. + +## Table of Contents + +* [Quick start](#QuickStart) + * [Getting Malcolm](#GetMalcolm) + * [User interface](#UserInterfaceURLs) +* [Overview](#Overview) +* [Components](#Components) +* [Supported Protocols](#Protocols) +* [Development](#Development) + * [Building from source](#Build) +* [Pre-Packaged installation files](#Packager) +* [Preparing your system](#Preparing) + * [Recommended system requirements](#SystemRequirements) + * [System configuration and tuning](#ConfigAndTuning) + * [`docker-compose.yml` parameters](#DockerComposeYml) + * [Linux host system configuration](#HostSystemConfigLinux) + * [macOS host system configuration](#HostSystemConfigMac) + * [Windows host system configuration](#HostSystemConfigWindows) +* [Running Malcolm](#Running) + * [Configure authentication](#AuthSetup) + * [Local account management](#AuthBasicAccountManagement) + * [Lightweight Directory Access Protocol (LDAP) authentication](#AuthLDAP) + - [LDAP connection security](#AuthLDAPSecurity) + * [Starting Malcolm](#Starting) + * [Stopping and restarting Malcolm](#StopAndRestart) + * [Clearing Malcolm's data](#Wipe) +* [Capture file and log archive upload](#Upload) + - [Tagging](#Tagging) + - [Processing uploaded PCAPs with Zeek](#UploadPCAPZeek) +* [Live analysis](#LiveAnalysis) + * [Capturing traffic on local network interfaces](#LocalPCAP) + * [Using a network sensor appliance](#Hedgehog) + * [Manually forwarding Zeek logs from an external source](#ZeekForward) +* [Arkime](#Arkime) + * [Zeek log integration](#ArkimeZeek) + - [Correlating Zeek logs and Arkime sessions](#ZeekArkimeFlowCorrelation) + * [Help](#ArkimeHelp) + * [Sessions](#ArkimeSessions) + * [PCAP Export](#ArkimePCAPExport) + * [SPIView](#ArkimeSPIView) + * [SPIGraph](#ArkimeSPIGraph) + * [Connections](#ArkimeConnections) + * [Hunt](#ArkimeHunt) + * [Statistics](#ArkimeStats) + * [Settings](#ArkimeSettings) +* [Kibana](#Kibana) + * [Discover](#Discover) + - [Screenshots](#DiscoverGallery) + * [Visualizations and dashboards](#KibanaVisualizations) + - [Prebuilt visualizations and dashboards](#PrebuiltVisualizations) + - [Screenshots](#PrebuiltVisualizationsGallery) + - [Building your own visualizations and dashboards](#BuildDashboard) + + [Screenshots](#NewVisualizationsGallery) +* [Search Queries in Arkime and Kibana](#SearchCheatSheet) +* [Other Malcolm features](#MalcolmFeatures) + - [Automatic file extraction and scanning](#ZeekFileExtraction) + - [Automatic host and subnet name assignment](#HostAndSubnetNaming) + + [IP/MAC address to hostname mapping via `host-map.txt`](#HostNaming) + + [CIDR subnet to network segment name mapping via `cidr-map.txt`](#SegmentNaming) + + [Defining hostname and CIDR subnet names interface](#NameMapUI) + + [Applying mapping changes](#ApplyMapping) + - [Elasticsearch index management](#IndexManagement) + - [Alerting](#Alerting) + - ["Best Guess" Fingerprinting for ICS Protocols](#ICSBestGuess) +* [Using Beats to forward host logs to Malcolm](#OtherBeats) +* [Malcolm installer ISO](#ISO) + * [Installation](#ISOInstallation) + * [Generating the ISO](#ISOBuild) + * [Setup](#ISOSetup) + * [Time synchronization](#ConfigTime) + * [Hardening](#Hardening) + * [STIG compliance exceptions](#STIGExceptions) + * [CIS benchmark compliance exceptions](#CISExceptions) +* [Known issues](#Issues) +* [Installation example using Ubuntu 20.04 LTS](#InstallationExample) +* [Upgrading Malcolm](#UpgradePlan) +* [Copyright](#Footer) +* [Contact](#Contact) + +## Quick start + +### Getting Malcolm + +For a `TL;DR` example of downloading, configuring, and running Malcolm on a Linux platform, see [Installation example using Ubuntu 20.04 LTS](#InstallationExample). + +The scripts to control Malcolm require Python 3. + +#### Source code + +The files required to build and run Malcolm are available on its [GitHub page](https://github.com/cisagov/Malcolm/tree/master). Malcolm's source code is released under the terms of a permissive open source software license (see see `License.txt` for the terms of its release). + +#### Building Malcolm from scratch + +The `build.sh` script can build Malcolm's Docker images from scratch. See [Building from source](#Build) for more information. + +#### Initial configuration + +You must run [`auth_setup`](#AuthSetup) prior to pulling Malcolm's Docker images. You should also ensure your system configuration and `docker-compose.yml` settings are tuned by running `./scripts/install.py` or `./scripts/install.py --configure` (see [System configuration and tuning](#ConfigAndTuning)). + +#### Pull Malcolm's Docker images + +Malcolm's Docker images are periodically built and hosted on [Docker Hub](https://hub.docker.com/u/malcolmnetsec). If you already have [Docker](https://www.docker.com/) and [Docker Compose](https://docs.docker.com/compose/), these prebuilt images can be pulled by navigating into the Malcolm directory (containing the `docker-compose.yml` file) and running `docker-compose pull` like this: +``` +$ docker-compose pull +Pulling arkime ... done +Pulling elasticsearch ... done +Pulling file-monitor ... done +Pulling filebeat ... done +Pulling freq ... done +Pulling htadmin ... done +Pulling kibana ... done +Pulling logstash ... done +Pulling name-map-ui ... done +Pulling nginx-proxy ... done +Pulling pcap-capture ... done +Pulling pcap-monitor ... done +Pulling upload ... done +Pulling zeek ... done +``` + +You can then observe that the images have been retrieved by running `docker images`: +``` +$ docker images +REPOSITORY TAG IMAGE ID CREATED SIZE +malcolmnetsec/arkime 3.2.1 xxxxxxxxxxxx 39 hours ago 683MB +malcolmnetsec/elasticsearch-od 3.2.1 xxxxxxxxxxxx 40 hours ago 690MB +malcolmnetsec/file-monitor 3.2.1 xxxxxxxxxxxx 39 hours ago 470MB +malcolmnetsec/file-upload 3.2.1 xxxxxxxxxxxx 39 hours ago 199MB +malcolmnetsec/filebeat-oss 3.2.1 xxxxxxxxxxxx 39 hours ago 555MB +malcolmnetsec/freq 3.2.1 xxxxxxxxxxxx 39 hours ago 390MB +malcolmnetsec/htadmin 3.2.1 xxxxxxxxxxxx 39 hours ago 180MB +malcolmnetsec/kibana-helper 3.2.1 xxxxxxxxxxxx 40 hours ago 141MB +malcolmnetsec/kibana-od 3.2.1 xxxxxxxxxxxx 40 hours ago 1.16GB +malcolmnetsec/logstash-oss 3.2.1 xxxxxxxxxxxx 39 hours ago 1.41GB +malcolmnetsec/name-map-ui 3.2.1 xxxxxxxxxxxx 39 hours ago 137MB +malcolmnetsec/nginx-proxy 3.2.1 xxxxxxxxxxxx 39 hours ago 120MB +malcolmnetsec/pcap-capture 3.2.1 xxxxxxxxxxxx 39 hours ago 111MB +malcolmnetsec/pcap-monitor 3.2.1 xxxxxxxxxxxx 39 hours ago 157MB +malcolmnetsec/zeek 3.2.1 xxxxxxxxxxxx 39 hours ago 887MB +``` + +#### Import from pre-packaged tarballs + +Once built, the `malcolm_appliance_packager.sh` script can be used to create pre-packaged Malcolm tarballs for import on another machine. See [Pre-Packaged Installation Files](#Packager) for more information. + +### Starting and stopping Malcolm + +Use the scripts in the `scripts/` directory to start and stop Malcolm, view debug logs of a currently running +instance, wipe the database and restore Malcolm to a fresh state, etc. + +### User interface + +A few minutes after starting Malcolm (probably 5 to 10 minutes for Logstash to be completely up, depending on the system), the following services will be accessible: + +* Arkime: [https://localhost:443](https://localhost:443) +* Kibana: [https://localhost/kibana/](https://localhost/kibana/) or [https://localhost:5601](https://localhost:5601) +* Capture File and Log Archive Upload (Web): [https://localhost/upload/](https://localhost/upload/) +* Capture File and Log Archive Upload (SFTP): `sftp://@127.0.0.1:8022/files` +* [Host and Subnet Name Mapping](#HostAndSubnetNaming) Editor: [https://localhost/name-map-ui/](https://localhost/name-map-ui/) +* Account Management: [https://localhost:488](https://localhost:488) + +## Overview + +![Malcolm Network Diagram](./docs/images/malcolm_network_diagram.png) + +Malcolm processes network traffic data in the form of packet capture (PCAP) files or Zeek logs. A [sensor](#Hedgehog) (packet capture appliance) monitors network traffic mirrored to it over a SPAN port on a network switch or router, or using a network TAP device. [Zeek](https://www.zeek.org/index.html) logs and [Arkime](https://molo.ch/) sessions are generated containing important session metadata from the traffic observed, which are then securely forwarded to a Malcolm instance. Full PCAP files are optionally stored locally on the sensor device for examination later. + +Malcolm parses the network session data and enriches it with additional lookups and mappings including GeoIP mapping, hardware manufacturer lookups from [organizationally unique identifiers (OUI)](http://standards-oui.ieee.org/oui/oui.txt) in MAC addresses, assigning names to [network segments](#SegmentNaming) and [hosts](#HostNaming) based on user-defined IP address and MAC mappings, performing [TLS fingerprinting](#https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967), and many others. + +The enriched data is stored in an [Elasticsearch](https://opendistro.github.io/for-elasticsearch/) document store in a format suitable for analysis through two intuitive interfaces: Kibana, a flexible data visualization plugin with dozens of prebuilt dashboards providing an at-a-glance overview of network protocols; and Arkime, a powerful tool for finding and identifying the network sessions comprising suspected security incidents. These tools can be accessed through a web browser from analyst workstations or for display in a security operations center (SOC). Logs can also optionally be forwarded on to another instance of Malcolm. + +For smaller networks, use at home by network security enthusiasts, or in the field for incident response engagements, Malcolm can also easily be deployed locally on an ordinary consumer workstation or laptop. Malcolm can process local artifacts such as locally-generated Zeek logs, locally-captured PCAP files, and PCAP files collected offline without the use of a dedicated sensor appliance. + +## Components + +Malcolm leverages the following excellent open source tools, among others. + +* [Arkime](https://arkime.com/) (formerly Moloch) - for PCAP file processing, browsing, searching, analysis, and carving/exporting; Arkime itself consists of two parts: + * [moloch-capture](https://github.com/arkime/arkime/tree/master/capture) - a tool for traffic capture, as well as offline PCAP parsing and metadata insertion into Elasticsearch + * [viewer](https://github.com/arkime/arkime/tree/master/viewer) - a browser-based interface for data visualization +* [Elasticsearch](https://www.elastic.co/products/elasticsearch) ([Open Distro](https://opendistro.github.io/for-elasticsearch/) variant) - a search and analytics engine for indexing and querying network traffic session metadata +* [Logstash](https://www.elastic.co/products/logstash) and [Filebeat](https://www.elastic.co/products/beats/filebeat) - for ingesting and parsing [Zeek](https://www.zeek.org/index.html) [Log Files](https://docs.zeek.org/en/stable/script-reference/log-files.html) and ingesting them into Elasticsearch in a format that Arkime understands and is able to understand in the same way it natively understands PCAP data +* [Kibana](https://www.elastic.co/products/kibana) ([Open Distro](https://opendistro.github.io/for-elasticsearch/) variant) - for creating additional ad-hoc visualizations and dashboards beyond that which is provided by Arkime viewer +* [Zeek](https://www.zeek.org/index.html) - a network analysis framework and IDS +* [Yara](https://github.com/VirusTotal/yara) - a tool used to identify and classify malware samples +* [Capa](https://github.com/fireeye/capa) - a tool for detecting capabilities in executable files +* [ClamAV](https://www.clamav.net/) - an antivirus engine for scanning files extracted by Zeek +* [CyberChef](https://github.com/gchq/CyberChef) - a "swiss-army knife" data conversion tool +* [jQuery File Upload](https://github.com/blueimp/jQuery-File-Upload) - for uploading PCAP files and Zeek logs for processing +* [List.js](https://github.com/javve/list.js) - for the [host and subnet name mapping](#HostAndSubnetNaming) interface +* [Docker](https://www.docker.com/) and [Docker Compose](https://docs.docker.com/compose/) - for simple, reproducible deployment of the Malcolm appliance across environments and to coordinate communication between its various components +* [Nginx](https://nginx.org/) - for HTTPS and reverse proxying Malcolm components +* [nginx-auth-ldap](https://github.com/kvspb/nginx-auth-ldap) - an LDAP authentication module for nginx +* [Mark Baggett](https://github.com/MarkBaggett)'s [freq](https://github.com/MarkBaggett/freq) - a tool for calculating entropy of strings +* [Florian Roth](https://github.com/Neo23x0)'s [Signature-Base](https://github.com/Neo23x0/signature-base) Yara ruleset +* These Zeek plugins: + * some of Amazon.com, Inc.'s [ICS protocol](https://github.com/amzn?q=zeek) analyzers + * Andrew Klaus's [Sniffpass](https://github.com/cybera/zeek-sniffpass) plugin for detecting cleartext passwords in HTTP POST requests + * Andrew Klaus's [zeek-httpattacks](https://github.com/precurse/zeek-httpattacks) plugin for detecting noncompliant HTTP requests + * ICS protocol analyzers for Zeek published by [DHS CISA](https://github.com/cisagov/ICSNPP) and [Idaho National Lab](https://github.com/idaholab/ICSNPP) + * Corelight's [bro-xor-exe](https://github.com/corelight/bro-xor-exe-plugin) plugin + * Corelight's ["bad neighbor" (CVE-2020-16898)](https://github.com/corelight/CVE-2020-16898) plugin + * Corelight's [HTTP protocol stack vulnerability (CVE-2021-31166)](https://github.com/corelight/CVE-2021-31166) plugin + * Corelight's [callstranger-detector](https://github.com/corelight/callstranger-detector) plugin + * Corelight's [community ID](https://github.com/corelight/zeek-community-id) flow hashing plugin + * Corelight's [pingback](https://github.com/corelight/pingback) plugin + * Corelight's [ripple20](https://github.com/corelight/ripple20) plugin + * Corelight's [SIGred](https://github.com/corelight/SIGred) plugin + * Corelight's [Zerologon](https://github.com/corelight/zerologon) plugin + * J-Gras' [Zeek::AF_Packet](https://github.com/J-Gras/zeek-af_packet-plugin) plugin + * Johanna Amann's [CVE-2020-0601](https://github.com/0xxon/cve-2020-0601) ECC certificate validation plugin and [CVE-2020-13777](https://github.com/0xxon/cve-2020-13777) GnuTLS unencrypted session ticket detection plugin + * Lexi Brent's [EternalSafety](https://github.com/0xl3x1/zeek-EternalSafety) plugin + * MITRE Cyber Analytics Repository's [Bro/Zeek ATT&CK-Based Analytics (BZAR)](https://github.com/mitre-attack/car/tree/master/implementations) script + * Salesforce's [gQUIC](https://github.com/salesforce/GQUIC_Protocol_Analyzer) analyzer + * Salesforce's [HASSH](https://github.com/salesforce/hassh) SSH fingerprinting plugin + * Salesforce's [JA3](https://github.com/salesforce/ja3) TLS fingerprinting plugin + * Zeek's [Spicy](https://github.com/zeek/spicy) plugin framework +* [GeoLite2](https://dev.maxmind.com/geoip/geoip2/geolite2/) - Malcolm includes GeoLite2 data created by [MaxMind](https://www.maxmind.com) + +## Supported Protocols + +Malcolm uses [Zeek](https://docs.zeek.org/en/stable/script-reference/proto-analyzers.html) and [Arkime](https://github.com/arkime/arkime/tree/master/capture/parsers) to analyze network traffic. These tools provide varying degrees of visibility into traffic transmitted over the following network protocols: + +| Traffic | Wiki | Organization/Specification | Arkime | Zeek | +|---|:---:|:---:|:---:|:---:| +|Internet layer|[🔗](https://en.wikipedia.org/wiki/Internet_layer)|[🔗](https://tools.ietf.org/html/rfc791)|[✓](https://github.com/arkime/arkime/blob/master/capture/packet.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/conn/main.zeek.html#type-Conn::Info)| +|Border Gateway Protocol (BGP)|[🔗](https://en.wikipedia.org/wiki/Border_Gateway_Protocol)|[🔗](https://tools.ietf.org/html/rfc2283)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/bgp.c)|| +|Building Automation and Control (BACnet)|[🔗](https://en.wikipedia.org/wiki/BACnet)|[🔗](http://www.bacnet.org/)||[✓](https://github.com/cisagov/icsnpp-bacnet)| +|Bristol Standard Asynchronous Protocol (BSAP)|[🔗](https://en.wikipedia.org/wiki/Bristol_Standard_Asynchronous_Protocol)|[🔗](http://www.documentation.emersonprocess.com/groups/public/documents/specification_sheets/d301321x012.pdf)[🔗](http://www.documentation.emersonprocess.com/groups/public/documents/instruction_manuals/d301401x012.pdf)||[✓](https://github.com/cisagov/icsnpp-bsap)| +|Distributed Computing Environment / Remote Procedure Calls (DCE/RPC)|[🔗](https://en.wikipedia.org/wiki/DCE/RPC)|[🔗](https://pubs.opengroup.org/onlinepubs/009629399/toc.pdf)||[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/dce-rpc/main.zeek.html#type-DCE_RPC::Info)| +|Dynamic Host Configuration Protocol (DHCP)|[🔗](https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol)|[🔗](https://tools.ietf.org/html/rfc2131)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/dhcp.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/dhcp/main.zeek.html#type-DHCP::Info)| +|Distributed Network Protocol 3 (DNP3)|[🔗](https://en.wikipedia.org/wiki/DNP3)|[🔗](https://www.dnp.org)||[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/dnp3/main.zeek.html#type-DNP3::Info)[✓](https://github.com/cisagov/icsnpp-dnp3)| +|Domain Name System (DNS)|[🔗](https://en.wikipedia.org/wiki/Domain_Name_System)|[🔗](https://tools.ietf.org/html/rfc1035)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/dns.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/dns/main.zeek.html#type-DNS::Info)| +|EtherCAT|[🔗](https://en.wikipedia.org/wiki/EtherCAT)|[🔗](https://www.ethercat.org/en/downloads/downloads_A02E436C7A97479F9261FDFA8A6D71E5.htm)||[✓](https://github.com/cisagov/icsnpp-ethercat)| +|EtherNet/IP / Common Industrial Protocol (CIP)|[🔗](https://en.wikipedia.org/wiki/EtherNet/IP) [🔗](https://en.wikipedia.org/wiki/Common_Industrial_Protocol)|[🔗](https://www.odva.org/Technology-Standards/EtherNet-IP/Overview)||[✓](https://github.com/cisagov/icsnpp-enip)| +|FTP (File Transfer Protocol)|[🔗](https://en.wikipedia.org/wiki/File_Transfer_Protocol)|[🔗](https://tools.ietf.org/html/rfc959)||[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/ftp/info.zeek.html#type-FTP::Info)| +|Google Quick UDP Internet Connections (gQUIC)|[🔗](https://en.wikipedia.org/wiki/QUIC#Google_QUIC_(gQUIC))|[🔗](https://www.chromium.org/quic)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/quic.c)|[✓](https://github.com/salesforce/GQUIC_Protocol_Analyzer/blob/master/scripts/Salesforce/GQUIC/main.bro)| +|Hypertext Transfer Protocol (HTTP)|[🔗](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol)|[🔗](https://tools.ietf.org/html/rfc7230)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/http.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/http/main.zeek.html#type-HTTP::Info)| +|IPsec|[🔗](https://en.wikipedia.org/wiki/IPsec)|[🔗](https://zeek.org/2021/04/20/zeeks-ipsec-protocol-analyzer/)||[✓](https://github.com/zeek/spicy-analyzers/blob/main/analyzer/protocol/ipsec/main.zeek)| +|Internet Relay Chat (IRC)|[🔗](https://en.wikipedia.org/wiki/Internet_Relay_Chat)|[🔗](https://tools.ietf.org/html/rfc1459)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/irc.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/irc/main.zeek.html#type-IRC::Info)| +|Lightweight Directory Access Protocol (LDAP)|[🔗](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol)|[🔗](https://tools.ietf.org/html/rfc4511)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/ldap.c)|[✓](https://github.com/mmguero-dev/spicy-analyzers/blob/main/analyzer/protocol/ldap/ldap.zeek)| +|Kerberos|[🔗](https://en.wikipedia.org/wiki/Kerberos_(protocol))|[🔗](https://tools.ietf.org/html/rfc4120)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/krb5.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/krb/main.zeek.html#type-KRB::Info)| +|Modbus|[🔗](https://en.wikipedia.org/wiki/Modbus)|[🔗](http://www.modbus.org/)||[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/modbus/main.zeek.html#type-Modbus::Info)[✓](https://github.com/cisagov/icsnpp-modbus)| +|MQ Telemetry Transport (MQTT)|[🔗](https://en.wikipedia.org/wiki/MQTT)|[🔗](https://mqtt.org/)||[✓](https://docs.zeek.org/en/stable/scripts/policy/protocols/mqtt/main.zeek.html)| +|MySQL|[🔗](https://en.wikipedia.org/wiki/MySQL)|[🔗](https://dev.mysql.com/doc/internals/en/client-server-protocol.html)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/mysql.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/mysql/main.zeek.html#type-MySQL::Info)| +|NT Lan Manager (NTLM)|[🔗](https://en.wikipedia.org/wiki/NT_LAN_Manager)|[🔗](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/b38c36ed-2804-4868-a9ff-8dd3182128e4?redirectedfrom=MSDN)||[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/ntlm/main.zeek.html#type-NTLM::Info)| +|Network Time Protocol (NTP)|[🔗](https://en.wikipedia.org/wiki/Network_Time_Protocol)|[🔗](http://www.ntp.org)||[✓](https://docs.zeek.org/en/latest/scripts/base/protocols/ntp/main.zeek.html#type-NTP::Info)| +|Oracle|[🔗](https://en.wikipedia.org/wiki/Oracle_Net_Services)|[🔗](https://docs.oracle.com/cd/E11882_01/network.112/e41945/layers.htm#NETAG004)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/oracle.c)|| +|OpenVPN|[🔗](https://en.wikipedia.org/wiki/OpenVPN)|[🔗](https://openvpn.net/community-resources/openvpn-protocol/)[🔗](https://zeek.org/2021/03/16/a-zeek-openvpn-protocol-analyzer/)||[✓](https://github.com/mmguero-dev/spicy-analyzers/blob/main/analyzer/protocol/openvpn/main.zeek)| +|PostgreSQL|[🔗](https://en.wikipedia.org/wiki/PostgreSQL)|[🔗](https://www.postgresql.org/)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/postgresql.c)|| +|Process Field Net (PROFINET)|[🔗](https://en.wikipedia.org/wiki/PROFINET)|[🔗](https://us.profinet.com/technology/profinet/)||[✓](https://github.com/amzn/zeek-plugin-profinet/blob/master/scripts/main.zeek)| +|Remote Authentication Dial-In User Service (RADIUS)|[🔗](https://en.wikipedia.org/wiki/RADIUS)|[🔗](https://tools.ietf.org/html/rfc2865)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/radius.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/radius/main.zeek.html#type-RADIUS::Info)| +|Remote Desktop Protocol (RDP)|[🔗](https://en.wikipedia.org/wiki/Remote_Desktop_Protocol)|[🔗](https://docs.microsoft.com/en-us/windows/win32/termserv/remote-desktop-protocol?redirectedfrom=MSDN)||[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/rdp/main.zeek.html#type-RDP::Info)| +|Remote Framebuffer (RFB)|[🔗](https://en.wikipedia.org/wiki/RFB_protocol)|[🔗](https://tools.ietf.org/html/rfc6143)||[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/rfb/main.zeek.html#type-RFB::Info)| +|S7comm / Connection Oriented Transport Protocol (COTP)|[🔗](https://wiki.wireshark.org/S7comm) [🔗](https://wiki.wireshark.org/COTP)|[🔗](https://support.industry.siemens.com/cs/document/26483647/what-properties-advantages-and-special-features-does-the-s7-protocol-offer-?dti=0&lc=en-WW) [🔗](https://www.ietf.org/rfc/rfc0905.txt)||[✓](https://github.com/amzn/zeek-plugin-s7comm/blob/master/scripts/main.zeek)| +|Session Initiation Protocol (SIP)|[🔗](https://en.wikipedia.org/wiki/Session_Initiation_Protocol)|[🔗](https://tools.ietf.org/html/rfc3261)||[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/sip/main.zeek.html#type-SIP::Info)| +|Server Message Block (SMB) / Common Internet File System (CIFS)|[🔗](https://en.wikipedia.org/wiki/Server_Message_Block)|[🔗](https://docs.microsoft.com/en-us/windows/win32/fileio/microsoft-smb-protocol-and-cifs-protocol-overview)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/smb.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/smb/main.zeek.html)| +|Simple Mail Transfer Protocol|[🔗](https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol)|[🔗](https://tools.ietf.org/html/rfc5321)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/smtp.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/smtp/main.zeek.html#type-SMTP::Info)| +|Simple Network Management Protocol|[🔗](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol)|[🔗](https://tools.ietf.org/html/rfc2578)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/smtp.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/snmp/main.zeek.html#type-SNMP::Info)| +|SOCKS|[🔗](https://en.wikipedia.org/wiki/SOCKS)|[🔗](https://tools.ietf.org/html/rfc1928)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/socks.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/socks/main.zeek.html#type-SOCKS::Info)| +|Secure Shell (SSH)|[🔗](https://en.wikipedia.org/wiki/Secure_Shell)|[🔗](https://tools.ietf.org/html/rfc4253)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/ssh.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/ssh/main.zeek.html#type-SSH::Info)| +|Secure Sockets Layer (SSL) / Transport Layer Security (TLS)|[🔗](https://en.wikipedia.org/wiki/Transport_Layer_Security)|[🔗](https://tools.ietf.org/html/rfc5246)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/socks.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/ssl/main.zeek.html#type-SSL::Info)| +|Syslog|[🔗](https://en.wikipedia.org/wiki/Syslog)|[🔗](https://tools.ietf.org/html/rfc5424)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/tls.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/protocols/syslog/main.zeek.html#type-Syslog::Info)| +|Tabular Data Stream|[🔗](https://en.wikipedia.org/wiki/Tabular_Data_Stream)|[🔗](https://www.freetds.org/tds.html) [🔗](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-tds/b46a581a-39de-4745-b076-ec4dbb7d13ec)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/tds.c)|[✓](https://github.com/amzn/zeek-plugin-tds/blob/master/scripts/main.zeek)| +|Telnet / remote shell (rsh) / remote login (rlogin)|[🔗](https://en.wikipedia.org/wiki/Telnet)[🔗](https://en.wikipedia.org/wiki/Berkeley_r-commands)|[🔗](https://tools.ietf.org/html/rfc854)[🔗](https://tools.ietf.org/html/rfc1282)|[✓](https://github.com/arkime/arkime/blob/master/capture/parsers/misc.c#L336)|[✓](https://docs.zeek.org/en/current/scripts/base/bif/plugins/Zeek_Login.events.bif.zeek.html)[❋](https://github.com/cisagov/Malcolm/blob/master/zeek/config/login.zeek)| +|TFTP (Trivial File Transfer Protocol)|[🔗](https://en.wikipedia.org/wiki/Trivial_File_Transfer_Protocol)|[🔗](https://tools.ietf.org/html/rfc1350)||[✓](https://github.com/zeek/spicy-analyzers/blob/main/analyzer/protocol/tftp/tftp.zeek)| +|WireGuard|[🔗](https://en.wikipedia.org/wiki/WireGuard)|[🔗](https://www.wireguard.com/protocol/)[🔗](https://www.wireguard.com/papers/wireguard.pdf)||[✓](https://github.com/zeek/spicy-analyzers/tree/main/analyzer/protocol/wireguard/main.zeek)| +|various tunnel protocols (e.g., GTP, GRE, Teredo, AYIYA, IP-in-IP, etc.)|[🔗](https://en.wikipedia.org/wiki/Tunneling_protocol)||[✓](https://github.com/arkime/arkime/blob/master/capture/packet.c)|[✓](https://docs.zeek.org/en/stable/scripts/base/frameworks/tunnels/main.zeek.html#type-Tunnel::Info)| + +Additionally, Zeek is able to detect and, where possible, log the type, vendor and version of [various](https://docs.zeek.org/en/stable/scripts/base/frameworks/software/main.zeek.html#type-Software::Type) other [software protocols](https://en.wikipedia.org/wiki/Application_layer). + +As part of its network traffic analysis, Zeek can extract and analyze files transferred across the protocols it understands. In addition to generating logs for transferred files, deeper analysis is done into the following file types: + +* [Portable executable](https://docs.zeek.org/en/stable/scripts/base/files/pe/main.zeek.html#type-PE::Info) files +* [X.509](https://docs.zeek.org/en/stable/scripts/base/files/x509/main.zeek.html#type-X509::Info) certificates + +See [automatic file extraction and scanning](#ZeekFileExtraction) for additional features related to file scanning. + +See [Zeek log integration](#ArkimeZeek) for more information on how Malcolm integrates [Arkime sessions and Zeek logs](#ZeekArkimeFlowCorrelation) for analysis. + +## Development + +Checking out the [Malcolm source code](https://github.com/cisagov/Malcolm/tree/master) results in the following subdirectories in your `malcolm/` working copy: + +* `Dockerfiles` - a directory containing build instructions for Malcolm's docker images +* `docs` - a directory containing instructions and documentation +* `elasticsearch` - an initially empty directory where the Elasticsearch database instance will reside +* `elasticsearch-backup` - an initially empty directory for storing Elasticsearch [index snapshots](#IndexManagement) +* `filebeat` - code and configuration for the `filebeat` container which ingests Zeek logs and forwards them to the `logstash` container +* `file-monitor` - code and configuration for the `file-monitor` container which can scan files extracted by Zeek +* `file-upload` - code and configuration for the `upload` container which serves a web browser-based upload form for uploading PCAP files and Zeek logs, and which serves an SFTP share as an alternate method for upload +* `freq-server` - code and configuration for the `freq` container used for calculating entropy of strings +* `htadmin` - configuration for the `htadmin` user account management container +* `kibana` - code and configuration for the `kibana` container for creating additional ad-hoc visualizations and dashboards beyond that which is provided by Arkime Viewer +* `logstash` - code and configuration for the `logstash` container which parses Zeek logs and forwards them to the `elasticsearch` container +* `malcolm-iso` - code and configuration for building an [installer ISO](#ISO) for a minimal Debian-based Linux installation for running Malcolm +* `moloch` - code and configuration for the `arkime` container which processes PCAP files using `moloch-capture` and which serves the Viewer application +* `moloch-logs` - an initially empty directory to which the `arkime` container will write some debug log files +* `moloch-raw` - an initially empty directory to which the `arkime` container will write captured PCAP files; as Arkime as employed by Malcolm is currently used for processing previously-captured PCAP files, this directory is currently unused +* `name-map-ui` - code and configuration for the `name-map-ui` container which provides the [host and subnet name mapping](#HostAndSubnetNaming) interface +* `nginx` - configuration for the `nginx` reverse proxy container +* `pcap` - an initially empty directory for PCAP files to be uploaded, processed, and stored +* `pcap-capture` - code and configuration for the `pcap-capture` container which can capture network traffic +* `pcap-monitor` - code and configuration for the `pcap-monitor` container which watches for new or uploaded PCAP files notifies the other services to process them +* `scripts` - control scripts for starting, stopping, restarting, etc. Malcolm +* `sensor-iso` - code and configuration for building a [Hedgehog Linux](#Hedgehog) ISO +* `shared` - miscellaneous code used by various Malcolm components +* `zeek` - code and configuration for the `zeek` container which handles PCAP processing using Zeek +* `zeek-logs` - an initially empty directory for Zeek logs to be uploaded, processed, and stored + +and the following files of special note: + +* `auth.env` - the script `./scripts/auth_setup` prompts the user for the administrator credentials used by the Malcolm appliance, and `auth.env` is the environment file where those values are stored +* `cidr-map.txt` - specify custom IP address to network segment mapping +* `host-map.txt` - specify custom IP and/or MAC address to host mapping +* `net-map.json` - an alternative to `cidr-map.txt` and `host-map.txt`, mapping hosts and network segments to their names in a JSON-formatted file +* `docker-compose.yml` - the configuration file used by `docker-compose` to build, start, and stop an instance of the Malcolm appliance +* `docker-compose-standalone.yml` - similar to `docker-compose.yml`, only used for the ["packaged"](#Packager) installation of Malcolm + +### Building from source + +Building the Malcolm docker images from scratch requires internet access to pull source files for its components. Once internet access is available, execute the following command to build all of the Docker images used by the Malcolm appliance: + +``` +$ ./scripts/build.sh +``` + +Then, go take a walk or something since it will be a while. When you're done, you can run `docker images` and see you have fresh images for: + +* `malcolmnetsec/arkime` (based on `debian:buster-slim`) +* `malcolmnetsec/elasticsearch-od` (based on `amazon/opendistro-for-elasticsearch`) +* `malcolmnetsec/filebeat-oss` (based on `docker.elastic.co/beats/filebeat-oss`) +* `malcolmnetsec/file-monitor` (based on `debian:buster-slim`) +* `malcolmnetsec/file-upload` (based on `debian:buster-slim`) +* `malcolmnetsec/freq` (based on `debian:buster-slim`) +* `malcolmnetsec/htadmin` (based on `debian:buster-slim`) +* `malcolmnetsec/kibana-od` (based on `amazon/opendistro-for-elasticsearch-kibana`) +* `malcolmnetsec/kibana-helper` (based on `alpine:3.12`) +* `malcolmnetsec/logstash-oss` (based on `docker.elastic.co/logstash/logstash-oss`) +* `malcolmnetsec/name-map-ui` (based on `alpine:3.12`) +* `malcolmnetsec/nginx-proxy` (based on `alpine:3.12`) +* `malcolmnetsec/pcap-capture` (based on `debian:buster-slim`) +* `malcolmnetsec/pcap-monitor` (based on `debian:buster-slim`) +* `malcolmnetsec/pcap-zeek` (based on `debian:buster-slim`) + +## Pre-Packaged installation files + +### Creating pre-packaged installation files + +`scripts/malcolm_appliance_packager.sh` can be run to package up the configuration files (and, if necessary, the Docker images) which can be copied to a network share or USB drive for distribution to non-networked machines. For example: + +``` +$ ./scripts/malcolm_appliance_packager.sh +You must set a username and password for Malcolm, and self-signed X.509 certificates will be generated + +Store administrator username/password for local Malcolm access? (Y/n): + +Administrator username: analyst +analyst password: +analyst password (again): + +(Re)generate self-signed certificates for HTTPS access (Y/n): + +(Re)generate self-signed certificates for a remote log forwarder (Y/n): + +Store username/password for forwarding Logstash events to a secondary, external Elasticsearch instance (y/N): + +Store username/password for email alert sender account (y/N): + +Packaged Malcolm to "/home/user/tmp/malcolm_20190513_101117_f0d052c.tar.gz" + +Do you need to package docker images also [y/N]? y +This might take a few minutes... + +Packaged Malcolm docker images to "/home/user/tmp/malcolm_20190513_101117_f0d052c_images.tar.gz" + + +To install Malcolm: + 1. Run install.py + 2. Follow the prompts + +To start, stop, restart, etc. Malcolm: + Use the control scripts in the "scripts/" directory: + - start (start Malcolm) + - stop (stop Malcolm) + - restart (restart Malcolm) + - logs (monitor Malcolm logs) + - wipe (stop Malcolm and clear its database) + - auth_setup (change authentication-related settings) + +A minute or so after starting Malcolm, the following services will be accessible: + - Arkime: https://localhost/ + - Kibana: https://localhost/kibana/ + - PCAP upload (web): https://localhost/upload/ + - PCAP upload (sftp): sftp://USERNAME@127.0.0.1:8022/files/ + - Host and subnet name mapping editor: https://localhost/name-map-ui/ + - Account management: https://localhost:488/ +``` + +The above example will result in the following artifacts for distribution as explained in the script's output: + +``` +$ ls -lh +total 2.0G +-rwxr-xr-x 1 user user 61k May 13 11:32 install.py +-rw-r--r-- 1 user user 2.0G May 13 11:37 malcolm_20190513_101117_f0d052c_images.tar.gz +-rw-r--r-- 1 user user 683 May 13 11:37 malcolm_20190513_101117_f0d052c.README.txt +-rw-r--r-- 1 user user 183k May 13 11:32 malcolm_20190513_101117_f0d052c.tar.gz +``` + +### Installing from pre-packaged installation files + +If you have obtained pre-packaged installation files to install Malcolm on a non-networked machine via an internal network share or on a USB key, you likely have the following files: + +* `malcolm_YYYYMMDD_HHNNSS_xxxxxxx.README.txt` - This readme file contains a minimal set up instructions for extracting the contents of the other tarballs and running the Malcolm appliance. +* `malcolm_YYYYMMDD_HHNNSS_xxxxxxx.tar.gz` - This tarball contains the configuration files and directory configuration used by an instance of Malcolm. It can be extracted via `tar -xf malcolm_YYYYMMDD_HHNNSS_xxxxxxx.tar.gz` upon which a directory will be created (named similarly to the tarball) containing the directories and configuration files. Alternatively, `install.py` can accept this filename as an argument and handle its extraction and initial configuration for you. +* `malcolm_YYYYMMDD_HHNNSS_xxxxxxx_images.tar.gz` - This tarball contains the Docker images used by Malcolm. It can be imported manually via `docker load -i malcolm_YYYYMMDD_HHNNSS_xxxxxxx_images.tar.gz` +* `install.py` - This install script can load the Docker images and extract Malcolm configuration files from the aforementioned tarballs and do some initial configuration for you. + +Run `install.py malcolm_XXXXXXXX_XXXXXX_XXXXXXX.tar.gz` and follow the prompts. If you do not already have Docker and Docker Compose installed, the `install.py` script will help you install them. + +## Preparing your system + +### Recommended system requirements + +Malcolm runs on top of [Docker](https://www.docker.com/) which runs on recent releases of Linux, Apple macOS and Microsoft Windows 10. + +To quote the [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html), "If there is one resource that you will run out of first, it will likely be memory." The same is true for Malcolm: you will want at least 16 gigabytes of RAM to run Malcolm comfortably. For processing large volumes of traffic, I'd recommend at a bare minimum a dedicated server with 16 cores and 16 gigabytes of RAM. Malcolm can run on less, but more is better. You're going to want as much hard drive space as possible, of course, as the amount of PCAP data you're able to analyze and store will be limited by your hard drive. + +Arkime's wiki has a couple of documents ([here](https://github.com/arkime/arkime#hardware-requirements) and [here](https://github.com/arkime/arkime/wiki/FAQ#what-kind-of-capture-machines-should-we-buy) and [here](https://github.com/arkime/arkime/wiki/FAQ#how-many-elasticsearch-nodes-or-machines-do-i-need) and a [calculator here](https://molo.ch/#estimators)) which may be helpful, although not everything in those documents will apply to a Docker-based setup like Malcolm. + +### System configuration and tuning + +If you already have Docker and Docker Compose installed, the `install.py` script can still help you tune system configuration and `docker-compose.yml` parameters for Malcolm. To run it in "configuration only" mode, bypassing the steps to install Docker and Docker Compose, run it like this: +``` +./scripts/install.py --configure +``` + +Although `install.py` will attempt to automate many of the following configuration and tuning parameters, they are nonetheless listed in the following sections for reference: + +#### `docker-compose.yml` parameters + +Edit `docker-compose.yml` and search for the `ES_JAVA_OPTS` key. Edit the `-Xms4g -Xmx4g` values, replacing `4g` with a number that is half of your total system memory, or just under 32 gigabytes, whichever is less. So, for example, if I had 64 gigabytes of memory I would edit those values to be `-Xms31g -Xmx31g`. This indicates how much memory can be allocated to the Elasticsearch heaps. For a pleasant experience, I would suggest not using a value under 10 gigabytes. Similar values can be modified for Logstash with `LS_JAVA_OPTS`, where using 3 or 4 gigabytes is recommended. + +Various other environment variables inside of `docker-compose.yml` can be tweaked to control aspects of how Malcolm behaves, particularly with regards to processing PCAP files and Zeek logs. The environment variables of particular interest are located near the top of that file under **Commonly tweaked configuration options**, which include: + +* `PUID` and `PGID` - Docker runs all of its containers as the privileged `root` user by default. For better security, Malcolm immediately drops to non-privileged user accounts for executing internal processes wherever possible. The `PUID` (**p**rocess **u**ser **ID**) and `PGID` (**p**rocess **g**roup **ID**) environment variables allow Malcolm to map internal non-privileged user accounts to a corresponding [user account](https://en.wikipedia.org/wiki/User_identifier) on the host. + +* `NGINX_BASIC_AUTH` - if set to `true`, use [TLS-encrypted HTTP basic](#AuthBasicAccountManagement) authentication (default); if set to `false`, use [Lightweight Directory Access Protocol (LDAP)](#AuthLDAP) authentication + +* `NGINX_LOG_ACCESS_AND_ERRORS` - if set to `true`, all access to Malcolm via its [web interfaces](#UserInterfaceURLs) will be logged to Elasticsearch (default `false`) + +* `MANAGE_PCAP_FILES` – if set to `true`, all PCAP files imported into Malcolm will be marked as available for deletion by Arkime if available storage space becomes too low (default `false`) + +* `ZEEK_AUTO_ANALYZE_PCAP_FILES` – if set to `true`, all PCAP files imported into Malcolm will automatically be analyzed by Zeek, and the resulting logs will also be imported (default `false`) + +* `ZEEK_DISABLE_...` - if set to any non-blank value, each of these variables can be used to disable a certain Zeek function when it analyzes PCAP files (for example, setting `ZEEK_DISABLE_LOG_PASSWORDS` to `true` to disable logging of cleartext passwords) + +* `ZEEK_DISABLE_BEST_GUESS_ICS` - see ["Best Guess" Fingerprinting for ICS Protocols](#ICSBestGuess) + +* `MAXMIND_GEOIP_DB_LICENSE_KEY` - Malcolm uses MaxMind's free GeoLite2 databases for GeoIP lookups. As of December 30, 2019, these databases are [no longer available](https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/) for download via a public URL. Instead, they must be downloaded using a MaxMind license key (available without charge [from MaxMind](https://www.maxmind.com/en/geolite2/signup)). The license key can be specified here for GeoIP database downloads during build- and run-time. + +* `ARKIME_ANALYZE_PCAP_THREADS` – the number of threads available to Arkime for analyzing PCAP files (default `1`) + +* `ZEEK_AUTO_ANALYZE_PCAP_THREADS` – the number of threads available to Malcolm for analyzing Zeek logs (default `1`) + +* `LOGSTASH_OUI_LOOKUP` – if set to `true`, Logstash will map MAC addresses to vendors for all source and destination MAC addresses when analyzing Zeek logs (default `true`) + +* `LOGSTASH_REVERSE_DNS` – if set to `true`, Logstash will perform a reverse DNS lookup for all external source and destination IP address values when analyzing Zeek logs (default `false`) + +* `ES_EXTERNAL_HOSTS` – if specified (in the format `'10.0.0.123:9200'`), logs received by Logstash will be forwarded on to another external Elasticsearch instance in addition to the one maintained locally by Malcolm + +* `ES_EXTERNAL_SSL` – if set to `true`, Logstash will use HTTPS for the connection to external Elasticsearch instances specified in `ES_EXTERNAL_HOSTS` + +* `ES_EXTERNAL_SSL_CERTIFICATE_VERIFICATION` – if set to `true`, Logstash will require full SSL certificate validation; this may fail if using self-signed certificates (default `false`) + +* `AUTO_TAG` – if set to `true`, Malcolm will automatically create Arkime sessions and Zeek logs with tags based on the filename, as described in [Tagging](#Tagging) (default `true`) + +* `BEATS_SSL` – if set to `true`, Logstash will use require encrypted communications for any external Beats-based forwarders from which it will accept logs; if Malcolm is being used as a standalone tool then this can safely be set to `false`, but if external log feeds are to be accepted then setting it to true is recommended (default `false`) + +* `ZEEK_EXTRACTOR_MODE` – determines the file extraction behavior for file transfers detected by Zeek; see [Automatic file extraction and scanning](#ZeekFileExtraction) for more details + +* `EXTRACTED_FILE_IGNORE_EXISTING` – if set to `true`, files extant in `./zeek-logs/extract_files/` directory will be ignored on startup rather than scanned + +* `EXTRACTED_FILE_PRESERVATION` – determines behavior for preservation of [Zeek-extracted files](#ZeekFileExtraction) + +* `VTOT_API2_KEY` – used to specify a [VirusTotal Public API v.20](https://www.virustotal.com/en/documentation/public-api/) key, which, if specified, will be used to submit hashes of [Zeek-extracted files](#ZeekFileExtraction) to VirusTotal + +* `EXTRACTED_FILE_ENABLE_YARA` – if set to `true`, [Zeek-extracted files](#ZeekFileExtraction) will be scanned with [Yara](https://github.com/VirusTotal/yara) + +* `EXTRACTED_FILE_YARA_CUSTOM_ONLY` – if set to `true`, Malcolm will bypass the default [Yara ruleset](https://github.com/Neo23x0/signature-base) and use only user-defined rules in `./yara/rules` + +* `EXTRACTED_FILE_ENABLE_CAPA` – if set to `true`, [Zeek-extracted files](#ZeekFileExtraction) that are determined to be PE (portable executable) files will be scanned with [Capa](https://github.com/fireeye/capa) + +* `EXTRACTED_FILE_CAPA_VERBOSE` – if set to `true`, all Capa rule hits will be logged; otherwise (`false`) only [MITRE ATT&CK technique](https://attack.mitre.org/techniques) classifications will be logged + +* `EXTRACTED_FILE_ENABLE_CLAMAV` – if set to `true`, [Zeek-extracted files](#ZeekFileExtraction) will be scanned with [ClamAV](https://www.clamav.net/) + +* `EXTRACTED_FILE_UPDATE_RULES` – if set to `true`, file scanner engines (e.g., ClamAV, Capa, Yara) will periodically update their rule definitions + +* `EXTRACTED_FILE_HTTP_SERVER_ENABLE` – if set to `true`, the directory containing [Zeek-extracted files](#ZeekFileExtraction) will be served over HTTP at `./extracted-files/` (e.g., [https://localhost/extracted-files/](https://localhost/extracted-files/) if you are connecting locally) + +* `EXTRACTED_FILE_HTTP_SERVER_ENCRYPT` – if set to `true`, those Zeek-extracted files will be AES-256-CBC-encrypted in an `openssl enc`-compatible format (e.g., `openssl enc -aes-256-cbc -d -in example.exe.encrypted -out example.exe`) + +* `EXTRACTED_FILE_HTTP_SERVER_KEY` – specifies the AES-256-CBC decryption password for encrypted Zeek-extracted files; used in conjunction with `EXTRACTED_FILE_HTTP_SERVER_ENCRYPT` + +* `PCAP_ENABLE_NETSNIFF` – if set to `true`, Malcolm will capture network traffic on the local network interface(s) indicated in `PCAP_IFACE` using [netsniff-ng](http://netsniff-ng.org/) + +* `PCAP_ENABLE_TCPDUMP` – if set to `true`, Malcolm will capture network traffic on the local network interface(s) indicated in `PCAP_IFACE` using [tcpdump](https://www.tcpdump.org/); there is no reason to enable *both* `PCAP_ENABLE_NETSNIFF` and `PCAP_ENABLE_TCPDUMP` + +* `PCAP_IFACE` – used to specify the network interface(s) for local packet capture if `PCAP_ENABLE_NETSNIFF` or `PCAP_ENABLE_TCPDUMP` are enabled; for multiple interfaces, separate the interface names with a comma (e.g., `'enp0s25'` or `'enp10s0,enp11s0'`) + +* `PCAP_ROTATE_MEGABYTES` – used to specify how large a locally-captured PCAP file can become (in megabytes) before it closed for processing and a new PCAP file created + +* `PCAP_ROTATE_MINUTES` – used to specify an time interval (in minutes) after which a locally-captured PCAP file will be closed for processing and a new PCAP file created + +* `PCAP_FILTER` – specifies a tcpdump-style filter expression for local packet capture; leave blank to capture all traffic + +#### Linux host system configuration + +##### Installing Docker + +Docker installation instructions vary slightly by distribution. Please follow the links below to docker.com to find the instructions specific to your distribution: + +* [Ubuntu](https://docs.docker.com/install/linux/docker-ce/ubuntu/) +* [Debian](https://docs.docker.com/install/linux/docker-ce/debian/) +* [Fedora](https://docs.docker.com/install/linux/docker-ce/fedora/) +* [CentOS](https://docs.docker.com/install/linux/docker-ce/centos/) +* [Binaries](https://docs.docker.com/install/linux/docker-ce/binaries/) + +After installing Docker, because Malcolm should be run as a non-root user, add your user to the `docker` group with something like: +``` +$ sudo usermod -aG docker yourusername +``` + +Following this, either reboot or log out then log back in. + +Docker starts automatically on DEB-based distributions. On RPM-based distributions, you need to start it manually or enable it using the appropriate `systemctl` or `service` command(s). + +You can test docker by running `docker info`, or (assuming you have internet access), `docker run --rm hello-world`. + +##### Installing docker-compose + +Please follow [this link](https://docs.docker.com/compose/install/) on docker.com for instructions on installing docker-compose. + +##### Operating system configuration + +The host system (ie., the one running Docker) will need to be configured for the [best possible Elasticsearch performance](https://www.elastic.co/guide/en/elasticsearch/reference/master/system-config.html). Here are a few suggestions for Linux hosts (these may vary from distribution to distribution): + +* Append the following lines to `/etc/sysctl.conf`: + +``` +# the maximum number of open file handles +fs.file-max=2097152 + +# increase maximums for inotify watches +fs.inotify.max_user_watches=131072 +fs.inotify.max_queued_events=131072 +fs.inotify.max_user_instances=512 + +# the maximum number of memory map areas a process may have +vm.max_map_count=262144 + +# decrease "swappiness" (swapping out runtime memory vs. dropping pages) +vm.swappiness=1 + +# the maximum number of incoming connections +net.core.somaxconn=65535 + +# the % of system memory fillable with "dirty" pages before flushing +vm.dirty_background_ratio=40 + +# maximum % of dirty system memory before committing everything +vm.dirty_ratio=80 +``` + +* Depending on your distribution, create **either** the file `/etc/security/limits.d/limits.conf` containing: + +``` +# the maximum number of open file handles +* soft nofile 65535 +* hard nofile 65535 +# do not limit the size of memory that can be locked +* soft memlock unlimited +* hard memlock unlimited +``` + +**OR** the file `/etc/systemd/system.conf.d/limits.conf` containing: + +``` +[Manager] +# the maximum number of open file handles +DefaultLimitNOFILE=65535:65535 +# do not limit the size of memory that can be locked +DefaultLimitMEMLOCK=infinity +``` + +* Change the readahead value for the disk where the Elasticsearch data will be stored. There are a few ways to do this. For example, you could add this line to `/etc/rc.local` (replacing `/dev/sda` with your disk block descriptor): + +``` +# change disk read-adhead value (# of blocks) +blockdev --setra 512 /dev/sda +``` + +* Change the I/O scheduler to `deadline` or `noop`. Again, this can be done in a variety of ways. The simplest is to add `elevator=deadline` to the arguments in `GRUB_CMDLINE_LINUX` in `/etc/default/grub`, then running `sudo update-grub2` + +* If you are planning on using very large data sets, consider formatting the drive containing `elasticsearch` volume as XFS. + +After making all of these changes, do a reboot for good measure! + +#### macOS host system configuration + +##### Automatic installation using `install.py` + +The `install.py` script will attempt to guide you through the installation of Docker and Docker Compose if they are not present. If that works for you, you can skip ahead to **Configure docker daemon option** in this section. + +##### Install Homebrew + +The easiest way to install and maintain docker on Mac is using the [Homebrew cask](https://brew.sh). Execute the following in a terminal. + +``` +$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" +$ brew install cask +$ brew tap homebrew/cask-versions +``` + +##### Install docker-edge + +``` +$ brew cask install docker-edge +``` +This will install the latest version of docker and docker-compose. It can be upgraded later using `brew` as well: +``` +$ brew cask upgrade --no-quarantine docker-edge +``` +You can now run docker from the Applications folder. + +##### Configure docker daemon option + +Some changes should be made for performance ([this link](http://markshust.com/2018/01/30/performance-tuning-docker-mac) gives a good succinct overview). + +* **Resource allocation** - For a good experience, you likely need at least a quad-core MacBook Pro with 16GB RAM and an SSD. I have run Malcolm on an older 2013 MacBook Pro with 8GB of RAM, but the more the better. Go in your system tray and select **Docker** → **Preferences** → **Advanced**. Set the resources available to docker to at least 4 CPUs and 8GB of RAM (>= 16GB is preferable). + +* **Volume mount performance** - You can speed up performance of volume mounts by removing unused paths from **Docker** → **Preferences** → **File Sharing**. For example, if you’re only going to be mounting volumes under your home directory, you could share `/Users` but remove other paths. + +After making these changes, right click on the Docker 🐋 icon in the system tray and select **Restart**. + +#### Windows host system configuration + +#### Installing and configuring Docker Desktop for Windows + +Installing and configuring Docker to run under Windows must be done manually, rather than through the `install.py` script as is done for Linux and macOS. + +1. In order to be able to configure Docker volume mounts correctly, you should be running [Windows 10, version 1803](https://docs.microsoft.com/en-us/windows/whats-new/whats-new-windows-10-version-1803) or higher. +1. The control scripts in the `scripts/` directory are written for Python 3. They also rely on a few other utilities such as OpenSSL and htpasswd. The easiest way to run these tools in Windows is using the [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) (WSL) (however, they may also be installed and configured manually: [Python 3](https://www.python.org/downloads/windows); [OpenSSL](https://wiki.openssl.org/index.php/Binaries); [htpasswd](https://httpd.apache.org/docs/current/platform/windows.html#down), download the `httpd….zip` file and extract `htpasswd.exe` from the `Apache…\bin\` directory). To install WSL, run the following command in PowerShell as Administrator: + + `Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux` +1. Install the [Linux distribution of your choice](https://docs.microsoft.com/en-us/windows/wsl/install-win10#install-your-linux-distribution-of-choice) in WSL. These instructions have been tested using Debian, but will probably work with other distributions as well. +1. Run the following commands in PowerShell as Administrator to enable required Windows features: + + `Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All` + + `Enable-WindowsOptionalFeature -Online -FeatureName Containers –All` +1. If you have not yet done so after enabling the Windows features, reboot. +1. Install [Docker Desktop for Windows](https://hub.docker.com/editions/community/docker-ce-desktop-windows) either by downloading the installer from the official Docker site or installing it through [chocolatey](https://chocolatey.org/packages/docker-desktop). +1. Run **Docker Desktop**, click the **Settings** option in the Docker system tray menu and make the following adjustments: + + **General** + * Ensure *Start Docker Desktop when you log in* is checked. + + **Shared Drives** + * Mark the drive onto which Malcolm is installed as *Shared* (e.g., check *Shared* for drive *C*). + + **Advanced** + + Increase *CPUs* to as many as you're comfortable with (at least *4* is best). + + Increase *Memory* to as much as you're comfortable with (at least *16* is recommended, no fewer than *10*). + + Increase *Disk image max size* to however much space you want Malcolm to have available to it (ideally at least several hundred gigabytes), and change the *Disk image location* if needed to accommodate it. +1. Make sure Docker applies/restarts (or just reboot), then go back in and check the **Advanced** settings to make sure things stick. +1. To ensure Docker volume mounts work correctly when using WSL, WSL needs to be configured to mount at `/` instead of at `/mnt`. Inside your WSL Bash shell, run the following command to write `/etc/wsl.conf` to specify the WSL mount point: + + `echo -e '[automount]\nroot = /\noptions = "metadata"' | sudo tee /etc/wsl.conf` +1. Reboot. +1. Run `docker info` in PowerShell to make sure Docker is running. +1. Open a shell in your WSL distribution and run `docker.exe info` to make sure Docker is accessible from within WSL. + + Previous versions of WSL required the native Linux `docker` command-line client to interact with the Windows Desktop Docker server. Recent improvements to WSL allow the Windows executables `docker-compose.exe` and `docker.exe` to be run seamlessly in WSL. Malcolm's control scripts detect this scenario. + +#### Finish Malcolm's configuration + +Once Docker is installed, configured and running as described in the previous section, run [`./scripts/install.py --configure`](#ConfigAndTuning) (in WSL it will probably be something like `sudo ./scripts/install.py --configure`) to finish configuration of the local Malcolm installation. + +The control scripts outlined in the [Running Malcolm](#Running) section may not be symlinked correctly under Windows. Rather than running `./scripts/start`, `./scripts/stop`, etc., you can run `./scripts/control.py --start`, `./scripts/control.py --stop`, etc. to the same effect. + +## Running Malcolm + +### Configure authentication + +Malcolm requires authentication to access the [user interface](#UserInterfaceURLs). [Nginx](https://nginx.org/) can authenticate users with either local TLS-encrypted HTTP basic authentication or using a remote Lightweight Directory Access Protocol (LDAP) authentication server. + +With the local basic authentication method, user accounts are managed by Malcolm and can be created, modified, and deleted using a [user management web interface](#AccountManagement). This method is suitable in instances where accounts and credentials do not need to be synced across many Malcolm installations. + +LDAP authentication are managed on a remote directory service, such as a [Microsoft Active Directory Domain Services](https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/active-directory-domain-services-overview) or [OpenLDAP](https://www.openldap.org/). + +Malcolm's authentication method is defined in the `x-auth-variables` section near the top of the [`docker-compose.yml`](#DockerComposeYml) file with the `NGINX_BASIC_AUTH` environment variable: `true` for local TLS-encrypted HTTP basic authentication, `false` for LDAP authentication. + +In either case, you **must** run `./scripts/auth_setup` before starting Malcolm for the first time in order to: + +* define the local Malcolm administrator account username and password (although these credentials will only be used for basic authentication, not LDAP authentication) +* specify whether or not to (re)generate the self-signed certificates used for HTTPS access + * key and certificate files are located in the `nginx/certs/` directory +* specify whether or not to (re)generate the self-signed certificates used by a remote log forwarder (see the `BEATS_SSL` environment variable above) + * certificate authority, certificate, and key files for Malcolm’s Logstash instance are located in the `logstash/certs/` directory + * certificate authority, certificate, and key files to be copied to and used by the remote log forwarder are located in the `filebeat/certs/` directory +* specify whether or not to store the username/password for forwarding Logstash events to a secondary, external Elasticsearch instance (see the `ES_EXTERNAL_HOSTS`, `ES_EXTERNAL_SSL`, and `ES_EXTERNAL_SSL_CERTIFICATE_VERIFICATION` environment variables above) + * these parameters are stored securely in the Logstash keystore file `logstash/certs/logstash.keystore` +* specify whether or not to [store the username/password](https://opendistro.github.io/for-elasticsearch-docs/docs/alerting/monitors/#authenticate-sender-account) for [email alert senders](https://opendistro.github.io/for-elasticsearch-docs/docs/alerting/monitors/#create-destinations) + * these parameters are stored securely in the Elasticsearch keystore file `elasticsearch/elasticsearch.keystore` + +##### Local account management + +[`auth_setup`](#AuthSetup) is used to define the username and password for the administrator account. Once Malcolm is running, the administrator account can be used to manage other user accounts via a **Malcolm User Management** page served over HTTPS on port 488 (e.g., [https://localhost:488](https://localhost:488) if you are connecting locally). + +Malcolm user accounts can be used to access the [interfaces](#UserInterfaceURLs) of all of its [components](#Components), including Arkime. Arkime uses its own internal database of user accounts, so when a Malcolm user account logs in to Arkime for the first time Malcolm creates a corresponding Arkime user account automatically. This being the case, it is *not* recommended to use the Arkime **Users** settings page or change the password via the **Password** form under the Arkime **Settings** page, as those settings would not be consistently used across Malcolm. + +Users may change their passwords via the **Malcolm User Management** page by clicking **User Self Service**. A forgotten password can also be reset via an emailed link, though this requires SMTP server settings to be specified in `htadmin/config.ini` in the Malcolm installation directory. + +#### Lightweight Directory Access Protocol (LDAP) authentication + +The [nginx-auth-ldap](https://github.com/kvspb/nginx-auth-ldap) module serves as the interface between Malcolm's [Nginx](https://nginx.org/) web server and a remote LDAP server. When you run [`auth_setup`](#AuthSetup) for the first time, a sample LDAP configuration file is created at `nginx/nginx_ldap.conf`. + +``` +# This is a sample configuration for the ldap_server section of nginx.conf. +# Yours will vary depending on how your Active Directory/LDAP server is configured. +# See https://github.com/kvspb/nginx-auth-ldap#available-config-parameters for options. + +ldap_server ad_server { + url "ldap://ds.example.com:3268/DC=ds,DC=example,DC=com?sAMAccountName?sub?(objectClass=person)"; + + binddn "bind_dn"; + binddn_passwd "bind_dn_password"; + + group_attribute member; + group_attribute_is_dn on; + require group "CN=Malcolm,CN=Users,DC=ds,DC=example,DC=com"; + require valid_user; + satisfy all; +} + +auth_ldap_cache_enabled on; +auth_ldap_cache_expiration_time 10000; +auth_ldap_cache_size 1000; +``` + +This file is mounted into the `nginx` container when Malcolm is started to provide connection information for the LDAP server. + +The contents of `nginx_ldap.conf` will vary depending on how the LDAP server is configured. Some of the [avaiable parameters](https://github.com/kvspb/nginx-auth-ldap#available-config-parameters) in that file include: + +* **`url`** - the `ldap://` or `ldaps://` connection URL for the remote LDAP server, which has the [following syntax](https://www.ietf.org/rfc/rfc2255.txt): `ldap[s]://:/???` +* **`binddn`** and **`binddn_password`** - the account credentials used to query the LDAP directory +* **`group_attribute`** - the group attribute name which contains the member object (e.g., `member` or `memberUid`) +* **`group_attribute_is_dn`** - whether or not to search for the user's full distinguished name as the value in the group's member attribute +* **`require`** and **`satisfy`** - `require user`, `require group` and `require valid_user` can be used in conjunction with `satisfy any` or `satisfy all` to limit the users that are allowed to access the Malcolm instance + +Before starting Malcolm, edit `nginx/nginx_ldap.conf` according to the specifics of your LDAP server and directory tree structure. Using a LDAP search tool such as [`ldapsearch`](https://www.openldap.org/software/man.cgi?query=ldapsearch) in Linux or [`dsquery`](https://social.technet.microsoft.com/wiki/contents/articles/2195.active-directory-dsquery-commands.aspx) in Windows may be of help as you formulate the configuration. Your changes should be made within the curly braces of the `ldap_server ad_server { … }` section. You can troubleshoot configuration file syntax errors and LDAP connection or credentials issues by running `./scripts/logs` (or `docker-compose logs nginx`) and examining the output of the `nginx` container. + +The **Malcolm User Management** page described above is not available when using LDAP authentication. + +##### LDAP connection security + +Authentication over LDAP can be done using one of three ways, [two of which](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-adts/8e73932f-70cf-46d6-88b1-8d9f86235e81) offer data confidentiality protection: + +* **StartTLS** - the [standard extension](https://tools.ietf.org/html/rfc2830) to the LDAP protocol to establish an encrypted SSL/TLS connection within an already established LDAP connection +* **LDAPS** - a commonly used (though unofficial and considered deprecated) method in which SSL negotiation takes place before any commands are sent from the client to the server +* **Unencrypted** (clear text) (***not recommended***) + +In addition to the `NGINX_BASIC_AUTH` environment variable being set to `false` in the `x-auth-variables` section near the top of the [`docker-compose.yml`](#DockerComposeYml) file, the `NGINX_LDAP_TLS_STUNNEL` and `NGINX_LDAP_TLS_STUNNEL` environment variables are used in conjunction with the values in `nginx/nginx_ldap.conf` to define the LDAP connection security level. Use the following combinations of values to achieve the connection security methods above, respectively: + +* **StartTLS** + - `NGINX_LDAP_TLS_STUNNEL` set to `true` in [`docker-compose.yml`](#DockerComposeYml) + - `url` should begin with `ldap://` and its port should be either the default LDAP port (389) or the default Global Catalog port (3268) in `nginx/nginx_ldap.conf` +* **LDAPS** + - `NGINX_LDAP_TLS_STUNNEL` set to `false` in [`docker-compose.yml`](#DockerComposeYml) + - `url` should begin with `ldaps://` and its port should be either the default LDAPS port (636) or the default LDAPS Global Catalog port (3269) in `nginx/nginx_ldap.conf` +* **Unencrypted** (clear text) (***not recommended***) + - `NGINX_LDAP_TLS_STUNNEL` set to `false` in [`docker-compose.yml`](#DockerComposeYml) + - `url` should begin with `ldap://` and its port should be either the default LDAP port (389) or the default Global Catalog port (3268) in `nginx/nginx_ldap.conf` + +For encrypted connections (whether using **StartTLS** or **LDAPS**), Malcolm will require and verify certificates when one or more trusted CA certificate files are placed in the `nginx/ca-trust/` directory. Otherwise, any certificate presented by the domain server will be accepted. + +### Starting Malcolm + +[Docker compose](https://docs.docker.com/compose/) is used to coordinate running the Docker containers. To start Malcolm, navigate to the directory containing `docker-compose.yml` and run: +``` +$ ./scripts/start +``` +This will create the containers' virtual network and instantiate them, then leave them running in the background. The Malcolm containers may take a several minutes to start up completely. To follow the debug output for an already-running Malcolm instance, run: +``` +$ ./scripts/logs +``` +You can also use `docker stats` to monitor the resource utilization of running containers. + +### Stopping and restarting Malcolm + +You can run `./scripts/stop` to stop the docker containers and remove their virtual network. Alternatively, `./scripts/restart` will restart an instance of Malcolm. Because the data on disk is stored on the host in docker volumes, doing these operations will not result in loss of data. + +Malcolm can be configured to be automatically restarted when the Docker system daemon restart (for example, on system reboot). This behavior depends on the [value](https://docs.docker.com/config/containers/start-containers-automatically/) of the [`restart:`](https://docs.docker.com/compose/compose-file/#restart) setting for each service in the `docker-compose.yml` file. This value can be set by running [`./scripts/install.py --configure`](#ConfigAndTuning) and answering "yes" to "`Restart Malcolm upon system or Docker daemon restart?`." + +### Clearing Malcolm’s data + +Run `./scripts/wipe` to stop the Malcolm instance and wipe its Elasticsearch database (**including** [index snapshots and management policies](#IndexManagement) and [alerting configuration](#Alerting)). + +## Capture file and log archive upload + +Malcolm serves a web browser-based upload form for uploading PCAP files and Zeek logs at [https://localhost/upload/](https://localhost/upload/) if you are connecting locally. + +![Capture File and Log Archive Upload](./docs/images/screenshots/malcolm_upload.png) + +Additionally, there is a writable `files` directory on an SFTP server served on port 8022 (e.g., `sftp://USERNAME@localhost:8022/files/` if you are connecting locally). + +The types of files supported are: + +* PCAP files (of mime type `application/vnd.tcpdump.pcap` or `application/x-pcapng`) + - PCAPNG files are *partially* supported: Zeek is able to process PCAPNG files, but not all of Arkime's packet examination features work correctly +* Zeek logs in archive files (`application/gzip`, `application/x-gzip`, `application/x-7z-compressed`, `application/x-bzip2`, `application/x-cpio`, `application/x-lzip`, `application/x-lzma`, `application/x-rar-compressed`, `application/x-tar`, `application/x-xz`, or `application/zip`) + - where the Zeek logs are found in the internal directory structure in the archive file does not matter + +Files uploaded via these methods are monitored and moved automatically to other directories for processing to begin, generally within one minute of completion of the upload. + +### Tagging + +In addition to be processed for uploading, Malcolm events will be tagged according to the components of the filenames of the PCAP files or Zeek log archives files from which the events were parsed. For example, records created from a PCAP file named `ACME_Scada_VLAN10.pcap` would be tagged with `ACME`, `Scada`, and `VLAN10`. Tags are extracted from filenames by splitting on the characters "," (comma), "-" (dash), and "_" (underscore). These tags are viewable and searchable (via the `tags` field) in Arkime and Kibana. This behavior can be changed by modifying the `AUTO_TAG` [environment variable in `docker-compose.yml`](#DockerComposeYml). + +Tags may also be specified manually with the [browser-based upload form](#Upload). + +### Processing uploaded PCAPs with Zeek + +The browser-based upload interface also provides the ability to specify tags for events extracted from the files uploaded. Additionally, an **Analyze with Zeek** checkbox may be used when uploading PCAP files to cause them to be analyzed by Zeek, similarly to the `ZEEK_AUTO_ANALYZE_PCAP_FILES` environment variable [described above](#DockerComposeYml), only on a per-upload basis. Zeek can also automatically carve out files from file transfers; see [Automatic file extraction and scanning](#ZeekFileExtraction) for more details. + +## Live analysis + +### Capturing traffic on local network interfaces + +Malcolm's `pcap-capture` container can capture traffic on one or more local network interfaces and periodically rotate these files for processing with Arkime and Zeek. The `pcap-capture` Docker container is started with additional privileges (`IPC_LOCK`, `NET_ADMIN`, `NET_RAW`, and `SYS_ADMIN`) in order for it to be able to open network interfaces in promiscuous mode for capture. + +The environment variables prefixed with `PCAP_` in the [`docker-compose.yml`](#DockerComposeYml) file determine local packet capture behavior. Local capture can also be configured by running [`./scripts/install.py --configure`](#ConfigAndTuning) and answering "yes" to "`Should Malcolm capture network traffic to PCAP files?`." + +Note that currently Microsoft Windows and Apple macOS platforms run Docker inside of a virtualized environment. This would require additional configuration of virtual interfaces and port forwarding in Docker, the process for which is outside of the scope of this document. + +### Using a network sensor appliance + +A remote network sensor appliance can be used to monitor network traffic, capture PCAP files, and forward Zeek logs, Arkime sessions, or other information to Malcolm. [Hedgehog Linux](https://github.com/cisagov/Malcolm/tree/master/sensor-iso/) is a Debian-based operating system built to + +* monitor network interfaces +* capture packets to PCAP files +* detect file transfers in network traffic and extract and scan those files for threats +* generate and forward Zeek logs, Arkime sessions, and other information to [Malcolm](https://github.com/cisagov/malcolm) + +Please see the [Hedgehog Linux README](https://github.com/cisagov/Malcolm/blob/master/sensor-iso/README.md) for more information. + +### Manually forwarding Zeek logs from an external source + +Malcolm’s Logstash instance can also be configured to accept Zeek logs from a [remote forwarder](https://www.elastic.co/products/beats/filebeat) by running [`./scripts/install.py --configure`](#ConfigAndTuning) and answering "yes" to "`Expose Logstash port to external hosts?`." Enabling encrypted transport of these logs files is discussed in [Configure authentication](#AuthSetup) and the description of the `BEATS_SSL` environment variable in the [`docker-compose.yml`](#DockerComposeYml) file. + +Configuring Filebeat to forward Zeek logs to Malcolm might look something like this example [`filebeat.yml`](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-reference-yml.html): +``` +filebeat.inputs: +- type: log + paths: + - /var/zeek/*.log + fields_under_root: true + fields: + type: "session" + compression_level: 0 + exclude_lines: ['^\s*#'] + scan_frequency: 10s + clean_inactive: 180m + ignore_older: 120m + close_inactive: 90m + close_renamed: true + close_removed: true + close_eof: false + clean_renamed: true + clean_removed: true + +output.logstash: + hosts: ["192.0.2.123:5044"] + ssl.enabled: true + ssl.certificate_authorities: ["/foo/bar/ca.crt"] + ssl.certificate: "/foo/bar/client.crt" + ssl.key: "/foo/bar/client.key" + ssl.supported_protocols: "TLSv1.2" + ssl.verification_mode: "none" +``` + +## Arkime + +The Arkime interface will be accessible over HTTPS on port 443 at the docker hosts IP address (e.g., [https://localhost](https://localhost) if you are connecting locally). + +### Zeek log integration + +A stock installation of Arkime extracts all of its network connection ("session") metadata ("SPI" or "Session Profile Information") from full packet capture artifacts (PCAP files). Zeek (formerly Bro) generates similar session metadata, linking network events to sessions via a connection UID. Malcolm aims to facilitate analysis of Zeek logs by mapping values from Zeek logs to the Arkime session database schema for equivalent fields, and by creating new "native" Arkime database fields for all the other Zeek log values for which there is not currently an equivalent in Arkime: + +![Zeek log session record](./docs/images/screenshots/moloch_session_zeek.png) + +In this way, when full packet capture is an option, analysis of PCAP files can be enhanced by the additional information Zeek provides. When full packet capture is not an option, similar analysis can still be performed using the same interfaces and processes using the Zeek logs alone. + +One value of particular mention is **Zeek Log Type** (`zeek.logType` in Elasticsearch). This value corresponds to the kind of Zeek `.log` file from which the record was created. In other words, a search could be restricted to records from `conn.log` by searching `zeek.logType == conn`, or restricted to records from `weird.log` by searching `zeek.logType == weird`. In this same way, to view *only* records from Zeek logs (excluding any from PCAP files), use the special Arkime `EXISTS` filter, as in `zeek.logType == EXISTS!`. On the other hand, to exclude Zeek logs and only view records from PCAP files, use `zeek.logType != EXISTS!`. + +Click the icon of the owl **🦉** in the upper-left hand corner of to access the Arkime usage documentation (accessible at [https://localhost/help](https://localhost/help) if you are connecting locally), click the **Fields** label in the navigation pane, then search for `zeek` to see a list of the other Zeek log types and fields available to Malcolm. + +![Zeek fields](./docs/images/screenshots/moloch_help_fields.png) + +The values of records created from Zeek logs can be expanded and viewed like any native Arkime session by clicking the plus **➕** icon to the left of the record in the Sessions view. However, note that when dealing with these Zeek records the full packet contents are not available, so buttons dealing with viewing and exporting PCAP information will not behave as they would for records from PCAP files. Other than that, Zeek records and their values are usable in Malcolm just like native PCAP session records. + +#### Correlating Zeek logs and Arkime sessions + +The Arkime interface displays both Zeek logs and Arkime sessions alongside each other. Using fields common to both data sources, one can [craft queries](#SearchCheatSheet) to filter results matching desired criteria. + +A few fields of particular mention that help limit returned results to those Zeek logs and Arkime session records generated from the same network connection are [Community ID](https://github.com/corelight/community-id-spec) (`communityId` and `zeek.community_id` in Arkime and Zeek, respectively) and Zeek's [connection UID](https://docs.zeek.org/en/stable/examples/logs/#using-uids) (`zeek.uid`), which Malcolm maps to Arkime's `rootId` field. + +Community ID is specification for standard flow hashing [published by Corelight](https://github.com/corelight/community-id-spec) with the intent of making it easier to pivot from one dataset (e.g., Arkime sessions) to another (e.g., Zeek `conn.log` entries). In Malcolm both Arkime and [Zeek](https://github.com/corelight/zeek-community-id) populate this value, which makes it possible to filter for a specific network connection and see both data sources' results for that connection. + +The `rootId` field is used by Arkime to link session records together when a particular session has too many packets to be represented by a single session. When normalizing Zeek logs to Arkime's schema, Malcolm piggybacks on `rootId` to store Zeek's [connection UID](https://docs.zeek.org/en/stable/examples/logs/#using-uids) to crossreference entries across Zeek log types. The connection UID is also stored in `zeek.uid`. + +Filtering on community ID OR'ed with zeek UID (e.g., `communityId == "1:r7tGG//fXP1P0+BXH3zXETCtEFI=" || rootId == "CQcoro2z6adgtGlk42"`) is an effective way to see both the Arkime sessions and Zeek logs generated by a particular network connection. + +![Correlating Arkime sessions and Zeek logs](./docs/images/screenshots/moloch_correlate_communityid_uid.png) + +### Help + +Click the icon of the owl 🦉 in the upper-left hand corner of to access the Arkime usage documentation (accessible at [https://localhost/help](https://localhost/help) if you are connecting locally), which includes such topics as [search syntax](https://localhost/help#search), the [Sessions view](https://localhost/help#sessions), [SPIView](https://localhost/help#spiview), [SPIGraph](https://localhost/help#spigraph), and the [Connections](https://localhost/help#connections) graph. + +### Sessions + +The **Sessions** view provides low-level details of the sessions being investigated, whether they be Arkime sessions created from PCAP files or [Zeek logs mapped](#ArkimeZeek) to the Arkime session database schema. + +![Arkime's Sessions view](./docs/images/screenshots/moloch_sessions.png) + +The **Sessions** view contains many controls for filtering the sessions displayed from all sessions down to sessions of interest: + +* [search bar](https://localhost/help#search): Indicated by the magnifying glass **🔍** icon, the search bar allows defining filters on session/log metadata +* [time bounding](https://localhost/help#timebounding) controls: The **🕘**, **Start**, **End**, **Bounding**, and **Interval** fields, and the **date histogram** can be used to visually zoom and pan the time range being examined. +* search button: The **Search** button re-runs the sessions query with the filters currently specified. +* views button: Indicated by the eyeball **👁** icon, views allow overlaying additional previously-specified filters onto the current sessions filters. For convenience, Malcolm provides several Arkime preconfigured views including several on the `zeek.logType` field. + +![Malcolm views](./docs/images/screenshots/moloch_log_filter.png) + +* map: A global map can be expanded by clicking the globe **🌎** icon. This allows filtering sessions by IP-based geolocation when possible. + +Some of these filter controls are also available on other Arkime pages (such as SPIView, SPIGraph, Connections, and Hunt). + +The number of sessions displayed per page, as well as the page currently displayed, can be specified using the paging controls underneath the time bounding controls. + +The sessions table is displayed below the filter controls. This table contains the sessions/logs matching the specified filters. + +To the left of the column headers are two buttons. The **Toggle visible columns** button, indicated by a grid **⊞** icon, allows toggling which columns are displayed in the sessions table. The **Save or load custom column configuration** button, indicated by a columns **◫** icon, allows saving the current displayed columns or loading previously-saved configurations. This is useful for customizing which columns are displayed when investigating different types of traffic. Column headers can also be clicked to sort the results in the table, and column widths may be adjusted by dragging the separators between column headers. + +Details for individual sessions/logs can be expanded by clicking the plus **➕** icon on the left of each row. Each row may contain multiple sections and controls, depending on whether the row represents a Arkime session or a [Zeek log](#ArkimeZeek). Clicking the field names and values in the details sections allows additional filters to be specified or summary lists of unique values to be exported. + +When viewing Arkime session details (ie., a session generated from a PCAP file), an additional packets section will be visible underneath the metadata sections. When the details of a session of this type are expanded, Arkime will read the packet(s) comprising the session for display here. Various controls can be used to adjust how the packet is displayed (enabling **natural** decoding and enabling **Show Images & Files** may produce visually pleasing results), and other options (including PCAP download, carving images and files, applying decoding filters, and examining payloads in [CyberChef](https://github.com/gchq/CyberChef)) are available. + +See also Arkime's usage documentation for more information on the [Sessions view](https://localhost/help#sessions). + +#### PCAP Export + +Clicking the down arrow **▼** icon to the far right of the search bar presents a list of actions including **PCAP Export** (see Arkime's [sessions help](https://localhost/help#sessions) for information on the other actions). When full PCAP sessions are displayed, the **PCAP Export** feature allows you to create a new PCAP file from the matching Arkime sessions, including controls for which sessions are included (open items, visible items, or all matching items) and whether or not to include linked segments. Click **Export PCAP** button to generate the PCAP, after which you'll be presented with a browser download dialog to save or open the file. Note that depending on the scope of the filters specified this might take a long time (or, possibly even time out). + +![Export PCAP](./docs/images/screenshots/moloch_export_pcap.png) + +See the [issues](#Issues) section of this document for an error that can occur using this feature when Zeek log sessions are displayed.View + +### SPIView + +Arkime's **SPI** (**S**ession **P**rofile **I**nformation) **View** provides a quick and easy-to-use interface for exploring session/log metrics. The SPIView page lists categories for general session metrics (e.g., protocol, source and destination IP addresses, sort and destination ports, etc.) as well as for all of various types of network understood by Arkime and Zeek. These categories can be expanded and the top *n* values displayed, along with each value's cardinality, for the fields of interest they contain. + +![Arkime's SPIView](./docs/images/screenshots/moloch_spiview.png) + +Click the the plus **➕** icon to the right of a category to expand it. The values for specific fields are displayed by clicking the field description in the field list underneath the category name. The list of field names can be filtered by typing part of the field name in the *Search for fields to display in this category* text input. The **Load All** and **Unload All** buttons can be used to toggle display of all of the fields belonging to that category. Once displayed, a field's name or one of its values may be clicked to provide further actions for filtering or displaying that field or its values. Of particular interest may be the **Open [fieldname] SPI Graph** option when clicking on a field's name. This will open a new tab with the SPI Graph ([see below](#ArkimeSPIGraph)) populated with the field's top values. + +Note that because the SPIView page can potentially run many queries, SPIView limits the search domain to seven days (in other words, seven indices, as each index represents one day's worth of data). When using SPIView, you will have best results if you limit your search time frame to less than or equal to seven days. This limit can be adjusted by editing the `spiDataMaxIndices` setting in [config.ini](./etc/moloch/config.ini) and rebuilding the `malcolmnetsec/arkime` docker container. + +See also Arkime's usage documentation for more information on [SPIView](https://localhost/help#spiview). + +### SPIGraph + +Arkime's **SPI** (**S**ession **P**rofile **I**nformation) **Graph** visualizes the occurrence of some field's top *n* values over time, and (optionally) geographically. This is particularly useful for identifying trends in a particular type of communication over time: traffic using a particular protocol when seen sparsely at regular intervals on that protocol's date histogram in the SPIGraph may indicate a connection check, polling, or beaconing (for example, see the `llmnr` protocol in the screenshot below). + +![Arkime's SPIGraph](./docs/images/screenshots/moloch_spigraph.png) + +Controls can be found underneath the time bounding controls for selecting the field of interest, the number of elements to be displayed, the sort order, and a periodic refresh of the data. + +See also Arkime's usage documentation for more information on [SPIGraph](https://localhost/help#spigraph). + +### Connections + +The **Connections** page presents network communications via a force-directed graph, making it easy to visualize logical relationships between network hosts. + +![Arkime's Connections graph](./docs/images/screenshots/moloch_connections.png) + +Controls are available for specifying the query size (where smaller values will execute more quickly but may only contain an incomplete representation of the top *n* sessions, and larger values may take longer to execute but will be more complete), which fields to use as the source and destination for node values, a minimum connections threshold, and the method for determining the "weight" of the link between two nodes. As is the case with most other visualizations in Arkime, the graph is interactive: clicking on a node or the link between two nodes can be used to modify query filters, and the nodes themselves may be repositioned by dragging and dropping them. A node's color indicates whether it communicated as a source/originator, a destination/responder, or both. + +While the default source and destination fields are *Src IP* and *Dst IP:Dst Port*, the Connections view is able to use any combination of any of the fields populated by Arkime and Zeek. For example: + +* *Src OUI* and *Dst OUI* (hardware manufacturers) +* *Src IP* and *Protocols* +* *Originating Network Segment* and *Responding Network Segment* (see [CIDR subnet to network segment name mapping](#SegmentNaming)) +* *Originating GeoIP City* and *Responding GeoIP City* + +or any other combination of these or other fields. + +See also Arkime's usage documentation for more information on the [Connections graph](https://localhost/help#connections). + +### Hunt + +Arkime's **Hunt** feature allows an analyst to search within the packets themselves (including payload data) rather than simply searching the session metadata. The search string may be specified using ASCII (with or without case sensitivity), hex codes, or regular expressions. Once a hunt job is complete, matching sessions can be viewed in the [Sessions](#ArkimeSessions) view. + +Clicking the **Create a packet search job** on the Hunt page will allow you to specify the following parameters for a new hunt job: + +* a packet search job **name** +* a **maximum number of packets** to examine per session +* the **search string** and its format (*ascii*, *ascii (case sensitive)*, *hex*, *regex*, or *hex regex*) +* whether to search **source packets**, **destination packets**, or both +* whether to search **raw** or **reassembled** packets + +Click the **➕ Create** button to begin the search. Arkime will scan the source PCAP files from which the sessions were created according to the search criteria. Note that whatever filters were specified when the hunt job is executed will apply to the hunt job as well; the number of sessions matching the current filters will be displayed above the hunt job parameters with text like "ⓘ Creating a new packet search job will search the packets of # sessions." + +![Hunt creation](./docs/images/screenshots/moloch_hunt_creation.png) + +Once a hunt job is submitted, it will be assigned a unique hunt ID (a long unique string of characters like `yuBHAGsBdljYmwGkbEMm`) and its progress will be updated periodically in the **Hunt Job Queue** with the execution percent complete, the number of matches found so far, and the other parameters with which the job was submitted. More details for the hunt job can be viewed by expanding its row with the plus **➕** icon on the left. + +![Hunt completed](./docs/images/screenshots/moloch_hunt_finished.png) + +Once the hunt job is complete (and a minute or so has passed, as the `huntId` must be added to the matching session records in the database), click the folder **📂** icon on the right side of the hunt job row to open a new [Sessions](#ArkimeSessions) tab with the search bar prepopulated to filter to sessions with packets matching the search criteria. + +![Hunt result sessions](./docs/images/screenshots/moloch_hunt_sessions.png) + +From this list of filtered sessions you can expand session details and explore packet payloads which matched the hunt search criteria. + +The hunt feature is available only for sessions created from full packet capture data, not Zeek logs. This being the case, it is a good idea to click the eyeball **👁** icon and select the **PCAP Files** view to exclude Zeek logs from candidate sessions prior to using the hunt feature. + +See also Arkime's usage documentation for more information on the [hunt feature](https://localhost/help#hunt). + +### Statistics + +Arkime provides several other reports which show information about the state of Arkime and the underlying Elasticsearch database. + +The **Files** list displays a list of PCAP files processed by Arkime, the date and time of the earliest packet in each file, and the file size: + +![Arkime's Files list](./docs/images/screenshots/moloch_files.png) + +The **ES Indices** list (available under the **Stats** page) lists the Elasticsearch indices within which log data is contained: + +![Arkime's ES indices list](./docs/images/screenshots/moloch_es_stats.png) + +The **History** view provides a historical list of queries issues to Arkime and the details of those queries: + +![Arkime's History view](./docs/images/screenshots/moloch_history.png) + +See also Arkime's usage documentation for more information on the [Files list](https://localhost/help#files), [statistics](https://localhost/help#files), and [history](https://localhost/help#history). + +### Settings + +#### General settings + +The **Settings** page can be used to tweak Arkime preferences, defined additional custom views and column configurations, tweak the color theme, and more. + +See Arkime's usage documentation for more information on [settings](https://localhost/help#settings). + +![Arkime general settings](./docs/images/screenshots/moloch_general_settings.png) + +![Arkime custom view management](./docs/images/screenshots/moloch_view_settings.png) + +## Kibana + +While Arkime provides very nice visualizations, especially for network traffic, [Kibana](https://www.elastic.co/guide/en/kibana/current/getting-started.html) (an open source general-purpose data visualization tool for Elasticsearch) can be used to create custom visualizations (tables, charts, graphs, dashboards, etc.) using the same data. + +The Kibana container can be accessed at [https://localhost/kibana/](https://localhost/kibana/) if you are connecting locally. Several preconfigured dashboards for Zeek logs are included in Malcolm's Kibana configuration. + +The official [Kibana User Guide](https://www.elastic.co/guide/en/kibana/current/index.html) has excellent tutorials for a variety of topics. + +Kibana has several components for data searching and visualization: + +### Discover + +The **Discover** view enables you to view events on a record-by-record basis (similar to a *session* record in Arkime or an individual line from a Zeek log). See the official [Kibana User Guide](https://www.elastic.co/guide/en/kibana/current/index.html) for information on using the Discover view: + +* [Getting Started: Discovering Your Data](https://www.elastic.co/guide/en/kibana/current/tutorial-discovering.html) +* [Discover](https://www.elastic.co/guide/en/kibana/current/discover.html) +* [Searching Your Data](https://www.elastic.co/guide/en/kibana/current/search.html) + +#### Screenshots + +![Kibana's Discover view](./docs/images/screenshots/kibana_discover.png) + +![Viewing the details of a session in Discover](./docs/images/screenshots/kibana_discover_table.png) + +![Filtering by tags to display only sessions with public IP addresses](./docs/images/screenshots/kibana_add_filter.png) + +![Changing the fields displayed in Discover](./docs/images/screenshots/kibana_fields_list.png) + +![Opening a previously-saved search](./docs/images/screenshots/kibana_open_search.png) + +### Visualizations and dashboards + +#### Prebuilt visualizations and dashboards + +Malcolm comes with dozens of prebuilt visualizations and dashboards for the network traffic represented by each of the Zeek log types. Click **Dashboard** to see a list of these dashboards. As is the case with all Kibana's visualizations, all of the charts, graphs, maps, and tables are interactive and can be clicked on to narrow or expand the scope of the data you are investigating. Similarly, click **Visualize** to explore the prebuilt visualizations used to build the dashboards. + +Many of Malcolm's prebuilt visualizations for Zeek logs are heavily inspired by the excellent [Kibana Dashboards](https://github.com/Security-Onion-Solutions/securityonion-elastic/tree/master/kibana/dashboards) that are part of [Security Onion](https://securityonion.net/). + +##### Screenshots + +![The Connections dashboard displays information about the "top talkers" across all types of sessions](./docs/images/screenshots/kibana_connections.png) + +![The HTTP dashboard displays important details about HTTP traffic](./docs/images/screenshots/kibana_http.png) + +![There are several Connections visualizations using locations from GeoIP lookups](./docs/images/screenshots/kibana_latlon_map.png) + +![Kibana includes both coordinate and region map types](./docs/images/screenshots/kibana_region_map.png) + +![The Notices dashboard highlights things which Zeek determine are potentially bad](./docs/images/screenshots/kibana_notices.png) + +![The Signatures dashboard displays signature hits, such as antivirus hits on files extracted from network traffic](./docs/images/screenshots/kibana_signatures.png) + +![The Software dashboard displays the type, name, and version of software seen communicating on the network](./docs/images/screenshots/kibana_software.png) + +![The PE (portable executables) dashboard displays information about executable files transferred over the network](./docs/images/screenshots/kibana_portable_executables.png) + +![The SMTP dashboard highlights details about SMTP traffic](./docs/images/screenshots/kibana_smtp.png) + +![The SSL dashboard displays information about SSL versions, certificates, and TLS JA3 fingerprints](./docs/images/screenshots/kibana_ssl.png) + +![The files dashboard displays metrics about the files transferred over the network](./docs/images/screenshots/kibana_files_source.png) + +![This dashboard provides insight into DNP3 (Distributed Network Protocol), a protocol used commonly in electric and water utilities](./docs/images/screenshots/kibana_dnp3.png) + +![Modbus is a standard protocol found in many industrial control systems (ICS)](./docs/images/screenshots/kibana_modbus.png) + +![BACnet is a communications protocol for Building Automation and Control (BAC) networks](./docs/images/screenshots/kibana_bacnet.png) + +![EtherNet/IP is an industrial network protocol that adapts the Common Industrial Protocol to standard Ethernet](./docs/images/screenshots/kibana_ethernetip.png) + +![MQTT is a lightweight publish-subscribe network protocol that transports messages between devices](./docs/images/screenshots/kibana_mqtt.png) + +![PROFINET is an industry technical standard for data communication over Industrial Ethernet](./docs/images/screenshots/kibana_profinet.png) + +![S7comm is a Siemens proprietary protocol that runs between programmable logic controllers (PLCs) of the Siemens family](./docs/images/screenshots/kibana_s7comm.png) + +#### Building your own visualizations and dashboards + +See the official [Kibana User Guide](https://www.elastic.co/guide/en/kibana/current/index.html) for information on creating your own visualizations and dashboards: + +* [Getting Started: Visualizing Your Data](https://www.elastic.co/guide/en/kibana/current/tutorial-visualizing.html) +* [Visualize](https://www.elastic.co/guide/en/kibana/current/visualize.html) +* [Dashboard](https://www.elastic.co/guide/en/kibana/current/dashboard.html) +* [Timelion](https://www.elastic.co/guide/en/kibana/current/timelion.html) (more advanced time series data visualizer) + +##### Screenshots + +![Kibana boasts many types of visualizations for displaying your data](./docs/images/screenshots/kibana_new_visualization.png) + +![Timelion is a powerful tool for visualizing time series data](./docs/images/screenshots/kibana_timelion.png) + +![Visual Builder is another time series data visualizer](./docs/images/screenshots/kibana_time_series.png) + +## Search Queries in Arkime and Kibana + +Kibana supports two query syntaxes: the legacy [Lucene](https://www.elastic.co/guide/en/kibana/current/lucene-query.html) syntax and the new [Kibana Query Language (KQL)](https://www.elastic.co/guide/en/kibana/current/kuery-query.html), both of which are somewhat different than Arkime's query syntax (see the help at [https://localhost/help#search](https://localhost/help#search) if you are connecting locally). The Arkime interface is for searching and visualizing both Arkime sessions and Zeek logs. The prebuilt dashboards in the Kibana interface are for searching and visualizing Zeek logs, but will not include Arkime sessions. Here are some common patterns used in building search query strings for Arkime and Kibana, respectively. See the links provided for further documentation. + +| | [Arkime Search String](https://localhost/help#search) | [Kibana Search String (Lucene)](https://www.elastic.co/guide/en/kibana/current/lucene-query.html) | [Kibana Search String (KQL)](https://www.elastic.co/guide/en/kibana/current/kuery-query.html)| +|---|:---:|:---:|:---:| +| Field exists |`zeek.logType == EXISTS!`|`_exists_:zeek.logType`|`zeek.logType:*`| +| Field does not exist |`zeek.logType != EXISTS!`|`NOT _exists_:zeek.logType`|`NOT zeek.logType:*`| +| Field matches a value |`port.dst == 22`|`dstPort:22`|`dstPort:22`| +| Field does not match a value |`port.dst != 22`|`NOT dstPort:22`|`NOT dstPort:22`| +| Field matches at least one of a list of values |`tags == [external_source, external_destination]`|`tags:(external_source OR external_destination)`|`tags:(external_source or external_destination)`| +| Field range (inclusive) |`http.statuscode >= 200 && http.statuscode <= 300`|`http.statuscode:[200 TO 300]`|`http.statuscode >= 200 and http.statuscode <= 300`| +| Field range (exclusive) |`http.statuscode > 200 && http.statuscode < 300`|`http.statuscode:{200 TO 300}`|`http.statuscode > 200 and http.statuscode < 300`| +| Field range (mixed exclusivity) |`http.statuscode >= 200 && http.statuscode < 300`|`http.statuscode:[200 TO 300}`|`http.statuscode >= 200 and http.statuscode < 300`| +| Match all search terms (AND) |`(tags == [external_source, external_destination]) && (http.statuscode == 401)`|`tags:(external_source OR external_destination) AND http.statuscode:401`|`tags:(external_source or external_destination) and http.statuscode:401`| +| Match any search terms (OR) |`(zeek_ftp.password == EXISTS!) || (zeek_http.password == EXISTS!) || (zeek.user == "anonymous")`|`_exists_:zeek_ftp.password OR _exists_:zeek_http.password OR zeek.user:"anonymous"`|`zeek_ftp.password:* or zeek_http.password:* or zeek.user:"anonymous"`| +| Global string search (anywhere in the document) |all Arkime search expressions are field-based|`microsoft`|`microsoft`| +| Wildcards|`host.dns == "*micro?oft*"` (`?` for single character, `*` for any characters)|`dns.host:*micro?oft*` (`?` for single character, `*` for any characters)|`dns.host:*micro*ft*` (`*` for any characters)| +| Regex |`host.http == /.*www\.f.*k\.com.*/`|`zeek_http.host:/.*www\.f.*k\.com.*/`|Kibana Query Language does not currently support regex| +| IPv4 values |`ip == 0.0.0.0/0`|`srcIp:"0.0.0.0/0" OR dstIp:"0.0.0.0/0"`|`srcIp:"0.0.0.0/0" OR dstIp:"0.0.0.0/0"`| +| IPv6 values |`(ip.src == EXISTS! || ip.dst == EXISTS!) && (ip != 0.0.0.0/0)`|`(_exists_:srcIp AND NOT srcIp:"0.0.0.0/0") OR (_exists_:dstIp AND NOT dstIp:"0.0.0.0/0")`|`(srcIp:* and not srcIp:"0.0.0.0/0") or (dstIp:* and not dstIp:"0.0.0.0/0")`| +| GeoIP information available |`country == EXISTS!`|`_exists_:zeek.destination_geo OR _exists_:zeek.source_geo`|`zeek.destination_geo:* or zeek.source_geo:*`| +| Zeek log type |`zeek.logType == notice`|`zeek.logType:notice`|`zeek.logType:notice`| +| IP CIDR Subnets |`ip.src == 172.16.0.0/12`|`srcIp:"172.16.0.0/12"`|`srcIp:"172.16.0.0/12"`| +| Search time frame |Use Arkime time bounding controls under the search bar|Use Kibana time range controls in the upper right-hand corner|Use Kibana time range controls in the upper right-hand corner| + +When building complex queries, it is **strongly recommended** that you enclose search terms and expressions in parentheses to control order of operations. + +As Zeek logs are ingested, Malcolm parses and normalizes the logs' fields to match Arkime's underlying Elasticsearch schema. A complete list of these fields can be found in the Arkime help (accessible at [https://localhost/help#fields](https://localhost/help#fields) if you are connecting locally). + +Whenever possible, Zeek fields are mapped to existing corresponding Arkime fields: for example, the `orig_h` field in Zeek is mapped to Arkime's `srcIp` field. The original Zeek fields are also left intact. To complicate the issue, the Arkime interface uses its own aliases to reference those fields: the source IP field is referenced as `ip.src` (Arkime's alias) in Arkime and `srcIp` or `zeek.orig_h` in Kibana. + +The table below shows the mapping of some of these fields. + +| Field Description |Arkime Field Alias(es)|Arkime-mapped Zeek Field(s)|Zeek Field(s)| +|---|:---:|:---:|:---:| +| [Community ID](https://github.com/corelight/community-id-spec) Flow Hash ||`communityId`|`zeek.community_id`| +| Destination IP |`ip.dst`|`dstIp`|`zeek.resp_h`| +| Destination MAC |`mac.dst`|`dstMac`|`zeek.resp_l2_addr`| +| Destination Port |`port.dst`|`dstPort`|`zeek.resp_p`| +| Duration |`session.length`|`length`|`zeek_conn.duration`| +| First Packet Time |`starttime`|`firstPacket`|`zeek.ts`, `@timestamp`| +| IP Protocol |`ip.protocol`|`ipProtocol`|`zeek.proto`| +| Last Packet Time |`stoptime`|`lastPacket`|| +| MIME Type |`email.bodymagic`, `http.bodymagic`|`http.bodyMagic`|`zeek.filetype`, `zeek_files.mime_type`, `zeek_ftp.mime_type`, `zeek_http.orig_mime_types`, `zeek_http.resp_mime_types`, `zeek_irc.dcc_mime_type`| +| Protocol/Service |`protocols`|`protocol`|`zeek.proto`, `zeek.service`| +| Request Bytes |`databytes.src`, `bytes.src`|`srcBytes`, `srcDataBytes`|`zeek_conn.orig_bytes`, `zeek_conn.orig_ip_bytes`| +| Request Packets |`packets.src`|`srcPackets`|`zeek_conn.orig_pkts`| +| Response Bytes |`databytes.dst`, `bytes.dst`|`dstBytes`, `dstDataBytes`|`zeek_conn.resp_bytes`, `zeek_conn.resp_ip_bytes`| +| Response Packets |`packets.dst`|`dstPackets`|`zeek_con.resp_pkts`| +| Source IP |`ip.src`|`srcIp`|`zeek.orig_h`| +| Source MAC |`mac.src`|`srcMac`|`zeek.orig_l2_addr`| +| Source Port |`port.src`|`srcPort`|`zeek.orig_p`| +| Total Bytes |`databytes`, `bytes`|`totDataBytes`, `totBytes`|| +| Total Packets |`packets`|`totPackets`|| +| Username |`user`|`user`|`zeek.user`| +| Zeek Connection UID|||`zeek.uid`| +| Zeek File UID |||`zeek.fuid`| +| Zeek Log Type |||`zeek.logType`| + +In addition to the fields listed above, Arkime provides several special field aliases for matching any field of a particular type. While these aliases do not exist in Kibana *per se*, they can be approximated as illustrated below. + +| Matches Any | Arkime Special Field Example | Kibana/Zeek Equivalent Example | +|---|:---:|:---:| +| IP Address | `ip == 192.168.0.1` | `srcIp:192.168.0.1 OR dstIp:192.168.0.1` | +| Port | `port == [80, 443, 8080, 8443]` | `srcPort:(80 OR 443 OR 8080 OR 8443) OR dstPort:(80 OR 443 OR 8080 OR 8443)` | +| Country (code) | `country == [RU,CN]` | `zeek.destination_geo.country_code2:(RU OR CN) OR zeek.source_geo.country_code2:(RU OR CN) OR dns.GEO:(RU OR CN)` | +| Country (name) | | `zeek.destination_geo.country_name:(Russia OR China) OR zeek.source_geo.country_name:(Russia OR China)` | +| ASN | `asn == "*Mozilla*"` | `srcASN:*Mozilla* OR dstASN:*Mozilla* OR dns.ASN:*Mozilla*` | +| Host | `host == www.microsoft.com` | `zeek_http.host:www.microsoft.com (or zeek_dhcp.host_name, zeek_dns.host, zeek_ntlm.host, smb.host, etc.)` | +| Protocol (layers >= 4) | `protocols == tls` | `protocol:tls` | +| User | `user == EXISTS! && user != anonymous` | `_exists_:user AND (NOT user:anonymous)` | + +For details on how to filter both Zeek logs and Arkime session records for a particular connection, see [Correlating Zeek logs and Arkime sessions](#ZeekArkimeFlowCorrelation). + +## Other Malcolm features + +### Automatic file extraction and scanning + +Malcolm can leverage Zeek's knowledge of network protocols to automatically detect file transfers and extract those files from PCAPs as Zeek processes them. This behavior can be enabled globally by modifying the `ZEEK_EXTRACTOR_MODE` [environment variable in `docker-compose.yml`](#DockerComposeYml), or on a per-upload basis for PCAP files uploaded via the [browser-based upload form](#Upload) when **Analyze with Zeek** is selected. + +To specify which files should be extracted, the following values are acceptable in `ZEEK_EXTRACTOR_MODE`: + +* `none`: no file extraction +* `interesting`: extraction of files with mime types of common attack vectors +* `mapped`: extraction of files with recognized mime types +* `known`: extraction of files for which any mime type can be determined +* `all`: extract all files + +Extracted files can be examined through any of the following methods: + +* submitting file hashes to [**VirusTotal**](https://www.virustotal.com/en/#search); to enable this method, specify the `VTOT_API2_KEY` [environment variable in `docker-compose.yml`](#DockerComposeYml) +* scanning files with [**ClamAV**](https://www.clamav.net/); to enable this method, set the `EXTRACTED_FILE_ENABLE_CLAMAV` [environment variable in `docker-compose.yml`](#DockerComposeYml) to `true` +* scanning files with [**Yara**](https://github.com/VirusTotal/yara); to enable this method, set the `EXTRACTED_FILE_ENABLE_YARA` [environment variable in `docker-compose.yml`](#DockerComposeYml) to `true` +* scanning PE (portable executable) files with [**Capa**](https://github.com/fireeye/capa); to enable this method, set the `EXTRACTED_FILE_ENABLE_CAPA` [environment variable in `docker-compose.yml`](#DockerComposeYml) to `true` + +Files which are flagged via any of these methods will be logged as Zeek `signatures.log` entries, and can be viewed in the **Signatures** dashboard in Kibana. + +The `EXTRACTED_FILE_PRESERVATION` [environment variable in `docker-compose.yml`](#DockerComposeYml) determines the behavior for preservation of Zeek-extracted files: + +* `quarantined`: preserve only flagged files in `./zeek-logs/extract_files/quarantine` +* `all`: preserve flagged files in `./zeek-logs/extract_files/quarantine` and all other extracted files in `./zeek-logs/extract_files/preserved` +* `none`: preserve no extracted files + +The `EXTRACTED_FILE_HTTP_SERVER_...` [environment variables in `docker-compose.yml`](#DockerComposeYml) configure access to the Zeek-extracted files path through the means of a simple HTTPS directory server. Beware that Zeek-extracted files may contain malware. As such, the files may be optionally encrypted upon download. + +### Automatic host and subnet name assignment + +#### IP/MAC address to hostname mapping via `host-map.txt` + +The `host-map.txt` file in the Malcolm installation directory can be used to define names for network hosts based on IP and/or MAC addresses in Zeek logs. The default empty configuration looks like this: +``` +# IP or MAC address to host name map: +# address|host name|required tag +# +# where: +# address: comma-separated list of IPv4, IPv6, or MAC addresses +# e.g., 172.16.10.41, 02:42:45:dc:a2:96, 2001:0db8:85a3:0000:0000:8a2e:0370:7334 +# +# host name: host name to be assigned when event address(es) match +# +# required tag (optional): only check match and apply host name if the event +# contains this tag +# +``` +Each non-comment line (not beginning with a `#`), defines an address-to-name mapping for a network host. For example: +``` +127.0.0.1,127.0.1.1,::1|localhost| +192.168.10.10|office-laptop.intranet.lan| +06:46:0b:a6:16:bf|serial-host.intranet.lan|testbed +``` +Each line consists of three `|`-separated fields: address(es), hostname, and, optionally, a tag which, if specified, must belong to a log for the matching to occur. + +As Zeek logs are processed into Malcolm's Elasticsearch instance, the log's source and destination IP and MAC address fields (`zeek.orig_h`, `zeek.resp_h`, `zeek.orig_l2_addr`, and `zeek.resp_l2_addr`, respectively) are compared against the lists of addresses in `host-map.txt`. When a match is found, a new field is added to the log: `zeek.orig_hostname` or `zeek.resp_hostname`, depending on whether the matching address belongs to the originating or responding host. If the third field (the "required tag" field) is specified, a log must also contain that value in its `tags` field in addition to matching the IP or MAC address specified in order for the corresponding `_hostname` field to be added. + +`zeek.orig_hostname` and `zeek.resp_hostname` may each contain multiple values. For example, if both a host's source IP address and source MAC address were matched by two different lines, `zeek.orig_hostname` would contain the hostname values from both matching lines. + +#### CIDR subnet to network segment name mapping via `cidr-map.txt` + +The `cidr-map.txt` file in the Malcolm installation directory can be used to define names for network segments based on IP addresses in Zeek logs. The default empty configuration looks like this: +``` +# CIDR to network segment format: +# IP(s)|segment name|required tag +# +# where: +# IP(s): comma-separated list of CIDR-formatted network IP addresses +# e.g., 10.0.0.0/8, 169.254.0.0/16, 172.16.10.41 +# +# segment name: segment name to be assigned when event IP address(es) match +# +# required tag (optional): only check match and apply segment name if the event +# contains this tag +# +``` +Each non-comment line (not beginning with a `#`), defines an subnet-to-name mapping for a network host. For example: +``` +192.168.50.0/24,192.168.40.0/24,10.0.0.0/8|corporate| +192.168.100.0/24|control| +192.168.200.0/24|dmz| +172.16.0.0/12|virtualized|testbed +``` +Each line consists of three `|`-separated fields: CIDR-formatted subnet IP range(s), subnet name, and, optionally, a tag which, if specified, must belong to a log for the matching to occur. + +As Zeek logs are processed into Malcolm's Elasticsearch instance, the log's source and destination IP address fields (`zeek.orig_h` and `zeek.resp_h`, respectively) are compared against the lists of addresses in `cidr-map.txt`. When a match is found, a new field is added to the log: `zeek.orig_segment` or `zeek.resp_segment`, depending on whether the matching address belongs to the originating or responding host. If the third field (the "required tag" field) is specified, a log must also contain that value in its `tags` field in addition to its IP address falling within the subnet specified in order for the corresponding `_segment` field to be added. + +`zeek.orig_segment` and `zeek.resp_segment` may each contain multiple values. For example, if `cidr-map.txt` specifies multiple overlapping subnets on different lines, `zeek.orig_segment` would contain the hostname values from both matching lines if `zeek.orig_h` belonged to both subnets. + +If both `zeek.orig_segment` and `zeek.resp_segment` are added to a log, and if they contain different values, the tag `cross_segment` will be added to the log's `tags` field for convenient identification of cross-segment traffic. This traffic could be easily visualized using Arkime's **Connections** graph, by setting the **Src:** value to **Originating Network Segment** and the **Dst:** value to **Responding Network Segment**: + +![Cross-segment traffic in Connections](./docs/images/screenshots/moloch_connections_segments.png) + +#### Defining hostname and CIDR subnet names interface + +As an alternative to manually editing `cidr-map.txt` and `host-map.txt`, a **Host and Subnet Name Mapping** editor is available at [https://localhost/name-map-ui/](https://localhost/name-map-ui/) if you are connecting locally. Upon loading, the editor is populated from `cidr-map.txt`, `host-map.txt` and `net-map.json`. + +This editor provides the following controls: + +* 🔎 **Search mappings** - narrow the list of visible items using a search filter +* **Type**, **Address**, **Name** and **Tag** *(column headings)* - sort the list of items by clicking a column header +* 📝 *(per item)* - modify the selected item +* 🚫 *(per item)* - remove the selected item +* 🖳 **host** / 🖧 **segment**, **Address**, **Name**, **Tag (optional)** and 💾 - save the item with these values (either adding a new item or updating the item being modified) +* 📥 **Import** - clear the list and replace it with the contents of an uploaded `net-map.json` file +* 📤 **Export** - format and download the list as a `net-map.json` file +* 💾 **Save Mappings** - format and store `net-map.json` in the Malcolm directory (replacing the existing `net-map.json` file) +* 🔁 **Restart Logstash** - restart log ingestion, parsing and enrichment + +![Host and Subnet Name Mapping Editor](./docs/images/screenshots/malcolm_name_map_ui.png) + +#### Applying mapping changes + +When changes are made to either `cidr-map.txt`, `host-map.txt` or `net-map.json`, Malcolm's Logstash container must be restarted. The easiest way to do this is to restart malcolm via `restart` (see [Stopping and restarting Malcolm](#StopAndRestart)) or by clicking the 🔁 **Restart Logstash** button in the [name mapping interface](#NameMapUI) interface. + +Restarting Logstash may take several minutes, after which log ingestion will be resumed. + +### Elasticsearch index management + +See [Index State Management](https://opendistro.github.io/for-elasticsearch-docs/docs/ism/) in the Open Distro for Elasticsearch documentation on Index State Management [policies](https://opendistro.github.io/for-elasticsearch-docs/docs/ism/policies/), [managed indices](https://opendistro.github.io/for-elasticsearch-docs/docs/ism/managedindices/), [settings](https://opendistro.github.io/for-elasticsearch-docs/docs/ism/settings/) and [APIs](https://opendistro.github.io/for-elasticsearch-docs/docs/ism/api/). + +Elasticsearch index management only deals with disk space consumed by Elasticsearch indices: it does not have anything to do with PCAP file storage. The `MANAGE_PCAP_FILES` environment variable in the [`docker-compose.yml`](#DockerComposeYml) file can be used to allow Arkime to prune old PCAP files based on available disk space. + +### Alerting + +See [Alerting](https://opendistro.github.io/for-elasticsearch-docs/docs/alerting/) in the Open Distro for Elasticsearch documentation. + +When using an email account to send alerts, you must [authenticate each sender account](https://opendistro.github.io/for-elasticsearch-docs/docs/alerting/monitors/#authenticate-sender-account) before you can send an email. The [`auth_setup`](#AuthSetup) script can be used to securely store the email account credentials: + +``` +./scripts/auth_setup + +Store administrator username/password for local Malcolm access? (Y/n): n + +(Re)generate self-signed certificates for HTTPS access (Y/n): n + +(Re)generate self-signed certificates for a remote log forwarder (Y/n): n + +Store username/password for forwarding Logstash events to a secondary, external Elasticsearch instance (y/N): n + +Store username/password for email alert sender account (y/N): y + +Open Distro alerting destination name: destination_alpha + +Email account username: analyst@example.org +analyst@example.org password: +analyst@example.org password (again): +Email alert sender account variables stored: opendistro.alerting.destination.email.destination_alpha.password, opendistro.alerting.destination.email.destination_alpha.username +``` + +This action should only be performed while Malcolm is [stopped](#StopAndRestart): otherwise the credentials will not be stored correctly. + +### "Best Guess" Fingerprinting for ICS Protocols + +There are many ICS (industrial control systems) protocols. While Malcolm's collection of [protocol parsers](#Protocols) includes a number of them, many, particularly those that are proprietary or less common, are unlikely to be supported with a full parser in the foreseeable future. + +In an effort to help identify more ICS traffic, Malcolm can use "buest guess" method based on transport protocol (e.g., TCP or UDP) and port(s) to categorize potential traffic communicating over some ICS protocols without full parser support. This feature involves a [mapping table](https://github.com/idaholab/Malcolm/blob/master/zeek/config/guess_ics_map.txt) and a [Zeek script](https://github.com/idaholab/Malcolm/blob/master/zeek/config/guess.zeek) to look up the transport protocol and destination and/or source port to make a best guess at whether a connection belongs to one of those protocols. These potential ICS communications are categorized by vendor where possible. + +Naturally, these lookups could produce false positives, so these connections are displayed in their own dashboard (the **Best Guess** dashboard found under the **ICS** section of Malcolm's [Kibana dashboards'](#KibanaVisualizations) navigation pane). Values such as IP addresses, ports, or UID can be used to [pivot to other dashboards](#ZeekArkimeFlowCorrelation) to investigate further. + +This feature is disabled by default, but it can be enabled by clearing (setting to `''`) the value of the `ZEEK_DISABLE_BEST_GUESS_ICS` environment variable in [`docker-compose.yml`](#DockerComposeYml). + +## Using Beats to forward host logs to Malcolm + +Because Malcolm uses components of the open source data analysis platform [Elastic Stack](https://www.elastic.co/elastic-stack), it can accept various host logs sent from [Beats](https://www.elastic.co/beats/#the-beats-family), Elastic Stack's lightweight data shippers. See [./scripts/beats](./scripts/beats) for more information. + +## Malcolm installer ISO + +Malcolm's Docker-based deployment model makes Malcolm able to run on a variety of platforms. However, in some circumstances (for example, as a long-running appliance as part of a security operations center, or inside of a virtual machine) it may be desirable to install Malcolm as a dedicated standalone installation. + +Malcolm can be packaged into an installer ISO based on the current [stable release](https://wiki.debian.org/DebianStable) of [Debian](https://www.debian.org/). This [customized Debian installation](https://wiki.debian.org/DebianLive) is preconfigured with the bare minimum software needed to run Malcolm. + +### Generating the ISO + +Official downloads of the Malcolm installer ISO are not provided: however, it can be built easily on an internet-connected Linux host running current versions of [VirtualBox](https://www.virtualbox.org/) and [Vagrant](https://www.vagrantup.com/) (with the [`vagrant-reload`](https://github.com/aidanns/vagrant-reload) plugin). + +To perform a clean build the Malcolm installer ISO, navigate to your local Malcolm working copy and run: + +``` +$ ./malcolm-iso/build_via_vagrant.sh -f +… +Starting build machine... +Bringing machine 'default' up with 'virtualbox' provider... +… +``` + +Building the ISO may take 30 minutes or more depending on your system. As the build finishes, you will see the following message indicating success: + +``` +… +Finished, created "/malcolm-build/malcolm-iso/malcolm-3.2.1.iso" +… +``` + +By default, Malcolm's Docker images are not packaged with the installer ISO, assuming instead that you will pull the [latest images](https://hub.docker.com/u/malcolmnetsec) with a `docker-compose pull` command as described in the [Quick start](#QuickStart) section. If you wish to build an ISO with the latest Malcolm images included, follow the directions to create [pre-packaged installation files](#Packager), which include a tarball with a name like `malcolm_YYYYMMDD_HHNNSS_xxxxxxx_images.tar.gz`. Then, pass that images tarball to the ISO build script with a `-d`, like this: + +``` +$ ./malcolm-iso/build_via_vagrant.sh -f -d malcolm_YYYYMMDD_HHNNSS_xxxxxxx_images.tar.gz +… +``` + +A system installed from the resulting ISO will load the Malcolm Docker images upon first boot. This method is desirable when the ISO is to be installed in an "air gapped" environment or for distribution to non-networked machines. + +### Installation + +The installer is designed to require as little user input as possible. For this reason, there are NO user prompts and confirmations about partitioning and reformatting hard disks for use by the operating system. The installer assumes that all non-removable storage media (eg., SSD, HDD, NVMe, etc.) are available for use and ⛔🆘😭💀 ***will partition and format them without warning*** 💀😭🆘⛔. + +The installer will ask for several pieces of information prior to installing the Malcolm base operating system: + +* Hostname +* Domain name +* Root password – (optional) a password for the privileged root account which is rarely needed +* User name: the name for the non-privileged service account user account under which the Malcolm runs +* User password – a password for the non-privileged sensor account +* Encryption password (optional) – if the encrypted installation option was selected at boot time, the encryption password must be entered every time the system boots + +At the end of the installation process, you will be prompted with a few self-explanatory yes/no questions: + +* **Disable IPv6?** +* **Automatically login to the GUI session?** +* **Should the GUI session be locked due to inactivity?** +* **Display the [Standard Mandatory DoD Notice and Consent Banner](https://www.stigviewer.com/stig/application_security_and_development/2018-12-24/finding/V-69349)?** *(only applies when installed on U.S. government information systems)* + +Following these prompts, the installer will reboot and the Malcolm base operating system will boot. + +### Setup + +When the system boots for the first time, the Malcolm Docker images will load if the installer was built with pre-packaged installation files as described above. Wait for this operation to continue (the progress dialog will disappear when they have finished loading) before continuing the setup. + +Open a terminal (click the red terminal 🗔 icon next to the Debian swirl logo 🍥 menu button in the menu bar). At this point, setup is similar to the steps described in the [Quick start](#QuickStart) section. Navigate to the Malcolm directory (`cd ~/Malcolm`) and run [`auth_setup`](#AuthSetup) to configure authentication. If the ISO didn't have pre-packaged Malcolm images, or if you'd like to retrieve the latest updates, run `docker-compose pull`. Finalize your configuration by running `scripts/install.py --configure` and follow the prompts as illustrated in the [installation example](#InstallationExample). + +Once Malcolm is configured, you can [start Malcolm](#Starting) via the command line or by clicking the circular yellow Malcolm icon in the menu bar. + +### Time synchronization + +If you wish to set up time synchronization via [NTP](http://www.ntp.org/) or `htpdate`, open a terminal and run `sudo configure-interfaces.py`. Select **Continue**, then choose **Time Sync**. Here you can configure the operating system to keep its time synchronized with either an NTP server (using the NTP protocol), another Malcolm instance, or another HTTP/HTTPS server. On the next dialog, choose the time synchronization method you wish to configure. + +If **htpdate** is selected, you will be prompted to enter the IP address or hostname and port of an HTTP/HTTPS server (for a Malcolm instance, port `9200` may be used) and the time synchronization check frequency in minutes. A test connection will be made to determine if the time can be retrieved from the server. + +If *ntpdate* is selected, you will be prompted to enter the IP address or hostname of the NTP server. + +Upon configuring time synchronization, a "Time synchronization configured successfully!" message will be displayed. + +### Hardening + +The Malcolm aggregator base operating system targets the following guidelines for establishing a secure configuration posture: + +* DISA STIG (Security Technical Implementation Guides) [ported](https://github.com/hardenedlinux/STIG-4-Debian) from [DISA RHEL 7 STIG](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/) v1r1 to a Debian 9 base platform +* [CIS Debian Linux 9 Benchmark](https://www.cisecurity.org/cis-benchmarks/cis-benchmarks-faq/) with additional recommendations by the [hardenedlinux/harbian-audit](https://github.com/hardenedlinux/harbian-audit) project + +#### STIG compliance exceptions + +[Currently](https://github.com/hardenedlinux/STIG-4-Debian/blob/master/stig-debian.txt) there are 158 compliance checks that can be verified automatically and 23 compliance checks that must be verified manually. + +The Malcolm aggregator base operating system claims the following exceptions to STIG compliance: + +| # | ID | Title | Justification | +| --- | --- | --- | --- | +| 1 | [SV-86535r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71911) | When passwords are changed a minimum of eight of the total number of characters must be changed. | Account/password policy exception: As an aggregator running Malcolm is intended to be used as an appliance rather than a general user-facing software platform, some exceptions to password enforcement policies are claimed. | +| 2 | [SV-86537r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71913) | When passwords are changed a minimum of four character classes must be changed. | Account/password policy exception | +| 3 | [SV-86549r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71925) | Passwords for new users must be restricted to a 24 hours/1 day minimum lifetime. | Account/password policy exception | +| 4 | [SV-86551r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71927) | Passwords must be restricted to a 24 hours/1 day minimum lifetime. | Account/password policy exception | +| 5 | [SV-86553r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71929) | Passwords for new users must be restricted to a 60-day maximum lifetime. | Account/password policy exception | +| 6 | [SV-86555r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71931) | Existing passwords must be restricted to a 60-day maximum lifetime. | Account/password policy exception | +| 7 | [SV-86557r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71933) | Passwords must be prohibited from reuse for a minimum of five generations. | Account/password policy exception | +| 8 | [SV-86565r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71941) | The operating system must disable account identifiers (individuals, groups, roles, and devices) if the password expires. | Account/password policy exception | +| 9 | [SV-86567r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71943) | Accounts subject to three unsuccessful logon attempts within 15 minutes must be locked for the maximum configurable period. | Account/password policy exception | +| 10 | [SV-86569r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71945) | If three unsuccessful root logon attempts within 15 minutes occur the associated account must be locked. | Account/password policy exception | +| 11 | [SV-86603r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2018-11-28/finding/V-71979) | The … operating system must prevent the installation of software, patches, service packs, device drivers, or operating system components of local packages without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization. | As the base distribution is not using embedded signatures, `debsig-verify` would reject all packages (see comment in `/etc/dpkg/dpkg.cfg`). Enabling it after installation would disallow any future updates. | +| 12 | [SV-86607r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71983) | USB mass storage must be disabled. | The ability to ingest data (such as PCAP files) from a mounted USB mass storage device is a requirement of the system. | +| 13 | [SV-86609r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71985) | File system automounter must be disabled unless required. | The ability to ingest data (such as PCAP files) from a mounted USB mass storage device is a requirement of the system. | +| 14 | [SV-86705r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72081) | The operating system must shut down upon audit processing failure, unless availability is an overriding concern. If availability is a concern, the system must alert the designated staff (System Administrator [SA] and Information System Security Officer [ISSO] at a minimum) in the event of an audit processing failure. | As maximizing availability is a system requirement, audit processing failures will be logged on the device rather than halting the system. | +| 15 | [SV-86713r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72089) | The operating system must immediately notify the System Administrator (SA) and Information System Security Officer ISSO (at a minimum) when allocated audit record storage volume reaches 75% of the repository maximum audit record storage capacity. | same as above | +| 16 | [SV-86715r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72093) | The operating system must immediately notify the System Administrator (SA) and Information System Security Officer (ISSO) (at a minimum) when the threshold for the repository maximum audit record storage capacity is reached. | same as above | +| 17 | [SV-86597r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71973) | A file integrity tool must verify the baseline operating system configuration at least weekly. | This functionality is not configured by default, but it could be configured post-install using [Auditbeat](https://www.elastic.co/products/beats/auditbeat) or `aide` | +| 18 | [SV-86697r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72073) | The file integrity tool must use FIPS 140-2 approved cryptographic hashes for validating file contents and directories. | same as above | +| 19 | [SV-86707r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72083) | The operating system must off-load audit records onto a different system or media from the system being audited. | same as above | +| 20 | [SV-86709r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72085) | The operating system must encrypt the transfer of audit records off-loaded onto a different system or media from the system being audited. | same as above | +| 21 | [SV-86833r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72209) | The system must send rsyslog output to a log aggregation server. | same as above | +| 22 | [SV-87815r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-73163) | The audit system must take appropriate action when there is an error sending audit records to a remote system. | same as above | +| 23 | [SV-86693r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72069) | The file integrity tool must be configured to verify Access Control Lists (ACLs). | As this is not a multi-user system, the ACL check would be irrelevant. | +| 24 | [SV-86837r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_6/2016-12-16/finding/V-38666) | The system must use and update a DoD-approved virus scan program. | As this is a network traffic analysis appliance rather than an end-user device, regular user files will not be created. A virus scan program would impact device performance and would be unnecessary. | +| 25 | [SV-86839r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72215) | The system must update the virus scan program every seven days or more frequently. | As this is a network traffic analysis appliance rather than an end-user device, regular user files will not be created. A virus scan program would impact device performance and would be unnecessary. | +| 26 | [SV-86847r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72223) | All network connections associated with a communication session must be terminated at the end of the session or after 10 minutes of inactivity from the user at a command prompt, except to fulfill documented and validated mission requirements. | Malcolm be controlled from the command line in a manual capture scenario, so timing out a session based on command prompt inactivity would be inadvisable. | +| 27 | [SV-86893r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72269) | The operating system must, for networked systems, synchronize clocks with a server that is synchronized to one of the redundant United States Naval Observatory (USNO) time servers, a time server designated for the appropriate DoD network (NIPRNet/SIPRNet), and/or the Global Positioning System (GPS). | While [time synchronization](#ConfigTime) is supported on the Malcolm aggregator base operating system, an exception is claimed for this rule as the device may be configured to sync to servers other than the ones listed in the STIG. | +| 28 | [SV-86905r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72281) | For systems using DNS resolution, at least two name servers must be configured. | STIG recommendations for DNS servers are not enforced on the Malcolm aggregator base operating system to allow for use in a variety of network scenarios. | +| 29 | [SV-86919r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72295) | Network interfaces must not be in promiscuous mode. | One purpose of the Malcolm aggregator base operating system is to sniff and capture network traffic. | +| 30 | [SV-86931r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72307) | An X Windows display manager must not be installed unless approved. | A locked-down X Windows session is required for the sensor's kiosk display. | +| 31 | [SV-86519r3](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71895) | The operating system must set the idle delay setting for all connection types. | As this is a network traffic aggregation and analysis appliance rather than an end-user device, timing out displays or connections would not be desirable. | +| 32 | [SV-86523r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71899) | The operating system must initiate a session lock for the screensaver after a period of inactivity for graphical user interfaces. | This option is configurable during install time. Some installations of the Malcolm aggregator base operating system may be on appliance hardware not equipped with a keyboard by default, in which case it may not be desirable to lock the session.| +| 33 | [SV-86525r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71901) | The operating system must initiate a session lock for graphical user interfaces when the screensaver is activated. | This option is configurable during install time. Some installations of the Malcolm aggregator base operating system may be on appliance hardware not equipped with a keyboard by default, in which case it may not be desirable to lock the session. | +| 34 | [SV-86589r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71965) | The operating system must uniquely identify and must authenticate organizational users (or processes acting on behalf of organizational users) using multifactor authentication. | As this is a network traffic capture appliance rather than an end-user device or a multiuser network host, this requirement is not applicable. | +| 35 | [SV-86921r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72297) | The system must be configured to prevent unrestricted mail relaying. | Does not apply as the Malcolm aggregator base operating system not does run a mail service. | +| 36 | [SV-86929r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72305) | If the Trivial File Transfer Protocol (TFTP) server is required, the TFTP daemon must be configured to operate in secure mode. | Does not apply as the Malcolm aggregator base operating system does not run a TFTP server. | +| 37 | [SV-86935r3](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72311) | The Network File System (NFS) must be configured to use RPCSEC_GSS. | Does not apply as the Malcolm aggregator base operating system does not run an NFS server. | +| 38 | [SV-87041r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72417) | The operating system must have the required packages for multifactor authentication installed. | As this is a network traffic capture appliance rather than an end-user device or a multiuser network host, this requirement is not applicable. | +| 39 | [SV-87051r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72427) | The operating system must implement multifactor authentication for access to privileged accounts via pluggable authentication modules (PAM). | As this is a network traffic capture appliance rather than an end-user device or a multiuser network host, this requirement is not applicable. | +| 40 | [SV-87059r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72435) | The operating system must implement smart card logons for multifactor authentication for access to privileged accounts. | As this is a network traffic capture appliance rather than an end-user device or a multiuser network host, this requirement is not applicable. | +| 41 | [SV-87829r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-73177) | Wireless network adapters must be disabled. | As an appliance intended to capture network traffic in a variety of network environments, wireless adapters may be needed to capture and/or report wireless traffic. | +| 42 | [SV-86699r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72075) | The system must not allow removable media to be used as the boot loader unless approved. | the Malcolm aggregator base operating system supports a live boot mode that can be booted from removable media. | + +Please review the notes for these additional rules. While not claiming an exception, they may be implemented or checked in a different way than outlined by the RHEL STIG as the Malcolm aggregator base operating system is not built on RHEL or for other reasons. + +| # | ID | Title | Note | +| --- | --- | --- | --- | +| 1 | [SV-86585r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71961) | Systems with a Basic Input/Output System (BIOS) must require authentication upon booting into single-user and maintenance modes. | Although the [compliance check script](https://github.com/hardenedlinux/STIG-4-Debian) does not detect it, booting into recovery mode *does* in fact require the root password. | +| 2 | [SV-86587r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71963) | Systems using Unified Extensible Firmware Interface (UEFI) must require authentication upon booting into single-user and maintenance modes. | Although the [compliance check script](https://github.com/hardenedlinux/STIG-4-Debian) does not detect it, booting into recovery mode *does* in fact require the root password. | +| 3 | [SV-86651r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72027) | All files and directories contained in local interactive user home directories must have mode 0750 or less permissive. | Depending on when the [compliance check script](https://github.com/hardenedlinux/STIG-4-Debian) is run, some ephemeral files may exist in the service account's home directory which will cause this check to fail. For practical purposes the Malcolm aggregator base operating system's configuration does, however, comply. +| 4 | [SV-86623r3](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71999) | Vendor packaged system security patches and updates must be installed and up to date. | When the the Malcolm aggregator base operating system sensor appliance software is built, all of the latest applicable security patches and updates are included in it. How future updates are to be handled is still in design. | +| 6 | [SV-86691r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72067) | The operating system must implement NIST FIPS-validated cryptography for the following: to provision digital signatures, to generate cryptographic hashes, and to protect data requiring data-at-rest protections in accordance with applicable federal laws, Executive Orders, directives, policies, regulations, and standards. | the Malcolm aggregator base operating system does use FIPS-compatible libraries for cryptographic functions. However, the kernel parameter being checked by the [compliance check script](https://github.com/hardenedlinux/STIG-4-Debian) is incompatible with some of the systems initialization scripts.| + +In addition, DISA STIG rules SV-86663r1, SV-86695r2, SV-86759r3, SV-86761r3, SV-86763r3, SV-86765r3, SV-86595r1, and SV-86615r2 relate to the SELinux kernel which is not used in the Malcolm aggregator base operating system, and are thus skipped. + +#### CIS benchmark compliance exceptions + +[Currently](https://github.com/hardenedlinux/harbian-audit/tree/master/bin/hardening) there are 271 checks to determine compliance with the CIS Debian Linux 9 Benchmark. + +The Malcolm aggregator base operating system claims exceptions from the recommendations in this benchmark in the following categories: + +**1.1 Install Updates, Patches and Additional Security Software** - When the the Malcolm aggregator appliance software is built, all of the latest applicable security patches and updates are included in it. How future updates are to be handled is still in design. + +**1.3 Enable verify the signature of local packages** - As the base distribution is not using embedded signatures, `debsig-verify` would reject all packages (see comment in `/etc/dpkg/dpkg.cfg`). Enabling it after installation would disallow any future updates. + +**2.14 Add nodev option to /run/shm Partition**, **2.15 Add nosuid Option to /run/shm Partition**, **2.16 Add noexec Option to /run/shm Partition** - The Malcolm aggregator base operating system does not mount `/run/shm` as a separate partition, so these recommendations do not apply. + +**2.18 Disable Mounting of cramfs Filesystems**, **2.19 Disable Mounting of freevxfs Filesystems**, **2.20 Disable Mounting of jffs2 Filesystems**, **2.21 Disable Mounting of hfs Filesystems**, **2.22 Disable Mounting of hfsplus Filesystems**, **2.23 Disable Mounting of squashfs Filesystems**, **2.24 Disable Mounting of udf Filesystems** - The Malcolm aggregator base operating system is not compiling a custom Linux kernel, so these filesystems are inherently supported as they are part Debian Linux's default kernel. + +**4.6 Disable USB Devices** - The ability to ingest data (such as PCAP files) from a mounted USB mass storage device is a requirement of the system. + +**6.1 Ensure the X Window system is not installed**, **6.2 Ensure Avahi Server is not enabled**, **6.3 Ensure print server is not enabled** - An X Windows session is provided for displaying dashboards. The library packages `libavahi-common-data`, `libavahi-common3`, and `libcups2` are dependencies of some of the X components used by the Malcolm aggregator base operating system, but the `avahi` and `cups` services themselves are disabled. + +**6.17 Ensure virus scan Server is enabled**, **6.18 Ensure virus scan Server update is enabled** - As this is a network traffic analysis appliance rather than an end-user device, regular user files will not be created. A virus scan program would impact device performance and would be unnecessary. + +**7.2.4 Log Suspicious Packets**, **7.2.7 Enable RFC-recommended Source Route Validation**, **7.4.1 Install TCP Wrappers** - As Malcolm may operate as a network traffic capture appliance sniffing packets on a network interface configured in promiscuous mode, these recommendations do not apply. + +**8.4.1 Install aide package** and **8.4.2 Implement Periodic Execution of File Integrity** - This functionality is not configured by default, but it could be configured post-install using [Auditbeat](https://www.elastic.co/products/beats/auditbeat) or `aide`. + +**8.1.1.2 Disable System on Audit Log Full**, **8.1.1.3 Keep All Auditing Information**, **8.1.1.5 Ensure set remote_server for audit service**, **8.1.1.6 Ensure enable_krb5 set to yes for remote audit service**, **8.1.1.7 Ensure set action for audit storage volume is fulled**, **8.1.1.9 Set space left for auditd service**, a few other audit-related items under section **8.1**, **8.2.5 Configure rsyslog to Send Logs to a Remote Log Host** - As maximizing availability is a system requirement, audit processing failures will be logged on the device rather than halting the system. `auditd` is set up to syslog when its local storage capacity is reached. + +Password-related recommendations under **9.2** and **10.1** - The library package `libpam-pwquality` is used in favor of `libpam-cracklib` which is what the [compliance scripts](https://github.com/hardenedlinux/harbian-audit/tree/master/bin/hardening) are looking for. Also, as an appliance running Malcolm is intended to be used as an appliance rather than a general user-facing software platform, some exceptions to password enforcement policies are claimed. + +**9.3.13 Limit Access via SSH** - The Malcolm aggregator base operating system does not create multiple regular user accounts: only `root` and an aggregator service account are used. SSH access for `root` is disabled. SSH login with a password is also disallowed: only key-based authentication is accepted. The service account accepts no keys by default. As such, the `AllowUsers`, `AllowGroups`, `DenyUsers`, and `DenyGroups` values in `sshd_config` do not apply. + +**9.5 Restrict Access to the su Command** - The Malcolm aggregator base operating system does not create multiple regular user accounts: only `root` and an aggregator service account are used. + +**10.1.10 Set maxlogins for all accounts** and **10.5 Set Timeout on ttys** - The Malcolm aggregator base operating system does not create multiple regular user accounts: only `root` and an aggregator service account are used. + +**12.10 Find SUID System Executables**, **12.11 Find SGID System Executables** - The few files found by [these](https://github.com/hardenedlinux/harbian-audit/blob/master/bin/hardening/12.10_find_suid_files.sh) [scripts](https://github.com/hardenedlinux/harbian-audit/blob/master/bin/hardening/12.11_find_sgid_files.sh) are valid exceptions required by the Malcolm aggregator base operating system's core requirements. + +Please review the notes for these additional guidelines. While not claiming an exception, the Malcolm aggregator base operating system may implement them in a manner different than is described by the [CIS Debian Linux 9 Benchmark](https://www.cisecurity.org/cis-benchmarks/cis-benchmarks-faq/) or the [hardenedlinux/harbian-audit](https://github.com/hardenedlinux/harbian-audit) audit scripts. + +**4.1 Restrict Core Dumps** - The Malcolm aggregator base operating system disables core dumps using a configuration file for `ulimit` named `/etc/security/limits.d/limits.conf`. The [audit script](https://github.com/hardenedlinux/harbian-audit/blob/master/bin/hardening/4.1_restrict_core_dumps.sh) checking for this does not check the `limits.d` subdirectory, which is why this is incorrectly flagged as noncompliant. + +**5.4 Ensure ctrl-alt-del is disabled** - The Malcolm aggregator base operating system disables the `ctrl+alt+delete` key sequence by executing `systemctl disable ctrl-alt-del.target` during installation and the command `systemctl mask ctrl-alt-del.target` at boot time. + +**6.19 Configure Network Time Protocol (NTP)** - While [time synchronization](#ConfigTime) is supported on the Malcolm aggregator base operating system, an exception is claimed for this rule as the network sensor device may be configured to sync to servers in a different way than specified in the benchmark. + +**7.4.4 Create /etc/hosts.deny**, **7.7.1 Ensure Firewall is active**, **7.7.4.1 Ensure default deny firewall policy**, **7.7.4.3 Ensure default deny firewall policy**, **7.7.4.4 Ensure outbound and established connections are configured** - The Malcolm aggregator base operating system **is** configured with an appropriately locked-down software firewall (managed by "Uncomplicated Firewall" `ufw`). However, the methods outlined in the CIS benchmark recommendations do not account for this configuration. + +**8.7 Verifies integrity all packages** - The [script](https://github.com/hardenedlinux/harbian-audit/blob/master/bin/hardening/8.7_verify_integrity_packages.sh) which verifies package integrity only "fails" because of missing (status `??5??????` displayed by the utility) language ("locale") files, which are removed as part of the Malcolm aggregator base operating system's trimming-down process. All non-locale-related system files pass intergrity checks. + +## Known issues + +### PCAP file export error when Zeek logs are in Arkime search results + +Arkime has a nice feature that allows you to export PCAP files matching the filters currently populating the search field. However, Arkime viewer will raise an exception if records created from Zeek logs are found among the search results to be exported. For this reason, if you are using the export PCAP feature it is recommended that you apply the **PCAP Files** view to filter your search results prior to doing the export. + +### Manual Kibana index pattern refresh + +Because some fields are created in Elasticsearch dynamically when Zeek logs are ingested by Logstash, they may not have been present when Kibana configures its index pattern field mapping during initialization. As such, those fields will not show up in Kibana visualizations until Kibana’s copy of the field list is refreshed. Malcolm periodically refreshes this list, but if fields are missing from your visualizations you may wish to do it manually. + +After Malcolm ingests your data (or, more specifically, after it has ingested a new log type it has not seen before) you may manually refresh Kibana’s field list by clicking **Management** → **Index Patterns**, then selecting the `sessions2-*` index pattern and clicking the reload **🗘** button near the upper-right of the window. + +![Refreshing Kibana's cached index pattern](./docs/images/screenshots/kibana_refresh_index.png) + +## Installation example using Ubuntu 20.04 LTS + +Here's a step-by-step example of getting [Malcolm from GitHub](https://github.com/cisagov/Malcolm/tree/master), configuring your system and your Malcolm instance, and running it on a system running Ubuntu Linux. Your mileage may vary depending on your individual system configuration, but this should be a good starting point. + +The commands in this example should be executed as a non-root user. + +You can use `git` to clone Malcolm into a local working copy, or you can download and extract the artifacts from the [latest release](https://github.com/cisagov/Malcolm/releases). + +To install Malcolm from the latest Malcolm release, browse to the [Malcolm releases page on GitHub](https://github.com/cisagov/Malcolm/releases) and download at a minimum `install.py` and the `malcolm_YYYYMMDD_HHNNSS_xxxxxxx.tar.gz` file, then navigate to your downloads directory: +``` +user@host:~$ cd Downloads/ +user@host:~/Downloads$ ls +malcolm_common.py install.py malcolm_20190611_095410_ce2d8de.tar.gz +``` + +If you are obtaining Malcolm using `git` instead, run the following command to clone Malcolm into a local working copy: +``` +user@host:~$ git clone https://github.com/cisagov/Malcolm +Cloning into 'Malcolm'... +remote: Enumerating objects: 443, done. +remote: Counting objects: 100% (443/443), done. +remote: Compressing objects: 100% (310/310), done. +remote: Total 443 (delta 81), reused 441 (delta 79), pack-reused 0 +Receiving objects: 100% (443/443), 6.87 MiB | 18.86 MiB/s, done. +Resolving deltas: 100% (81/81), done. + +user@host:~$ cd Malcolm/ +``` + +Next, run the `install.py` script to configure your system. Replace `user` in this example with your local account username, and follow the prompts. Most questions have an acceptable default you can accept by pressing the `Enter` key. Depending on whether you are installing Malcolm from the release tarball or inside of a git working copy, the questions below will be slightly different, but for the most part are the same. +``` +user@host:~/Downloads$ sudo ./install.py +Installing required packages: ['apache2-utils', 'make', 'openssl'] + +"docker info" failed, attempt to install Docker? (Y/n): y + +Attempt to install Docker using official repositories? (Y/n): y +Installing required packages: ['apt-transport-https', 'ca-certificates', 'curl', 'gnupg-agent', 'software-properties-common'] +Installing docker packages: ['docker-ce', 'docker-ce-cli', 'containerd.io'] +Installation of docker packages apparently succeeded + +Add a non-root user to the "docker" group? (y/n): y + +Enter user account: user + +Add another non-root user to the "docker" group? (y/n): n + +"docker-compose version" failed, attempt to install docker-compose? (Y/n): y + +Install docker-compose directly from docker github? (Y/n): y +Download and installation of docker-compose apparently succeeded + + +fs.file-max increases allowed maximum for file handles +fs.file-max= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y + +fs.inotify.max_user_watches increases allowed maximum for monitored files +fs.inotify.max_user_watches= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y + +fs.inotify.max_queued_events increases queue size for monitored files +fs.inotify.max_queued_events= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y + +fs.inotify.max_user_instances increases allowed maximum monitor file watchers +fs.inotify.max_user_instances= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y + + +vm.max_map_count increases allowed maximum for memory segments +vm.max_map_count= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y + + +net.core.somaxconn increases allowed maximum for socket connections +net.core.somaxconn= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y + + +vm.swappiness adjusts the preference of the system to swap vs. drop runtime memory pages +vm.swappiness= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y + + +vm.dirty_background_ratio defines the percentage of system memory fillable with "dirty" pages before flushing +vm.dirty_background_ratio= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y + + +vm.dirty_ratio defines the maximum percentage of dirty system memory before committing everything +vm.dirty_ratio= appears to be missing from /etc/sysctl.conf, append it? (Y/n): y + + +/etc/security/limits.d/limits.conf increases the allowed maximums for file handles and memlocked segments +/etc/security/limits.d/limits.conf does not exist, create it? (Y/n): y +``` + +At this point, **if you are installing from the a release tarball** you will be asked if you would like to extract the contents of the tarball and to specify the installation directory: +``` +Extract Malcolm runtime files from /home/user/Downloads/malcolm_20190611_095410_ce2d8de.tar.gz (Y/n): y + +Enter installation path for Malcolm [/home/user/Downloads/malcolm]: /home/user/Malcolm +Malcolm runtime files extracted to /home/user/Malcolm +``` + +Alternatively, **if you are configuring Malcolm from within a git working copy**, `install.py` will now exit. Run `install.py` again like you did at the beginning of the example, only remove the `sudo` and add `--configure` to run `install.py` in "configuration only" mode. +``` +user@host:~/Malcolm$ ./scripts/install.py --configure +``` + +Now that any necessary system configuration changes have been made, the local Malcolm instance will be configured: +``` +Malcolm processes will run as UID 1000 and GID 1000. Is this OK? (Y/n): + +Setting 10g for Elasticsearch and 3g for Logstash. Is this OK? (Y/n): y + +Restart Malcolm upon system or Docker daemon restart? (y/N): y + +Select Malcolm restart behavior ('no', 'on-failure', 'always', 'unless-stopped'): unless-stopped + +Authenticate against Lightweight Directory Access Protocol (LDAP) server? (y/N): n + +Configure snapshot repository for Elasticsearch index state management? (y/N): n + +Store snapshots locally in /home/user/Malcolm/elasticsearch-backup? (Y/n): y + +Automatically analyze all PCAP files with Zeek? (y/N): y + +Perform reverse DNS lookup locally for source and destination IP addresses in Zeek logs? (y/N): n + +Perform hardware vendor OUI lookups for MAC addresses? (Y/n): y + +Expose Logstash port to external hosts? (y/N): n + +Forward Logstash logs to external Elasticstack instance? (y/N): n + +Enable file extraction with Zeek? (y/N): y + +Select file extraction behavior ('none', 'known', 'mapped', 'all', 'interesting'): interesting + +Select file preservation behavior ('quarantined', 'all', 'none'): quarantined + +Scan extracted files with ClamAV? (y/N): y + +Scan extracted files with Yara? (y/N): y + +Scan extracted PE files with Capa? (y/N): y + +Lookup extracted file hashes with VirusTotal? (y/N): n + +Download updated scanner signatures periodically? (Y/n): y + +Should Malcolm capture network traffic to PCAP files? (y/N): y + +Specify capture interface(s) (comma-separated): eth0 + +Capture packets using netsniff-ng? (Y/n): y + +Capture packets using tcpdump? (y/N): n + +Malcolm has been installed to /home/user/Malcolm. See README.md for more information. +Scripts for starting and stopping Malcolm and changing authentication-related settings can be found +in /home/user/Malcolm/scripts. +``` + +At this point you should **reboot your computer** so that the new system settings can be applied. After rebooting, log back in and return to the directory to which Malcolm was installed (or to which the git working copy was cloned). + +Now we need to [set up authentication](#AuthSetup) and generate some unique self-signed SSL certificates. You can replace `analyst` in this example with whatever username you wish to use to log in to the Malcolm web interface. +``` +user@host:~/Malcolm$ ./scripts/auth_setup +Store administrator username/password for local Malcolm access? (Y/n): + +Administrator username: analyst +analyst password: +analyst password (again): + +(Re)generate self-signed certificates for HTTPS access (Y/n): + +(Re)generate self-signed certificates for a remote log forwarder (Y/n): + +Store username/password for forwarding Logstash events to a secondary, external Elasticsearch instance (y/N): + +Store username/password for email alert sender account (y/N): +``` + +For now, rather than [build Malcolm from scratch](#Build), we'll pull images from [Docker Hub](https://hub.docker.com/u/malcolmnetsec): +``` +user@host:~/Malcolm$ docker-compose pull +Pulling elasticsearch ... done +Pulling file-monitor ... done +Pulling filebeat ... done +Pulling freq ... done +Pulling htadmin ... done +Pulling kibana ... done +Pulling logstash ... done +Pulling arkime ... done +Pulling name-map-ui ... done +Pulling nginx-proxy ... done +Pulling pcap-capture ... done +Pulling pcap-monitor ... done +Pulling upload ... done +Pulling zeek ... done + +user@host:~/Malcolm$ docker images +REPOSITORY TAG IMAGE ID CREATED SIZE +malcolmnetsec/arkime 3.2.1 xxxxxxxxxxxx 39 hours ago 683MB +malcolmnetsec/elasticsearch-od 3.2.1 xxxxxxxxxxxx 40 hours ago 690MB +malcolmnetsec/file-monitor 3.2.1 xxxxxxxxxxxx 39 hours ago 470MB +malcolmnetsec/file-upload 3.2.1 xxxxxxxxxxxx 39 hours ago 199MB +malcolmnetsec/filebeat-oss 3.2.1 xxxxxxxxxxxx 39 hours ago 555MB +malcolmnetsec/freq 3.2.1 xxxxxxxxxxxx 39 hours ago 390MB +malcolmnetsec/htadmin 3.2.1 xxxxxxxxxxxx 39 hours ago 180MB +malcolmnetsec/kibana-helper 3.2.1 xxxxxxxxxxxx 40 hours ago 141MB +malcolmnetsec/kibana-od 3.2.1 xxxxxxxxxxxx 40 hours ago 1.16GB +malcolmnetsec/logstash-oss 3.2.1 xxxxxxxxxxxx 39 hours ago 1.41GB +malcolmnetsec/name-map-ui 3.2.1 xxxxxxxxxxxx 39 hours ago 137MB +malcolmnetsec/nginx-proxy 3.2.1 xxxxxxxxxxxx 39 hours ago 120MB +malcolmnetsec/pcap-capture 3.2.1 xxxxxxxxxxxx 39 hours ago 111MB +malcolmnetsec/pcap-monitor 3.2.1 xxxxxxxxxxxx 39 hours ago 157MB +malcolmnetsec/zeek 3.2.1 xxxxxxxxxxxx 39 hours ago 887MB +``` + +Finally, we can start Malcolm. When Malcolm starts it will stream informational and debug messages to the console. If you wish, you can safely close the console or use `Ctrl+C` to stop these messages; Malcolm will continue running in the background. +``` +user@host:~/Malcolm$ ./scripts/start +Creating network "malcolm_default" with the default driver +Creating malcolm_elasticsearch_1 ... done +Creating malcolm_file-monitor_1 ... done +Creating malcolm_filebeat_1 ... done +Creating malcolm_freq_1 ... done +Creating malcolm_htadmin_1 ... done +Creating malcolm_kibana_1 ... done +Creating malcolm_logstash_1 ... done +Creating malcolm_name-map-ui_1 ... done +Creating malcolm_arkime_1 ... done +Creating malcolm_nginx-proxy_1 ... done +Creating malcolm_pcap-capture_1 ... done +Creating malcolm_pcap-monitor_1 ... done +Creating malcolm_upload_1 ... done +Creating malcolm_zeek_1 ... done + +In a few minutes, Malcolm services will be accessible via the following URLs: +------------------------------------------------------------------------------ + - Arkime: https://localhost/ + - Kibana: https://localhost/kibana/ + - PCAP Upload (web): https://localhost/upload/ + - PCAP Upload (sftp): sftp://username@127.0.0.1:8022/files/ + - Host and subnet name mapping editor: https://localhost/name-map-ui/ + - Account management: https://localhost:488/ +… +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +… +Attaching to malcolm_elasticsearch_1, malcolm_file-monitor_1, malcolm_filebeat_1, malcolm_freq_1, malcolm_htadmin_1, malcolm_kibana_1, malcolm_logstash_1, malcolm_name-map-ui_1, malcolm_arkime_1, malcolm_nginx-proxy_1, malcolm_pcap-capture_1, malcolm_pcap-monitor_1, malcolm_upload_1, malcolm_zeek_1 +… +``` + +It will take several minutes for all of Malcolm's components to start up. Logstash will take the longest, probably 3 to 5 minutes. You'll know Logstash is fully ready when you see Logstash spit out a bunch of starting up messages, ending with this: +``` +… +logstash_1 | [2019-06-11T15:45:42,009][INFO ][logstash.agent ] Pipelines running {:count=>4, :running_pipelines=>[:"malcolm-output", :"malcolm-input", :"malcolm-zeek", :"malcolm-enrichment"], :non_running_pipelines=>[]} +logstash_1 | [2019-06-11T15:45:42,599][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600} +… +``` + +You can now open a web browser and navigate to one of the [Malcolm user interfaces](#UserInterfaceURLs). + +## Upgrading Malcolm + +At this time there is not an "official" upgrade procedure to get from one version of Malcolm to the next, as it may vary from platform to platform. However, the process is fairly simple can be done by following these steps: + +### Update the underlying system + +You may wish to get the official updates for the underlying system's software packages before you proceed. Consult the documentation of your operating system for how to do this. + +If you are upgrading an Malcolm instance installed from [Malcolm installation ISO](#ISOInstallation), follow scenario 2 below. Due to the Malcolm base operating system's [hardened](#Hardening) configuration, when updating the underlying system, temporarily set the umask value to Debian default (`umask 0022` in the root shell in which updates are being performed) instead of the more restrictive Malcolm default. This will allow updates to be applied with the right permissions. + +### Scenario 1: Malcolm is a GitHub clone + +If you checked out a working copy of the Malcolm repository from GitHub with a `git clone` command, here are the basic steps to performing an upgrade: + +1. stop Malcolm + * `./scripts/stop` +2. stash changes to `docker-compose.yml` and other files + * `git stash save "pre-upgrade Malcolm configuration changes"` +3. pull changes from GitHub repository + * `git pull --rebase` +4. pull new Docker images (this will take a while) + * `docker-compose pull` +5. apply saved configuration change stashed earlier + * `git stash pop` +6. if you see `Merge conflict` messages, resolve the [conflicts](https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging#_basic_merge_conflicts) with your favorite text editor +7. you may wish to re-run `install.py --configure` as described in [System configuration and tuning](#ConfigAndTuning) in case there are any new `docker-compose.yml` parameters for Malcolm that need to be set up +8. start Malcolm + * `./scripts/start` +9. you may be prompted to [configure authentication](#AuthSetup) if there are new authentication-related files that need to be generated + * you probably do not need to re-generate self-signed certificates + +### Scenario 2: Malcolm was installed from a packaged tarball + +If you installed Malcolm from [pre-packaged installation files](https://github.com/cisagov/malcolm#Packager), here are the basic steps to perform an upgrade: + +1. stop Malcolm + * `./scripts/stop` +2. uncompress the new pre-packaged installation files (using `malcolm_YYYYMMDD_HHNNSS_xxxxxxx.tar.gz` as an example, the file and/or directory names will be different depending on the release) + * `tar xf malcolm_YYYYMMDD_HHNNSS_xxxxxxx.tar.gz` +3. backup current Malcolm scripts, configuration files and certificates + * `mkdir -p ./upgrade_backup_$(date +%Y-%m-%d)` + * `cp -r filebeat/ htadmin/ logstash/ nginx/ auth.env cidr-map.txt docker-compose.yml host-map.txt net-map.json ./scripts ./README.md ./upgrade_backup_$(date +%Y-%m-%d)/` +3. replace scripts and local documentation in your existing installation with the new ones + * `rm -rf ./scripts ./README.md` + * `cp -r ./malcolm_YYYYMMDD_HHNNSS_xxxxxxx/scripts ./malcolm_YYYYMMDD_HHNNSS_xxxxxxx/README.md ./` +4. replace (overwrite) `docker-compose.yml` file with new version + * `cp ./malcolm_YYYYMMDD_HHNNSS_xxxxxxx/docker-compose.yml ./docker-compose.yml` +5. re-run `./scripts/install.py --configure` as described in [System configuration and tuning](#ConfigAndTuning) +6. using a file comparison tool (e.g., `diff`, `meld`, `Beyond Compare`, etc.), compare `docker-compose.yml` and the `docker-compare.yml` file you backed up in step 3, and manually migrate over any customizations you wish to preserve from that file (e.g., `PCAP_FILTER`, `MAXMIND_GEOIP_DB_LICENSE_KEY`, `MANAGE_PCAP_FILES`; [anything else](#DockerComposeYml) you may have edited by hand in `docker-compose.yml` that's not prompted for in `install.py --configure`) +7. pull the new docker images (this will take a while) + * `docker-compose pull` to pull them from Docker Hub or `docker-compose load -i malcolm_YYYYMMDD_HHNNSS_xxxxxxx_images.tar.gz` if you have an offline tarball of the Malcolm docker images +8. start Malcolm + * `./scripts/start` +9. you may be prompted to [configure authentication](#AuthSetup) if there are new authentication-related files that need to be generated + * you probably do not need to re-generate self-signed certificates + +### Post-upgrade + +#### Monitoring Malcolm + +If you are technically-minded, you may wish to follow the debug output provided by `./scripts/start` (or `./scripts/logs` if you need to re-open the log stream after you've closed it), although there is a lot there and it may be hard to distinguish whether or not something is okay. + +Running `docker-compose ps -a` should give you a good idea if all of Malcolm's Docker containers started up and, in some cases, may be able to indicate if the containers are "healthy" or not. + +After upgrading following one of the previous outlines, give Malcolm several minutes to get started. Once things are up and running, open one of Malcolm's [web interfaces](#UserInterfaceURLs) to verify that things are working. + +#### Loading new Kibana dashboards and visualizations + +Once the upgraded instance Malcolm has started up, you'll probably want to import the new dashboards and visualizations for Kibana. You can signal Malcolm to load the new visualizations by opening Kibana, clicking **Management** → **Index Patterns**, then selecting the `sessions2-*` index pattern and clicking the delete **🗑** button near the upper-right of the window. Confirm the **Delete index pattern?** prompt by clicking **Delete**. Close the Kibana browser window. After a few minutes the missing index pattern will be detected and Kibana will be signalled to load its new dashboards and visualizations. + +## Copyright + +[Malcolm](https://github.com/cisagov/Malcolm) is Copyright 2021 Battelle Energy Alliance, LLC, and is developed and released through the cooperation of the [Cybersecurity and Infrastructure Security Agency](https://www.cisa.gov/) of the [U.S. Department of Homeland Security](https://www.dhs.gov/). + +See [`License.txt`](./License.txt) for the terms of its release. + +## Contact information of author(s): + +[Seth Grover](mailto:malcolm.netsec@gmail.com?subject=Malcolm) + +[![Join the chat at https://gitter.im/malcolmnetsec/community](https://badges.gitter.im/malcolmnetsec/community.svg)](https://gitter.im/malcolmnetsec/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) diff --git a/Vagrant/resources/malcolm/auth.env b/Vagrant/resources/malcolm/auth.env new file mode 100644 index 0000000..abc4c39 --- /dev/null +++ b/Vagrant/resources/malcolm/auth.env @@ -0,0 +1,3 @@ +# Malcolm Administrator username and encrypted password for nginx reverse proxy (and upload server's SFTP access) +MALCOLM_USERNAME=vagrant +MALCOLM_PASSWORD=$1$qQY3ihuD$KGG18NAIB88JU5eZWz0n3. diff --git a/Vagrant/resources/malcolm/cidr-map.txt b/Vagrant/resources/malcolm/cidr-map.txt new file mode 100644 index 0000000..e4417cf --- /dev/null +++ b/Vagrant/resources/malcolm/cidr-map.txt @@ -0,0 +1,14 @@ +# CIDR to network segment format: +# IP(s)|segment name|required tag +# +# where: +# IP(s): comma-separated list of CIDR-formatted network IP addresses +# e.g., 10.0.0.0/8, 169.254.0.0/16, 172.16.10.41 +# +# segment name: segment name to be assigned when event IP address(es) match +# +# required tag (optional): only check match and apply segment name if the event +# contains this tag +# +# Alternatively, as of Malcolm v2.0 there is a web UI editor for defining subnet +# to segment name maps, located at https:///name-map-ui. \ No newline at end of file diff --git a/Vagrant/resources/malcolm/doc.css b/Vagrant/resources/malcolm/doc.css new file mode 100644 index 0000000..cfef2a6 --- /dev/null +++ b/Vagrant/resources/malcolm/doc.css @@ -0,0 +1,324 @@ +html { + font-size: 100%; + overflow-y: scroll; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + color: #444; + font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif; + font-size: 12px; + line-height: 1.7; + padding: 1em; + margin: auto; + max-width: 1366px; + background: #fefefe; +} + +a { + color: #0645ad; + text-decoration: none; +} + +a:visited { + color: #0b0080; +} + +a:hover { + color: #06e; +} + +a:active { + color: #faa700; +} + +a:focus { + outline: thin dotted; +} + +*::-moz-selection { + background: rgba(255, 255, 0, 0.3); + color: #000; +} + +*::selection { + background: rgba(255, 255, 0, 0.3); + color: #000; +} + +a::-moz-selection { + background: rgba(255, 255, 0, 0.3); + color: #0645ad; +} + +a::selection { + background: rgba(255, 255, 0, 0.3); + color: #0645ad; +} + +p { + margin: 1em 0; +} + +img { + max-width: 100%; +} + +h1, h2, h3, h4, h5, h6 { + color: #111; + line-height: 125%; + margin-top: 2em; + font-weight: normal; +} + +h4, h5, h6 { + font-weight: bold; +} + +h1 { + font-size: 2.5em; +} + +h2 { + font-size: 2em; +} + +h3 { + font-size: 1.5em; +} + +h4 { + font-size: 1.2em; +} + +h5 { + font-size: 1em; +} + +h6 { + font-size: 0.9em; +} + +blockquote { + color: #666666; + margin: 0; + padding-left: 3em; + border-left: 0.5em #EEE solid; +} + +hr { + display: block; + height: 2px; + border: 0; + border-top: 1px solid #aaa; + border-bottom: 1px solid #eee; + margin: 1em 0; + padding: 0; +} + +pre, code, kbd, samp { + color: #000; + font-family: monospace, monospace; + _font-family: 'courier new', monospace; + font-size: 0.98em; +} + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +b, strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +ins { + background: #ff9; + color: #000; + text-decoration: none; +} + +mark { + background: #ff0; + color: #000; + font-style: italic; + font-weight: bold; +} + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +ul, ol { + margin: 1em 0; + padding: 0 0 0 2em; +} + +li p:last-child { + margin-bottom: 0; +} + +ul ul, ol ol { + margin: .3em 0; +} + +dl { + margin-bottom: 1em; +} + +dt { + font-weight: bold; + margin-bottom: .8em; +} + +dd { + margin: 0 0 .8em 2em; +} + +dd:last-child { + margin-bottom: 0; +} + +img { + border: 0; + -ms-interpolation-mode: bicubic; + vertical-align: middle; +} + +figure { + display: block; + text-align: center; + margin: 1em 0; +} + +figure img { + border: none; + margin: 0 auto; +} + +p.caption, figcaption { + font-size: 0.8em; + font-style: italic; + margin: 0 0 .8em; +} + +table { + margin-bottom: 2em; + border-bottom: 1px solid #ddd; + border-right: 1px solid #ddd; + border-spacing: 0; + border-collapse: collapse; +} + +table th { + padding: .2em 1em; + background-color: #eee; + border-top: 1px solid #ddd; + border-left: 1px solid #ddd; +} + +table td { + padding: .2em 1em; + border-top: 1px solid #ddd; + border-left: 1px solid #ddd; + vertical-align: top; +} + +.author { + font-size: 1.2em; + text-align: center; +} + +@media only screen and (min-width: 480px) { + body { + font-size: 14px; + } +} +@media only screen and (min-width: 768px) { + body { + font-size: 16px; + } +} +@media print { + * { + background: transparent !important; + color: black !important; + filter: none !important; + -ms-filter: none !important; + } + + body { + font-size: 12pt; + max-width: 100%; + } + + a, a:visited { + text-decoration: underline; + } + + hr { + height: 1px; + border: 0; + border-bottom: 1px solid black; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { + content: ""; + } + + pre, blockquote { + border: 1px solid #999; + padding-right: 1em; + page-break-inside: avoid; + } + + tr, img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + @page :left { + margin: 15mm 20mm 15mm 10mm; +} + + @page :right { + margin: 15mm 10mm 15mm 20mm; +} + + p, h2, h3 { + orphans: 3; + widows: 3; + } + + h2, h3 { + page-break-after: avoid; + } +} diff --git a/Vagrant/resources/malcolm/docker-compose-standalone.yml b/Vagrant/resources/malcolm/docker-compose-standalone.yml new file mode 100644 index 0000000..7d837ee --- /dev/null +++ b/Vagrant/resources/malcolm/docker-compose-standalone.yml @@ -0,0 +1,540 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +version: '3.7' + +################################################################################ +# Commonly tweaked configuration options +#------------------------------------------------------------------------------- +x-process-variables: &process-variables + # docker containers will run processes as unprivileged user with UID:GID + PUID : 1000 + PGID : 1000 + +x-auth-variables: &auth-variables + # authentication method: encrypted HTTP basic authentication ('true') vs LDAP ('false') + NGINX_BASIC_AUTH : 'true' + # NGINX LDAP (NGINX_BASIC_AUTH=false) can support LDAP, LDAPS, or LDAP+StartTLS. + # For StartTLS, set NGINX_LDAP_TLS_STUNNEL=true to issue the StartTLS command + # and use stunnel to tunnel the connection. + NGINX_LDAP_TLS_STUNNEL : 'false' + # stunnel will require and verify certificates for StartTLS when one or more + # trusted CA certificate files are placed in the ./nginx/ca-trust directory. + # For additional security, hostname or IP address checking of the associated + # CA certificate(s) can be enabled by providing these values. + NGINX_LDAP_TLS_STUNNEL_CHECK_HOST : '' + NGINX_LDAP_TLS_STUNNEL_CHECK_IP : '' + NGINX_LDAP_TLS_STUNNEL_VERIFY_LEVEL : 2 + +x-nginx-variables: &nginx-variables + # Whether or not to write nginx's access.log and error.log to Elasticsearch + NGINX_LOG_ACCESS_AND_ERRORS : 'false' + +x-arkime-variables: &arkime-variables + MANAGE_PCAP_FILES : 'false' + ARKIME_ANALYZE_PCAP_THREADS : 1 + MAXMIND_GEOIP_DB_LICENSE_KEY : '0' + +x-zeek-variables: &zeek-variables + ZEEK_AUTO_ANALYZE_PCAP_FILES : 'true' + ZEEK_AUTO_ANALYZE_PCAP_THREADS : 1 + ZEEK_EXTRACTOR_MODE : 'none' + EXTRACTED_FILE_IGNORE_EXISTING : 'false' + EXTRACTED_FILE_PRESERVATION : 'quarantined' + EXTRACTED_FILE_MIN_BYTES : 64 + EXTRACTED_FILE_MAX_BYTES : 134217728 + VTOT_API2_KEY : '0' + VTOT_REQUESTS_PER_MINUTE : 4 + CLAMD_MAX_REQUESTS : 8 + YARA_MAX_REQUESTS : 8 + CAPA_MAX_REQUESTS : 4 + EXTRACTED_FILE_ENABLE_YARA : 'false' + EXTRACTED_FILE_YARA_CUSTOM_ONLY : 'false' + EXTRACTED_FILE_ENABLE_CAPA : 'false' + EXTRACTED_FILE_CAPA_VERBOSE : 'false' + EXTRACTED_FILE_ENABLE_CLAMAV : 'false' + EXTRACTED_FILE_UPDATE_RULES : 'false' + EXTRACTED_FILE_PIPELINE_DEBUG : 'false' + EXTRACTED_FILE_PIPELINE_DEBUG_EXTRA : 'false' + EXTRACTED_FILE_HTTP_SERVER_ENABLE : 'false' + EXTRACTED_FILE_HTTP_SERVER_ENCRYPT : 'true' + EXTRACTED_FILE_HTTP_SERVER_KEY : 'quarantined' + # environment variables for tweaking Zeek at runtime (see local.zeek) + # set to a non-blank value to disable the corresponding feature + ZEEK_DISABLE_HASH_ALL_FILES : '' + ZEEK_DISABLE_LOG_PASSWORDS : '' + ZEEK_DISABLE_SSL_VALIDATE_CERTS : '' + ZEEK_DISABLE_TRACK_ALL_ASSETS : '' + ZEEK_DISABLE_BEST_GUESS_ICS : 'true' + ZEEK_DISABLE_SPICY_DHCP : 'true' + ZEEK_DISABLE_SPICY_DNS : 'true' + ZEEK_DISABLE_SPICY_HTTP : 'true' + ZEEK_DISABLE_SPICY_IPSEC : '' + ZEEK_DISABLE_SPICY_OPENVPN : '' + ZEEK_DISABLE_SPICY_TFTP : '' + ZEEK_DISABLE_SPICY_WIREGUARD : '' + +x-kibana-helper-variables: &kibana-helper-variables + ELASTICSEARCH_INDEX_SIZE_PRUNE_LIMIT : '0' + ELASTICSEARCH_INDEX_SIZE_PRUNE_NAME_SORT : 'false' + ISM_CLOSE_AGE : '60d' + ISM_COLD_AGE : '30d' + ISM_DELETE_AGE : '365d' + ISM_POLICY_NAME : 'session_index_policy' + ISM_SNAPSHOT_AGE : '1d' + ISM_SNAPSHOT_COMPRESSED : 'false' + ISM_SNAPSHOT_REPO : 'logs' + +x-logstash-variables: &logstash-variables + LOGSTASH_OUI_LOOKUP : 'true' + LOGSTASH_REVERSE_DNS : 'false' + # ES_EXTERNAL_HOSTS : '10.0.0.123:9200' + # ES_EXTERNAL_SSL : 'true' + # ES_EXTERNAL_SSL_CERTIFICATE_VERIFICATION : 'false' + # For security, ES_EXTERNAL_USER and ES_EXTERNAL_PASSWORD should be stored in Logstash keystore using ./scripts/auth_setup + # See also volume mount for logstash.keystore below. + # ES_EXTERNAL_USER : 'janedoe' + # ES_EXTERNAL_PASSWORD : 'secret' + +x-common-upload-variables: &common-upload-variables + AUTO_TAG : 'true' + PCAP_PIPELINE_DEBUG : 'false' + PCAP_PIPELINE_DEBUG_EXTRA : 'false' + PCAP_PIPELINE_IGNORE_PREEXISTING : 'false' + PCAP_MONITOR_HOST : 'pcap-monitor' + +x-common-lookup-variables: &common-lookup-variables + FREQ_LOOKUP : 'false' + +x-common-beats-variables: &common-beats-variables + BEATS_SSL : 'false' + +x-pcap-capture-variables: &pcap-capture-variables + PCAP_ENABLE_NETSNIFF : 'false' + PCAP_ENABLE_TCPDUMP : 'false' + PCAP_IFACE : 'eth0' + PCAP_ROTATE_MEGABYTES : 1024 + PCAP_ROTATE_MINUTES : 10 + PCAP_FILTER : '' +################################################################################ + +services: + elasticsearch: + image: malcolmnetsec/elasticsearch-od:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: elasticsearch + environment: + << : *process-variables + logger.level : 'WARN' + bootstrap.memory_lock : 'true' + ES_JAVA_OPTS : '-Xms4g -Xmx4g -Xss256k -Djava.security.egd=file:/dev/./urandom' + VIRTUAL_HOST : 'es.malcolm.local' + discovery.type : 'single-node' + discovery.zen.minimum_master_nodes : 1 + cluster.routing.allocation.disk.threshold_enabled : 'false' + cluster.routing.allocation.node_initial_primaries_recoveries : 8 + indices.query.bool.max_clause_count : 2048 + path.repo : '/opt/elasticsearch/backup' + expose: + - 9200 + ulimits: + memlock: + soft: -1 + hard: -1 + cap_add: + - IPC_LOCK + volumes: + - ./elasticsearch/elasticsearch.keystore:/usr/share/elasticsearch/config/elasticsearch.keystore:rw + - ./nginx/ca-trust:/usr/share/elasticsearch/ca-trust:ro + - ./elasticsearch:/usr/share/elasticsearch/data:delegated + - ./elasticsearch-backup:/opt/elasticsearch/backup:delegated + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost:9200"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 180s + kibana-helper: + image: malcolmnetsec/kibana-helper:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: kibana-helper + environment: + << : *process-variables + << : *kibana-helper-variables + ELASTICSEARCH_URL : 'http://elasticsearch:9200' + KIBANA_URL : 'http://kibana:5601/kibana' + VIRTUAL_HOST : 'kibana-helper.malcolm.local' + ARKIME_INDEX_PATTERN : 'sessions2-*' + ARKIME_INDEX_PATTERN_ID : 'sessions2-*' + ARKIME_INDEX_TIME_FIELD : 'firstPacket' + CREATE_ES_ARKIME_SESSION_INDEX : 'true' + depends_on: + - elasticsearch + expose: + - 28991 + volumes: + - ./index-management-policy.json:/data/index-management-policy.json:ro + healthcheck: + test: ["CMD", "supervisorctl", "status", "cron", "maps"] + interval: 60s + timeout: 15s + retries: 3 + start_period: 30s + kibana: + image: malcolmnetsec/kibana-od:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: kibana + environment: + << : *process-variables + ELASTICSEARCH_URL : 'http://elasticsearch:9200' + VIRTUAL_HOST : 'kibana.malcolm.local' + depends_on: + - elasticsearch + - kibana-helper + expose: + - 5601 + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost:5601/kibana/api/status"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 210s + logstash: + image: malcolmnetsec/logstash-oss:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: logstash + environment: + << : *process-variables + << : *logstash-variables + << : *common-beats-variables + << : *common-lookup-variables + ES_HOSTS : 'elasticsearch:9200' + LS_JAVA_OPTS : '-Xms2g -Xmx2g -Xss2m -Djava.security.egd=file:/dev/./urandom' + depends_on: + - elasticsearch + expose: + - 5044 + - 9001 + - 9600 + volumes: + - ./logstash/certs/logstash.keystore:/usr/share/logstash/config/logstash.keystore:rw + - ./nginx/ca-trust:/usr/share/logstash/ca-trust:ro + - ./logstash/certs/ca.crt:/certs/ca.crt:ro + - ./logstash/certs/server.crt:/certs/server.crt:ro + - ./logstash/certs/server.key:/certs/server.key:ro + - ./cidr-map.txt:/usr/share/logstash/config/cidr-map.txt:ro + - ./host-map.txt:/usr/share/logstash/config/host-map.txt:ro + - ./net-map.json:/usr/share/logstash/config/net-map.json:ro + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost:9600"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 600s + filebeat: + image: malcolmnetsec/filebeat-oss:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: filebeat + environment: + << : *process-variables + << : *nginx-variables + << : *common-upload-variables + << : *common-beats-variables + FILEBEAT_LOG_PATH : '/data/zeek/current' + FILEBEAT_NGINX_LOG_PATH : '/data/nginx' + FILEBEAT_LOG_CLEANUP_MINUTES : 180 + FILEBEAT_ZIP_CLEANUP_MINUTES : 360 + FILEBEAT_SCAN_FREQUENCY : '10s' + FILEBEAT_CLEAN_INACTIVE : '45m' + FILEBEAT_IGNORE_OLDER : '30m' + FILEBEAT_CLOSE_INACTIVE : '30s' + FILEBEAT_CLOSE_RENAMED : 'true' + FILEBEAT_CLOSE_REMOVED : 'true' + FILEBEAT_CLOSE_EOF : 'true' + FILEBEAT_CLEAN_REMOVED : 'true' + depends_on: + - logstash + volumes: + - nginx-log-path:/data/nginx:ro + - ./zeek-logs:/data/zeek + - ./filebeat/certs/ca.crt:/certs/ca.crt:ro + - ./filebeat/certs/client.crt:/certs/client.crt:ro + - ./filebeat/certs/client.key:/certs/client.key:ro + healthcheck: + test: ["CMD", "supervisorctl", "status", "filebeat"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + arkime: + image: malcolmnetsec/arkime:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: arkime + env_file: + - ./auth.env + environment: + << : *process-variables + << : *common-upload-variables + << : *arkime-variables + ARKIME_VERSION : '2.7.1' + VIRTUAL_HOST : 'arkime.malcolm.local' + ES_HOST : 'elasticsearch' + ES_PORT : 9200 + ES_MAX_SHARDS_PER_NODE : 2500 + VIEWER : 'on' + WISE : 'on' + ulimits: + memlock: + soft: -1 + hard: -1 + depends_on: + - elasticsearch + expose: + - 8000 + - 8005 + - 8081 + volumes: + - ./pcap:/data/pcap + - ./moloch-logs:/data/moloch/logs + - ./moloch-raw:/data/moloch/raw + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost:8005/_ns_/nstest.html"] + interval: 90s + timeout: 30s + retries: 3 + start_period: 210s + zeek: + image: malcolmnetsec/zeek:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: zeek + environment: + << : *process-variables + << : *common-upload-variables + << : *zeek-variables + ulimits: + memlock: + soft: -1 + hard: -1 + depends_on: + - elasticsearch + volumes: + - ./pcap:/pcap + - ./zeek-logs/upload:/zeek/upload + - ./zeek-logs/extract_files:/zeek/extract_files + healthcheck: + test: ["CMD", "supervisorctl", "status", "pcap-zeek"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + file-monitor: + image: malcolmnetsec/file-monitor:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: file-monitor + environment: + << : *process-variables + << : *zeek-variables + VIRTUAL_HOST : 'file-monitor.malcolm.local' + expose: + - 3310 + - 8440 + volumes: + - ./zeek-logs/extract_files:/data/zeek/extract_files + - ./zeek-logs/current:/data/zeek/logs + - ./yara/rules:/yara-rules/custom:ro + healthcheck: + test: ["CMD", "supervisorctl", "status", "watcher", "logger"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + pcap-capture: + image: malcolmnetsec/pcap-capture:3.2.1 + restart: "no" + stdin_open: false + tty: true + network_mode: host + ulimits: + memlock: + soft: -1 + hard: -1 + cap_add: + - IPC_LOCK + - NET_ADMIN + - NET_RAW + - SYS_ADMIN + environment: + << : *process-variables + << : *pcap-capture-variables + volumes: + - ./pcap/upload:/pcap + healthcheck: + test: ["CMD", "supervisorctl", "status"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + pcap-monitor: + image: malcolmnetsec/pcap-monitor:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: pcapmon + environment: + << : *process-variables + << : *common-upload-variables + ELASTICSEARCH_URL : 'http://elasticsearch:9200' + depends_on: + - elasticsearch + expose: + - 30441 + volumes: + - ./zeek-logs:/zeek + - ./pcap:/pcap + healthcheck: + test: ["CMD", "supervisorctl", "status", "watch-upload", "pcap-publisher"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 90s + upload: + image: malcolmnetsec/file-upload:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: upload + env_file: + - ./auth.env + environment: + << : *process-variables + SITE_NAME : 'Capture File and Log Archive Upload' + VIRTUAL_HOST : 'upload.malcolm.local' + depends_on: + - arkime + expose: + - 80 + ports: + - "127.0.0.1:8022:22" + volumes: + - ./pcap/upload:/var/www/upload/server/php/chroot/files + healthcheck: + test: ["CMD", "wget", "-qO-", "http://localhost"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + htadmin: + image: malcolmnetsec/htadmin:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: htadmin + environment: + << : *process-variables + << : *auth-variables + VIRTUAL_HOST : 'htadmin.malcolm.local' + expose: + - 80 + volumes: + - ./htadmin/config.ini:/var/www/htadmin/config/config.ini:rw + - ./htadmin/metadata:/var/www/htadmin/config/metadata:rw + - ./nginx/htpasswd:/var/www/htadmin/config/htpasswd:rw + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost"] + interval: 60s + timeout: 15s + retries: 3 + start_period: 60s + freq: + image: malcolmnetsec/freq:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: freq + environment: + << : *process-variables + << : *common-lookup-variables + VIRTUAL_HOST : 'freq.malcolm.local' + expose: + - 10004 + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost:10004"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + name-map-ui: + image: malcolmnetsec/name-map-ui:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: name-map-ui + environment: + << : *process-variables + VIRTUAL_HOST : 'name-map-ui.malcolm.local' + expose: + - 8080 + volumes: + - ./cidr-map.txt:/var/www/html/maps/cidr-map.txt:ro + - ./host-map.txt:/var/www/html/maps/host-map.txt:ro + - ./net-map.json:/var/www/html/maps/net-map.json:rw + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost:8080/fpm-ping"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + nginx-proxy: + image: malcolmnetsec/nginx-proxy:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: nginx-proxy + environment: + << : *process-variables + << : *auth-variables + << : *nginx-variables + depends_on: + - arkime + - kibana + - upload + - htadmin + - name-map-ui + - file-monitor + ports: + - "0.0.0.0:443:443" + - "0.0.0.0:488:488" + - "0.0.0.0:5601:5601" + # - "0.0.0.0:9200:9200" + volumes: + - nginx-log-path:/var/log/nginx:rw + - ./nginx/nginx_ldap.conf:/etc/nginx/nginx_ldap.conf:ro + - ./nginx/htpasswd:/etc/nginx/.htpasswd:ro + - ./nginx/ca-trust:/etc/nginx/ca-trust:ro + - ./nginx/certs:/etc/nginx/certs:ro + - ./nginx/certs/dhparam.pem:/etc/nginx/dhparam/dhparam.pem:ro + healthcheck: + test: ["CMD", "curl", "--insecure", "--silent", "https://localhost:443"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 120s + +# shared named volume so filebeat can access nginx access logs +volumes: + nginx-log-path: diff --git a/Vagrant/resources/malcolm/docker-compose.yml b/Vagrant/resources/malcolm/docker-compose.yml new file mode 100644 index 0000000..cd1ebf8 --- /dev/null +++ b/Vagrant/resources/malcolm/docker-compose.yml @@ -0,0 +1,593 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +version: '3.7' + +################################################################################ +# Commonly tweaked configuration options +#------------------------------------------------------------------------------- +x-process-variables: &process-variables + # docker containers will run processes as unprivileged user with UID:GID + PUID : 1000 + PGID : 1000 + +x-auth-variables: &auth-variables + # authentication method: encrypted HTTP basic authentication ('true') vs LDAP ('false') + NGINX_BASIC_AUTH : 'true' + # NGINX LDAP (NGINX_BASIC_AUTH=false) can support LDAP, LDAPS, or LDAP+StartTLS. + # For StartTLS, set NGINX_LDAP_TLS_STUNNEL=true to issue the StartTLS command + # and use stunnel to tunnel the connection. + NGINX_LDAP_TLS_STUNNEL : 'false' + # stunnel will require and verify certificates for StartTLS when one or more + # trusted CA certificate files are placed in the ./nginx/ca-trust directory. + # For additional security, hostname or IP address checking of the associated + # CA certificate(s) can be enabled by providing these values. + NGINX_LDAP_TLS_STUNNEL_CHECK_HOST : '' + NGINX_LDAP_TLS_STUNNEL_CHECK_IP : '' + NGINX_LDAP_TLS_STUNNEL_VERIFY_LEVEL : 2 + +x-nginx-variables: &nginx-variables + # Whether or not to write nginx's access.log and error.log to Elasticsearch + NGINX_LOG_ACCESS_AND_ERRORS : 'false' + +x-arkime-variables: &arkime-variables + MANAGE_PCAP_FILES : 'false' + ARKIME_ANALYZE_PCAP_THREADS : 1 + MAXMIND_GEOIP_DB_LICENSE_KEY : '0' + +x-zeek-variables: &zeek-variables + ZEEK_AUTO_ANALYZE_PCAP_FILES : 'true' + ZEEK_AUTO_ANALYZE_PCAP_THREADS : 1 + ZEEK_EXTRACTOR_MODE : 'none' + EXTRACTED_FILE_IGNORE_EXISTING : 'false' + EXTRACTED_FILE_PRESERVATION : 'quarantined' + EXTRACTED_FILE_MIN_BYTES : 64 + EXTRACTED_FILE_MAX_BYTES : 134217728 + VTOT_API2_KEY : '0' + VTOT_REQUESTS_PER_MINUTE : 4 + CLAMD_MAX_REQUESTS : 8 + YARA_MAX_REQUESTS : 8 + CAPA_MAX_REQUESTS : 4 + EXTRACTED_FILE_ENABLE_YARA : 'false' + EXTRACTED_FILE_YARA_CUSTOM_ONLY : 'false' + EXTRACTED_FILE_ENABLE_CAPA : 'false' + EXTRACTED_FILE_CAPA_VERBOSE : 'false' + EXTRACTED_FILE_ENABLE_CLAMAV : 'false' + EXTRACTED_FILE_UPDATE_RULES : 'false' + EXTRACTED_FILE_PIPELINE_DEBUG : 'false' + EXTRACTED_FILE_PIPELINE_DEBUG_EXTRA : 'false' + EXTRACTED_FILE_HTTP_SERVER_ENABLE : 'false' + EXTRACTED_FILE_HTTP_SERVER_ENCRYPT : 'true' + EXTRACTED_FILE_HTTP_SERVER_KEY : 'quarantined' + # environment variables for tweaking Zeek at runtime (see local.zeek) + # set to a non-blank value to disable the corresponding feature + ZEEK_DISABLE_HASH_ALL_FILES : '' + ZEEK_DISABLE_LOG_PASSWORDS : '' + ZEEK_DISABLE_SSL_VALIDATE_CERTS : '' + ZEEK_DISABLE_TRACK_ALL_ASSETS : '' + ZEEK_DISABLE_BEST_GUESS_ICS : 'true' + ZEEK_DISABLE_SPICY_DHCP : 'true' + ZEEK_DISABLE_SPICY_DNS : 'true' + ZEEK_DISABLE_SPICY_HTTP : 'true' + ZEEK_DISABLE_SPICY_IPSEC : '' + ZEEK_DISABLE_SPICY_OPENVPN : '' + ZEEK_DISABLE_SPICY_TFTP : '' + ZEEK_DISABLE_SPICY_WIREGUARD : '' + +x-kibana-helper-variables: &kibana-helper-variables + ELASTICSEARCH_INDEX_SIZE_PRUNE_LIMIT : '0' + ELASTICSEARCH_INDEX_SIZE_PRUNE_NAME_SORT : 'false' + ISM_CLOSE_AGE : '60d' + ISM_COLD_AGE : '30d' + ISM_DELETE_AGE : '365d' + ISM_POLICY_NAME : 'session_index_policy' + ISM_SNAPSHOT_AGE : '1d' + ISM_SNAPSHOT_COMPRESSED : 'false' + ISM_SNAPSHOT_REPO : 'logs' + +x-logstash-variables: &logstash-variables + LOGSTASH_OUI_LOOKUP : 'true' + LOGSTASH_REVERSE_DNS : 'false' + # ES_EXTERNAL_HOSTS : '10.0.0.123:9200' + # ES_EXTERNAL_SSL : 'true' + # ES_EXTERNAL_SSL_CERTIFICATE_VERIFICATION : 'false' + # For security, ES_EXTERNAL_USER and ES_EXTERNAL_PASSWORD should be stored in Logstash keystore using ./scripts/auth_setup + # See also volume mount for logstash.keystore below. + # ES_EXTERNAL_USER : 'janedoe' + # ES_EXTERNAL_PASSWORD : 'secret' + +x-common-upload-variables: &common-upload-variables + AUTO_TAG : 'true' + PCAP_PIPELINE_DEBUG : 'false' + PCAP_PIPELINE_DEBUG_EXTRA : 'false' + PCAP_PIPELINE_IGNORE_PREEXISTING : 'false' + PCAP_MONITOR_HOST : 'pcap-monitor' + +x-common-lookup-variables: &common-lookup-variables + FREQ_LOOKUP : 'false' + +x-common-beats-variables: &common-beats-variables + BEATS_SSL : 'false' + +x-pcap-capture-variables: &pcap-capture-variables + PCAP_ENABLE_NETSNIFF : 'false' + PCAP_ENABLE_TCPDUMP : 'false' + PCAP_IFACE : 'eth0' + PCAP_ROTATE_MEGABYTES : 1024 + PCAP_ROTATE_MINUTES : 10 + PCAP_FILTER : '' +################################################################################ + +services: + elasticsearch: + build: + context: . + dockerfile: Dockerfiles/elasticsearch.Dockerfile + image: malcolmnetsec/elasticsearch-od:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: elasticsearch + environment: + << : *process-variables + logger.level : 'INFO' + bootstrap.memory_lock : 'true' + ES_JAVA_OPTS : '-Xms4g -Xmx4g -Xss256k -Djava.security.egd=file:/dev/./urandom' + VIRTUAL_HOST : 'es.malcolm.local' + discovery.type : 'single-node' + discovery.zen.minimum_master_nodes : 1 + cluster.routing.allocation.disk.threshold_enabled : 'false' + cluster.routing.allocation.node_initial_primaries_recoveries : 8 + indices.query.bool.max_clause_count : 2048 + path.repo : '/opt/elasticsearch/backup' + expose: + - 9200 + ulimits: + memlock: + soft: -1 + hard: -1 + cap_add: + - IPC_LOCK + volumes: + - ./elasticsearch/elasticsearch.keystore:/usr/share/elasticsearch/config/elasticsearch.keystore:rw + - ./nginx/ca-trust:/usr/share/elasticsearch/ca-trust:ro + - ./elasticsearch:/usr/share/elasticsearch/data:delegated + - ./elasticsearch-backup:/opt/elasticsearch/backup:delegated + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost:9200"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 180s + kibana-helper: + build: + context: . + dockerfile: Dockerfiles/kibana-helper.Dockerfile + image: malcolmnetsec/kibana-helper:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: kibana-helper + environment: + << : *process-variables + << : *kibana-helper-variables + ELASTICSEARCH_URL : 'http://elasticsearch:9200' + KIBANA_URL : 'http://kibana:5601/kibana' + VIRTUAL_HOST : 'kibana-helper.malcolm.local' + ARKIME_INDEX_PATTERN : 'sessions2-*' + ARKIME_INDEX_PATTERN_ID : 'sessions2-*' + ARKIME_INDEX_TIME_FIELD : 'firstPacket' + CREATE_ES_ARKIME_SESSION_INDEX : 'true' + depends_on: + - elasticsearch + expose: + - 28991 + volumes: + - ./index-management-policy.json:/data/index-management-policy.json:ro + healthcheck: + test: ["CMD", "supervisorctl", "status", "cron", "maps"] + interval: 60s + timeout: 15s + retries: 3 + start_period: 30s + kibana: + build: + context: . + dockerfile: Dockerfiles/kibana.Dockerfile + image: malcolmnetsec/kibana-od:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: kibana + environment: + << : *process-variables + ELASTICSEARCH_URL : 'http://elasticsearch:9200' + VIRTUAL_HOST : 'kibana.malcolm.local' + depends_on: + - elasticsearch + - kibana-helper + expose: + - 5601 + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost:5601/kibana/api/status"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 210s + logstash: + build: + context: . + dockerfile: Dockerfiles/logstash.Dockerfile + image: malcolmnetsec/logstash-oss:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: logstash + environment: + << : *process-variables + << : *logstash-variables + << : *common-beats-variables + << : *common-lookup-variables + ES_HOSTS : 'elasticsearch:9200' + LS_JAVA_OPTS : '-Xms2g -Xmx2g -Xss2m -Djava.security.egd=file:/dev/./urandom' + depends_on: + - elasticsearch + expose: + - 5044 + - 9001 + - 9600 + volumes: + - ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro + - ./logstash/pipelines:/usr/share/logstash/malcolm-pipelines.available:ro + - ./logstash/certs/logstash.keystore:/usr/share/logstash/config/logstash.keystore:rw + - ./nginx/ca-trust:/usr/share/logstash/ca-trust:ro + - ./logstash/certs/ca.crt:/certs/ca.crt:ro + - ./logstash/certs/server.crt:/certs/server.crt:ro + - ./logstash/certs/server.key:/certs/server.key:ro + - ./cidr-map.txt:/usr/share/logstash/config/cidr-map.txt:ro + - ./host-map.txt:/usr/share/logstash/config/host-map.txt:ro + - ./net-map.json:/usr/share/logstash/config/net-map.json:ro + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost:9600"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 600s + filebeat: + build: + context: . + dockerfile: Dockerfiles/filebeat.Dockerfile + image: malcolmnetsec/filebeat-oss:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: filebeat + environment: + << : *process-variables + << : *nginx-variables + << : *common-upload-variables + << : *common-beats-variables + FILEBEAT_LOG_PATH : '/data/zeek/current' + FILEBEAT_NGINX_LOG_PATH : '/data/nginx' + FILEBEAT_LOG_CLEANUP_MINUTES : 180 + FILEBEAT_ZIP_CLEANUP_MINUTES : 360 + FILEBEAT_SCAN_FREQUENCY : '10s' + FILEBEAT_CLEAN_INACTIVE : '45m' + FILEBEAT_IGNORE_OLDER : '30m' + FILEBEAT_CLOSE_INACTIVE : '30s' + FILEBEAT_CLOSE_RENAMED : 'true' + FILEBEAT_CLOSE_REMOVED : 'true' + FILEBEAT_CLOSE_EOF : 'true' + FILEBEAT_CLEAN_REMOVED : 'true' + depends_on: + - logstash + volumes: + - nginx-log-path:/data/nginx:ro + - ./zeek-logs:/data/zeek + - ./filebeat/certs/ca.crt:/certs/ca.crt:ro + - ./filebeat/certs/client.crt:/certs/client.crt:ro + - ./filebeat/certs/client.key:/certs/client.key:ro + - ./filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro + healthcheck: + test: ["CMD", "supervisorctl", "status", "filebeat"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + arkime: + build: + context: . + dockerfile: Dockerfiles/arkime.Dockerfile + image: malcolmnetsec/arkime:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: arkime + env_file: + - ./auth.env + environment: + << : *process-variables + << : *common-upload-variables + << : *arkime-variables + ARKIME_VERSION : '2.7.1' + VIRTUAL_HOST : 'arkime.malcolm.local' + ES_HOST : 'elasticsearch' + ES_PORT : 9200 + ES_MAX_SHARDS_PER_NODE : 2500 + VIEWER : 'on' + WISE : 'on' + ulimits: + memlock: + soft: -1 + hard: -1 + depends_on: + - elasticsearch + expose: + - 8000 + - 8005 + - 8081 + volumes: + - ./pcap:/data/pcap + - ./moloch-logs:/data/moloch/logs + - ./moloch-raw:/data/moloch/raw + - ./moloch/etc/config.ini:/data/moloch/etc/config.ini:ro + - ./moloch/etc/user_settings.json:/data/moloch/etc/user_settings.json:ro + - ./moloch/wise/source.zeeklogs.js:/data/moloch/wiseService/source.zeeklogs.js:ro + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost:8005/_ns_/nstest.html"] + interval: 90s + timeout: 30s + retries: 3 + start_period: 210s + zeek: + build: + context: . + dockerfile: Dockerfiles/zeek.Dockerfile + image: malcolmnetsec/zeek:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: zeek + environment: + << : *process-variables + << : *common-upload-variables + << : *zeek-variables + ulimits: + memlock: + soft: -1 + hard: -1 + depends_on: + - elasticsearch + volumes: + - ./pcap:/pcap + - ./zeek-logs/upload:/zeek/upload + - ./zeek-logs/extract_files:/zeek/extract_files + - ./zeek/config/local.zeek:/opt/zeek/share/zeek/site/local.zeek:ro + healthcheck: + test: ["CMD", "supervisorctl", "status", "pcap-zeek"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + file-monitor: + build: + context: . + dockerfile: Dockerfiles/file-monitor.Dockerfile + image: malcolmnetsec/file-monitor:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: file-monitor + environment: + << : *process-variables + << : *zeek-variables + VIRTUAL_HOST : 'file-monitor.malcolm.local' + expose: + - 3310 + - 8440 + volumes: + - ./zeek-logs/extract_files:/data/zeek/extract_files + - ./zeek-logs/current:/data/zeek/logs + - ./yara/rules:/yara-rules/custom:ro + healthcheck: + test: ["CMD", "supervisorctl", "status", "watcher", "logger"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + pcap-capture: + build: + context: . + dockerfile: Dockerfiles/pcap-capture.Dockerfile + image: malcolmnetsec/pcap-capture:3.2.1 + restart: "no" + stdin_open: false + tty: true + network_mode: host + ulimits: + memlock: + soft: -1 + hard: -1 + cap_add: + - IPC_LOCK + - NET_ADMIN + - NET_RAW + - SYS_ADMIN + environment: + << : *process-variables + << : *pcap-capture-variables + volumes: + - ./pcap/upload:/pcap + healthcheck: + test: ["CMD", "supervisorctl", "status"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + pcap-monitor: + build: + context: . + dockerfile: Dockerfiles/pcap-monitor.Dockerfile + image: malcolmnetsec/pcap-monitor:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: pcapmon + environment: + << : *process-variables + << : *common-upload-variables + ELASTICSEARCH_URL : 'http://elasticsearch:9200' + depends_on: + - elasticsearch + expose: + - 30441 + volumes: + - ./zeek-logs:/zeek + - ./pcap:/pcap + healthcheck: + test: ["CMD", "supervisorctl", "status", "watch-upload", "pcap-publisher"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 90s + upload: + build: + context: . + dockerfile: Dockerfiles/file-upload.Dockerfile + image: malcolmnetsec/file-upload:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: upload + env_file: + - ./auth.env + environment: + << : *process-variables + SITE_NAME : 'Capture File and Log Archive Upload' + VIRTUAL_HOST : 'upload.malcolm.local' + depends_on: + - arkime + expose: + - 80 + ports: + - "127.0.0.1:8022:22" + volumes: + - ./pcap/upload:/var/www/upload/server/php/chroot/files + healthcheck: + test: ["CMD", "wget", "-qO-", "http://localhost"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + htadmin: + image: malcolmnetsec/htadmin:3.2.1 + build: + context: . + dockerfile: Dockerfiles/htadmin.Dockerfile + restart: "no" + stdin_open: false + tty: true + hostname: htadmin + environment: + << : *process-variables + << : *auth-variables + VIRTUAL_HOST : 'htadmin.malcolm.local' + expose: + - 80 + volumes: + - ./htadmin/config.ini:/var/www/htadmin/config/config.ini:rw + - ./htadmin/metadata:/var/www/htadmin/config/metadata:rw + - ./nginx/htpasswd:/var/www/htadmin/config/htpasswd:rw + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost"] + interval: 60s + timeout: 15s + retries: 3 + start_period: 60s + freq: + image: malcolmnetsec/freq:3.2.1 + build: + context: . + dockerfile: Dockerfiles/freq.Dockerfile + restart: "no" + stdin_open: false + tty: true + hostname: freq + environment: + << : *process-variables + << : *common-lookup-variables + VIRTUAL_HOST : 'freq.malcolm.local' + expose: + - 10004 + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost:10004"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + name-map-ui: + image: malcolmnetsec/name-map-ui:3.2.1 + build: + context: . + dockerfile: Dockerfiles/name-map-ui.Dockerfile + restart: "no" + stdin_open: false + tty: true + hostname: name-map-ui + environment: + << : *process-variables + VIRTUAL_HOST : 'name-map-ui.malcolm.local' + expose: + - 8080 + volumes: + - ./cidr-map.txt:/var/www/html/maps/cidr-map.txt:ro + - ./host-map.txt:/var/www/html/maps/host-map.txt:ro + - ./net-map.json:/var/www/html/maps/net-map.json:rw + healthcheck: + test: ["CMD", "curl", "--silent", "--fail", "http://localhost:8080/fpm-ping"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 60s + nginx-proxy: + build: + context: . + dockerfile: Dockerfiles/nginx.Dockerfile + image: malcolmnetsec/nginx-proxy:3.2.1 + restart: "no" + stdin_open: false + tty: true + hostname: nginx-proxy + environment: + << : *process-variables + << : *auth-variables + << : *nginx-variables + depends_on: + - arkime + - kibana + - upload + - htadmin + - name-map-ui + - file-monitor + ports: + - "0.0.0.0:443:443" + - "0.0.0.0:488:488" + - "0.0.0.0:5601:5601" + # - "0.0.0.0:9200:9200" + volumes: + - nginx-log-path:/var/log/nginx:rw + - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro + - ./nginx/nginx_ldap.conf:/etc/nginx/nginx_ldap.conf:ro + - ./nginx/htpasswd:/etc/nginx/.htpasswd:ro + - ./nginx/ca-trust:/etc/nginx/ca-trust:ro + - ./nginx/certs:/etc/nginx/certs:ro + - ./nginx/certs/dhparam.pem:/etc/nginx/dhparam/dhparam.pem:ro + healthcheck: + test: ["CMD", "curl", "--insecure", "--silent", "https://localhost:443"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 120s + +# shared named volume so filebeat can access nginx access logs +volumes: + nginx-log-path: diff --git a/Vagrant/resources/malcolm/docs/DHS_TOU.pdf b/Vagrant/resources/malcolm/docs/DHS_TOU.pdf new file mode 100644 index 0000000..39975c1 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/DHS_TOU.pdf differ diff --git a/Vagrant/resources/malcolm/docs/Malcolm Network Traffic Analysis Quick Start Guide.odt b/Vagrant/resources/malcolm/docs/Malcolm Network Traffic Analysis Quick Start Guide.odt new file mode 100644 index 0000000..7648877 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/Malcolm Network Traffic Analysis Quick Start Guide.odt differ diff --git a/Vagrant/resources/malcolm/docs/Malcolm Network Traffic Analysis Quick Start Guide.pdf b/Vagrant/resources/malcolm/docs/Malcolm Network Traffic Analysis Quick Start Guide.pdf new file mode 100644 index 0000000..746ce3e Binary files /dev/null and b/Vagrant/resources/malcolm/docs/Malcolm Network Traffic Analysis Quick Start Guide.pdf differ diff --git a/Vagrant/resources/malcolm/docs/images/favicon/apple-touch-icon-precomposed.png b/Vagrant/resources/malcolm/docs/images/favicon/apple-touch-icon-precomposed.png new file mode 100644 index 0000000..cd127c9 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/favicon/apple-touch-icon-precomposed.png differ diff --git a/Vagrant/resources/malcolm/docs/images/favicon/facebook.png b/Vagrant/resources/malcolm/docs/images/favicon/facebook.png new file mode 100644 index 0000000..a5bbcb2 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/favicon/facebook.png differ diff --git a/Vagrant/resources/malcolm/docs/images/favicon/favicon.ico b/Vagrant/resources/malcolm/docs/images/favicon/favicon.ico new file mode 100644 index 0000000..ec9bbc3 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/favicon/favicon.ico differ diff --git a/Vagrant/resources/malcolm/docs/images/favicon/favicon16.png b/Vagrant/resources/malcolm/docs/images/favicon/favicon16.png new file mode 100644 index 0000000..df89a4a Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/favicon/favicon16.png differ diff --git a/Vagrant/resources/malcolm/docs/images/favicon/favicon24.png b/Vagrant/resources/malcolm/docs/images/favicon/favicon24.png new file mode 100644 index 0000000..d6ca27d Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/favicon/favicon24.png differ diff --git a/Vagrant/resources/malcolm/docs/images/favicon/favicon32.png b/Vagrant/resources/malcolm/docs/images/favicon/favicon32.png new file mode 100644 index 0000000..b002470 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/favicon/favicon32.png differ diff --git a/Vagrant/resources/malcolm/docs/images/favicon/favicon48.png b/Vagrant/resources/malcolm/docs/images/favicon/favicon48.png new file mode 100644 index 0000000..fe1c943 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/favicon/favicon48.png differ diff --git a/Vagrant/resources/malcolm/docs/images/favicon/favicon64.png b/Vagrant/resources/malcolm/docs/images/favicon/favicon64.png new file mode 100644 index 0000000..3e220ed Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/favicon/favicon64.png differ diff --git a/Vagrant/resources/malcolm/docs/images/font/texgyreadventor-bold.otf b/Vagrant/resources/malcolm/docs/images/font/texgyreadventor-bold.otf new file mode 100644 index 0000000..b521943 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/font/texgyreadventor-bold.otf differ diff --git a/Vagrant/resources/malcolm/docs/images/font/texgyreadventor-bolditalic.otf b/Vagrant/resources/malcolm/docs/images/font/texgyreadventor-bolditalic.otf new file mode 100644 index 0000000..3451a52 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/font/texgyreadventor-bolditalic.otf differ diff --git a/Vagrant/resources/malcolm/docs/images/font/texgyreadventor-italic.otf b/Vagrant/resources/malcolm/docs/images/font/texgyreadventor-italic.otf new file mode 100644 index 0000000..9472e73 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/font/texgyreadventor-italic.otf differ diff --git a/Vagrant/resources/malcolm/docs/images/font/texgyreadventor-regular.otf b/Vagrant/resources/malcolm/docs/images/font/texgyreadventor-regular.otf new file mode 100644 index 0000000..655a186 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/font/texgyreadventor-regular.otf differ diff --git a/Vagrant/resources/malcolm/docs/images/icon/favicon.ico b/Vagrant/resources/malcolm/docs/images/icon/favicon.ico new file mode 100644 index 0000000..ec9bbc3 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/icon/favicon.ico differ diff --git a/Vagrant/resources/malcolm/docs/images/icon/icon.png b/Vagrant/resources/malcolm/docs/images/icon/icon.png new file mode 100644 index 0000000..86180f0 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/icon/icon.png differ diff --git a/Vagrant/resources/malcolm/docs/images/icon/icon.svg b/Vagrant/resources/malcolm/docs/images/icon/icon.svg new file mode 100644 index 0000000..191a748 --- /dev/null +++ b/Vagrant/resources/malcolm/docs/images/icon/icon.svg @@ -0,0 +1,122 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Vagrant/resources/malcolm/docs/images/icon/icon_attrib.txt b/Vagrant/resources/malcolm/docs/images/icon/icon_attrib.txt new file mode 100644 index 0000000..8f1aded --- /dev/null +++ b/Vagrant/resources/malcolm/docs/images/icon/icon_attrib.txt @@ -0,0 +1,34 @@ +https://commons.wikimedia.org/wiki/File:Triskel_type_Tonkedeg..svg + +https://creativecommons.org/licenses/by-sa/3.0/deed.en + +Description +Deutsch: Dreischneuß (Dreifache Fischblase) +Français : Triskell gothique +English: Triskelion element of Gothic architecture +Date 1 February 2012 (Ste Brigitte) +Source tonquedec et église, + +melrand et chapelle, +berrien et chapelle, +cruas +Author 1st Ec.Domnowall, 2nd User: Perhelion +Other versions + +Category:Diagrams of triskelions in church windows + +I, the copyright holder of this work, hereby publish it under the following license: +w:en:Creative Commons + +attribution share alike + This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license. + + You are free: + + to share – to copy, distribute and transmit the work + to remix – to adapt the work + + Under the following conditions: + + attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. + share alike – If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. diff --git a/Vagrant/resources/malcolm/docs/images/logo/Malcolm.svg b/Vagrant/resources/malcolm/docs/images/logo/Malcolm.svg new file mode 100644 index 0000000..313cdaf --- /dev/null +++ b/Vagrant/resources/malcolm/docs/images/logo/Malcolm.svg @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Malc lm + + + + + + + + + + + + + + + + + + + + + + diff --git a/Vagrant/resources/malcolm/docs/images/logo/Malcolm_background.png b/Vagrant/resources/malcolm/docs/images/logo/Malcolm_background.png new file mode 100644 index 0000000..5af2a66 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/logo/Malcolm_background.png differ diff --git a/Vagrant/resources/malcolm/docs/images/logo/Malcolm_banner.png b/Vagrant/resources/malcolm/docs/images/logo/Malcolm_banner.png new file mode 100644 index 0000000..46d2620 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/logo/Malcolm_banner.png differ diff --git a/Vagrant/resources/malcolm/docs/images/logo/Malcolm_outline.svg b/Vagrant/resources/malcolm/docs/images/logo/Malcolm_outline.svg new file mode 100644 index 0000000..01da04f --- /dev/null +++ b/Vagrant/resources/malcolm/docs/images/logo/Malcolm_outline.svg @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Malc lm + + + + + + + + + + + + + + + + + + + + + + diff --git a/Vagrant/resources/malcolm/docs/images/logo/Malcolm_outline_banner.png b/Vagrant/resources/malcolm/docs/images/logo/Malcolm_outline_banner.png new file mode 100644 index 0000000..1984389 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/logo/Malcolm_outline_banner.png differ diff --git a/Vagrant/resources/malcolm/docs/images/logo/Malcolm_reflection.png b/Vagrant/resources/malcolm/docs/images/logo/Malcolm_reflection.png new file mode 100644 index 0000000..4663f38 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/logo/Malcolm_reflection.png differ diff --git a/Vagrant/resources/malcolm/docs/images/logo/Malcolm_reflection_white.png b/Vagrant/resources/malcolm/docs/images/logo/Malcolm_reflection_white.png new file mode 100644 index 0000000..5984522 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/logo/Malcolm_reflection_white.png differ diff --git a/Vagrant/resources/malcolm/docs/images/logo/moloch.xcf b/Vagrant/resources/malcolm/docs/images/logo/moloch.xcf new file mode 100644 index 0000000..790d7c6 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/logo/moloch.xcf differ diff --git a/Vagrant/resources/malcolm/docs/images/malcolm_network_diagram.odg b/Vagrant/resources/malcolm/docs/images/malcolm_network_diagram.odg new file mode 100644 index 0000000..fcf87dc Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/malcolm_network_diagram.odg differ diff --git a/Vagrant/resources/malcolm/docs/images/malcolm_network_diagram.png b/Vagrant/resources/malcolm/docs/images/malcolm_network_diagram.png new file mode 100644 index 0000000..134e61f Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/malcolm_network_diagram.png differ diff --git a/Vagrant/resources/malcolm/docs/images/malcolm_poster.odg b/Vagrant/resources/malcolm/docs/images/malcolm_poster.odg new file mode 100644 index 0000000..a5f0c8f Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/malcolm_poster.odg differ diff --git a/Vagrant/resources/malcolm/docs/images/malcolm_poster.pdf b/Vagrant/resources/malcolm/docs/images/malcolm_poster.pdf new file mode 100644 index 0000000..f856659 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/malcolm_poster.pdf differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_add_filter.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_add_filter.png new file mode 100644 index 0000000..de7405c Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_add_filter.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_bacnet.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_bacnet.png new file mode 100644 index 0000000..47a64a9 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_bacnet.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_connections.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_connections.png new file mode 100644 index 0000000..7e63077 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_connections.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_discover.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_discover.png new file mode 100644 index 0000000..8ecd724 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_discover.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_discover_table.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_discover_table.png new file mode 100644 index 0000000..baba787 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_discover_table.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_dnp3.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_dnp3.png new file mode 100644 index 0000000..346e573 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_dnp3.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_ethernetip.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_ethernetip.png new file mode 100644 index 0000000..10bce4c Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_ethernetip.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_fields_list.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_fields_list.png new file mode 100644 index 0000000..d4a9ee6 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_fields_list.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_files_source.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_files_source.png new file mode 100644 index 0000000..809fb5e Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_files_source.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_http.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_http.png new file mode 100644 index 0000000..2c5b61f Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_http.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_latlon_map.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_latlon_map.png new file mode 100644 index 0000000..d95a1ec Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_latlon_map.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_modbus.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_modbus.png new file mode 100644 index 0000000..621af61 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_modbus.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_mqtt.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_mqtt.png new file mode 100644 index 0000000..529075e Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_mqtt.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_new_visualization.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_new_visualization.png new file mode 100644 index 0000000..5c5e241 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_new_visualization.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_notices.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_notices.png new file mode 100644 index 0000000..17a7654 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_notices.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_open_search.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_open_search.png new file mode 100644 index 0000000..d53978b Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_open_search.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_portable_executables.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_portable_executables.png new file mode 100644 index 0000000..2b51954 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_portable_executables.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_profinet.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_profinet.png new file mode 100644 index 0000000..1028402 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_profinet.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_refresh_index.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_refresh_index.png new file mode 100644 index 0000000..9b9641c Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_refresh_index.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_region_map.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_region_map.png new file mode 100644 index 0000000..d93113e Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_region_map.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_s7comm.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_s7comm.png new file mode 100644 index 0000000..9426440 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_s7comm.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_signatures.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_signatures.png new file mode 100644 index 0000000..6ee0c9c Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_signatures.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_smtp.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_smtp.png new file mode 100644 index 0000000..996d261 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_smtp.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_software.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_software.png new file mode 100644 index 0000000..026fdcb Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_software.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_ssl.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_ssl.png new file mode 100644 index 0000000..03261c0 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_ssl.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_time_series.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_time_series.png new file mode 100644 index 0000000..b2a952a Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_time_series.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/kibana_timelion.png b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_timelion.png new file mode 100644 index 0000000..2d44e5e Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/kibana_timelion.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/malcolm_name_map_ui.png b/Vagrant/resources/malcolm/docs/images/screenshots/malcolm_name_map_ui.png new file mode 100644 index 0000000..a28d1b6 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/malcolm_name_map_ui.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/malcolm_upload.png b/Vagrant/resources/malcolm/docs/images/screenshots/malcolm_upload.png new file mode 100644 index 0000000..91135b8 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/malcolm_upload.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_connections.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_connections.png new file mode 100644 index 0000000..1c2e19d Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_connections.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_connections_segments.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_connections_segments.png new file mode 100644 index 0000000..48245c5 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_connections_segments.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_correlate_communityid_uid.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_correlate_communityid_uid.png new file mode 100644 index 0000000..d976d1f Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_correlate_communityid_uid.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_es_stats.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_es_stats.png new file mode 100644 index 0000000..91cc985 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_es_stats.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_export_pcap.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_export_pcap.png new file mode 100644 index 0000000..dd6005a Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_export_pcap.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_files.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_files.png new file mode 100644 index 0000000..04ecd61 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_files.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_general_settings.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_general_settings.png new file mode 100644 index 0000000..23feb2b Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_general_settings.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_help_fields.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_help_fields.png new file mode 100644 index 0000000..8979c14 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_help_fields.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_history.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_history.png new file mode 100644 index 0000000..8e21137 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_history.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_hunt_creation.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_hunt_creation.png new file mode 100644 index 0000000..8caf3a0 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_hunt_creation.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_hunt_finished.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_hunt_finished.png new file mode 100644 index 0000000..5516346 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_hunt_finished.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_hunt_sessions.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_hunt_sessions.png new file mode 100644 index 0000000..0dd43e1 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_hunt_sessions.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_log_filter.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_log_filter.png new file mode 100644 index 0000000..9948f0c Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_log_filter.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_session_zeek.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_session_zeek.png new file mode 100644 index 0000000..7e8beff Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_session_zeek.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_sessions.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_sessions.png new file mode 100644 index 0000000..90980c3 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_sessions.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_spigraph.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_spigraph.png new file mode 100644 index 0000000..6f5bae0 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_spigraph.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_spiview.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_spiview.png new file mode 100644 index 0000000..d04f7ea Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_spiview.png differ diff --git a/Vagrant/resources/malcolm/docs/images/screenshots/moloch_view_settings.png b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_view_settings.png new file mode 100644 index 0000000..611ed42 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/images/screenshots/moloch_view_settings.png differ diff --git a/Vagrant/resources/malcolm/docs/slides/Network Traffic Analysis with Malcolm.odp b/Vagrant/resources/malcolm/docs/slides/Network Traffic Analysis with Malcolm.odp new file mode 100644 index 0000000..b9105b3 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/slides/Network Traffic Analysis with Malcolm.odp differ diff --git a/Vagrant/resources/malcolm/docs/slides/Network Traffic Analysis with Malcolm.pdf b/Vagrant/resources/malcolm/docs/slides/Network Traffic Analysis with Malcolm.pdf new file mode 100644 index 0000000..154e784 Binary files /dev/null and b/Vagrant/resources/malcolm/docs/slides/Network Traffic Analysis with Malcolm.pdf differ diff --git a/Vagrant/resources/malcolm/docs/web/.gitignore b/Vagrant/resources/malcolm/docs/web/.gitignore new file mode 100644 index 0000000..70a59f6 --- /dev/null +++ b/Vagrant/resources/malcolm/docs/web/.gitignore @@ -0,0 +1,6 @@ +.doit.db.dat +.doit.db.dir +cache/ +output/ +pages/ +themes/ diff --git a/Vagrant/resources/malcolm/elasticsearch-backup/.gitignore b/Vagrant/resources/malcolm/elasticsearch-backup/.gitignore new file mode 100644 index 0000000..a5baada --- /dev/null +++ b/Vagrant/resources/malcolm/elasticsearch-backup/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore + diff --git a/Vagrant/resources/malcolm/elasticsearch/.gitignore b/Vagrant/resources/malcolm/elasticsearch/.gitignore new file mode 100644 index 0000000..a5baada --- /dev/null +++ b/Vagrant/resources/malcolm/elasticsearch/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore + diff --git a/Vagrant/resources/malcolm/file-monitor/capa-update.sh b/Vagrant/resources/malcolm/file-monitor/capa-update.sh new file mode 100644 index 0000000..d3b84b9 --- /dev/null +++ b/Vagrant/resources/malcolm/file-monitor/capa-update.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +ENCODING="utf-8" + +[[ "${EXTRACTED_FILE_UPDATE_RULES:-"false"}" == "true" ]] || exit 0 + +CAPA=${CAPA_BIN:-"/usr/local/bin/capa"} + +BASE_DIR="$(mktemp -d -t capa-XXXXXX)" + +function git_latest_release () { + if [ "$1" ]; then + (set -o pipefail && curl -sL -f "https://api.github.com/repos/$1/releases/latest" | jq '.tag_name' | sed -e 's/^"//' -e 's/"$//' ) || \ + (set -o pipefail && curl -sL -f "https://api.github.com/repos/$1/releases" | jq '.[0].tag_name' | sed -e 's/^"//' -e 's/"$//' ) || \ + echo unknown + else + echo "unknown">&2 + fi +} + +function finish { + rm -rf "$BASE_DIR" +} + +if type git >/dev/null 2>&1; then + trap finish EXIT + if [[ -f "$CAPA" ]]; then + CAPA_PREVIOUS_VERSION="$("$CAPA" --version 2>&1 | awk '{print $2}' | cut -d'-' -f1)" + else + CAPA_PREVIOUS_VERSION="none" + fi + CAPA_LATEST_VERSION="$(git_latest_release fireeye/capa)" + if [[ -n $CAPA_LATEST_VERSION ]] && [[ "$CAPA_PREVIOUS_VERSION" != "$CAPA_LATEST_VERSION" ]]; then + pushd "$BASE_DIR" >/dev/null 2>&1 + curl -fsSL -o ./capa.zip "https://github.com/fireeye/capa/releases/download/${CAPA_LATEST_VERSION}/capa-${CAPA_LATEST_VERSION}-linux.zip" + unzip ./capa.zip + chmod 755 ./capa + mkdir -p "$(dirname "$CAPA")" + rm -f "$CAPA".old 2>/dev/null || true + mv -f "$CAPA" "$CAPA".old 2>/dev/null || true + mv -f ./capa "$CAPA" + popd >/dev/null 2>&1 + fi +else + exit 1 +fi diff --git a/Vagrant/resources/malcolm/file-monitor/docker-entrypoint.sh b/Vagrant/resources/malcolm/file-monitor/docker-entrypoint.sh new file mode 100755 index 0000000..02434d8 --- /dev/null +++ b/Vagrant/resources/malcolm/file-monitor/docker-entrypoint.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +if [[ -z $EXTRACTED_FILE_ENABLE_CLAMAV ]]; then + EXTRACTED_FILE_ENABLE_CLAMAV=false +fi + +if [[ -z $EXTRACTED_FILE_ENABLE_YARA ]]; then + EXTRACTED_FILE_ENABLE_YARA=false +fi + +if [[ -z $EXTRACTED_FILE_ENABLE_CAPA ]]; then + EXTRACTED_FILE_ENABLE_CAPA=false +fi + +if [[ -z $EXTRACTED_FILE_ENABLE_MALASS ]]; then + [[ ${#MALASS_HOST} -gt 1 ]] && EXTRACTED_FILE_ENABLE_MALASS=true || EXTRACTED_FILE_ENABLE_MALASS=false +fi + +if [[ -z $EXTRACTED_FILE_ENABLE_VTOT ]]; then + [[ ${#VTOT_API2_KEY} -gt 1 ]] && EXTRACTED_FILE_ENABLE_VTOT=true || EXTRACTED_FILE_ENABLE_VTOT=false +fi + +export EXTRACTED_FILE_ENABLE_CLAMAV +export EXTRACTED_FILE_ENABLE_YARA +export EXTRACTED_FILE_ENABLE_CAPA +export EXTRACTED_FILE_ENABLE_MALASS +export EXTRACTED_FILE_ENABLE_VTOT + +exec "$@" diff --git a/Vagrant/resources/malcolm/file-monitor/supervisord.conf b/Vagrant/resources/malcolm/file-monitor/supervisord.conf new file mode 100644 index 0000000..bdae3b0 --- /dev/null +++ b/Vagrant/resources/malcolm/file-monitor/supervisord.conf @@ -0,0 +1,197 @@ +; Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +[unix_http_server] +file=/tmp/supervisor.sock ; (the path to the socket file) +chmod=0700 + +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisord.pid + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[program:watcher] +command=/usr/local/bin/zeek_carve_watcher.py + --verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG)s + --extra-verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG_EXTRA)s + --start-sleep %(ENV_EXTRACTED_FILE_WATCHER_START_SLEEP)s + --ignore-existing %(ENV_EXTRACTED_FILE_IGNORE_EXISTING)s + --min-bytes %(ENV_EXTRACTED_FILE_MIN_BYTES)s + --max-bytes %(ENV_EXTRACTED_FILE_MAX_BYTES)s + --directory "%(ENV_ZEEK_EXTRACTOR_PATH)s" +autostart=true +startsecs=%(ENV_EXTRACTED_FILE_WATCHER_START_SLEEP)s +startretries=0 +stopasgroup=true +killasgroup=true +directory=/data/zeek/extract_files +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[group:scanners] +programs=virustotal,clamav,yara,capa,malass + +[program:virustotal] +command=/usr/local/bin/vtot_scan.py + --verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG)s + --extra-verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG_EXTRA)s + --start-sleep %(ENV_EXTRACTED_FILE_SCANNER_START_SLEEP)s + --vtot-api %(ENV_VTOT_API2_KEY)s + --req-limit %(ENV_VTOT_REQUESTS_PER_MINUTE)s +autostart=%(ENV_EXTRACTED_FILE_ENABLE_VTOT)s +startsecs=%(ENV_EXTRACTED_FILE_WATCHER_START_SLEEP)s +startretries=0 +stopasgroup=true +killasgroup=true +directory=/data/zeek/extract_files +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:clamav] +command=/usr/local/bin/clam_scan.py + --verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG)s + --extra-verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG_EXTRA)s + --start-sleep %(ENV_EXTRACTED_FILE_SCANNER_START_SLEEP)s + --clamav %(ENV_EXTRACTED_FILE_ENABLE_CLAMAV)s + --clamav-socket "%(ENV_CLAMD_SOCKET_FILE)s" + --req-limit %(ENV_CLAMD_MAX_REQUESTS)s +autostart=%(ENV_EXTRACTED_FILE_ENABLE_CLAMAV)s +startsecs=%(ENV_EXTRACTED_FILE_WATCHER_START_SLEEP)s +startretries=0 +stopasgroup=true +killasgroup=true +directory=/data/zeek/extract_files +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:yara] +command=/usr/local/bin/yara_scan.py + --verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG)s + --extra-verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG_EXTRA)s + --start-sleep %(ENV_EXTRACTED_FILE_SCANNER_START_SLEEP)s + --yara %(ENV_EXTRACTED_FILE_ENABLE_YARA)s + --yara-custom-only %(ENV_EXTRACTED_FILE_YARA_CUSTOM_ONLY)s + --req-limit %(ENV_YARA_MAX_REQUESTS)s +autostart=%(ENV_EXTRACTED_FILE_ENABLE_YARA)s +startsecs=%(ENV_EXTRACTED_FILE_WATCHER_START_SLEEP)s +startretries=0 +stopasgroup=true +killasgroup=true +directory=/data/zeek/extract_files +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:capa] +command=/usr/local/bin/capa_scan.py + --verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG)s + --extra-verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG_EXTRA)s + --start-sleep %(ENV_EXTRACTED_FILE_SCANNER_START_SLEEP)s + --capa %(ENV_EXTRACTED_FILE_ENABLE_CAPA)s + --capa-verbose %(ENV_EXTRACTED_FILE_CAPA_VERBOSE)s + --req-limit %(ENV_CAPA_MAX_REQUESTS)s +autostart=%(ENV_EXTRACTED_FILE_ENABLE_CAPA)s +startsecs=%(ENV_EXTRACTED_FILE_WATCHER_START_SLEEP)s +startretries=0 +stopasgroup=true +killasgroup=true +directory=/data/zeek/extract_files +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:malass] +command=/usr/local/bin/malass_scan.py + --verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG)s + --extra-verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG_EXTRA)s + --start-sleep %(ENV_EXTRACTED_FILE_SCANNER_START_SLEEP)s + --malass-host "%(ENV_MALASS_HOST)s" + --malass-port %(ENV_MALASS_PORT)s + --req-limit %(ENV_MALASS_MAX_REQUESTS)s +autostart=%(ENV_EXTRACTED_FILE_ENABLE_MALASS)s +startsecs=%(ENV_EXTRACTED_FILE_WATCHER_START_SLEEP)s +startretries=0 +stopasgroup=true +killasgroup=true +directory=/data/zeek/extract_files +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:logger] +command=/usr/local/bin/zeek_carve_logger.py + --verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG)s + --extra-verbose %(ENV_EXTRACTED_FILE_PIPELINE_DEBUG_EXTRA)s + --start-sleep %(ENV_EXTRACTED_FILE_LOGGER_START_SLEEP)s + --preserve %(ENV_EXTRACTED_FILE_PRESERVATION)s + --directory "%(ENV_ZEEK_EXTRACTOR_PATH)s" + --zeek-log "%(ENV_ZEEK_LOG_DIRECTORY)s" +autostart=true +startsecs=%(ENV_EXTRACTED_FILE_WATCHER_START_SLEEP)s +startretries=0 +stopasgroup=true +killasgroup=true +directory=/data/zeek/extract_files +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:freshclam] +command=/usr/bin/freshclam freshclam --config-file=/etc/clamav/freshclam.conf --daemon +autostart=%(ENV_EXTRACTED_FILE_UPDATE_RULES)s +autorestart=true +startsecs=0 +startretries=0 +stopasgroup=true +killasgroup=true +directory=/ +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:clamd] +command=/usr/sbin/clamd -c /etc/clamav/clamd.conf +autostart=%(ENV_EXTRACTED_FILE_ENABLE_CLAMAV)s +autorestart=true +startsecs=0 +startretries=0 +stopasgroup=true +killasgroup=true +directory=/ +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:fileserve] +command=/usr/local/bin/zeek_carved_http_server.py + --port %(ENV_EXTRACTED_FILE_HTTP_SERVER_PORT)s + --encrypt %(ENV_EXTRACTED_FILE_HTTP_SERVER_ENCRYPT)s + --directory /data/zeek/extract_files +autostart=%(ENV_EXTRACTED_FILE_HTTP_SERVER_ENABLE)s +autorestart=true +startsecs=0 +startretries=0 +stopasgroup=true +killasgroup=true +directory=/data/zeek/extract_files +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:cron] +autorestart=true +command=/usr/local/bin/supercronic -json "%(ENV_SUPERCRONIC_CRONTAB)s" +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true diff --git a/Vagrant/resources/malcolm/file-monitor/yara-rules-update.sh b/Vagrant/resources/malcolm/file-monitor/yara-rules-update.sh new file mode 100644 index 0000000..c2352ce --- /dev/null +++ b/Vagrant/resources/malcolm/file-monitor/yara-rules-update.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +ENCODING="utf-8" + +[[ "${EXTRACTED_FILE_UPDATE_RULES:-"false"}" == "true" ]] || exit 0 + +SRC_DIR=${YARA_RULES_SRC_DIR:-"/usr/local/src/signature-base"} +LINK_DIR=${YARA_RULES_DIR:-"/yara-rules"} + +if type git >/dev/null 2>&1 && [[ -d "$SRC_DIR" ]] && [[ -d "$LINK_DIR" ]]; then + pushd "$SRC_DIR" >/dev/null 2>&1 + git remote update + git fetch --depth 1 origin + git reset --hard origin + popd >/dev/null 2>&1 + rm -f "$LINK_DIR"/*.yar + ln -v -f -s -r "$YARA_RULES_SRC_DIR"/yara/*.yar "$YARA_RULES_SRC_DIR"/vendor/yara/*.yar "$LINK_DIR"/ +else + exit 1 +fi diff --git a/Vagrant/resources/malcolm/file-upload/docker-entrypoint.sh b/Vagrant/resources/malcolm/file-upload/docker-entrypoint.sh new file mode 100755 index 0000000..f67dfb6 --- /dev/null +++ b/Vagrant/resources/malcolm/file-upload/docker-entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + + +if [[ -z $SITE_NAME || -z $MALCOLM_USERNAME || -z $MALCOLM_PASSWORD ]] +then + echo "Please set the site name, username and (openssl-encrypted) password by adding the following arguments to docker run/create:" + echo " -e SITE_NAME='...'" + echo " -e MALCOLM_USERNAME='...'" + echo " -e MALCOLM_PASSWORD='...'" + exit 1 +fi + +if ! getent passwd "$MALCOLM_USERNAME" >/dev/null +then + # Make sure every container gets its own SSH host keys the first time around + rm -f /etc/ssh/ssh_host_* + dpkg-reconfigure openssh-server + + useradd -g $PGROUP -d /var/www/upload/server/php/chroot -s /sbin/nologin "$MALCOLM_USERNAME" + usermod --password "$MALCOLM_PASSWORD" "$MALCOLM_USERNAME" + chown :$PGROUP /var/www/upload/server/php/chroot/files + chmod 775 /var/www/upload/server/php/chroot/files + + # This will break if $SITE_NAME contains a slash... + sed -i 's/%SITE_NAME%/'"$SITE_NAME"'/g' /var/www/upload/index.html + +else + echo "skipping one-time setup tasks" 1>&2 +fi + +exec "$@" diff --git a/Vagrant/resources/malcolm/file-upload/jquery-file-upload/bootstrap.min.css b/Vagrant/resources/malcolm/file-upload/jquery-file-upload/bootstrap.min.css new file mode 100644 index 0000000..523da07 --- /dev/null +++ b/Vagrant/resources/malcolm/file-upload/jquery-file-upload/bootstrap.min.css @@ -0,0 +1,12 @@ +/*! + * Bootswatch v4.4.1 + * Homepage: https://bootswatch.com + * Copyright 2012-2020 Thomas Park + * Licensed under MIT + * Based on Bootstrap +*//*! + * Bootstrap v4.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */:root{--blue: #007bff;--indigo: #6610f2;--purple: #6f42c1;--pink: #e83e8c;--red: #ee5f5b;--orange: #fd7e14;--yellow: #f89406;--green: #62c462;--teal: #20c997;--cyan: #5bc0de;--white: #fff;--gray: #7A8288;--gray-dark: #3A3F44;--primary: #3A3F44;--secondary: #7A8288;--success: #62c462;--info: #5bc0de;--warning: #f89406;--danger: #ee5f5b;--light: #e9ecef;--dark: #272B30;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-size:0.9375rem;font-weight:400;line-height:1.5;color:#aaa;text-align:left;background-color:#272B30}[tabindex="-1"]:focus:not(:focus-visible){outline:0 !important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#fff;text-decoration:none;background-color:transparent}a:hover{color:#d9d9d9;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:0.75rem;padding-bottom:0.75rem;color:#7A8288;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:0.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{padding:0;border-style:none}input[type="radio"],input[type="checkbox"]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{outline-offset:-2px;-webkit-appearance:none}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none !important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:0.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:2.34375rem}h2,.h2{font-size:1.875rem}h3,.h3{font-size:1.640625rem}h4,.h4{font-size:1.40625rem}h5,.h5{font-size:1.171875rem}h6,.h6{font-size:0.9375rem}.lead{font-size:1.171875rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}small,.small{font-size:80%;font-weight:400}mark,.mark{padding:0.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:0.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.171875rem}.blockquote-footer{display:block;font-size:80%;color:#7A8288}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:0.25rem;background-color:#272B30;border:1px solid #dee2e6;border-radius:0.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:0.5rem;line-height:1}.figure-caption{font-size:90%;color:#7A8288}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:0.2rem 0.4rem;font-size:87.5%;color:#fff;background-color:#272B30;border-radius:0.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:inherit}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 576px){.container{max-width:540px}}@media (min-width: 768px){.container{max-width:720px}}@media (min-width: 992px){.container{max-width:960px}}@media (min-width: 1200px){.container{max-width:1140px}}.container-fluid,.container-sm,.container-md,.container-lg,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 576px){.container,.container-sm{max-width:540px}}@media (min-width: 768px){.container,.container-sm,.container-md{max-width:720px}}@media (min-width: 992px){.container,.container-sm,.container-md,.container-lg{max-width:960px}}@media (min-width: 1200px){.container,.container-sm,.container-md,.container-lg,.container-xl{max-width:1140px}}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm,.col-sm-auto,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md,.col-md-auto,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg,.col-lg-auto,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-4>*{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-webkit-box-flex:0;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-webkit-box-flex:0;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{-webkit-box-flex:0;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{-webkit-box-flex:0;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{-webkit-box-flex:0;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width: 576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-sm-4>*{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-webkit-box-flex:0;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width: 768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-md-4>*{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-webkit-box-flex:0;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width: 992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-lg-4>*{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-webkit-box-flex:0;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width: 1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-xl-4>*{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-webkit-box-flex:0;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.3333333333%;flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.6666666667%;flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.3333333333%;flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.6666666667%;flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.3333333333%;flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.6666666667%;flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.3333333333%;flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.6666666667%;flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.table{width:100%;margin-bottom:1rem;color:#fff}.table th,.table td{padding:0.75rem;vertical-align:top;border-top:1px solid rgba(0,0,0,0.6)}.table thead th{vertical-align:bottom;border-bottom:2px solid rgba(0,0,0,0.6)}.table tbody+tbody{border-top:2px solid rgba(0,0,0,0.6)}.table-sm th,.table-sm td{padding:0.3rem}.table-bordered{border:1px solid rgba(0,0,0,0.6)}.table-bordered th,.table-bordered td{border:1px solid rgba(0,0,0,0.6)}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-borderless th,.table-borderless td,.table-borderless thead th,.table-borderless tbody+tbody{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,0.05)}.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,0.075)}.table-primary,.table-primary>th,.table-primary>td{background-color:#c8c9cb}.table-primary th,.table-primary td,.table-primary thead th,.table-primary tbody+tbody{border-color:#999b9e}.table-hover .table-primary:hover{background-color:#bbbcbf}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#bbbcbf}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#dadcde}.table-secondary th,.table-secondary td,.table-secondary thead th,.table-secondary tbody+tbody{border-color:#babec1}.table-hover .table-secondary:hover{background-color:#cdcfd2}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#cdcfd2}.table-success,.table-success>th,.table-success>td{background-color:#d3eed3}.table-success th,.table-success td,.table-success thead th,.table-success tbody+tbody{border-color:#ade0ad}.table-hover .table-success:hover{background-color:#c1e7c1}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#c1e7c1}.table-info,.table-info>th,.table-info>td{background-color:#d1edf6}.table-info th,.table-info td,.table-info thead th,.table-info tbody+tbody{border-color:#aadeee}.table-hover .table-info:hover{background-color:#bce5f2}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#bce5f2}.table-warning,.table-warning>th,.table-warning>td{background-color:#fde1b9}.table-warning th,.table-warning td,.table-warning thead th,.table-warning tbody+tbody{border-color:#fbc77e}.table-hover .table-warning:hover{background-color:#fcd6a0}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#fcd6a0}.table-danger,.table-danger>th,.table-danger>td{background-color:#fad2d1}.table-danger th,.table-danger td,.table-danger thead th,.table-danger tbody+tbody{border-color:#f6acaa}.table-hover .table-danger:hover{background-color:#f8bcba}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f8bcba}.table-light,.table-light>th,.table-light>td{background-color:#f9fafb}.table-light th,.table-light td,.table-light thead th,.table-light tbody+tbody{border-color:#f4f5f7}.table-hover .table-light:hover{background-color:#eaedf1}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#eaedf1}.table-dark,.table-dark>th,.table-dark>td{background-color:#c3c4c5}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:#8f9193}.table-hover .table-dark:hover{background-color:#b6b7b8}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b6b7b8}.table-active,.table-active>th,.table-active>td{background-color:rgba(255,255,255,0.075)}.table-hover .table-active:hover{background-color:rgba(242,242,242,0.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(242,242,242,0.075)}.table .thead-dark th{color:#fff;background-color:#3A3F44;border-color:rgba(0,0,0,0.6)}.table .thead-light th{color:#52575C;background-color:#e9ecef;border-color:rgba(0,0,0,0.6)}.table-dark{color:#fff;background-color:#3A3F44}.table-dark th,.table-dark td,.table-dark thead th{border-color:rgba(0,0,0,0.6)}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,0.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,0.075)}@media (max-width: 575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width: 767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width: 991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width: 1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + 1.5rem + 2px);padding:0.75rem 1rem;font-size:0.9375rem;font-weight:400;line-height:1.5;color:#52575C;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:0.25rem;-webkit-transition:border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{-webkit-transition:none;transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #52575C}.form-control:focus{color:#52575C;background-color:#fff;border-color:#757f89;outline:0;-webkit-box-shadow:0 0 0 0.2rem rgba(58,63,68,0.25);box-shadow:0 0 0 0.2rem rgba(58,63,68,0.25)}.form-control::-webkit-input-placeholder{color:#7A8288;opacity:1}.form-control::-ms-input-placeholder{color:#7A8288;opacity:1}.form-control::placeholder{color:#7A8288;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#ccc;opacity:1}select.form-control:focus::-ms-value{color:#52575C;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(0.75rem + 1px);padding-bottom:calc(0.75rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.171875rem;line-height:1.5}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.8203125rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:0.75rem 0;margin-bottom:0;font-size:0.9375rem;line-height:1.5;color:#aaa;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + 0.5rem + 2px);padding:0.25rem 0.5rem;font-size:0.8203125rem;line-height:1.5;border-radius:0.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:0.5rem 1rem;font-size:1.171875rem;line-height:1.5;border-radius:0.3rem}select.form-control[size],select.form-control[multiple]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:0.25rem}.form-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*="col-"]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:0.3rem;margin-left:-1.25rem}.form-check-input[disabled] ~ .form-check-label,.form-check-input:disabled ~ .form-check-label{color:#7A8288}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:0.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:0.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:0.25rem;font-size:80%;color:#62c462}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:0.25rem 0.5rem;margin-top:.1rem;font-size:0.8203125rem;line-height:1.5;color:#fff;background-color:rgba(98,196,98,0.9);border-radius:0.25rem}.was-validated :valid ~ .valid-feedback,.was-validated :valid ~ .valid-tooltip,.is-valid ~ .valid-feedback,.is-valid ~ .valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#62c462;padding-right:calc(1.5em + 1.5rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2362c462' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.375rem) center;background-size:calc(0.75em + 0.75rem) calc(0.75em + 0.75rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#62c462;-webkit-box-shadow:0 0 0 0.2rem rgba(98,196,98,0.25);box-shadow:0 0 0 0.2rem rgba(98,196,98,0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 1.5rem);background-position:top calc(0.375em + 0.375rem) right calc(0.375em + 0.375rem)}.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#62c462;padding-right:calc(0.75em + 3.125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%233A3F44' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2362c462' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 2rem/calc(0.75em + 0.75rem) calc(0.75em + 0.75rem)}.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#62c462;-webkit-box-shadow:0 0 0 0.2rem rgba(98,196,98,0.25);box-shadow:0 0 0 0.2rem rgba(98,196,98,0.25)}.was-validated .form-check-input:valid ~ .form-check-label,.form-check-input.is-valid ~ .form-check-label{color:#62c462}.was-validated .form-check-input:valid ~ .valid-feedback,.was-validated .form-check-input:valid ~ .valid-tooltip,.form-check-input.is-valid ~ .valid-feedback,.form-check-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid ~ .custom-control-label,.custom-control-input.is-valid ~ .custom-control-label{color:#62c462}.was-validated .custom-control-input:valid ~ .custom-control-label::before,.custom-control-input.is-valid ~ .custom-control-label::before{border-color:#62c462}.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before,.custom-control-input.is-valid:checked ~ .custom-control-label::before{border-color:#87d287;background-color:#87d287}.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before,.custom-control-input.is-valid:focus ~ .custom-control-label::before{-webkit-box-shadow:0 0 0 0.2rem rgba(98,196,98,0.25);box-shadow:0 0 0 0.2rem rgba(98,196,98,0.25)}.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before{border-color:#62c462}.was-validated .custom-file-input:valid ~ .custom-file-label,.custom-file-input.is-valid ~ .custom-file-label{border-color:#62c462}.was-validated .custom-file-input:valid:focus ~ .custom-file-label,.custom-file-input.is-valid:focus ~ .custom-file-label{border-color:#62c462;-webkit-box-shadow:0 0 0 0.2rem rgba(98,196,98,0.25);box-shadow:0 0 0 0.2rem rgba(98,196,98,0.25)}.invalid-feedback{display:none;width:100%;margin-top:0.25rem;font-size:80%;color:#ee5f5b}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:0.25rem 0.5rem;margin-top:.1rem;font-size:0.8203125rem;line-height:1.5;color:#fff;background-color:rgba(238,95,91,0.9);border-radius:0.25rem}.was-validated :invalid ~ .invalid-feedback,.was-validated :invalid ~ .invalid-tooltip,.is-invalid ~ .invalid-feedback,.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#ee5f5b;padding-right:calc(1.5em + 1.5rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23ee5f5b' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ee5f5b' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.375rem) center;background-size:calc(0.75em + 0.75rem) calc(0.75em + 0.75rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#ee5f5b;-webkit-box-shadow:0 0 0 0.2rem rgba(238,95,91,0.25);box-shadow:0 0 0 0.2rem rgba(238,95,91,0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 1.5rem);background-position:top calc(0.375em + 0.375rem) right calc(0.375em + 0.375rem)}.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#ee5f5b;padding-right:calc(0.75em + 3.125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%233A3F44' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23ee5f5b' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ee5f5b' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 2rem/calc(0.75em + 0.75rem) calc(0.75em + 0.75rem)}.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#ee5f5b;-webkit-box-shadow:0 0 0 0.2rem rgba(238,95,91,0.25);box-shadow:0 0 0 0.2rem rgba(238,95,91,0.25)}.was-validated .form-check-input:invalid ~ .form-check-label,.form-check-input.is-invalid ~ .form-check-label{color:#ee5f5b}.was-validated .form-check-input:invalid ~ .invalid-feedback,.was-validated .form-check-input:invalid ~ .invalid-tooltip,.form-check-input.is-invalid ~ .invalid-feedback,.form-check-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid ~ .custom-control-label,.custom-control-input.is-invalid ~ .custom-control-label{color:#ee5f5b}.was-validated .custom-control-input:invalid ~ .custom-control-label::before,.custom-control-input.is-invalid ~ .custom-control-label::before{border-color:#ee5f5b}.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before,.custom-control-input.is-invalid:checked ~ .custom-control-label::before{border-color:#f38c89;background-color:#f38c89}.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before,.custom-control-input.is-invalid:focus ~ .custom-control-label::before{-webkit-box-shadow:0 0 0 0.2rem rgba(238,95,91,0.25);box-shadow:0 0 0 0.2rem rgba(238,95,91,0.25)}.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before,.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before{border-color:#ee5f5b}.was-validated .custom-file-input:invalid ~ .custom-file-label,.custom-file-input.is-invalid ~ .custom-file-label{border-color:#ee5f5b}.was-validated .custom-file-input:invalid:focus ~ .custom-file-label,.custom-file-input.is-invalid:focus ~ .custom-file-label{border-color:#ee5f5b;-webkit-box-shadow:0 0 0 0.2rem rgba(238,95,91,0.25);box-shadow:0 0 0 0.2rem rgba(238,95,91,0.25)}.form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width: 576px){.form-inline label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group,.form-inline .custom-select{width:auto}.form-inline .form-check{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:0.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#aaa;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:0.75rem 1rem;font-size:0.9375rem;line-height:1.5;border-radius:0.25rem;-webkit-transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:#aaa;text-decoration:none}.btn:focus,.btn.focus{outline:0;-webkit-box-shadow:0 0 0 0.2rem rgba(58,63,68,0.25);box-shadow:0 0 0 0.2rem rgba(58,63,68,0.25)}.btn.disabled,.btn:disabled{opacity:0.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#3A3F44;border-color:#3A3F44}.btn-primary:hover{color:#fff;background-color:#282c2f;border-color:#232628}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#282c2f;border-color:#232628;-webkit-box-shadow:0 0 0 0.2rem rgba(88,92,96,0.5);box-shadow:0 0 0 0.2rem rgba(88,92,96,0.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#3A3F44;border-color:#3A3F44}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#232628;border-color:#1d1f22}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(88,92,96,0.5);box-shadow:0 0 0 0.2rem rgba(88,92,96,0.5)}.btn-secondary{color:#fff;background-color:#7A8288;border-color:#7A8288}.btn-secondary:hover{color:#fff;background-color:#686f74;border-color:#62686d}.btn-secondary:focus,.btn-secondary.focus{color:#fff;background-color:#686f74;border-color:#62686d;-webkit-box-shadow:0 0 0 0.2rem rgba(142,149,154,0.5);box-shadow:0 0 0 0.2rem rgba(142,149,154,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#7A8288;border-color:#7A8288}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#62686d;border-color:#5c6267}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(142,149,154,0.5);box-shadow:0 0 0 0.2rem rgba(142,149,154,0.5)}.btn-success{color:#fff;background-color:#62c462;border-color:#62c462}.btn-success:hover{color:#fff;background-color:#46ba46;border-color:#42b142}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#46ba46;border-color:#42b142;-webkit-box-shadow:0 0 0 0.2rem rgba(122,205,122,0.5);box-shadow:0 0 0 0.2rem rgba(122,205,122,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#62c462;border-color:#62c462}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#42b142;border-color:#3fa73f}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(122,205,122,0.5);box-shadow:0 0 0 0.2rem rgba(122,205,122,0.5)}.btn-info{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-info:hover{color:#fff;background-color:#3bb4d8;border-color:#31b0d5}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#3bb4d8;border-color:#31b0d5;-webkit-box-shadow:0 0 0 0.2rem rgba(116,201,227,0.5);box-shadow:0 0 0 0.2rem rgba(116,201,227,0.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#2aaacf}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(116,201,227,0.5);box-shadow:0 0 0 0.2rem rgba(116,201,227,0.5)}.btn-warning{color:#fff;background-color:#f89406;border-color:#f89406}.btn-warning:hover{color:#fff;background-color:#d37e05;border-color:#c67605}.btn-warning:focus,.btn-warning.focus{color:#fff;background-color:#d37e05;border-color:#c67605;-webkit-box-shadow:0 0 0 0.2rem rgba(249,164,43,0.5);box-shadow:0 0 0 0.2rem rgba(249,164,43,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;background-color:#f89406;border-color:#f89406}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#c67605;border-color:#ba6f04}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(249,164,43,0.5);box-shadow:0 0 0 0.2rem rgba(249,164,43,0.5)}.btn-danger{color:#fff;background-color:#ee5f5b;border-color:#ee5f5b}.btn-danger:hover{color:#fff;background-color:#ea3d38;border-color:#e9322d}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#ea3d38;border-color:#e9322d;-webkit-box-shadow:0 0 0 0.2rem rgba(241,119,116,0.5);box-shadow:0 0 0 0.2rem rgba(241,119,116,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#ee5f5b;border-color:#ee5f5b}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#e9322d;border-color:#e82721}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(241,119,116,0.5);box-shadow:0 0 0 0.2rem rgba(241,119,116,0.5)}.btn-light{color:#272B30;background-color:#e9ecef;border-color:#e9ecef}.btn-light:hover{color:#272B30;background-color:#d3d9df;border-color:#cbd3da}.btn-light:focus,.btn-light.focus{color:#272B30;background-color:#d3d9df;border-color:#cbd3da;-webkit-box-shadow:0 0 0 0.2rem rgba(204,207,210,0.5);box-shadow:0 0 0 0.2rem rgba(204,207,210,0.5)}.btn-light.disabled,.btn-light:disabled{color:#272B30;background-color:#e9ecef;border-color:#e9ecef}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#272B30;background-color:#cbd3da;border-color:#c4ccd4}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(204,207,210,0.5);box-shadow:0 0 0 0.2rem rgba(204,207,210,0.5)}.btn-dark{color:#fff;background-color:#272B30;border-color:#272B30}.btn-dark:hover{color:#fff;background-color:#16181b;border-color:#101214}.btn-dark:focus,.btn-dark.focus{color:#fff;background-color:#16181b;border-color:#101214;-webkit-box-shadow:0 0 0 0.2rem rgba(71,75,79,0.5);box-shadow:0 0 0 0.2rem rgba(71,75,79,0.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#272B30;border-color:#272B30}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#101214;border-color:#0a0b0d}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(71,75,79,0.5);box-shadow:0 0 0 0.2rem rgba(71,75,79,0.5)}.btn-outline-primary{color:#3A3F44;border-color:#3A3F44}.btn-outline-primary:hover{color:#fff;background-color:#3A3F44;border-color:#3A3F44}.btn-outline-primary:focus,.btn-outline-primary.focus{-webkit-box-shadow:0 0 0 0.2rem rgba(58,63,68,0.5);box-shadow:0 0 0 0.2rem rgba(58,63,68,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#3A3F44;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#3A3F44;border-color:#3A3F44}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(58,63,68,0.5);box-shadow:0 0 0 0.2rem rgba(58,63,68,0.5)}.btn-outline-secondary{color:#7A8288;border-color:#7A8288}.btn-outline-secondary:hover{color:#fff;background-color:#7A8288;border-color:#7A8288}.btn-outline-secondary:focus,.btn-outline-secondary.focus{-webkit-box-shadow:0 0 0 0.2rem rgba(122,130,136,0.5);box-shadow:0 0 0 0.2rem rgba(122,130,136,0.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#7A8288;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#7A8288;border-color:#7A8288}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(122,130,136,0.5);box-shadow:0 0 0 0.2rem rgba(122,130,136,0.5)}.btn-outline-success{color:#62c462;border-color:#62c462}.btn-outline-success:hover{color:#fff;background-color:#62c462;border-color:#62c462}.btn-outline-success:focus,.btn-outline-success.focus{-webkit-box-shadow:0 0 0 0.2rem rgba(98,196,98,0.5);box-shadow:0 0 0 0.2rem rgba(98,196,98,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#62c462;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#62c462;border-color:#62c462}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(98,196,98,0.5);box-shadow:0 0 0 0.2rem rgba(98,196,98,0.5)}.btn-outline-info{color:#5bc0de;border-color:#5bc0de}.btn-outline-info:hover{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-outline-info:focus,.btn-outline-info.focus{-webkit-box-shadow:0 0 0 0.2rem rgba(91,192,222,0.5);box-shadow:0 0 0 0.2rem rgba(91,192,222,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#5bc0de;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(91,192,222,0.5);box-shadow:0 0 0 0.2rem rgba(91,192,222,0.5)}.btn-outline-warning{color:#f89406;border-color:#f89406}.btn-outline-warning:hover{color:#fff;background-color:#f89406;border-color:#f89406}.btn-outline-warning:focus,.btn-outline-warning.focus{-webkit-box-shadow:0 0 0 0.2rem rgba(248,148,6,0.5);box-shadow:0 0 0 0.2rem rgba(248,148,6,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#f89406;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#f89406;border-color:#f89406}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(248,148,6,0.5);box-shadow:0 0 0 0.2rem rgba(248,148,6,0.5)}.btn-outline-danger{color:#ee5f5b;border-color:#ee5f5b}.btn-outline-danger:hover{color:#fff;background-color:#ee5f5b;border-color:#ee5f5b}.btn-outline-danger:focus,.btn-outline-danger.focus{-webkit-box-shadow:0 0 0 0.2rem rgba(238,95,91,0.5);box-shadow:0 0 0 0.2rem rgba(238,95,91,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#ee5f5b;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#ee5f5b;border-color:#ee5f5b}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(238,95,91,0.5);box-shadow:0 0 0 0.2rem rgba(238,95,91,0.5)}.btn-outline-light{color:#e9ecef;border-color:#e9ecef}.btn-outline-light:hover{color:#272B30;background-color:#e9ecef;border-color:#e9ecef}.btn-outline-light:focus,.btn-outline-light.focus{-webkit-box-shadow:0 0 0 0.2rem rgba(233,236,239,0.5);box-shadow:0 0 0 0.2rem rgba(233,236,239,0.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#e9ecef;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#272B30;background-color:#e9ecef;border-color:#e9ecef}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(233,236,239,0.5);box-shadow:0 0 0 0.2rem rgba(233,236,239,0.5)}.btn-outline-dark{color:#272B30;border-color:#272B30}.btn-outline-dark:hover{color:#fff;background-color:#272B30;border-color:#272B30}.btn-outline-dark:focus,.btn-outline-dark.focus{-webkit-box-shadow:0 0 0 0.2rem rgba(39,43,48,0.5);box-shadow:0 0 0 0.2rem rgba(39,43,48,0.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#272B30;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#272B30;border-color:#272B30}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{-webkit-box-shadow:0 0 0 0.2rem rgba(39,43,48,0.5);box-shadow:0 0 0 0.2rem rgba(39,43,48,0.5)}.btn-link{font-weight:400;color:#fff;text-decoration:none}.btn-link:hover{color:#d9d9d9;text-decoration:underline}.btn-link:focus,.btn-link.focus{text-decoration:underline;-webkit-box-shadow:none;box-shadow:none}.btn-link:disabled,.btn-link.disabled{color:#7A8288;pointer-events:none}.btn-lg,.btn-group-lg>.btn{padding:0.5rem 1rem;font-size:1.171875rem;line-height:1.5;border-radius:0.3rem}.btn-sm,.btn-group-sm>.btn{padding:0.25rem 0.5rem;font-size:0.8203125rem;line-height:1.5;border-radius:0.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:0.5rem}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{-webkit-transition:opacity 0.15s linear;transition:opacity 0.15s linear}@media (prefers-reduced-motion: reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;transition:height 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{-webkit-transition:none;transition:none}}.dropup,.dropright,.dropdown,.dropleft{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:0.255em;vertical-align:0.255em;content:"";border-top:0.3em solid;border-right:0.3em solid transparent;border-bottom:0;border-left:0.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:0.5rem 0;margin:0.125rem 0 0;font-size:0.9375rem;color:#aaa;text-align:left;list-style:none;background-color:#3A3F44;background-clip:padding-box;border:1px solid rgba(0,0,0,0.6);border-radius:0.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:0.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:0.255em;vertical-align:0.255em;content:"";border-top:0;border-right:0.3em solid transparent;border-bottom:0.3em solid;border-left:0.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:0.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:0.255em;vertical-align:0.255em;content:"";border-top:0.3em solid transparent;border-right:0;border-bottom:0.3em solid transparent;border-left:0.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:0.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:0.255em;vertical-align:0.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:0.255em;vertical-align:0.255em;content:"";border-top:0.3em solid transparent;border-right:0.3em solid;border-bottom:0.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^="top"],.dropdown-menu[x-placement^="right"],.dropdown-menu[x-placement^="bottom"],.dropdown-menu[x-placement^="left"]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:0.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,0.15)}.dropdown-item{display:block;width:100%;padding:0.25rem 1.5rem;clear:both;font-weight:400;color:#aaa;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#fff;text-decoration:none;background-color:#272B30}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#3A3F44}.dropdown-item.disabled,.dropdown-item:disabled{color:#7A8288;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:0.5rem 1.5rem;margin-bottom:0;font-size:0.8203125rem;color:#7A8288;white-space:nowrap}.dropdown-item-text{display:block;padding:0.25rem 1.5rem;color:#aaa}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:0.75rem;padding-left:0.75rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:0.375rem;padding-left:0.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:0.75rem;padding-left:0.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type="radio"],.btn-group-toggle>.btn input[type="checkbox"],.btn-group-toggle>.btn-group>.btn input[type="radio"],.btn-group-toggle>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-control-plaintext,.input-group>.custom-select,.input-group>.custom-file{position:relative;-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.form-control-plaintext+.form-control,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file .custom-file-input:focus ~ .custom-file-label{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.form-control:not(:last-child),.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-prepend,.input-group-append{display:-webkit-box;display:-ms-flexbox;display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn:focus,.input-group-append .btn:focus{z-index:3}.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0.75rem 1rem;margin-bottom:0;font-size:0.9375rem;font-weight:400;line-height:1.5;color:#52575C;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:0.25rem}.input-group-text input[type="radio"],.input-group-text input[type="checkbox"]{margin-top:0}.input-group-lg>.form-control:not(textarea),.input-group-lg>.custom-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-control,.input-group-lg>.custom-select,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:0.5rem 1rem;font-size:1.171875rem;line-height:1.5;border-radius:0.3rem}.input-group-sm>.form-control:not(textarea),.input-group-sm>.custom-select{height:calc(1.5em + 0.5rem + 2px)}.input-group-sm>.form-control,.input-group-sm>.custom-select,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:0.25rem 0.5rem;font-size:0.8203125rem;line-height:1.5;border-radius:0.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:2rem}.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text,.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.40625rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.203125rem;opacity:0}.custom-control-input:checked ~ .custom-control-label::before{color:#fff;border-color:#3A3F44;background-color:#3A3F44}.custom-control-input:focus ~ .custom-control-label::before{-webkit-box-shadow:0 0 0 0.2rem rgba(58,63,68,0.25);box-shadow:0 0 0 0.2rem rgba(58,63,68,0.25)}.custom-control-input:focus:not(:checked) ~ .custom-control-label::before{border-color:#757f89}.custom-control-input:not(:disabled):active ~ .custom-control-label::before{color:#fff;background-color:#9098a0;border-color:#9098a0}.custom-control-input[disabled] ~ .custom-control-label,.custom-control-input:disabled ~ .custom-control-label{color:#7A8288}.custom-control-input[disabled] ~ .custom-control-label::before,.custom-control-input:disabled ~ .custom-control-label::before{background-color:#ccc}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:0.203125rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#999 solid 1px}.custom-control-label::after{position:absolute;top:0.203125rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50% / 50% 50%}.custom-checkbox .custom-control-label::before{border-radius:0.25rem}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before{border-color:#3A3F44;background-color:#3A3F44}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(58,63,68,0.5)}.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before{background-color:rgba(58,63,68,0.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked ~ .custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(58,63,68,0.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:0.5rem}.custom-switch .custom-control-label::after{top:calc(0.203125rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#999;border-radius:0.5rem;-webkit-transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-switch .custom-control-label::after{-webkit-transition:none;transition:none}}.custom-switch .custom-control-input:checked ~ .custom-control-label::after{background-color:#fff;-webkit-transform:translateX(0.75rem);transform:translateX(0.75rem)}.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(58,63,68,0.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + 1.5rem + 2px);padding:0.75rem 2rem 0.75rem 1rem;font-size:0.9375rem;font-weight:400;line-height:1.5;color:#52575C;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%233A3F44' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1rem center/8px 10px;border:1px solid #ced4da;border-radius:0.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#757f89;outline:0;-webkit-box-shadow:0 0 0 0.2rem rgba(58,63,68,0.25);box-shadow:0 0 0 0.2rem rgba(58,63,68,0.25)}.custom-select:focus::-ms-value{color:#52575C;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:1rem;background-image:none}.custom-select:disabled{color:#7A8288;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #52575C}.custom-select-sm{height:calc(1.5em + 0.5rem + 2px);padding-top:0.25rem;padding-bottom:0.25rem;padding-left:0.5rem;font-size:0.8203125rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:0.5rem;padding-bottom:0.5rem;padding-left:1rem;font-size:1.171875rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + 1.5rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + 1.5rem + 2px);margin:0;opacity:0}.custom-file-input:focus ~ .custom-file-label{border-color:#757f89;-webkit-box-shadow:0 0 0 0.2rem rgba(58,63,68,0.25);box-shadow:0 0 0 0.2rem rgba(58,63,68,0.25)}.custom-file-input[disabled] ~ .custom-file-label,.custom-file-input:disabled ~ .custom-file-label{background-color:#ccc}.custom-file-input:lang(en) ~ .custom-file-label::after{content:"Browse"}.custom-file-input ~ .custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + 1.5rem + 2px);padding:0.75rem 1rem;font-weight:400;line-height:1.5;color:#52575C;background-color:#fff;border:1px solid #ced4da;border-radius:0.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + 1.5rem);padding:0.75rem 1rem;line-height:1.5;color:#52575C;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 0.25rem 0.25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 1px #272B30,0 0 0 0.2rem rgba(58,63,68,0.25);box-shadow:0 0 0 1px #272B30,0 0 0 0.2rem rgba(58,63,68,0.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #272B30,0 0 0 0.2rem rgba(58,63,68,0.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #272B30,0 0 0 0.2rem rgba(58,63,68,0.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;background-color:#3A3F44;border:0;border-radius:1rem;-webkit-transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#9098a0}.custom-range::-webkit-slider-runnable-track{width:100%;height:0.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#3A3F44;border:0;border-radius:1rem;-webkit-transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-moz-range-thumb{-webkit-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#9098a0}.custom-range::-moz-range-track{width:100%;height:0.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:0.2rem;margin-left:0.2rem;background-color:#3A3F44;border:0;border-radius:1rem;-webkit-transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;appearance:none}@media (prefers-reduced-motion: reduce){.custom-range::-ms-thumb{-webkit-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#9098a0}.custom-range::-ms-track{width:100%;height:0.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:0.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#999}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#999}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#999}.custom-control-label::before,.custom-file-label,.custom-select{-webkit-transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.custom-control-label::before,.custom-file-label,.custom-select{-webkit-transition:none;transition:none}}.nav{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:0.5rem 1rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#7A8288;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid rgba(0,0,0,0.6)}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:0.25rem;border-top-right-radius:0.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:rgba(0,0,0,0.6)}.nav-tabs .nav-link.disabled{color:#7A8288;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#fff;background-color:#272B30;border-color:rgba(0,0,0,0.6)}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:0.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#3A3F44}.nav-fill .nav-item{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-sm,.navbar .container-md,.navbar .container-lg,.navbar .container-xl{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:0.32421875rem;padding-bottom:0.32421875rem;margin-right:1rem;font-size:1.171875rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:0.5rem;padding-bottom:0.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:0.25rem 0.75rem;font-size:1.171875rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:0.25rem}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width: 575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 576px){.navbar-expand-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:0.5rem;padding-left:0.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width: 767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 768px){.navbar-expand-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:0.5rem;padding-left:0.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-md,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width: 991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 992px){.navbar-expand-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:0.5rem;padding-left:0.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width: 1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width: 1200px){.navbar-expand-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:0.5rem;padding-left:0.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:0.5rem;padding-left:0.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-sm,.navbar-expand>.container-md,.navbar-expand>.container-lg,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:#3A3F44}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#3A3F44}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,0.5)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:#3A3F44}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:#3A3F44}.navbar-light .navbar-toggler{color:rgba(0,0,0,0.5);border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,0.5)}.navbar-light .navbar-text a{color:#3A3F44}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#3A3F44}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:#fff}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.5);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#32383e;background-clip:border-box;border:1px solid rgba(0,0,0,0.6);border-radius:0.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:0.25rem;border-top-right-radius:0.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:0.25rem;border-bottom-left-radius:0.25rem}.card-body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:0.75rem}.card-subtitle{margin-top:-0.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:0.75rem 1.25rem;margin-bottom:0;background-color:#515960;border-bottom:1px solid rgba(0,0,0,0.6)}.card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:0.75rem 1.25rem;background-color:#515960;border-top:1px solid rgba(0,0,0,0.6)}.card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.card-header-tabs{margin-right:-0.625rem;margin-bottom:-0.75rem;margin-left:-0.625rem;border-bottom:0}.card-header-pills{margin-right:-0.625rem;margin-left:-0.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-top,.card-img-bottom{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width: 576px){.card-deck{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width: 576px){.card-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:0.75rem}@media (min-width: 576px){.card-columns{-webkit-column-count:3;column-count:3;-webkit-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:0.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:0.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:0.5rem;color:#7A8288;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#999}.pagination{display:-webkit-box;display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:0.25rem}.page-link{position:relative;display:block;padding:0.5rem 0.75rem;margin-left:-1px;line-height:1.25;color:#fff;background-color:transparent;border:1px solid rgba(0,0,0,0.6)}.page-link:hover{z-index:2;color:#fff;text-decoration:none;background-color:transparent;border-color:rgba(0,0,0,0.6)}.page-link:focus{z-index:3;outline:0;-webkit-box-shadow:0 0 0 0.2rem rgba(58,63,68,0.25);box-shadow:0 0 0 0.2rem rgba(58,63,68,0.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:0.25rem;border-bottom-left-radius:0.25rem}.page-item:last-child .page-link{border-top-right-radius:0.25rem;border-bottom-right-radius:0.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:transparent;border-color:rgba(0,0,0,0.6)}.page-item.disabled .page-link{color:#7A8288;pointer-events:none;cursor:auto;background-color:transparent;border-color:rgba(0,0,0,0.6)}.pagination-lg .page-link{padding:0.75rem 1.5rem;font-size:1.171875rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:0.3rem;border-bottom-left-radius:0.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:0.3rem;border-bottom-right-radius:0.3rem}.pagination-sm .page-link{padding:0.25rem 0.5rem;font-size:0.8203125rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:0.2rem;border-bottom-left-radius:0.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:0.2rem;border-bottom-right-radius:0.2rem}.badge{display:inline-block;padding:0.25em 0.4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:0.25rem;-webkit-transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.badge{-webkit-transition:none;transition:none}}a.badge:hover,a.badge:focus{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:0.6em;padding-left:0.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#3A3F44}a.badge-primary:hover,a.badge-primary:focus{color:#fff;background-color:#232628}a.badge-primary:focus,a.badge-primary.focus{outline:0;-webkit-box-shadow:0 0 0 0.2rem rgba(58,63,68,0.5);box-shadow:0 0 0 0.2rem rgba(58,63,68,0.5)}.badge-secondary{color:#fff;background-color:#7A8288}a.badge-secondary:hover,a.badge-secondary:focus{color:#fff;background-color:#62686d}a.badge-secondary:focus,a.badge-secondary.focus{outline:0;-webkit-box-shadow:0 0 0 0.2rem rgba(122,130,136,0.5);box-shadow:0 0 0 0.2rem rgba(122,130,136,0.5)}.badge-success{color:#fff;background-color:#62c462}a.badge-success:hover,a.badge-success:focus{color:#fff;background-color:#42b142}a.badge-success:focus,a.badge-success.focus{outline:0;-webkit-box-shadow:0 0 0 0.2rem rgba(98,196,98,0.5);box-shadow:0 0 0 0.2rem rgba(98,196,98,0.5)}.badge-info{color:#fff;background-color:#5bc0de}a.badge-info:hover,a.badge-info:focus{color:#fff;background-color:#31b0d5}a.badge-info:focus,a.badge-info.focus{outline:0;-webkit-box-shadow:0 0 0 0.2rem rgba(91,192,222,0.5);box-shadow:0 0 0 0.2rem rgba(91,192,222,0.5)}.badge-warning{color:#fff;background-color:#f89406}a.badge-warning:hover,a.badge-warning:focus{color:#fff;background-color:#c67605}a.badge-warning:focus,a.badge-warning.focus{outline:0;-webkit-box-shadow:0 0 0 0.2rem rgba(248,148,6,0.5);box-shadow:0 0 0 0.2rem rgba(248,148,6,0.5)}.badge-danger{color:#fff;background-color:#ee5f5b}a.badge-danger:hover,a.badge-danger:focus{color:#fff;background-color:#e9322d}a.badge-danger:focus,a.badge-danger.focus{outline:0;-webkit-box-shadow:0 0 0 0.2rem rgba(238,95,91,0.5);box-shadow:0 0 0 0.2rem rgba(238,95,91,0.5)}.badge-light{color:#272B30;background-color:#e9ecef}a.badge-light:hover,a.badge-light:focus{color:#272B30;background-color:#cbd3da}a.badge-light:focus,a.badge-light.focus{outline:0;-webkit-box-shadow:0 0 0 0.2rem rgba(233,236,239,0.5);box-shadow:0 0 0 0.2rem rgba(233,236,239,0.5)}.badge-dark{color:#fff;background-color:#272B30}a.badge-dark:hover,a.badge-dark:focus{color:#fff;background-color:#101214}a.badge-dark:focus,a.badge-dark.focus{outline:0;-webkit-box-shadow:0 0 0 0.2rem rgba(39,43,48,0.5);box-shadow:0 0 0 0.2rem rgba(39,43,48,0.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#1c1e22;border-radius:0.3rem}@media (min-width: 576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:0.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:0.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3.90625rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:0.75rem 1.25rem;color:inherit}.alert-primary{color:#1e2123;background-color:#d8d9da;border-color:#c8c9cb}.alert-primary hr{border-top-color:#bbbcbf}.alert-primary .alert-link{color:#060708}.alert-secondary{color:#3f4447;background-color:#e4e6e7;border-color:#dadcde}.alert-secondary hr{border-top-color:#cdcfd2}.alert-secondary .alert-link{color:#272a2c}.alert-success{color:#336633;background-color:#e0f3e0;border-color:#d3eed3}.alert-success hr{border-top-color:#c1e7c1}.alert-success .alert-link{color:#224422}.alert-info{color:#2f6473;background-color:#def2f8;border-color:#d1edf6}.alert-info hr{border-top-color:#bce5f2}.alert-info .alert-link{color:#20454f}.alert-warning{color:#814d03;background-color:#feeacd;border-color:#fde1b9}.alert-warning hr{border-top-color:#fcd6a0}.alert-warning .alert-link{color:#4f2f02}.alert-danger{color:#7c312f;background-color:#fcdfde;border-color:#fad2d1}.alert-danger hr{border-top-color:#f8bcba}.alert-danger .alert-link{color:#572221}.alert-light{color:#797b7c;background-color:#fbfbfc;border-color:#f9fafb}.alert-light hr{border-top-color:#eaedf1}.alert-light .alert-link{color:#606162}.alert-dark{color:#141619;background-color:#d4d5d6;border-color:#c3c4c5}.alert-dark hr{border-top-color:#b6b7b8}.alert-dark .alert-link{color:black}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-webkit-box;display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:0.703125rem;background-color:#1c1e22;border-radius:0.25rem}.progress-bar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#7A8288;text-align:center;white-space:nowrap;background-color:#3A3F44;-webkit-transition:width 0.6s ease;transition:width 0.6s ease}@media (prefers-reduced-motion: reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion: reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;-ms-flex:1;flex:1}.list-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#fff;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#fff;text-decoration:none;background-color:#3e444c}.list-group-item-action:active{color:#aaa;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:0.75rem 1.25rem;background-color:#32383e;border:1px solid rgba(0,0,0,0.6)}.list-group-item:first-child{border-top-left-radius:0.25rem;border-top-right-radius:0.25rem}.list-group-item:last-child{border-bottom-right-radius:0.25rem;border-bottom-left-radius:0.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#52575C;pointer-events:none;background-color:#32383e}.list-group-item.active{z-index:2;color:#fff;background-color:#3e444c;border-color:rgba(0,0,0,0.6)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:0.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:0.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width: 576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:0.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:0.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:0.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:0.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:0.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:0.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width: 1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:0.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:0.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#1e2123;background-color:#c8c9cb}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#1e2123;background-color:#bbbcbf}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#1e2123;border-color:#1e2123}.list-group-item-secondary{color:#3f4447;background-color:#dadcde}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#3f4447;background-color:#cdcfd2}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#3f4447;border-color:#3f4447}.list-group-item-success{color:#336633;background-color:#d3eed3}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#336633;background-color:#c1e7c1}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#336633;border-color:#336633}.list-group-item-info{color:#2f6473;background-color:#d1edf6}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#2f6473;background-color:#bce5f2}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#2f6473;border-color:#2f6473}.list-group-item-warning{color:#814d03;background-color:#fde1b9}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#814d03;background-color:#fcd6a0}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#814d03;border-color:#814d03}.list-group-item-danger{color:#7c312f;background-color:#fad2d1}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#7c312f;background-color:#f8bcba}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#7c312f;border-color:#7c312f}.list-group-item-light{color:#797b7c;background-color:#f9fafb}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#797b7c;background-color:#eaedf1}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#797b7c;border-color:#797b7c}.list-group-item-dark{color:#141619;background-color:#c3c4c5}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#141619;background-color:#b6b7b8}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.close{float:right;font-size:1.40625rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):hover,.close:not(:disabled):not(.disabled):focus{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:0.875rem;background-color:#32383e;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 0.25rem 0.75rem rgba(0,0,0,0.1);box-shadow:0 0.25rem 0.75rem rgba(0,0,0,0.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:0.25rem}.toast:not(:last-child){margin-bottom:0.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0.25rem 0.75rem;color:#aaa;background-color:#32383e;background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,0.2)}.toast-body{padding:0.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:0.5rem;pointer-events:none}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform 0.3s ease-out;transition:-webkit-transform 0.3s ease-out;transition:transform 0.3s ease-out;transition:transform 0.3s ease-out, -webkit-transform 0.3s ease-out;-webkit-transform:translate(0, -50px);transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-webkit-box;display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-header,.modal-dialog-scrollable .modal-footer{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#32383e;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:0.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:0.5}.modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid rgba(0,0,0,0.2);border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:0.75rem;border-top:1px solid rgba(0,0,0,0.2);border-bottom-right-radius:calc(0.3rem - 1px);border-bottom-left-radius:calc(0.3rem - 1px)}.modal-footer>*{margin:0.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width: 1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.8203125rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:0.9}.tooltip .arrow{position:absolute;display:block;width:0.8rem;height:0.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^="top"]{padding:0.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^="top"] .arrow::before{top:0;border-width:0.4rem 0.4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^="right"]{padding:0 0.4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^="right"] .arrow{left:0;width:0.4rem;height:0.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^="right"] .arrow::before{right:0;border-width:0.4rem 0.4rem 0.4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^="bottom"]{padding:0.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{bottom:0;border-width:0 0.4rem 0.4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^="left"]{padding:0 0.4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^="left"] .arrow{right:0;width:0.4rem;height:0.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^="left"] .arrow::before{left:0;border-width:0.4rem 0 0.4rem 0.4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:0.25rem 0.5rem;color:#fff;text-align:center;background-color:#000;border-radius:0.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.8203125rem;word-wrap:break-word;background-color:#32383e;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:0.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:0.5rem;margin:0 0.3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^="top"]{margin-bottom:0.5rem}.bs-popover-top>.arrow,.bs-popover-auto[x-placement^="top"]>.arrow{bottom:calc(-0.5rem - 1px)}.bs-popover-top>.arrow::before,.bs-popover-auto[x-placement^="top"]>.arrow::before{bottom:0;border-width:0.5rem 0.5rem 0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top>.arrow::after,.bs-popover-auto[x-placement^="top"]>.arrow::after{bottom:1px;border-width:0.5rem 0.5rem 0;border-top-color:#32383e}.bs-popover-right,.bs-popover-auto[x-placement^="right"]{margin-left:0.5rem}.bs-popover-right>.arrow,.bs-popover-auto[x-placement^="right"]>.arrow{left:calc(-0.5rem - 1px);width:0.5rem;height:1rem;margin:0.3rem 0}.bs-popover-right>.arrow::before,.bs-popover-auto[x-placement^="right"]>.arrow::before{left:0;border-width:0.5rem 0.5rem 0.5rem 0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right>.arrow::after,.bs-popover-auto[x-placement^="right"]>.arrow::after{left:1px;border-width:0.5rem 0.5rem 0.5rem 0;border-right-color:#32383e}.bs-popover-bottom,.bs-popover-auto[x-placement^="bottom"]{margin-top:0.5rem}.bs-popover-bottom>.arrow,.bs-popover-auto[x-placement^="bottom"]>.arrow{top:calc(-0.5rem - 1px)}.bs-popover-bottom>.arrow::before,.bs-popover-auto[x-placement^="bottom"]>.arrow::before{top:0;border-width:0 0.5rem 0.5rem 0.5rem;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom>.arrow::after,.bs-popover-auto[x-placement^="bottom"]>.arrow::after{top:1px;border-width:0 0.5rem 0.5rem 0.5rem;border-bottom-color:#32383e}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #2c3036}.bs-popover-left,.bs-popover-auto[x-placement^="left"]{margin-right:0.5rem}.bs-popover-left>.arrow,.bs-popover-auto[x-placement^="left"]>.arrow{right:calc(-0.5rem - 1px);width:0.5rem;height:1rem;margin:0.3rem 0}.bs-popover-left>.arrow::before,.bs-popover-auto[x-placement^="left"]>.arrow::before{right:0;border-width:0.5rem 0 0.5rem 0.5rem;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left>.arrow::after,.bs-popover-auto[x-placement^="left"]>.arrow::after{right:1px;border-width:0.5rem 0 0.5rem 0.5rem;border-left-color:#32383e}.popover-header{padding:0.5rem 0.75rem;margin-bottom:0;font-size:0.9375rem;background-color:#2c3036;border-bottom:1px solid #202328;border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:0.5rem 0.75rem;color:#aaa}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:-webkit-transform 0.6s ease-in-out;transition:-webkit-transform 0.6s ease-in-out;transition:transform 0.6s ease-in-out;transition:transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{-webkit-transform:translateX(100%);transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;-webkit-transition:opacity 0s 0.6s;transition:opacity 0s 0.6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{-webkit-transition:none;transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:0.5;-webkit-transition:opacity 0.15s ease;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{-webkit-transition:none;transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:0.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50% / 100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity 0.6s ease;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:0.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:0.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.bg-primary{background-color:#3A3F44 !important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#232628 !important}.bg-secondary{background-color:#7A8288 !important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#62686d !important}.bg-success{background-color:#62c462 !important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#42b142 !important}.bg-info{background-color:#5bc0de !important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#31b0d5 !important}.bg-warning{background-color:#f89406 !important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#c67605 !important}.bg-danger{background-color:#ee5f5b !important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#e9322d !important}.bg-light{background-color:#e9ecef !important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#cbd3da !important}.bg-dark{background-color:#272B30 !important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#101214 !important}.bg-white{background-color:#fff !important}.bg-transparent{background-color:transparent !important}.border{border:1px solid #dee2e6 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-right{border-right:1px solid #dee2e6 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-left{border-left:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.border-primary{border-color:#3A3F44 !important}.border-secondary{border-color:#7A8288 !important}.border-success{border-color:#62c462 !important}.border-info{border-color:#5bc0de !important}.border-warning{border-color:#f89406 !important}.border-danger{border-color:#ee5f5b !important}.border-light{border-color:#e9ecef !important}.border-dark{border-color:#272B30 !important}.border-white{border-color:#fff !important}.rounded-sm{border-radius:0.2rem !important}.rounded{border-radius:0.25rem !important}.rounded-top{border-top-left-radius:0.25rem !important;border-top-right-radius:0.25rem !important}.rounded-right{border-top-right-radius:0.25rem !important;border-bottom-right-radius:0.25rem !important}.rounded-bottom{border-bottom-right-radius:0.25rem !important;border-bottom-left-radius:0.25rem !important}.rounded-left{border-top-left-radius:0.25rem !important;border-bottom-left-radius:0.25rem !important}.rounded-lg{border-radius:0.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-0{border-radius:0 !important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}.d-inline-flex{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important}@media (min-width: 576px){.d-sm-none{display:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}.d-sm-inline-flex{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important}}@media (min-width: 768px){.d-md-none{display:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}.d-md-inline-flex{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important}}@media (min-width: 992px){.d-lg-none{display:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}.d-lg-inline-flex{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important}}@media (min-width: 1200px){.d-xl-none{display:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}.d-xl-inline-flex{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important}}@media print{.d-print-none{display:none !important}.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}.d-print-inline-flex{display:-webkit-inline-box !important;display:-ms-inline-flexbox !important;display:inline-flex !important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.8571428571%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-ms-flex-direction:row !important;flex-direction:row !important}.flex-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-ms-flex-direction:column !important;flex-direction:column !important}.flex-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-ms-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-column-reverse{-webkit-box-orient:vertical !important;-webkit-box-direction:reverse !important;-ms-flex-direction:column-reverse !important;flex-direction:column-reverse !important}.flex-wrap{-ms-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-nowrap{-ms-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse !important;flex-wrap:wrap-reverse !important}.flex-fill{-webkit-box-flex:1 !important;-ms-flex:1 1 auto !important;flex:1 1 auto !important}.flex-grow-0{-webkit-box-flex:0 !important;-ms-flex-positive:0 !important;flex-grow:0 !important}.flex-grow-1{-webkit-box-flex:1 !important;-ms-flex-positive:1 !important;flex-grow:1 !important}.flex-shrink-0{-ms-flex-negative:0 !important;flex-shrink:0 !important}.flex-shrink-1{-ms-flex-negative:1 !important;flex-shrink:1 !important}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.justify-content-between{-webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important}.justify-content-around{-ms-flex-pack:distribute !important;justify-content:space-around !important}.align-items-start{-webkit-box-align:start !important;-ms-flex-align:start !important;align-items:flex-start !important}.align-items-end{-webkit-box-align:end !important;-ms-flex-align:end !important;align-items:flex-end !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.align-items-baseline{-webkit-box-align:baseline !important;-ms-flex-align:baseline !important;align-items:baseline !important}.align-items-stretch{-webkit-box-align:stretch !important;-ms-flex-align:stretch !important;align-items:stretch !important}.align-content-start{-ms-flex-line-pack:start !important;align-content:flex-start !important}.align-content-end{-ms-flex-line-pack:end !important;align-content:flex-end !important}.align-content-center{-ms-flex-line-pack:center !important;align-content:center !important}.align-content-between{-ms-flex-line-pack:justify !important;align-content:space-between !important}.align-content-around{-ms-flex-line-pack:distribute !important;align-content:space-around !important}.align-content-stretch{-ms-flex-line-pack:stretch !important;align-content:stretch !important}.align-self-auto{-ms-flex-item-align:auto !important;align-self:auto !important}.align-self-start{-ms-flex-item-align:start !important;align-self:flex-start !important}.align-self-end{-ms-flex-item-align:end !important;align-self:flex-end !important}.align-self-center{-ms-flex-item-align:center !important;align-self:center !important}.align-self-baseline{-ms-flex-item-align:baseline !important;align-self:baseline !important}.align-self-stretch{-ms-flex-item-align:stretch !important;align-self:stretch !important}@media (min-width: 576px){.flex-sm-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-ms-flex-direction:row !important;flex-direction:row !important}.flex-sm-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-ms-flex-direction:column !important;flex-direction:column !important}.flex-sm-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-ms-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-sm-column-reverse{-webkit-box-orient:vertical !important;-webkit-box-direction:reverse !important;-ms-flex-direction:column-reverse !important;flex-direction:column-reverse !important}.flex-sm-wrap{-ms-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-sm-nowrap{-ms-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse !important;flex-wrap:wrap-reverse !important}.flex-sm-fill{-webkit-box-flex:1 !important;-ms-flex:1 1 auto !important;flex:1 1 auto !important}.flex-sm-grow-0{-webkit-box-flex:0 !important;-ms-flex-positive:0 !important;flex-grow:0 !important}.flex-sm-grow-1{-webkit-box-flex:1 !important;-ms-flex-positive:1 !important;flex-grow:1 !important}.flex-sm-shrink-0{-ms-flex-negative:0 !important;flex-shrink:0 !important}.flex-sm-shrink-1{-ms-flex-negative:1 !important;flex-shrink:1 !important}.justify-content-sm-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-sm-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-sm-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.justify-content-sm-between{-webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important}.justify-content-sm-around{-ms-flex-pack:distribute !important;justify-content:space-around !important}.align-items-sm-start{-webkit-box-align:start !important;-ms-flex-align:start !important;align-items:flex-start !important}.align-items-sm-end{-webkit-box-align:end !important;-ms-flex-align:end !important;align-items:flex-end !important}.align-items-sm-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.align-items-sm-baseline{-webkit-box-align:baseline !important;-ms-flex-align:baseline !important;align-items:baseline !important}.align-items-sm-stretch{-webkit-box-align:stretch !important;-ms-flex-align:stretch !important;align-items:stretch !important}.align-content-sm-start{-ms-flex-line-pack:start !important;align-content:flex-start !important}.align-content-sm-end{-ms-flex-line-pack:end !important;align-content:flex-end !important}.align-content-sm-center{-ms-flex-line-pack:center !important;align-content:center !important}.align-content-sm-between{-ms-flex-line-pack:justify !important;align-content:space-between !important}.align-content-sm-around{-ms-flex-line-pack:distribute !important;align-content:space-around !important}.align-content-sm-stretch{-ms-flex-line-pack:stretch !important;align-content:stretch !important}.align-self-sm-auto{-ms-flex-item-align:auto !important;align-self:auto !important}.align-self-sm-start{-ms-flex-item-align:start !important;align-self:flex-start !important}.align-self-sm-end{-ms-flex-item-align:end !important;align-self:flex-end !important}.align-self-sm-center{-ms-flex-item-align:center !important;align-self:center !important}.align-self-sm-baseline{-ms-flex-item-align:baseline !important;align-self:baseline !important}.align-self-sm-stretch{-ms-flex-item-align:stretch !important;align-self:stretch !important}}@media (min-width: 768px){.flex-md-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-ms-flex-direction:row !important;flex-direction:row !important}.flex-md-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-ms-flex-direction:column !important;flex-direction:column !important}.flex-md-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-ms-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-md-column-reverse{-webkit-box-orient:vertical !important;-webkit-box-direction:reverse !important;-ms-flex-direction:column-reverse !important;flex-direction:column-reverse !important}.flex-md-wrap{-ms-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-md-nowrap{-ms-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse !important;flex-wrap:wrap-reverse !important}.flex-md-fill{-webkit-box-flex:1 !important;-ms-flex:1 1 auto !important;flex:1 1 auto !important}.flex-md-grow-0{-webkit-box-flex:0 !important;-ms-flex-positive:0 !important;flex-grow:0 !important}.flex-md-grow-1{-webkit-box-flex:1 !important;-ms-flex-positive:1 !important;flex-grow:1 !important}.flex-md-shrink-0{-ms-flex-negative:0 !important;flex-shrink:0 !important}.flex-md-shrink-1{-ms-flex-negative:1 !important;flex-shrink:1 !important}.justify-content-md-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-md-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-md-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.justify-content-md-between{-webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important}.justify-content-md-around{-ms-flex-pack:distribute !important;justify-content:space-around !important}.align-items-md-start{-webkit-box-align:start !important;-ms-flex-align:start !important;align-items:flex-start !important}.align-items-md-end{-webkit-box-align:end !important;-ms-flex-align:end !important;align-items:flex-end !important}.align-items-md-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.align-items-md-baseline{-webkit-box-align:baseline !important;-ms-flex-align:baseline !important;align-items:baseline !important}.align-items-md-stretch{-webkit-box-align:stretch !important;-ms-flex-align:stretch !important;align-items:stretch !important}.align-content-md-start{-ms-flex-line-pack:start !important;align-content:flex-start !important}.align-content-md-end{-ms-flex-line-pack:end !important;align-content:flex-end !important}.align-content-md-center{-ms-flex-line-pack:center !important;align-content:center !important}.align-content-md-between{-ms-flex-line-pack:justify !important;align-content:space-between !important}.align-content-md-around{-ms-flex-line-pack:distribute !important;align-content:space-around !important}.align-content-md-stretch{-ms-flex-line-pack:stretch !important;align-content:stretch !important}.align-self-md-auto{-ms-flex-item-align:auto !important;align-self:auto !important}.align-self-md-start{-ms-flex-item-align:start !important;align-self:flex-start !important}.align-self-md-end{-ms-flex-item-align:end !important;align-self:flex-end !important}.align-self-md-center{-ms-flex-item-align:center !important;align-self:center !important}.align-self-md-baseline{-ms-flex-item-align:baseline !important;align-self:baseline !important}.align-self-md-stretch{-ms-flex-item-align:stretch !important;align-self:stretch !important}}@media (min-width: 992px){.flex-lg-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-ms-flex-direction:row !important;flex-direction:row !important}.flex-lg-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-ms-flex-direction:column !important;flex-direction:column !important}.flex-lg-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-ms-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-lg-column-reverse{-webkit-box-orient:vertical !important;-webkit-box-direction:reverse !important;-ms-flex-direction:column-reverse !important;flex-direction:column-reverse !important}.flex-lg-wrap{-ms-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-lg-nowrap{-ms-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse !important;flex-wrap:wrap-reverse !important}.flex-lg-fill{-webkit-box-flex:1 !important;-ms-flex:1 1 auto !important;flex:1 1 auto !important}.flex-lg-grow-0{-webkit-box-flex:0 !important;-ms-flex-positive:0 !important;flex-grow:0 !important}.flex-lg-grow-1{-webkit-box-flex:1 !important;-ms-flex-positive:1 !important;flex-grow:1 !important}.flex-lg-shrink-0{-ms-flex-negative:0 !important;flex-shrink:0 !important}.flex-lg-shrink-1{-ms-flex-negative:1 !important;flex-shrink:1 !important}.justify-content-lg-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-lg-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-lg-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.justify-content-lg-between{-webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important}.justify-content-lg-around{-ms-flex-pack:distribute !important;justify-content:space-around !important}.align-items-lg-start{-webkit-box-align:start !important;-ms-flex-align:start !important;align-items:flex-start !important}.align-items-lg-end{-webkit-box-align:end !important;-ms-flex-align:end !important;align-items:flex-end !important}.align-items-lg-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.align-items-lg-baseline{-webkit-box-align:baseline !important;-ms-flex-align:baseline !important;align-items:baseline !important}.align-items-lg-stretch{-webkit-box-align:stretch !important;-ms-flex-align:stretch !important;align-items:stretch !important}.align-content-lg-start{-ms-flex-line-pack:start !important;align-content:flex-start !important}.align-content-lg-end{-ms-flex-line-pack:end !important;align-content:flex-end !important}.align-content-lg-center{-ms-flex-line-pack:center !important;align-content:center !important}.align-content-lg-between{-ms-flex-line-pack:justify !important;align-content:space-between !important}.align-content-lg-around{-ms-flex-line-pack:distribute !important;align-content:space-around !important}.align-content-lg-stretch{-ms-flex-line-pack:stretch !important;align-content:stretch !important}.align-self-lg-auto{-ms-flex-item-align:auto !important;align-self:auto !important}.align-self-lg-start{-ms-flex-item-align:start !important;align-self:flex-start !important}.align-self-lg-end{-ms-flex-item-align:end !important;align-self:flex-end !important}.align-self-lg-center{-ms-flex-item-align:center !important;align-self:center !important}.align-self-lg-baseline{-ms-flex-item-align:baseline !important;align-self:baseline !important}.align-self-lg-stretch{-ms-flex-item-align:stretch !important;align-self:stretch !important}}@media (min-width: 1200px){.flex-xl-row{-webkit-box-orient:horizontal !important;-webkit-box-direction:normal !important;-ms-flex-direction:row !important;flex-direction:row !important}.flex-xl-column{-webkit-box-orient:vertical !important;-webkit-box-direction:normal !important;-ms-flex-direction:column !important;flex-direction:column !important}.flex-xl-row-reverse{-webkit-box-orient:horizontal !important;-webkit-box-direction:reverse !important;-ms-flex-direction:row-reverse !important;flex-direction:row-reverse !important}.flex-xl-column-reverse{-webkit-box-orient:vertical !important;-webkit-box-direction:reverse !important;-ms-flex-direction:column-reverse !important;flex-direction:column-reverse !important}.flex-xl-wrap{-ms-flex-wrap:wrap !important;flex-wrap:wrap !important}.flex-xl-nowrap{-ms-flex-wrap:nowrap !important;flex-wrap:nowrap !important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse !important;flex-wrap:wrap-reverse !important}.flex-xl-fill{-webkit-box-flex:1 !important;-ms-flex:1 1 auto !important;flex:1 1 auto !important}.flex-xl-grow-0{-webkit-box-flex:0 !important;-ms-flex-positive:0 !important;flex-grow:0 !important}.flex-xl-grow-1{-webkit-box-flex:1 !important;-ms-flex-positive:1 !important;flex-grow:1 !important}.flex-xl-shrink-0{-ms-flex-negative:0 !important;flex-shrink:0 !important}.flex-xl-shrink-1{-ms-flex-negative:1 !important;flex-shrink:1 !important}.justify-content-xl-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-xl-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-xl-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.justify-content-xl-between{-webkit-box-pack:justify !important;-ms-flex-pack:justify !important;justify-content:space-between !important}.justify-content-xl-around{-ms-flex-pack:distribute !important;justify-content:space-around !important}.align-items-xl-start{-webkit-box-align:start !important;-ms-flex-align:start !important;align-items:flex-start !important}.align-items-xl-end{-webkit-box-align:end !important;-ms-flex-align:end !important;align-items:flex-end !important}.align-items-xl-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.align-items-xl-baseline{-webkit-box-align:baseline !important;-ms-flex-align:baseline !important;align-items:baseline !important}.align-items-xl-stretch{-webkit-box-align:stretch !important;-ms-flex-align:stretch !important;align-items:stretch !important}.align-content-xl-start{-ms-flex-line-pack:start !important;align-content:flex-start !important}.align-content-xl-end{-ms-flex-line-pack:end !important;align-content:flex-end !important}.align-content-xl-center{-ms-flex-line-pack:center !important;align-content:center !important}.align-content-xl-between{-ms-flex-line-pack:justify !important;align-content:space-between !important}.align-content-xl-around{-ms-flex-line-pack:distribute !important;align-content:space-around !important}.align-content-xl-stretch{-ms-flex-line-pack:stretch !important;align-content:stretch !important}.align-self-xl-auto{-ms-flex-item-align:auto !important;align-self:auto !important}.align-self-xl-start{-ms-flex-item-align:start !important;align-self:flex-start !important}.align-self-xl-end{-ms-flex-item-align:end !important;align-self:flex-end !important}.align-self-xl-center{-ms-flex-item-align:center !important;align-self:center !important}.align-self-xl-baseline{-ms-flex-item-align:baseline !important;align-self:baseline !important}.align-self-xl-stretch{-ms-flex-item-align:stretch !important;align-self:stretch !important}}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width: 576px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 992px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 1200px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:-webkit-sticky !important;position:sticky !important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position: -webkit-sticky) or (position: sticky){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.075) !important;box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.075) !important}.shadow{-webkit-box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important;box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}.shadow-lg{-webkit-box-shadow:0 1rem 3rem rgba(0,0,0,0.175) !important;box-shadow:0 1rem 3rem rgba(0,0,0,0.175) !important}.shadow-none{-webkit-box-shadow:none !important;box-shadow:none !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mw-100{max-width:100% !important}.mh-100{max-height:100% !important}.min-vw-100{min-width:100vw !important}.min-vh-100{min-height:100vh !important}.vw-100{width:100vw !important}.vh-100{height:100vh !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:0.25rem !important}.mt-1,.my-1{margin-top:0.25rem !important}.mr-1,.mx-1{margin-right:0.25rem !important}.mb-1,.my-1{margin-bottom:0.25rem !important}.ml-1,.mx-1{margin-left:0.25rem !important}.m-2{margin:0.5rem !important}.mt-2,.my-2{margin-top:0.5rem !important}.mr-2,.mx-2{margin-right:0.5rem !important}.mb-2,.my-2{margin-bottom:0.5rem !important}.ml-2,.mx-2{margin-left:0.5rem !important}.m-3{margin:1rem !important}.mt-3,.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:0.25rem !important}.pt-1,.py-1{padding-top:0.25rem !important}.pr-1,.px-1{padding-right:0.25rem !important}.pb-1,.py-1{padding-bottom:0.25rem !important}.pl-1,.px-1{padding-left:0.25rem !important}.p-2{padding:0.5rem !important}.pt-2,.py-2{padding-top:0.5rem !important}.pr-2,.px-2{padding-right:0.5rem !important}.pb-2,.py-2{padding-bottom:0.5rem !important}.pl-2,.px-2{padding-left:0.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.m-n1{margin:-0.25rem !important}.mt-n1,.my-n1{margin-top:-0.25rem !important}.mr-n1,.mx-n1{margin-right:-0.25rem !important}.mb-n1,.my-n1{margin-bottom:-0.25rem !important}.ml-n1,.mx-n1{margin-left:-0.25rem !important}.m-n2{margin:-0.5rem !important}.mt-n2,.my-n2{margin-top:-0.5rem !important}.mr-n2,.mx-n2{margin-right:-0.5rem !important}.mb-n2,.my-n2{margin-bottom:-0.5rem !important}.ml-n2,.mx-n2{margin-left:-0.5rem !important}.m-n3{margin:-1rem !important}.mt-n3,.my-n3{margin-top:-1rem !important}.mr-n3,.mx-n3{margin-right:-1rem !important}.mb-n3,.my-n3{margin-bottom:-1rem !important}.ml-n3,.mx-n3{margin-left:-1rem !important}.m-n4{margin:-1.5rem !important}.mt-n4,.my-n4{margin-top:-1.5rem !important}.mr-n4,.mx-n4{margin-right:-1.5rem !important}.mb-n4,.my-n4{margin-bottom:-1.5rem !important}.ml-n4,.mx-n4{margin-left:-1.5rem !important}.m-n5{margin:-3rem !important}.mt-n5,.my-n5{margin-top:-3rem !important}.mr-n5,.mx-n5{margin-right:-3rem !important}.mb-n5,.my-n5{margin-bottom:-3rem !important}.ml-n5,.mx-n5{margin-left:-3rem !important}.m-auto{margin:auto !important}.mt-auto,.my-auto{margin-top:auto !important}.mr-auto,.mx-auto{margin-right:auto !important}.mb-auto,.my-auto{margin-bottom:auto !important}.ml-auto,.mx-auto{margin-left:auto !important}@media (min-width: 576px){.m-sm-0{margin:0 !important}.mt-sm-0,.my-sm-0{margin-top:0 !important}.mr-sm-0,.mx-sm-0{margin-right:0 !important}.mb-sm-0,.my-sm-0{margin-bottom:0 !important}.ml-sm-0,.mx-sm-0{margin-left:0 !important}.m-sm-1{margin:0.25rem !important}.mt-sm-1,.my-sm-1{margin-top:0.25rem !important}.mr-sm-1,.mx-sm-1{margin-right:0.25rem !important}.mb-sm-1,.my-sm-1{margin-bottom:0.25rem !important}.ml-sm-1,.mx-sm-1{margin-left:0.25rem !important}.m-sm-2{margin:0.5rem !important}.mt-sm-2,.my-sm-2{margin-top:0.5rem !important}.mr-sm-2,.mx-sm-2{margin-right:0.5rem !important}.mb-sm-2,.my-sm-2{margin-bottom:0.5rem !important}.ml-sm-2,.mx-sm-2{margin-left:0.5rem !important}.m-sm-3{margin:1rem !important}.mt-sm-3,.my-sm-3{margin-top:1rem !important}.mr-sm-3,.mx-sm-3{margin-right:1rem !important}.mb-sm-3,.my-sm-3{margin-bottom:1rem !important}.ml-sm-3,.mx-sm-3{margin-left:1rem !important}.m-sm-4{margin:1.5rem !important}.mt-sm-4,.my-sm-4{margin-top:1.5rem !important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem !important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem !important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem !important}.m-sm-5{margin:3rem !important}.mt-sm-5,.my-sm-5{margin-top:3rem !important}.mr-sm-5,.mx-sm-5{margin-right:3rem !important}.mb-sm-5,.my-sm-5{margin-bottom:3rem !important}.ml-sm-5,.mx-sm-5{margin-left:3rem !important}.p-sm-0{padding:0 !important}.pt-sm-0,.py-sm-0{padding-top:0 !important}.pr-sm-0,.px-sm-0{padding-right:0 !important}.pb-sm-0,.py-sm-0{padding-bottom:0 !important}.pl-sm-0,.px-sm-0{padding-left:0 !important}.p-sm-1{padding:0.25rem !important}.pt-sm-1,.py-sm-1{padding-top:0.25rem !important}.pr-sm-1,.px-sm-1{padding-right:0.25rem !important}.pb-sm-1,.py-sm-1{padding-bottom:0.25rem !important}.pl-sm-1,.px-sm-1{padding-left:0.25rem !important}.p-sm-2{padding:0.5rem !important}.pt-sm-2,.py-sm-2{padding-top:0.5rem !important}.pr-sm-2,.px-sm-2{padding-right:0.5rem !important}.pb-sm-2,.py-sm-2{padding-bottom:0.5rem !important}.pl-sm-2,.px-sm-2{padding-left:0.5rem !important}.p-sm-3{padding:1rem !important}.pt-sm-3,.py-sm-3{padding-top:1rem !important}.pr-sm-3,.px-sm-3{padding-right:1rem !important}.pb-sm-3,.py-sm-3{padding-bottom:1rem !important}.pl-sm-3,.px-sm-3{padding-left:1rem !important}.p-sm-4{padding:1.5rem !important}.pt-sm-4,.py-sm-4{padding-top:1.5rem !important}.pr-sm-4,.px-sm-4{padding-right:1.5rem !important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem !important}.pl-sm-4,.px-sm-4{padding-left:1.5rem !important}.p-sm-5{padding:3rem !important}.pt-sm-5,.py-sm-5{padding-top:3rem !important}.pr-sm-5,.px-sm-5{padding-right:3rem !important}.pb-sm-5,.py-sm-5{padding-bottom:3rem !important}.pl-sm-5,.px-sm-5{padding-left:3rem !important}.m-sm-n1{margin:-0.25rem !important}.mt-sm-n1,.my-sm-n1{margin-top:-0.25rem !important}.mr-sm-n1,.mx-sm-n1{margin-right:-0.25rem !important}.mb-sm-n1,.my-sm-n1{margin-bottom:-0.25rem !important}.ml-sm-n1,.mx-sm-n1{margin-left:-0.25rem !important}.m-sm-n2{margin:-0.5rem !important}.mt-sm-n2,.my-sm-n2{margin-top:-0.5rem !important}.mr-sm-n2,.mx-sm-n2{margin-right:-0.5rem !important}.mb-sm-n2,.my-sm-n2{margin-bottom:-0.5rem !important}.ml-sm-n2,.mx-sm-n2{margin-left:-0.5rem !important}.m-sm-n3{margin:-1rem !important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem !important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem !important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem !important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem !important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem !important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem !important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem !important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem !important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem !important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem !important}.m-sm-auto{margin:auto !important}.mt-sm-auto,.my-sm-auto{margin-top:auto !important}.mr-sm-auto,.mx-sm-auto{margin-right:auto !important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto !important}.ml-sm-auto,.mx-sm-auto{margin-left:auto !important}}@media (min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0,.my-md-0{margin-top:0 !important}.mr-md-0,.mx-md-0{margin-right:0 !important}.mb-md-0,.my-md-0{margin-bottom:0 !important}.ml-md-0,.mx-md-0{margin-left:0 !important}.m-md-1{margin:0.25rem !important}.mt-md-1,.my-md-1{margin-top:0.25rem !important}.mr-md-1,.mx-md-1{margin-right:0.25rem !important}.mb-md-1,.my-md-1{margin-bottom:0.25rem !important}.ml-md-1,.mx-md-1{margin-left:0.25rem !important}.m-md-2{margin:0.5rem !important}.mt-md-2,.my-md-2{margin-top:0.5rem !important}.mr-md-2,.mx-md-2{margin-right:0.5rem !important}.mb-md-2,.my-md-2{margin-bottom:0.5rem !important}.ml-md-2,.mx-md-2{margin-left:0.5rem !important}.m-md-3{margin:1rem !important}.mt-md-3,.my-md-3{margin-top:1rem !important}.mr-md-3,.mx-md-3{margin-right:1rem !important}.mb-md-3,.my-md-3{margin-bottom:1rem !important}.ml-md-3,.mx-md-3{margin-left:1rem !important}.m-md-4{margin:1.5rem !important}.mt-md-4,.my-md-4{margin-top:1.5rem !important}.mr-md-4,.mx-md-4{margin-right:1.5rem !important}.mb-md-4,.my-md-4{margin-bottom:1.5rem !important}.ml-md-4,.mx-md-4{margin-left:1.5rem !important}.m-md-5{margin:3rem !important}.mt-md-5,.my-md-5{margin-top:3rem !important}.mr-md-5,.mx-md-5{margin-right:3rem !important}.mb-md-5,.my-md-5{margin-bottom:3rem !important}.ml-md-5,.mx-md-5{margin-left:3rem !important}.p-md-0{padding:0 !important}.pt-md-0,.py-md-0{padding-top:0 !important}.pr-md-0,.px-md-0{padding-right:0 !important}.pb-md-0,.py-md-0{padding-bottom:0 !important}.pl-md-0,.px-md-0{padding-left:0 !important}.p-md-1{padding:0.25rem !important}.pt-md-1,.py-md-1{padding-top:0.25rem !important}.pr-md-1,.px-md-1{padding-right:0.25rem !important}.pb-md-1,.py-md-1{padding-bottom:0.25rem !important}.pl-md-1,.px-md-1{padding-left:0.25rem !important}.p-md-2{padding:0.5rem !important}.pt-md-2,.py-md-2{padding-top:0.5rem !important}.pr-md-2,.px-md-2{padding-right:0.5rem !important}.pb-md-2,.py-md-2{padding-bottom:0.5rem !important}.pl-md-2,.px-md-2{padding-left:0.5rem !important}.p-md-3{padding:1rem !important}.pt-md-3,.py-md-3{padding-top:1rem !important}.pr-md-3,.px-md-3{padding-right:1rem !important}.pb-md-3,.py-md-3{padding-bottom:1rem !important}.pl-md-3,.px-md-3{padding-left:1rem !important}.p-md-4{padding:1.5rem !important}.pt-md-4,.py-md-4{padding-top:1.5rem !important}.pr-md-4,.px-md-4{padding-right:1.5rem !important}.pb-md-4,.py-md-4{padding-bottom:1.5rem !important}.pl-md-4,.px-md-4{padding-left:1.5rem !important}.p-md-5{padding:3rem !important}.pt-md-5,.py-md-5{padding-top:3rem !important}.pr-md-5,.px-md-5{padding-right:3rem !important}.pb-md-5,.py-md-5{padding-bottom:3rem !important}.pl-md-5,.px-md-5{padding-left:3rem !important}.m-md-n1{margin:-0.25rem !important}.mt-md-n1,.my-md-n1{margin-top:-0.25rem !important}.mr-md-n1,.mx-md-n1{margin-right:-0.25rem !important}.mb-md-n1,.my-md-n1{margin-bottom:-0.25rem !important}.ml-md-n1,.mx-md-n1{margin-left:-0.25rem !important}.m-md-n2{margin:-0.5rem !important}.mt-md-n2,.my-md-n2{margin-top:-0.5rem !important}.mr-md-n2,.mx-md-n2{margin-right:-0.5rem !important}.mb-md-n2,.my-md-n2{margin-bottom:-0.5rem !important}.ml-md-n2,.mx-md-n2{margin-left:-0.5rem !important}.m-md-n3{margin:-1rem !important}.mt-md-n3,.my-md-n3{margin-top:-1rem !important}.mr-md-n3,.mx-md-n3{margin-right:-1rem !important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem !important}.ml-md-n3,.mx-md-n3{margin-left:-1rem !important}.m-md-n4{margin:-1.5rem !important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem !important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem !important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem !important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mt-md-n5,.my-md-n5{margin-top:-3rem !important}.mr-md-n5,.mx-md-n5{margin-right:-3rem !important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem !important}.ml-md-n5,.mx-md-n5{margin-left:-3rem !important}.m-md-auto{margin:auto !important}.mt-md-auto,.my-md-auto{margin-top:auto !important}.mr-md-auto,.mx-md-auto{margin-right:auto !important}.mb-md-auto,.my-md-auto{margin-bottom:auto !important}.ml-md-auto,.mx-md-auto{margin-left:auto !important}}@media (min-width: 992px){.m-lg-0{margin:0 !important}.mt-lg-0,.my-lg-0{margin-top:0 !important}.mr-lg-0,.mx-lg-0{margin-right:0 !important}.mb-lg-0,.my-lg-0{margin-bottom:0 !important}.ml-lg-0,.mx-lg-0{margin-left:0 !important}.m-lg-1{margin:0.25rem !important}.mt-lg-1,.my-lg-1{margin-top:0.25rem !important}.mr-lg-1,.mx-lg-1{margin-right:0.25rem !important}.mb-lg-1,.my-lg-1{margin-bottom:0.25rem !important}.ml-lg-1,.mx-lg-1{margin-left:0.25rem !important}.m-lg-2{margin:0.5rem !important}.mt-lg-2,.my-lg-2{margin-top:0.5rem !important}.mr-lg-2,.mx-lg-2{margin-right:0.5rem !important}.mb-lg-2,.my-lg-2{margin-bottom:0.5rem !important}.ml-lg-2,.mx-lg-2{margin-left:0.5rem !important}.m-lg-3{margin:1rem !important}.mt-lg-3,.my-lg-3{margin-top:1rem !important}.mr-lg-3,.mx-lg-3{margin-right:1rem !important}.mb-lg-3,.my-lg-3{margin-bottom:1rem !important}.ml-lg-3,.mx-lg-3{margin-left:1rem !important}.m-lg-4{margin:1.5rem !important}.mt-lg-4,.my-lg-4{margin-top:1.5rem !important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem !important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem !important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem !important}.m-lg-5{margin:3rem !important}.mt-lg-5,.my-lg-5{margin-top:3rem !important}.mr-lg-5,.mx-lg-5{margin-right:3rem !important}.mb-lg-5,.my-lg-5{margin-bottom:3rem !important}.ml-lg-5,.mx-lg-5{margin-left:3rem !important}.p-lg-0{padding:0 !important}.pt-lg-0,.py-lg-0{padding-top:0 !important}.pr-lg-0,.px-lg-0{padding-right:0 !important}.pb-lg-0,.py-lg-0{padding-bottom:0 !important}.pl-lg-0,.px-lg-0{padding-left:0 !important}.p-lg-1{padding:0.25rem !important}.pt-lg-1,.py-lg-1{padding-top:0.25rem !important}.pr-lg-1,.px-lg-1{padding-right:0.25rem !important}.pb-lg-1,.py-lg-1{padding-bottom:0.25rem !important}.pl-lg-1,.px-lg-1{padding-left:0.25rem !important}.p-lg-2{padding:0.5rem !important}.pt-lg-2,.py-lg-2{padding-top:0.5rem !important}.pr-lg-2,.px-lg-2{padding-right:0.5rem !important}.pb-lg-2,.py-lg-2{padding-bottom:0.5rem !important}.pl-lg-2,.px-lg-2{padding-left:0.5rem !important}.p-lg-3{padding:1rem !important}.pt-lg-3,.py-lg-3{padding-top:1rem !important}.pr-lg-3,.px-lg-3{padding-right:1rem !important}.pb-lg-3,.py-lg-3{padding-bottom:1rem !important}.pl-lg-3,.px-lg-3{padding-left:1rem !important}.p-lg-4{padding:1.5rem !important}.pt-lg-4,.py-lg-4{padding-top:1.5rem !important}.pr-lg-4,.px-lg-4{padding-right:1.5rem !important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem !important}.pl-lg-4,.px-lg-4{padding-left:1.5rem !important}.p-lg-5{padding:3rem !important}.pt-lg-5,.py-lg-5{padding-top:3rem !important}.pr-lg-5,.px-lg-5{padding-right:3rem !important}.pb-lg-5,.py-lg-5{padding-bottom:3rem !important}.pl-lg-5,.px-lg-5{padding-left:3rem !important}.m-lg-n1{margin:-0.25rem !important}.mt-lg-n1,.my-lg-n1{margin-top:-0.25rem !important}.mr-lg-n1,.mx-lg-n1{margin-right:-0.25rem !important}.mb-lg-n1,.my-lg-n1{margin-bottom:-0.25rem !important}.ml-lg-n1,.mx-lg-n1{margin-left:-0.25rem !important}.m-lg-n2{margin:-0.5rem !important}.mt-lg-n2,.my-lg-n2{margin-top:-0.5rem !important}.mr-lg-n2,.mx-lg-n2{margin-right:-0.5rem !important}.mb-lg-n2,.my-lg-n2{margin-bottom:-0.5rem !important}.ml-lg-n2,.mx-lg-n2{margin-left:-0.5rem !important}.m-lg-n3{margin:-1rem !important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem !important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem !important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem !important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem !important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem !important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem !important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem !important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem !important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem !important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem !important}.m-lg-auto{margin:auto !important}.mt-lg-auto,.my-lg-auto{margin-top:auto !important}.mr-lg-auto,.mx-lg-auto{margin-right:auto !important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto !important}.ml-lg-auto,.mx-lg-auto{margin-left:auto !important}}@media (min-width: 1200px){.m-xl-0{margin:0 !important}.mt-xl-0,.my-xl-0{margin-top:0 !important}.mr-xl-0,.mx-xl-0{margin-right:0 !important}.mb-xl-0,.my-xl-0{margin-bottom:0 !important}.ml-xl-0,.mx-xl-0{margin-left:0 !important}.m-xl-1{margin:0.25rem !important}.mt-xl-1,.my-xl-1{margin-top:0.25rem !important}.mr-xl-1,.mx-xl-1{margin-right:0.25rem !important}.mb-xl-1,.my-xl-1{margin-bottom:0.25rem !important}.ml-xl-1,.mx-xl-1{margin-left:0.25rem !important}.m-xl-2{margin:0.5rem !important}.mt-xl-2,.my-xl-2{margin-top:0.5rem !important}.mr-xl-2,.mx-xl-2{margin-right:0.5rem !important}.mb-xl-2,.my-xl-2{margin-bottom:0.5rem !important}.ml-xl-2,.mx-xl-2{margin-left:0.5rem !important}.m-xl-3{margin:1rem !important}.mt-xl-3,.my-xl-3{margin-top:1rem !important}.mr-xl-3,.mx-xl-3{margin-right:1rem !important}.mb-xl-3,.my-xl-3{margin-bottom:1rem !important}.ml-xl-3,.mx-xl-3{margin-left:1rem !important}.m-xl-4{margin:1.5rem !important}.mt-xl-4,.my-xl-4{margin-top:1.5rem !important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem !important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem !important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem !important}.m-xl-5{margin:3rem !important}.mt-xl-5,.my-xl-5{margin-top:3rem !important}.mr-xl-5,.mx-xl-5{margin-right:3rem !important}.mb-xl-5,.my-xl-5{margin-bottom:3rem !important}.ml-xl-5,.mx-xl-5{margin-left:3rem !important}.p-xl-0{padding:0 !important}.pt-xl-0,.py-xl-0{padding-top:0 !important}.pr-xl-0,.px-xl-0{padding-right:0 !important}.pb-xl-0,.py-xl-0{padding-bottom:0 !important}.pl-xl-0,.px-xl-0{padding-left:0 !important}.p-xl-1{padding:0.25rem !important}.pt-xl-1,.py-xl-1{padding-top:0.25rem !important}.pr-xl-1,.px-xl-1{padding-right:0.25rem !important}.pb-xl-1,.py-xl-1{padding-bottom:0.25rem !important}.pl-xl-1,.px-xl-1{padding-left:0.25rem !important}.p-xl-2{padding:0.5rem !important}.pt-xl-2,.py-xl-2{padding-top:0.5rem !important}.pr-xl-2,.px-xl-2{padding-right:0.5rem !important}.pb-xl-2,.py-xl-2{padding-bottom:0.5rem !important}.pl-xl-2,.px-xl-2{padding-left:0.5rem !important}.p-xl-3{padding:1rem !important}.pt-xl-3,.py-xl-3{padding-top:1rem !important}.pr-xl-3,.px-xl-3{padding-right:1rem !important}.pb-xl-3,.py-xl-3{padding-bottom:1rem !important}.pl-xl-3,.px-xl-3{padding-left:1rem !important}.p-xl-4{padding:1.5rem !important}.pt-xl-4,.py-xl-4{padding-top:1.5rem !important}.pr-xl-4,.px-xl-4{padding-right:1.5rem !important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem !important}.pl-xl-4,.px-xl-4{padding-left:1.5rem !important}.p-xl-5{padding:3rem !important}.pt-xl-5,.py-xl-5{padding-top:3rem !important}.pr-xl-5,.px-xl-5{padding-right:3rem !important}.pb-xl-5,.py-xl-5{padding-bottom:3rem !important}.pl-xl-5,.px-xl-5{padding-left:3rem !important}.m-xl-n1{margin:-0.25rem !important}.mt-xl-n1,.my-xl-n1{margin-top:-0.25rem !important}.mr-xl-n1,.mx-xl-n1{margin-right:-0.25rem !important}.mb-xl-n1,.my-xl-n1{margin-bottom:-0.25rem !important}.ml-xl-n1,.mx-xl-n1{margin-left:-0.25rem !important}.m-xl-n2{margin:-0.5rem !important}.mt-xl-n2,.my-xl-n2{margin-top:-0.5rem !important}.mr-xl-n2,.mx-xl-n2{margin-right:-0.5rem !important}.mb-xl-n2,.my-xl-n2{margin-bottom:-0.5rem !important}.ml-xl-n2,.mx-xl-n2{margin-left:-0.5rem !important}.m-xl-n3{margin:-1rem !important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem !important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem !important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem !important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem !important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem !important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem !important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem !important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem !important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem !important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem !important}.m-xl-auto{margin:auto !important}.mt-xl-auto,.my-xl-auto{margin-top:auto !important}.mr-xl-auto,.mx-xl-auto{margin-right:auto !important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto !important}.ml-xl-auto,.mx-xl-auto{margin-left:auto !important}}.text-monospace{font-family:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important}.text-justify{text-align:justify !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}@media (min-width: 576px){.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.text-md-left{text-align:left !important}.text-md-right{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.text-lg-left{text-align:left !important}.text-lg-right{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.text-xl-left{text-align:left !important}.text-xl-right{text-align:right !important}.text-xl-center{text-align:center !important}}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.font-weight-light{font-weight:300 !important}.font-weight-lighter{font-weight:lighter !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:700 !important}.font-weight-bolder{font-weight:bolder !important}.font-italic{font-style:italic !important}.text-white{color:#fff !important}.text-primary{color:#3A3F44 !important}a.text-primary:hover,a.text-primary:focus{color:#17191b !important}.text-secondary{color:#7A8288 !important}a.text-secondary:hover,a.text-secondary:focus{color:#565b60 !important}.text-success{color:#62c462 !important}a.text-success:hover,a.text-success:focus{color:#3b9e3b !important}.text-info{color:#5bc0de !important}a.text-info:hover,a.text-info:focus{color:#28a1c5 !important}.text-warning{color:#f89406 !important}a.text-warning:hover,a.text-warning:focus{color:#ad6704 !important}.text-danger{color:#ee5f5b !important}a.text-danger:hover,a.text-danger:focus{color:#e51d18 !important}.text-light{color:#e9ecef !important}a.text-light:hover,a.text-light:focus{color:#bdc6cf !important}.text-dark{color:#272B30 !important}a.text-dark:hover,a.text-dark:focus{color:#050506 !important}.text-body{color:#aaa !important}.text-muted{color:#7A8288 !important}.text-black-50{color:rgba(0,0,0,0.5) !important}.text-white-50{color:rgba(255,255,255,0.5) !important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none !important}.text-break{word-break:break-word !important;overflow-wrap:break-word !important}.text-reset{color:inherit !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media print{*,*::before,*::after{text-shadow:none !important;-webkit-box-shadow:none !important;box-shadow:none !important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px !important}.container{min-width:992px !important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #dee2e6 !important}.table-dark{color:inherit}.table-dark th,.table-dark td,.table-dark thead th,.table-dark tbody+tbody{border-color:rgba(0,0,0,0.6)}.table .thead-dark th{color:inherit;border-color:rgba(0,0,0,0.6)}}.navbar{border:1px solid rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.navbar .container{padding:0}.navbar .navbar-toggler{border-color:rgba(0,0,0,0.6)}.navbar-fixed-top{border-width:0 0 1px 0}.navbar-fixed-bottom{border-width:1px 0 0 0}.navbar .nav-link{padding:1rem;border-left:1px solid rgba(255,255,255,0.1);border-right:1px solid rgba(0,0,0,0.2)}.navbar .nav-link:hover,.navbar .nav-link:focus{background-image:-webkit-gradient(linear, left top, left bottom, from(#101112), color-stop(40%, #17191b), to(#1b1e20));background-image:linear-gradient(#101112, #17191b 40%, #1b1e20);background-repeat:no-repeat;-webkit-filter:none;filter:none;border-left:1px solid rgba(0,0,0,0.2)}.navbar-brand{padding:0.75rem 1rem calc(54px - 0.75rem - 30px);margin-right:0;border-right:1px solid rgba(0,0,0,0.2)}.navbar .nav-item.active .nav-link{background-color:rgba(0,0,0,0.3);border-left:1px solid rgba(0,0,0,0.2)}.navbar-nav .nav-item+.nav-item{margin-left:0}.navbar.bg-light{text-shadow:1px 1px 1px rgba(0,0,0,0.1)}.navbar.bg-light .nav-link:hover,.navbar.bg-light .nav-link:focus{background-image:-webkit-gradient(linear, left top, left bottom, from(#4e5458), color-stop(40%, #565b60), to(#5b6165));background-image:linear-gradient(#4e5458, #565b60 40%, #5b6165);background-repeat:no-repeat;-webkit-filter:none;filter:none;border-left:1px solid rgba(0,0,0,0.2)}@media (max-width: 576px){.navbar-expand-sm .navbar-brand,.navbar-expand-sm .nav-link{border:none !important}}@media (max-width: 768px){.navbar-expand-md .navbar-brand,.navbar-expand-md .nav-link{border:none !important}}@media (max-width: 992px){.navbar-expand-lg .navbar-brand,.navbar-expand-lg .nav-link{border:none !important}}.btn{border-color:rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.btn:not([disabled]):not(.disabled).active,.btn.disabled{border-color:rgba(0,0,0,0.6);-webkit-box-shadow:none;box-shadow:none}.btn:hover,.btn:focus,.btn:not([disabled]):not(.disabled):active,.btn:not([disabled]):not(.disabled):active:hover,.btn:not([disabled]):not(.disabled).active:hover{border-color:rgba(0,0,0,0.6)}.btn-primary{background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3A3F44), to(#313539));background-image:linear-gradient(#484e55, #3A3F44 60%, #313539);background-repeat:no-repeat;-webkit-filter:none;filter:none}.btn-primary:not([disabled]):not(.disabled):hover,.btn-primary:not([disabled]):not(.disabled):focus,.btn-primary:not([disabled]):not(.disabled):active:hover,.btn-primary:not([disabled]):not(.disabled).active:hover{background-image:-webkit-gradient(linear, left top, left bottom, from(#101112), color-stop(40%, #17191b), to(#1b1e20));background-image:linear-gradient(#101112, #17191b 40%, #1b1e20);background-repeat:no-repeat;-webkit-filter:none;filter:none}.btn-secondary{background-image:-webkit-gradient(linear, left top, left bottom, from(#8a9196), color-stop(60%, #7A8288), to(#70787d));background-image:linear-gradient(#8a9196, #7A8288 60%, #70787d);background-repeat:no-repeat;-webkit-filter:none;filter:none}.btn-secondary:not([disabled]):not(.disabled):hover,.btn-secondary:not([disabled]):not(.disabled):focus,.btn-secondary:not([disabled]):not(.disabled):active,.btn-secondary:not([disabled]):not(.disabled).active{background-image:-webkit-gradient(linear, left top, left bottom, from(#4e5458), color-stop(40%, #565b60), to(#5b6165));background-image:linear-gradient(#4e5458, #565b60 40%, #5b6165);background-repeat:no-repeat;-webkit-filter:none;filter:none}.btn-success{background-image:-webkit-gradient(linear, left top, left bottom, from(#78cc78), color-stop(60%, #62c462), to(#53be53));background-image:linear-gradient(#78cc78, #62c462 60%, #53be53);background-repeat:no-repeat;-webkit-filter:none;filter:none;color:#fff}.btn-success:not([disabled]):not(.disabled):hover,.btn-success:not([disabled]):not(.disabled):focus,.btn-success:not([disabled]):not(.disabled):active,.btn-success:not([disabled]):not(.disabled).active{background-image:-webkit-gradient(linear, left top, left bottom, from(#379337), color-stop(40%, #3b9e3b), to(#3ea63e));background-image:linear-gradient(#379337, #3b9e3b 40%, #3ea63e);background-repeat:no-repeat;-webkit-filter:none;filter:none}.btn-info{background-image:-webkit-gradient(linear, left top, left bottom, from(#74cae3), color-stop(60%, #5bc0de), to(#4ab9db));background-image:linear-gradient(#74cae3, #5bc0de 60%, #4ab9db);background-repeat:no-repeat;-webkit-filter:none;filter:none;color:#fff}.btn-info:not([disabled]):not(.disabled):hover,.btn-info:not([disabled]):not(.disabled):focus,.btn-info:not([disabled]):not(.disabled):active,.btn-info:not([disabled]):not(.disabled).active{background-image:-webkit-gradient(linear, left top, left bottom, from(#2596b8), color-stop(40%, #28a1c5), to(#29a8cd));background-image:linear-gradient(#2596b8, #28a1c5 40%, #29a8cd);background-repeat:no-repeat;-webkit-filter:none;filter:none}.btn-warning{background-image:-webkit-gradient(linear, left top, left bottom, from(#faa123), color-stop(60%, #f89406), to(#e48806));background-image:linear-gradient(#faa123, #f89406 60%, #e48806);background-repeat:no-repeat;-webkit-filter:none;filter:none;color:#fff}.btn-warning:not([disabled]):not(.disabled):hover,.btn-warning:not([disabled]):not(.disabled):focus,.btn-warning:not([disabled]):not(.disabled):active,.btn-warning:not([disabled]):not(.disabled).active{background-image:-webkit-gradient(linear, left top, left bottom, from(#9e5f04), color-stop(40%, #ad6704), to(#b76d04));background-image:linear-gradient(#9e5f04, #ad6704 40%, #b76d04);background-repeat:no-repeat;-webkit-filter:none;filter:none}.btn-danger{background-image:-webkit-gradient(linear, left top, left bottom, from(#f17a77), color-stop(60%, #ee5f5b), to(#ec4d49));background-image:linear-gradient(#f17a77, #ee5f5b 60%, #ec4d49);background-repeat:no-repeat;-webkit-filter:none;filter:none}.btn-danger:not([disabled]):not(.disabled):hover,.btn-danger:not([disabled]):not(.disabled):focus,.btn-danger:not([disabled]):not(.disabled):active,.btn-danger:not([disabled]):not(.disabled).active{background-image:-webkit-gradient(linear, left top, left bottom, from(#d71c16), color-stop(40%, #e51d18), to(#e8241f));background-image:linear-gradient(#d71c16, #e51d18 40%, #e8241f);background-repeat:no-repeat;-webkit-filter:none;filter:none}.btn-link,.btn-link:hover{border-color:transparent}.btn-group .btn.active,.btn-group-vertical .btn.active{border-color:rgba(0,0,0,0.6)}h1,h2,h3,h4,h5,h6{text-shadow:-1px -1px 0 rgba(0,0,0,0.3)}.table-primary,.table-secondary,.table-success,.table-info,.table-warning,.table-danger{color:#fff}.table-primary,.table-primary>th,.table-primary>td{background-color:#3A3F44}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#7A8288}.table-light,.table-light>th,.table-light>td{background-color:#e9ecef}.table-dark,.table-dark>th,.table-dark>td{background-color:#272B30}.table-success,.table-success>th,.table-success>td{background-color:#62c462}.table-info,.table-info>th,.table-info>td{background-color:#5bc0de}.table-danger,.table-danger>th,.table-danger>td{background-color:#ee5f5b}.table-warning,.table-warning>th,.table-warning>td{background-color:#f89406}.table-active,.table-active>th,.table-active>td{background-color:rgba(255,255,255,0.075)}.table-hover .table-primary:hover,.table-hover .table-primary:hover>th,.table-hover .table-primary:hover>td{background-color:#2e3236}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>th,.table-hover .table-secondary:hover>td{background-color:#6e757b}.table-hover .table-light:hover,.table-hover .table-light:hover>th,.table-hover .table-light:hover>td{background-color:#dadfe4}.table-hover .table-dark:hover,.table-hover .table-dark:hover>th,.table-hover .table-dark:hover>td{background-color:#1c1e22}.table-hover .table-success:hover,.table-hover .table-success:hover>th,.table-hover .table-success:hover>td{background-color:#4fbd4f}.table-hover .table-info:hover,.table-hover .table-info:hover>th,.table-hover .table-info:hover>td{background-color:#46b8da}.table-hover .table-danger:hover,.table-hover .table-danger:hover>th,.table-hover .table-danger:hover>td{background-color:#ec4844}.table-hover .table-warning:hover,.table-hover .table-warning:hover>th,.table-hover .table-warning:hover>td{background-color:#df8505}.table-hover .table-active:hover,.table-hover .table-active:hover>th,.table-hover .table-active:hover>td{background-color:rgba(255,255,255,0.075)}legend{color:#fff}.input-group-addon{background-image:-webkit-gradient(linear, left top, left bottom, from(#8a9196), color-stop(60%, #7A8288), to(#70787d));background-image:linear-gradient(#8a9196, #7A8288 60%, #70787d);background-repeat:no-repeat;-webkit-filter:none;filter:none;text-shadow:1px 1px 1px rgba(0,0,0,0.3);color:#fff}.nav-tabs .nav-link{background-image:-webkit-gradient(linear, left top, left bottom, from(#101112), color-stop(40%, #17191b), to(#1b1e20));background-image:linear-gradient(#101112, #17191b 40%, #1b1e20);background-repeat:no-repeat;-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6)}.nav-tabs .nav-link:not([disabled]):not(.disabled):hover,.nav-tabs .nav-link:not([disabled]):not(.disabled):focus,.nav-tabs .nav-link:not([disabled]):not(.disabled):active,.nav-tabs .nav-link:not([disabled]):not(.disabled).active{background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3A3F44), to(#313539));background-image:linear-gradient(#484e55, #3A3F44 60%, #313539);background-repeat:no-repeat;-webkit-filter:none;filter:none}.nav-tabs .nav-link.disabled{border:1px solid rgba(0,0,0,0.6)}.nav-tabs .nav-link,.nav-tabs .nav-link:hover{color:#fff}.nav-pills .nav-link{background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3A3F44), to(#313539));background-image:linear-gradient(#484e55, #3A3F44 60%, #313539);background-repeat:no-repeat;-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3);color:#fff}.nav-pills .nav-link:hover{background-image:-webkit-gradient(linear, left top, left bottom, from(#101112), color-stop(40%, #17191b), to(#1b1e20));background-image:linear-gradient(#101112, #17191b 40%, #1b1e20);background-repeat:no-repeat;-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6)}.nav-pills .nav-link.active,.nav-pills .nav-link:hover{background-color:transparent;background-image:-webkit-gradient(linear, left top, left bottom, from(#101112), color-stop(40%, #17191b), to(#1b1e20));background-image:linear-gradient(#101112, #17191b 40%, #1b1e20);background-repeat:no-repeat;-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6)}.nav-pills .nav-link.disabled,.nav-pills .nav-link.disabled:hover{background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3A3F44), to(#313539));background-image:linear-gradient(#484e55, #3A3F44 60%, #313539);background-repeat:no-repeat;-webkit-filter:none;filter:none;color:#7A8288}.pagination .page-link{text-shadow:1px 1px 1px rgba(0,0,0,0.3);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3A3F44), to(#313539));background-image:linear-gradient(#484e55, #3A3F44 60%, #313539);background-repeat:no-repeat;-webkit-filter:none;filter:none}.pagination .page-link:hover{background-image:-webkit-gradient(linear, left top, left bottom, from(#101112), color-stop(40%, #17191b), to(#1b1e20));background-image:linear-gradient(#101112, #17191b 40%, #1b1e20);background-repeat:no-repeat;-webkit-filter:none;filter:none;text-decoration:none}.pagination .page-item.active .page-link{background-image:-webkit-gradient(linear, left top, left bottom, from(#101112), color-stop(40%, #17191b), to(#1b1e20));background-image:linear-gradient(#101112, #17191b 40%, #1b1e20);background-repeat:no-repeat;-webkit-filter:none;filter:none}.pagination .page-item.disabled .page-link{background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3A3F44), to(#313539));background-image:linear-gradient(#484e55, #3A3F44 60%, #313539);background-repeat:no-repeat;-webkit-filter:none;filter:none}.breadcrumb{border:1px solid rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3);background-color:transparent;background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3A3F44), to(#313539));background-image:linear-gradient(#484e55, #3A3F44 60%, #313539);background-repeat:no-repeat;-webkit-filter:none;filter:none}.breadcrumb a,.breadcrumb a:hover{color:#fff}.alert .close{color:#000;text-decoration:none}.alert{border:none;color:#fff}.alert a,.alert .alert-link{color:#fff;text-decoration:underline}.alert-primary{background-color:#3A3F44}.alert-secondary{background-color:#7A8288}.alert-success{background-color:#62c462}.alert-info{background-color:#5bc0de}.alert-warning{background-color:#f89406}.alert-danger{background-color:#ee5f5b}.alert-light{background-color:#e9ecef}.alert-dark{background-color:#272B30}.alert-light,.alert-light a:not(.btn),.alert-light .alert-link{color:#272B30}.badge-success,.badge-warning,.badge-info{color:#fff}.jumbotron{border:1px solid rgba(0,0,0,0.6)}.list-group-item:hover{background-color:#1c1e22} diff --git a/Vagrant/resources/malcolm/file-upload/jquery-file-upload/index.html b/Vagrant/resources/malcolm/file-upload/jquery-file-upload/index.html new file mode 100644 index 0000000..b7f6b82 --- /dev/null +++ b/Vagrant/resources/malcolm/file-upload/jquery-file-upload/index.html @@ -0,0 +1,212 @@ + + + + + + + +%SITE_NAME% + + + + + + + + + + + + + + + + + + + +
+ %SITE_NAME% +
+
+

%SITE_NAME%

+
+
+
+
+ +
+ +
+
+ + + + Add files... + + + +    + + + +
+ +
+ +
+
+
+ +
 
+
+
+
+
+
+ Tags: +
+
+ +
+ +
+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Vagrant/resources/malcolm/file-upload/jquery-file-upload/index.php b/Vagrant/resources/malcolm/file-upload/jquery-file-upload/index.php new file mode 100644 index 0000000..df22551 --- /dev/null +++ b/Vagrant/resources/malcolm/file-upload/jquery-file-upload/index.php @@ -0,0 +1,20 @@ + 0) and (fileType == logMimeType): + cleanSeconds = cleanLogSeconds + elif (cleanZipSeconds > 0) and archiveMimeTypeRegex.match(fileType) is not None: + cleanSeconds = cleanZipSeconds + else: + # not a file we're going to be messing with + cleanSeconds = 0 + + if (cleanSeconds > 0) and (lastUseTime >= cleanSeconds): + # this is a closed file that is old, so delete it + print('removing old file "{}" ({}, used {} seconds ago)'.format(file, fileType, lastUseTime)) + silentRemove(file) + + # clean up any broken symlinks in the current/ directory + for current in os.listdir(currentDir): + currentFileSpec = os.path.join(currentDir, current) + if os.path.islink(currentFileSpec) and not os.path.exists(currentFileSpec): + print('removing dead symlink "{}"'.format(currentFileSpec)) + silentRemove(currentFileSpec) + + # clean up any old and empty directories in processed/ directory + cleanDirSeconds = min(i for i in (cleanLogSeconds, cleanZipSeconds) if i > 0) + candidateDirs = [] + for root, dirs, files in os.walk(processedDir, topdown=False): + if (root and dirs): + candidateDirs += [os.path.join(root, tmpDir) for tmpDir in dirs] + candidateDirs = list(set(candidateDirs)) + candidateDirs.sort(reverse=True) + candidateDirs.sort(key=len, reverse=True) + candidateDirsAndTimes = zip(candidateDirs, [os.path.getmtime(dirToRm) for dirToRm in candidateDirs]) + for (dirToRm, dirTime) in candidateDirsAndTimes: + dirAge = (nowTime - dirTime) + if (dirAge >= cleanDirSeconds): + try: + os.rmdir(dirToRm) + print('removed empty directory "{}" (used {} seconds ago)'.format(dirToRm, dirAge)) + except OSError: + pass + +def main(): + with open(lockFilename, 'w') as lock_file: + try: + fcntl.flock(lock_file, fcntl.LOCK_EX | fcntl.LOCK_NB) + except IOError: + return + else: + pruneFiles() + finally: + os.remove(lockFilename) + +if __name__ == '__main__': + main() diff --git a/Vagrant/resources/malcolm/filebeat/scripts/filebeat-process-zeek-folder-functions.sh b/Vagrant/resources/malcolm/filebeat/scripts/filebeat-process-zeek-folder-functions.sh new file mode 100755 index 0000000..71d6d24 --- /dev/null +++ b/Vagrant/resources/malcolm/filebeat/scripts/filebeat-process-zeek-folder-functions.sh @@ -0,0 +1,12 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +function in_array() { + local haystack="${1}[@]" + local needle="${2}" + for i in "${!haystack}"; do + if [[ "${i}" == "${needle}" ]]; then + return 0 + fi + done + return 1 +} diff --git a/Vagrant/resources/malcolm/filebeat/scripts/filebeat-process-zeek-folder.sh b/Vagrant/resources/malcolm/filebeat/scripts/filebeat-process-zeek-folder.sh new file mode 100755 index 0000000..72ce368 --- /dev/null +++ b/Vagrant/resources/malcolm/filebeat/scripts/filebeat-process-zeek-folder.sh @@ -0,0 +1,92 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + + +# for files (sort -V (natural)) under /data/zeek that: +# - are not in processed/ or current/ or upload/ or extract_files/ (-prune) +# - are archive files +# - are not in use (fuser -s) +# 1. move file to processed/ (preserving original subdirectory heirarchy, if any) +# 2. calculate tags based on splitting the file path and filename (splitting on +# on [, -/_]) + +FILEBEAT_PREPARE_PROCESS_COUNT=1 + +# ensure only one instance of this script can run at a time +LOCKDIR="/tmp/zeek-beats-process-folder" + +export SCRIPT_DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +export ZEEK_LOG_FIELD_BITMAP_SCRIPT="$SCRIPT_DIR/zeek-log-field-bitmap.py" + +export ZEEK_LOG_AUTO_TAG=${AUTO_TAG:-"true"} + +ZEEK_LOGS_DIR=${FILEBEAT_ZEEK_DIR:-/data/zeek/} + +# remove the lock directory on exit +function cleanup { + if ! rmdir $LOCKDIR; then + echo "Failed to remove lock directory '$LOCKDIR'" + exit 1 + fi +} + +if mkdir $LOCKDIR; then + # ensure that if we "grabbed a lock", we release it (works for clean exit, SIGTERM, and SIGINT/Ctrl-C) + trap "cleanup" EXIT + + # get new zeek logs ready for processing + cd "$ZEEK_LOGS_DIR" + find . -path ./processed -prune -o -path ./current -prune -o -path ./upload -prune -o -path ./extract_files -prune -o -type f -exec file --mime-type "{}" \; | grep -P "(application/gzip|application/x-gzip|application/x-7z-compressed|application/x-bzip2|application/x-cpio|application/x-lzip|application/x-lzma|application/x-rar-compressed|application/x-tar|application/x-xz|application/zip)" | awk -F: '{print $1}' | sort -V | \ + xargs -n 1 -P $FILEBEAT_PREPARE_PROCESS_COUNT -I '{}' bash -c ' + + fuser -s "{}" 2>/dev/null + if [[ $? -ne 0 ]] + then + . $SCRIPT_DIR/filebeat-process-zeek-folder-functions.sh + + PROCESS_TIME=$(date +%s%N) + SOURCEDIR="$(dirname "{}")" + DESTDIR="./processed/$SOURCEDIR" + DESTNAME="$DESTDIR/$(basename "{}")" + DESTDIR_EXTRACTED="${DESTNAME}_${PROCESS_TIME}" + LINKDIR="./current" + + TAGS=() + if [[ "$ZEEK_LOG_AUTO_TAG" = "true" ]]; then + IFS=",-/_." read -r -a SOURCESPLIT <<< $(echo "{}" | sed "s/\.[^.]*$//") + echo "\"{}\" -> \"${DESTNAME}\"" + for index in "${!SOURCESPLIT[@]}" + do + TAG_CANDIDATE="${SOURCESPLIT[index]}" + if ! in_array TAGS "$TAG_CANDIDATE"; then + if [[ -n $TAG_CANDIDATE && ! $TAG_CANDIDATE =~ ^[0-9-]+$ && $TAG_CANDIDATE != "tar" && $TAG_CANDIDATE != "AUTOZEEK" && ! $TAG_CANDIDATE =~ ^AUTOCARVE ]]; then + TAGS+=("${TAG_CANDIDATE}") + fi + fi + done + fi + + mkdir -p "$DESTDIR" + mkdir -p "$DESTDIR_EXTRACTED" + mv -v "{}" "$DESTNAME" + python3 -m pyunpack.cli "$DESTNAME" "$DESTDIR_EXTRACTED" + find "$DESTDIR_EXTRACTED" -type f -name "*.log" | while read LOGFILE + do + PROCESS_TIME=$(date +%s%N) + TAGS_JOINED=$(printf "%s," "${TAGS[@]}")${PROCESS_TIME} + FIELDS_BITMAP="$($ZEEK_LOG_FIELD_BITMAP_SCRIPT "$LOGFILE" | head -n 1)" + LINKNAME_BASE="$(basename "$LOGFILE" .log)" + if [[ -n $FIELDS_BITMAP ]]; then + LINKNAME="${LINKNAME_BASE}(${TAGS_JOINED},${FIELDS_BITMAP}).log" + else + LINKNAME="${LINKNAME_BASE}(${TAGS_JOINED}).log" + fi + touch "$LOGFILE" + ln -sfr "$LOGFILE" "$LINKDIR/$LINKNAME" + done + fi + ' + +fi diff --git a/Vagrant/resources/malcolm/filebeat/scripts/filebeat-watch-zeeklogs-uploads-folder.sh b/Vagrant/resources/malcolm/filebeat/scripts/filebeat-watch-zeeklogs-uploads-folder.sh new file mode 100755 index 0000000..23b0967 --- /dev/null +++ b/Vagrant/resources/malcolm/filebeat/scripts/filebeat-watch-zeeklogs-uploads-folder.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + + +PROCESS_DIR=${FILEBEAT_ZEEK_DIR:-/data/zeek/} +UPLOAD_DIR="${PROCESS_DIR}/upload" +mkdir -p "$UPLOAD_DIR" + +# as new zeek log archives are closed for writing in /data/zeek/upload, move them to /data/zeek for processing +inotifywait -m -e close_write --format '%w%f' "${UPLOAD_DIR}" | while read NEWFILE +do + FILEMIME=$(file -b --mime-type "$NEWFILE") + if ( echo "$FILEMIME" | grep --quiet -P "(application/gzip|application/x-gzip|application/x-7z-compressed|application/x-bzip2|application/x-cpio|application/x-lzip|application/x-lzma|application/x-rar-compressed|application/x-tar|application/x-xz|application/zip)" ); then + # looks like this is a compressed file, we're assuming it's a zeek log archive to be processed by filebeat + sleep 0.1 && chown ${PUID:-${DEFAULT_UID}}:${PGID:-${DEFAULT_GID}} "$NEWFILE" && (>&2 mv -v "$NEWFILE" "$PROCESS_DIR/") + else + # unhandled file type uploaded, delete it + sleep 0.1 && chown ${PUID:-${DEFAULT_UID}}:${PGID:-${DEFAULT_GID}} && (>&2 rm "$NEWFILE") && echo "Removed \"$NEWFILE\", unhandled file type \"$FILEMIME\"" + fi +done + diff --git a/Vagrant/resources/malcolm/filebeat/scripts/zeek-log-field-bitmap.py b/Vagrant/resources/malcolm/filebeat/scripts/zeek-log-field-bitmap.py new file mode 100755 index 0000000..f6f14f8 --- /dev/null +++ b/Vagrant/resources/malcolm/filebeat/scripts/zeek-log-field-bitmap.py @@ -0,0 +1,152 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +################################################################################################### +# parse the fields names from the header of of the log file and compare them to the +# known list of total fields. if this zeek log has is a subset of the known fields, +# create a bitmap of the included fields to be included as a special tag +# which can help the logstash parser know on a line-by-line basis which fields are included. +# when logstash-filter-dissect gets this implemented, we may not have to do this: +# - https://github.com/logstash-plugins/logstash-filter-dissect/issues/56 +# - https://github.com/logstash-plugins/logstash-filter-dissect/issues/62 +# +# arguments: accepts one argument, the name of a zeek log file +# output: returns a string suitable for use as a tag indicating the field bitset., eg., ZEEKFLDx00x01FFFFFF +# +# ZEEKFLDx00x01FFFFFF +# | └ bitmap of included fields within field list +# └ index into zeekLogFields list indicating (to support legacy field configurations, see below) +# +# example: +# $ ./zeek-log-field-bitmap.py /path/to/conn.log +# ZEEKFLDx00x01FFFFFF +# +# there are two cases we're trying to cover here by indicating the field types: +# 1. certain fields can be turned on/off in config (for example, enabling/disabling MACs or VLANs for conn.log) +# 2. a Zeek version upgrade changed the field list (see notes about DHCP.log in +# https://docs.zeek.org/en/latest/install/release-notes.html#bro-2-6) +# +# The first case is pretty simple, because in that case the fields in the zeek log will be some subset of +# the list of all known fields for that type. +# +# The second case is more complicated because the field list could be completely different. Because of this case +# each of the entries in zeekLogFields is itself a list, with older configurations occuring earlier in the list +# +# $ zeek-log-field-bitmap.py ./bro2.5/dhcp.log +# ZEEKFLDx00x000003FF +# +# $ zeek-log-field-bitmap.py ./bro2.6/dhcp.log +# ZEEKFLDx01x00007FFF +# + +import sys +import os +import json +from collections import defaultdict +from ordered_set import OrderedSet + +# lists of all known fields for each type of zeek log we're concerned with mapping (ordered as in the .log file header) +# are stored in zeek-log-fields.json +FIELDS_JSON_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), "zeek-log-fields.json") + +ZEEK_LOG_DELIMITER = '\t' # zeek log file field delimiter +ZEEK_LOG_HEADER_LOGTYPE = 'path' # header value for zeek log type (conn, weird, etc.) +ZEEK_LOG_HEADER_FIELDS = 'fields' # header value for zeek log fields list + +# file prefix for bitmap to stdout, eg., ZEEKFLDx00x01FFFFFF +ZEEK_LOG_BITMAP_PREFIX = 'ZEEKFLD' + + +################################################################################################### +# print to stderr +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + +################################################################################################### +# Set the index'th bit of v to 1 if x is truthy, else to 0, and return the new value +def set_bit(v, index, x): + mask = 1 << index # Compute mask, an integer with just bit 'index' set. + v &= ~mask # Clear the bit indicated by the mask (if x is False) + if x: + v |= mask # If x was True, set the bit indicated by the mask. + return v + +################################################################################################### +# main +def main(): + errCode = os.EX_DATAERR + + + dataError = False + zeekLogFields = defaultdict(list) + + # load from json canonical list of known zeek log fields we're concerned with mapping + zeekLogFieldsTmp = json.load(open(FIELDS_JSON_FILE, 'r')) + if isinstance(zeekLogFieldsTmp, dict): + for logType, listOfFieldLists in zeekLogFieldsTmp.items(): + if isinstance(logType, str) and isinstance(listOfFieldLists, list): + zeekLogFields[str(logType)] = [OrderedSet(fieldList) for fieldList in listOfFieldLists] + else: + dataError = True + break + else: + dataError = True + + + if dataError: + # something is wrong with the json file + eprint("Error loading {} (not found or incorrectly formatted)".format(FIELDS_JSON_FILE)) + + else: + if (len(sys.argv) == 2) and os.path.isfile(sys.argv[1]): + + fieldsBitmap = 0 + + # loop over header lines in zeek log file (beginning with '#') and extract the header values + # into a dictionary containing, among other things: + # - the "path" which is the zeek log type (eg., conn, weird, etc.) + # - the "fields" list of field names + headers = {} + with open(sys.argv[1], "r") as zeekLogFile: + for line in zeekLogFile: + if line.startswith('#'): + values = line.strip().split(ZEEK_LOG_DELIMITER) + key = values.pop(0)[1:] + if (len(values) == 1): + headers[key] = values[0] + else: + headers[key] = values + else: + break + + if ((ZEEK_LOG_HEADER_LOGTYPE in headers) and # the "path" header exists + (ZEEK_LOG_HEADER_FIELDS in headers) and # the "fields" header exists + (headers[ZEEK_LOG_HEADER_LOGTYPE] in zeekLogFields)): # this zeek log type is one we're concerned with mapping + + # the set of field names in *this* log file + logFieldNames = OrderedSet(headers[ZEEK_LOG_HEADER_FIELDS]) + + for versionIdx, allFieldNames in reversed(list(enumerate(zeekLogFields[headers[ZEEK_LOG_HEADER_LOGTYPE]]))): + + # are this logfile's fields a subset of the complete list? + if logFieldNames.issubset(allFieldNames): + + # determine which fields in the complete list are included in this log file + for i, fName in enumerate(allFieldNames): + fieldsBitmap = set_bit(fieldsBitmap, i, fName in logFieldNames) + + # eprint(fieldsBitmap) + print('{0}x{1:02X}x{2:08X}'.format(ZEEK_LOG_BITMAP_PREFIX, versionIdx, fieldsBitmap)) + errCode = os.EX_OK + + else: + # invalid command-line arguments + eprint("{} ".format(sys.argv[0])) + errCode = os.EX_USAGE + + return errCode + +if __name__ == '__main__': + sys.exit(main()) \ No newline at end of file diff --git a/Vagrant/resources/malcolm/filebeat/scripts/zeek-log-fields.json b/Vagrant/resources/malcolm/filebeat/scripts/zeek-log-fields.json new file mode 100644 index 0000000..b7ac1a3 --- /dev/null +++ b/Vagrant/resources/malcolm/filebeat/scripts/zeek-log-fields.json @@ -0,0 +1,273 @@ +{ + "conn": [ + [ + "ts", + "uid", + "id.orig_h", + "id.orig_p", + "id.resp_h", + "id.resp_p", + "proto", + "service", + "duration", + "orig_bytes", + "resp_bytes", + "conn_state", + "local_orig", + "local_resp", + "missed_bytes", + "history", + "orig_pkts", + "orig_ip_bytes", + "resp_pkts", + "resp_ip_bytes", + "tunnel_parents", + "vlan", + "inner_vlan", + "orig_l2_addr", + "resp_l2_addr", + "community_id" + ] + ], + "dhcp": [ + [ + "ts", + "uid", + "id.orig_h", + "id.orig_p", + "id.resp_h", + "id.resp_p", + "mac", + "assigned_ip", + "lease_time", + "trans_id" + ], + [ + "ts", + "uids", + "client_addr", + "server_addr", + "mac", + "host_name", + "client_fqdn", + "domain", + "requested_addr", + "assigned_addr", + "lease_time", + "client_message", + "server_message", + "msg_types", + "duration", + "client_software", + "server_software" + ] + ], + "files": [ + [ + "ts", + "fuid", + "tx_hosts", + "rx_hosts", + "conn_uids", + "source", + "depth", + "analyzers", + "mime_type", + "filename", + "duration", + "local_orig", + "is_orig", + "seen_bytes", + "total_bytes", + "missing_bytes", + "overflow_bytes", + "timedout", + "parent_fuid", + "md5", + "sha1", + "sha256", + "extracted", + "extracted_cutoff", + "extracted_size" + ] + ], + "http": [ + [ + "ts", + "uid", + "id.orig_h", + "id.orig_p", + "id.resp_h", + "id.resp_p", + "trans_depth", + "method", + "host", + "uri", + "referrer", + "version", + "user_agent", + "origin", + "request_body_len", + "response_body_len", + "status_code", + "status_msg", + "info_code", + "info_msg", + "tags", + "username", + "password", + "proxied", + "orig_fuids", + "orig_filenames", + "orig_mime_types", + "resp_fuids", + "resp_filenames", + "resp_mime_types", + "post_username", + "post_password_plain", + "post_password_md5", + "post_password_sha1", + "post_password_sha256" + ] + ], + "ntlm": [ + [ + "ts", + "uid", + "id.orig_h", + "id.orig_p", + "id.resp_h", + "id.resp_p", + "username", + "hostname", + "domainname", + "success", + "status" + ], + [ + "ts", + "uid", + "id.orig_h", + "id.orig_p", + "id.resp_h", + "id.resp_p", + "username", + "hostname", + "domainname", + "server_nb_computer_name", + "server_dns_computer_name", + "server_tree_name", + "success" + ] + ], + "rdp": [ + [ + "ts", + "uid", + "id.orig_h", + "id.orig_p", + "id.resp_h", + "id.resp_p", + "cookie", + "result", + "security_protocol", + "client_channels", + "keyboard_layout", + "client_build", + "client_name", + "client_dig_product_id", + "desktop_width", + "desktop_height", + "requested_color_depth", + "cert_type", + "cert_count", + "cert_permanent", + "encryption_level", + "encryption_method" + ] + ], + "smb_files": [ + [ + "ts", + "uid", + "id.orig_h", + "id.orig_p", + "id.resp_h", + "id.resp_p", + "fuid", + "action", + "path", + "name", + "size", + "prev_name", + "times.modified", + "times.accessed", + "times.created", + "times.changed", + "data_offset_req", + "data_len_req", + "data_len_rsp" + ] + ], + "ssh": [ + [ + "ts", + "uid", + "id.orig_h", + "id.orig_p", + "id.resp_h", + "id.resp_p", + "version", + "auth_success", + "auth_attempts", + "direction", + "client", + "server", + "cipher_alg", + "mac_alg", + "compression_alg", + "kex_alg", + "host_key_alg", + "host_key", + "remote_location.country_code", + "remote_location.region", + "remote_location.city", + "remote_location.latitude", + "remote_location.longitude", + "hasshVersion", + "hassh", + "hasshServer", + "cshka", + "hasshAlgorithms", + "sshka", + "hasshServerAlgorithms" + ] + ], + "ssl": [ + [ + "ts", + "uid", + "id.orig_h", + "id.orig_p", + "id.resp_h", + "id.resp_p", + "version", + "cipher", + "curve", + "server_name", + "resumed", + "last_alert", + "next_protocol", + "established", + "cert_chain_fuids", + "client_cert_chain_fuids", + "subject", + "issuer", + "client_subject", + "client_issuer", + "validation_status", + "ja3", + "ja3s" + ] + ] +} diff --git a/Vagrant/resources/malcolm/filebeat/supervisord.conf b/Vagrant/resources/malcolm/filebeat/supervisord.conf new file mode 100644 index 0000000..26dd9e3 --- /dev/null +++ b/Vagrant/resources/malcolm/filebeat/supervisord.conf @@ -0,0 +1,69 @@ +; Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +[unix_http_server] +file=/tmp/supervisor.sock ; (the path to the socket file) +chmod=0700 + +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisord.pid + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[program:filebeat] +command=/usr/local/bin/docker-entrypoint -e --strict.perms=false +user=%(ENV_PUSER)s +startsecs=0 +startretries=0 +stopasgroup=true +killasgroup=true +directory=/usr/share/filebeat +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:filebeat-nginx] +command=bash -c "/data/elastic_search_status.sh && /usr/local/bin/docker-entrypoint -e --strict.perms=false \ + --path.home /usr/share/filebeat-nginx \ + --path.config /usr/share/filebeat-nginx \ + --path.data /usr/share/filebeat-nginx/data \ + -c /usr/share/filebeat-nginx/filebeat-nginx.yml \ + --modules nginx" +user=%(ENV_PUSER)s +autostart=%(ENV_NGINX_LOG_ACCESS_AND_ERRORS)s +startsecs=30 +startretries=2000000000 +stopasgroup=true +killasgroup=true +directory=/usr/share/filebeat-nginx +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:watch-upload] +command=/bin/bash -c "sleep 30 && /data/filebeat-watch-zeeklogs-uploads-folder.sh" +user=root +startsecs=35 +startretries=1 +stopasgroup=true +killasgroup=true +directory=/data +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:cron] +autorestart=true +command=/usr/local/bin/supercronic -json "%(ENV_SUPERCRONIC_CRONTAB)s" +user=%(ENV_PUSER)s +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true diff --git a/Vagrant/resources/malcolm/freq-server/supervisord.conf b/Vagrant/resources/malcolm/freq-server/supervisord.conf new file mode 100644 index 0000000..6c18cab --- /dev/null +++ b/Vagrant/resources/malcolm/freq-server/supervisord.conf @@ -0,0 +1,27 @@ +; Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +[unix_http_server] +file=/tmp/supervisor.sock ; (the path to the socket file) +chmod=0700 + +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisord.pid + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[program:freq] +command=/usr/bin/python3 /opt/freq_server/freq_server.py -ip 0.0.0.0 %(ENV_FREQ_PORT)s /opt/freq_server/freq_table.freq +startsecs=5 +startretries=2000000000 +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true diff --git a/Vagrant/resources/malcolm/host-map.txt b/Vagrant/resources/malcolm/host-map.txt new file mode 100644 index 0000000..3e30e5a --- /dev/null +++ b/Vagrant/resources/malcolm/host-map.txt @@ -0,0 +1,14 @@ +# IP or MAC address to host name map: +# address|host name|required tag +# +# where: +# address: comma-separated list of IPv4, IPv6, or MAC addresses +# e.g., 172.16.10.41, 02:42:45:dc:a2:96, 2001:0db8:85a3:0000:0000:8a2e:0370:7334 +# +# host name: host name to be assigned when event address(es) match +# +# required tag (optional): only check match and apply host name if the event +# contains this tag +# +# Alternatively, as of Malcolm v2.0 there is a web UI editor for defining address +# to host name maps, located at https:///name-map-ui. \ No newline at end of file diff --git a/Vagrant/resources/malcolm/htadmin/config.ini b/Vagrant/resources/malcolm/htadmin/config.ini new file mode 100644 index 0000000..0cd7e92 --- /dev/null +++ b/Vagrant/resources/malcolm/htadmin/config.ini @@ -0,0 +1,24 @@ +; HTAdmin config file. + +[application] +; Change this to customize your title: +app_title = Malcolm User Management + +; htpasswd file +secure_path = ./config/htpasswd +; metadata file +metadata_path = ./config/metadata + +; administrator user/password (htpasswd -b -c -B ...) +admin_user = vagrant + +; username field quality checks +; +min_username_len = 4 +max_username_len = 12 + +; Password field quality checks +; +min_password_len = 6 +max_password_len = 20 + diff --git a/Vagrant/resources/malcolm/htadmin/htadmin.sh b/Vagrant/resources/malcolm/htadmin/htadmin.sh new file mode 100644 index 0000000..10da60f --- /dev/null +++ b/Vagrant/resources/malcolm/htadmin/htadmin.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +HTADMIN_ENABLED=${NGINX_BASIC_AUTH:-"true"} + +if [[ "$HTADMIN_ENABLED" == "true" ]]; then + sleep 10 + nginx -g "daemon off;" +else + mkdir -p /tmp/htadmin_disabled + pushd /tmp/htadmin_disabled >/dev/null 2>&1 && \ + cat << EOF > index.html + +
Basic Authentication Disabled
+ +

Basic HTTP authentication has been disabled.

+

Refer to the Malcolm documentation for details on LDAP authentication.

+ + +EOF + python -m SimpleHTTPServer 80 + popd >/dev/null 2>&1 +fi \ No newline at end of file diff --git a/Vagrant/resources/malcolm/htadmin/metadata b/Vagrant/resources/malcolm/htadmin/metadata new file mode 100644 index 0000000..e69de29 diff --git a/Vagrant/resources/malcolm/htadmin/nginx/sites-available/default b/Vagrant/resources/malcolm/htadmin/nginx/sites-available/default new file mode 100644 index 0000000..07a81ea --- /dev/null +++ b/Vagrant/resources/malcolm/htadmin/nginx/sites-available/default @@ -0,0 +1,25 @@ +server { + listen 80 default_server; + + sendfile on; + + root /var/www/htadmin; + index index.php index.html index.htm; + + server_name htaccess.malcolm.local; + + location / { + try_files $uri $uri/ =404; + } + + location ~ \.php$ { + include snippets/fastcgi-php.conf; + fastcgi_read_timeout 300; + fastcgi_pass unix:/run/php/php7.3-fpm.sock; + } + + location /config { + deny all; + return 404; + } +} diff --git a/Vagrant/resources/malcolm/htadmin/php/php.ini b/Vagrant/resources/malcolm/htadmin/php/php.ini new file mode 100644 index 0000000..7951b31 --- /dev/null +++ b/Vagrant/resources/malcolm/htadmin/php/php.ini @@ -0,0 +1,220 @@ +[PHP] + +; about php.ini +; see https://secure.php.net/manual/en/configuration.file.php +; https://secure.php.net/manual/en/ini.list.php + +engine = On +short_open_tag = Off +asp_tags = Off +precision = 14 +output_buffering = 4096 +zlib.output_compression = Off +implicit_flush = Off +unserialize_callback_func = +serialize_precision = 17 +disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, +disable_classes = +zend.enable_gc = On +expose_php = Off +max_execution_time = 600 +max_input_time = 600 +memory_limit = 128M +error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT +display_errors = Off +display_startup_errors = Off +log_errors = On +log_errors_max_len = 1024 +ignore_repeated_errors = Off +ignore_repeated_source = Off +report_memleaks = On +track_errors = Off +html_errors = On +variables_order = "GPCS" +request_order = "GP" +register_argc_argv = Off +auto_globals_jit = On +post_max_size = 0 +auto_prepend_file = +auto_append_file = +default_mimetype = "text/html" +default_charset = "UTF-8" +doc_root = +user_dir = +enable_dl = Off +file_uploads = Off +upload_max_filesize = 500M +max_file_uploads = 4 +allow_url_fopen = On +allow_url_include = Off +default_socket_timeout = 60 +extension=mcrypt.so + +[CLI Server] +cli_server.color = On + +[Date] + +[filter] + +[iconv] + +[intl] + +[sqlite] + +[sqlite3] + +[Pcre] + +[Pdo] + +[Pdo_mysql] +pdo_mysql.cache_size = 2000 +pdo_mysql.default_socket= + +[Phar] + +[mail function] +SMTP = localhost +smtp_port = 25 +mail.add_x_header = On + +[SQL] +sql.safe_mode = Off + +[ODBC] +odbc.allow_persistent = On +odbc.check_persistent = On +odbc.max_persistent = -1 +odbc.max_links = -1 +odbc.defaultlrl = 4096 +odbc.defaultbinmode = 1 + +[Interbase] +ibase.allow_persistent = 1 +ibase.max_persistent = -1 +ibase.max_links = -1 +ibase.timestampformat = "%Y-%m-%d %H:%M:%S" +ibase.dateformat = "%Y-%m-%d" +ibase.timeformat = "%H:%M:%S" + +[MySQL] +mysql.allow_local_infile = On +mysql.allow_persistent = On +mysql.cache_size = 2000 +mysql.max_persistent = -1 +mysql.max_links = -1 +mysql.default_port = +mysql.default_socket = +mysql.default_host = +mysql.default_user = +mysql.default_password = +mysql.connect_timeout = 60 +mysql.trace_mode = Off + +[MySQLi] +mysqli.max_persistent = -1 +mysqli.allow_persistent = On +mysqli.max_links = -1 +mysqli.cache_size = 2000 +mysqli.default_port = 3306 +mysqli.default_socket = +mysqli.default_host = +mysqli.default_user = +mysqli.default_pw = +mysqli.reconnect = Off + +[mysqlnd] +mysqlnd.collect_statistics = On +mysqlnd.collect_memory_statistics = Off + +[OCI8] + +[PostgreSQL] +pgsql.allow_persistent = On +pgsql.auto_reset_persistent = Off +pgsql.max_persistent = -1 +pgsql.max_links = -1 +pgsql.ignore_notice = 0 +pgsql.log_notice = 0 + +[Sybase-CT] +sybct.allow_persistent = On +sybct.max_persistent = -1 +sybct.max_links = -1 +sybct.min_server_severity = 10 +sybct.min_client_severity = 10 + +[bcmath] +bcmath.scale = 0 + +[browscap] + +[Session] +session.save_handler = files +session.use_strict_mode = 0 +session.use_cookies = 1 +session.use_only_cookies = 1 +session.name = PHPSESSID +session.auto_start = 0 +session.cookie_lifetime = 0 +session.cookie_path = / +session.cookie_domain = +session.cookie_httponly = +session.serialize_handler = php +session.gc_probability = 0 +session.gc_divisor = 1000 +session.gc_maxlifetime = 1440 +session.referer_check = +session.cache_limiter = nocache +session.cache_expire = 180 +session.use_trans_sid = 0 +session.hash_function = 0 +session.hash_bits_per_character = 5 +url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" + +[MSSQL] +mssql.allow_persistent = On +mssql.max_persistent = -1 +mssql.max_links = -1 +mssql.min_error_severity = 10 +mssql.min_message_severity = 10 +mssql.compatibility_mode = Off +mssql.secure_connection = Off + +[Assertion] + +[COM] + +[mbstring] + +[gd] + +[exif] + +[Tidy] +tidy.clean_output = Off + +[soap] +soap.wsdl_cache_enabled=1 +soap.wsdl_cache_dir="/tmp" +soap.wsdl_cache_ttl=86400 +soap.wsdl_cache_limit = 5 + +[sysvshm] + +[ldap] +ldap.max_links = -1 + +[mcrypt] + +[dba] + +[opcache] + +[curl] + +[openssl] + +; End: diff --git a/Vagrant/resources/malcolm/htadmin/src/bootstrap.css b/Vagrant/resources/malcolm/htadmin/src/bootstrap.css new file mode 100644 index 0000000..94db735 --- /dev/null +++ b/Vagrant/resources/malcolm/htadmin/src/bootstrap.css @@ -0,0 +1,6928 @@ +@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic"); +/*! + * bootswatch v3.4.1 + * Homepage: http://bootswatch.com + * Copyright 2012-2019 Thomas Park + * Licensed under MIT + * Based on Bootstrap +*/ +/*! + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} +body { + margin: 0; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: none; + text-decoration: underline; + text-decoration: underline dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +mark { + background: #ff0; + color: #000; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + box-sizing: content-box; + height: 0; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-appearance: textfield; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + border: 0; + padding: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} +@font-face { + font-family: "Glyphicons Halflings"; + src: url("../fonts/glyphicons-halflings-regular.eot"); + src: url("../fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); +} +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: "Glyphicons Halflings"; + font-style: normal; + font-weight: 400; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.glyphicon-asterisk:before { + content: "\002a"; +} +.glyphicon-plus:before { + content: "\002b"; +} +.glyphicon-euro:before, +.glyphicon-eur:before { + content: "\20ac"; +} +.glyphicon-minus:before { + content: "\2212"; +} +.glyphicon-cloud:before { + content: "\2601"; +} +.glyphicon-envelope:before { + content: "\2709"; +} +.glyphicon-pencil:before { + content: "\270f"; +} +.glyphicon-glass:before { + content: "\e001"; +} +.glyphicon-music:before { + content: "\e002"; +} +.glyphicon-search:before { + content: "\e003"; +} +.glyphicon-heart:before { + content: "\e005"; +} +.glyphicon-star:before { + content: "\e006"; +} +.glyphicon-star-empty:before { + content: "\e007"; +} +.glyphicon-user:before { + content: "\e008"; +} +.glyphicon-film:before { + content: "\e009"; +} +.glyphicon-th-large:before { + content: "\e010"; +} +.glyphicon-th:before { + content: "\e011"; +} +.glyphicon-th-list:before { + content: "\e012"; +} +.glyphicon-ok:before { + content: "\e013"; +} +.glyphicon-remove:before { + content: "\e014"; +} +.glyphicon-zoom-in:before { + content: "\e015"; +} +.glyphicon-zoom-out:before { + content: "\e016"; +} +.glyphicon-off:before { + content: "\e017"; +} +.glyphicon-signal:before { + content: "\e018"; +} +.glyphicon-cog:before { + content: "\e019"; +} +.glyphicon-trash:before { + content: "\e020"; +} +.glyphicon-home:before { + content: "\e021"; +} +.glyphicon-file:before { + content: "\e022"; +} +.glyphicon-time:before { + content: "\e023"; +} +.glyphicon-road:before { + content: "\e024"; +} +.glyphicon-download-alt:before { + content: "\e025"; +} +.glyphicon-download:before { + content: "\e026"; +} +.glyphicon-upload:before { + content: "\e027"; +} +.glyphicon-inbox:before { + content: "\e028"; +} +.glyphicon-play-circle:before { + content: "\e029"; +} +.glyphicon-repeat:before { + content: "\e030"; +} +.glyphicon-refresh:before { + content: "\e031"; +} +.glyphicon-list-alt:before { + content: "\e032"; +} +.glyphicon-lock:before { + content: "\e033"; +} +.glyphicon-flag:before { + content: "\e034"; +} +.glyphicon-headphones:before { + content: "\e035"; +} +.glyphicon-volume-off:before { + content: "\e036"; +} +.glyphicon-volume-down:before { + content: "\e037"; +} +.glyphicon-volume-up:before { + content: "\e038"; +} +.glyphicon-qrcode:before { + content: "\e039"; +} +.glyphicon-barcode:before { + content: "\e040"; +} +.glyphicon-tag:before { + content: "\e041"; +} +.glyphicon-tags:before { + content: "\e042"; +} +.glyphicon-book:before { + content: "\e043"; +} +.glyphicon-bookmark:before { + content: "\e044"; +} +.glyphicon-print:before { + content: "\e045"; +} +.glyphicon-camera:before { + content: "\e046"; +} +.glyphicon-font:before { + content: "\e047"; +} +.glyphicon-bold:before { + content: "\e048"; +} +.glyphicon-italic:before { + content: "\e049"; +} +.glyphicon-text-height:before { + content: "\e050"; +} +.glyphicon-text-width:before { + content: "\e051"; +} +.glyphicon-align-left:before { + content: "\e052"; +} +.glyphicon-align-center:before { + content: "\e053"; +} +.glyphicon-align-right:before { + content: "\e054"; +} +.glyphicon-align-justify:before { + content: "\e055"; +} +.glyphicon-list:before { + content: "\e056"; +} +.glyphicon-indent-left:before { + content: "\e057"; +} +.glyphicon-indent-right:before { + content: "\e058"; +} +.glyphicon-facetime-video:before { + content: "\e059"; +} +.glyphicon-picture:before { + content: "\e060"; +} +.glyphicon-map-marker:before { + content: "\e062"; +} +.glyphicon-adjust:before { + content: "\e063"; +} +.glyphicon-tint:before { + content: "\e064"; +} +.glyphicon-edit:before { + content: "\e065"; +} +.glyphicon-share:before { + content: "\e066"; +} +.glyphicon-check:before { + content: "\e067"; +} +.glyphicon-move:before { + content: "\e068"; +} +.glyphicon-step-backward:before { + content: "\e069"; +} +.glyphicon-fast-backward:before { + content: "\e070"; +} +.glyphicon-backward:before { + content: "\e071"; +} +.glyphicon-play:before { + content: "\e072"; +} +.glyphicon-pause:before { + content: "\e073"; +} +.glyphicon-stop:before { + content: "\e074"; +} +.glyphicon-forward:before { + content: "\e075"; +} +.glyphicon-fast-forward:before { + content: "\e076"; +} +.glyphicon-step-forward:before { + content: "\e077"; +} +.glyphicon-eject:before { + content: "\e078"; +} +.glyphicon-chevron-left:before { + content: "\e079"; +} +.glyphicon-chevron-right:before { + content: "\e080"; +} +.glyphicon-plus-sign:before { + content: "\e081"; +} +.glyphicon-minus-sign:before { + content: "\e082"; +} +.glyphicon-remove-sign:before { + content: "\e083"; +} +.glyphicon-ok-sign:before { + content: "\e084"; +} +.glyphicon-question-sign:before { + content: "\e085"; +} +.glyphicon-info-sign:before { + content: "\e086"; +} +.glyphicon-screenshot:before { + content: "\e087"; +} +.glyphicon-remove-circle:before { + content: "\e088"; +} +.glyphicon-ok-circle:before { + content: "\e089"; +} +.glyphicon-ban-circle:before { + content: "\e090"; +} +.glyphicon-arrow-left:before { + content: "\e091"; +} +.glyphicon-arrow-right:before { + content: "\e092"; +} +.glyphicon-arrow-up:before { + content: "\e093"; +} +.glyphicon-arrow-down:before { + content: "\e094"; +} +.glyphicon-share-alt:before { + content: "\e095"; +} +.glyphicon-resize-full:before { + content: "\e096"; +} +.glyphicon-resize-small:before { + content: "\e097"; +} +.glyphicon-exclamation-sign:before { + content: "\e101"; +} +.glyphicon-gift:before { + content: "\e102"; +} +.glyphicon-leaf:before { + content: "\e103"; +} +.glyphicon-fire:before { + content: "\e104"; +} +.glyphicon-eye-open:before { + content: "\e105"; +} +.glyphicon-eye-close:before { + content: "\e106"; +} +.glyphicon-warning-sign:before { + content: "\e107"; +} +.glyphicon-plane:before { + content: "\e108"; +} +.glyphicon-calendar:before { + content: "\e109"; +} +.glyphicon-random:before { + content: "\e110"; +} +.glyphicon-comment:before { + content: "\e111"; +} +.glyphicon-magnet:before { + content: "\e112"; +} +.glyphicon-chevron-up:before { + content: "\e113"; +} +.glyphicon-chevron-down:before { + content: "\e114"; +} +.glyphicon-retweet:before { + content: "\e115"; +} +.glyphicon-shopping-cart:before { + content: "\e116"; +} +.glyphicon-folder-close:before { + content: "\e117"; +} +.glyphicon-folder-open:before { + content: "\e118"; +} +.glyphicon-resize-vertical:before { + content: "\e119"; +} +.glyphicon-resize-horizontal:before { + content: "\e120"; +} +.glyphicon-hdd:before { + content: "\e121"; +} +.glyphicon-bullhorn:before { + content: "\e122"; +} +.glyphicon-bell:before { + content: "\e123"; +} +.glyphicon-certificate:before { + content: "\e124"; +} +.glyphicon-thumbs-up:before { + content: "\e125"; +} +.glyphicon-thumbs-down:before { + content: "\e126"; +} +.glyphicon-hand-right:before { + content: "\e127"; +} +.glyphicon-hand-left:before { + content: "\e128"; +} +.glyphicon-hand-up:before { + content: "\e129"; +} +.glyphicon-hand-down:before { + content: "\e130"; +} +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.glyphicon-globe:before { + content: "\e135"; +} +.glyphicon-wrench:before { + content: "\e136"; +} +.glyphicon-tasks:before { + content: "\e137"; +} +.glyphicon-filter:before { + content: "\e138"; +} +.glyphicon-briefcase:before { + content: "\e139"; +} +.glyphicon-fullscreen:before { + content: "\e140"; +} +.glyphicon-dashboard:before { + content: "\e141"; +} +.glyphicon-paperclip:before { + content: "\e142"; +} +.glyphicon-heart-empty:before { + content: "\e143"; +} +.glyphicon-link:before { + content: "\e144"; +} +.glyphicon-phone:before { + content: "\e145"; +} +.glyphicon-pushpin:before { + content: "\e146"; +} +.glyphicon-usd:before { + content: "\e148"; +} +.glyphicon-gbp:before { + content: "\e149"; +} +.glyphicon-sort:before { + content: "\e150"; +} +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.glyphicon-sort-by-order:before { + content: "\e153"; +} +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.glyphicon-unchecked:before { + content: "\e157"; +} +.glyphicon-expand:before { + content: "\e158"; +} +.glyphicon-collapse-down:before { + content: "\e159"; +} +.glyphicon-collapse-up:before { + content: "\e160"; +} +.glyphicon-log-in:before { + content: "\e161"; +} +.glyphicon-flash:before { + content: "\e162"; +} +.glyphicon-log-out:before { + content: "\e163"; +} +.glyphicon-new-window:before { + content: "\e164"; +} +.glyphicon-record:before { + content: "\e165"; +} +.glyphicon-save:before { + content: "\e166"; +} +.glyphicon-open:before { + content: "\e167"; +} +.glyphicon-saved:before { + content: "\e168"; +} +.glyphicon-import:before { + content: "\e169"; +} +.glyphicon-export:before { + content: "\e170"; +} +.glyphicon-send:before { + content: "\e171"; +} +.glyphicon-floppy-disk:before { + content: "\e172"; +} +.glyphicon-floppy-saved:before { + content: "\e173"; +} +.glyphicon-floppy-remove:before { + content: "\e174"; +} +.glyphicon-floppy-save:before { + content: "\e175"; +} +.glyphicon-floppy-open:before { + content: "\e176"; +} +.glyphicon-credit-card:before { + content: "\e177"; +} +.glyphicon-transfer:before { + content: "\e178"; +} +.glyphicon-cutlery:before { + content: "\e179"; +} +.glyphicon-header:before { + content: "\e180"; +} +.glyphicon-compressed:before { + content: "\e181"; +} +.glyphicon-earphone:before { + content: "\e182"; +} +.glyphicon-phone-alt:before { + content: "\e183"; +} +.glyphicon-tower:before { + content: "\e184"; +} +.glyphicon-stats:before { + content: "\e185"; +} +.glyphicon-sd-video:before { + content: "\e186"; +} +.glyphicon-hd-video:before { + content: "\e187"; +} +.glyphicon-subtitles:before { + content: "\e188"; +} +.glyphicon-sound-stereo:before { + content: "\e189"; +} +.glyphicon-sound-dolby:before { + content: "\e190"; +} +.glyphicon-sound-5-1:before { + content: "\e191"; +} +.glyphicon-sound-6-1:before { + content: "\e192"; +} +.glyphicon-sound-7-1:before { + content: "\e193"; +} +.glyphicon-copyright-mark:before { + content: "\e194"; +} +.glyphicon-registration-mark:before { + content: "\e195"; +} +.glyphicon-cloud-download:before { + content: "\e197"; +} +.glyphicon-cloud-upload:before { + content: "\e198"; +} +.glyphicon-tree-conifer:before { + content: "\e199"; +} +.glyphicon-tree-deciduous:before { + content: "\e200"; +} +.glyphicon-cd:before { + content: "\e201"; +} +.glyphicon-save-file:before { + content: "\e202"; +} +.glyphicon-open-file:before { + content: "\e203"; +} +.glyphicon-level-up:before { + content: "\e204"; +} +.glyphicon-copy:before { + content: "\e205"; +} +.glyphicon-paste:before { + content: "\e206"; +} +.glyphicon-alert:before { + content: "\e209"; +} +.glyphicon-equalizer:before { + content: "\e210"; +} +.glyphicon-king:before { + content: "\e211"; +} +.glyphicon-queen:before { + content: "\e212"; +} +.glyphicon-pawn:before { + content: "\e213"; +} +.glyphicon-bishop:before { + content: "\e214"; +} +.glyphicon-knight:before { + content: "\e215"; +} +.glyphicon-baby-formula:before { + content: "\e216"; +} +.glyphicon-tent:before { + content: "\26fa"; +} +.glyphicon-blackboard:before { + content: "\e218"; +} +.glyphicon-bed:before { + content: "\e219"; +} +.glyphicon-apple:before { + content: "\f8ff"; +} +.glyphicon-erase:before { + content: "\e221"; +} +.glyphicon-hourglass:before { + content: "\231b"; +} +.glyphicon-lamp:before { + content: "\e223"; +} +.glyphicon-duplicate:before { + content: "\e224"; +} +.glyphicon-piggy-bank:before { + content: "\e225"; +} +.glyphicon-scissors:before { + content: "\e226"; +} +.glyphicon-bitcoin:before { + content: "\e227"; +} +.glyphicon-btc:before { + content: "\e227"; +} +.glyphicon-xbt:before { + content: "\e227"; +} +.glyphicon-yen:before { + content: "\00a5"; +} +.glyphicon-jpy:before { + content: "\00a5"; +} +.glyphicon-ruble:before { + content: "\20bd"; +} +.glyphicon-rub:before { + content: "\20bd"; +} +.glyphicon-scale:before { + content: "\e230"; +} +.glyphicon-ice-lolly:before { + content: "\e231"; +} +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; +} +.glyphicon-education:before { + content: "\e233"; +} +.glyphicon-option-horizontal:before { + content: "\e234"; +} +.glyphicon-option-vertical:before { + content: "\e235"; +} +.glyphicon-menu-hamburger:before { + content: "\e236"; +} +.glyphicon-modal-window:before { + content: "\e237"; +} +.glyphicon-oil:before { + content: "\e238"; +} +.glyphicon-grain:before { + content: "\e239"; +} +.glyphicon-sunglasses:before { + content: "\e240"; +} +.glyphicon-text-size:before { + content: "\e241"; +} +.glyphicon-text-color:before { + content: "\e242"; +} +.glyphicon-text-background:before { + content: "\e243"; +} +.glyphicon-object-align-top:before { + content: "\e244"; +} +.glyphicon-object-align-bottom:before { + content: "\e245"; +} +.glyphicon-object-align-horizontal:before { + content: "\e246"; +} +.glyphicon-object-align-left:before { + content: "\e247"; +} +.glyphicon-object-align-vertical:before { + content: "\e248"; +} +.glyphicon-object-align-right:before { + content: "\e249"; +} +.glyphicon-triangle-right:before { + content: "\e250"; +} +.glyphicon-triangle-left:before { + content: "\e251"; +} +.glyphicon-triangle-bottom:before { + content: "\e252"; +} +.glyphicon-triangle-top:before { + content: "\e253"; +} +.glyphicon-console:before { + content: "\e254"; +} +.glyphicon-superscript:before { + content: "\e255"; +} +.glyphicon-subscript:before { + content: "\e256"; +} +.glyphicon-menu-left:before { + content: "\e257"; +} +.glyphicon-menu-right:before { + content: "\e258"; +} +.glyphicon-menu-down:before { + content: "\e259"; +} +.glyphicon-menu-up:before { + content: "\e260"; +} +* { + box-sizing: border-box; +} +*:before, +*:after { + box-sizing: border-box; +} +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 15px; + line-height: 1.42857143; + color: #ffffff; + background-color: #222222; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: #0ce3ac; + text-decoration: none; +} +a:hover, +a:focus { + color: #0ce3ac; + text-decoration: underline; +} +a:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +figure { + margin: 0; +} +img { + vertical-align: middle; +} +.img-responsive, +.thumbnail > img, +.thumbnail a > img, +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: 6px; +} +.img-thumbnail { + padding: 2px; + line-height: 1.42857143; + background-color: #222222; + border: 1px solid #464545; + border-radius: 4px; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 21px; + margin-bottom: 21px; + border: 0; + border-top: 1px solid #464545; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +[role="button"] { + cursor: pointer; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 400; + line-height: 1.1; + color: inherit; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: 400; + line-height: 1; + color: #999999; +} +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 21px; + margin-bottom: 10.5px; +} +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 10.5px; + margin-bottom: 10.5px; +} +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; +} +h1, +.h1 { + font-size: 39px; +} +h2, +.h2 { + font-size: 32px; +} +h3, +.h3 { + font-size: 26px; +} +h4, +.h4 { + font-size: 19px; +} +h5, +.h5 { + font-size: 15px; +} +h6, +.h6 { + font-size: 13px; +} +p { + margin: 0 0 10.5px; +} +.lead { + margin-bottom: 21px; + font-size: 17px; + font-weight: 300; + line-height: 1.4; +} +@media (min-width: 768px) { + .lead { + font-size: 22.5px; + } +} +small, +.small { + font-size: 86%; +} +mark, +.mark { + padding: .2em; + background-color: #f39c12; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-justify { + text-align: justify; +} +.text-nowrap { + white-space: nowrap; +} +.text-lowercase { + text-transform: lowercase; +} +.text-uppercase { + text-transform: uppercase; +} +.text-capitalize { + text-transform: capitalize; +} +.text-muted { + color: #999999; +} +.text-primary { + color: #375a7f; +} +a.text-primary:hover, +a.text-primary:focus { + color: #28415b; +} +.text-success { + color: #ffffff; +} +a.text-success:hover, +a.text-success:focus { + color: #e6e6e6; +} +.text-info { + color: #ffffff; +} +a.text-info:hover, +a.text-info:focus { + color: #e6e6e6; +} +.text-warning { + color: #ffffff; +} +a.text-warning:hover, +a.text-warning:focus { + color: #e6e6e6; +} +.text-danger { + color: #ffffff; +} +a.text-danger:hover, +a.text-danger:focus { + color: #e6e6e6; +} +.bg-primary { + color: #fff; + background-color: #375a7f; +} +a.bg-primary:hover, +a.bg-primary:focus { + background-color: #28415b; +} +.bg-success { + background-color: #00bc8c; +} +a.bg-success:hover, +a.bg-success:focus { + background-color: #008966; +} +.bg-info { + background-color: #3498db; +} +a.bg-info:hover, +a.bg-info:focus { + background-color: #217dbb; +} +.bg-warning { + background-color: #f39c12; +} +a.bg-warning:hover, +a.bg-warning:focus { + background-color: #c87f0a; +} +.bg-danger { + background-color: #e74c3c; +} +a.bg-danger:hover, +a.bg-danger:focus { + background-color: #d62c1a; +} +.page-header { + padding-bottom: 9.5px; + margin: 42px 0 21px; + border-bottom: 1px solid transparent; +} +ul, +ol { + margin-top: 0; + margin-bottom: 10.5px; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + list-style: none; + margin-left: -5px; +} +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} +dl { + margin-top: 0; + margin-bottom: 21px; +} +dt, +dd { + line-height: 1.42857143; +} +dt { + font-weight: 700; +} +dd { + margin-left: 0; +} +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } +} +abbr[title], +abbr[data-original-title] { + cursor: help; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 10.5px 21px; + margin: 0 0 21px; + font-size: 18.75px; + border-left: 5px solid #464545; +} +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #999999; +} +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: "\2014 \00A0"; +} +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #464545; + border-left: 0; +} +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ""; +} +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: "\00A0 \2014"; +} +address { + margin-bottom: 21px; + font-style: normal; + line-height: 1.42857143; +} +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; +} +kbd { + padding: 2px 4px; + font-size: 90%; + color: #ffffff; + background-color: #333333; + border-radius: 3px; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; + box-shadow: none; +} +pre { + display: block; + padding: 10px; + margin: 0 0 10.5px; + font-size: 14px; + line-height: 1.42857143; + color: #303030; + word-break: break-all; + word-wrap: break-word; + background-color: #ebebeb; + border: 1px solid #cccccc; + border-radius: 4px; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 768px) { + .container { + width: 750px; + } +} +@media (min-width: 992px) { + .container { + width: 970px; + } +} +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +.row { + margin-right: -15px; + margin-left: -15px; +} +.row-no-gutters { + margin-right: 0; + margin-left: 0; +} +.row-no-gutters [class*="col-"] { + padding-right: 0; + padding-left: 0; +} +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-11 { + width: 91.66666667%; +} +.col-xs-10 { + width: 83.33333333%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-8 { + width: 66.66666667%; +} +.col-xs-7 { + width: 58.33333333%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-5 { + width: 41.66666667%; +} +.col-xs-4 { + width: 33.33333333%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-2 { + width: 16.66666667%; +} +.col-xs-1 { + width: 8.33333333%; +} +.col-xs-pull-12 { + right: 100%; +} +.col-xs-pull-11 { + right: 91.66666667%; +} +.col-xs-pull-10 { + right: 83.33333333%; +} +.col-xs-pull-9 { + right: 75%; +} +.col-xs-pull-8 { + right: 66.66666667%; +} +.col-xs-pull-7 { + right: 58.33333333%; +} +.col-xs-pull-6 { + right: 50%; +} +.col-xs-pull-5 { + right: 41.66666667%; +} +.col-xs-pull-4 { + right: 33.33333333%; +} +.col-xs-pull-3 { + right: 25%; +} +.col-xs-pull-2 { + right: 16.66666667%; +} +.col-xs-pull-1 { + right: 8.33333333%; +} +.col-xs-pull-0 { + right: auto; +} +.col-xs-push-12 { + left: 100%; +} +.col-xs-push-11 { + left: 91.66666667%; +} +.col-xs-push-10 { + left: 83.33333333%; +} +.col-xs-push-9 { + left: 75%; +} +.col-xs-push-8 { + left: 66.66666667%; +} +.col-xs-push-7 { + left: 58.33333333%; +} +.col-xs-push-6 { + left: 50%; +} +.col-xs-push-5 { + left: 41.66666667%; +} +.col-xs-push-4 { + left: 33.33333333%; +} +.col-xs-push-3 { + left: 25%; +} +.col-xs-push-2 { + left: 16.66666667%; +} +.col-xs-push-1 { + left: 8.33333333%; +} +.col-xs-push-0 { + left: auto; +} +.col-xs-offset-12 { + margin-left: 100%; +} +.col-xs-offset-11 { + margin-left: 91.66666667%; +} +.col-xs-offset-10 { + margin-left: 83.33333333%; +} +.col-xs-offset-9 { + margin-left: 75%; +} +.col-xs-offset-8 { + margin-left: 66.66666667%; +} +.col-xs-offset-7 { + margin-left: 58.33333333%; +} +.col-xs-offset-6 { + margin-left: 50%; +} +.col-xs-offset-5 { + margin-left: 41.66666667%; +} +.col-xs-offset-4 { + margin-left: 33.33333333%; +} +.col-xs-offset-3 { + margin-left: 25%; +} +.col-xs-offset-2 { + margin-left: 16.66666667%; +} +.col-xs-offset-1 { + margin-left: 8.33333333%; +} +.col-xs-offset-0 { + margin-left: 0%; +} +@media (min-width: 768px) { + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 992px) { + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: auto; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 1200px) { + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0%; + } +} +table { + background-color: transparent; +} +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #999999; + text-align: left; +} +th { + text-align: left; +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 21px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #464545; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #464545; +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid #464545; +} +.table .table { + background-color: #222222; +} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid #464545; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #464545; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #3d3d3d; +} +.table-hover > tbody > tr:hover { + background-color: #464545; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #464545; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #393838; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #00bc8c; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #00a379; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #3498db; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #258cd1; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #f39c12; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #e08e0b; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #e74c3c; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #e43725; +} +.table-responsive { + min-height: .01%; + overflow-x: auto; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15.75px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #464545; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 21px; + font-size: 22.5px; + line-height: inherit; + color: #ffffff; + border: 0; + border-bottom: 1px solid transparent; +} +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: 700; +} +input[type="search"] { + box-sizing: border-box; + -webkit-appearance: none; + appearance: none; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} +input[type="file"] { + display: block; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 11px; + font-size: 15px; + line-height: 1.42857143; + color: #464545; +} +.form-control { + display: block; + width: 100%; + height: 45px; + padding: 10px 15px; + font-size: 15px; + line-height: 1.42857143; + color: #464545; + background-color: #ffffff; + background-image: none; + border: 1px solid #f1f1f1; + border-radius: 4px; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.form-control:focus { + border-color: #ffffff; + outline: 0; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(255, 255, 255, 0.6); +} +.form-control::-moz-placeholder { + color: #999999; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #999999; +} +.form-control::-webkit-input-placeholder { + color: #999999; +} +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #ebebeb; + opacity: 1; +} +.form-control[disabled], +fieldset[disabled] .form-control { + cursor: not-allowed; +} +textarea.form-control { + height: auto; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"].form-control, + input[type="time"].form-control, + input[type="datetime-local"].form-control, + input[type="month"].form-control { + line-height: 45px; + } + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .input-group-sm input[type="date"], + .input-group-sm input[type="time"], + .input-group-sm input[type="datetime-local"], + .input-group-sm input[type="month"] { + line-height: 35px; + } + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .input-group-lg input[type="date"], + .input-group-lg input[type="time"], + .input-group-lg input[type="datetime-local"], + .input-group-lg input[type="month"] { + line-height: 66px; + } +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} +.radio label, +.checkbox label { + min-height: 21px; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + vertical-align: middle; + cursor: pointer; +} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +.form-control-static { + min-height: 36px; + padding-top: 11px; + padding-bottom: 11px; + margin-bottom: 0; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} +.input-sm { + height: 35px; + padding: 6px 9px; + font-size: 13px; + line-height: 1.5; + border-radius: 3px; +} +select.input-sm { + height: 35px; + line-height: 35px; +} +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} +.form-group-sm .form-control { + height: 35px; + padding: 6px 9px; + font-size: 13px; + line-height: 1.5; + border-radius: 3px; +} +.form-group-sm select.form-control { + height: 35px; + line-height: 35px; +} +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control { + height: auto; +} +.form-group-sm .form-control-static { + height: 35px; + min-height: 34px; + padding: 7px 9px; + font-size: 13px; + line-height: 1.5; +} +.input-lg { + height: 66px; + padding: 18px 27px; + font-size: 19px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-lg { + height: 66px; + line-height: 66px; +} +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} +.form-group-lg .form-control { + height: 66px; + padding: 18px 27px; + font-size: 19px; + line-height: 1.3333333; + border-radius: 6px; +} +.form-group-lg select.form-control { + height: 66px; + line-height: 66px; +} +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control { + height: auto; +} +.form-group-lg .form-control-static { + height: 66px; + min-height: 40px; + padding: 19px 27px; + font-size: 19px; + line-height: 1.3333333; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 56.25px; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 45px; + height: 45px; + line-height: 45px; + text-align: center; + pointer-events: none; +} +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { + width: 66px; + height: 66px; + line-height: 66px; +} +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { + width: 35px; + height: 35px; + line-height: 35px; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #ffffff; +} +.has-success .form-control { + border-color: #ffffff; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-success .form-control:focus { + border-color: #e6e6e6; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; +} +.has-success .input-group-addon { + color: #ffffff; + background-color: #00bc8c; + border-color: #ffffff; +} +.has-success .form-control-feedback { + color: #ffffff; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #ffffff; +} +.has-warning .form-control { + border-color: #ffffff; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-warning .form-control:focus { + border-color: #e6e6e6; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; +} +.has-warning .input-group-addon { + color: #ffffff; + background-color: #f39c12; + border-color: #ffffff; +} +.has-warning .form-control-feedback { + color: #ffffff; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #ffffff; +} +.has-error .form-control { + border-color: #ffffff; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-error .form-control:focus { + border-color: #e6e6e6; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff; +} +.has-error .input-group-addon { + color: #ffffff; + background-color: #e74c3c; + border-color: #ffffff; +} +.has-error .form-control-feedback { + color: #ffffff; +} +.has-feedback label ~ .form-control-feedback { + top: 26px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #ffffff; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 11px; + margin-top: 0; + margin-bottom: 0; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 32px; +} +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 11px; + margin-bottom: 0; + text-align: right; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 19px; + font-size: 19px; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 7px; + font-size: 13px; + } +} +.btn { + display: inline-block; + margin-bottom: 0; + font-weight: normal; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + padding: 10px 15px; + font-size: 15px; + line-height: 1.42857143; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus { + color: #ffffff; + text-decoration: none; +} +.btn:active, +.btn.active { + background-image: none; + outline: 0; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + filter: alpha(opacity=65); + opacity: 0.65; + box-shadow: none; +} +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; +} +.btn-default { + color: #ffffff; + background-color: #464545; + border-color: #464545; +} +.btn-default:focus, +.btn-default.focus { + color: #ffffff; + background-color: #2c2c2c; + border-color: #060606; +} +.btn-default:hover { + color: #ffffff; + background-color: #2c2c2c; + border-color: #272727; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #ffffff; + background-color: #2c2c2c; + background-image: none; + border-color: #272727; +} +.btn-default:active:hover, +.btn-default.active:hover, +.open > .dropdown-toggle.btn-default:hover, +.btn-default:active:focus, +.btn-default.active:focus, +.open > .dropdown-toggle.btn-default:focus, +.btn-default:active.focus, +.btn-default.active.focus, +.open > .dropdown-toggle.btn-default.focus { + color: #ffffff; + background-color: #1a1a1a; + border-color: #060606; +} +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus { + background-color: #464545; + border-color: #464545; +} +.btn-default .badge { + color: #464545; + background-color: #ffffff; +} +.btn-primary { + color: #ffffff; + background-color: #375a7f; + border-color: #375a7f; +} +.btn-primary:focus, +.btn-primary.focus { + color: #ffffff; + background-color: #28415b; + border-color: #101b26; +} +.btn-primary:hover { + color: #ffffff; + background-color: #28415b; + border-color: #253c54; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #ffffff; + background-color: #28415b; + background-image: none; + border-color: #253c54; +} +.btn-primary:active:hover, +.btn-primary.active:hover, +.open > .dropdown-toggle.btn-primary:hover, +.btn-primary:active:focus, +.btn-primary.active:focus, +.open > .dropdown-toggle.btn-primary:focus, +.btn-primary:active.focus, +.btn-primary.active.focus, +.open > .dropdown-toggle.btn-primary.focus { + color: #ffffff; + background-color: #1d2f43; + border-color: #101b26; +} +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus { + background-color: #375a7f; + border-color: #375a7f; +} +.btn-primary .badge { + color: #375a7f; + background-color: #ffffff; +} +.btn-success { + color: #ffffff; + background-color: #00bc8c; + border-color: #00bc8c; +} +.btn-success:focus, +.btn-success.focus { + color: #ffffff; + background-color: #008966; + border-color: #003d2d; +} +.btn-success:hover { + color: #ffffff; + background-color: #008966; + border-color: #007f5e; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #ffffff; + background-color: #008966; + background-image: none; + border-color: #007f5e; +} +.btn-success:active:hover, +.btn-success.active:hover, +.open > .dropdown-toggle.btn-success:hover, +.btn-success:active:focus, +.btn-success.active:focus, +.open > .dropdown-toggle.btn-success:focus, +.btn-success:active.focus, +.btn-success.active.focus, +.open > .dropdown-toggle.btn-success.focus { + color: #ffffff; + background-color: #00654b; + border-color: #003d2d; +} +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus { + background-color: #00bc8c; + border-color: #00bc8c; +} +.btn-success .badge { + color: #00bc8c; + background-color: #ffffff; +} +.btn-info { + color: #ffffff; + background-color: #3498db; + border-color: #3498db; +} +.btn-info:focus, +.btn-info.focus { + color: #ffffff; + background-color: #217dbb; + border-color: #16527a; +} +.btn-info:hover { + color: #ffffff; + background-color: #217dbb; + border-color: #2077b2; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #ffffff; + background-color: #217dbb; + background-image: none; + border-color: #2077b2; +} +.btn-info:active:hover, +.btn-info.active:hover, +.open > .dropdown-toggle.btn-info:hover, +.btn-info:active:focus, +.btn-info.active:focus, +.open > .dropdown-toggle.btn-info:focus, +.btn-info:active.focus, +.btn-info.active.focus, +.open > .dropdown-toggle.btn-info.focus { + color: #ffffff; + background-color: #1c699d; + border-color: #16527a; +} +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus { + background-color: #3498db; + border-color: #3498db; +} +.btn-info .badge { + color: #3498db; + background-color: #ffffff; +} +.btn-warning { + color: #ffffff; + background-color: #f39c12; + border-color: #f39c12; +} +.btn-warning:focus, +.btn-warning.focus { + color: #ffffff; + background-color: #c87f0a; + border-color: #7f5006; +} +.btn-warning:hover { + color: #ffffff; + background-color: #c87f0a; + border-color: #be780a; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #ffffff; + background-color: #c87f0a; + background-image: none; + border-color: #be780a; +} +.btn-warning:active:hover, +.btn-warning.active:hover, +.open > .dropdown-toggle.btn-warning:hover, +.btn-warning:active:focus, +.btn-warning.active:focus, +.open > .dropdown-toggle.btn-warning:focus, +.btn-warning:active.focus, +.btn-warning.active.focus, +.open > .dropdown-toggle.btn-warning.focus { + color: #ffffff; + background-color: #a66908; + border-color: #7f5006; +} +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus { + background-color: #f39c12; + border-color: #f39c12; +} +.btn-warning .badge { + color: #f39c12; + background-color: #ffffff; +} +.btn-danger { + color: #ffffff; + background-color: #e74c3c; + border-color: #e74c3c; +} +.btn-danger:focus, +.btn-danger.focus { + color: #ffffff; + background-color: #d62c1a; + border-color: #921e12; +} +.btn-danger:hover { + color: #ffffff; + background-color: #d62c1a; + border-color: #cd2a19; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #ffffff; + background-color: #d62c1a; + background-image: none; + border-color: #cd2a19; +} +.btn-danger:active:hover, +.btn-danger.active:hover, +.open > .dropdown-toggle.btn-danger:hover, +.btn-danger:active:focus, +.btn-danger.active:focus, +.open > .dropdown-toggle.btn-danger:focus, +.btn-danger:active.focus, +.btn-danger.active.focus, +.open > .dropdown-toggle.btn-danger.focus { + color: #ffffff; + background-color: #b62516; + border-color: #921e12; +} +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus { + background-color: #e74c3c; + border-color: #e74c3c; +} +.btn-danger .badge { + color: #e74c3c; + background-color: #ffffff; +} +.btn-link { + font-weight: 400; + color: #0ce3ac; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #0ce3ac; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #999999; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 18px 27px; + font-size: 19px; + line-height: 1.3333333; + border-radius: 6px; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 6px 9px; + font-size: 13px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 13px; + line-height: 1.5; + border-radius: 3px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.fade { + opacity: 0; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +tr.collapse.in { + display: table-row; +} +tbody.collapse.in { + display: table-row-group; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition-property: height, visibility; + transition-duration: 0.35s; + transition-timing-function: ease; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid \9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 15px; + text-align: left; + list-style: none; + background-color: #303030; + background-clip: padding-box; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9.5px 0; + overflow: hidden; + background-color: #464545; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: #ebebeb; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #375a7f; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #375a7f; + outline: 0; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-menu-right { + right: 0; + left: auto; +} +.dropdown-menu-left { + right: auto; + left: 0; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 13px; + line-height: 1.42857143; + color: #999999; + white-space: nowrap; +} +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid \9; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar { + margin-left: -5px; +} +.btn-toolbar .btn, +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; +} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} +.btn-group.open .dropdown-toggle { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn-group.open .dropdown-toggle.btn-link { + box-shadow: none; +} +.btn .caret { + margin-left: 0; +} +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.btn-group-vertical > .btn-group > .btn { + float: none; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; +} +.btn-group-justified > .btn-group .btn { + width: 100%; +} +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; +} +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group .form-control:focus { + z-index: 3; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 66px; + padding: 18px 27px; + font-size: 19px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 66px; + line-height: 66px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 35px; + padding: 6px 9px; + font-size: 13px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 35px; + line-height: 35px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 10px 15px; + font-size: 15px; + font-weight: 400; + line-height: 1; + color: #464545; + text-align: center; + background-color: #464545; + border: 1px solid transparent; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 6px 9px; + font-size: 13px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 18px 27px; + font-size: 19px; + border-radius: 6px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -1px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + z-index: 2; + margin-left: -1px; +} +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #303030; +} +.nav > li.disabled > a { + color: #605e5e; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #605e5e; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #303030; + border-color: #0ce3ac; +} +.nav .nav-divider { + height: 1px; + margin: 9.5px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #464545; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #464545 #464545 #464545; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #00bc8c; + cursor: default; + background-color: #222222; + border: 1px solid #464545; + border-bottom-color: transparent; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #ebebeb; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ebebeb; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #222222; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 4px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #ffffff; + background-color: #375a7f; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.nav-justified { + width: 100%; +} +.nav-justified > li { + float: none; +} +.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs-justified { + border-bottom: 0; +} +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #ebebeb; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ebebeb; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #222222; + } +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar { + position: relative; + min-height: 60px; + margin-bottom: 21px; + border: 1px solid transparent; +} +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} +.navbar-brand { + float: left; + height: 60px; + padding: 19.5px 15px; + font-size: 19px; + line-height: 21px; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +.navbar-brand > img { + display: block; +} +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-right: 15px; + margin-top: 13px; + margin-bottom: 13px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.navbar-toggle:focus { + outline: 0; +} +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} +.navbar-nav { + margin: 9.75px -15px; +} +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 21px; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 21px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 19.5px; + padding-bottom: 19.5px; + } +} +.navbar-form { + padding: 10px 15px; + margin-right: -15px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + margin-top: 7.5px; + margin-bottom: 7.5px; +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + box-shadow: none; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-btn { + margin-top: 7.5px; + margin-bottom: 7.5px; +} +.navbar-btn.btn-sm { + margin-top: 12.5px; + margin-bottom: 12.5px; +} +.navbar-btn.btn-xs { + margin-top: 19px; + margin-bottom: 19px; +} +.navbar-text { + margin-top: 19.5px; + margin-bottom: 19.5px; +} +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } +} +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -15px; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } +} +.navbar-default { + background-color: #375a7f; + border-color: transparent; +} +.navbar-default .navbar-brand { + color: #ffffff; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #00bc8c; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #ffffff; +} +.navbar-default .navbar-nav > li > a { + color: #ffffff; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #00bc8c; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #28415b; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #cccccc; + background-color: transparent; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #ffffff; + background-color: #28415b; +} +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #ffffff; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #00bc8c; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #ffffff; + background-color: #28415b; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #cccccc; + background-color: transparent; + } +} +.navbar-default .navbar-toggle { + border-color: #28415b; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #28415b; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #ffffff; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: transparent; +} +.navbar-default .navbar-link { + color: #ffffff; +} +.navbar-default .navbar-link:hover { + color: #00bc8c; +} +.navbar-default .btn-link { + color: #ffffff; +} +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #00bc8c; +} +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #cccccc; +} +.navbar-inverse { + background-color: #00bc8c; + border-color: transparent; +} +.navbar-inverse .navbar-brand { + color: #ffffff; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #375a7f; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: #ffffff; +} +.navbar-inverse .navbar-nav > li > a { + color: #ffffff; +} +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #375a7f; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #00a379; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #aaaaaa; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #ffffff; + background-color: #00a379; +} +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #ffffff; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #375a7f; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #ffffff; + background-color: #00a379; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #aaaaaa; + background-color: transparent; + } +} +.navbar-inverse .navbar-toggle { + border-color: #008966; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #008966; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #ffffff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #009871; +} +.navbar-inverse .navbar-link { + color: #ffffff; +} +.navbar-inverse .navbar-link:hover { + color: #375a7f; +} +.navbar-inverse .btn-link { + color: #ffffff; +} +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #375a7f; +} +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #aaaaaa; +} +.breadcrumb { + padding: 8px 15px; + margin-bottom: 21px; + list-style: none; + background-color: #464545; + border-radius: 4px; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + padding: 0 5px; + color: #ffffff; + content: "/\00a0"; +} +.breadcrumb > .active { + color: #999999; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 21px 0; + border-radius: 4px; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 10px 15px; + margin-left: -1px; + line-height: 1.42857143; + color: #ffffff; + text-decoration: none; + background-color: #00bc8c; + border: 1px solid transparent; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + z-index: 2; + color: #ffffff; + background-color: #00dba3; + border-color: transparent; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 3; + color: #ffffff; + cursor: default; + background-color: #00dba3; + border-color: transparent; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #ffffff; + cursor: not-allowed; + background-color: #007053; + border-color: transparent; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 18px 27px; + font-size: 19px; + line-height: 1.3333333; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 6px 9px; + font-size: 13px; + line-height: 1.5; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} +.pager { + padding-left: 0; + margin: 21px 0; + text-align: center; + list-style: none; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #00bc8c; + border: 1px solid transparent; + border-radius: 15px; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #00dba3; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #dddddd; + cursor: not-allowed; + background-color: #00bc8c; +} +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: 700; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +a.label:hover, +a.label:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.btn .label { + position: relative; + top: -1px; +} +.label-default { + background-color: #464545; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #2c2c2c; +} +.label-primary { + background-color: #375a7f; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #28415b; +} +.label-success { + background-color: #00bc8c; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #008966; +} +.label-info { + background-color: #3498db; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #217dbb; +} +.label-warning { + background-color: #f39c12; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #c87f0a; +} +.label-danger { + background-color: #e74c3c; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #d62c1a; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 13px; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: #464545; + border-radius: 10px; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.btn-xs .badge, +.btn-group-xs > .btn .badge { + top: 0; + padding: 1px 5px; +} +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #375a7f; + background-color: #ffffff; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.jumbotron { + padding-top: 30px; + padding-bottom: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #303030; +} +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} +.jumbotron p { + margin-bottom: 15px; + font-size: 23px; + font-weight: 200; +} +.jumbotron > hr { + border-top-color: #161616; +} +.container .jumbotron, +.container-fluid .jumbotron { + padding-right: 15px; + padding-left: 15px; + border-radius: 6px; +} +.jumbotron .container { + max-width: 100%; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron, + .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 68px; + } +} +.thumbnail { + display: block; + padding: 2px; + margin-bottom: 21px; + line-height: 1.42857143; + background-color: #222222; + border: 1px solid #464545; + border-radius: 4px; + transition: border 0.2s ease-in-out; +} +.thumbnail > img, +.thumbnail a > img { + margin-right: auto; + margin-left: auto; +} +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #0ce3ac; +} +.thumbnail .caption { + padding: 9px; + color: #ffffff; +} +.alert { + padding: 15px; + margin-bottom: 21px; + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + color: #ffffff; + background-color: #00bc8c; + border-color: #00bc8c; +} +.alert-success hr { + border-top-color: #00a379; +} +.alert-success .alert-link { + color: #e6e6e6; +} +.alert-info { + color: #ffffff; + background-color: #3498db; + border-color: #3498db; +} +.alert-info hr { + border-top-color: #258cd1; +} +.alert-info .alert-link { + color: #e6e6e6; +} +.alert-warning { + color: #ffffff; + background-color: #f39c12; + border-color: #f39c12; +} +.alert-warning hr { + border-top-color: #e08e0b; +} +.alert-warning .alert-link { + color: #e6e6e6; +} +.alert-danger { + color: #ffffff; + background-color: #e74c3c; + border-color: #e74c3c; +} +.alert-danger hr { + border-top-color: #e43725; +} +.alert-danger .alert-link { + color: #e6e6e6; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.progress { + height: 21px; + margin-bottom: 21px; + overflow: hidden; + background-color: #ebebeb; + border-radius: 4px; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} +.progress-bar { + float: left; + width: 0%; + height: 100%; + font-size: 13px; + line-height: 21px; + color: #ffffff; + text-align: center; + background-color: #375a7f; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + transition: width 0.6s ease; +} +.progress-striped .progress-bar, +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} +.progress.active .progress-bar, +.progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-bar-success { + background-color: #00bc8c; +} +.progress-striped .progress-bar-success { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-info { + background-color: #3498db; +} +.progress-striped .progress-bar-info { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-warning { + background-color: #f39c12; +} +.progress-striped .progress-bar-warning { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-danger { + background-color: #e74c3c; +} +.progress-striped .progress-bar-danger { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media, +.media-body { + overflow: hidden; + zoom: 1; +} +.media-body { + width: 10000px; +} +.media-object { + display: block; +} +.media-object.img-thumbnail { + max-width: none; +} +.media-right, +.media > .pull-right { + padding-left: 10px; +} +.media-left, +.media > .pull-left { + padding-right: 10px; +} +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; +} +.media-middle { + vertical-align: middle; +} +.media-bottom { + vertical-align: bottom; +} +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} +.media-list { + padding-left: 0; + list-style: none; +} +.list-group { + padding-left: 0; + margin-bottom: 20px; +} +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #303030; + border: 1px solid #464545; +} +.list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + color: #999999; + cursor: not-allowed; + background-color: #ebebeb; +} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #999999; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #ffffff; + background-color: #375a7f; + border-color: #375a7f; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #a8c0da; +} +a.list-group-item, +button.list-group-item { + color: #0ce3ac; +} +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #0bcb9a; +} +a.list-group-item:hover, +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { + color: #0ce3ac; + text-decoration: none; + background-color: transparent; +} +button.list-group-item { + width: 100%; + text-align: left; +} +.list-group-item-success { + color: #ffffff; + background-color: #00bc8c; +} +a.list-group-item-success, +button.list-group-item-success { + color: #ffffff; +} +a.list-group-item-success .list-group-item-heading, +button.list-group-item-success .list-group-item-heading { + color: inherit; +} +a.list-group-item-success:hover, +button.list-group-item-success:hover, +a.list-group-item-success:focus, +button.list-group-item-success:focus { + color: #ffffff; + background-color: #00a379; +} +a.list-group-item-success.active, +button.list-group-item-success.active, +a.list-group-item-success.active:hover, +button.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active:focus { + color: #fff; + background-color: #ffffff; + border-color: #ffffff; +} +.list-group-item-info { + color: #ffffff; + background-color: #3498db; +} +a.list-group-item-info, +button.list-group-item-info { + color: #ffffff; +} +a.list-group-item-info .list-group-item-heading, +button.list-group-item-info .list-group-item-heading { + color: inherit; +} +a.list-group-item-info:hover, +button.list-group-item-info:hover, +a.list-group-item-info:focus, +button.list-group-item-info:focus { + color: #ffffff; + background-color: #258cd1; +} +a.list-group-item-info.active, +button.list-group-item-info.active, +a.list-group-item-info.active:hover, +button.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active:focus { + color: #fff; + background-color: #ffffff; + border-color: #ffffff; +} +.list-group-item-warning { + color: #ffffff; + background-color: #f39c12; +} +a.list-group-item-warning, +button.list-group-item-warning { + color: #ffffff; +} +a.list-group-item-warning .list-group-item-heading, +button.list-group-item-warning .list-group-item-heading { + color: inherit; +} +a.list-group-item-warning:hover, +button.list-group-item-warning:hover, +a.list-group-item-warning:focus, +button.list-group-item-warning:focus { + color: #ffffff; + background-color: #e08e0b; +} +a.list-group-item-warning.active, +button.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +button.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active:focus { + color: #fff; + background-color: #ffffff; + border-color: #ffffff; +} +.list-group-item-danger { + color: #ffffff; + background-color: #e74c3c; +} +a.list-group-item-danger, +button.list-group-item-danger { + color: #ffffff; +} +a.list-group-item-danger .list-group-item-heading, +button.list-group-item-danger .list-group-item-heading { + color: inherit; +} +a.list-group-item-danger:hover, +button.list-group-item-danger:hover, +a.list-group-item-danger:focus, +button.list-group-item-danger:focus { + color: #ffffff; + background-color: #e43725; +} +a.list-group-item-danger.active, +button.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +button.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active:focus { + color: #fff; + background-color: #ffffff; + border-color: #ffffff; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.panel { + margin-bottom: 21px; + background-color: #303030; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} +.panel-body { + padding: 15px; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 17px; + color: inherit; +} +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a { + color: inherit; +} +.panel-footer { + padding: 10px 15px; + background-color: #464545; + border-top: 1px solid #464545; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} +.panel > .list-group:first-child .list-group-item:first-child, +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.list-group + .panel-footer { + border-top-width: 0; +} +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; +} +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-right: 15px; + padding-left: 15px; +} +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; +} +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #464545; +} +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; +} +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} +.panel > .table-responsive { + margin-bottom: 0; + border: 0; +} +.panel-group { + margin-bottom: 21px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #464545; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #464545; +} +.panel-default { + border-color: #464545; +} +.panel-default > .panel-heading { + color: #ffffff; + background-color: #303030; + border-color: #464545; +} +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #464545; +} +.panel-default > .panel-heading .badge { + color: #303030; + background-color: #ffffff; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #464545; +} +.panel-primary { + border-color: #375a7f; +} +.panel-primary > .panel-heading { + color: #ffffff; + background-color: #375a7f; + border-color: #375a7f; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #375a7f; +} +.panel-primary > .panel-heading .badge { + color: #375a7f; + background-color: #ffffff; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #375a7f; +} +.panel-success { + border-color: #00bc8c; +} +.panel-success > .panel-heading { + color: #ffffff; + background-color: #00bc8c; + border-color: #00bc8c; +} +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #00bc8c; +} +.panel-success > .panel-heading .badge { + color: #00bc8c; + background-color: #ffffff; +} +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #00bc8c; +} +.panel-info { + border-color: #3498db; +} +.panel-info > .panel-heading { + color: #ffffff; + background-color: #3498db; + border-color: #3498db; +} +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #3498db; +} +.panel-info > .panel-heading .badge { + color: #3498db; + background-color: #ffffff; +} +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #3498db; +} +.panel-warning { + border-color: #f39c12; +} +.panel-warning > .panel-heading { + color: #ffffff; + background-color: #f39c12; + border-color: #f39c12; +} +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #f39c12; +} +.panel-warning > .panel-heading .badge { + color: #f39c12; + background-color: #ffffff; +} +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #f39c12; +} +.panel-danger { + border-color: #e74c3c; +} +.panel-danger > .panel-heading { + color: #ffffff; + background-color: #e74c3c; + border-color: #e74c3c; +} +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #e74c3c; +} +.panel-danger > .panel-heading .badge { + color: #e74c3c; + background-color: #ffffff; +} +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #e74c3c; +} +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} +.embed-responsive-4by3 { + padding-bottom: 75%; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #303030; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.well-lg { + padding: 24px; + border-radius: 6px; +} +.well-sm { + padding: 9px; + border-radius: 3px; +} +.close { + float: right; + font-size: 22.5px; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-shadow: none; + filter: alpha(opacity=20); + opacity: 0.2; +} +.close:hover, +.close:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: 0.5; +} +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; + appearance: none; +} +.modal-open { + overflow: hidden; +} +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; +} +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + transform: translate(0, -25%); + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} +.modal-content { + position: relative; + background-color: #303030; + background-clip: padding-box; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + outline: 0; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; +} +.modal-backdrop.in { + filter: alpha(opacity=70); + opacity: 0.7; +} +.modal-header { + padding: 15px; + border-bottom: 1px solid #464545; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.42857143; +} +.modal-body { + position: relative; + padding: 20px; +} +.modal-footer { + padding: 20px; + text-align: right; + border-top: 1px solid #464545; +} +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } + .modal-sm { + width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.42857143; + line-break: auto; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + font-size: 13px; + filter: alpha(opacity=0); + opacity: 0; +} +.tooltip.in { + filter: alpha(opacity=90); + opacity: 0.9; +} +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + background-color: #000000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.42857143; + line-break: auto; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + font-size: 15px; + background-color: #303030; + background-clip: padding-box; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover > .arrow { + border-width: 11px; +} +.popover > .arrow, +.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover > .arrow:after { + content: ""; + border-width: 10px; +} +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #666666; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #303030; + border-bottom-width: 0; +} +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #666666; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #303030; + border-left-width: 0; +} +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #666666; + border-bottom-color: rgba(0, 0, 0, 0.25); +} +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #303030; +} +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #666666; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #303030; +} +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 15px; + background-color: #282828; + border-bottom: 1px solid #1c1c1c; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner > .item { + position: relative; + display: none; + transition: 0.6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + line-height: 1; +} +@media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; + } + .carousel-inner > .item.next, + .carousel-inner > .item.active.right { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + left: 0; + } + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + left: 0; + } + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + left: 0; + } +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} +.carousel-inner > .active { + left: 0; +} +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel-inner > .next { + left: 100%; +} +.carousel-inner > .prev { + left: -100%; +} +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} +.carousel-inner > .active.left { + left: -100%; +} +.carousel-inner > .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + background-color: rgba(0, 0, 0, 0); + filter: alpha(opacity=50); + opacity: 0.5; +} +.carousel-control.left { + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control.right { + right: 0; + left: auto; + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + outline: 0; + filter: alpha(opacity=90); + opacity: 0.9; +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + margin-top: -10px; +} +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; +} +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; +} +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + font-family: serif; + line-height: 1; +} +.carousel-control .icon-prev:before { + content: "\2039"; +} +.carousel-control .icon-next:before { + content: "\203a"; +} +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #ffffff; + border-radius: 10px; +} +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #ffffff; +} +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -10px; + font-size: 30px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -10px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -10px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-header:before, +.modal-header:after, +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-header:after, +.modal-footer:after { + clear: both; +} +.center-block { + display: block; + margin-right: auto; + margin-left: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} +.visible-print-block { + display: none !important; +} +@media print { + .visible-print-block { + display: block !important; + } +} +.visible-print-inline { + display: none !important; +} +@media print { + .visible-print-inline { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; +} +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} +.navbar { + border-width: 0; +} +.navbar-default .badge { + background-color: #fff; + color: #375a7f; +} +.navbar-inverse .badge { + background-color: #fff; + color: #00bc8c; +} +.navbar-brand { + line-height: 1; +} +.navbar-form .form-control { + background-color: white; +} +.navbar-form .form-control:focus { + border-color: white; +} +.btn { + border-width: 2px; +} +.btn:active { + box-shadow: none; +} +.btn-group.open .dropdown-toggle { + box-shadow: none; +} +.text-primary, +.text-primary:hover { + color: #4673a3; +} +.text-success, +.text-success:hover { + color: #00bc8c; +} +.text-danger, +.text-danger:hover { + color: #e74c3c; +} +.text-warning, +.text-warning:hover { + color: #f39c12; +} +.text-info, +.text-info:hover { + color: #3498db; +} +table a:not(.btn), +.table a:not(.btn) { + text-decoration: underline; +} +table .dropdown-menu a, +.table .dropdown-menu a { + text-decoration: none; +} +table .success, +.table .success, +table .warning, +.table .warning, +table .danger, +.table .danger, +table .info, +.table .info { + color: #fff; +} +table .success > th > a, +.table .success > th > a, +table .warning > th > a, +.table .warning > th > a, +table .danger > th > a, +.table .danger > th > a, +table .info > th > a, +.table .info > th > a, +table .success > td > a, +.table .success > td > a, +table .warning > td > a, +.table .warning > td > a, +table .danger > td > a, +.table .danger > td > a, +table .info > td > a, +.table .info > td > a, +table .success > a, +.table .success > a, +table .warning > a, +.table .warning > a, +table .danger > a, +.table .danger > a, +table .info > a, +.table .info > a { + color: #fff; +} +table > thead > tr > th, +.table > thead > tr > th, +table > tbody > tr > th, +.table > tbody > tr > th, +table > tfoot > tr > th, +.table > tfoot > tr > th, +table > thead > tr > td, +.table > thead > tr > td, +table > tbody > tr > td, +.table > tbody > tr > td, +table > tfoot > tr > td, +.table > tfoot > tr > td { + border: none; +} +table-bordered > thead > tr > th, +.table-bordered > thead > tr > th, +table-bordered > tbody > tr > th, +.table-bordered > tbody > tr > th, +table-bordered > tfoot > tr > th, +.table-bordered > tfoot > tr > th, +table-bordered > thead > tr > td, +.table-bordered > thead > tr > td, +table-bordered > tbody > tr > td, +.table-bordered > tbody > tr > td, +table-bordered > tfoot > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #464545; +} +input, +textarea { + color: #464545; +} +.form-control, +input, +textarea { + border: 2px hidden transparent; + box-shadow: none; +} +.form-control:focus, +input:focus, +textarea:focus { + box-shadow: none; +} +.form-control-feedback { + color: #464545; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label, +.has-warning .form-control-feedback { + color: #f39c12; +} +.has-warning .form-control, +.has-warning .form-control:focus { + box-shadow: none; +} +.has-warning .input-group-addon { + border-color: #f39c12; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label, +.has-error .form-control-feedback { + color: #e74c3c; +} +.has-error .form-control, +.has-error .form-control:focus { + box-shadow: none; +} +.has-error .input-group-addon { + border-color: #e74c3c; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label, +.has-success .form-control-feedback { + color: #00bc8c; +} +.has-success .form-control, +.has-success .form-control:focus { + box-shadow: none; +} +.has-success .input-group-addon { + border-color: #00bc8c; +} +.input-group-addon { + color: #ffffff; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + border-color: #464545; +} +.nav-tabs > li > a, +.nav-pills > li > a { + color: #fff; +} +.pager a, +.pager a:hover { + color: #fff; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + background-color: #007053; +} +.breadcrumb a { + color: #fff; +} +.close { + text-decoration: none; + text-shadow: none; + opacity: 0.4; +} +.close:hover, +.close:focus { + opacity: 1; +} +.alert .alert-link { + color: #fff; + text-decoration: underline; +} +.progress { + height: 10px; + box-shadow: none; +} +.progress .progress-bar { + font-size: 10px; + line-height: 10px; +} +.well { + box-shadow: none; +} +a.list-group-item.active, +a.list-group-item.active:hover, +a.list-group-item.active:focus { + border-color: #464545; +} +a.list-group-item-success.active { + background-color: #00bc8c; +} +a.list-group-item-success.active:hover, +a.list-group-item-success.active:focus { + background-color: #00a379; +} +a.list-group-item-warning.active { + background-color: #f39c12; +} +a.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus { + background-color: #e08e0b; +} +a.list-group-item-danger.active { + background-color: #e74c3c; +} +a.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus { + background-color: #e43725; +} +.popover { + color: #ffffff; +} +.panel-default > .panel-heading { + background-color: #464545; +} diff --git a/Vagrant/resources/malcolm/htadmin/src/bootstrap.min.js b/Vagrant/resources/malcolm/htadmin/src/bootstrap.min.js new file mode 100644 index 0000000..e79c065 --- /dev/null +++ b/Vagrant/resources/malcolm/htadmin/src/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.3.6 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under the MIT license + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/Vagrant/resources/malcolm/htadmin/src/includes/head.php b/Vagrant/resources/malcolm/htadmin/src/includes/head.php new file mode 100644 index 0000000..9408902 --- /dev/null +++ b/Vagrant/resources/malcolm/htadmin/src/includes/head.php @@ -0,0 +1,40 @@ + section of several php pages. +# This pulls in Javascript and CSS style defin. files. +# This application used the 'bootstrap' CSS templating files. +# This page also defines the HTML for the application. +# +include_once ('tools/util.php'); +if (!isset($ini)) { # We haven't loaded the config/config.ini vars yet. + $ini = read_config (); # Read in the config.ini vars. + #dbg_var_dump($ini); +} +# Turn on full PHP error reporting: +error_reporting(E_ALL); +?> + +<html> +<head> +<!-- Latest compiled and minified CSS --> +<!-- <link rel="stylesheet" href="bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> --> + +<!-- We're currently using non-minified bootstrap.css files (so you can read them). --> +<link rel="stylesheet" href="bootstrap.css" crossorigin="anonymous"> + +<!-- Optional theme --> +<!-- <link rel="stylesheet" href="bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous"> --> + +<!-- Latest compiled and minified JavaScript --> +<script src="script/jquery-1.12.0.min.js"></script> +<script src="bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script> +<script src="script/script.js"></script> +<link rel="stylesheet" href="styles/style.css"> <!-- These are local (overriding) css styles. --> + +<!-- viewport: To ensure proper rendering and touch zooming. See 3.3.6 bootstrap docs --> +<meta name="viewport" content="width=device-width, initial-scale=1"> + +<title><?php echo $ini ['app_title']; ?> + + + diff --git a/Vagrant/resources/malcolm/htadmin/supervisord.conf b/Vagrant/resources/malcolm/htadmin/supervisord.conf new file mode 100644 index 0000000..fc92283 --- /dev/null +++ b/Vagrant/resources/malcolm/htadmin/supervisord.conf @@ -0,0 +1,32 @@ +; Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +[unix_http_server] +file=/tmp/supervisor.sock ; (the path to the socket file) +chmod=0700 + +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisord.pid + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[program:php] +command=php-fpm7.3 -F -R -g /tmp/php-fpm.pid +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:nginx] +command=/bin/bash /usr/local/bin/htadmin.sh +startsecs=15 +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true diff --git a/Vagrant/resources/malcolm/index-management-policy.json b/Vagrant/resources/malcolm/index-management-policy.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/Vagrant/resources/malcolm/index-management-policy.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/024062a6-48d6-498f-a91a-3bf2da3a3cd3.json b/Vagrant/resources/malcolm/kibana/dashboards/024062a6-48d6-498f-a91a-3bf2da3a3cd3.json new file mode 100644 index 0000000..06d1b8f --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/024062a6-48d6-498f-a91a-3bf2da3a3cd3.json @@ -0,0 +1,427 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "024062a6-48d6-498f-a91a-3bf2da3a3cd3", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:41:03.195Z", + "version": "WzM1MzQsMV0=", + "attributes": { + "title": "X.509", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":28,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":8,\"w\":17,\"h\":20,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":46,\"w\":48,\"h\":18,\"i\":\"8\"},\"panelIndex\":\"8\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":64,\"w\":48,\"h\":18,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":25,\"y\":8,\"w\":23,\"h\":20,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":20,\"y\":28,\"w\":28,\"h\":18,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"12\"},\"panelIndex\":\"12\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":28,\"w\":20,\"h\":18,\"i\":\"aa7075cb-f9ef-4453-8c5f-90eccc6883c7\"},\"panelIndex\":\"aa7075cb-f9ef-4453-8c5f-90eccc6883c7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":82,\"w\":48,\"h\":39,\"i\":\"2a9de8ad-b593-4bf3-9fc4-703580b95500\"},\"panelIndex\":\"2a9de8ad-b593-4bf3-9fc4-703580b95500\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "0ce14883-eb54-4b30-aba0-b8b13021da11" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "23d08a2e-2fa2-42df-bf75-dc5f3e5a79e7" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "d608f7dd-efea-49c4-b61d-a09d2a29148c" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "fabba18b-a1ed-4a90-a27c-bdcfed98eae1" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "193088ad-5112-435f-9e9f-ec9127ff8665" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "34d702ec-63e9-475d-ab0a-07d97ed4bd66" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "AWDHGklsxQT5EBNmq4wG" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "fa696510-4e9b-11ea-b504-97aa449f6abc" + }, + { + "name": "panel_9", + "type": "search", + "id": "858102a3-eec0-4ab3-82bb-a791e4eb364b" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0ce14883-eb54-4b30-aba0-b8b13021da11", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:05.496Z", + "version": "WzUwLDFd", + "attributes": { + "visState": "{\"title\":\"X.509 - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "X.509 - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "858102a3-eec0-4ab3-82bb-a791e4eb364b" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "23d08a2e-2fa2-42df-bf75-dc5f3e5a79e7", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:05.496Z", + "version": "WzUxLDFd", + "attributes": { + "title": "X.509 - Certificate Signing Algorithm", + "visState": "{\"title\":\"X.509 - Certificate Signing Algorithm\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Algorithm\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_x509.certificate_sig_alg\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Algorithm\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "858102a3-eec0-4ab3-82bb-a791e4eb364b" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d608f7dd-efea-49c4-b61d-a09d2a29148c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:05.496Z", + "version": "WzUyLDFd", + "attributes": { + "visState": "{\"title\":\"X.509 - Certificate Subject\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_x509.certificate_subject_full\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Subject\"}}],\"listeners\":{}}", + "description": "", + "title": "X.509 - Certificate Subject", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "858102a3-eec0-4ab3-82bb-a791e4eb364b" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "fabba18b-a1ed-4a90-a27c-bdcfed98eae1", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:05.496Z", + "version": "WzUzLDFd", + "attributes": { + "visState": "{\"title\":\"X.509 - Certificate Issuer\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_x509.certificate_issuer_full\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Issuer\"}}],\"listeners\":{}}", + "description": "", + "title": "X.509 - Certificate Issuer", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "858102a3-eec0-4ab3-82bb-a791e4eb364b" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "193088ad-5112-435f-9e9f-ec9127ff8665", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:39:38.720Z", + "version": "WzM1MTYsMV0=", + "attributes": { + "title": "X.509 - Certificate Key Length", + "visState": "{\"title\":\"X.509 - Certificate Key Length\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_x509.certificate_key_length\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Key Length\"},\"schema\":\"segment\"}],\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100,\"rotate\":0},\"title\":{\"text\":\"Key Length\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "858102a3-eec0-4ab3-82bb-a791e4eb364b" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "34d702ec-63e9-475d-ab0a-07d97ed4bd66", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:38:51.067Z", + "version": "WzM0ODcsMV0=", + "attributes": { + "title": "X.509 - Certificate Key Algorithm", + "visState": "{\"title\":\"X.509 - Certificate Key Algorithm\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_x509.certificate_key_alg\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":7,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Algorithm\"},\"schema\":\"segment\"}],\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "858102a3-eec0-4ab3-82bb-a791e4eb364b" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHGklsxQT5EBNmq4wG", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:05.496Z", + "version": "WzU2LDFd", + "attributes": { + "title": "X.509 - Log Count", + "visState": "{\"title\":\"X.509 - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "858102a3-eec0-4ab3-82bb-a791e4eb364b" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "fa696510-4e9b-11ea-b504-97aa449f6abc", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU1MywxXQ==", + "attributes": { + "title": "SSL - Relevant Notices", + "visState": "{\"title\":\"SSL - Relevant Notices\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":4,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Notice Category\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Notice Subcategory\",\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Source IP\",\"aggType\":\"terms\"},{\"accessor\":3,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"1\"}},\"params\":{},\"label\":\"Destination IP\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Notice Category\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.sub_category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Notice Subcategory\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek_notice.category:(SSL OR CVE_2020_0601)\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "858102a3-eec0-4ab3-82bb-a791e4eb364b", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:05.496Z", + "version": "WzU4LDFd", + "attributes": { + "title": "X.509 - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_x509.certificate_issuer.CN", + "zeek_x509.certificate_subject.CN", + "zeek_x509.certificate_sig_alg", + "zeek_x509.certificate_version", + "zeek.fuid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:x509\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0OCwxXQ==", + "attributes": { + "title": "Notices - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_notice.category", + "zeek_notice.sub_category", + "zeek_notice.msg", + "srcIp", + "dstIp", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:notice\",\"default_field\":\"*\"}}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/05e3e000-f118-11e9-acda-83a8e29e1a24.json b/Vagrant/resources/malcolm/kibana/dashboards/05e3e000-f118-11e9-acda-83a8e29e1a24.json new file mode 100644 index 0000000..7b47bb0 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/05e3e000-f118-11e9-acda-83a8e29e1a24.json @@ -0,0 +1,479 @@ +{ + "version": "7.10.2", + "objects": [ + { + "id": "05e3e000-f118-11e9-acda-83a8e29e1a24", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T13:57:03.753Z", + "version": "WzE1OTcsMV0=", + "attributes": { + "title": "LDAP", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":30,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":17,\"y\":0,\"w\":31,\"h\":11,\"i\":\"4\"},\"panelIndex\":\"4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":49,\"w\":48,\"h\":21,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":8,\"y\":11,\"w\":9,\"h\":19,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":17,\"y\":11,\"w\":11,\"h\":19,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":9,\"h\":11,\"i\":\"4bede953-91ec-4c99-9f5d-3716dae2420b\"},\"panelIndex\":\"4bede953-91ec-4c99-9f5d-3716dae2420b\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":28,\"y\":11,\"w\":20,\"h\":19,\"i\":\"85041475-96a1-466e-88fa-44838f41ba39\"},\"panelIndex\":\"85041475-96a1-466e-88fa-44838f41ba39\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":30,\"w\":22,\"h\":19,\"i\":\"8e705c39-f331-4823-a103-51ab06637c62\"},\"panelIndex\":\"8e705c39-f331-4823-a103-51ab06637c62\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":35,\"y\":30,\"w\":13,\"h\":19,\"i\":\"06dfdd5d-7e6c-4733-8533-beef02105563\"},\"panelIndex\":\"06dfdd5d-7e6c-4733-8533-beef02105563\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":22,\"y\":30,\"w\":13,\"h\":19,\"i\":\"36118ee0-160e-49d0-aa2b-410c86021334\"},\"panelIndex\":\"36118ee0-160e-49d0-aa2b-410c86021334\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":70,\"w\":48,\"h\":22,\"i\":\"146f4860-c9a9-4fa0-a191-accdfd42d318\"},\"panelIndex\":\"146f4860-c9a9-4fa0-a191-accdfd42d318\",\"embeddableConfig\":{},\"panelRefName\":\"panel_10\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "4aa4bc50-f118-11e9-acda-83a8e29e1a24" + }, + { + "name": "panel_2", + "type": "search", + "id": "8dd8d390-f117-11e9-acda-83a8e29e1a24" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "77ebc500-f118-11e9-acda-83a8e29e1a24" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "99ed84e0-f118-11e9-acda-83a8e29e1a24" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "5eeb21f0-b25e-11eb-9773-17c6ff2f810d" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "86b3d580-b25c-11eb-9773-17c6ff2f810d" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "e3b5c5b0-b25f-11eb-9773-17c6ff2f810d" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "69d17750-b25d-11eb-9773-17c6ff2f810d" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "ef741670-b25c-11eb-9773-17c6ff2f810d" + }, + { + "name": "panel_10", + "type": "search", + "id": "039e7090-b213-11eb-91fe-f17fad8dde73" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:25:05.903Z", + "version": "Wzg3OSwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4aa4bc50-f118-11e9-acda-83a8e29e1a24", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:04.271Z", + "version": "WzIwMCwxXQ==", + "attributes": { + "title": "LDAP - Log Count Over Time", + "visState": "{\"title\":\"LDAP - Log Count Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-25y\",\"to\":\"now\",\"mode\":\"quick\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "8dd8d390-f117-11e9-acda-83a8e29e1a24" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8dd8d390-f117-11e9-acda-83a8e29e1a24", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:04.271Z", + "version": "WzIwMSwxXQ==", + "attributes": { + "title": "LDAP - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_ldap.version", + "zeek_ldap.message_id", + "zeek.action", + "zeek_ldap.object", + "zeek_ldap.argument", + "zeek.result", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:\\\"ldap\\\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "77ebc500-f118-11e9-acda-83a8e29e1a24", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:04.271Z", + "version": "WzIwMiwxXQ==", + "attributes": { + "title": "LDAP - Source IP", + "visState": "{\"title\":\"LDAP - Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "8dd8d390-f117-11e9-acda-83a8e29e1a24" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "99ed84e0-f118-11e9-acda-83a8e29e1a24", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T13:18:36.574Z", + "version": "WzExNDEsMV0=", + "attributes": { + "title": "LDAP - Destination IP", + "visState": "{\"title\":\"LDAP - Destination IP\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8dd8d390-f117-11e9-acda-83a8e29e1a24" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5eeb21f0-b25e-11eb-9773-17c6ff2f810d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T13:39:55.407Z", + "version": "WzE0MTcsMV0=", + "attributes": { + "title": "LDAP - Log Count", + "visState": "{\"title\":\"LDAP - Log Count\",\"type\":\"metric\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"},\"schema\":\"group\"}],\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":48}}}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:ldap*\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "86b3d580-b25c-11eb-9773-17c6ff2f810d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T13:53:39.683Z", + "version": "WzE1MzgsMV0=", + "attributes": { + "title": "LDAP - Bind", + "visState": "{\"title\":\"LDAP - Bind\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.service_version\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Version\"},\"schema\":\"bucket\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Method\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_ldap.object\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Object/Mechanism\"},\"schema\":\"bucket\"},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Result\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.action:bind*\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8dd8d390-f117-11e9-acda-83a8e29e1a24" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "e3b5c5b0-b25f-11eb-9773-17c6ff2f810d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T13:56:19.541Z", + "version": "WzE1NzcsMV0=", + "attributes": { + "title": "LDAP - Search Scope", + "visState": "{\"title\":\"LDAP - Search Scope\",\"type\":\"horizontal_bar\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{\"customLabel\":\"Searches\"},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_ldap_search.scope\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Search Scope\"},\"schema\":\"segment\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"sum\",\"params\":{\"field\":\"zeek_ldap_search.result_count\",\"customLabel\":\"Entries Returned\"},\"schema\":\"metric\"}],\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":true,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Searches\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true},{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"id\":\"3\",\"label\":\"Entries Returned\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "039e7090-b213-11eb-91fe-f17fad8dde73" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "69d17750-b25d-11eb-9773-17c6ff2f810d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T13:33:04.197Z", + "version": "WzEzMzUsMV0=", + "attributes": { + "title": "LDAP - Result Code", + "visState": "{\"title\":\"LDAP - Result Code\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"-\",\"customLabel\":\"Result Code\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:ldap*\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ef741670-b25c-11eb-9773-17c6ff2f810d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T13:29:38.903Z", + "version": "WzEyOTksMV0=", + "attributes": { + "title": "LDAP - Operation", + "visState": "{\"title\":\"LDAP - Operation\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":199,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Operation\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:ldap*\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "039e7090-b213-11eb-91fe-f17fad8dde73", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:04.271Z", + "version": "WzIwNiwxXQ==", + "attributes": { + "title": "LDAP Search - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_ldap_search.message_id", + "zeek.action", + "zeek_ldap_search.base_object", + "zeek_ldap_search.result_count", + "zeek.result", + "zeek.uid" + ], + "sort": [], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:\\\"ldap_search\\\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:55.802Z", + "version": "Wzc5NCwxXQ==", + "attributes": { + "title": "All Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.logType", + "zeek.service", + "zeek.action", + "zeek.result", + "srcIp", + "dstIp", + "dstPort", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:*\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b.json b/Vagrant/resources/malcolm/kibana/dashboards/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b.json new file mode 100644 index 0000000..2bccacf --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b.json @@ -0,0 +1,386 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T15:29:57.350Z", + "version": "WzE5MDYsMV0=", + "attributes": { + "title": "FTP", + "hits": 0, + "description": "", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"h\":27,\"i\":\"2\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"2\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":8,\"i\":\"3\",\"w\":32,\"x\":16,\"y\":0},\"panelIndex\":\"3\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"6\",\"w\":14,\"x\":9,\"y\":27},\"panelIndex\":\"6\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":19,\"i\":\"8\",\"w\":23,\"x\":8,\"y\":8},\"panelIndex\":\"8\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":19,\"i\":\"9\",\"w\":17,\"x\":31,\"y\":8},\"panelIndex\":\"9\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"10\",\"w\":11,\"x\":23,\"y\":27},\"panelIndex\":\"10\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"11\",\"w\":14,\"x\":34,\"y\":27},\"panelIndex\":\"11\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"12\",\"w\":9,\"x\":0,\"y\":27},\"panelIndex\":\"12\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":8,\"i\":\"15\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"15\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_8\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":37,\"i\":\"8a83e818-c814-4c25-8740-932d60d2457d\",\"w\":48,\"x\":0,\"y\":45},\"panelIndex\":\"8a83e818-c814-4c25-8740-932d60d2457d\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_9\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "baba321a-1dff-4c11-a8e3-27a473aa89c2" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "f62bf46a-59d2-4e7d-9916-a93b09ffb198" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "0c8976ab-d720-43b0-ba40-c5f1abdc86aa" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "d77cf99c-45b3-4d2f-b348-dc08331ea6c1" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "2c30d743-052f-44bb-847c-dede4126a71d" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "cf6a7cf7-0105-42d4-9e0c-c732361a7de9" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "9fe8ac77-cf19-473d-81cd-5fde544abed6" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "AWDG9sT_xQT5EBNmq4DI" + }, + { + "name": "panel_9", + "type": "search", + "id": "16375cb7-a30d-466c-a936-f0a3651f9adb" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "baba321a-1dff-4c11-a8e3-27a473aa89c2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:07.693Z", + "version": "WzgyLDFd", + "attributes": { + "visState": "{\"title\":\"FTP - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "FTP - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "16375cb7-a30d-466c-a936-f0a3651f9adb" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f62bf46a-59d2-4e7d-9916-a93b09ffb198", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:07.693Z", + "version": "WzgzLDFd", + "attributes": { + "visState": "{\"title\":\"FTP - Argument\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ftp.arg\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Argument\"}}],\"listeners\":{}}", + "description": "", + "title": "FTP - Argument", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "16375cb7-a30d-466c-a936-f0a3651f9adb" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0c8976ab-d720-43b0-ba40-c5f1abdc86aa", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:07.693Z", + "version": "Wzg0LDFd", + "attributes": { + "title": "FTP - Commands and Replies", + "visState": "{\"title\":\"FTP - Commands and Replies\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":4,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek.action: Descending\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek_ftp.reply_code: Descending\",\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Reply Message\",\"aggType\":\"terms\"},{\"accessor\":3,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek.result: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Action\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ftp.reply_code\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Reply Code\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ftp.reply_msg\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Reply\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Reply Message\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Result\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "16375cb7-a30d-466c-a936-f0a3651f9adb" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d77cf99c-45b3-4d2f-b348-dc08331ea6c1", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T15:29:36.485Z", + "version": "WzE4ODksMV0=", + "attributes": { + "title": "FTP - Reply", + "visState": "{\"title\":\"FTP - Reply\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Reply\"},\"schema\":\"segment\"}],\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Reply\",\"aggType\":\"terms\"}]}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "16375cb7-a30d-466c-a936-f0a3651f9adb" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2c30d743-052f-44bb-847c-dede4126a71d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:07.693Z", + "version": "Wzg2LDFd", + "attributes": { + "title": "FTP - Source", + "visState": "{\"title\":\"FTP - Source\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP Address\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "16375cb7-a30d-466c-a936-f0a3651f9adb" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "cf6a7cf7-0105-42d4-9e0c-c732361a7de9", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:07.693Z", + "version": "Wzg3LDFd", + "attributes": { + "title": "FTP - Destination", + "visState": "{\"title\":\"FTP - Destination\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"IP Address\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek.resp_p: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.resp_h\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP Address\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.resp_p\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "16375cb7-a30d-466c-a936-f0a3651f9adb" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9fe8ac77-cf19-473d-81cd-5fde544abed6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:07.693Z", + "version": "Wzg4LDFd", + "attributes": { + "visState": "{\"title\":\"FTP - Username\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.user\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Username\"}}],\"listeners\":{}}", + "description": "", + "title": "FTP - Username", + "uiStateJSON": "{\n \"vis\": {\n \"params\": {\n \"sort\": {\n \"columnIndex\": null,\n \"direction\": null\n }\n }\n }\n}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "16375cb7-a30d-466c-a936-f0a3651f9adb" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDG9sT_xQT5EBNmq4DI", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:07.693Z", + "version": "Wzg5LDFd", + "attributes": { + "title": "FTP - Log Count", + "visState": "{\"title\":\"FTP - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "16375cb7-a30d-466c-a936-f0a3651f9adb" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "16375cb7-a30d-466c-a936-f0a3651f9adb", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:07.693Z", + "version": "WzkwLDFd", + "attributes": { + "title": "FTP - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_ftp.command", + "zeek_ftp.reply_msg", + "zeek.uid", + "zeek.fuid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:ftp\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/0a490422-0ce9-44bf-9a2d-19329ddde8c3.json b/Vagrant/resources/malcolm/kibana/dashboards/0a490422-0ce9-44bf-9a2d-19329ddde8c3.json new file mode 100644 index 0000000..52415b7 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/0a490422-0ce9-44bf-9a2d-19329ddde8c3.json @@ -0,0 +1,392 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "0a490422-0ce9-44bf-9a2d-19329ddde8c3", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:08.721Z", + "version": "WzkxLDFd", + "attributes": { + "title": "PE", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":29,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":11,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":22,\"y\":11,\"w\":15,\"h\":18,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":11,\"w\":14,\"h\":18,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":27,\"y\":29,\"w\":21,\"h\":18,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":37,\"y\":11,\"w\":11,\"h\":18,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":11,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":29,\"w\":27,\"h\":18,\"i\":\"9a0a2350-214f-4b64-a6af-9bd8ae70f885\"},\"panelIndex\":\"9a0a2350-214f-4b64-a6af-9bd8ae70f885\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":47,\"w\":48,\"h\":23,\"i\":\"94f39bcf-aa80-4122-8ef7-62f594e536fb\"},\"panelIndex\":\"94f39bcf-aa80-4122-8ef7-62f594e536fb\",\"embeddableConfig\":{\"title\":\"Executable Capabilities\"},\"title\":\"Executable Capabilities\",\"panelRefName\":\"panel_8\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":70,\"w\":48,\"h\":39,\"i\":\"7a770e13-2143-46e8-8e54-ae3cf477c4c4\"},\"panelIndex\":\"7a770e13-2143-46e8-8e54-ae3cf477c4c4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"}]", + "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "a44daac6-37e2-4fef-8b78-32232c4f32e8" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "6b1bf8b4-399b-4ef2-baeb-7f9b1740b657" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "59b3dd10-2de5-40d2-88ea-caf2bd3da549" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "7c810b56-5297-4aed-abac-cff41dfa5c77" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "0b774699-b798-40ae-ae92-2ac2a619eeb9" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "AWDHCUeZxQT5EBNmq4Xy" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "2d547c90-665f-11eb-b873-19a6007d75dd" + }, + { + "name": "panel_8", + "type": "search", + "id": "8555e510-665e-11eb-b873-19a6007d75dd" + }, + { + "name": "panel_9", + "type": "search", + "id": "13f6cda1-6b4d-4a7d-b72e-25eeabec8768" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a44daac6-37e2-4fef-8b78-32232c4f32e8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:08.721Z", + "version": "WzkzLDFd", + "attributes": { + "visState": "{\"title\":\"PE - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "PE - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "13f6cda1-6b4d-4a7d-b72e-25eeabec8768" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6b1bf8b4-399b-4ef2-baeb-7f9b1740b657", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:08.721Z", + "version": "Wzk0LDFd", + "attributes": { + "title": "PE - OS", + "visState": "{\"title\":\"PE - OS\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek_pe.os: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_pe.os\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "13f6cda1-6b4d-4a7d-b72e-25eeabec8768" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "59b3dd10-2de5-40d2-88ea-caf2bd3da549", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:08.721Z", + "version": "Wzk1LDFd", + "attributes": { + "title": "PE - Subsystem", + "visState": "{\"title\":\"PE - Subsystem\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek_pe.subsystem: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_pe.subsystem\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "13f6cda1-6b4d-4a7d-b72e-25eeabec8768" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7c810b56-5297-4aed-abac-cff41dfa5c77", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:08.721Z", + "version": "Wzk2LDFd", + "attributes": { + "visState": "{\"title\":\"PE - Section Name\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_pe.section_names\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\"}}],\"listeners\":{}}", + "description": "", + "title": "PE - Section Name", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "13f6cda1-6b4d-4a7d-b72e-25eeabec8768" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0b774699-b798-40ae-ae92-2ac2a619eeb9", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:08.721Z", + "version": "Wzk3LDFd", + "attributes": { + "visState": "{\"title\":\"PE - Machine\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_pe.machine\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Machine\"}}],\"listeners\":{}}", + "description": "", + "title": "PE - Machine", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "13f6cda1-6b4d-4a7d-b72e-25eeabec8768" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHCUeZxQT5EBNmq4Xy", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:08.721Z", + "version": "Wzk4LDFd", + "attributes": { + "title": "PE - Log Count", + "visState": "{\"title\":\"PE - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "13f6cda1-6b4d-4a7d-b72e-25eeabec8768" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2d547c90-665f-11eb-b873-19a6007d75dd", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:08.721Z", + "version": "Wzk5LDFd", + "attributes": { + "title": "Capa Signatures", + "visState": "{\"title\":\"Capa Signatures\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek_signatures.signature_id: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_signatures.signature_id\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Signature\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8555e510-665e-11eb-b873-19a6007d75dd" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8555e510-665e-11eb-b873-19a6007d75dd", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:08.721Z", + "version": "WzEwMCwxXQ==", + "attributes": { + "title": "Signatures (Capa) - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_signatures.signature_id", + "zeek.fuid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:signatures AND zeek_signatures.engine:Capa\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "13f6cda1-6b4d-4a7d-b72e-25eeabec8768", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:08.721Z", + "version": "WzEwMSwxXQ==", + "attributes": { + "title": "PE - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_pe.machine", + "zeek_pe.os", + "zeek_pe.subsystem", + "zeek.fuid" + ], + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:pe\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/0ad3d7c2-3441-485e-9dfe-dbb22e84e576.json b/Vagrant/resources/malcolm/kibana/dashboards/0ad3d7c2-3441-485e-9dfe-dbb22e84e576.json new file mode 100644 index 0000000..9b0b9df --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/0ad3d7c2-3441-485e-9dfe-dbb22e84e576.json @@ -0,0 +1,435 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "0ad3d7c2-3441-485e-9dfe-dbb22e84e576", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:09.796Z", + "version": "WzEwOSwxXQ==", + "attributes": { + "title": "Overview", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":26,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":19,\"y\":0,\"w\":29,\"h\":8,\"i\":\"12\"},\"panelIndex\":\"12\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":26,\"w\":36,\"h\":18,\"i\":\"19\"},\"panelIndex\":\"19\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":8,\"w\":9,\"h\":18,\"i\":\"21\"},\"panelIndex\":\"21\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":11,\"h\":8,\"i\":\"32\"},\"panelIndex\":\"32\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":36,\"y\":26,\"w\":12,\"h\":18,\"i\":\"43\"},\"panelIndex\":\"43\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":17,\"y\":8,\"w\":11,\"h\":18,\"i\":\"2aab2ae5-2520-4b78-9735-04c32b22b71e\"},\"panelIndex\":\"2aab2ae5-2520-4b78-9735-04c32b22b71e\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":28,\"y\":8,\"w\":20,\"h\":18,\"i\":\"f92ea81f-8f7e-4a79-abde-e5d8aaf7a39a\"},\"panelIndex\":\"f92ea81f-8f7e-4a79-abde-e5d8aaf7a39a\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":44,\"w\":48,\"h\":27,\"i\":\"4c077648-488a-4fd8-9fcd-3042ec1bfa4d\"},\"panelIndex\":\"4c077648-488a-4fd8-9fcd-3042ec1bfa4d\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "470c6648-d66f-4fae-99af-061cab27065a" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "3da52536-9455-4f8f-931a-14f4c04c636b" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "f7aba7a6-4b09-4efe-ae42-68d5637212ce" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "AWDGyaGxxQT5EBNmq3K9" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "6ec2abe4-c3b1-4cc1-8674-e80f8aee7ec5" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "750367f0-41f2-11ea-88fa-7151df485405" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "f38b3bd0-afd3-11ea-adcf-8bc6d9c94a96" + }, + { + "name": "panel_8", + "type": "search", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "470c6648-d66f-4fae-99af-061cab27065a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:09.796Z", + "version": "WzExMSwxXQ==", + "attributes": { + "visState": "{\"title\":\"Total Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 30 seconds\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "Total Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3da52536-9455-4f8f-931a-14f4c04c636b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:09.796Z", + "version": "WzExMiwxXQ==", + "attributes": { + "title": "Connections - Service By Destination Country", + "visState": "{\"title\":\"Connections - Service By Destination Country\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"top\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":3,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"},\"buckets\":[{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}],\"splitColumn\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}]},\"row\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"split\",\"params\":{\"field\":\"zeek.destination_geo.country_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":8,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Service\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f7aba7a6-4b09-4efe-ae42-68d5637212ce", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:09.796Z", + "version": "WzExMywxXQ==", + "attributes": { + "title": "Log Type", + "visState": "{\"title\":\"Log Type\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.logType\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Log Type(s)\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDGyaGxxQT5EBNmq3K9", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:48.278Z", + "version": "WzY1NywxXQ==", + "attributes": { + "title": "Total Number of Logs", + "visState": "{\"title\":\"Total Number of Logs\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Total Number of Logs\"}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6ec2abe4-c3b1-4cc1-8674-e80f8aee7ec5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:09.796Z", + "version": "WzExNSwxXQ==", + "attributes": { + "title": "DNS - Queries", + "visState": "{\"title\":\"DNS - Queries\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dns.query\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":250,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Query\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "750367f0-41f2-11ea-88fa-7151df485405", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:09.796Z", + "version": "WzExNiwxXQ==", + "attributes": { + "title": "Application Protocol", + "visState": "{\"title\":\"Application Protocol\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":0,\"direction\":\"asc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Application Protocol\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Protocol Version\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Application Protocol\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service_version\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Protocol Version\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f38b3bd0-afd3-11ea-adcf-8bc6d9c94a96", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:09.796Z", + "version": "WzExNywxXQ==", + "attributes": { + "title": "Actions and Results", + "visState": "{\"title\":\"Actions and Results\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":3,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Protocol\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Action\",\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Result\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Protocol\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Action\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Result\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.action:* OR zeek.result:*\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc4NiwxXQ==", + "attributes": { + "title": "All Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.logType", + "zeek.service", + "zeek.action", + "zeek.result", + "srcIp", + "dstIp", + "dstPort", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:*\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:45.233Z", + "version": "WzYzNSwxXQ==", + "attributes": { + "title": "DNS - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_dns.query", + "zeek_dns.answers", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:dns\"}}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0.json b/Vagrant/resources/malcolm/kibana/dashboards/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0.json new file mode 100644 index 0000000..72c20a5 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0.json @@ -0,0 +1,210 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:10.810Z", + "version": "WzEzMSwxXQ==", + "attributes": { + "title": "Connections - Destination - Top Connection Duration", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":50,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":null},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":23,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":23,\"w\":8,\"h\":15,\"i\":\"2e33c0bf-ffb8-408b-ab32-0c6539074ea6\"},\"panelIndex\":\"2e33c0bf-ffb8-408b-ab32-0c6539074ea6\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":38,\"w\":8,\"h\":12,\"i\":\"92ba4d29-ba43-4806-b545-79f60788c795\"},\"panelIndex\":\"92ba4d29-ba43-4806-b545-79f60788c795\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\",\"default_field\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "53854a54-2b8b-474e-a36c-bce80276004e" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "53854a54-2b8b-474e-a36c-bce80276004e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:10.810Z", + "version": "WzEzMiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Connections - Destination - Top Connection Duration\",\"type\":\"tile_map\",\"params\":{\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true,\"heatMaxZoom\":0,\"heatMinOpacity\":0.1,\"heatRadius\":25,\"heatBlur\":15,\"heatNormalizeData\":true,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"mapCenter\":[0,0],\"wms\":{\"enabled\":false,\"url\":\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\",\"options\":{\"version\":\"1.3.0\",\"layers\":\"0\",\"format\":\"image/png\",\"transparent\":true,\"attribution\":\"Maps provided by USGS\",\"styles\":\"\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek_conn.duration\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"geohash_grid\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.destination_geo.location\",\"autoPrecision\":true,\"useGeocentroid\":true,\"precision\":2}}],\"listeners\":{}}", + "description": "", + "title": "Connections - Destination - Top Connection Duration", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NCwxXQ==", + "attributes": { + "title": "Connections - Protocol Filters", + "visState": "{\"title\":\"Connections - Protocol Filters\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1581606976709\",\"fieldName\":\"network.type\",\"parent\":\"\",\"label\":\"Network Layer\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1581606723028\",\"fieldName\":\"zeek.proto\",\"parent\":\"\",\"label\":\"Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"},{\"id\":\"1581606665268\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Service\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_2_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_1_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_2_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa.json b/Vagrant/resources/malcolm/kibana/dashboards/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa.json new file mode 100644 index 0000000..cd496c3 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa.json @@ -0,0 +1,527 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:02:01.961Z", + "version": "WzMxNDEsMV0=", + "attributes": { + "title": "SIP", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"h\":42,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":8,\"i\":\"3\",\"w\":32,\"x\":16,\"y\":0},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"5\",\"w\":17,\"x\":0,\"y\":60},\"panelIndex\":\"5\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"6\",\"w\":17,\"x\":17,\"y\":60},\"panelIndex\":\"6\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":16,\"i\":\"9\",\"w\":12,\"x\":20,\"y\":8},\"panelIndex\":\"9\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"11\",\"w\":23,\"x\":0,\"y\":42},\"panelIndex\":\"11\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"13\",\"w\":25,\"x\":23,\"y\":42},\"panelIndex\":\"13\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"14\",\"w\":23,\"x\":25,\"y\":24},\"panelIndex\":\"14\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":16,\"i\":\"16\",\"w\":12,\"x\":8,\"y\":8},\"panelIndex\":\"16\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":16,\"i\":\"18\",\"w\":16,\"x\":32,\"y\":8},\"panelIndex\":\"18\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"19\",\"w\":14,\"x\":34,\"y\":60},\"panelIndex\":\"19\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}},\"table\":null},\"panelRefName\":\"panel_10\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":8,\"i\":\"20\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"20\",\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"panelRefName\":\"panel_11\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"21\",\"w\":17,\"x\":8,\"y\":24},\"panelIndex\":\"21\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_12\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":32,\"i\":\"986e38d3-b2fb-44cb-b4b3-efaa2d46ff62\",\"w\":48,\"x\":0,\"y\":78},\"panelIndex\":\"986e38d3-b2fb-44cb-b4b3-efaa2d46ff62\",\"embeddableConfig\":{},\"panelRefName\":\"panel_13\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"*\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "00051443-ad3a-4c91-81a8-928096b8d5c2" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "2a9cf114-30d2-4b27-a71b-cde90dc26c9a" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "d5c39a42-e7c1-447c-afce-53fea7e5d971" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "72cf657f-b027-4d0b-814d-9bb3ebada4f6" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "1968f84a-1b85-44ea-b9ba-c6af98aeb8bb" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "7eb073ce-5c1f-4319-9eb8-1bf25399dcd9" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "f39d0316-33cd-4dc3-ad9d-bdf488f4e80c" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "068db209-7174-4082-a758-68c6b09224c6" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "07d161d5-c6b3-4a51-bef7-d53a325e945a" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "46d7e33f-ec02-41ab-977c-7e164c80f6ef" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "AWDHDNS4xQT5EBNmq4dF" + }, + { + "name": "panel_12", + "type": "visualization", + "id": "fff2c100-32e4-402c-98cc-4a977010a427" + }, + { + "name": "panel_13", + "type": "search", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "00051443-ad3a-4c91-81a8-928096b8d5c2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE0NywxXQ==", + "attributes": { + "visState": "{\"title\":\"SIP - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "SIP - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2a9cf114-30d2-4b27-a71b-cde90dc26c9a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE0OCwxXQ==", + "attributes": { + "visState": "{\"title\":\"SIP - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SIP - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d5c39a42-e7c1-447c-afce-53fea7e5d971", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE0OSwxXQ==", + "attributes": { + "visState": "{\"title\":\"SIP - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SIP - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "72cf657f-b027-4d0b-814d-9bb3ebada4f6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE1MCwxXQ==", + "attributes": { + "title": "SIP - Destination Country", + "visState": "{\"title\":\"SIP - Destination Country\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek.destination_geo.country_name: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.destination_geo.country_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "1968f84a-1b85-44ea-b9ba-c6af98aeb8bb", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE1MSwxXQ==", + "attributes": { + "visState": "{\"title\":\"SIP - Request Path\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_sip.request_path\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Request Path\"}}],\"listeners\":{}}", + "description": "", + "title": "SIP - Request Path", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7eb073ce-5c1f-4319-9eb8-1bf25399dcd9", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE1MiwxXQ==", + "attributes": { + "visState": "{\"title\":\"SIP - URI\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_sip.uri\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"URI\"}}],\"listeners\":{}}", + "description": "", + "title": "SIP - URI", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f39d0316-33cd-4dc3-ad9d-bdf488f4e80c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE1MywxXQ==", + "attributes": { + "visState": "{\"title\":\"SIP - User Agent\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_sip.user_agent\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"User Agent\"}}],\"listeners\":{}}", + "description": "", + "title": "SIP - User Agent", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "068db209-7174-4082-a758-68c6b09224c6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE1NCwxXQ==", + "attributes": { + "title": "SIP - Content Type", + "visState": "{\"title\":\"SIP - Content Type\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek_sip.content_type: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_sip.content_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Content Type\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "07d161d5-c6b3-4a51-bef7-d53a325e945a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE1NSwxXQ==", + "attributes": { + "visState": "{\"title\":\"SIP - Method\",\"type\":\"histogram\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek_sip.method\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Method\"}}],\"listeners\":{}}", + "description": "", + "title": "SIP - Method", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "46d7e33f-ec02-41ab-977c-7e164c80f6ef", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE1NiwxXQ==", + "attributes": { + "visState": "{\"title\":\"SIP - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\"}}],\"listeners\":{}}", + "description": "", + "title": "SIP - Destination Port", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHDNS4xQT5EBNmq4dF", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE1NywxXQ==", + "attributes": { + "title": "SIP - Log Count", + "visState": "{\"title\":\"SIP - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "fff2c100-32e4-402c-98cc-4a977010a427", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE1OCwxXQ==", + "attributes": { + "title": "SIP - Status", + "visState": "{\"title\":\"SIP - Status\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_sip.status_code\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Code\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_sip.status_msg\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Message\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "78fb078f-c0fe-4462-b72c-bccfd8329ca3", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:11.908Z", + "version": "WzE1OSwxXQ==", + "attributes": { + "title": "SIP - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_sip.method", + "zeek_sip.content_type", + "zeek_sip.status_msg", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:sip\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/11be6381-beef-40a7-bdce-88c5398392fc.json b/Vagrant/resources/malcolm/kibana/dashboards/11be6381-beef-40a7-bdce-88c5398392fc.json new file mode 100644 index 0000000..ed2ef6a --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/11be6381-beef-40a7-bdce-88c5398392fc.json @@ -0,0 +1,352 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "11be6381-beef-40a7-bdce-88c5398392fc", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T19:07:48.772Z", + "version": "WzM4MjQsMV0=", + "attributes": { + "title": "Tunnels", + "hits": 0, + "description": "", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"h\":30,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":10,\"i\":\"3\",\"w\":32,\"x\":16,\"y\":0},\"panelIndex\":\"3\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":20,\"i\":\"7\",\"w\":13,\"x\":8,\"y\":10},\"panelIndex\":\"7\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":19,\"i\":\"8\",\"w\":16,\"x\":32,\"y\":30},\"panelIndex\":\"8\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":19,\"i\":\"9\",\"w\":13,\"x\":19,\"y\":30},\"panelIndex\":\"9\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":20,\"i\":\"11\",\"w\":27,\"x\":21,\"y\":10},\"panelIndex\":\"11\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":19,\"i\":\"12\",\"w\":19,\"x\":0,\"y\":30},\"panelIndex\":\"12\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":10,\"i\":\"14\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"14\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":36,\"i\":\"4c91cf0e-8f00-4682-88e9-e7a4da9cb818\",\"w\":48,\"x\":0,\"y\":49},\"panelIndex\":\"4c91cf0e-8f00-4682-88e9-e7a4da9cb818\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_8\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "ea729cd0-2c77-4c5a-8ffa-11ff19d1e369" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "ab721f9e-240e-4343-b71c-9c04d2d704f5" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "018337e2-9178-4021-a36f-a1e7098b9b86" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "8eb2b344-150b-4163-b6c1-e686bb7027d5" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "7b5a1e84-eb4d-4a4f-9b8b-e325ff81d89a" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "56a5dece-0790-4acc-b166-6628cf10a596" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "AWDHFYrqxQT5EBNmq4qT" + }, + { + "name": "panel_8", + "type": "search", + "id": "f166f708-f838-4c50-84cc-1fb99f7d7060" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ea729cd0-2c77-4c5a-8ffa-11ff19d1e369", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:12.938Z", + "version": "WzE3MiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Tunnels - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "Tunnels - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "f166f708-f838-4c50-84cc-1fb99f7d7060" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ab721f9e-240e-4343-b71c-9c04d2d704f5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T19:07:00.533Z", + "version": "WzM3OTIsMV0=", + "attributes": { + "title": "Tunnels - Type", + "visState": "{\"title\":\"Tunnels - Type\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_tunnel.tunnel_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "f166f708-f838-4c50-84cc-1fb99f7d7060" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "018337e2-9178-4021-a36f-a1e7098b9b86", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T19:06:33.679Z", + "version": "WzM3ODAsMV0=", + "attributes": { + "title": "Tunnels - Destination Address", + "visState": "{\"title\":\"Tunnels - Destination Address\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP Address\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Port\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "f166f708-f838-4c50-84cc-1fb99f7d7060" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8eb2b344-150b-4163-b6c1-e686bb7027d5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:12.938Z", + "version": "WzE3NSwxXQ==", + "attributes": { + "visState": "{\"title\":\"Tunnels - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Tunnels - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "f166f708-f838-4c50-84cc-1fb99f7d7060" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7b5a1e84-eb4d-4a4f-9b8b-e325ff81d89a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T19:07:29.104Z", + "version": "WzM4MTEsMV0=", + "attributes": { + "title": "Tunnels - Country", + "visState": "{\"title\":\"Tunnels - Country\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.destination_geo.country_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Country\"},\"schema\":\"segment\"}],\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100,\"rotate\":0},\"title\":{\"text\":\"Country\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "f166f708-f838-4c50-84cc-1fb99f7d7060" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "56a5dece-0790-4acc-b166-6628cf10a596", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T19:04:29.612Z", + "version": "WzM3NjAsMV0=", + "attributes": { + "title": "Tunnels - Action", + "visState": "{\"title\":\"Tunnels - Action\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_tunnel.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Action\"},\"schema\":\"segment\"}],\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "f166f708-f838-4c50-84cc-1fb99f7d7060" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHFYrqxQT5EBNmq4qT", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:12.938Z", + "version": "WzE3OCwxXQ==", + "attributes": { + "title": "Tunnels - Log Count", + "visState": "{\"title\":\"Tunnels - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "f166f708-f838-4c50-84cc-1fb99f7d7060" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f166f708-f838-4c50-84cc-1fb99f7d7060", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:12.938Z", + "version": "WzE4MCwxXQ==", + "attributes": { + "title": "Tunnels - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "zeek_tunnel.action", + "zeek_tunnel.tunnel_type", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:tunnel\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/11ddd980-e388-11e9-b568-cf17de8e860c.json b/Vagrant/resources/malcolm/kibana/dashboards/11ddd980-e388-11e9-b568-cf17de8e860c.json new file mode 100644 index 0000000..d9a1c22 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/11ddd980-e388-11e9-b568-cf17de8e860c.json @@ -0,0 +1,386 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "11ddd980-e388-11e9-b568-cf17de8e860c", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:02:59.762Z", + "version": "WzIzNjUsMV0=", + "attributes": { + "title": "QUIC", + "hits": 0, + "description": "", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"h\":32,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":11,\"i\":\"15\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"15\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":23,\"i\":\"16\",\"w\":48,\"x\":0,\"y\":66},\"panelIndex\":\"16\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{\"table\":null,\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":11,\"i\":\"17\",\"w\":32,\"x\":16,\"y\":0},\"panelIndex\":\"17\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"18\",\"w\":20,\"x\":8,\"y\":11},\"panelIndex\":\"18\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"19\",\"w\":20,\"x\":28,\"y\":11},\"panelIndex\":\"19\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"20\",\"w\":20,\"x\":8,\"y\":29},\"panelIndex\":\"20\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"21\",\"w\":20,\"x\":28,\"y\":29},\"panelIndex\":\"21\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":19,\"i\":\"22\",\"w\":48,\"x\":0,\"y\":47},\"panelIndex\":\"22\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_8\"},{\"embeddableConfig\":{\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"23\",\"w\":8,\"x\":0,\"y\":32},\"panelIndex\":\"23\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_9\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "a9a94150-e388-11e9-b568-cf17de8e860c" + }, + { + "name": "panel_2", + "type": "search", + "id": "69939d90-e388-11e9-b568-cf17de8e860c" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "42fea480-e389-11e9-b568-cf17de8e860c" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "2648ad80-e38a-11e9-b568-cf17de8e860c" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "49d13470-e38a-11e9-b568-cf17de8e860c" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "919cb8b0-e38a-11e9-b568-cf17de8e860c" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "be8b4120-e38a-11e9-b568-cf17de8e860c" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "2e6549a0-e38b-11e9-b568-cf17de8e860c" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "7a6b6a50-e38b-11e9-b568-cf17de8e860c" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a9a94150-e388-11e9-b568-cf17de8e860c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:13.961Z", + "version": "WzE5MywxXQ==", + "attributes": { + "title": "QUIC - Log Count", + "visState": "{\"title\":\"QUIC - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "69939d90-e388-11e9-b568-cf17de8e860c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "69939d90-e388-11e9-b568-cf17de8e860c", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:13.961Z", + "version": "WzE5NCwxXQ==", + "attributes": { + "title": "QUIC - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "quic.useragent", + "dstIp", + "quic.host", + "quic.version", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:gquic\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "42fea480-e389-11e9-b568-cf17de8e860c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:00:51.994Z", + "version": "WzIzNTAsMV0=", + "attributes": { + "title": "QUIC - Log Count Over Time", + "visState": "{\"title\":\"QUIC - Log Count Over Time\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-25y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}},\"schema\":\"segment\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"quic.version\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"QUIC Version\"},\"schema\":\"group\"}],\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "69939d90-e388-11e9-b568-cf17de8e860c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2648ad80-e38a-11e9-b568-cf17de8e860c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:13.961Z", + "version": "WzE5NiwxXQ==", + "attributes": { + "title": "QUIC - Source IP Address", + "visState": "{\"title\":\"QUIC - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"size\":500,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP Address\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "69939d90-e388-11e9-b568-cf17de8e860c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "49d13470-e38a-11e9-b568-cf17de8e860c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:13.961Z", + "version": "WzE5NywxXQ==", + "attributes": { + "title": "QUIC - Destination IP Address", + "visState": "{\"title\":\"QUIC - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"size\":500,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP Address\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "69939d90-e388-11e9-b568-cf17de8e860c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "919cb8b0-e38a-11e9-b568-cf17de8e860c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:13.961Z", + "version": "WzE5OCwxXQ==", + "attributes": { + "title": "QUIC - User Agent", + "visState": "{\"title\":\"QUIC - User Agent\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"quic.useragent\",\"size\":500,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"User Agent\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "69939d90-e388-11e9-b568-cf17de8e860c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "be8b4120-e38a-11e9-b568-cf17de8e860c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:13.961Z", + "version": "WzE5OSwxXQ==", + "attributes": { + "title": "QUIC - Server Name", + "visState": "{\"title\":\"QUIC - Server Name\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"quic.host\",\"size\":500,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Server Name\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "69939d90-e388-11e9-b568-cf17de8e860c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2e6549a0-e38b-11e9-b568-cf17de8e860c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:13.961Z", + "version": "WzIwMCwxXQ==", + "attributes": { + "title": "QUIC - CYU Fingerprint", + "visState": "{\"title\":\"QUIC - CYU Fingerprint\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_gquic.cyutags\",\"size\":500,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"CYU Fingerprint Tags\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_gquic.cyu\",\"size\":500,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"CYU Fingerprint MD5\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "69939d90-e388-11e9-b568-cf17de8e860c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7a6b6a50-e38b-11e9-b568-cf17de8e860c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:13.961Z", + "version": "WzIwMSwxXQ==", + "attributes": { + "title": "QUIC - Version", + "visState": "{\"title\":\"QUIC - Version\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"quic.version\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"QUIC Version\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "69939d90-e388-11e9-b568-cf17de8e860c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/12e3a130-d83b-11eb-a0b0-f328ce09b0b7.json b/Vagrant/resources/malcolm/kibana/dashboards/12e3a130-d83b-11eb-a0b0-f328ce09b0b7.json new file mode 100644 index 0000000..d88246e --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/12e3a130-d83b-11eb-a0b0-f328ce09b0b7.json @@ -0,0 +1,341 @@ +{ + "version": "7.10.2", + "objects": [ + { + "id": "12e3a130-d83b-11eb-a0b0-f328ce09b0b7", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-07-06T15:53:13.184Z", + "version": "WzEwNTksMV0=", + "attributes": { + "title": "ICS Best Guess", + "hits": 0, + "description": "", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"h\":34,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":10,\"i\":\"bcd8c686-5d1e-493c-a9b3-4ff46e43c430\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"bcd8c686-5d1e-493c-a9b3-4ff46e43c430\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":10,\"i\":\"8ea78bf3-d28f-4e64-9300-acc4974b48ab\",\"w\":32,\"x\":16,\"y\":0},\"panelIndex\":\"8ea78bf3-d28f-4e64-9300-acc4974b48ab\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{\"hidePanelTitles\":true},\"gridData\":{\"h\":6,\"i\":\"8b261ab9-bc3e-431f-9661-7130a3691e59\",\"w\":17,\"x\":8,\"y\":10},\"panelIndex\":\"8b261ab9-bc3e-431f-9661-7130a3691e59\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":26,\"i\":\"d12b6bb3-e89e-4a92-8234-91bb7e55c20d\",\"w\":23,\"x\":25,\"y\":10},\"panelIndex\":\"d12b6bb3-e89e-4a92-8234-91bb7e55c20d\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"a77da3f0-fda3-4638-bc9e-a492ab4f9999\",\"w\":17,\"x\":8,\"y\":16},\"panelIndex\":\"a77da3f0-fda3-4638-bc9e-a492ab4f9999\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":26,\"i\":\"ed874588-65d2-458f-a7f5-88e6f7031b80\",\"w\":23,\"x\":25,\"y\":36},\"panelIndex\":\"ed874588-65d2-458f-a7f5-88e6f7031b80\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":28,\"i\":\"a90fa9be-54ba-4f25-ab7b-bf484557a89d\",\"w\":25,\"x\":0,\"y\":34},\"panelIndex\":\"a90fa9be-54ba-4f25-ab7b-bf484557a89d\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":33,\"i\":\"2000008c-f74f-40c3-bbfd-ec6a9acf864c\",\"w\":48,\"x\":0,\"y\":62},\"panelIndex\":\"2000008c-f74f-40c3-bbfd-ec6a9acf864c\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_8\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "9f878160-d83b-11eb-a0b0-f328ce09b0b7" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "e51375e0-d83b-11eb-a0b0-f328ce09b0b7" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "2a3ce150-d8e7-11eb-8448-8f6f257e0b34" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "d3ec8b90-d8e4-11eb-8448-8f6f257e0b34" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "129f16c0-d83e-11eb-a0b0-f328ce09b0b7" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "8c3695b0-d8e5-11eb-8448-8f6f257e0b34" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "054c4020-d83d-11eb-a0b0-f328ce09b0b7" + }, + { + "name": "panel_8", + "type": "search", + "id": "a4db0f40-d838-11eb-a0b0-f328ce09b0b7" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-07-06T15:35:08.455Z", + "version": "WzkwMiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9f878160-d83b-11eb-a0b0-f328ce09b0b7", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-07-06T15:34:12.354Z", + "version": "WzI4OCwxXQ==", + "attributes": { + "title": "Best Guess - Log Count", + "visState": "{\"title\":\"Best Guess - Log Count\",\"type\":\"metric\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"}],\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}}}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a4db0f40-d838-11eb-a0b0-f328ce09b0b7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "e51375e0-d83b-11eb-a0b0-f328ce09b0b7", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-07-06T15:34:12.354Z", + "version": "WzI4OSwxXQ==", + "attributes": { + "title": "Best Guess - Log Count Over Time", + "visState": "{\"title\":\"Best Guess - Log Count Over Time\",\"type\":\"line\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-26y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}},\"schema\":\"segment\"}],\"params\":{\"type\":\"line\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"interpolate\":\"linear\",\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a4db0f40-d838-11eb-a0b0-f328ce09b0b7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2a3ce150-d8e7-11eb-8448-8f6f257e0b34", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-07-06T15:34:12.354Z", + "version": "WzI5MCwxXQ==", + "attributes": { + "title": "Best Guess - Disclaimer", + "visState": "{\"title\":\"Best Guess - Disclaimer\",\"type\":\"markdown\",\"aggs\":[],\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"Note: This dashboard categorizes potential industrial control system traffic using transport protocol, responding port and/or originating port instead of packet payload inspection. As such, these results should be viewed as a \\\"best guess\\\" and are likely to have more false positives than other protocol dashboards.\"}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d3ec8b90-d8e4-11eb-8448-8f6f257e0b34", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-07-06T15:50:13.473Z", + "version": "Wzk4MCwxXQ==", + "attributes": { + "title": "Best Guess Protocol - Destination", + "visState": "{\"title\":\"Best Guess Protocol - Destination\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_bestguess.category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Category\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_bestguess.name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Protocol\"},\"schema\":\"bucket\"},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"protocol\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Transport\"},\"schema\":\"bucket\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":18,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a4db0f40-d838-11eb-a0b0-f328ce09b0b7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "129f16c0-d83e-11eb-a0b0-f328ce09b0b7", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-07-06T15:51:22.706Z", + "version": "WzEwMDksMV0=", + "attributes": { + "title": "Best Guess - Summary", + "visState": "{\"title\":\"Best Guess - Summary\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.proto\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Transport\"},\"schema\":\"bucket\"},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_bestguess.category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Category\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_bestguess.name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Details\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a4db0f40-d838-11eb-a0b0-f328ce09b0b7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8c3695b0-d8e5-11eb-8448-8f6f257e0b34", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-07-06T15:52:21.391Z", + "version": "WzEwMzcsMV0=", + "attributes": { + "title": "Best Guess Protocol - Source", + "visState": "{\"title\":\"Best Guess Protocol - Source\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_bestguess.category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Category\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_bestguess.name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Protocol\"},\"schema\":\"bucket\"},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"protocol\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Tranport\"},\"schema\":\"bucket\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":18,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a4db0f40-d838-11eb-a0b0-f328ce09b0b7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "054c4020-d83d-11eb-a0b0-f328ce09b0b7", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-07-06T15:34:12.354Z", + "version": "WzI5NCwxXQ==", + "attributes": { + "title": "Best Guess - Category", + "visState": "{\"title\":\"Best Guess - Category\",\"type\":\"horizontal_bar\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_bestguess.category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Category\"},\"schema\":\"segment\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_bestguess.category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":1,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Category\"},\"schema\":\"group\"}],\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a4db0f40-d838-11eb-a0b0-f328ce09b0b7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a4db0f40-d838-11eb-a0b0-f328ce09b0b7", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-07-06T15:34:12.354Z", + "version": "WzI5NSwxXQ==", + "attributes": { + "title": "Best Guess - Logs", + "description": "", + "hits": 0, + "columns": [ + "protocol", + "zeek_bestguess.category", + "zeek_bestguess.name", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "zeek.uid" + ], + "sort": [], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:bestguess\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/152f29dc-51a2-4f53-93e9-6e92765567b8.json b/Vagrant/resources/malcolm/kibana/dashboards/152f29dc-51a2-4f53-93e9-6e92765567b8.json new file mode 100644 index 0000000..3d63bcd --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/152f29dc-51a2-4f53-93e9-6e92765567b8.json @@ -0,0 +1,718 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "152f29dc-51a2-4f53-93e9-6e92765567b8", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T14:57:58.862Z", + "version": "WzE3MDMsMV0=", + "attributes": { + "title": "Modbus", + "hits": 0, + "description": "Dashboard for the Modbus Protocol", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"h\":27,\"i\":\"2\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"11\",\"w\":18,\"x\":8,\"y\":22},\"panelIndex\":\"11\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"14\",\"w\":48,\"x\":0,\"y\":96},\"panelIndex\":\"14\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":19,\"i\":\"15\",\"w\":10,\"x\":0,\"y\":58},\"panelIndex\":\"15\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":19,\"i\":\"16\",\"w\":11,\"x\":10,\"y\":58},\"panelIndex\":\"16\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"18\",\"w\":21,\"x\":0,\"y\":40},\"panelIndex\":\"18\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":13,\"i\":\"19\",\"w\":8,\"x\":0,\"y\":27},\"panelIndex\":\"19\",\"embeddableConfig\":{\"legendOpen\":true,\"vis\":{\"legendOpen\":true},\"table\":null},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":22,\"i\":\"90799aa8-a1f5-4f22-8ebd-fcc89d16f6de\",\"w\":10,\"x\":8,\"y\":0},\"panelIndex\":\"90799aa8-a1f5-4f22-8ebd-fcc89d16f6de\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":22,\"i\":\"218010cf-a0d9-4864-815b-f562bb67949d\",\"w\":30,\"x\":18,\"y\":0},\"panelIndex\":\"218010cf-a0d9-4864-815b-f562bb67949d\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"94289b59-62a3-49ac-9847-de4b42858ae6\",\"w\":22,\"x\":26,\"y\":22},\"panelIndex\":\"94289b59-62a3-49ac-9847-de4b42858ae6\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":37,\"i\":\"f8941a7d-be4b-4782-b72b-808645d02139\",\"w\":27,\"x\":21,\"y\":40},\"panelIndex\":\"f8941a7d-be4b-4782-b72b-808645d02139\",\"embeddableConfig\":{},\"panelRefName\":\"panel_10\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":19,\"i\":\"502f22a6-2e5c-44dd-afa8-39309464f3f2\",\"w\":24,\"x\":24,\"y\":77},\"panelIndex\":\"502f22a6-2e5c-44dd-afa8-39309464f3f2\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":5,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":5,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_11\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":19,\"i\":\"c0d7fb2c-a651-4054-b4cd-026d9f34ad44\",\"w\":24,\"x\":0,\"y\":77},\"panelIndex\":\"c0d7fb2c-a651-4054-b4cd-026d9f34ad44\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_12\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":19,\"i\":\"1d1b2b12-c510-4b9e-9fbe-b65a2946fe13\",\"w\":48,\"x\":0,\"y\":114},\"panelIndex\":\"1d1b2b12-c510-4b9e-9fbe-b65a2946fe13\",\"embeddableConfig\":{\"sort\":[[\"firstPacket\",\"asc\"]]},\"panelRefName\":\"panel_13\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":19,\"i\":\"99311c07-fbae-4197-ab3f-f8ddf89deefc\",\"w\":48,\"x\":0,\"y\":133},\"panelIndex\":\"99311c07-fbae-4197-ab3f-f8ddf89deefc\",\"embeddableConfig\":{},\"panelRefName\":\"panel_14\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":20,\"i\":\"f50e3c18-31ce-482f-b6a0-c99215b5b5e9\",\"w\":48,\"x\":0,\"y\":152},\"panelIndex\":\"f50e3c18-31ce-482f-b6a0-c99215b5b5e9\",\"embeddableConfig\":{},\"panelRefName\":\"panel_15\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "e8463b80-6e08-48c2-8101-33739452d61b" + }, + { + "name": "panel_2", + "type": "search", + "id": "6dd45620-ef5d-11e9-974e-9d600036d105" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "9b9be400-ef5e-11e9-974e-9d600036d105" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "b84b7cf0-ef5e-11e9-974e-9d600036d105" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "3e847130-ef75-11e9-91bd-23d686ac8389" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "b66427e0-ef75-11e9-91bd-23d686ac8389" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "39dd5680-e3c9-11ea-b05f-2302f75ab2c8" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "9d53fc00-e3c9-11ea-b05f-2302f75ab2c8" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "54a9c5a0-e3cb-11ea-b05f-2302f75ab2c8" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "a8851d60-5684-11eb-a702-bff6ecd13bea" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "94118e70-e3d1-11ea-8def-e34cb979819b" + }, + { + "name": "panel_12", + "type": "visualization", + "id": "d0dc3070-e3d2-11ea-8def-e34cb979819b" + }, + { + "name": "panel_13", + "type": "search", + "id": "1cfb4e10-e0b7-11ea-8a49-0d5868b09681" + }, + { + "name": "panel_14", + "type": "search", + "id": "10e72aa0-0816-11eb-987d-c591a71f172b" + }, + { + "name": "panel_15", + "type": "search", + "id": "3ac0f900-0816-11eb-987d-c591a71f172b" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "e8463b80-6e08-48c2-8101-33739452d61b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIwNCwxXQ==", + "attributes": { + "title": "Modbus - Functions", + "visState": "{\"title\":\"Modbus - Functions\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Function\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_modbus.func\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Modbus Function\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "Modbus Function Codes", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "126f6846-e50a-4cae-9703-80ac172a2098" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6dd45620-ef5d-11e9-974e-9d600036d105", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIwNSwxXQ==", + "attributes": { + "title": "Modbus - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_modbus.func", + "zeek_modbus.exception", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:(\\\"modbus\\\")\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "9b9be400-ef5e-11e9-974e-9d600036d105", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIwNiwxXQ==", + "attributes": { + "title": "Modbus - Source IP", + "visState": "{\"title\":\"Modbus - Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "Source IP Addresses from modbus.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "6dd45620-ef5d-11e9-974e-9d600036d105" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b84b7cf0-ef5e-11e9-974e-9d600036d105", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIwNywxXQ==", + "attributes": { + "title": "Modbus - Destination IP", + "visState": "{\"title\":\"Modbus - Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Destination Port\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "Destination IP Addresses from modbus.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "6dd45620-ef5d-11e9-974e-9d600036d105" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3e847130-ef75-11e9-91bd-23d686ac8389", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIwOCwxXQ==", + "attributes": { + "title": "Modbus - Observed Masters and Slaves", + "visState": "{\"title\":\"Modbus - Observed Masters and Slaves\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Times Observed\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_known_modbus.device_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Device Type\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP Address\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "Modbus observed master and slave devices", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "da7d99a0-ef74-11e9-91bd-23d686ac8389" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b66427e0-ef75-11e9-91bd-23d686ac8389", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIwOSwxXQ==", + "attributes": { + "title": "Modbus - Observed Master/Slave Ratio", + "visState": "{\"title\":\"Modbus - Observed Master/Slave Ratio\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Modbus Role\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_known_modbus.device_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Modbus Role\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "Modbus Observed Masters and Slaves Chart", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "da7d99a0-ef74-11e9-91bd-23d686ac8389" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "39dd5680-e3c9-11ea-b05f-2302f75ab2c8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIxMCwxXQ==", + "attributes": { + "title": "Modbus - Log Count", + "visState": "{\"title\":\"Modbus - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Log Count\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{}", + "description": "Count of Modbus logs including Modbus Detailed and Modbus Register Change", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:*modbus*\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9d53fc00-e3c9-11ea-b05f-2302f75ab2c8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIxMSwxXQ==", + "attributes": { + "title": "Modbus - Logs Over Time", + "visState": "{\"title\":\"Modbus - Logs Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"YYYY\"}},\"params\":{\"date\":true,\"interval\":\"P365D\",\"intervalESValue\":365,\"intervalESUnit\":\"d\",\"format\":\"YYYY\",\"bounds\":{\"min\":\"1971-01-14T16:33:54.363Z\",\"max\":\"2021-01-14T16:33:54.363Z\"}},\"label\":\"firstPacket per 365 days\",\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Log Type\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-50y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "Modbus Logs over Time", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:*modbus*\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "54a9c5a0-e3cb-11ea-b05f-2302f75ab2c8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIxMiwxXQ==", + "attributes": { + "title": "Modbus - Exceptions", + "visState": "{\"title\":\"Modbus - Exceptions\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Modbus Exception\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_modbus.func\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Function\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_modbus.exception\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Exception\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "Modbus Exception Codes", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "126f6846-e50a-4cae-9703-80ac172a2098" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a8851d60-5684-11eb-a702-bff6ecd13bea", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIxMywxXQ==", + "attributes": { + "title": "Modbus Detailed - Request and Response", + "visState": "{\"title\":\"Modbus Detailed - Request and Response\",\"type\":\"horizontal_bar\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"zeek_modbus_detailed.network_direction: Descending\",\"aggType\":\"terms\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_modbus_detailed.func\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Function\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek_modbus_detailed.network_direction\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1cfb4e10-e0b7-11ea-8a49-0d5868b09681" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "94118e70-e3d1-11ea-8def-e34cb979819b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIxNCwxXQ==", + "attributes": { + "title": "Modbus - Writes", + "visState": "{\"title\":\"Modbus - Writes\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":3,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Values\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_modbus_detailed.func\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Function\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_modbus_detailed.unit_id\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Unit ID\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_modbus_detailed.address\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"-\",\"missingBucket\":false,\"missingBucketLabel\":\"-\",\"customLabel\":\"Address\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_modbus_detailed.values\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"-\",\"missingBucket\":false,\"missingBucketLabel\":\"-\",\"customLabel\":\"Values\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "Modbus write register and write coil overview from modbus_detailed.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek_modbus_detailed.network_direction:(\\\"request\\\")\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1cfb4e10-e0b7-11ea-8a49-0d5868b09681" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d0dc3070-e3d2-11ea-8def-e34cb979819b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIxNSwxXQ==", + "attributes": { + "title": "Modbus - Reads", + "visState": "{\"title\":\"Modbus - Reads\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":5,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Values\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_modbus_detailed.func\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Function\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_modbus_detailed.unit_id\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Unit ID\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_modbus_detailed.values\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"-\",\"missingBucket\":false,\"missingBucketLabel\":\"-\",\"customLabel\":\"Values\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "Modbus read holding registers, input registers, discrete inputs, and coils overview from modbus_detailed.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek_modbus_detailed.network_direction:(\\\"response\\\") AND zeek_modbus_detailed.func:(\\\"READ_DISCRETE_INPUTS\\\" OR \\\"READ_COILS\\\" OR \\\"READ_HOLDING_REGISTERS\\\" OR \\\"READ_INPUT_REGISTERS\\\")\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1cfb4e10-e0b7-11ea-8a49-0d5868b09681" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "1cfb4e10-e0b7-11ea-8a49-0d5868b09681", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIxNiwxXQ==", + "attributes": { + "title": "Modbus - Detailed", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_modbus_detailed.func", + "zeek_modbus_detailed.network_direction", + "zeek_modbus_detailed.unit_id", + "zeek_modbus_detailed.address", + "zeek_modbus_detailed.quantity", + "zeek_modbus_detailed.values" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:\\\"modbus_detailed\\\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "10e72aa0-0816-11eb-987d-c591a71f172b", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIxNywxXQ==", + "attributes": { + "title": "Modbus - Mask Write", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_modbus_mask_write_register.network_direction", + "zeek_modbus_mask_write_register.func", + "zeek_modbus_mask_write_register.unit_id", + "zeek_modbus_mask_write_register.address", + "zeek_modbus_mask_write_register.and_mask", + "zeek_modbus_mask_write_register.or_mask" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:\\\"modbus_mask_write_register\\\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "3ac0f900-0816-11eb-987d-c591a71f172b", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIxOCwxXQ==", + "attributes": { + "title": "Modbus - Read Write Multiple", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_modbus_read_write_multiple_registers.network_direction", + "zeek_modbus_read_write_multiple_registers.func", + "zeek_modbus_read_write_multiple_registers.unit_id", + "zeek_modbus_read_write_multiple_registers.write_start_address", + "zeek_modbus_read_write_multiple_registers.write_registers", + "zeek_modbus_read_write_multiple_registers.read_start_address", + "zeek_modbus_read_write_multiple_registers.read_registers" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:\\\"modbus_read_write_multiple_registers\\\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "126f6846-e50a-4cae-9703-80ac172a2098", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIxOSwxXQ==", + "attributes": { + "title": "Modbus - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_modbus.func", + "zeek_modbus.exception", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:modbus\",\"analyze_wildcard\":true,\"default_field\":\"*\"}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "da7d99a0-ef74-11e9-91bd-23d686ac8389", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:15.000Z", + "version": "WzIyMCwxXQ==", + "attributes": { + "title": "Modbus - Known Masters and Slaves Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "zeek_known_modbus.device_type", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"zeek.logType:\\\"known_modbus\\\"\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/1ce42250-3f99-11e9-a58e-8bdedb0915e8.json b/Vagrant/resources/malcolm/kibana/dashboards/1ce42250-3f99-11e9-a58e-8bdedb0915e8.json new file mode 100644 index 0000000..4612584 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/1ce42250-3f99-11e9-a58e-8bdedb0915e8.json @@ -0,0 +1,210 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "1ce42250-3f99-11e9-a58e-8bdedb0915e8", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:16.017Z", + "version": "WzIzOCwxXQ==", + "attributes": { + "title": "Connections - Source - Sum of Total Bytes (region map)", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":23,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":50,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":3},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":23,\"w\":8,\"h\":15,\"i\":\"5cf06729-4907-4824-a561-a3c50a23136c\"},\"panelIndex\":\"5cf06729-4907-4824-a561-a3c50a23136c\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":38,\"w\":8,\"h\":12,\"i\":\"b397c221-819d-4fdd-b3e1-3a424d643ef0\"},\"panelIndex\":\"b397c221-819d-4fdd-b3e1-3a424d643ef0\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"*\",\"language\":\"lucene\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "997269c0-3f95-11e9-a58e-8bdedb0915e8" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "997269c0-3f95-11e9-a58e-8bdedb0915e8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:16.017Z", + "version": "WzI0MCwxXQ==", + "attributes": { + "title": "Connections - Source - Sum of Total Bytes (region map)", + "visState": "{\"title\":\"Connections - Source - Sum of Total Bytes (region map)\",\"type\":\"region_map\",\"params\":{\"addTooltip\":true,\"colorSchema\":\"Green to Red\",\"emsHotLink\":null,\"isDisplayWarning\":false,\"legendPosition\":\"bottomright\",\"mapCenter\":[0,0],\"mapZoom\":3,\"outlineWeight\":1,\"selectedJoinField\":{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},\"selectedLayer\":{\"attribution\":\"https://exploratory.io/maps\",\"fields\":[{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},{\"description\":\"Country Code2\",\"name\":\"WB_A2\"},{\"description\":\"Country Name\",\"name\":\"NAME\"}],\"format\":{\"type\":\"geojson\"},\"isEMS\":false,\"layerId\":\"self_hosted.World (offline)\",\"meta\":{\"feature_collection_path\":\"data\"},\"name\":\"World (offline)\",\"url\":\"/world.geojson\"},\"showAllShapes\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"selectedTmsLayer\":{\"origin\":\"elastic_maps_service\",\"id\":\"road_map\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"OpenStreetMap contributors | OpenMapTiles | MapTiler | Elastic Maps Service\"}},\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\",\"params\":{}},\"params\":{},\"label\":\"Total Bytes\",\"aggType\":\"sum\"},\"bucket\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Originator Country\",\"aggType\":\"terms\"}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"schema\":\"metric\",\"params\":{\"field\":\"totBytes\",\"customLabel\":\"Total Bytes\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"srcGEO\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Originator Country\"}}]}", + "uiStateJSON": "{\"mapCenter\":[37.87063517566466,16.347656250000004],\"mapZoom\":3}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NCwxXQ==", + "attributes": { + "title": "Connections - Protocol Filters", + "visState": "{\"title\":\"Connections - Protocol Filters\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1581606976709\",\"fieldName\":\"network.type\",\"parent\":\"\",\"label\":\"Network Layer\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1581606723028\",\"fieldName\":\"zeek.proto\",\"parent\":\"\",\"label\":\"Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"},{\"id\":\"1581606665268\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Service\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_2_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_1_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_2_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/1fff49f6-0199-4a0f-820b-721aff9ff1f1.json b/Vagrant/resources/malcolm/kibana/dashboards/1fff49f6-0199-4a0f-820b-721aff9ff1f1.json new file mode 100644 index 0000000..56ea990 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/1fff49f6-0199-4a0f-820b-721aff9ff1f1.json @@ -0,0 +1,386 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "1fff49f6-0199-4a0f-820b-721aff9ff1f1", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:17.046Z", + "version": "WzI0OSwxXQ==", + "attributes": { + "title": "Weird", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":66,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":27,\"w\":14,\"h\":20,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":22,\"y\":27,\"w\":14,\"h\":20,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":8,\"w\":16,\"h\":19,\"i\":\"8\"},\"panelIndex\":\"8\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":47,\"w\":40,\"h\":19,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":36,\"y\":27,\"w\":12,\"h\":20,\"i\":\"12\"},\"panelIndex\":\"12\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"13\"},\"panelIndex\":\"13\",\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":24,\"y\":8,\"w\":24,\"h\":19,\"i\":\"14\"},\"panelIndex\":\"14\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":66,\"w\":48,\"h\":35,\"i\":\"781c60c8-791a-4f33-9f08-85820f16f4d1\"},\"panelIndex\":\"781c60c8-791a-4f33-9f08-85820f16f4d1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "2789890f-3187-449c-b0d7-a351975cbe13" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "259fa46e-2fde-41bb-b028-063a12cb4621" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "84786f08-b68a-4524-8d2d-d44221f99060" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "c7fbd190-02fa-4eb5-ac5a-a4ad421a6a3b" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "a827f658-2190-4ec4-b330-96cdb93d97ed" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "64ffd0d9-a0d7-4db6-bce0-c69b48ff0da6" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "AWDHGXk-xQT5EBNmq4uf" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "429d2522-67c6-44f5-aae8-f464d5815195" + }, + { + "name": "panel_9", + "type": "search", + "id": "17236484-ab93-4497-8b85-bc7dfaeb2d71" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2789890f-3187-449c-b0d7-a351975cbe13", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:17.046Z", + "version": "WzI1MSwxXQ==", + "attributes": { + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"extended_bounds\":{},\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"firstPacket per 12 hours\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"legendPosition\":\"right\",\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"showCircles\":true,\"times\":[],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"Weird - Log Count Over Time\",\"type\":\"line\"}", + "description": "", + "title": "Weird - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "17236484-ab93-4497-8b85-bc7dfaeb2d71" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "259fa46e-2fde-41bb-b028-063a12cb4621", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:17.046Z", + "version": "WzI1MiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Weird - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Weird - Source IP Address", + "uiStateJSON": "{\"P-5\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"P-6\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "17236484-ab93-4497-8b85-bc7dfaeb2d71" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "84786f08-b68a-4524-8d2d-d44221f99060", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:17.046Z", + "version": "WzI1MywxXQ==", + "attributes": { + "visState": "{\"title\":\"Weird - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Weird - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "17236484-ab93-4497-8b85-bc7dfaeb2d71" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c7fbd190-02fa-4eb5-ac5a-a4ad421a6a3b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:17.046Z", + "version": "WzI1NCwxXQ==", + "attributes": { + "title": "Weird - Notice Generated", + "visState": "{\"title\":\"Weird - Notice Generated\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek_weird.notice: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_weird.notice\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "17236484-ab93-4497-8b85-bc7dfaeb2d71" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a827f658-2190-4ec4-b330-96cdb93d97ed", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:17.046Z", + "version": "WzI1NSwxXQ==", + "attributes": { + "visState": "{\"title\":\"Weird - Summary\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_weird.name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":25,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Type\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":25,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Source IP Address\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":25,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Destination IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Weird - Summary", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "17236484-ab93-4497-8b85-bc7dfaeb2d71" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "64ffd0d9-a0d7-4db6-bce0-c69b48ff0da6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:17.046Z", + "version": "WzI1NiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Weird - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Port\"}}],\"listeners\":{}}", + "description": "", + "title": "Weird - Destination Port", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "17236484-ab93-4497-8b85-bc7dfaeb2d71" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHGXk-xQT5EBNmq4uf", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:17.046Z", + "version": "WzI1NywxXQ==", + "attributes": { + "title": "Weird - Log Count", + "visState": "{\"title\":\"Weird - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "17236484-ab93-4497-8b85-bc7dfaeb2d71" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "429d2522-67c6-44f5-aae8-f464d5815195", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:17.046Z", + "version": "WzI1OCwxXQ==", + "attributes": { + "title": "Weird - Name", + "visState": "{\"title\":\"Weird - Name\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_weird.name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Name\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "17236484-ab93-4497-8b85-bc7dfaeb2d71" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "17236484-ab93-4497-8b85-bc7dfaeb2d71", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:17.046Z", + "version": "WzI1OSwxXQ==", + "attributes": { + "title": "Weird - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "zeek_weird.name", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:weird\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/29a1b290-eb98-11e9-a384-0fcf32210194.json b/Vagrant/resources/malcolm/kibana/dashboards/29a1b290-eb98-11e9-a384-0fcf32210194.json new file mode 100644 index 0000000..36de0f9 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/29a1b290-eb98-11e9-a384-0fcf32210194.json @@ -0,0 +1,564 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "29a1b290-eb98-11e9-a384-0fcf32210194", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T14:51:43.748Z", + "version": "WzE2NzksMV0=", + "attributes": { + "title": "EtherNet/IP", + "hits": 0, + "description": "Dashboard for Ethernet/IP and CIP Protocols", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"h\":37,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":19,\"i\":\"2\",\"w\":9,\"x\":8,\"y\":0},\"panelIndex\":\"2\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{\"legendOpen\":false,\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":19,\"i\":\"3\",\"w\":31,\"x\":17,\"y\":0},\"panelIndex\":\"3\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":18,\"i\":\"5bbd48d6-a3e7-4b7e-9c1d-9883d519dc76\",\"w\":15,\"x\":8,\"y\":19},\"panelIndex\":\"5bbd48d6-a3e7-4b7e-9c1d-9883d519dc76\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"a38de599-91bf-4ce0-9ba1-fcdacb57c943\",\"w\":25,\"x\":23,\"y\":19},\"panelIndex\":\"a38de599-91bf-4ce0-9ba1-fcdacb57c943\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":19,\"i\":\"a73b04d1-99ec-42e7-858d-5edd5c8ae15a\",\"w\":12,\"x\":11,\"y\":37},\"panelIndex\":\"a73b04d1-99ec-42e7-858d-5edd5c8ae15a\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":19,\"i\":\"c25cc903-12d2-43af-9841-89bba26a32a9\",\"w\":11,\"x\":0,\"y\":37},\"panelIndex\":\"c25cc903-12d2-43af-9841-89bba26a32a9\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":5,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":19,\"i\":\"7ccb6ae1-5068-4a2d-b147-2baa12a7ac92\",\"w\":25,\"x\":23,\"y\":37},\"panelIndex\":\"7ccb6ae1-5068-4a2d-b147-2baa12a7ac92\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":6,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":6,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":16,\"i\":\"dcd19ab8-f6f7-403f-ac14-c02ccc7128fe\",\"w\":24,\"x\":0,\"y\":56},\"panelIndex\":\"dcd19ab8-f6f7-403f-ac14-c02ccc7128fe\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_8\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":5,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":16,\"i\":\"a66a1ab3-eeaf-4c7b-a56e-b8663be6ab9f\",\"w\":24,\"x\":24,\"y\":56},\"panelIndex\":\"a66a1ab3-eeaf-4c7b-a56e-b8663be6ab9f\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_9\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":19,\"i\":\"bb66342b-bad1-4592-b5cf-18fbe68ec1a2\",\"w\":48,\"x\":0,\"y\":72},\"panelIndex\":\"bb66342b-bad1-4592-b5cf-18fbe68ec1a2\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_10\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":13,\"i\":\"faa4d891-2c11-4393-acec-cea800f017e7\",\"w\":48,\"x\":0,\"y\":91},\"panelIndex\":\"faa4d891-2c11-4393-acec-cea800f017e7\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_11\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":16,\"i\":\"4608eca0-796d-4482-b62a-887c799e423f\",\"w\":48,\"x\":0,\"y\":104},\"panelIndex\":\"4608eca0-796d-4482-b62a-887c799e423f\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_12\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":16,\"i\":\"9d193b0a-a8d1-48ad-88cc-16a325686f91\",\"w\":48,\"x\":0,\"y\":120},\"panelIndex\":\"9d193b0a-a8d1-48ad-88cc-16a325686f91\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_13\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "b2548270-eb98-11e9-a384-0fcf32210194" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "3c2b11d0-eb99-11e9-a384-0fcf32210194" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "c3b30a40-5682-11eb-a702-bff6ecd13bea" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "fa86bb10-cab0-11ea-84cd-4f7b1f416f80" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "4ce6e380-cab6-11ea-84cd-4f7b1f416f80" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "378fefe0-cab6-11ea-84cd-4f7b1f416f80" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "5f626310-ca96-11ea-8578-f3ff6bdd82b2" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "3612d370-cb7f-11ea-b8b9-778c41cae039" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "6f73cf80-cb7e-11ea-b8b9-778c41cae039" + }, + { + "name": "panel_10", + "type": "search", + "id": "ca878ac0-c790-11ea-8578-f3ff6bdd82b2" + }, + { + "name": "panel_11", + "type": "search", + "id": "f75bfb80-c790-11ea-8578-f3ff6bdd82b2" + }, + { + "name": "panel_12", + "type": "search", + "id": "972f9f00-c790-11ea-8578-f3ff6bdd82b2" + }, + { + "name": "panel_13", + "type": "search", + "id": "a2d6d220-caaa-11ea-84cd-4f7b1f416f80" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b2548270-eb98-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI2MiwxXQ==", + "attributes": { + "title": "EtherNet/IP - Log Count", + "visState": "{\"title\":\"EtherNet/IP - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Log Count\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:(enip* OR cip*)\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3c2b11d0-eb99-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI2MywxXQ==", + "attributes": { + "title": "EtherNet/IP - Logs Over Time", + "visState": "{\"title\":\"EtherNet/IP - Logs Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"YYYY\"}},\"params\":{\"date\":true,\"interval\":\"P365D\",\"intervalESValue\":365,\"intervalESUnit\":\"d\",\"format\":\"YYYY\",\"bounds\":{\"min\":\"1971-01-14T16:48:06.557Z\",\"max\":\"2021-01-14T16:48:06.557Z\"}},\"label\":\"firstPacket per 365 days\",\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Log Type\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-50y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:(enip* OR cip*)\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c3b30a40-5682-11eb-a702-bff6ecd13bea", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI2NCwxXQ==", + "attributes": { + "title": "Ethernet/IP - Commands", + "visState": "{\"title\":\"Ethernet/IP - Commands\",\"type\":\"horizontal_bar\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"\"}},\"params\":{},\"label\":\"Command\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_enip.enip_command\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"\",\"customLabel\":\"Command\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "972f9f00-c790-11ea-8578-f3ff6bdd82b2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "fa86bb10-cab0-11ea-84cd-4f7b1f416f80", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI2NSwxXQ==", + "attributes": { + "title": "CIP - Services", + "visState": "{\"title\":\"CIP - Services\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":3,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Request/Response\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip.cip_service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"CIP Service\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip.cip_status\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Status\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip.direction\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Request/Response\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "CIP Services and Status", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "ca878ac0-c790-11ea-8578-f3ff6bdd82b2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4ce6e380-cab6-11ea-84cd-4f7b1f416f80", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI2NiwxXQ==", + "attributes": { + "title": "EtherNet/IP - Destination IP", + "visState": "{\"title\":\"EtherNet/IP - Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Source IP\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:(\\\"enip\\\" OR \\\"cip\\\" OR \\\"cip_io\\\")\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "378fefe0-cab6-11ea-84cd-4f7b1f416f80", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI2NywxXQ==", + "attributes": { + "title": "EtherNet/IP - Source IP", + "visState": "{\"title\":\"EtherNet/IP - Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:(\\\"enip\\\" OR \\\"cip\\\" OR \\\"cip_io\\\")\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5f626310-ca96-11ea-8578-f3ff6bdd82b2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI2OCwxXQ==", + "attributes": { + "title": "EtherNet/IP - Detailed Information", + "visState": "{\"title\":\"EtherNet/IP - Detailed Information\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":5,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Data Length\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_enip.session_handle\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Session Identifier\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_enip.sender_context\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Sender Context\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_enip.enip_command\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"EtherNet/IP Command\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_enip.length\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Data Length\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_enip.enip_status\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Status\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "Includes: Session Identifier, Sender Context, EtherNet/IP Command, Data Length, and Status", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "972f9f00-c790-11ea-8578-f3ff6bdd82b2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3612d370-cb7f-11ea-b8b9-778c41cae039", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI2OSwxXQ==", + "attributes": { + "title": "CIP - Request Path", + "visState": "{\"title\":\"CIP - Request Path\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":5,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":5,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Data ID\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip.class_id\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Class ID\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip.class_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Class Name\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip.instance_id\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Instance ID\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip.attribute_id\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Attribute ID\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip.data_id\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Data ID\"}},{\"id\":\"7\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip.other_id\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Other ID\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":5,\"direction\":\"desc\"}}}}", + "description": "CIP Request Path data", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "ca878ac0-c790-11ea-8578-f3ff6bdd82b2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6f73cf80-cb7e-11ea-b8b9-778c41cae039", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI3MCwxXQ==", + "attributes": { + "title": "CIP - Device Identity", + "visState": "{\"title\":\"CIP - Device Identity\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":4,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"N/A\"}},\"params\":{},\"label\":\"Serial Number\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip_identity.product_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"N/A\",\"customLabel\":\"Product Name\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip_identity.device_type_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"N/A\",\"customLabel\":\"Device Type\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip_identity.vendor_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"N/A\",\"customLabel\":\"Vendor Name\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip_identity.serial_number\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"N/A\",\"customLabel\":\"Serial Number\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_cip_identity.revision\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"N/A\",\"customLabel\":\"Revision Number\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "CIP Identity Results", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "f75bfb80-c790-11ea-8578-f3ff6bdd82b2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ca878ac0-c790-11ea-8578-f3ff6bdd82b2", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI3MSwxXQ==", + "attributes": { + "title": "CIP - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_cip.cip_service", + "zeek_cip.cip_status", + "zeek_cip.direction", + "zeek_cip.cip_sequence_count", + "zeek_cip.class_id", + "zeek_cip.class_name", + "zeek_cip.instance_id" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:cip\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "f75bfb80-c790-11ea-8578-f3ff6bdd82b2", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI3MiwxXQ==", + "attributes": { + "title": "CIP - Identity Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_cip_identity.device_type_name", + "zeek_cip_identity.product_name", + "zeek_cip_identity.vendor_name", + "zeek_cip_identity.revision", + "zeek_cip_identity.serial_number" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:cip_identity\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "972f9f00-c790-11ea-8578-f3ff6bdd82b2", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI3MywxXQ==", + "attributes": { + "title": "Ethernet/IP - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_enip.enip_command", + "zeek_enip.enip_status", + "zeek_enip.options", + "zeek_enip.sender_context", + "zeek_enip.session_handle", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:enip\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "a2d6d220-caaa-11ea-84cd-4f7b1f416f80", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:18.060Z", + "version": "WzI3NCwxXQ==", + "attributes": { + "title": "CIP - IO Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_cip_io.connection_id", + "zeek_cip_io.sequence_number", + "zeek_cip_io.data_length", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:cip_io\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/2bec1490-eb94-11e9-a384-0fcf32210194.json b/Vagrant/resources/malcolm/kibana/dashboards/2bec1490-eb94-11e9-a384-0fcf32210194.json new file mode 100644 index 0000000..3975ccb --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/2bec1490-eb94-11e9-a384-0fcf32210194.json @@ -0,0 +1,547 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "2bec1490-eb94-11e9-a384-0fcf32210194", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T14:45:42.395Z", + "version": "WzE2MDQsMV0=", + "attributes": { + "title": "BACnet", + "hits": 0, + "description": "Dashboard for the BACnet (Building Automation and Control Networks) Protocol", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"h\":35,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":17,\"i\":\"f59d8cf5-80a3-48b9-be05-d6801203e9e4\",\"w\":7,\"x\":8,\"y\":0},\"panelIndex\":\"f59d8cf5-80a3-48b9-be05-d6801203e9e4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":17,\"i\":\"bcc1cb9c-a8c4-4e3d-9d43-db85a009dd3a\",\"w\":33,\"x\":15,\"y\":0},\"panelIndex\":\"bcc1cb9c-a8c4-4e3d-9d43-db85a009dd3a\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"1d52698a-869a-4b09-ae6a-0508a4d66c05\",\"w\":13,\"x\":8,\"y\":17},\"panelIndex\":\"1d52698a-869a-4b09-ae6a-0508a4d66c05\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"7459b87c-93ee-44aa-b6c3-eb30948fee2a\",\"w\":13,\"x\":21,\"y\":17},\"panelIndex\":\"7459b87c-93ee-44aa-b6c3-eb30948fee2a\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"fd4e394a-eadf-4ec0-ac28-06e36a9891b2\",\"w\":14,\"x\":34,\"y\":17},\"panelIndex\":\"fd4e394a-eadf-4ec0-ac28-06e36a9891b2\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"8ec8d974-809f-41c4-8039-6f738ee27e82\",\"w\":11,\"x\":0,\"y\":35},\"panelIndex\":\"8ec8d974-809f-41c4-8039-6f738ee27e82\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"62a15e29-78d4-4e05-a742-83ab72f69bef\",\"w\":11,\"x\":11,\"y\":35},\"panelIndex\":\"62a15e29-78d4-4e05-a742-83ab72f69bef\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"113b15fe-a59c-466a-b8cd-f3c7879b592c\",\"w\":26,\"x\":22,\"y\":35},\"panelIndex\":\"113b15fe-a59c-466a-b8cd-f3c7879b592c\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"2376eb03-4a0c-42cd-8adc-3f65cfb9eefd\",\"w\":25,\"x\":0,\"y\":53},\"panelIndex\":\"2376eb03-4a0c-42cd-8adc-3f65cfb9eefd\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":6,\"direction\":\"asc\"}},\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":6,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"fb3d3f83-5b6b-4f0c-aad7-1182604cfa2a\",\"w\":23,\"x\":25,\"y\":53},\"panelIndex\":\"fb3d3f83-5b6b-4f0c-aad7-1182604cfa2a\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}},\"table\":null},\"panelRefName\":\"panel_10\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"773ed96f-8933-4f9c-b52f-02fd2398b4bc\",\"w\":48,\"x\":0,\"y\":71},\"panelIndex\":\"773ed96f-8933-4f9c-b52f-02fd2398b4bc\",\"embeddableConfig\":{},\"panelRefName\":\"panel_11\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":16,\"i\":\"9ee45ae2-d182-4fac-9ac5-cae0aaabd552\",\"w\":48,\"x\":0,\"y\":89},\"panelIndex\":\"9ee45ae2-d182-4fac-9ac5-cae0aaabd552\",\"embeddableConfig\":{},\"panelRefName\":\"panel_12\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":15,\"i\":\"a0050292-4d09-4c60-93cd-45f9516d1664\",\"w\":48,\"x\":0,\"y\":105},\"panelIndex\":\"a0050292-4d09-4c60-93cd-45f9516d1664\",\"embeddableConfig\":{},\"panelRefName\":\"panel_13\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "7fcb8b90-c7b7-11ea-8578-f3ff6bdd82b2" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "0d0cbd30-c7b8-11ea-8578-f3ff6bdd82b2" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "6eb9b2f0-c77b-11ea-8578-f3ff6bdd82b2" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "5cd45d10-c794-11ea-8578-f3ff6bdd82b2" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "e548ad00-cab8-11ea-84cd-4f7b1f416f80" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "543975b0-cab3-11ea-84cd-4f7b1f416f80" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "98b559c0-cab3-11ea-84cd-4f7b1f416f80" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "1be7a440-dc0e-11ea-82b5-4506a254a95f" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "bfc334f0-ca05-11ea-8578-f3ff6bdd82b2" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "cc0501c0-caab-11ea-84cd-4f7b1f416f80" + }, + { + "name": "panel_11", + "type": "search", + "id": "00294170-c77b-11ea-8578-f3ff6bdd82b2" + }, + { + "name": "panel_12", + "type": "search", + "id": "ccfe3ca0-c77b-11ea-8578-f3ff6bdd82b2" + }, + { + "name": "panel_13", + "type": "search", + "id": "b5300770-c77b-11ea-8578-f3ff6bdd82b2" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7fcb8b90-c7b7-11ea-8578-f3ff6bdd82b2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzI5MywxXQ==", + "attributes": { + "title": "BACnet - Log Count", + "visState": "{\"title\":\"BACnet - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Log Count\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{}", + "description": "Count of BACnet logs including BACnet Discovery and Property logs", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:*bacnet*\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0d0cbd30-c7b8-11ea-8578-f3ff6bdd82b2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzI5NCwxXQ==", + "attributes": { + "title": "BACnet - Logs Over Time", + "visState": "{\"title\":\"BACnet - Logs Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"YYYY\"}},\"params\":{\"date\":true,\"interval\":\"P365D\",\"intervalESValue\":365,\"intervalESUnit\":\"d\",\"format\":\"YYYY\",\"bounds\":{\"min\":\"1971-01-14T16:39:09.309Z\",\"max\":\"2021-01-14T16:39:09.309Z\"}},\"label\":\"firstPacket per 365 days\",\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Log Type\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-50y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "BACnet Logs over Time", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:*bacnet*\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6eb9b2f0-c77b-11ea-8578-f3ff6bdd82b2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzI5NSwxXQ==", + "attributes": { + "title": "BACnet - BVLC Functions", + "visState": "{\"title\":\"BACnet - BVLC Functions\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":0,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet.bvlc_function\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"BVLC Function\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "BACnet Virtual Link Control Functions (Link-Layer Control)", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "00294170-c77b-11ea-8578-f3ff6bdd82b2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5cd45d10-c794-11ea-8578-f3ff6bdd82b2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzI5NiwxXQ==", + "attributes": { + "title": "BACnet - Protocol Data Units (PDUs)", + "visState": "{\"title\":\"BACnet - Protocol Data Units (PDUs)\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":0,\"direction\":\"asc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"PDU Service\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet.pdu_service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"PDU Service\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet.pdu_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"PDU Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "BACnet Application Layer Protocol Data Unit types and services", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "00294170-c77b-11ea-8578-f3ff6bdd82b2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "e548ad00-cab8-11ea-84cd-4f7b1f416f80", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzI5NywxXQ==", + "attributes": { + "title": "BACnet - Errors", + "visState": "{\"title\":\"BACnet - Errors\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":3,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"PDU Service\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet.result_code\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Result Code\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet.pdu_service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"PDU Service\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet.pdu_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"PDU Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "BACnet Result Codes for Abort, Reject or Error", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "00294170-c77b-11ea-8578-f3ff6bdd82b2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "543975b0-cab3-11ea-84cd-4f7b1f416f80", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzI5OCwxXQ==", + "attributes": { + "title": "BACnet - Source IP", + "visState": "{\"title\":\"BACnet - Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "Source IP Addresses from bacnet.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:(\\\"bacnet\\\")\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "98b559c0-cab3-11ea-84cd-4f7b1f416f80", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzI5OSwxXQ==", + "attributes": { + "title": "BACnet - Destination IP", + "visState": "{\"title\":\"BACnet - Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Source IP\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "Destination IP Addresses from bacnet.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:(\\\"bacnet\\\")\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "1be7a440-dc0e-11ea-82b5-4506a254a95f", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzMwMCwxXQ==", + "attributes": { + "title": "BACnet - Device Vendors", + "visState": "{\"title\":\"BACnet - Device Vendors\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Unique count of zeek_bacnet_discovery.instance_number\",\"aggType\":\"cardinality\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Device Vendor\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek_bacnet_discovery.instance_number\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_bacnet_discovery.vendor\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Device Vendor\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "BACnet Device Vendors from i-am messages", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "b5300770-c77b-11ea-8578-f3ff6bdd82b2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "bfc334f0-ca05-11ea-8578-f3ff6bdd82b2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzMwMSwxXQ==", + "attributes": { + "title": "BACnet - Read and Write Property ", + "visState": "{\"title\":\"BACnet - Read and Write Property \",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":6,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":6,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Property Value\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet_property.object_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Object Type\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet_property.instance_number\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Object Identifier\"}},{\"id\":\"7\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet_property.pdu_service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":25,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"PDU Service\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet_property.property\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Property Type\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet_property.value\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Property Value\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":6,\"direction\":\"desc\"}}}}", + "description": "Results from BACnet Read-Property and Write-Property Commands", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "ccfe3ca0-c77b-11ea-8578-f3ff6bdd82b2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "cc0501c0-caab-11ea-84cd-4f7b1f416f80", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzMwMiwxXQ==", + "attributes": { + "title": "BACnet - Device Discovery", + "visState": "{\"title\":\"BACnet - Device Discovery\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":4,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Vendor\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet_discovery.object_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Object Type\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet_discovery.instance_number\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Identifier\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet_discovery.pdu_service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"PDU Service\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bacnet_discovery.vendor\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Vendor\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}}", + "description": "Results from BACnet i-am and i-have commands", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "b5300770-c77b-11ea-8578-f3ff6bdd82b2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "00294170-c77b-11ea-8578-f3ff6bdd82b2", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzMwMywxXQ==", + "attributes": { + "title": "BACnet - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_bacnet.bvlc_function", + "zeek_bacnet.pdu_type", + "zeek_bacnet.pdu_service", + "zeek_bacnet.invoke_id" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:bacnet\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "ccfe3ca0-c77b-11ea-8578-f3ff6bdd82b2", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzMwNCwxXQ==", + "attributes": { + "title": "BACnet - Property Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_bacnet_property.pdu_service", + "zeek_bacnet_property.object_type", + "zeek_bacnet_property.instance_number", + "zeek_bacnet_property.property", + "zeek_bacnet_property.value" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:bacnet_property\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "b5300770-c77b-11ea-8578-f3ff6bdd82b2", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:19.112Z", + "version": "WzMwNSwxXQ==", + "attributes": { + "title": "BACnet - Discovery Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_bacnet_discovery.pdu_service", + "zeek_bacnet_discovery.object_type", + "zeek_bacnet_discovery.instance_number", + "zeek_bacnet_discovery.vendor" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:bacnet_discovery\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9.json b/Vagrant/resources/malcolm/kibana/dashboards/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9.json new file mode 100644 index 0000000..cfb3928 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9.json @@ -0,0 +1,525 @@ +{ + "version": "7.10.2", + "objects": [ + { + "id": "2cf94cd0-ecab-40a5-95a7-8419f3a39cd9", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T14:11:53.521Z", + "version": "WzE3OTQsMV0=", + "attributes": { + "title": "DNS", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":31,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":18,\"y\":10,\"w\":10,\"h\":18,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":8,\"y\":10,\"w\":10,\"h\":18,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":8,\"y\":28,\"w\":20,\"h\":13,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":60,\"w\":48,\"h\":24,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":10,\"i\":\"13\"},\"panelIndex\":\"13\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":28,\"y\":28,\"w\":20,\"h\":15,\"i\":\"17\"},\"panelIndex\":\"17\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":10,\"i\":\"23\"},\"panelIndex\":\"23\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":28,\"y\":10,\"w\":20,\"h\":18,\"i\":\"25\"},\"panelIndex\":\"25\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":38,\"y\":43,\"w\":10,\"h\":17,\"i\":\"26\"},\"panelIndex\":\"26\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":28,\"y\":43,\"w\":10,\"h\":17,\"i\":\"27\"},\"panelIndex\":\"27\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_10\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":31,\"w\":8,\"h\":10,\"i\":\"28\"},\"panelIndex\":\"28\",\"embeddableConfig\":{},\"panelRefName\":\"panel_11\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":41,\"w\":28,\"h\":19,\"i\":\"df0ca665-47a8-45ea-b2a1-739badb538dc\"},\"panelIndex\":\"df0ca665-47a8-45ea-b2a1-739badb538dc\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"asc\"}},\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"asc\"}}}},\"panelRefName\":\"panel_12\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":84,\"w\":48,\"h\":41,\"i\":\"0b6ca6c5-38c1-4811-b40d-d1cd8229bb1f\"},\"panelIndex\":\"0b6ca6c5-38c1-4811-b40d-d1cd8229bb1f\",\"embeddableConfig\":{},\"panelRefName\":\"panel_13\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "a3d7ae56-264b-4e8f-9c45-242bff74179d" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "6d4ea29d-53c8-472b-acc3-c9257a7f0e91" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "727d7b36-4153-4c51-b723-2700a3c815f1" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "8a3a0bd6-555d-45c6-bf3d-d2b8598e9926" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "adb769dc-8ac5-46fa-abb3-d16c638d8279" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "2699477d-e158-4174-97ee-e1438fed0fee" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "AWDG9Qx0xQT5EBNmq3_2" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "240930b9-d4ad-40b6-ae9f-f7c64ea9d0f7" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "4b82b26a-3ceb-41a0-b0b5-6fb6e876b1c8" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "9d1204c9-7e26-44d3-a9be-eff725bf3f5b" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "7dbb6c65-f197-4237-825c-fd102163a3bf" + }, + { + "name": "panel_12", + "type": "visualization", + "id": "69241a80-421d-11ea-9084-41ab7c5fff2e" + }, + { + "name": "panel_13", + "type": "search", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:25:05.903Z", + "version": "Wzg3OSwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a3d7ae56-264b-4e8f-9c45-242bff74179d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:17.423Z", + "version": "WzM1MSwxXQ==", + "attributes": { + "title": "DNS - Server", + "visState": "{\"title\":\"DNS - Server\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"type\":\"table\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Server\"}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6d4ea29d-53c8-472b-acc3-c9257a7f0e91", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:17.423Z", + "version": "WzM1MiwxXQ==", + "attributes": { + "visState": "{\"title\":\"DNS - Client\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Client\"}}],\"listeners\":{}}", + "description": "", + "title": "DNS - Client", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "727d7b36-4153-4c51-b723-2700a3c815f1", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:17.423Z", + "version": "WzM1MywxXQ==", + "attributes": { + "title": "DNS - Query Class", + "visState": "{\"title\":\"DNS - Query Class\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Query Class\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_dns.qclass_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Query Class\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8a3a0bd6-555d-45c6-bf3d-d2b8598e9926", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:17.423Z", + "version": "WzM1NCwxXQ==", + "attributes": { + "visState": "{\"title\":\"DNS - Query/Answer\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dns.query\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Query\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dns.answers\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Answer\"}}],\"listeners\":{}}", + "description": "", + "title": "DNS - Query/Answer", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "adb769dc-8ac5-46fa-abb3-d16c638d8279", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:17.423Z", + "version": "WzM1NSwxXQ==", + "attributes": { + "visState": "{\"title\":\"DNS - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 30 minutes\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "DNS - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2699477d-e158-4174-97ee-e1438fed0fee", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:17.423Z", + "version": "WzM1NiwxXQ==", + "attributes": { + "visState": "{\"title\":\"DNS - Destination Port\",\"type\":\"histogram\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":false,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"dstPort\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"\"}}],\"listeners\":{}}", + "description": "", + "title": "DNS - Destination Port", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDG9Qx0xQT5EBNmq3_2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:17.423Z", + "version": "WzM1NywxXQ==", + "attributes": { + "title": "DNS - Log Count", + "visState": "{\"title\":\"DNS - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "240930b9-d4ad-40b6-ae9f-f7c64ea9d0f7", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:17.423Z", + "version": "WzM1OCwxXQ==", + "attributes": { + "title": "DNS - Answers", + "visState": "{\"title\":\"DNS - Answers\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dns.answers\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Answer\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4b82b26a-3ceb-41a0-b0b5-6fb6e876b1c8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:17.423Z", + "version": "WzM1OSwxXQ==", + "attributes": { + "title": "DNS - Response Code (Name)", + "visState": "{\"title\":\"DNS - Response Code (Name)\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dns.rcode_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Response Code (Name)\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9d1204c9-7e26-44d3-a9be-eff725bf3f5b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:17.423Z", + "version": "WzM2MCwxXQ==", + "attributes": { + "title": "DNS - Query Type", + "visState": "{\"title\":\"DNS - Query Type\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dns.qtype_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Query Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7dbb6c65-f197-4237-825c-fd102163a3bf", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:17.423Z", + "version": "WzM2MSwxXQ==", + "attributes": { + "title": "DNS - Protocol", + "visState": "{\"title\":\"DNS - Protocol\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Protocol\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.proto\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Protocol\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "69241a80-421d-11ea-9084-41ab7c5fff2e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:41.694Z", + "version": "WzYzMSwxXQ==", + "attributes": { + "title": "DNS Queries by Randomness", + "visState": "{\"title\":\"DNS Queries by Randomness\",\"type\":\"table\",\"params\":{\"dimensions\":{\"buckets\":[{\"accessor\":0,\"aggType\":\"terms\",\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"missingBucketLabel\":\"Missing\",\"otherBucketLabel\":\"Other\"}},\"params\":{}},{\"accessor\":1,\"aggType\":\"terms\",\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"number\",\"missingBucketLabel\":\"Missing\",\"otherBucketLabel\":\"Other\"}},\"params\":{}}],\"metrics\":[{\"accessor\":2,\"aggType\":\"count\",\"format\":{\"id\":\"number\"},\"params\":{}}]},\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"},\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dns.host\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"DNS Query\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.freq_score_v1\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Randomness Score (method 1)\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.freq_score_v2\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Randomness Score (method 2)\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T12:24:41.694Z", + "version": "WzYzNywxXQ==", + "attributes": { + "title": "DNS - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_dns.query", + "zeek_dns.answers", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:dns\"}}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/2d98bb8e-214c-4374-837b-20e1bcd63a5e.json b/Vagrant/resources/malcolm/kibana/dashboards/2d98bb8e-214c-4374-837b-20e1bcd63a5e.json new file mode 100644 index 0000000..dc9c81a --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/2d98bb8e-214c-4374-837b-20e1bcd63a5e.json @@ -0,0 +1,389 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "2d98bb8e-214c-4374-837b-20e1bcd63a5e", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:21.144Z", + "version": "WzMyOCwxXQ==", + "attributes": { + "title": "DHCP", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":10,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":28,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":36,\"y\":28,\"w\":12,\"h\":18,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":24,\"y\":28,\"w\":12,\"h\":18,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":40,\"y\":10,\"w\":8,\"h\":18,\"i\":\"8\"},\"panelIndex\":\"8\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":10,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":10,\"w\":32,\"h\":18,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":28,\"w\":12,\"h\":18,\"i\":\"3bf94579-f6ba-4a29-a969-27a3d095271e\"},\"panelIndex\":\"3bf94579-f6ba-4a29-a969-27a3d095271e\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":12,\"y\":28,\"w\":12,\"h\":18,\"i\":\"b5afee68-07b2-416c-a5a5-d913efd76095\"},\"panelIndex\":\"b5afee68-07b2-416c-a5a5-d913efd76095\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":46,\"w\":48,\"h\":32,\"i\":\"6c78964f-d1c8-4790-bda7-8802a7ea8986\"},\"panelIndex\":\"6c78964f-d1c8-4790-bda7-8802a7ea8986\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "1c337cf4-8030-4760-9828-7c0f5305c5bb" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "82fff513-b971-452e-a0fb-492c3091b771" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "78b8c460-7dc9-4b76-9bc4-ea831c0d7802" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "23975603-24ed-40f6-bb45-0780f4645d92" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "AWDG80RwxQT5EBNmq38x" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "1d178ca4-f067-4f46-bbc7-777a3fd69d47" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "5ac2f8e0-a0ea-11ea-9a51-fddbbdf2f26e" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "6ced64b0-a0ea-11ea-9a51-fddbbdf2f26e" + }, + { + "name": "panel_9", + "type": "search", + "id": "20ff62a1-06d6-4738-b611-945628d80305" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "1c337cf4-8030-4760-9828-7c0f5305c5bb", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:21.144Z", + "version": "WzMyOSwxXQ==", + "attributes": { + "visState": "{\"title\":\"DHCP - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "DHCP - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "20ff62a1-06d6-4738-b611-945628d80305" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "82fff513-b971-452e-a0fb-492c3091b771", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:21.144Z", + "version": "WzMzMSwxXQ==", + "attributes": { + "visState": "{\"title\":\"DHCP - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "DHCP - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "20ff62a1-06d6-4738-b611-945628d80305" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "78b8c460-7dc9-4b76-9bc4-ea831c0d7802", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:21.144Z", + "version": "WzMzMiwxXQ==", + "attributes": { + "visState": "{\"title\":\"DHCP - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "DHCP - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "20ff62a1-06d6-4738-b611-945628d80305" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "23975603-24ed-40f6-bb45-0780f4645d92", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:21.144Z", + "version": "WzMzMywxXQ==", + "attributes": { + "visState": "{\"title\":\"DHCP - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Port\"}}],\"listeners\":{}}", + "description": "", + "title": "DHCP - Destination Port", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "20ff62a1-06d6-4738-b611-945628d80305" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDG80RwxQT5EBNmq38x", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:21.144Z", + "version": "WzMzNCwxXQ==", + "attributes": { + "title": "DHCP - Log Count", + "visState": "{\"title\":\"DHCP - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "20ff62a1-06d6-4738-b611-945628d80305" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "1d178ca4-f067-4f46-bbc7-777a3fd69d47", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:21.144Z", + "version": "WzMzNSwxXQ==", + "attributes": { + "title": "DHCP - IP to MAC Assignment", + "visState": "{\"title\":\"DHCP - IP to MAC Assignment\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dhcp.assigned_ip\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Assigned IP Address\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dhcp.mac\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"MAC Address\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Source IP Address\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Destination IP Address\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "20ff62a1-06d6-4738-b611-945628d80305" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5ac2f8e0-a0ea-11ea-9a51-fddbbdf2f26e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:21.144Z", + "version": "WzMzNiwxXQ==", + "attributes": { + "title": "DHCP - Client Software", + "visState": "{\"title\":\"DHCP - Client Software\",\"type\":\"table\",\"params\":{\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Client Software\",\"aggType\":\"terms\"}],\"splitColumn\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Server Software\",\"aggType\":\"terms\"}]},\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dhcp.client_software\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Client Software\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "20ff62a1-06d6-4738-b611-945628d80305" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6ced64b0-a0ea-11ea-9a51-fddbbdf2f26e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:21.144Z", + "version": "WzMzNywxXQ==", + "attributes": { + "title": "DHCP - Server Software", + "visState": "{\"title\":\"DHCP - Server Software\",\"type\":\"table\",\"params\":{\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Client Software\",\"aggType\":\"terms\"}]},\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dhcp.server_software\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Server Software\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "20ff62a1-06d6-4738-b611-945628d80305" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "20ff62a1-06d6-4738-b611-945628d80305", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:21.144Z", + "version": "WzMzOCwxXQ==", + "attributes": { + "title": "DHCP - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_dhcp.mac", + "zeek_dhcp.assigned_ip", + "dstIp", + "zeek_dhcp.host_name", + "zeek_dhcp.domain", + "zeek_dhcp.msg_types", + "zeek_dhcp.client_software", + "zeek_dhcp.server_software", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:dhcp\"}}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/32587740-ef88-11e9-b38a-2db3ee640e88.json b/Vagrant/resources/malcolm/kibana/dashboards/32587740-ef88-11e9-b38a-2db3ee640e88.json new file mode 100644 index 0000000..3153598 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/32587740-ef88-11e9-b38a-2db3ee640e88.json @@ -0,0 +1,281 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "32587740-ef88-11e9-b38a-2db3ee640e88", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:52:27.963Z", + "version": "WzM2NDEsMV0=", + "attributes": { + "title": "Tabular Data Stream - RPC", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"h\":30,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":29,\"i\":\"2\",\"w\":48,\"x\":0,\"y\":30},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":8,\"i\":\"3\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":8,\"i\":\"4\",\"w\":32,\"x\":16,\"y\":0},\"panelIndex\":\"4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":22,\"i\":\"5\",\"w\":21,\"x\":27,\"y\":8},\"panelIndex\":\"5\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}},\"table\":null},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":22,\"i\":\"6\",\"w\":8,\"x\":8,\"y\":8},\"panelIndex\":\"6\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":22,\"i\":\"7\",\"w\":11,\"x\":16,\"y\":8},\"panelIndex\":\"7\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_6\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "search", + "id": "11884140-ef82-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "a0e195c0-ef88-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "cf812990-ef88-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "ab081a60-ef83-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "7b819a40-ef89-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "b38de650-ef89-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "11884140-ef82-11e9-b38a-2db3ee640e88", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:22.188Z", + "version": "WzM1NCwxXQ==", + "attributes": { + "title": "Tabular Data Stream - RPC Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_tds_rpc.procedure_name", + "zeek_tds_rpc.parameter", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"zeek.logType:\\\"tds_rpc\\\"\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "a0e195c0-ef88-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:22.188Z", + "version": "WzM1NSwxXQ==", + "attributes": { + "title": "Tabular Data Stream - RPC Log Count", + "visState": "{\"title\":\"Tabular Data Stream - RPC Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":42}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "11884140-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "cf812990-ef88-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:22.188Z", + "version": "WzM1NiwxXQ==", + "attributes": { + "title": "Tabular Data Stream - RPC Log Count Over Time", + "visState": "{\"title\":\"Tabular Data Stream - RPC Log Count Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "11884140-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ab081a60-ef83-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:22.188Z", + "version": "WzM1NywxXQ==", + "attributes": { + "title": "Tabular Data Stream - RPC Procedure", + "visState": "{\"title\":\"Tabular Data Stream - RPC Procedure\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_tds_rpc.procedure_name\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Procedure\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "11884140-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7b819a40-ef89-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:22.188Z", + "version": "WzM1OCwxXQ==", + "attributes": { + "title": "Tabular Data Stream - RPC Source IP", + "visState": "{\"title\":\"Tabular Data Stream - RPC Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "11884140-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b38de650-ef89-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:22.188Z", + "version": "WzM1OSwxXQ==", + "attributes": { + "title": "Tabular Data Stream - RPC Destination IP", + "visState": "{\"title\":\"Tabular Data Stream - RPC Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "11884140-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/36ed695f-edcc-47c1-b0ec-50d20c93ce0f.json b/Vagrant/resources/malcolm/kibana/dashboards/36ed695f-edcc-47c1-b0ec-50d20c93ce0f.json new file mode 100644 index 0000000..cd706af --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/36ed695f-edcc-47c1-b0ec-50d20c93ce0f.json @@ -0,0 +1,491 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "36ed695f-edcc-47c1-b0ec-50d20c93ce0f", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM2OCwxXQ==", + "attributes": { + "title": "Intel", + "hits": 0, + "description": "", + "panelsJSON": "[{\"gridData\":{\"w\":8,\"h\":48,\"x\":0,\"y\":0,\"i\":\"2\"},\"panelIndex\":\"2\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_0\",\"embeddableConfig\":{}},{\"embeddableConfig\":{},\"gridData\":{\"w\":32,\"h\":8,\"x\":16,\"y\":0,\"i\":\"3\"},\"panelIndex\":\"3\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_1\"},{\"gridData\":{\"w\":20,\"h\":16,\"x\":8,\"y\":8,\"i\":\"5\"},\"panelIndex\":\"5\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_2\",\"embeddableConfig\":{}},{\"embeddableConfig\":{},\"gridData\":{\"w\":20,\"h\":24,\"x\":28,\"y\":24,\"i\":\"6\"},\"panelIndex\":\"6\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{},\"gridData\":{\"w\":16,\"h\":24,\"x\":0,\"y\":72,\"i\":\"7\"},\"panelIndex\":\"7\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{},\"gridData\":{\"w\":16,\"h\":24,\"x\":16,\"y\":72,\"i\":\"8\"},\"panelIndex\":\"8\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{},\"gridData\":{\"w\":20,\"h\":24,\"x\":8,\"y\":24,\"i\":\"11\"},\"panelIndex\":\"11\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{},\"gridData\":{\"w\":28,\"h\":24,\"x\":20,\"y\":48,\"i\":\"12\"},\"panelIndex\":\"12\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{},\"gridData\":{\"w\":20,\"h\":24,\"x\":0,\"y\":48,\"i\":\"13\"},\"panelIndex\":\"13\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_8\"},{\"gridData\":{\"w\":48,\"h\":24,\"x\":0,\"y\":96,\"i\":\"14\"},\"panelIndex\":\"14\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_9\",\"embeddableConfig\":{\"columns\":[\"srcIp\",\"dstIp\",\"dstPort\",\"zeek.uid\",\"zeek.fuid\",\"_id\"],\"sort\":[\"firstPacket\",\"desc\"]}},{\"embeddableConfig\":{},\"gridData\":{\"w\":16,\"h\":24,\"x\":32,\"y\":72,\"i\":\"15\"},\"panelIndex\":\"15\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_10\"},{\"gridData\":{\"w\":20,\"h\":16,\"x\":28,\"y\":8,\"i\":\"16\"},\"panelIndex\":\"16\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_11\",\"embeddableConfig\":{}},{\"embeddableConfig\":{},\"gridData\":{\"w\":8,\"h\":8,\"x\":8,\"y\":0,\"i\":\"17\"},\"panelIndex\":\"17\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_12\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "2721f49d-4e64-4145-9e81-85e856c20b37" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "ee52f4a1-4232-4c49-abee-accc05ea91aa" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "80cabf50-a849-4e24-a9c7-130cba1a8141" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "cd5ecdc5-e74d-469f-a772-f03562fa2e33" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "8296467e-ce1d-493c-a46c-948ec4fd7c83" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "a2d0a8bb-a6a2-4a1e-826c-0ce3ea8ff074" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "a27464ba-582d-405f-931d-003d8252ff4a" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "2d2f90e4-cac7-47c5-b63d-077b596ba45b" + }, + { + "name": "panel_9", + "type": "search", + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "d23ba78a-f080-4bc1-bdcf-114cb081773f" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "fa56cc7f-fb00-47fb-becb-1b1fdfea908e" + }, + { + "name": "panel_12", + "type": "visualization", + "id": "AWDG-Qf8xQT5EBNmq4G5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2721f49d-4e64-4145-9e81-85e856c20b37", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM3MCwxXQ==", + "attributes": { + "visState": "{\"title\":\"Intel - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "Intel - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ee52f4a1-4232-4c49-abee-accc05ea91aa", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM3MSwxXQ==", + "attributes": { + "title": "Intel - Seen", + "visState": "{\"title\":\"Intel - Seen\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_intel.seen_where\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Seen (Where)\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "80cabf50-a849-4e24-a9c7-130cba1a8141", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM3MiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Intel - Source\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_intel.sources\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Source\"}}],\"listeners\":{}}", + "description": "", + "title": "Intel - Source", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "cd5ecdc5-e74d-469f-a772-f03562fa2e33", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM3MywxXQ==", + "attributes": { + "visState": "{\"title\":\"Intel - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Intel - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8296467e-ce1d-493c-a46c-948ec4fd7c83", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM3NCwxXQ==", + "attributes": { + "visState": "{\"title\":\"Intel - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Intel - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a2d0a8bb-a6a2-4a1e-826c-0ce3ea8ff074", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM3NSwxXQ==", + "attributes": { + "visState": "{\"title\":\"Intel - Indicator\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_intel.indicator\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Indicator\"}}],\"listeners\":{}}", + "description": "", + "title": "Intel - Indicator", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a27464ba-582d-405f-931d-003d8252ff4a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM3NiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Intel - MIME Type\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_intel.file_mime_type\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"MIME Type\"}}],\"listeners\":{}}", + "description": "", + "title": "Intel - MIME Type", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2d2f90e4-cac7-47c5-b63d-077b596ba45b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM3NywxXQ==", + "attributes": { + "visState": "{\"title\":\"Intel - Matched\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_intel.matched\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Type Matched\"}}],\"listeners\":{}}", + "description": "", + "title": "Intel - Matched", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM3OCwxXQ==", + "attributes": { + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "hits": 0, + "description": "", + "title": "Intel - Logs", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query_string\":{\"query\":\"zeek.logType:intel\",\"analyze_wildcard\":true}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek.uid", + "zeek.fuid", + "_id" + ] + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "d23ba78a-f080-4bc1-bdcf-114cb081773f", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM3OSwxXQ==", + "attributes": { + "visState": "{\"title\":\"Intel - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Port\"}}],\"listeners\":{}}", + "description": "", + "title": "Intel - Destination Port", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "fa56cc7f-fb00-47fb-becb-1b1fdfea908e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM4MCwxXQ==", + "attributes": { + "title": "Intel - Indicator Type", + "visState": "{\"title\":\"Intel - Indicator Type\",\"type\":\"histogram\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100,\"rotate\":0},\"title\":{\"text\":\"Indicator Type\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"histogram\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_intel.indicator_type\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Indicator Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDG-Qf8xQT5EBNmq4G5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:23.239Z", + "version": "WzM4MSwxXQ==", + "attributes": { + "title": "Intel - Log Count", + "visState": "{\"title\":\"Intel - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5154d8e9-c83e-4d42-bde3-33ad0c7d1798" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/37041ee1-79c0-4684-a436-3173b0e89876.json b/Vagrant/resources/malcolm/kibana/dashboards/37041ee1-79c0-4684-a436-3173b0e89876.json new file mode 100644 index 0000000..8517e6d --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/37041ee1-79c0-4684-a436-3173b0e89876.json @@ -0,0 +1,667 @@ +{ + "version": "7.10.2", + "objects": [ + { + "id": "37041ee1-79c0-4684-a436-3173b0e89876", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T19:45:04.554Z", + "version": "WzE3OTMsMV0=", + "attributes": { + "title": "HTTP", + "hits": 0, + "description": "", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"h\":30,\"i\":\"2\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"2\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{\"legendOpen\":false,\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":19,\"i\":\"3\",\"w\":32,\"x\":16,\"y\":0},\"panelIndex\":\"3\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"5\",\"w\":14,\"x\":20,\"y\":48},\"panelIndex\":\"5\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"6\",\"w\":14,\"x\":34,\"y\":48},\"panelIndex\":\"6\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"8\",\"w\":24,\"x\":24,\"y\":117},\"panelIndex\":\"8\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"14\",\"w\":10,\"x\":10,\"y\":48},\"panelIndex\":\"14\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"15\",\"w\":10,\"x\":0,\"y\":48},\"panelIndex\":\"15\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"16\",\"w\":48,\"x\":0,\"y\":99},\"panelIndex\":\"16\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"17\",\"w\":24,\"x\":0,\"y\":117},\"panelIndex\":\"17\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_8\"},{\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":20,\"i\":\"20\",\"w\":24,\"x\":24,\"y\":66},\"panelIndex\":\"20\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_9\"},{\"embeddableConfig\":{\"vis\":{\"colors\":{\"Count\":\"#629E51\"}}},\"gridData\":{\"h\":20,\"i\":\"21\",\"w\":24,\"x\":0,\"y\":66},\"panelIndex\":\"21\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_10\"},{\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"gridData\":{\"h\":7,\"i\":\"23\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"23\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_11\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":29,\"i\":\"24\",\"w\":16,\"x\":32,\"y\":19},\"panelIndex\":\"24\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_12\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":12,\"i\":\"70661228-52d4-4ecf-a5a4-139d0ecdd662\",\"w\":8,\"x\":8,\"y\":7},\"panelIndex\":\"70661228-52d4-4ecf-a5a4-139d0ecdd662\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_13\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":29,\"i\":\"e2ba3677-11c6-4cd9-87f3-fb3473718d10\",\"w\":24,\"x\":8,\"y\":19},\"panelIndex\":\"e2ba3677-11c6-4cd9-87f3-fb3473718d10\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_14\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":18,\"i\":\"128a48be-397e-4c27-a8a1-bc6cb280d6b1\",\"w\":8,\"x\":0,\"y\":30},\"panelIndex\":\"128a48be-397e-4c27-a8a1-bc6cb280d6b1\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_15\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":13,\"i\":\"b6166133-469b-41cd-8396-cb2db18eb8b9\",\"w\":48,\"x\":0,\"y\":86},\"panelIndex\":\"b6166133-469b-41cd-8396-cb2db18eb8b9\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_16\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":42,\"i\":\"7337ff11-23e0-4f6e-981f-a043f15e60cf\",\"w\":48,\"x\":0,\"y\":135},\"panelIndex\":\"7337ff11-23e0-4f6e-981f-a043f15e60cf\",\"version\":\"7.10.2\",\"panelRefName\":\"panel_17\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "3b8fee79-8f9d-450a-8362-024c84656efb" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "c3c266ad-58c5-45f4-a463-180b531bd96e" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "be7d9516-7555-407f-9971-0394c7e822e4" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "9197cd63-7fe4-4c87-8fab-f7eaa8ca6252" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "2c18f5be-4023-40fb-8de6-7b490045520b" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "44d6d5ce-bdf6-46d3-ad97-a30ebda437fa" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "3c7d9915-8fea-4423-82b6-44499820de71" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "30bb6fc3-d33e-4aaf-b805-b8e10008e98b" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "a6cacf2a-7cf5-4991-be10-474429651b51" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "054326f5-92f3-4202-a7cf-cc0d3eb92ad4" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "AWDG97t7xQT5EBNmq4E1" + }, + { + "name": "panel_12", + "type": "visualization", + "id": "eedbcaaf-1713-4ec2-acbd-b1e32a34579a" + }, + { + "name": "panel_13", + "type": "visualization", + "id": "aa4a78f0-4db8-11ea-8336-d3388483188b" + }, + { + "name": "panel_14", + "type": "visualization", + "id": "db357c20-760d-11eb-8496-3528afc64ddb" + }, + { + "name": "panel_15", + "type": "visualization", + "id": "6efd67a0-760f-11eb-8496-3528afc64ddb" + }, + { + "name": "panel_16", + "type": "visualization", + "id": "7b56ed70-6faa-11eb-958c-51e33b5cae2a" + }, + { + "name": "panel_17", + "type": "search", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:47:06.069Z", + "version": "Wzg3NCwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3b8fee79-8f9d-450a-8362-024c84656efb", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzM5OCwxXQ==", + "attributes": { + "title": "HTTP - Status Over Time", + "visState": "{\"title\":\"HTTP - Status Over Time\",\"type\":\"line\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-25y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}},\"schema\":\"segment\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_http.status_msg\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Status Code\"},\"schema\":\"group\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"firstPacket per 12 hours\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"YYYY-MM-DD\"}},\"params\":{\"date\":true,\"interval\":\"P30D\",\"intervalESValue\":30,\"intervalESUnit\":\"d\",\"format\":\"YYYY-MM-DD\",\"bounds\":{\"min\":\"1976-02-12T16:47:29.688Z\",\"max\":\"2020-02-12T16:47:29.689Z\"}},\"label\":\"firstPacket per 30 days\",\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Status Code\",\"aggType\":\"terms\"}]},\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"labels\":{\"show\":true},\"legendPosition\":\"bottom\",\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"showCircles\":true,\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"square root\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c3c266ad-58c5-45f4-a463-180b531bd96e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzM5OSwxXQ==", + "attributes": { + "visState": "{\"title\":\"HTTP - Sites\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_http.host\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Site\"}}],\"listeners\":{}}", + "description": "", + "title": "HTTP - Sites", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "be7d9516-7555-407f-9971-0394c7e822e4", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzQwMCwxXQ==", + "attributes": { + "visState": "{\"title\":\"HTTP - Sites Hosting EXEs\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_http.host\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Site\"}}],\"listeners\":{}}", + "description": "", + "title": "HTTP - Sites Hosting EXEs", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query_string\":{\"query\":\"\\\"application/x-dosexec\\\"\",\"analyze_wildcard\":true}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9197cd63-7fe4-4c87-8fab-f7eaa8ca6252", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzQwMSwxXQ==", + "attributes": { + "visState": "{\"title\":\"HTTP - URIs\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_http.uri\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"URI\"}}],\"listeners\":{}}", + "description": "", + "title": "HTTP - URIs", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2c18f5be-4023-40fb-8de6-7b490045520b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzQwMiwxXQ==", + "attributes": { + "visState": "{\"title\":\"HTTP - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "HTTP - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "44d6d5ce-bdf6-46d3-ad97-a30ebda437fa", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzQwMywxXQ==", + "attributes": { + "visState": "{\"title\":\"HTTP - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "HTTP - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3c7d9915-8fea-4423-82b6-44499820de71", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzQwNCwxXQ==", + "attributes": { + "visState": "{\"title\":\"HTTP - User Agent\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_http.user_agent\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"User Agent\"}}],\"listeners\":{}}", + "description": "", + "title": "HTTP - User Agent", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "30bb6fc3-d33e-4aaf-b805-b8e10008e98b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzQwNSwxXQ==", + "attributes": { + "visState": "{\"title\":\"HTTP - Referrer\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_http.referrer\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\"}}],\"listeners\":{}}", + "description": "", + "title": "HTTP - Referrer", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a6cacf2a-7cf5-4991-be10-474429651b51", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzQwNiwxXQ==", + "attributes": { + "title": "HTTP - Destination Port", + "visState": "{\"title\":\"HTTP - Destination Port\",\"type\":\"histogram\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100,\"rotate\":75},\"title\":{\"text\":\"Port\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Port\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "054326f5-92f3-4202-a7cf-cc0d3eb92ad4", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzQwNywxXQ==", + "attributes": { + "title": "HTTP - Destination Country", + "visState": "{\"title\":\"HTTP - Destination Country\",\"type\":\"histogram\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"Country\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":false,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Country\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.destination_geo.country_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Country\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDG97t7xQT5EBNmq4E1", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzQwOCwxXQ==", + "attributes": { + "title": "HTTP - Log Count", + "visState": "{\"title\":\"HTTP - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "eedbcaaf-1713-4ec2-acbd-b1e32a34579a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T19:39:48.451Z", + "version": "WzE2NzAsMV0=", + "attributes": { + "title": "HTTP - Status and Method", + "visState": "{\"title\":\"HTTP - Status and Method\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_http.status_msg\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Status Message\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_http.method\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Method\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":20,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "aa4a78f0-4db8-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzQxMCwxXQ==", + "attributes": { + "title": "HTTP - Unique Usernames and Passwords", + "visState": "{\"title\":\"HTTP - Unique Usernames and Passwords\",\"type\":\"metric\",\"params\":{\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"type\":\"range\",\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":48}},\"dimensions\":{\"metrics\":[{\"type\":\"vis_dimension\",\"accessor\":0,\"format\":{\"id\":\"number\",\"params\":{}}},{\"type\":\"vis_dimension\",\"accessor\":1,\"format\":{\"id\":\"number\",\"params\":{}}}]},\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek.user\",\"customLabel\":\"Unique Usernames\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek.password\",\"customLabel\":\"Unique Cleartext Passwords\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "db357c20-760d-11eb-8496-3528afc64ddb", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T19:32:24.930Z", + "version": "WzE1NzgsMV0=", + "attributes": { + "title": "HTTP - Method and Status", + "visState": "{\"title\":\"HTTP - Method and Status\",\"type\":\"kbn_sankey\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":40,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Method\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":40,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Status\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"computedColumns\":[],\"computedColsPerSplitCol\":false,\"hideExportLinks\":false,\"csvExportWithTotal\":false,\"stripedRows\":false,\"addRowNumberColumn\":false,\"csvEncoding\":\"utf-8\",\"showFilterBar\":false,\"filterCaseSensitive\":false,\"filterBarHideable\":false,\"filterAsYouType\":false,\"filterTermsSeparately\":false,\"filterHighlightResults\":false,\"filterBarWidth\":\"25%\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6efd67a0-760f-11eb-8496-3528afc64ddb", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T19:44:37.021Z", + "version": "WzE3NzAsMV0=", + "attributes": { + "title": "HTTP - Version", + "visState": "{\"title\":\"HTTP - Version\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.service_version\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"HTTP Version\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":false,\"last_level\":true,\"truncate\":100}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"NOT zeek.service_version:\\\"0.0\\\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7b56ed70-6faa-11eb-958c-51e33b5cae2a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzQxMSwxXQ==", + "attributes": { + "title": "HTTP - File Type", + "visState": "{\"title\":\"HTTP - File Type\",\"type\":\"tagcloud\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.filetype\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"File Type\"},\"schema\":\"segment\"}],\"params\":{\"scale\":\"log\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":42,\"showLabel\":false}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "1762ad89-2039-4d70-8c2d-60b3e5a2c381", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:21.647Z", + "version": "WzQxMiwxXQ==", + "attributes": { + "title": "HTTP - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_http.host", + "zeek_http.method", + "zeek_http.status_msg", + "zeek.uid", + "zeek.fuid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:http\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/39abfe30-3f99-11e9-a58e-8bdedb0915e8.json b/Vagrant/resources/malcolm/kibana/dashboards/39abfe30-3f99-11e9-a58e-8bdedb0915e8.json new file mode 100644 index 0000000..f8c8840 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/39abfe30-3f99-11e9-a58e-8bdedb0915e8.json @@ -0,0 +1,210 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "39abfe30-3f99-11e9-a58e-8bdedb0915e8", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:25.340Z", + "version": "WzQxNCwxXQ==", + "attributes": { + "title": "Connections - Source - Top Connection Duration (region map)", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":23,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":50,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":3},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":23,\"w\":8,\"h\":15,\"i\":\"2ed3d708-31cc-4504-87da-63a315c76e76\"},\"panelIndex\":\"2ed3d708-31cc-4504-87da-63a315c76e76\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":38,\"w\":8,\"h\":12,\"i\":\"35ff09b6-1039-4b4e-9469-296245630598\"},\"panelIndex\":\"35ff09b6-1039-4b4e-9469-296245630598\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"*\",\"language\":\"lucene\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "af00a490-3f96-11e9-a58e-8bdedb0915e8" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "af00a490-3f96-11e9-a58e-8bdedb0915e8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:25.340Z", + "version": "WzQxNiwxXQ==", + "attributes": { + "title": "Connections - Source - Top Connection Duration (region map)", + "visState": "{\"title\":\"Connections - Source - Top Connection Duration (region map)\",\"type\":\"region_map\",\"params\":{\"addTooltip\":true,\"colorSchema\":\"Green to Red\",\"emsHotLink\":null,\"isDisplayWarning\":false,\"legendPosition\":\"bottomright\",\"mapCenter\":[0,0],\"mapZoom\":3,\"outlineWeight\":1,\"selectedJoinField\":{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},\"selectedLayer\":{\"attribution\":\"https://exploratory.io/maps\",\"fields\":[{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},{\"description\":\"Country Code2\",\"name\":\"WB_A2\"},{\"description\":\"Country Name\",\"name\":\"NAME\"}],\"format\":{\"type\":\"geojson\"},\"isEMS\":false,\"layerId\":\"self_hosted.World (offline)\",\"meta\":{\"feature_collection_path\":\"data\"},\"name\":\"World (offline)\",\"url\":\"/world.geojson\"},\"showAllShapes\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"selectedTmsLayer\":{\"origin\":\"elastic_maps_service\",\"id\":\"road_map\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"OpenStreetMap contributors | OpenMapTiles | MapTiler | Elastic Maps Service\"}},\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\",\"params\":{}},\"params\":{},\"label\":\"Longest Session (seconds)\",\"aggType\":\"max\"},\"bucket\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Originator Country\",\"aggType\":\"terms\"}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek_conn.duration\",\"customLabel\":\"Longest Session (seconds)\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"srcGEO\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Originator Country\"}}]}", + "uiStateJSON": "{\"mapCenter\":[37.17328344112096,15.644531250000002],\"mapZoom\":3}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NCwxXQ==", + "attributes": { + "title": "Connections - Protocol Filters", + "visState": "{\"title\":\"Connections - Protocol Filters\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1581606976709\",\"fieldName\":\"network.type\",\"parent\":\"\",\"label\":\"Network Layer\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1581606723028\",\"fieldName\":\"zeek.proto\",\"parent\":\"\",\"label\":\"Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"},{\"id\":\"1581606665268\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Service\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_2_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_1_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_2_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/42e831b9-41a9-4f35-8b7d-e1566d368773.json b/Vagrant/resources/malcolm/kibana/dashboards/42e831b9-41a9-4f35-8b7d-e1566d368773.json new file mode 100644 index 0000000..3882fd4 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/42e831b9-41a9-4f35-8b7d-e1566d368773.json @@ -0,0 +1,534 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "42e831b9-41a9-4f35-8b7d-e1566d368773", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:04:53.082Z", + "version": "WzMxNjAsMV0=", + "attributes": { + "title": "SMB", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":32,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":13,\"i\":\"4\"},\"panelIndex\":\"4\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":50,\"w\":20,\"h\":19,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":20,\"y\":50,\"w\":20,\"h\":19,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":21,\"y\":13,\"w\":12,\"h\":19,\"i\":\"8\"},\"panelIndex\":\"8\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":32,\"w\":23,\"h\":18,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":23,\"y\":32,\"w\":25,\"h\":18,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":69,\"w\":48,\"h\":18,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":13,\"i\":\"13\"},\"panelIndex\":\"13\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":40,\"y\":50,\"w\":8,\"h\":19,\"i\":\"14\"},\"panelIndex\":\"14\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":13,\"w\":13,\"h\":19,\"i\":\"c9b45e56-7e2e-4949-ad5f-05504515cc70\"},\"panelIndex\":\"c9b45e56-7e2e-4949-ad5f-05504515cc70\",\"embeddableConfig\":{},\"panelRefName\":\"panel_10\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":33,\"y\":13,\"w\":15,\"h\":19,\"i\":\"67e0e34e-49ae-46da-a9a3-83ca7676bee0\"},\"panelIndex\":\"67e0e34e-49ae-46da-a9a3-83ca7676bee0\",\"embeddableConfig\":{},\"panelRefName\":\"panel_11\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":87,\"w\":48,\"h\":42,\"i\":\"cf75e7f0-cce1-449c-a40d-15e8fa40325d\"},\"panelIndex\":\"cf75e7f0-cce1-449c-a40d-15e8fa40325d\",\"embeddableConfig\":{},\"panelRefName\":\"panel_12\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "c4829cb4-ed05-4154-ab6c-9240f0ea0b04" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "3b82d24e-d3dd-48fa-a539-98a46ccbfd49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "974779e2-ab49-4fe8-88db-bf5321664f1a" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "3282a033-fff4-41cb-abe6-d896b4a2e03d" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "02359f84-0114-4d9d-8731-2b6820722e32" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "c8f1ff18-93e9-4ce9-a188-c947f7dadc05" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "24b9dbff-7362-4982-9ce7-660001594ff9" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "AWDHDfDkxQT5EBNmq4fQ" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "0fa8205d-717f-4385-a031-d15e5f1b6c08" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "b9aaa580-4e9a-11ea-b504-97aa449f6abc" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "b74e39c0-49ca-11ea-812f-2bc51df4ea1e" + }, + { + "name": "panel_12", + "type": "search", + "id": "e0cefef5-911e-4e38-a1ea-e67c982cb7c7" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c4829cb4-ed05-4154-ab6c-9240f0ea0b04", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:26.351Z", + "version": "WzQyMiwxXQ==", + "attributes": { + "visState": "{\"title\":\"SMB - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per minute\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "SMB - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e0cefef5-911e-4e38-a1ea-e67c982cb7c7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3b82d24e-d3dd-48fa-a539-98a46ccbfd49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:26.351Z", + "version": "WzQyMywxXQ==", + "attributes": { + "visState": "{\"title\":\"SMB - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SMB - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e0cefef5-911e-4e38-a1ea-e67c982cb7c7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "974779e2-ab49-4fe8-88db-bf5321664f1a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:26.351Z", + "version": "WzQyNCwxXQ==", + "attributes": { + "visState": "{\"title\":\"SMB - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SMB - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e0cefef5-911e-4e38-a1ea-e67c982cb7c7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3282a033-fff4-41cb-abe6-d896b4a2e03d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:26.351Z", + "version": "WzQyNSwxXQ==", + "attributes": { + "title": "SMB - Version", + "visState": "{\"title\":\"SMB - Version\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":true,\"values\":false,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"SMB Version\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.service_version\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"SMB Version\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "e0cefef5-911e-4e38-a1ea-e67c982cb7c7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "02359f84-0114-4d9d-8731-2b6820722e32", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:26.351Z", + "version": "WzQyNiwxXQ==", + "attributes": { + "visState": "{\"title\":\"SMB - File Path\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_smb_files.path\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"File Path\"}}],\"listeners\":{}}", + "description": "", + "title": "SMB - FIle Path", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e0cefef5-911e-4e38-a1ea-e67c982cb7c7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c8f1ff18-93e9-4ce9-a188-c947f7dadc05", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:26.351Z", + "version": "WzQyNywxXQ==", + "attributes": { + "visState": "{\"title\":\"SMB - File Name\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_smb_files.name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"File Name\"}}],\"listeners\":{}}", + "description": "", + "title": "SMB - File Name", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e0cefef5-911e-4e38-a1ea-e67c982cb7c7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "24b9dbff-7362-4982-9ce7-660001594ff9", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:26.351Z", + "version": "WzQyOCwxXQ==", + "attributes": { + "visState": "{\"title\":\"SMB - File/Path Summary\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_smb_files.path\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":25,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"File Path\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_smb_files.name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":25,\"order\":\"desc\",\"orderBy\":\"_term\",\"customLabel\":\"File Name\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.action\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":25,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Action\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":25,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Source IP Address\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":25,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Destination IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SMB - File/Path Summary", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":5,\"direction\":\"desc\"}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e0cefef5-911e-4e38-a1ea-e67c982cb7c7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHDfDkxQT5EBNmq4fQ", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:26.351Z", + "version": "WzQyOSwxXQ==", + "attributes": { + "title": "SMB - Log Count", + "visState": "{\"title\":\"SMB - Log Count\",\"type\":\"metric\",\"params\":{\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"type\":\"range\",\"from\":0,\"to\":100}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#FB9E00\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":30}},\"dimensions\":{\"metrics\":[{\"type\":\"vis_dimension\",\"accessor\":1,\"format\":{\"id\":\"number\",\"params\":{}}}],\"bucket\":{\"type\":\"vis_dimension\",\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}}}},\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"SMB Log Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "e0cefef5-911e-4e38-a1ea-e67c982cb7c7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0fa8205d-717f-4385-a031-d15e5f1b6c08", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:26.351Z", + "version": "WzQzMCwxXQ==", + "attributes": { + "title": "SMB - Destination Port", + "visState": "{\"title\":\"SMB - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":5,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"number\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "e0cefef5-911e-4e38-a1ea-e67c982cb7c7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b9aaa580-4e9a-11ea-b504-97aa449f6abc", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:26.351Z", + "version": "WzQzMSwxXQ==", + "attributes": { + "title": "SMB - Relevant Notices", + "visState": "{\"title\":\"SMB - Relevant Notices\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":4,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Notice Category\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Notice Subcategory\",\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Source IP\",\"aggType\":\"terms\"},{\"accessor\":3,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"1\"}},\"params\":{},\"label\":\"Destination IP\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Notice Category\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.sub_category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Notice Subcategory\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek_notice.category:(EternalSafety OR SMB OR ATTACK)\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b74e39c0-49ca-11ea-812f-2bc51df4ea1e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:26.351Z", + "version": "WzQzMiwxXQ==", + "attributes": { + "title": "SMB Action", + "visState": "{\"title\":\"SMB Action\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek.action: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "e0cefef5-911e-4e38-a1ea-e67c982cb7c7" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "e0cefef5-911e-4e38-a1ea-e67c982cb7c7", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:26.351Z", + "version": "WzQzMywxXQ==", + "attributes": { + "title": "SMB - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.logType", + "srcIp", + "dstIp", + "dstPort", + "zeek.service_version", + "zeek.action", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:smb*\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0OCwxXQ==", + "attributes": { + "title": "Notices - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_notice.category", + "zeek_notice.sub_category", + "zeek_notice.msg", + "srcIp", + "dstIp", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:notice\",\"default_field\":\"*\"}}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/432af556-c5c0-4cc3-8166-b274b4e3a406.json b/Vagrant/resources/malcolm/kibana/dashboards/432af556-c5c0-4cc3-8166-b274b4e3a406.json new file mode 100644 index 0000000..fa282d0 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/432af556-c5c0-4cc3-8166-b274b4e3a406.json @@ -0,0 +1,457 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "432af556-c5c0-4cc3-8166-b274b4e3a406", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T15:16:14.488Z", + "version": "WzE4MjcsMV0=", + "attributes": { + "title": "DCE/RPC", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"h\":48,\"i\":\"3\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":8,\"i\":\"4\",\"w\":32,\"x\":16,\"y\":0},\"panelIndex\":\"4\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":20,\"i\":\"5\",\"w\":20,\"x\":8,\"y\":28},\"panelIndex\":\"5\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":20,\"i\":\"6\",\"w\":20,\"x\":28,\"y\":28},\"panelIndex\":\"6\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":21,\"i\":\"8\",\"w\":24,\"x\":0,\"y\":48},\"panelIndex\":\"8\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":21,\"i\":\"9\",\"w\":24,\"x\":24,\"y\":48},\"panelIndex\":\"9\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":20,\"i\":\"10\",\"w\":20,\"x\":8,\"y\":8},\"panelIndex\":\"10\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":21,\"i\":\"11\",\"w\":24,\"x\":24,\"y\":69},\"panelIndex\":\"11\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":0,\"direction\":\"desc\"}}},\"table\":null},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":8,\"i\":\"14\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"14\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":20,\"i\":\"16\",\"w\":20,\"x\":28,\"y\":8},\"panelIndex\":\"16\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":21,\"i\":\"17\",\"w\":24,\"x\":0,\"y\":69},\"panelIndex\":\"17\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_10\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":41,\"i\":\"b3cbd28a-4659-4e23-bf69-106fad9d565c\",\"w\":48,\"x\":0,\"y\":90},\"panelIndex\":\"b3cbd28a-4659-4e23-bf69-106fad9d565c\",\"embeddableConfig\":{},\"panelRefName\":\"panel_11\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "64e82156-689a-41fc-974f-efe021d73dc0" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "ea6fd4c1-04f0-450a-9b4b-ecb9db0117dc" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "6f4a3352-abb1-4a5e-8665-ab86954aed7d" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "8d57876a-ee4d-4843-8148-9ac644ce5b45" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "d3858962-fc17-4d6f-b933-e94f7ffc9ae3" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "52727beb-0e12-4ee5-a3d4-eebd93ee2dd3" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "b57e74bf-8024-44cd-b755-7d73e19588c2" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "AWDG8k4OxQT5EBNmq37a" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "30c677f4-d593-440c-b420-56532602853b" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "6b6bcbc1-6753-409f-86dd-f552195ccf03" + }, + { + "name": "panel_11", + "type": "search", + "id": "bc940221-83d5-416e-a353-dc8fc2f84141" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "64e82156-689a-41fc-974f-efe021d73dc0", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:27.443Z", + "version": "WzQzNywxXQ==", + "attributes": { + "visState": "{\"title\":\"DCE/RPC - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 30 minutes\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "DCE/RPC - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "bc940221-83d5-416e-a353-dc8fc2f84141" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ea6fd4c1-04f0-450a-9b4b-ecb9db0117dc", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:27.443Z", + "version": "WzQzOCwxXQ==", + "attributes": { + "visState": "{\"title\":\"DCE/RPC - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "DCE/RPC - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "bc940221-83d5-416e-a353-dc8fc2f84141" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6f4a3352-abb1-4a5e-8665-ab86954aed7d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:27.443Z", + "version": "WzQzOSwxXQ==", + "attributes": { + "visState": "{\"title\":\"DCE/RPC - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "DCE/RPC - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "bc940221-83d5-416e-a353-dc8fc2f84141" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8d57876a-ee4d-4843-8148-9ac644ce5b45", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:27.443Z", + "version": "WzQ0MCwxXQ==", + "attributes": { + "visState": "{\"title\":\"DCE/RPC - Endpoint\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dce_rpc.endpoint\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Endpoint\"}}],\"listeners\":{}}", + "description": "", + "title": "DCE/RPC - Endpoint", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "bc940221-83d5-416e-a353-dc8fc2f84141" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d3858962-fc17-4d6f-b933-e94f7ffc9ae3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:27.443Z", + "version": "WzQ0MSwxXQ==", + "attributes": { + "visState": "{\"title\":\"DCE/RPC - Named Pipe\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dce_rpc.named_pipe\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Named Pipe\"}}],\"listeners\":{}}", + "description": "", + "title": "DCE/RPC - Named Pipe", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "bc940221-83d5-416e-a353-dc8fc2f84141" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52727beb-0e12-4ee5-a3d4-eebd93ee2dd3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:27.443Z", + "version": "WzQ0MiwxXQ==", + "attributes": { + "visState": "{\"title\":\"DCE/RPC - Operation\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dce_rpc.operation\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Operation\"}}],\"listeners\":{}}", + "description": "", + "title": "DCE/RPC - Operation", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "bc940221-83d5-416e-a353-dc8fc2f84141" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b57e74bf-8024-44cd-b755-7d73e19588c2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:27.443Z", + "version": "WzQ0MywxXQ==", + "attributes": { + "title": "DCE/RPC - Round Trip Time", + "visState": "{\"title\":\"DCE/RPC - Round Trip Time\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dce_rpc.rtt\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"_term\",\"customLabel\":\"Round Trip Time\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "bc940221-83d5-416e-a353-dc8fc2f84141" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDG8k4OxQT5EBNmq37a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:27.443Z", + "version": "WzQ0NCwxXQ==", + "attributes": { + "title": "DCE/RPC - Log Count", + "visState": "{\"title\":\"DCE/RPC - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "bc940221-83d5-416e-a353-dc8fc2f84141" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "30c677f4-d593-440c-b420-56532602853b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:27.443Z", + "version": "WzQ0NSwxXQ==", + "attributes": { + "title": "DCE/RPC - Destination Port", + "visState": "{\"title\":\"DCE/RPC - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "bc940221-83d5-416e-a353-dc8fc2f84141" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6b6bcbc1-6753-409f-86dd-f552195ccf03", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:27.443Z", + "version": "WzQ0NiwxXQ==", + "attributes": { + "title": "DCE/RPC - Summary", + "visState": "{\"title\":\"DCE/RPC - Summary\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dce_rpc.endpoint\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Endpoint\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dce_rpc.operation\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Operation\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dce_rpc.named_pipe\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Named Pipe\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "bc940221-83d5-416e-a353-dc8fc2f84141" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "bc940221-83d5-416e-a353-dc8fc2f84141", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:27.443Z", + "version": "WzQ0NywxXQ==", + "attributes": { + "title": "DCE/RPC - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "zeek_dce_rpc.operation", + "zeek_dce_rpc.endpoint", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:dce_rpc\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/4a073440-b286-11eb-a4d4-09fa12a6ebd4.json b/Vagrant/resources/malcolm/kibana/dashboards/4a073440-b286-11eb-a4d4-09fa12a6ebd4.json new file mode 100644 index 0000000..a4f432b --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/4a073440-b286-11eb-a4d4-09fa12a6ebd4.json @@ -0,0 +1,355 @@ +{ + "version": "7.10.2", + "objects": [ + { + "id": "4a073440-b286-11eb-a4d4-09fa12a6ebd4", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T19:19:14.565Z", + "version": "WzE1OTcsMV0=", + "attributes": { + "title": "EtherCAT", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":33,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":33,\"i\":\"93f9befa-ff74-4dd7-893d-831006bfe274\"},\"panelIndex\":\"93f9befa-ff74-4dd7-893d-831006bfe274\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":15,\"i\":\"1e68e631-2943-466f-b7f8-fac05fc4669a\"},\"panelIndex\":\"1e68e631-2943-466f-b7f8-fac05fc4669a\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":16,\"y\":15,\"w\":16,\"h\":18,\"i\":\"2affeb62-eb87-488b-b550-fc19f54af3a4\"},\"panelIndex\":\"2affeb62-eb87-488b-b550-fc19f54af3a4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":32,\"y\":15,\"w\":16,\"h\":18,\"i\":\"abf49196-e719-4cbd-bd61-60552e21c011\"},\"panelIndex\":\"abf49196-e719-4cbd-bd61-60552e21c011\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":33,\"w\":19,\"h\":23,\"i\":\"ef345857-8c3c-4440-936e-4a110dd35cf3\"},\"panelIndex\":\"ef345857-8c3c-4440-936e-4a110dd35cf3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":19,\"y\":33,\"w\":29,\"h\":23,\"i\":\"2a854e26-54da-4437-93d3-fb13e9374e54\"},\"panelIndex\":\"2a854e26-54da-4437-93d3-fb13e9374e54\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":56,\"w\":48,\"h\":25,\"i\":\"84724642-17c1-4933-bf72-3cb539a47d56\"},\"panelIndex\":\"84724642-17c1-4933-bf72-3cb539a47d56\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":81,\"w\":48,\"h\":23,\"i\":\"d6124943-9598-45b9-a785-dbe4592ad132\"},\"panelIndex\":\"d6124943-9598-45b9-a785-dbe4592ad132\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "a5327000-b286-11eb-a4d4-09fa12a6ebd4" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "47a55a00-b287-11eb-a4d4-09fa12a6ebd4" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "fbee9c60-b287-11eb-a4d4-09fa12a6ebd4" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "162d0e40-b288-11eb-a4d4-09fa12a6ebd4" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "94900e50-b287-11eb-a4d4-09fa12a6ebd4" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "b5f51c30-b28b-11eb-a4d4-09fa12a6ebd4" + }, + { + "name": "panel_7", + "type": "search", + "id": "aaa50880-b28c-11eb-a4d4-09fa12a6ebd4" + }, + { + "name": "panel_8", + "type": "search", + "id": "39562200-b286-11eb-a4d4-09fa12a6ebd4" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T17:59:04.924Z", + "version": "Wzg4MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a5327000-b286-11eb-a4d4-09fa12a6ebd4", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T18:28:47.735Z", + "version": "WzExNzgsMV0=", + "attributes": { + "title": "EtherCAT - Log Count", + "visState": "{\"title\":\"EtherCAT - Log Count\",\"type\":\"metric\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{\"customLabel\":\"\"},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"},\"schema\":\"group\"}],\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}}}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "39562200-b286-11eb-a4d4-09fa12a6ebd4" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "47a55a00-b287-11eb-a4d4-09fa12a6ebd4", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T18:32:45.728Z", + "version": "WzEyNDcsMV0=", + "attributes": { + "title": "EtherCAT - Log Count Over Time", + "visState": "{\"title\":\"EtherCAT - Log Count Over Time\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"2021-03-01T05:59:58.120Z\",\"to\":\"2021-03-01T06:00:51.365Z\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}},\"schema\":\"segment\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Operation\"},\"schema\":\"group\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"bottom\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "39562200-b286-11eb-a4d4-09fa12a6ebd4" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "fbee9c60-b287-11eb-a4d4-09fa12a6ebd4", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T18:37:48.198Z", + "version": "WzEyODcsMV0=", + "attributes": { + "title": "EtherCAT - Source", + "visState": "{\"title\":\"EtherCAT - Source\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"srcMac\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source MAC\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"srcOui\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"unknown\",\"customLabel\":\"Source OUI\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "39562200-b286-11eb-a4d4-09fa12a6ebd4" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "162d0e40-b288-11eb-a4d4-09fa12a6ebd4", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T18:38:32.228Z", + "version": "WzEzMDYsMV0=", + "attributes": { + "title": "EtherCAT - Destination", + "visState": "{\"title\":\"EtherCAT - Destination\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstMac\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination MAC\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstOui\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"unknown\",\"customLabel\":\"Destination OUI\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "39562200-b286-11eb-a4d4-09fa12a6ebd4" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "94900e50-b287-11eb-a4d4-09fa12a6ebd4", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T19:05:57.548Z", + "version": "WzE0ODgsMV0=", + "attributes": { + "title": "EtherCAT - Commands", + "visState": "{\"title\":\"EtherCAT - Commands\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Command\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":15,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "39562200-b286-11eb-a4d4-09fa12a6ebd4" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b5f51c30-b28b-11eb-a4d4-09fa12a6ebd4", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T19:15:02.736Z", + "version": "WzE1NzcsMV0=", + "attributes": { + "title": "EtherCAT - Register Types and Commands", + "visState": "{\"title\":\"EtherCAT - Register Types and Commands\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_ecat_registers.register_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Register Type\"},\"schema\":\"bucket\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Command\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":15,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:ecat_registers\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "39562200-b286-11eb-a4d4-09fa12a6ebd4" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "aaa50880-b28c-11eb-a4d4-09fa12a6ebd4", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T19:11:38.623Z", + "version": "WzE1MzEsMV0=", + "attributes": { + "title": "EtherCAT Registers - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcMac", + "srcOui", + "dstMac", + "dstOui", + "zeek.action", + "zeek_ecat_registers.register_type", + "zeek_ecat_registers.slave_addr", + "zeek_ecat_registers.register_addr" + ], + "sort": [], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:ecat_registers\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "39562200-b286-11eb-a4d4-09fa12a6ebd4", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-05-11T18:25:12.224Z", + "version": "WzExMDAsMV0=", + "attributes": { + "title": "Logs - EtherCAT", + "description": "", + "hits": 0, + "columns": [ + "zeek.logType", + "zeek.action", + "srcMac", + "srcOui", + "dstMac", + "dstOui" + ], + "sort": [], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"kuery\",\"query\":\"zeek.logType:ecat*\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/4a4bde20-4760-11ea-949c-bbb5a9feecbf.json b/Vagrant/resources/malcolm/kibana/dashboards/4a4bde20-4760-11ea-949c-bbb5a9feecbf.json new file mode 100644 index 0000000..6f6ea33 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/4a4bde20-4760-11ea-949c-bbb5a9feecbf.json @@ -0,0 +1,508 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "4a4bde20-4760-11ea-949c-bbb5a9feecbf", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:28.484Z", + "version": "WzQ0OCwxXQ==", + "attributes": { + "title": "ICS/IoT Security Overview", + "hits": 0, + "description": "", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"h\":25,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":36,\"i\":\"02fde066-221d-4262-ae35-742f7bb8933c\",\"w\":9,\"x\":8,\"y\":0},\"panelIndex\":\"02fde066-221d-4262-ae35-742f7bb8933c\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":18,\"i\":\"d94eb348-e32a-4aa9-a987-4c5b39b4b08a\",\"w\":31,\"x\":17,\"y\":0},\"panelIndex\":\"d94eb348-e32a-4aa9-a987-4c5b39b4b08a\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":5,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":5,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"ed7f0280-cb4d-4c30-95e0-e160269de2fb\",\"w\":31,\"x\":17,\"y\":18},\"panelIndex\":\"ed7f0280-cb4d-4c30-95e0-e160269de2fb\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":11,\"i\":\"7077f7b2-0f10-4d3d-ad63-9611144c1edb\",\"w\":8,\"x\":0,\"y\":25},\"panelIndex\":\"7077f7b2-0f10-4d3d-ad63-9611144c1edb\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":39,\"i\":\"ab1a666c-19f2-4954-81b7-18554a95818f\",\"w\":19,\"x\":17,\"y\":36},\"panelIndex\":\"ab1a666c-19f2-4954-81b7-18554a95818f\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":19,\"i\":\"a56f7751-0030-44e1-8e62-3fb1018f4a7e\",\"w\":12,\"x\":36,\"y\":36},\"panelIndex\":\"a56f7751-0030-44e1-8e62-3fb1018f4a7e\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":19,\"i\":\"f339fb9a-7660-4b97-9245-14116c969ec9\",\"w\":17,\"x\":0,\"y\":36},\"panelIndex\":\"f339fb9a-7660-4b97-9245-14116c969ec9\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":20,\"i\":\"14a8b2bb-ca81-42a5-90aa-e70b5bd81d89\",\"w\":12,\"x\":36,\"y\":55},\"panelIndex\":\"14a8b2bb-ca81-42a5-90aa-e70b5bd81d89\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_8\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":20,\"i\":\"218c8873-ec71-4a2c-9c8d-5fa62afa2de1\",\"w\":17,\"x\":0,\"y\":55},\"panelIndex\":\"218c8873-ec71-4a2c-9c8d-5fa62afa2de1\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_9\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":27,\"i\":\"26e11cb0-ce55-4980-9fba-be104eda38a7\",\"w\":48,\"x\":0,\"y\":75},\"panelIndex\":\"26e11cb0-ce55-4980-9fba-be104eda38a7\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_10\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Denver\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "31e06210-4761-11ea-949c-bbb5a9feecbf" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "b614fcd0-4761-11ea-949c-bbb5a9feecbf" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "71d832b0-4763-11ea-949c-bbb5a9feecbf" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "adc09360-49c7-11ea-812f-2bc51df4ea1e" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "0db533e0-47a0-11ea-86b0-e3b81eb90684" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "60e83820-4762-11ea-949c-bbb5a9feecbf" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "f17fab90-4760-11ea-949c-bbb5a9feecbf" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "8253ab70-4762-11ea-949c-bbb5a9feecbf" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "1c681a40-47a2-11ea-86b0-e3b81eb90684" + }, + { + "name": "panel_10", + "type": "search", + "id": "1dc3dfb0-4760-11ea-949c-bbb5a9feecbf" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "31e06210-4761-11ea-949c-bbb5a9feecbf", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:28.484Z", + "version": "WzQ1MCwxXQ==", + "attributes": { + "title": "ICS/IoT Log Counts", + "visState": "{\"title\":\"ICS/IoT Log Counts\",\"type\":\"metric\",\"params\":{\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"type\":\"range\",\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}},\"dimensions\":{\"metrics\":[{\"type\":\"vis_dimension\",\"accessor\":1,\"format\":{\"id\":\"number\",\"params\":{}}}],\"bucket\":{\"type\":\"vis_dimension\",\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}}}},\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1dc3dfb0-4760-11ea-949c-bbb5a9feecbf" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b614fcd0-4761-11ea-949c-bbb5a9feecbf", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:28.484Z", + "version": "WzQ1MSwxXQ==", + "attributes": { + "title": "ICS/IoT Traffic Over Time", + "visState": "{\"title\":\"ICS/IoT Traffic Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#34130C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"YYYY-MM-DD\"}},\"params\":{\"date\":true,\"interval\":\"P30D\",\"intervalESValue\":30,\"intervalESUnit\":\"d\",\"format\":\"YYYY-MM-DD\",\"bounds\":{\"min\":\"1976-02-04T15:18:33.141Z\",\"max\":\"2020-02-04T15:18:33.141Z\"}},\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-44y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Protocol\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1dc3dfb0-4760-11ea-949c-bbb5a9feecbf" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "71d832b0-4763-11ea-949c-bbb5a9feecbf", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:28.484Z", + "version": "WzQ1MiwxXQ==", + "attributes": { + "title": "ICS/IoT External Traffic", + "visState": "{\"title\":\"ICS/IoT External Traffic\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":5,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":3,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":4,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Destination Country\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Protocol\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":499,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.source_geo.country_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Source Country\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.destination_geo.country_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Destination Country\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Destination Country\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"tags:(external_source OR external_destination)\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1dc3dfb0-4760-11ea-949c-bbb5a9feecbf" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "adc09360-49c7-11ea-812f-2bc51df4ea1e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY5OSwxXQ==", + "attributes": { + "title": "Network Layer", + "visState": "{\"title\":\"Network Layer\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":false,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Network Layer\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"network.type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Network Layer\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0db533e0-47a0-11ea-86b0-e3b81eb90684", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:28.484Z", + "version": "WzQ1NCwxXQ==", + "attributes": { + "title": "Non-ICS/IoT Protocols Observed", + "visState": "{\"title\":\"Non-ICS/IoT Protocols Observed\",\"type\":\"horizontal_bar\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":true,\"valueAxis\":\"ValueAxis-1\"},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":false,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#34130C\"},\"dimensions\":{\"x\":null,\"y\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"series\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":30,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Protocol\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"NOT zeek.service:(bacnet* OR bestguess OR bsap* OR cip* OR dnp3* OR ecat* OR enip* OR cotp OR *modbus* OR mqtt OR profinet* OR s7comm)\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "60e83820-4762-11ea-949c-bbb5a9feecbf", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:28.484Z", + "version": "WzQ1NSwxXQ==", + "attributes": { + "title": "ICS/IoT Source IP", + "visState": "{\"title\":\"ICS/IoT Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"-\",\"customLabel\":\"Protocol\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1dc3dfb0-4760-11ea-949c-bbb5a9feecbf" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f17fab90-4760-11ea-949c-bbb5a9feecbf", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:28.484Z", + "version": "WzQ1NiwxXQ==", + "attributes": { + "title": "ICS/IoT Actions and Results", + "visState": "{\"title\":\"ICS/IoT Actions and Results\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Protocol\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Action\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Protocol\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"-\",\"customLabel\":\"Action\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Result\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.action:* OR zeek.result:*\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1dc3dfb0-4760-11ea-949c-bbb5a9feecbf" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8253ab70-4762-11ea-949c-bbb5a9feecbf", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:28.484Z", + "version": "WzQ1NywxXQ==", + "attributes": { + "title": "ICS/IoT Destination IP", + "visState": "{\"title\":\"ICS/IoT Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"-\",\"customLabel\":\"Protocol\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "1dc3dfb0-4760-11ea-949c-bbb5a9feecbf" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "1c681a40-47a2-11ea-86b0-e3b81eb90684", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:28.484Z", + "version": "WzQ1OCwxXQ==", + "attributes": { + "title": "File Types by Transport", + "visState": "{\"title\":\"File Types by Transport\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":true,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.filetype\",\"orderBy\":\"_key\",\"order\":\"desc\",\"size\":500,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"File Type\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_files.source\",\"orderBy\":\"_key\",\"order\":\"desc\",\"size\":50,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Transport\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "0aca5333-3b1c-4cda-afb4-f7dd86910459" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "1dc3dfb0-4760-11ea-949c-bbb5a9feecbf", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:28.484Z", + "version": "WzQ1OSwxXQ==", + "attributes": { + "title": "ICS/IoT Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "zeek.action", + "zeek.result", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:(bacnet* OR bestguess OR bsap* OR cip* OR dnp3* OR ecat* OR enip OR iso_cotp OR modbus* OR mqtt* OR profinet OR s7comm)\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "0aca5333-3b1c-4cda-afb4-f7dd86910459", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:46.241Z", + "version": "WzY0NiwxXQ==", + "attributes": { + "title": "Files - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_files.tx_hosts", + "dstIp", + "zeek_files.source", + "zeek_files.mime_type", + "zeek.uid", + "zeek.fuid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:files\"}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/4e5f106e-c60a-4226-8f64-d534abb912ab.json b/Vagrant/resources/malcolm/kibana/dashboards/4e5f106e-c60a-4226-8f64-d534abb912ab.json new file mode 100644 index 0000000..30b6887 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/4e5f106e-c60a-4226-8f64-d534abb912ab.json @@ -0,0 +1,387 @@ +{ + "version": "7.10.2", + "objects": [ + { + "id": "4e5f106e-c60a-4226-8f64-d534abb912ab", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T19:22:09.074Z", + "version": "WzExNzEsMV0=", + "attributes": { + "title": "SNMP", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":33,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":14,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":33,\"w\":10,\"h\":19,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":10,\"y\":33,\"w\":12,\"h\":19,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":20,\"y\":14,\"w\":9,\"h\":19,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":0,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":14,\"i\":\"13\"},\"panelIndex\":\"13\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":8,\"y\":14,\"w\":12,\"h\":19,\"i\":\"14\"},\"panelIndex\":\"14\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":29,\"y\":14,\"w\":19,\"h\":19,\"i\":\"21d58bff-8812-458a-9c96-ad6bff972ead\"},\"panelIndex\":\"21d58bff-8812-458a-9c96-ad6bff972ead\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":22,\"y\":33,\"w\":26,\"h\":19,\"i\":\"71465d94-06a3-4a70-8cb8-ad4036300379\"},\"panelIndex\":\"71465d94-06a3-4a70-8cb8-ad4036300379\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":52,\"w\":48,\"h\":32,\"i\":\"3c17aeed-cffb-4aaf-a3b3-710de42d206c\"},\"panelIndex\":\"3c17aeed-cffb-4aaf-a3b3-710de42d206c\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"*\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "96dc7277-2123-4a0d-9311-571a6dd9bb0a" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "272670ef-2b43-45dc-b8ae-c7f2ead10348" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "cf0c69f3-7cc6-4c70-a33a-154e77ca547a" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "f95dd65c-c240-4144-bd27-ff5692843e25" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "AWDHD-LfxQT5EBNmq4iB" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "72341dff-ce1a-4f9c-bf4b-5675409476a1" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "2969b5e0-6c96-11eb-b775-c574dc643cbb" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "f0bd55b0-760b-11eb-8496-3528afc64ddb" + }, + { + "name": "panel_9", + "type": "search", + "id": "a7b5dae1-2f35-47c9-91ba-c8e8e66d10c8" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:47:06.069Z", + "version": "Wzg3NCwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "96dc7277-2123-4a0d-9311-571a6dd9bb0a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:26.687Z", + "version": "WzQ2MywxXQ==", + "attributes": { + "visState": "{\"title\":\"SNMP - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "SNMP - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "a7b5dae1-2f35-47c9-91ba-c8e8e66d10c8" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "272670ef-2b43-45dc-b8ae-c7f2ead10348", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:26.687Z", + "version": "WzQ2NCwxXQ==", + "attributes": { + "visState": "{\"title\":\"SNMP - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SNMP - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "a7b5dae1-2f35-47c9-91ba-c8e8e66d10c8" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "cf0c69f3-7cc6-4c70-a33a-154e77ca547a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:26.687Z", + "version": "WzQ2NSwxXQ==", + "attributes": { + "title": "SNMP - Destination IP Address", + "visState": "{\"title\":\"SNMP - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"IP Address\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP Address\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":50,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a7b5dae1-2f35-47c9-91ba-c8e8e66d10c8" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f95dd65c-c240-4144-bd27-ff5692843e25", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:26.687Z", + "version": "WzQ2NiwxXQ==", + "attributes": { + "visState": "{\"title\":\"SNMP - Session Duration\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_snmp.duration\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Duration\"}}],\"listeners\":{}}", + "description": "", + "title": "SNMP - Session Duration", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "a7b5dae1-2f35-47c9-91ba-c8e8e66d10c8" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHD-LfxQT5EBNmq4iB", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:26.687Z", + "version": "WzQ2NywxXQ==", + "attributes": { + "title": "SNMP - Log Count", + "visState": "{\"title\":\"SNMP - Log Count\",\"type\":\"metric\",\"params\":{\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"type\":\"range\",\"from\":0,\"to\":100}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#FB9E00\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":30}},\"dimensions\":{\"metrics\":[{\"type\":\"vis_dimension\",\"accessor\":1,\"format\":{\"id\":\"number\",\"params\":{}}}],\"bucket\":{\"type\":\"vis_dimension\",\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}}}},\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Version\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.service_version\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"SNMP Version\"}}]}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a7b5dae1-2f35-47c9-91ba-c8e8e66d10c8" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "72341dff-ce1a-4f9c-bf4b-5675409476a1", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:26.687Z", + "version": "WzQ2OCwxXQ==", + "attributes": { + "title": "SNMP - Community String", + "visState": "{\"title\":\"SNMP - Community String\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_snmp.community\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Community String\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "a7b5dae1-2f35-47c9-91ba-c8e8e66d10c8" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2969b5e0-6c96-11eb-b775-c574dc643cbb", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:26.687Z", + "version": "WzQ2OSwxXQ==", + "attributes": { + "title": "SNMP - PDU Type", + "visState": "{\"title\":\"SNMP - PDU Type\",\"type\":\"horizontal_bar\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":8,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"PDU Type\"},\"schema\":\"segment\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.service_version\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"group\"}],\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"row\":true,\"orderBucketsBySum\":false}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a7b5dae1-2f35-47c9-91ba-c8e8e66d10c8" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f0bd55b0-760b-11eb-8496-3528afc64ddb", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T19:18:42.059Z", + "version": "WzEwOTcsMV0=", + "attributes": { + "title": "SNMP - Version and PDU Type", + "visState": "{\"title\":\"SNMP - Version and PDU Type\",\"type\":\"kbn_sankey\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.service_version\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"SNMP Version\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Action\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"computedColumns\":[],\"computedColsPerSplitCol\":false,\"hideExportLinks\":false,\"csvExportWithTotal\":false,\"stripedRows\":false,\"addRowNumberColumn\":false,\"csvEncoding\":\"utf-8\",\"showFilterBar\":false,\"filterCaseSensitive\":false,\"filterBarHideable\":false,\"filterAsYouType\":false,\"filterTermsSeparately\":false,\"filterHighlightResults\":false,\"filterBarWidth\":\"25%\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a7b5dae1-2f35-47c9-91ba-c8e8e66d10c8" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a7b5dae1-2f35-47c9-91ba-c8e8e66d10c8", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:26.687Z", + "version": "WzQ3MCwxXQ==", + "attributes": { + "title": "SNMP - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_snmp.version", + "zeek.action", + "zeek_snmp.community", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:snmp\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/50ced171-1b10-4c3f-8b67-2db9635661a6.json b/Vagrant/resources/malcolm/kibana/dashboards/50ced171-1b10-4c3f-8b67-2db9635661a6.json new file mode 100644 index 0000000..be9813d --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/50ced171-1b10-4c3f-8b67-2db9635661a6.json @@ -0,0 +1,246 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "50ced171-1b10-4c3f-8b67-2db9635661a6", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T15:59:01.107Z", + "version": "WzIzMTEsMV0=", + "attributes": { + "title": "MySQL", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":11,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{\"legendOpen\":false,\"vis\":{\"legendOpen\":true}},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":26,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":11,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":26,\"w\":8,\"h\":11,\"i\":\"13\"},\"panelIndex\":\"13\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":11,\"w\":40,\"h\":26,\"i\":\"04e96790-2a76-4656-956b-bdf780792c40\"},\"panelIndex\":\"04e96790-2a76-4656-956b-bdf780792c40\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":37,\"w\":48,\"h\":26,\"i\":\"27a5666b-5633-4982-b276-ecafa4a38b74\"},\"panelIndex\":\"27a5666b-5633-4982-b276-ecafa4a38b74\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "a2e900c8-9dd9-490b-9043-a9b5034424b5" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "AWDHBRrrxQT5EBNmq4TI" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "3bfe2a4c-d202-49e0-8ebc-484e542f910f" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "f82136c0-4dbf-11ea-8336-d3388483188b" + }, + { + "name": "panel_5", + "type": "search", + "id": "f4ad663c-8222-4f64-9f66-d4fa8b04c20a" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "a2e900c8-9dd9-490b-9043-a9b5034424b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T15:56:27.547Z", + "version": "WzIyNjEsMV0=", + "attributes": { + "title": "MySQL - Log Count Over Time", + "visState": "{\"title\":\"MySQL - Log Count Over Time\",\"type\":\"line\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-25y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}},\"schema\":\"segment\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_mysql.cmd\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Command\"},\"schema\":\"group\"}],\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"stacked\",\"type\":\"histogram\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"type\":\"line\",\"labels\":{},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"YYYY-MM-DD\"}},\"params\":{\"date\":true,\"interval\":\"P30D\",\"intervalESValue\":30,\"intervalESUnit\":\"d\",\"format\":\"YYYY-MM-DD\",\"bounds\":{\"min\":\"1976-02-12T17:52:43.825Z\",\"max\":\"2020-02-12T17:52:43.825Z\"}},\"label\":\"firstPacket per 30 days\",\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Command\",\"aggType\":\"terms\"}]}}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "f4ad663c-8222-4f64-9f66-d4fa8b04c20a" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHBRrrxQT5EBNmq4TI", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:30.578Z", + "version": "WzQ3NSwxXQ==", + "attributes": { + "title": "MySQL - Log Count", + "visState": "{\"title\":\"MySQL - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "f4ad663c-8222-4f64-9f66-d4fa8b04c20a" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3bfe2a4c-d202-49e0-8ebc-484e542f910f", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T15:58:25.684Z", + "version": "WzIyNzgsMV0=", + "attributes": { + "title": "MySQL - Success", + "visState": "{\"title\":\"MySQL - Success\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_mysql.success\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek_mysql.success: Descending\",\"aggType\":\"terms\"}]}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "f4ad663c-8222-4f64-9f66-d4fa8b04c20a" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f82136c0-4dbf-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:30.578Z", + "version": "WzQ3NywxXQ==", + "attributes": { + "title": "MySQL - Commands", + "visState": "{\"title\":\"MySQL - Commands\",\"type\":\"table\",\"params\":{\"perPage\":20,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":4,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Command\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Argument\",\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Response\",\"aggType\":\"terms\"},{\"accessor\":3,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Success\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mysql.cmd\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Command\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mysql.arg\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Argument\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mysql.response\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Response\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mysql.success\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Success\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "f4ad663c-8222-4f64-9f66-d4fa8b04c20a" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f4ad663c-8222-4f64-9f66-d4fa8b04c20a", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:30.578Z", + "version": "WzQ3OCwxXQ==", + "attributes": { + "title": "MySQL - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_mysql.cmd", + "zeek_mysql.success", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:mysql\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/543118a9-02d7-43fe-b669-b8652177fc37.json b/Vagrant/resources/malcolm/kibana/dashboards/543118a9-02d7-43fe-b669-b8652177fc37.json new file mode 100644 index 0000000..6f387f7 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/543118a9-02d7-43fe-b669-b8652177fc37.json @@ -0,0 +1,459 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "543118a9-02d7-43fe-b669-b8652177fc37", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T15:55:44.537Z", + "version": "WzIyNDcsMV0=", + "attributes": { + "title": "NTLM", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":44,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":32,\"y\":23,\"w\":16,\"h\":21,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":26,\"w\":12,\"h\":18,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":20,\"y\":26,\"w\":12,\"h\":18,\"i\":\"8\"},\"panelIndex\":\"8\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":44,\"w\":16,\"h\":18,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":44,\"w\":16,\"h\":18,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":32,\"y\":44,\"w\":16,\"h\":18,\"i\":\"13\"},\"panelIndex\":\"13\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"15\"},\"panelIndex\":\"15\",\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":8,\"w\":24,\"h\":18,\"i\":\"16\"},\"panelIndex\":\"16\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":32,\"y\":8,\"w\":16,\"h\":15,\"i\":\"810e5272-b5cd-4e76-b0cf-32cc7a3f57e8\"},\"panelIndex\":\"810e5272-b5cd-4e76-b0cf-32cc7a3f57e8\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_10\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":62,\"w\":48,\"h\":40,\"i\":\"cac38fd6-65a1-4041-83e4-f95e0d136537\"},\"panelIndex\":\"cac38fd6-65a1-4041-83e4-f95e0d136537\",\"embeddableConfig\":{\"columns\":[\"srcIp\",\"dstIp\",\"dstPort\",\"zeek_ntlm.host\",\"zeek_ntlm.domain\",\"zeek_ntlm.server_nb_computer\",\"zeek_ntlm.server_dns_computer\",\"zeek_ntlm.server_tree\",\"zeek.uid\"]},\"panelRefName\":\"panel_11\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "7be3afad-a0db-466b-8dd1-3e04d5acea6b" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "9500b522-519f-4219-8ba3-8f5fa5bc1452" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "cc045686-66be-4450-8d8a-90927323968d" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "9e559bef-866f-4934-b1b5-4db5bf213664" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "706e217b-6d5c-4c74-b340-a34c9801e2dc" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "97f78ed5-c786-4e8d-924e-3c69f09cd79f" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "03592efa-6618-4b50-8071-21accd137e30" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "AWDHCEx7xQT5EBNmq4Vf" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "319e9e0b-b12e-4401-8833-3c62de2df7da" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "110b46c0-4dc1-11ea-8336-d3388483188b" + }, + { + "name": "panel_11", + "type": "search", + "id": "40c651a5-3e02-47b4-8d6b-8628a351007c" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7be3afad-a0db-466b-8dd1-3e04d5acea6b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:31.603Z", + "version": "WzQ4MSwxXQ==", + "attributes": { + "visState": "{\"title\":\"NTLM - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per minute\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "NTLM - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "40c651a5-3e02-47b4-8d6b-8628a351007c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9500b522-519f-4219-8ba3-8f5fa5bc1452", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:31.603Z", + "version": "WzQ4MiwxXQ==", + "attributes": { + "title": "NTLM - Hostname", + "visState": "{\"title\":\"NTLM - Hostname\",\"type\":\"table\",\"params\":{\"perPage\":15,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Hostname\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ntlm.host\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Hostname\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "40c651a5-3e02-47b4-8d6b-8628a351007c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "cc045686-66be-4450-8d8a-90927323968d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:31.603Z", + "version": "WzQ4MywxXQ==", + "attributes": { + "visState": "{\"title\":\"NTLM - Domain Name\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ntlm.domain\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Domain\"}}],\"listeners\":{}}", + "description": "", + "title": "NTLM - Domain Name", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "40c651a5-3e02-47b4-8d6b-8628a351007c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9e559bef-866f-4934-b1b5-4db5bf213664", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:31.603Z", + "version": "WzQ4NCwxXQ==", + "attributes": { + "visState": "{\"title\":\"NTLM - Username\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.user\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Username\"}}],\"listeners\":{}}", + "description": "", + "title": "NTLM - Username", + "uiStateJSON": "{\n \"vis\": {\n \"params\": {\n \"sort\": {\n \"columnIndex\": null,\n \"direction\": null\n }\n }\n }\n}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "40c651a5-3e02-47b4-8d6b-8628a351007c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "706e217b-6d5c-4c74-b340-a34c9801e2dc", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:31.603Z", + "version": "WzQ4NSwxXQ==", + "attributes": { + "visState": "{\"title\":\"NTLM - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "NTLM - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "40c651a5-3e02-47b4-8d6b-8628a351007c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "97f78ed5-c786-4e8d-924e-3c69f09cd79f", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:31.603Z", + "version": "WzQ4NiwxXQ==", + "attributes": { + "visState": "{\"title\":\"NTLM - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "NTLM - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "40c651a5-3e02-47b4-8d6b-8628a351007c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "03592efa-6618-4b50-8071-21accd137e30", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:31.603Z", + "version": "WzQ4NywxXQ==", + "attributes": { + "visState": "{\"title\":\"NTLM - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Port\"}}],\"listeners\":{}}", + "description": "", + "title": "NTLM - Destination Port", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "40c651a5-3e02-47b4-8d6b-8628a351007c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHCEx7xQT5EBNmq4Vf", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:31.603Z", + "version": "WzQ4OCwxXQ==", + "attributes": { + "title": "NTLM - Log Count", + "visState": "{\"title\":\"NTLM - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "40c651a5-3e02-47b4-8d6b-8628a351007c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "319e9e0b-b12e-4401-8833-3c62de2df7da", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:31.603Z", + "version": "WzQ4OSwxXQ==", + "attributes": { + "title": "NTLM - Hostname to Username", + "visState": "{\"title\":\"NTLM - Hostname to Username\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ntlm.host\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Hostname\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.user\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Username\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ntlm.domain\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Domain\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "40c651a5-3e02-47b4-8d6b-8628a351007c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "110b46c0-4dc1-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:31.603Z", + "version": "WzQ5MCwxXQ==", + "attributes": { + "title": "NTLM - Success", + "visState": "{\"title\":\"NTLM - Success\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Success\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_ntlm.success\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Success\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "40c651a5-3e02-47b4-8d6b-8628a351007c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "40c651a5-3e02-47b4-8d6b-8628a351007c", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:31.603Z", + "version": "WzQ5MSwxXQ==", + "attributes": { + "title": "NTLM - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_ntlm.host", + "zeek_ntlm.domain", + "zeek_ntlm.server_nb_computer", + "zeek_ntlm.server_dns_computer", + "zeek_ntlm.server_tree", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:ntlm\"}}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/55e332d0-3f99-11e9-a58e-8bdedb0915e8.json b/Vagrant/resources/malcolm/kibana/dashboards/55e332d0-3f99-11e9-a58e-8bdedb0915e8.json new file mode 100644 index 0000000..f6f2ad3 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/55e332d0-3f99-11e9-a58e-8bdedb0915e8.json @@ -0,0 +1,138 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "55e332d0-3f99-11e9-a58e-8bdedb0915e8", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:32.623Z", + "version": "WzQ5MiwxXQ==", + "attributes": { + "title": "Connections - Destination - Originator Bytes (region map)", + "hits": 0, + "description": "", + "panelsJSON": "[{\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":44,\"i\":\"2\"},\"panelIndex\":\"2\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_0\"},{\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":40,\"i\":\"3\"},\"version\":\"7.6.2\",\"panelIndex\":\"3\",\"embeddableConfig\":{\"mapCenter\":[0,0],\"mapZoom\":3},\"panelRefName\":\"panel_1\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "3cbd1620-3f96-11e9-a58e-8bdedb0915e8" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3cbd1620-3f96-11e9-a58e-8bdedb0915e8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:32.623Z", + "version": "WzQ5NCwxXQ==", + "attributes": { + "title": "Connections - Destination - Originator Bytes (region map)", + "visState": "{\"title\":\"Connections - Destination - Originator Bytes (region map)\",\"type\":\"region_map\",\"params\":{\"addTooltip\":true,\"colorSchema\":\"Green to Red\",\"emsHotLink\":null,\"isDisplayWarning\":false,\"legendPosition\":\"bottomright\",\"mapCenter\":[0,0],\"mapZoom\":3,\"outlineWeight\":1,\"selectedJoinField\":{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},\"selectedLayer\":{\"attribution\":\"https://exploratory.io/maps\",\"fields\":[{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},{\"description\":\"Country Code2\",\"name\":\"WB_A2\"},{\"description\":\"Country Name\",\"name\":\"NAME\"}],\"format\":{\"type\":\"geojson\"},\"isEMS\":false,\"layerId\":\"self_hosted.World (offline)\",\"meta\":{\"feature_collection_path\":\"data\"},\"name\":\"World (offline)\",\"url\":\"/world.geojson\"},\"showAllShapes\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek_conn.orig_bytes\",\"customLabel\":\"Originator Bytes\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"dstGEO\",\"size\":250,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Responder Country\"}}]}", + "uiStateJSON": "{\"mapCenter\":[0,0],\"mapZoom\":3}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/60d78fbd-471c-4f59-a9e3-189b33a13644.json b/Vagrant/resources/malcolm/kibana/dashboards/60d78fbd-471c-4f59-a9e3-189b33a13644.json new file mode 100644 index 0000000..d03b78a --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/60d78fbd-471c-4f59-a9e3-189b33a13644.json @@ -0,0 +1,210 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "60d78fbd-471c-4f59-a9e3-189b33a13644", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:33.654Z", + "version": "WzQ5NiwxXQ==", + "attributes": { + "title": "Connections - Destination - Sum of Total Bytes", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":39,\"h\":50,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":null},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":23,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":23,\"w\":8,\"h\":15,\"i\":\"185e3f31-3f18-4df8-93c1-617c0323f051\"},\"panelIndex\":\"185e3f31-3f18-4df8-93c1-617c0323f051\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":38,\"w\":8,\"h\":12,\"i\":\"887a57e9-3078-4fe1-9ea9-0ee63abe554f\"},\"panelIndex\":\"887a57e9-3078-4fe1-9ea9-0ee63abe554f\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"*\",\"language\":\"lucene\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "7fe0a885-b172-48b9-ac34-0c8e8d5c2f82" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "7fe0a885-b172-48b9-ac34-0c8e8d5c2f82", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:33.654Z", + "version": "WzQ5NywxXQ==", + "attributes": { + "visState": "{\"title\":\"Connections - Destination - Sum of Total Bytes\",\"type\":\"tile_map\",\"params\":{\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true,\"heatMaxZoom\":0,\"heatMinOpacity\":0.1,\"heatRadius\":25,\"heatBlur\":15,\"heatNormalizeData\":true,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"mapCenter\":[0,0],\"wms\":{\"enabled\":false,\"url\":\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\",\"options\":{\"version\":\"1.3.0\",\"layers\":\"0\",\"format\":\"image/png\",\"transparent\":true,\"attribution\":\"Maps provided by USGS\",\"styles\":\"\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"schema\":\"metric\",\"params\":{\"field\":\"totBytes\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"geohash_grid\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.destination_geo.location\",\"autoPrecision\":true,\"useGeocentroid\":true,\"precision\":2}}],\"listeners\":{}}", + "description": "", + "title": "Connections - Destination - Sum of Total Bytes", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NCwxXQ==", + "attributes": { + "title": "Connections - Protocol Filters", + "visState": "{\"title\":\"Connections - Protocol Filters\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1581606976709\",\"fieldName\":\"network.type\",\"parent\":\"\",\"label\":\"Network Layer\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1581606723028\",\"fieldName\":\"zeek.proto\",\"parent\":\"\",\"label\":\"Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"},{\"id\":\"1581606665268\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Service\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_2_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_1_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_2_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/665d1610-523d-11e9-a30e-e3576242f3ed.json b/Vagrant/resources/malcolm/kibana/dashboards/665d1610-523d-11e9-a30e-e3576242f3ed.json new file mode 100644 index 0000000..b730924 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/665d1610-523d-11e9-a30e-e3576242f3ed.json @@ -0,0 +1,243 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "665d1610-523d-11e9-a30e-e3576242f3ed", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:35.042Z", + "version": "WzUwMiwxXQ==", + "attributes": { + "title": "Signatures", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":32,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":32,\"w\":48,\"h\":48,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":8,\"w\":20,\"h\":24,\"i\":\"12\"},\"panelIndex\":\"12\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":28,\"y\":8,\"w\":20,\"h\":24,\"i\":\"13\"},\"panelIndex\":\"13\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "0927a2fa-f94e-4f68-a23b-5054ed2e171a" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "8356c570-523f-11e9-a30e-e3576242f3ed" + }, + { + "name": "panel_3", + "type": "search", + "id": "34dd33c0-523f-11e9-a30e-e3576242f3ed" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "0e9b1a00-525e-11e9-9bd7-13d6d1bafa75" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "39073d50-525e-11e9-9bd7-13d6d1bafa75" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0927a2fa-f94e-4f68-a23b-5054ed2e171a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:35.042Z", + "version": "WzUwNCwxXQ==", + "attributes": { + "title": "Signatures - Log Count Over Time", + "visState": "{\"title\":\"Signatures - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"type\":\"line\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"zeek.logType:signatures\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8356c570-523f-11e9-a30e-e3576242f3ed", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:35.042Z", + "version": "WzUwNSwxXQ==", + "attributes": { + "title": "Signatures - Log Count", + "visState": "{\"title\":\"Signatures - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "34dd33c0-523f-11e9-a30e-e3576242f3ed" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "34dd33c0-523f-11e9-a30e-e3576242f3ed", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:45.233Z", + "version": "WzYzMywxXQ==", + "attributes": { + "title": "Signatures - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_signatures.note", + "zeek_signatures.signature_id", + "zeek_signatures.signature_count", + "zeek.fuid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"zeek.logType:signatures\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "0e9b1a00-525e-11e9-9bd7-13d6d1bafa75", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:45.233Z", + "version": "WzYyMywxXQ==", + "attributes": { + "title": "Signatures - Signature IDs", + "visState": "{\"title\":\"Signatures - Signature IDs\",\"type\":\"horizontal_bar\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":40},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":20},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Signature ID\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_signatures.signature_id\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Signature ID\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "34dd33c0-523f-11e9-a30e-e3576242f3ed" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "39073d50-525e-11e9-9bd7-13d6d1bafa75", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:35.042Z", + "version": "WzUwOCwxXQ==", + "attributes": { + "title": "Signatures - Engines", + "visState": "{\"title\":\"Signatures - Engines\",\"type\":\"horizontal_bar\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"legendPosition\":\"bottom\",\"orderBucketsBySum\":false,\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"times\":[],\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":75,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_signatures.engine\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Engines\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "34dd33c0-523f-11e9-a30e-e3576242f3ed" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/76f2f912-80da-44cd-ab66-6a73c8344cc3.json b/Vagrant/resources/malcolm/kibana/dashboards/76f2f912-80da-44cd-ab66-6a73c8344cc3.json new file mode 100644 index 0000000..1a6e440 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/76f2f912-80da-44cd-ab66-6a73c8344cc3.json @@ -0,0 +1,352 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "76f2f912-80da-44cd-ab66-6a73c8344cc3", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:36.060Z", + "version": "WzUwOSwxXQ==", + "attributes": { + "title": "IRC", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":47,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"4\"},\"panelIndex\":\"4\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":20,\"y\":27,\"w\":12,\"h\":20,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":27,\"w\":12,\"h\":20,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":32,\"y\":27,\"w\":16,\"h\":20,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"12\"},\"panelIndex\":\"12\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":28,\"y\":8,\"w\":20,\"h\":19,\"i\":\"13\"},\"panelIndex\":\"13\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":8,\"w\":20,\"h\":19,\"i\":\"15\"},\"panelIndex\":\"15\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":47,\"w\":48,\"h\":37,\"i\":\"d32001ad-b1a2-4fde-8feb-c06e3a7b1f91\"},\"panelIndex\":\"d32001ad-b1a2-4fde-8feb-c06e3a7b1f91\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "97e59b5d-86f2-42e6-9dbb-67336dd6c38a" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "46ada5c4-3522-4a0c-a2dd-279d59e23160" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "3e7fcb65-15e8-4a05-92de-ee924c08d85c" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "6544edd6-ae35-4e10-be83-ede9cb2a5fa2" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "AWDG_HoKxQT5EBNmq4KN" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "7a04aa5c-8e7f-4405-9291-2fa3ce1b6c7a" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "91a1e5ab-35e4-4a8a-a26f-4b4c1b9bb8ec" + }, + { + "name": "panel_8", + "type": "search", + "id": "5486b4b2-714d-45d1-b347-ab274894de1f" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "97e59b5d-86f2-42e6-9dbb-67336dd6c38a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:36.060Z", + "version": "WzUxMSwxXQ==", + "attributes": { + "visState": "{\"title\":\"IRC - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "IRC - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5486b4b2-714d-45d1-b347-ab274894de1f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "46ada5c4-3522-4a0c-a2dd-279d59e23160", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:36.060Z", + "version": "WzUxMiwxXQ==", + "attributes": { + "visState": "{\"title\":\"IRC - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "IRC - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5486b4b2-714d-45d1-b347-ab274894de1f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3e7fcb65-15e8-4a05-92de-ee924c08d85c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:36.060Z", + "version": "WzUxMywxXQ==", + "attributes": { + "visState": "{\"title\":\"IRC - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "IRC - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5486b4b2-714d-45d1-b347-ab274894de1f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6544edd6-ae35-4e10-be83-ede9cb2a5fa2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:36.060Z", + "version": "WzUxNCwxXQ==", + "attributes": { + "title": "IRC - Destination Port", + "visState": "{\"title\":\"IRC - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5486b4b2-714d-45d1-b347-ab274894de1f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDG_HoKxQT5EBNmq4KN", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:36.060Z", + "version": "WzUxNSwxXQ==", + "attributes": { + "title": "IRC - Log Count", + "visState": "{\"title\":\"IRC - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5486b4b2-714d-45d1-b347-ab274894de1f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7a04aa5c-8e7f-4405-9291-2fa3ce1b6c7a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:36.060Z", + "version": "WzUxNiwxXQ==", + "attributes": { + "title": "IRC - Destination Country", + "visState": "{\"title\":\"IRC - Destination Country\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.destination_geo.country_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Destination Country\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.destination_geo.city_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Destination City\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Destination IP Address\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5486b4b2-714d-45d1-b347-ab274894de1f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "91a1e5ab-35e4-4a8a-a26f-4b4c1b9bb8ec", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:36.060Z", + "version": "WzUxNywxXQ==", + "attributes": { + "title": "IRC - Command", + "visState": "{\"title\":\"IRC - Command\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_irc.command\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Command\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5486b4b2-714d-45d1-b347-ab274894de1f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5486b4b2-714d-45d1-b347-ab274894de1f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:36.060Z", + "version": "WzUxOCwxXQ==", + "attributes": { + "title": "IRC - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_irc.nick", + "zeek_irc.command", + "zeek_irc.value", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:irc\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/77fc9960-3f99-11e9-a58e-8bdedb0915e8.json b/Vagrant/resources/malcolm/kibana/dashboards/77fc9960-3f99-11e9-a58e-8bdedb0915e8.json new file mode 100644 index 0000000..4131ef0 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/77fc9960-3f99-11e9-a58e-8bdedb0915e8.json @@ -0,0 +1,210 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "77fc9960-3f99-11e9-a58e-8bdedb0915e8", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:37.074Z", + "version": "WzUxOSwxXQ==", + "attributes": { + "title": "Connections - Destination - Responder Bytes (region map)", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":23,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":50,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":3},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":23,\"w\":8,\"h\":15,\"i\":\"18ef74a3-0457-4cdd-acdc-2c0d967c4b7c\"},\"panelIndex\":\"18ef74a3-0457-4cdd-acdc-2c0d967c4b7c\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":38,\"w\":8,\"h\":12,\"i\":\"bf8d1e0a-e6dd-4ea2-8466-220565d99081\"},\"panelIndex\":\"bf8d1e0a-e6dd-4ea2-8466-220565d99081\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"*\",\"language\":\"lucene\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "54431ec0-3f96-11e9-a58e-8bdedb0915e8" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "54431ec0-3f96-11e9-a58e-8bdedb0915e8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:37.074Z", + "version": "WzUyMSwxXQ==", + "attributes": { + "title": "Connections - Destination - Responder Bytes (region map)", + "visState": "{\"title\":\"Connections - Destination - Responder Bytes (region map)\",\"type\":\"region_map\",\"params\":{\"addTooltip\":true,\"colorSchema\":\"Green to Red\",\"emsHotLink\":null,\"isDisplayWarning\":false,\"legendPosition\":\"bottomright\",\"mapCenter\":[0,0],\"mapZoom\":3,\"outlineWeight\":1,\"selectedJoinField\":{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},\"selectedLayer\":{\"attribution\":\"https://exploratory.io/maps\",\"fields\":[{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},{\"description\":\"Country Code2\",\"name\":\"WB_A2\"},{\"description\":\"Country Name\",\"name\":\"NAME\"}],\"format\":{\"type\":\"geojson\"},\"isEMS\":false,\"layerId\":\"self_hosted.World (offline)\",\"meta\":{\"feature_collection_path\":\"data\"},\"name\":\"World (offline)\",\"url\":\"/world.geojson\"},\"showAllShapes\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek_conn.resp_bytes\",\"customLabel\":\"Responder Bytes\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"dstGEO\",\"size\":250,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Responder Country\"}}]}", + "uiStateJSON": "{\"mapCenter\":[0,0],\"mapZoom\":3}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NCwxXQ==", + "attributes": { + "title": "Connections - Protocol Filters", + "visState": "{\"title\":\"Connections - Protocol Filters\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1581606976709\",\"fieldName\":\"network.type\",\"parent\":\"\",\"label\":\"Network Layer\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1581606723028\",\"fieldName\":\"zeek.proto\",\"parent\":\"\",\"label\":\"Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"},{\"id\":\"1581606665268\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Service\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_2_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_1_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_2_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/7f41913f-cba8-43f5-82a8-241b7ead03e0.json b/Vagrant/resources/malcolm/kibana/dashboards/7f41913f-cba8-43f5-82a8-241b7ead03e0.json new file mode 100644 index 0000000..6b542ad --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/7f41913f-cba8-43f5-82a8-241b7ead03e0.json @@ -0,0 +1,424 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "7f41913f-cba8-43f5-82a8-241b7ead03e0", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:29:37.280Z", + "version": "WzI4NjEsMV0=", + "attributes": { + "title": "RDP", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":28,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":10,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":15,\"y\":28,\"w\":9,\"h\":19,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":24,\"y\":28,\"w\":13,\"h\":19,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":37,\"y\":28,\"w\":11,\"h\":19,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":10,\"w\":14,\"h\":18,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":true}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":38,\"y\":10,\"w\":10,\"h\":18,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{\"legendOpen\":false,\"vis\":{\"legendOpen\":true}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":28,\"w\":15,\"h\":19,\"i\":\"12\"},\"panelIndex\":\"12\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":10,\"i\":\"14\"},\"panelIndex\":\"14\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":22,\"y\":10,\"w\":16,\"h\":18,\"i\":\"17548109-6b40-41e7-997f-17290b9759ac\"},\"panelIndex\":\"17548109-6b40-41e7-997f-17290b9759ac\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":47,\"w\":48,\"h\":36,\"i\":\"c76b082d-e205-42f7-8c7a-46be60fccb19\"},\"panelIndex\":\"c76b082d-e205-42f7-8c7a-46be60fccb19\",\"embeddableConfig\":{},\"panelRefName\":\"panel_10\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "b4e1f8d3-fdd9-4a86-b907-0e432b1a6049" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "171c1475-1288-4dab-b5f4-f2105c7167a5" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "0a4694d9-2c36-48f3-979e-22548fff8fda" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "890ddd12-deb4-4608-890c-f0290dea3566" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "874675b5-bc49-4a3a-8d6e-a7efd713919e" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "088c8f99-a90e-4a1e-b1a4-afd93ff076da" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "b4d98d1f-dad9-4883-95ff-f8edc0b23b34" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "AWDHCvBexQT5EBNmq4aK" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "93df26c0-4dc6-11ea-8336-d3388483188b" + }, + { + "name": "panel_10", + "type": "search", + "id": "5697fae3-8fed-45cd-82e1-ba6f86a99bd3" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b4e1f8d3-fdd9-4a86-b907-0e432b1a6049", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:38.098Z", + "version": "WzUyNywxXQ==", + "attributes": { + "visState": "{\"title\":\"RDP - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "RDP - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5697fae3-8fed-45cd-82e1-ba6f86a99bd3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "171c1475-1288-4dab-b5f4-f2105c7167a5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:38.098Z", + "version": "WzUyOCwxXQ==", + "attributes": { + "visState": "{\"title\":\"RDP - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "RDP - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5697fae3-8fed-45cd-82e1-ba6f86a99bd3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0a4694d9-2c36-48f3-979e-22548fff8fda", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:24:31.744Z", + "version": "WzI3NjksMV0=", + "attributes": { + "title": "RDP - Destination IP Address", + "visState": "{\"title\":\"RDP - Destination IP Address\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP Address\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Port\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "5697fae3-8fed-45cd-82e1-ba6f86a99bd3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "890ddd12-deb4-4608-890c-f0290dea3566", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:38.098Z", + "version": "WzUzMSwxXQ==", + "attributes": { + "visState": "{\"title\":\"RDP - Cookie\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_rdp.cookie\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Cookie\"}}],\"listeners\":{}}", + "description": "", + "title": "RDP - Cookie", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5697fae3-8fed-45cd-82e1-ba6f86a99bd3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "874675b5-bc49-4a3a-8d6e-a7efd713919e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:15:23.729Z", + "version": "WzI2NjYsMV0=", + "attributes": { + "title": "RDP - Result", + "visState": "{\"title\":\"RDP - Result\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_rdp.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Result\"},\"schema\":\"segment\"}],\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Result\",\"aggType\":\"terms\"}]}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "5697fae3-8fed-45cd-82e1-ba6f86a99bd3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "088c8f99-a90e-4a1e-b1a4-afd93ff076da", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:15:43.239Z", + "version": "WzI2ODAsMV0=", + "attributes": { + "title": "RDP - Keyboard Layout", + "visState": "{\"title\":\"RDP - Keyboard Layout\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_rdp.keyboard_layout\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Keyboard Layout\"},\"schema\":\"segment\"}],\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "5697fae3-8fed-45cd-82e1-ba6f86a99bd3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b4d98d1f-dad9-4883-95ff-f8edc0b23b34", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:27:35.109Z", + "version": "WzI4MTcsMV0=", + "attributes": { + "title": "RDP - Client Version", + "visState": "{\"title\":\"RDP - Client Version\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_rdp.client_build\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Client Version\"},\"schema\":\"segment\"}],\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":null,\"y\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Client\",\"aggType\":\"terms\"}]}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "5697fae3-8fed-45cd-82e1-ba6f86a99bd3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHCvBexQT5EBNmq4aK", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:38.098Z", + "version": "WzUzNSwxXQ==", + "attributes": { + "title": "RDP - Log Count", + "visState": "{\"title\":\"RDP - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5697fae3-8fed-45cd-82e1-ba6f86a99bd3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "93df26c0-4dc6-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:25:27.738Z", + "version": "WzI3OTMsMV0=", + "attributes": { + "title": "RDP - Encryption", + "visState": "{\"title\":\"RDP - Encryption\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_rdp.encryption_level\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Encryption Type\"},\"schema\":\"segment\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_rdp.encryption_method\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Encryption Method\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Encryption Level\",\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Encryption Method\",\"aggType\":\"terms\"}]}}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "5697fae3-8fed-45cd-82e1-ba6f86a99bd3" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5697fae3-8fed-45cd-82e1-ba6f86a99bd3", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:38.098Z", + "version": "WzUzNywxXQ==", + "attributes": { + "title": "RDP - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_rdp.client_build", + "zeek_rdp.keyboard_layout", + "zeek_rdp.security_protocol", + "zeek_rdp.encryption_method", + "zeek_rdp.result", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:rdp\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb.json b/Vagrant/resources/malcolm/kibana/dashboards/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb.json new file mode 100644 index 0000000..e6ab8e3 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb.json @@ -0,0 +1,744 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:36:07.545Z", + "version": "WzM0NjUsMV0=", + "attributes": { + "title": "SSL", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":27,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":63,\"w\":30,\"h\":20,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}},\"table\":null},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":37,\"y\":8,\"w\":11,\"h\":19,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":101,\"w\":13,\"h\":18,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":27,\"y\":101,\"w\":9,\"h\":18,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":13,\"y\":101,\"w\":14,\"h\":18,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":19,\"y\":45,\"w\":29,\"h\":18,\"i\":\"12\"},\"panelIndex\":\"12\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":8,\"w\":16,\"h\":19,\"i\":\"14\"},\"panelIndex\":\"14\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":45,\"w\":19,\"h\":18,\"i\":\"19\"},\"panelIndex\":\"19\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"20\"},\"panelIndex\":\"20\",\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"panelRefName\":\"panel_10\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":12,\"y\":27,\"w\":36,\"h\":18,\"i\":\"21\"},\"panelIndex\":\"21\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_11\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":83,\"w\":24,\"h\":18,\"i\":\"22\"},\"panelIndex\":\"22\",\"embeddableConfig\":{},\"panelRefName\":\"panel_12\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":24,\"y\":83,\"w\":24,\"h\":18,\"i\":\"23\"},\"panelIndex\":\"23\",\"embeddableConfig\":{},\"panelRefName\":\"panel_13\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":24,\"y\":8,\"w\":13,\"h\":19,\"i\":\"e57b69c8-34a0-4b5a-9146-f81034ce74fe\"},\"panelIndex\":\"e57b69c8-34a0-4b5a-9146-f81034ce74fe\",\"embeddableConfig\":{},\"panelRefName\":\"panel_14\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":27,\"w\":12,\"h\":18,\"i\":\"078aaedd-22fb-4a22-ad5b-b81403587fde\"},\"panelIndex\":\"078aaedd-22fb-4a22-ad5b-b81403587fde\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_15\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":30,\"y\":63,\"w\":18,\"h\":20,\"i\":\"c151c3a5-c079-4d3b-8a31-da338b974e44\"},\"panelIndex\":\"c151c3a5-c079-4d3b-8a31-da338b974e44\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_16\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":36,\"y\":101,\"w\":12,\"h\":18,\"i\":\"cd6004c4-d604-4503-a4a2-d1c38e852279\"},\"panelIndex\":\"cd6004c4-d604-4503-a4a2-d1c38e852279\",\"embeddableConfig\":{},\"panelRefName\":\"panel_17\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":119,\"w\":48,\"h\":43,\"i\":\"bbcebabc-0baf-4b15-ad17-fc7633b9b8b8\"},\"panelIndex\":\"bbcebabc-0baf-4b15-ad17-fc7633b9b8b8\",\"embeddableConfig\":{},\"panelRefName\":\"panel_18\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "dc0b1b11-52da-4cc0-bddf-db127bd6cfee" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "d988522e-b3a8-4d74-98d4-96aff3e0f3f9" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "20fa1fd0-f204-499d-996f-e41e1ee3d40f" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "df8bd09c-064c-45b3-8d54-9797ccb58d74" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "f81fe18d-c2ff-4757-9de3-8b943a759169" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "b50ee1a8-d83d-46bf-9ba2-419d089d4797" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "8486949c-3592-4831-9020-59bfd968ccfa" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "d7a673bc-4a11-423b-acd3-a446425551c1" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "f821c7fe-0dd3-4c3c-b5df-77b926f4007a" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "AWDHElRWxQT5EBNmq4lz" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "1567ea7f-8d0e-470b-adbf-f605dd68bdce" + }, + { + "name": "panel_12", + "type": "visualization", + "id": "371b06d0-72a1-11e9-b0f3-590266f42743" + }, + { + "name": "panel_13", + "type": "visualization", + "id": "bdda87a0-72a0-11e9-b0f3-590266f42743" + }, + { + "name": "panel_14", + "type": "visualization", + "id": "fa696510-4e9b-11ea-b504-97aa449f6abc" + }, + { + "name": "panel_15", + "type": "visualization", + "id": "41325860-4dd6-11ea-8336-d3388483188b" + }, + { + "name": "panel_16", + "type": "visualization", + "id": "9c20d940-4dd6-11ea-8336-d3388483188b" + }, + { + "name": "panel_17", + "type": "visualization", + "id": "f13ba720-4dd6-11ea-8336-d3388483188b" + }, + { + "name": "panel_18", + "type": "search", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "dc0b1b11-52da-4cc0-bddf-db127bd6cfee", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU0MCwxXQ==", + "attributes": { + "visState": "{\"title\":\"SSL - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "SSL - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d988522e-b3a8-4d74-98d4-96aff3e0f3f9", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU0MSwxXQ==", + "attributes": { + "visState": "{\"title\":\"SSL - Certificate Subject\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssl.subject_full\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Subject\"}}],\"listeners\":{}}", + "description": "", + "title": "SSL - Certificate Subject", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "20fa1fd0-f204-499d-996f-e41e1ee3d40f", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU0MiwxXQ==", + "attributes": { + "title": "SSL - Version", + "visState": "{\"title\":\"SSL - Version\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":false,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek_ssl.ssl_version: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_ssl.ssl_version\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "df8bd09c-064c-45b3-8d54-9797ccb58d74", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU0MywxXQ==", + "attributes": { + "visState": "{\"title\":\"SSL - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SSL - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f81fe18d-c2ff-4757-9de3-8b943a759169", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU0NCwxXQ==", + "attributes": { + "visState": "{\"title\":\"SSL - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Port\"}}],\"listeners\":{}}", + "description": "", + "title": "SSL - Destination Port", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b50ee1a8-d83d-46bf-9ba2-419d089d4797", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU0NSwxXQ==", + "attributes": { + "visState": "{\"title\":\"SSL - Destination Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SSL - Destination Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8486949c-3592-4831-9020-59bfd968ccfa", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU0NiwxXQ==", + "attributes": { + "title": "SSL - Server", + "visState": "{\"title\":\"SSL - Server\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Server\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"number\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Randomness Score (method 1)\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssl.server_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Server\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.freq_score_v1\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":25,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Randomness Score (method 1)\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.freq_score_v2\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":25,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Randomness Score (method 2)\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d7a673bc-4a11-423b-acd3-a446425551c1", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU0NywxXQ==", + "attributes": { + "title": "SSL - Destination Country", + "visState": "{\"title\":\"SSL - Destination Country\",\"type\":\"histogram\",\"params\":{\"addLegend\":false,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"zeek.destination_geo.country_name: Descending\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"legendPosition\":\"right\",\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"showCircles\":true,\"times\":[],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"type\":\"histogram\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.destination_geo.country_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f821c7fe-0dd3-4c3c-b5df-77b926f4007a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU0OCwxXQ==", + "attributes": { + "visState": "{\"title\":\"SSL - Validation Status\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssl.validation_status\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Validation Status\"}}],\"listeners\":{}}", + "description": "", + "title": "SSL - Validation Status", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHElRWxQT5EBNmq4lz", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU0OSwxXQ==", + "attributes": { + "title": "SSL - Log Count", + "visState": "{\"title\":\"SSL - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "1567ea7f-8d0e-470b-adbf-f605dd68bdce", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU1MCwxXQ==", + "attributes": { + "title": "SSL - Summary", + "visState": "{\"title\":\"SSL - Summary\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssl.server_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Server Name\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssl.subject.CN\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Common Name\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssl.validation_status\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Validation Status\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssl.ssl_version\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"TLS Version\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "371b06d0-72a1-11e9-b0f3-590266f42743", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU1MSwxXQ==", + "attributes": { + "title": "SSL - Client JA3 Lookup", + "visState": "{\"title\":\"SSL - Client JA3 Lookup\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssl.ja3_desc\",\"size\":500,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Client JA3 Lookup\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "bdda87a0-72a0-11e9-b0f3-590266f42743", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU1MiwxXQ==", + "attributes": { + "title": "SSL - Server JA3 Lookup", + "visState": "{\"title\":\"SSL - Server JA3 Lookup\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssl.ja3s_desc\",\"size\":500,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Server JA3 Lookup\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "fa696510-4e9b-11ea-b504-97aa449f6abc", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU1MywxXQ==", + "attributes": { + "title": "SSL - Relevant Notices", + "visState": "{\"title\":\"SSL - Relevant Notices\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":4,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Notice Category\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Notice Subcategory\",\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Source IP\",\"aggType\":\"terms\"},{\"accessor\":3,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"1\"}},\"params\":{},\"label\":\"Destination IP\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Notice Category\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.sub_category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Notice Subcategory\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek_notice.category:(SSL OR CVE_2020_0601)\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "41325860-4dd6-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU1NCwxXQ==", + "attributes": { + "title": "SSL - Connection Established", + "visState": "{\"title\":\"SSL - Connection Established\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":false,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Established\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_ssl.established\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Established\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9c20d940-4dd6-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU1NSwxXQ==", + "attributes": { + "title": "SSL - Elliptic Curve", + "visState": "{\"title\":\"SSL - Elliptic Curve\",\"type\":\"horizontal_bar\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Elliptic Curve\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_ssl.curve\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":25,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Elliptic Curve\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f13ba720-4dd6-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU1NiwxXQ==", + "attributes": { + "title": "SSL - Next Protocol", + "visState": "{\"title\":\"SSL - Next Protocol\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":0,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssl.next_protocol\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Next Protocol\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b945a684-0841-4e86-87aa-0f1af6fb6579", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:39.113Z", + "version": "WzU1NywxXQ==", + "attributes": { + "title": "SSL - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_ssl.server_name", + "zeek_ssl.validation_status", + "zeek_ssl.established", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:ssl\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0OCwxXQ==", + "attributes": { + "title": "Notices - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_notice.category", + "zeek_notice.sub_category", + "zeek_notice.msg", + "srcIp", + "dstIp", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:notice\",\"default_field\":\"*\"}}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/82da3101-2a9c-4ae2-bb61-d447a3fbe673.json b/Vagrant/resources/malcolm/kibana/dashboards/82da3101-2a9c-4ae2-bb61-d447a3fbe673.json new file mode 100644 index 0000000..e5d1351 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/82da3101-2a9c-4ae2-bb61-d447a3fbe673.json @@ -0,0 +1,527 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "82da3101-2a9c-4ae2-bb61-d447a3fbe673", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T15:46:19.291Z", + "version": "WzIxMjUsMV0=", + "attributes": { + "title": "Kerberos", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":27,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":10,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":27,\"w\":19,\"h\":20,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":36,\"y\":10,\"w\":12,\"h\":17,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":19,\"y\":27,\"w\":19,\"h\":20,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":10,\"w\":15,\"h\":17,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":47,\"w\":24,\"h\":20,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":24,\"y\":47,\"w\":24,\"h\":20,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":null}}}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":67,\"w\":28,\"h\":25,\"i\":\"13\"},\"panelIndex\":\"13\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":10,\"i\":\"16\"},\"panelIndex\":\"16\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":23,\"y\":10,\"w\":13,\"h\":17,\"i\":\"7d02cf7a-cad4-4b2c-822d-a255de92ce23\"},\"panelIndex\":\"7d02cf7a-cad4-4b2c-822d-a255de92ce23\",\"embeddableConfig\":{},\"panelRefName\":\"panel_10\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":38,\"y\":27,\"w\":10,\"h\":20,\"i\":\"defd333f-2642-4357-822f-9fa6f09a9356\"},\"panelIndex\":\"defd333f-2642-4357-822f-9fa6f09a9356\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":true}},\"panelRefName\":\"panel_11\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":28,\"y\":67,\"w\":20,\"h\":25,\"i\":\"6f759830-50a0-41d2-a383-b8e307be3ba3\"},\"panelIndex\":\"6f759830-50a0-41d2-a383-b8e307be3ba3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_12\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":92,\"w\":48,\"h\":30,\"i\":\"f0a6a77c-c3fe-48e1-aa26-870211f54ecf\"},\"panelIndex\":\"f0a6a77c-c3fe-48e1-aa26-870211f54ecf\",\"embeddableConfig\":{},\"panelRefName\":\"panel_13\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "aaf2aff1-0941-4df3-9668-329601e90ea3" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "5a8ab6ad-ea8c-4d52-935e-82fbd2445ec3" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "0319fd42-76c4-4894-b7d8-2540537705ff" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "334efe47-3d71-4995-8f73-8945969c6879" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "8fdb77a7-748c-47a6-a1f9-31c4583f354d" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "62d29d31-59dd-4339-9793-5df6bd4cde91" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "2805b0f5-d7cf-4cbc-8ffe-d6b087fadb82" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "626b7405-7acb-4b43-a0de-44e1d92c7fbf" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "AWDG_UbkxQT5EBNmq4Lg" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "2bf924c0-4dbc-11ea-8336-d3388483188b" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "c8180830-4dbc-11ea-8336-d3388483188b" + }, + { + "name": "panel_12", + "type": "visualization", + "id": "51e6a850-4dbd-11ea-8336-d3388483188b" + }, + { + "name": "panel_13", + "type": "search", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "aaf2aff1-0941-4df3-9668-329601e90ea3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:40.130Z", + "version": "WzU2MSwxXQ==", + "attributes": { + "visState": "{\"title\":\"Kerberos - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "Kerberos - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5a8ab6ad-ea8c-4d52-935e-82fbd2445ec3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:40.130Z", + "version": "WzU2MiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Kerberos - Client\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_kerberos.cname\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Client\"}}],\"listeners\":{}}", + "description": "", + "title": "Kerberos - Client", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0319fd42-76c4-4894-b7d8-2540537705ff", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T15:45:19.371Z", + "version": "WzIxMDUsMV0=", + "attributes": { + "title": "Kerberos - Success Status", + "visState": "{\"title\":\"Kerberos - Success Status\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_kerberos.success\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek_kerberos.success: Descending\",\"aggType\":\"terms\"}]}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "334efe47-3d71-4995-8f73-8945969c6879", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:40.130Z", + "version": "WzU2NCwxXQ==", + "attributes": { + "visState": "{\"title\":\"Kerberos - Server\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_kerberos.sname\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Server\"}}],\"listeners\":{}}", + "description": "", + "title": "Kerberos - Server", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8fdb77a7-748c-47a6-a1f9-31c4583f354d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T15:44:20.999Z", + "version": "WzIwNjMsMV0=", + "attributes": { + "title": "Kerberos - Cipher", + "visState": "{\"title\":\"Kerberos - Cipher\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_kerberos.cipher\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "62d29d31-59dd-4339-9793-5df6bd4cde91", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:40.130Z", + "version": "WzU2NiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Kerberos - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Kerberos - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2805b0f5-d7cf-4cbc-8ffe-d6b087fadb82", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:40.130Z", + "version": "WzU2NywxXQ==", + "attributes": { + "visState": "{\"title\":\"Kerberos - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Kerberos - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "626b7405-7acb-4b43-a0de-44e1d92c7fbf", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:40.130Z", + "version": "WzU2OCwxXQ==", + "attributes": { + "title": "Kerberos - Service", + "visState": "{\"title\":\"Kerberos - Service\",\"type\":\"table\",\"params\":{\"perPage\":15,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Service\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_kerberos.sname\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Service\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDG_UbkxQT5EBNmq4Lg", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:40.130Z", + "version": "WzU2OSwxXQ==", + "attributes": { + "title": "Kerberos - Log Count", + "visState": "{\"title\":\"Kerberos - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2bf924c0-4dbc-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T15:44:54.282Z", + "version": "WzIwODksMV0=", + "attributes": { + "title": "Kerberos - Request Types", + "visState": "{\"title\":\"Kerberos - Request Types\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_kerberos.request_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Request Type\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Request Type\",\"aggType\":\"terms\"}]}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c8180830-4dbc-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T15:43:51.907Z", + "version": "WzIwNDUsMV0=", + "attributes": { + "title": "Kerberos - Renewable Ticket Requested", + "visState": "{\"title\":\"Kerberos - Renewable Ticket Requested\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_kerberos.renewable\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Renewable ticket requested\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Renewable ticket requested\",\"aggType\":\"terms\"}]}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "51e6a850-4dbd-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:40.130Z", + "version": "WzU3MiwxXQ==", + "attributes": { + "title": "Kerberos - Destination Ports", + "visState": "{\"title\":\"Kerberos - Destination Ports\",\"type\":\"horizontal_bar\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"log\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"number\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Destination Port\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "e1bfade1-72ee-4093-9257-5d1921c71041" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "e1bfade1-72ee-4093-9257-5d1921c71041", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:40.130Z", + "version": "WzU3MywxXQ==", + "attributes": { + "title": "Kerberos - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_kerberos.request_type", + "zeek_kerberos.success", + "zeek_kerberos.error_msg", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:kerberos\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/870a5862-6c26-4a08-99fd-0c06cda85ba3.json b/Vagrant/resources/malcolm/kibana/dashboards/870a5862-6c26-4a08-99fd-0c06cda85ba3.json new file mode 100644 index 0000000..3c9f740 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/870a5862-6c26-4a08-99fd-0c06cda85ba3.json @@ -0,0 +1,515 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "870a5862-6c26-4a08-99fd-0c06cda85ba3", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU3NCwxXQ==", + "attributes": { + "title": "DNP3", + "hits": 0, + "description": "Dashboard for the DNP3 Protocol", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"h\":37,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"7\",\"w\":13,\"x\":0,\"y\":37},\"panelIndex\":\"7\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"8\",\"w\":11,\"x\":13,\"y\":37},\"panelIndex\":\"8\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"13\",\"w\":11,\"x\":8,\"y\":18},\"panelIndex\":\"13\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"14\",\"w\":10,\"x\":19,\"y\":18},\"panelIndex\":\"14\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":18,\"i\":\"0d2c1a60-2ee6-46a5-8c6f-e5a95a1f5850\",\"w\":10,\"x\":8,\"y\":0},\"panelIndex\":\"0d2c1a60-2ee6-46a5-8c6f-e5a95a1f5850\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":18,\"i\":\"6f17ed53-0ae8-4260-acd7-92115f40037c\",\"w\":30,\"x\":18,\"y\":0},\"panelIndex\":\"6f17ed53-0ae8-4260-acd7-92115f40037c\",\"embeddableConfig\":{\"legendOpen\":false,\"vis\":{\"legendOpen\":true}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"dc74966e-dd3d-4277-a4c0-92a2b21d1214\",\"w\":19,\"x\":29,\"y\":18},\"panelIndex\":\"dc74966e-dd3d-4277-a4c0-92a2b21d1214\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":37,\"i\":\"0242ac86-f482-429a-bc77-89eb89eb7996\",\"w\":24,\"x\":24,\"y\":37},\"panelIndex\":\"0242ac86-f482-429a-bc77-89eb89eb7996\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}},\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"asc\"}}},\"panelRefName\":\"panel_8\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":18,\"i\":\"9fddb0ae-d93f-4ecb-8625-ccd87a92e175\",\"w\":24,\"x\":0,\"y\":56},\"panelIndex\":\"9fddb0ae-d93f-4ecb-8625-ccd87a92e175\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":6,\"direction\":\"desc\"}}},\"params\":{\"sort\":{\"columnIndex\":6,\"direction\":\"asc\"}}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":23,\"i\":\"20bab908-6058-4f9a-819b-de9011dd65b0\",\"w\":48,\"x\":0,\"y\":74},\"panelIndex\":\"20bab908-6058-4f9a-819b-de9011dd65b0\",\"embeddableConfig\":{},\"panelRefName\":\"panel_10\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":20,\"i\":\"f4c2ba58-794b-4b5a-b65e-3cb6a924f199\",\"w\":48,\"x\":0,\"y\":97},\"panelIndex\":\"f4c2ba58-794b-4b5a-b65e-3cb6a924f199\",\"embeddableConfig\":{},\"panelRefName\":\"panel_11\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":18,\"i\":\"842b0a10-1906-4b1f-9da3-f6b271a85dcb\",\"w\":48,\"x\":0,\"y\":117},\"panelIndex\":\"842b0a10-1906-4b1f-9da3-f6b271a85dcb\",\"embeddableConfig\":{},\"panelRefName\":\"panel_12\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "d34dd3b3-3861-4b9b-ba39-4ca7e15b3bdd" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "131198e7-afc4-40be-bedd-2a3a3a2d511e" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "46cd2e4c-ecfb-4fe9-ae51-28c2fecbffc0" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "9422ff81-b007-4eef-aca1-1af16509ab8c" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "34700240-cb66-11ea-b8b9-778c41cae039" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "4f7c9990-cb66-11ea-b8b9-778c41cae039" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "9277d050-e33c-11ea-b05f-2302f75ab2c8" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "fd7d74c0-e339-11ea-b05f-2302f75ab2c8" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "63cebc10-e33b-11ea-b05f-2302f75ab2c8" + }, + { + "name": "panel_10", + "type": "search", + "id": "cc135a63-3e30-4703-bc31-f7ac09c1d21a" + }, + { + "name": "panel_11", + "type": "search", + "id": "980f33d0-cb65-11ea-b8b9-778c41cae039" + }, + { + "name": "panel_12", + "type": "search", + "id": "cf32a680-cb65-11ea-b8b9-778c41cae039" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d34dd3b3-3861-4b9b-ba39-4ca7e15b3bdd", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU3NiwxXQ==", + "attributes": { + "title": "DNP3 - Source IP", + "visState": "{\"title\":\"DNP3 - Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"IP Address\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "Source IP Addresses from dnp3.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "cc135a63-3e30-4703-bc31-f7ac09c1d21a" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "131198e7-afc4-40be-bedd-2a3a3a2d511e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU3NywxXQ==", + "attributes": { + "title": "DNP3 - Destination IP", + "visState": "{\"title\":\"DNP3 - Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Port\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "Destination IP Addresses from dnp3.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "cc135a63-3e30-4703-bc31-f7ac09c1d21a" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "46cd2e4c-ecfb-4fe9-ae51-28c2fecbffc0", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU3OCwxXQ==", + "attributes": { + "title": "DNP3 - Function Request", + "visState": "{\"title\":\"DNP3 - Function Request\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dnp3.fc_request\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Request\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "DNP3 function in request packet from dnp3.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "cc135a63-3e30-4703-bc31-f7ac09c1d21a" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9422ff81-b007-4eef-aca1-1af16509ab8c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU3OSwxXQ==", + "attributes": { + "title": "DNP3 - Function Reply", + "visState": "{\"title\":\"DNP3 - Function Reply\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dnp3.fc_reply\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Reply\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "DNP3 function in reply packet from dnp3.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "cc135a63-3e30-4703-bc31-f7ac09c1d21a" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "34700240-cb66-11ea-b8b9-778c41cae039", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU4MCwxXQ==", + "attributes": { + "title": "DNP3 - Log Count", + "visState": "{\"title\":\"DNP3 - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Log Count\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{}", + "description": "Count of DNP3 logs including DNP3 Control and Objects logs", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:*dnp3*\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4f7c9990-cb66-11ea-b8b9-778c41cae039", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU4MSwxXQ==", + "attributes": { + "title": "DNP3 - Logs Over Time", + "visState": "{\"title\":\"DNP3 - Logs Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"YYYY\"}},\"params\":{\"date\":true,\"interval\":\"P365D\",\"intervalESValue\":365,\"intervalESUnit\":\"d\",\"format\":\"YYYY\",\"bounds\":{\"min\":\"1971-01-14T16:42:16.432Z\",\"max\":\"2021-01-14T16:42:16.432Z\"}},\"label\":\"firstPacket per 365 days\",\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Log Type\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-50y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "DNP3 logs over time", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:*dnp3*\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9277d050-e33c-11ea-b05f-2302f75ab2c8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU4MiwxXQ==", + "attributes": { + "title": "DNP3 - Internal Indicators Overview", + "visState": "{\"title\":\"DNP3 - Internal Indicators Overview\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Internal Indicators\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_dnp3.iin_flags\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Internal Indicators\"}}]}", + "uiStateJSON": "{}", + "description": "DNP3 Internal Indicators from dnp3.iin in dnp3.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "cc135a63-3e30-4703-bc31-f7ac09c1d21a" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "fd7d74c0-e339-11ea-b05f-2302f75ab2c8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU4MywxXQ==", + "attributes": { + "title": "DNP3 - Objects Overview", + "visState": "{\"title\":\"DNP3 - Objects Overview\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":3,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":4,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"IP Address\",\"aggType\":\"terms\"}]},\"row\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dnp3_objects.object_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Object Type\"}},{\"id\":\"8\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dnp3_objects.object_count\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Object Count\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dnp3_objects.range_low\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"-\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Range Start\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dnp3_objects.range_high\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"-\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Range End\"}},{\"id\":\"7\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"split\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP Address\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":null}}}}", + "description": "Overview of DNP3 objects from READ-RESPONSE messages in dnp3_objects.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "cf32a680-cb65-11ea-b8b9-778c41cae039" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "63cebc10-e33b-11ea-b05f-2302f75ab2c8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU4NCwxXQ==", + "attributes": { + "title": "DNP3 - Control Overview", + "visState": "{\"title\":\"DNP3 - Control Overview\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":5,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Control Code\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dnp3_control.index_number\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Index Number\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dnp3_control.function_code\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Function\"}},{\"id\":\"7\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dnp3_control.block_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Block Type\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dnp3_control.operation_type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Operation Type\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_dnp3_control.trip_control_code\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Control Code\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":5,\"direction\":null}}}}", + "description": "Overview of DNP3 control functions from dnp3_control.log", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "980f33d0-cb65-11ea-b8b9-778c41cae039" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "cc135a63-3e30-4703-bc31-f7ac09c1d21a", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU4NSwxXQ==", + "attributes": { + "title": "DNP3 - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_dnp3.fc_request", + "zeek_dnp3.fc_reply", + "zeek_dnp3.iin_flags", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:dnp3\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "980f33d0-cb65-11ea-b8b9-778c41cae039", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU4NiwxXQ==", + "attributes": { + "title": "DNP3 - Control Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_dnp3_control.function_code", + "zeek_dnp3_control.trip_control_code", + "zeek_dnp3_control.operation_type", + "zeek_dnp3_control.status_code" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType==\\\"dnp3_control\\\"\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "cf32a680-cb65-11ea-b8b9-778c41cae039", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:41.140Z", + "version": "WzU4NywxXQ==", + "attributes": { + "title": "DNP3 - Objects Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_dnp3_objects.function_code", + "zeek_dnp3_objects.object_type", + "zeek_dnp3_objects.object_count", + "zeek_dnp3_objects.range_high", + "zeek_dnp3_objects.range_low" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType==\\\"dnp3_objects\\\"\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/87a32f90-ef58-11e9-974e-9d600036d105.json b/Vagrant/resources/malcolm/kibana/dashboards/87a32f90-ef58-11e9-974e-9d600036d105.json new file mode 100644 index 0000000..f81ddc7 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/87a32f90-ef58-11e9-974e-9d600036d105.json @@ -0,0 +1,549 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "87a32f90-ef58-11e9-974e-9d600036d105", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzU4OCwxXQ==", + "attributes": { + "title": "MQTT", + "hits": 0, + "description": "", + "panelsJSON": "[{\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":33,\"i\":\"2\"},\"panelIndex\":\"2\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":14,\"i\":\"3\"},\"panelIndex\":\"3\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":14,\"i\":\"4\"},\"panelIndex\":\"4\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":8,\"y\":14,\"w\":16,\"h\":19,\"i\":\"5\"},\"panelIndex\":\"5\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":24,\"y\":14,\"w\":24,\"h\":19,\"i\":\"6\"},\"panelIndex\":\"6\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":33,\"w\":15,\"h\":20,\"i\":\"7\"},\"panelIndex\":\"7\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":15,\"y\":33,\"w\":17,\"h\":20,\"i\":\"8\"},\"panelIndex\":\"8\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":32,\"y\":33,\"w\":16,\"h\":20,\"i\":\"9\"},\"panelIndex\":\"9\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":53,\"w\":16,\"h\":21,\"i\":\"10\"},\"panelIndex\":\"10\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_8\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"gridData\":{\"x\":16,\"y\":53,\"w\":32,\"h\":21,\"i\":\"11\"},\"panelIndex\":\"11\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_9\"},{\"gridData\":{\"x\":0,\"y\":74,\"w\":48,\"h\":25,\"i\":\"12\"},\"version\":\"7.6.2\",\"panelIndex\":\"12\",\"embeddableConfig\":{},\"panelRefName\":\"panel_10\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "e4180250-ef58-11e9-974e-9d600036d105" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "275fd330-ef59-11e9-974e-9d600036d105" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "74ca3ed0-ef59-11e9-974e-9d600036d105" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "9a437230-ef59-11e9-974e-9d600036d105" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "dea31bb0-ef59-11e9-974e-9d600036d105" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "5c4b61d0-ef5a-11e9-974e-9d600036d105" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "c09dc150-ef5a-11e9-974e-9d600036d105" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "8079a930-ef5b-11e9-974e-9d600036d105" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "da136f80-ef5b-11e9-974e-9d600036d105" + }, + { + "name": "panel_10", + "type": "search", + "id": "76cf2c00-ef58-11e9-974e-9d600036d105" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "e4180250-ef58-11e9-974e-9d600036d105", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzU5MCwxXQ==", + "attributes": { + "title": "MQTT - Log Count", + "visState": "{\"title\":\"MQTT - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"MQTT Message Type\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "76cf2c00-ef58-11e9-974e-9d600036d105" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "275fd330-ef59-11e9-974e-9d600036d105", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzU5MSwxXQ==", + "attributes": { + "title": "MQTT - Log Count Over Time", + "visState": "{\"title\":\"MQTT - Log Count Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-25y\",\"to\":\"now\",\"mode\":\"quick\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"MQTT Message Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "76cf2c00-ef58-11e9-974e-9d600036d105" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "74ca3ed0-ef59-11e9-974e-9d600036d105", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzU5MiwxXQ==", + "attributes": { + "title": "MQTT - Source IP", + "visState": "{\"title\":\"MQTT - Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "76cf2c00-ef58-11e9-974e-9d600036d105" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9a437230-ef59-11e9-974e-9d600036d105", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzU5MywxXQ==", + "attributes": { + "title": "MQTT - Destination IP", + "visState": "{\"title\":\"MQTT - Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "76cf2c00-ef58-11e9-974e-9d600036d105" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "dea31bb0-ef59-11e9-974e-9d600036d105", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzU5NCwxXQ==", + "attributes": { + "title": "MQTT - Protocol", + "visState": "{\"title\":\"MQTT - Protocol\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_mqtt_connect.proto_name\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"MQTT Protocol\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_mqtt_connect.proto_version\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Protocol Version\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5b0af9f0-ef57-11e9-974e-9d600036d105" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5c4b61d0-ef5a-11e9-974e-9d600036d105", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzU5NSwxXQ==", + "attributes": { + "title": "MQTT - Client ID", + "visState": "{\"title\":\"MQTT - Client ID\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mqtt_connect.client_id\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Client ID\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "5b0af9f0-ef57-11e9-974e-9d600036d105" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c09dc150-ef5a-11e9-974e-9d600036d105", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzU5NiwxXQ==", + "attributes": { + "title": "MQTT - Subscription", + "visState": "{\"title\":\"MQTT - Subscription\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mqtt_subscribe.topics\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Topic\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mqtt_subscribe.action\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Action\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0df7e0a0-ef58-11e9-974e-9d600036d105" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8079a930-ef5b-11e9-974e-9d600036d105", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzU5NywxXQ==", + "attributes": { + "title": "MQTT - Publish", + "visState": "{\"title\":\"MQTT - Publish\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mqtt_publish.topic\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Topic\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mqtt_publish.from_client\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"From Client\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mqtt_publish.status\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Status\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "af5d47b0-ef57-11e9-974e-9d600036d105" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "da136f80-ef5b-11e9-974e-9d600036d105", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzU5OCwxXQ==", + "attributes": { + "title": "MQTT - Publish Payload", + "visState": "{\"title\":\"MQTT - Publish Payload\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mqtt_publish.topic\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Topic\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mqtt_publish.from_client\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"From Client\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mqtt_publish.payload_len\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Length\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mqtt_publish.payload\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Payload\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_mqtt_publish.status\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Status\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":5,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "af5d47b0-ef57-11e9-974e-9d600036d105" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "76cf2c00-ef58-11e9-974e-9d600036d105", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzU5OSwxXQ==", + "attributes": { + "title": "MQTT - All Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek.logType", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:(\\\"mqtt_connect\\\" OR \\\"mqtt_publish\\\" OR \\\"mqtt_subscribe\\\")\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "5b0af9f0-ef57-11e9-974e-9d600036d105", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzYwMCwxXQ==", + "attributes": { + "title": "MQTT - Connect Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "zeek_mqtt_connect.client_id", + "dstIp", + "dstPort", + "zeek_mqtt_connect.proto_name", + "zeek_mqtt_connect.connect_status", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:\\\"mqtt_connect\\\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "0df7e0a0-ef58-11e9-974e-9d600036d105", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzYwMSwxXQ==", + "attributes": { + "title": "MQTT - Subscribe Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_mqtt_subscribe.action", + "zeek_mqtt_subscribe.topics", + "zeek_mqtt_subscribe.ack", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:\\\"mqtt_subscribe\\\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "af5d47b0-ef57-11e9-974e-9d600036d105", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:42.154Z", + "version": "WzYwMiwxXQ==", + "attributes": { + "title": "MQTT - Publish Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_mqtt_publish.from_client", + "zeek_mqtt_publish.topic", + "zeek_mqtt_publish.status", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"zeek.logType:\\\"mqtt_publish\\\"\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85.json b/Vagrant/resources/malcolm/kibana/dashboards/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85.json new file mode 100644 index 0000000..2d0dcd8 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85.json @@ -0,0 +1,209 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "87d990cc-9e0b-41e5-b8fe-b10ae1da0c85", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:43.189Z", + "version": "WzYwMywxXQ==", + "attributes": { + "title": "Software", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":44,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":8,\"w\":40,\"h\":36,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":44,\"w\":48,\"h\":36,\"i\":\"f99c68bd-2da6-41d5-bbd1-45f85e79526c\"},\"panelIndex\":\"f99c68bd-2da6-41d5-bbd1-45f85e79526c\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "097640cc-167e-453d-bf5a-0e92ac1347fc" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "AWDHEKJUxQT5EBNmq4jW" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "bb882862-2f74-440a-bb62-41a9dca2b463" + }, + { + "name": "panel_4", + "type": "search", + "id": "7d54b196-5c2b-485e-9798-f116fb668413" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "097640cc-167e-453d-bf5a-0e92ac1347fc", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:43.189Z", + "version": "WzYwNSwxXQ==", + "attributes": { + "visState": "{\"title\":\"Software - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "Software - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "7d54b196-5c2b-485e-9798-f116fb668413" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHEKJUxQT5EBNmq4jW", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:43.189Z", + "version": "WzYwNiwxXQ==", + "attributes": { + "title": "Software - Log Count", + "visState": "{\"title\":\"Software - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "7d54b196-5c2b-485e-9798-f116fb668413" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "bb882862-2f74-440a-bb62-41a9dca2b463", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:43.189Z", + "version": "WzYwNywxXQ==", + "attributes": { + "visState": "{\"title\":\"Software - Summary\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_software.software_type\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Type\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_software.name\",\"otherBucket\":false,\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Name\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_software.version_major\",\"otherBucket\":false,\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Major Version\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_software.version_minor\",\"otherBucket\":false,\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Minor Version\"}}],\"listeners\":{}}", + "description": "", + "title": "Software - Summary", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "7d54b196-5c2b-485e-9798-f116fb668413" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7d54b196-5c2b-485e-9798-f116fb668413", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:43.189Z", + "version": "WzYwOCwxXQ==", + "attributes": { + "title": "Software - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "zeek_software.software_type", + "zeek_software.name", + "zeek_software.unparsed_version" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:software\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/92985909-dc29-4533-9e80-d3182a0ecf1d.json b/Vagrant/resources/malcolm/kibana/dashboards/92985909-dc29-4533-9e80-d3182a0ecf1d.json new file mode 100644 index 0000000..d4be485 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/92985909-dc29-4533-9e80-d3182a0ecf1d.json @@ -0,0 +1,387 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "92985909-dc29-4533-9e80-d3182a0ecf1d", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:46:32.487Z", + "version": "WzM1OTUsMV0=", + "attributes": { + "title": "Syslog", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":29,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":13,\"y\":29,\"w\":13,\"h\":18,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":26,\"y\":29,\"w\":13,\"h\":18,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":39,\"y\":29,\"w\":9,\"h\":18,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}},\"table\":null},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":8,\"w\":13,\"h\":21,\"i\":\"d1325585-cce1-46f1-acfd-59d64a8be83a\"},\"panelIndex\":\"d1325585-cce1-46f1-acfd-59d64a8be83a\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":21,\"y\":8,\"w\":27,\"h\":21,\"i\":\"2abd9c38-fd1e-44fa-b391-ead499a92787\"},\"panelIndex\":\"2abd9c38-fd1e-44fa-b391-ead499a92787\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":29,\"w\":13,\"h\":18,\"i\":\"13e3b050-3d67-4745-a182-b462852a67ef\"},\"panelIndex\":\"13e3b050-3d67-4745-a182-b462852a67ef\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":47,\"w\":48,\"h\":44,\"i\":\"59631e23-e452-40a9-a9dd-7d432278d35f\"},\"panelIndex\":\"59631e23-e452-40a9-a9dd-7d432278d35f\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "cf553dfa-f641-47cf-916d-041cf46a80c4" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "46cba2ad-03cd-4eef-8e3a-c35ac3ac1b76" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "f54d6418-1499-4a14-9a8e-f706249b9962" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "6a006054-309e-447f-9371-99f119d18291" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "AWDHE-_wxQT5EBNmq4n3" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "eb455420-4dda-11ea-8336-d3388483188b" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "343952d0-4ddb-11ea-8336-d3388483188b" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "19044160-4dda-11ea-8336-d3388483188b" + }, + { + "name": "panel_9", + "type": "search", + "id": "7d7fd24e-51be-4040-83b3-a6630e989e2d" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "cf553dfa-f641-47cf-916d-041cf46a80c4", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:44.215Z", + "version": "WzYxMSwxXQ==", + "attributes": { + "visState": "{\"title\":\"Syslog - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 30 seconds\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "Syslog - Log Count Over Time", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "7d7fd24e-51be-4040-83b3-a6630e989e2d" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "46cba2ad-03cd-4eef-8e3a-c35ac3ac1b76", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:44.215Z", + "version": "WzYxMiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Syslog - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Syslog - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "7d7fd24e-51be-4040-83b3-a6630e989e2d" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f54d6418-1499-4a14-9a8e-f706249b9962", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:44.215Z", + "version": "WzYxMywxXQ==", + "attributes": { + "visState": "{\"title\":\"Syslog - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Syslog - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "7d7fd24e-51be-4040-83b3-a6630e989e2d" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6a006054-309e-447f-9371-99f119d18291", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:44.215Z", + "version": "WzYxNCwxXQ==", + "attributes": { + "title": "Syslog - Destination Port", + "visState": "{\"title\":\"Syslog - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"number\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Port\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "7d7fd24e-51be-4040-83b3-a6630e989e2d" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHE-_wxQT5EBNmq4n3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:44.215Z", + "version": "WzYxNSwxXQ==", + "attributes": { + "title": "Syslog - Log Count", + "visState": "{\"title\":\"Syslog - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "7d7fd24e-51be-4040-83b3-a6630e989e2d" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "eb455420-4dda-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:44.215Z", + "version": "WzYxNiwxXQ==", + "attributes": { + "title": "Syslog - Severity", + "visState": "{\"title\":\"Syslog - Severity\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Severity\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_syslog.severity\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Severity\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "7d7fd24e-51be-4040-83b3-a6630e989e2d" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "343952d0-4ddb-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:43:14.525Z", + "version": "WzM1NTcsMV0=", + "attributes": { + "title": "Syslog - Facility", + "visState": "{\"title\":\"Syslog - Facility\",\"type\":\"horizontal_bar\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_syslog.facility\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Facility\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":null,\"y\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Facility\",\"aggType\":\"terms\"}]}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "7d7fd24e-51be-4040-83b3-a6630e989e2d" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "19044160-4dda-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:44.215Z", + "version": "WzYxOCwxXQ==", + "attributes": { + "title": "Syslog - Protocol", + "visState": "{\"title\":\"Syslog - Protocol\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":false,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"IP Protocol\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.proto\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP Protocol\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "7d7fd24e-51be-4040-83b3-a6630e989e2d" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7d7fd24e-51be-4040-83b3-a6630e989e2d", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:44.215Z", + "version": "WzYxOSwxXQ==", + "attributes": { + "title": "Syslog (Zeek) - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_syslog.severity", + "zeek_syslog.facility", + "zeek_syslog.message", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:syslog\"}}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/95479950-41f2-11ea-88fa-7151df485405.json b/Vagrant/resources/malcolm/kibana/dashboards/95479950-41f2-11ea-88fa-7151df485405.json new file mode 100644 index 0000000..4bedf65 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/95479950-41f2-11ea-88fa-7151df485405.json @@ -0,0 +1,571 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "95479950-41f2-11ea-88fa-7151df485405", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T16:31:39.543Z", + "version": "WzIwMTQsMV0=", + "attributes": { + "title": "Security Overview", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"h\":23,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":23,\"i\":\"320b8bf0-6567-4d0b-b7d1-7402baf830d4\",\"w\":12,\"x\":8,\"y\":0},\"panelIndex\":\"320b8bf0-6567-4d0b-b7d1-7402baf830d4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":23,\"i\":\"8f421b7e-8ea9-4d52-a165-8e2a4fa78fd0\",\"w\":15,\"x\":20,\"y\":0},\"panelIndex\":\"8f421b7e-8ea9-4d52-a165-8e2a4fa78fd0\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":23,\"i\":\"119a8b45-c803-4c71-93b4-a9514803021a\",\"w\":13,\"x\":35,\"y\":0},\"panelIndex\":\"119a8b45-c803-4c71-93b4-a9514803021a\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"1789e54a-db27-4e5e-92d3-2f44b3f9f96e\",\"w\":15,\"x\":0,\"y\":23},\"panelIndex\":\"1789e54a-db27-4e5e-92d3-2f44b3f9f96e\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":38,\"i\":\"9df4498d-9d4d-4613-bc54-8fca34ade25c\",\"w\":15,\"x\":15,\"y\":23},\"panelIndex\":\"9df4498d-9d4d-4613-bc54-8fca34ade25c\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":null},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"4cdbaf8d-bb32-457f-a198-e9734168c5eb\",\"w\":9,\"x\":30,\"y\":23},\"panelIndex\":\"4cdbaf8d-bb32-457f-a198-e9734168c5eb\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"61f158d0-8c28-499f-af09-4df087948d42\",\"w\":9,\"x\":39,\"y\":23},\"panelIndex\":\"61f158d0-8c28-499f-af09-4df087948d42\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":20,\"i\":\"071a1c98-695f-4708-92c9-2c950e515131\",\"w\":15,\"x\":0,\"y\":41},\"panelIndex\":\"071a1c98-695f-4708-92c9-2c950e515131\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":null}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"asc\"}}}},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":19,\"i\":\"2231b6ad-9e0d-4524-a359-bdc2c8332991\",\"w\":48,\"x\":0,\"y\":61},\"panelIndex\":\"2231b6ad-9e0d-4524-a359-bdc2c8332991\",\"embeddableConfig\":{\"legendOpen\":false,\"vis\":{\"legendOpen\":true}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":30,\"y\":41,\"w\":18,\"h\":20,\"i\":\"6beedf2b-5d72-48af-a90f-f56781764efe\"},\"panelIndex\":\"6beedf2b-5d72-48af-a90f-f56781764efe\",\"embeddableConfig\":{},\"panelRefName\":\"panel_10\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "a4f6eba0-41f5-11ea-88fa-7151df485405" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "0e9b1a00-525e-11e9-9bd7-13d6d1bafa75" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "c5b1e590-41f3-11ea-88fa-7151df485405" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "e9f27fa0-41f8-11ea-88fa-7151df485405" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "f7b3ba60-41f7-11ea-88fa-7151df485405" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "0ffb5790-41f3-11ea-88fa-7151df485405" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "4a183420-41f3-11ea-88fa-7151df485405" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "69241a80-421d-11ea-9084-41ab7c5fff2e" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "d8b8a6a0-41fe-11ea-88fa-7151df485405" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "3a582cc0-6fab-11eb-958c-51e33b5cae2a" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:25:07.132Z", + "version": "WzY5MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a4f6eba0-41f5-11ea-88fa-7151df485405", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:42.447Z", + "version": "WzQzOCwxXQ==", + "attributes": { + "title": "Notices by Category", + "visState": "{\"title\":\"Notices by Category\",\"type\":\"table\",\"params\":{\"perPage\":15,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.note\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Notice Category\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0e9b1a00-525e-11e9-9bd7-13d6d1bafa75", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:42.447Z", + "version": "WzQzOSwxXQ==", + "attributes": { + "title": "Signatures - Signature IDs", + "visState": "{\"title\":\"Signatures - Signature IDs\",\"type\":\"horizontal_bar\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":40},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":20},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Signature ID\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_signatures.signature_id\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Signature ID\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "34dd33c0-523f-11e9-a30e-e3576242f3ed" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c5b1e590-41f3-11ea-88fa-7151df485405", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:42.447Z", + "version": "WzQ0MCwxXQ==", + "attributes": { + "title": "Clear-text Transmission of Passwords ", + "visState": "{\"title\":\"Clear-text Transmission of Passwords \",\"type\":\"table\",\"params\":{\"perPage\":15,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Application Protocol\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.user\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Username\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\\\\*password:*\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "e9f27fa0-41f8-11ea-88fa-7151df485405", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:42.447Z", + "version": "WzQ0MSwxXQ==", + "attributes": { + "title": "Outdated/Insecure Application Protocols", + "visState": "{\"title\":\"Outdated/Insecure Application Protocols\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":0,\"direction\":\"asc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Application Protocol\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service_version\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Protocol Version\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":0,\"direction\":\"asc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"(NOT zeek.logType:known*) AND ((zeek.service:ssh AND zeek.service_version < 2) OR (zeek.service:smb AND zeek.service_version < 2) OR (zeek.service:tls AND NOT zeek.service_version:(*TLS*v12* OR *TLS*v13*)) OR (zeek.service:ntp AND zeek.service_version < 4) OR (zeek.service:rfb AND zeek.service_version < 3.8) OR (zeek.service:rdp AND zeek.service_version < 6.0) OR (zeek.service:snmp AND zeek.service_version < 3) OR (zeek.service:ldap AND zeek.service_version < 3) OR (zeek.service:ftp) OR (zeek.service:tftp) OR (zeek.service:telnet) OR (zeek.service:rlogin) OR (zeek.service:rsh))\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f7b3ba60-41f7-11ea-88fa-7151df485405", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:42.447Z", + "version": "WzQ0MiwxXQ==", + "attributes": { + "title": "Connections by Destination Country (region map)", + "visState": "{\"title\":\"Connections by Destination Country (region map)\",\"type\":\"region_map\",\"params\":{\"legendPosition\":\"bottomright\",\"addTooltip\":true,\"colorSchema\":\"Blues\",\"emsHotLink\":\"\",\"isDisplayWarning\":false,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"selectedTmsLayer\":{\"origin\":\"elastic_maps_service\",\"id\":\"road_map\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"

OpenStreetMap contributors | OpenMapTiles | MapTiler | Elastic Maps Service

\"}},\"mapZoom\":2,\"mapCenter\":[0,0],\"outlineWeight\":1,\"showAllShapes\":true,\"selectedLayer\":{\"name\":\"World (offline)\",\"url\":\"/world.geojson\",\"attribution\":\"https://exploratory.io/maps\",\"fields\":[{\"name\":\"ISO_A2\",\"description\":\"Country Code\"},{\"name\":\"WB_A2\",\"description\":\"Country Code2\"},{\"name\":\"NAME\",\"description\":\"Country Name\"}],\"format\":{\"type\":\"geojson\"},\"meta\":{\"feature_collection_path\":\"data\"},\"layerId\":\"self_hosted.World (offline)\",\"isEMS\":false},\"selectedJoinField\":{\"name\":\"WB_A2\",\"description\":\"Country Code2\"},\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"},\"bucket\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Connections\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.destination_geo.country_code2\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Country\"}}]}", + "uiStateJSON": "{\"mapZoom\":3,\"mapCenter\":[37.16031654673677,-5.7511603125000015]}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0ffb5790-41f3-11ea-88fa-7151df485405", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:42.447Z", + "version": "WzQ0MywxXQ==", + "attributes": { + "title": "Inbound External Traffic by Country", + "visState": "{\"title\":\"Inbound External Traffic by Country\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.source_geo.country_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Originating Country\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"tags:external_source AND tags:internal_destination\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4a183420-41f3-11ea-88fa-7151df485405", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:42.447Z", + "version": "WzQ0NCwxXQ==", + "attributes": { + "title": "Outbound Internal Traffic by Country", + "visState": "{\"title\":\"Outbound Internal Traffic by Country\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.destination_geo.country_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":200,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Responding Country\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"tags:internal_source AND tags:external_destination\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "69241a80-421d-11ea-9084-41ab7c5fff2e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:42.447Z", + "version": "WzQ0NSwxXQ==", + "attributes": { + "title": "DNS Queries by Randomness", + "visState": "{\"title\":\"DNS Queries by Randomness\",\"type\":\"table\",\"params\":{\"dimensions\":{\"buckets\":[{\"accessor\":0,\"aggType\":\"terms\",\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"missingBucketLabel\":\"Missing\",\"otherBucketLabel\":\"Other\"}},\"params\":{}},{\"accessor\":1,\"aggType\":\"terms\",\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"number\",\"missingBucketLabel\":\"Missing\",\"otherBucketLabel\":\"Other\"}},\"params\":{}}],\"metrics\":[{\"accessor\":2,\"aggType\":\"count\",\"format\":{\"id\":\"number\"},\"params\":{}}]},\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"},\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dns.host\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"DNS Query\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.freq_score_v1\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Randomness Score (method 1)\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.freq_score_v2\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Randomness Score (method 2)\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d8b8a6a0-41fe-11ea-88fa-7151df485405", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:42.447Z", + "version": "WzQ0NywxXQ==", + "attributes": { + "title": "External Remote Access Over Time", + "visState": "{\"title\":\"External Remote Access Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#34130C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"YYYY-MM-DD\"}},\"params\":{\"date\":true,\"interval\":\"P30D\",\"intervalESValue\":30,\"intervalESUnit\":\"d\",\"format\":\"YYYY-MM-DD\",\"bounds\":{\"min\":\"1976-01-28T18:52:45.953Z\",\"max\":\"2020-01-28T18:52:45.953Z\"}},\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-44y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Protocol\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.service:(ssh OR rdp OR rfb OR telnet OR rlogin OR rsh OR openvpn OR ipsec OR wireguard) AND tags:(external_source OR external_destination)\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3a582cc0-6fab-11eb-958c-51e33b5cae2a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T16:31:17.388Z", + "version": "WzE5ODUsMV0=", + "attributes": { + "title": "File Types Observed", + "visState": "{\"title\":\"File Types Observed\",\"type\":\"tagcloud\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.filetype\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"File Type\"},\"schema\":\"segment\"}],\"params\":{\"scale\":\"log\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":42,\"showLabel\":true}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:25:04.031Z", + "version": "WzY2OCwxXQ==", + "attributes": { + "title": "Notices - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_notice.category", + "zeek_notice.sub_category", + "zeek_notice.msg", + "srcIp", + "dstIp", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:notice\",\"default_field\":\"*\"}}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "34dd33c0-523f-11e9-a30e-e3576242f3ed", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:42.447Z", + "version": "WzQ0OSwxXQ==", + "attributes": { + "title": "Signatures - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_signatures.note", + "zeek_signatures.signature_id", + "zeek_signatures.signature_count", + "zeek.fuid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"zeek.logType:signatures\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:25:05.059Z", + "version": "WzY3NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "0b971165-4c39-42ed-b80d-8a8f5658a38e", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:42.447Z", + "version": "WzQ1MSwxXQ==", + "attributes": { + "title": "DNS - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_dns.query", + "zeek_dns.answers", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:dns\"}}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/9ee51f94-3316-4fc5-bd89-93a52af69714.json b/Vagrant/resources/malcolm/kibana/dashboards/9ee51f94-3316-4fc5-bd89-93a52af69714.json new file mode 100644 index 0000000..50859d9 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/9ee51f94-3316-4fc5-bd89-93a52af69714.json @@ -0,0 +1,386 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "9ee51f94-3316-4fc5-bd89-93a52af69714", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:46.241Z", + "version": "WzYzNiwxXQ==", + "attributes": { + "title": "Files", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":43,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":28,\"y\":24,\"w\":20,\"h\":19,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":32,\"y\":43,\"w\":16,\"h\":20,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":16,\"y\":43,\"w\":16,\"h\":20,\"i\":\"8\"},\"panelIndex\":\"8\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":8,\"w\":40,\"h\":16,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":43,\"w\":16,\"h\":20,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":24,\"w\":20,\"h\":19,\"i\":\"12\"},\"panelIndex\":\"12\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":63,\"w\":48,\"h\":35,\"i\":\"8e4863be-7d69-4354-9eb4-4e30a7c983d6\"},\"panelIndex\":\"8e4863be-7d69-4354-9eb4-4e30a7c983d6\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "aaa4fbb0-d5fe-4ef9-be76-405b977bcd5b" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "66d5d357-edce-450d-b5be-a5a00190e153" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "d3a0ac2e-73cf-462e-8b03-e6ff3b8612b7" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "9ba4473b-66f4-4aea-b19e-4309ec6534b8" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "4474edda-47f0-4b74-b5d2-cbf012368c59" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "b1cb0275-a84e-4ef3-ad40-b2b773be43ff" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "AWDG9goqxQT5EBNmq4BP" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "5a4e8261-d65c-4b36-b3f4-5c272f18990f" + }, + { + "name": "panel_9", + "type": "search", + "id": "0aca5333-3b1c-4cda-afb4-f7dd86910459" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "aaa4fbb0-d5fe-4ef9-be76-405b977bcd5b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:46.241Z", + "version": "WzYzNywxXQ==", + "attributes": { + "visState": "{\"title\":\"Files - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "Files - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0aca5333-3b1c-4cda-afb4-f7dd86910459" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "66d5d357-edce-450d-b5be-a5a00190e153", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:46.241Z", + "version": "WzYzOSwxXQ==", + "attributes": { + "visState": "{\"title\":\"Files - Files By Size (Bytes)\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_files.seen_bytes\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"_term\",\"customLabel\":\"Bytes Seen\"}}],\"listeners\":{}}", + "description": "", + "title": "Files - Files By Size (Bytes)", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0aca5333-3b1c-4cda-afb4-f7dd86910459" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d3a0ac2e-73cf-462e-8b03-e6ff3b8612b7", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:46.241Z", + "version": "WzY0MCwxXQ==", + "attributes": { + "visState": "{\"title\":\"FIles - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "FIles - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0aca5333-3b1c-4cda-afb4-f7dd86910459" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9ba4473b-66f4-4aea-b19e-4309ec6534b8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:46.241Z", + "version": "WzY0MSwxXQ==", + "attributes": { + "visState": "{\"title\":\"FIles - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_files.tx_hosts\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"File IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "FIles - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0aca5333-3b1c-4cda-afb4-f7dd86910459" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4474edda-47f0-4b74-b5d2-cbf012368c59", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:46.241Z", + "version": "WzY0MiwxXQ==", + "attributes": { + "title": "Files - MIME Type", + "visState": "{\"title\":\"Files - MIME Type\",\"type\":\"histogram\",\"params\":{\"addLegend\":false,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"rotate\":75,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"MIME Type\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"legendPosition\":\"right\",\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"showCircles\":true,\"times\":[],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"type\":\"histogram\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_files.mime_type\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"MIME Type\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0aca5333-3b1c-4cda-afb4-f7dd86910459" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b1cb0275-a84e-4ef3-ad40-b2b773be43ff", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:46.241Z", + "version": "WzY0MywxXQ==", + "attributes": { + "visState": "{\"title\":\"FIles - MIME Type\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_files.mime_type\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"MIME Type\"}}],\"listeners\":{}}", + "description": "", + "title": "FIles - MIME Type", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0aca5333-3b1c-4cda-afb4-f7dd86910459" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDG9goqxQT5EBNmq4BP", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:46.241Z", + "version": "WzY0NCwxXQ==", + "attributes": { + "title": "Files - Log Count", + "visState": "{\"title\":\"Files - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0aca5333-3b1c-4cda-afb4-f7dd86910459" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5a4e8261-d65c-4b36-b3f4-5c272f18990f", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:46.241Z", + "version": "WzY0NSwxXQ==", + "attributes": { + "title": "Files - Source", + "visState": "{\"title\":\"Files - Source\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_files.source\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Source\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "0aca5333-3b1c-4cda-afb4-f7dd86910459" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0aca5333-3b1c-4cda-afb4-f7dd86910459", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:46.241Z", + "version": "WzY0NiwxXQ==", + "attributes": { + "title": "Files - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_files.tx_hosts", + "dstIp", + "zeek_files.source", + "zeek_files.mime_type", + "zeek.uid", + "zeek.fuid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:files\"}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/a16110b0-3f99-11e9-a58e-8bdedb0915e8.json b/Vagrant/resources/malcolm/kibana/dashboards/a16110b0-3f99-11e9-a58e-8bdedb0915e8.json new file mode 100644 index 0000000..7842c26 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/a16110b0-3f99-11e9-a58e-8bdedb0915e8.json @@ -0,0 +1,210 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "a16110b0-3f99-11e9-a58e-8bdedb0915e8", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:47.256Z", + "version": "WzY0NywxXQ==", + "attributes": { + "title": "Connections - Destination - Sum of Total Bytes (region map)", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":23,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":50,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":3},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":23,\"w\":8,\"h\":15,\"i\":\"95f9b964-c2a2-416b-9903-8b969247e1ab\"},\"panelIndex\":\"95f9b964-c2a2-416b-9903-8b969247e1ab\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":38,\"w\":8,\"h\":12,\"i\":\"7f315dd1-7809-49af-bed1-edfa12322240\"},\"panelIndex\":\"7f315dd1-7809-49af-bed1-edfa12322240\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"*\",\"language\":\"lucene\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "304de8c0-3f95-11e9-a58e-8bdedb0915e8" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "304de8c0-3f95-11e9-a58e-8bdedb0915e8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:47.256Z", + "version": "WzY0OSwxXQ==", + "attributes": { + "title": "Connections - Destination - Sum of Total Bytes (region map)", + "visState": "{\"title\":\"Connections - Destination - Sum of Total Bytes (region map)\",\"type\":\"region_map\",\"params\":{\"addTooltip\":true,\"colorSchema\":\"Green to Red\",\"emsHotLink\":null,\"isDisplayWarning\":false,\"legendPosition\":\"bottomright\",\"mapCenter\":[0,0],\"mapZoom\":2,\"outlineWeight\":1,\"selectedJoinField\":{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},\"selectedLayer\":{\"attribution\":\"https://exploratory.io/maps\",\"fields\":[{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},{\"description\":\"Country Code2\",\"name\":\"WB_A2\"},{\"description\":\"Country Name\",\"name\":\"NAME\"}],\"format\":{\"type\":\"geojson\"},\"isEMS\":false,\"layerId\":\"self_hosted.World (offline)\",\"meta\":{\"feature_collection_path\":\"data\"},\"name\":\"World (offline)\",\"url\":\"/world.geojson\"},\"showAllShapes\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"selectedTmsLayer\":{\"origin\":\"elastic_maps_service\",\"id\":\"road_map\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"OpenStreetMap contributors | OpenMapTiles | MapTiler | Elastic Maps Service\"}},\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\",\"params\":{}},\"params\":{},\"label\":\"Total Bytes\",\"aggType\":\"sum\"},\"bucket\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Responder Country\",\"aggType\":\"terms\"}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"schema\":\"metric\",\"params\":{\"field\":\"totBytes\",\"customLabel\":\"Total Bytes\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"dstGEO\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Responder Country\"}}]}", + "uiStateJSON": "{\"mapCenter\":[38.14774734584061,16.699218750000004],\"mapZoom\":3}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NCwxXQ==", + "attributes": { + "title": "Connections - Protocol Filters", + "visState": "{\"title\":\"Connections - Protocol Filters\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1581606976709\",\"fieldName\":\"network.type\",\"parent\":\"\",\"label\":\"Network Layer\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1581606723028\",\"fieldName\":\"zeek.proto\",\"parent\":\"\",\"label\":\"Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"},{\"id\":\"1581606665268\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Service\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_2_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_1_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_2_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/a33e0a50-afcd-11ea-993f-b7d8522a8bed.json b/Vagrant/resources/malcolm/kibana/dashboards/a33e0a50-afcd-11ea-993f-b7d8522a8bed.json new file mode 100644 index 0000000..815f8f2 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/a33e0a50-afcd-11ea-993f-b7d8522a8bed.json @@ -0,0 +1,313 @@ +{ + "version": "7.10.2", + "objects": [ + { + "id": "a33e0a50-afcd-11ea-993f-b7d8522a8bed", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T19:03:14.686Z", + "version": "Wzk1NywxXQ==", + "attributes": { + "title": "Actions and Results", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":46,\"i\":\"f9de9d8e-c9a8-4a7a-81f4-51d42e2585b3\"},\"panelIndex\":\"f9de9d8e-c9a8-4a7a-81f4-51d42e2585b3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":13,\"h\":7,\"i\":\"12265d8d-1385-4adb-8974-941feadbc9a4\"},\"panelIndex\":\"12265d8d-1385-4adb-8974-941feadbc9a4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":21,\"y\":0,\"w\":27,\"h\":15,\"i\":\"b5a79234-5b7b-4cf2-b558-1e943df3663a\"},\"panelIndex\":\"b5a79234-5b7b-4cf2-b558-1e943df3663a\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":8,\"y\":7,\"w\":13,\"h\":8,\"i\":\"1c6b7570-f4dc-4887-b444-ca96a97d7b84\"},\"panelIndex\":\"1c6b7570-f4dc-4887-b444-ca96a97d7b84\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":8,\"y\":15,\"w\":40,\"h\":31,\"i\":\"33f87f47-f981-46dd-8a9f-bb3c9ff7bf20\"},\"panelIndex\":\"33f87f47-f981-46dd-8a9f-bb3c9ff7bf20\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":46,\"w\":24,\"h\":18,\"i\":\"7473d8ee-ff30-44be-a4c8-be9008b3681b\"},\"panelIndex\":\"7473d8ee-ff30-44be-a4c8-be9008b3681b\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":24,\"y\":46,\"w\":24,\"h\":18,\"i\":\"ff71b8b2-8f23-4955-a4ae-65494e1894b7\"},\"panelIndex\":\"ff71b8b2-8f23-4955-a4ae-65494e1894b7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.2\",\"gridData\":{\"x\":0,\"y\":64,\"w\":48,\"h\":31,\"i\":\"fcff266b-64f1-48fa-ade1-3e7ef4399fa1\"},\"panelIndex\":\"fcff266b-64f1-48fa-ade1-3e7ef4399fa1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"}]", + "optionsJSON": "{\"hidePanelTitles\":false,\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "c9bbbcc0-afca-11ea-993f-b7d8522a8bed" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "6f5d5c00-afcc-11ea-993f-b7d8522a8bed" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "AWDGyaGxxQT5EBNmq3K9" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "1c4354d0-7609-11eb-8496-3528afc64ddb" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "77bd1870-46ce-11ea-91c3-61991161aaaf" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "767e3d90-afce-11ea-993f-b7d8522a8bed" + }, + { + "name": "panel_7", + "type": "search", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:47:06.069Z", + "version": "Wzg3NCwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c9bbbcc0-afca-11ea-993f-b7d8522a8bed", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:44.860Z", + "version": "WzY1MywxXQ==", + "attributes": { + "title": "Filter by Application Protocol", + "visState": "{\"title\":\"Filter by Application Protocol\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1592309516260\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Application Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6f5d5c00-afcc-11ea-993f-b7d8522a8bed", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:44.860Z", + "version": "WzY1NCwxXQ==", + "attributes": { + "title": "Total Log Count Over Time by Application Protocol", + "visState": "{\"title\":\"Total Log Count Over Time by Application Protocol\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"YYYY-MM-DD\"}},\"params\":{\"date\":true,\"interval\":\"P30D\",\"intervalESValue\":30,\"intervalESUnit\":\"d\",\"format\":\"YYYY-MM-DD\",\"bounds\":{\"min\":\"1996-01-14T21:31:46.075Z\",\"max\":\"2021-01-14T21:31:46.075Z\"}},\"label\":\"firstPacket per 30 days\",\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Application Protocol\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-25y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":8,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Application Protocol\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDGyaGxxQT5EBNmq3K9", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:44.860Z", + "version": "WzY1NSwxXQ==", + "attributes": { + "title": "Total Number of Logs", + "visState": "{\"title\":\"Total Number of Logs\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Total Number of Logs\"}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "1c4354d0-7609-11eb-8496-3528afc64ddb", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:58:26.589Z", + "version": "WzkyMywxXQ==", + "attributes": { + "title": "Top Actions and Results by Service", + "visState": "{\"title\":\"Top Actions and Results by Service\",\"type\":\"kbn_sankey\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Action\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Service\"},\"schema\":\"bucket\"},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Result\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"computedColumns\":[],\"computedColsPerSplitCol\":false,\"hideExportLinks\":false,\"csvExportWithTotal\":false,\"stripedRows\":false,\"addRowNumberColumn\":false,\"csvEncoding\":\"utf-8\",\"showFilterBar\":false,\"filterCaseSensitive\":false,\"filterBarHideable\":false,\"filterAsYouType\":false,\"filterTermsSeparately\":false,\"filterHighlightResults\":false,\"filterBarWidth\":\"25%\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.service:* AND (zeek.action:* OR zeek.result:*)\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "77bd1870-46ce-11ea-91c3-61991161aaaf", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:44.860Z", + "version": "WzY1NiwxXQ==", + "attributes": { + "title": "Actions", + "visState": "{\"title\":\"Actions\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Protocol\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Action\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Protocol\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Action\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "767e3d90-afce-11ea-993f-b7d8522a8bed", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:44.860Z", + "version": "WzY1NywxXQ==", + "attributes": { + "title": "Results", + "visState": "{\"title\":\"Results\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Protocol\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Result\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Protocol\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Result\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-23T18:46:55.986Z", + "version": "Wzc4OSwxXQ==", + "attributes": { + "title": "All Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.logType", + "zeek.service", + "zeek.action", + "zeek.result", + "srcIp", + "dstIp", + "dstPort", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:*\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/a7514350-eba6-11e9-a384-0fcf32210194.json b/Vagrant/resources/malcolm/kibana/dashboards/a7514350-eba6-11e9-a384-0fcf32210194.json new file mode 100644 index 0000000..a1ebede --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/a7514350-eba6-11e9-a384-0fcf32210194.json @@ -0,0 +1,483 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "a7514350-eba6-11e9-a384-0fcf32210194", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:49.327Z", + "version": "WzY2MSwxXQ==", + "attributes": { + "title": "PROFINET", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":69,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":14,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":14,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":69,\"w\":48,\"h\":34,\"i\":\"4\"},\"panelIndex\":\"4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":50,\"w\":19,\"h\":19,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":27,\"y\":50,\"w\":21,\"h\":19,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":14,\"w\":16,\"h\":19,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":24,\"y\":14,\"w\":24,\"h\":19,\"i\":\"8\"},\"panelIndex\":\"8\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":33,\"w\":19,\"h\":17,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":27,\"y\":33,\"w\":21,\"h\":17,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "bf41a680-eba6-11e9-a384-0fcf32210194" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "fcf95d10-eba6-11e9-a384-0fcf32210194" + }, + { + "name": "panel_3", + "type": "search", + "id": "a0a10870-eba5-11e9-a384-0fcf32210194" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "ec42baa0-eba8-11e9-a384-0fcf32210194" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "0957f330-eba9-11e9-a384-0fcf32210194" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "41f36a70-ebaa-11e9-a384-0fcf32210194" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "9dccb5f0-eba9-11e9-a384-0fcf32210194" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "17319090-ebab-11e9-a384-0fcf32210194" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "8022cc90-ebab-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "bf41a680-eba6-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:49.327Z", + "version": "WzY2MywxXQ==", + "attributes": { + "title": "PROFINET - Log Count", + "visState": "{\"title\":\"PROFINET - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Log Count\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[{\"meta\":{\"type\":\"phrases\",\"key\":\"zeek.logType\",\"value\":\"profinet, profinet_dce_rpc\",\"params\":[\"profinet\",\"profinet_dce_rpc\"],\"negate\":false,\"disabled\":false,\"alias\":\"Zeek Log Type\",\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"bool\":{\"should\":[{\"match_phrase\":{\"zeek.logType\":\"profinet\"}},{\"match_phrase\":{\"zeek.logType\":\"profinet_dce_rpc\"}}],\"minimum_should_match\":1}},\"$state\":{\"store\":\"appState\"}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "fcf95d10-eba6-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:49.327Z", + "version": "WzY2NCwxXQ==", + "attributes": { + "title": "PROFINET - Logs Over Time", + "visState": "{\"title\":\"PROFINET - Logs Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-25y\",\"to\":\"now\",\"mode\":\"relative\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[{\"meta\":{\"type\":\"phrases\",\"key\":\"zeek.logType\",\"value\":\"profinet, profinet_dce_rpc\",\"params\":[\"profinet\",\"profinet_dce_rpc\"],\"negate\":false,\"disabled\":false,\"alias\":\"Zeek Log Type\",\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"bool\":{\"should\":[{\"match_phrase\":{\"zeek.logType\":\"profinet\"}},{\"match_phrase\":{\"zeek.logType\":\"profinet_dce_rpc\"}}],\"minimum_should_match\":1}},\"$state\":{\"store\":\"appState\"}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a0a10870-eba5-11e9-a384-0fcf32210194", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:49.327Z", + "version": "WzY2NSwxXQ==", + "attributes": { + "title": "PROFINET and Related - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "zeek_profinet.operation_type", + "zeek_profinet.index", + "zeek_profinet_dce_rpc.operation", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:(profinet OR profinet_dce_rpc)\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "ec42baa0-eba8-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:49.327Z", + "version": "WzY2NiwxXQ==", + "attributes": { + "title": "PROFINET - Source IP", + "visState": "{\"title\":\"PROFINET - Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"size\":250,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcPort\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "a0a10870-eba5-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0957f330-eba9-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:49.327Z", + "version": "WzY2NywxXQ==", + "attributes": { + "title": "PROFINET - Destination IP", + "visState": "{\"title\":\"PROFINET - Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"size\":250,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "a0a10870-eba5-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "41f36a70-ebaa-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:49.327Z", + "version": "WzY2OCwxXQ==", + "attributes": { + "title": "PROFINET - Operation", + "visState": "{\"title\":\"PROFINET - Operation\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_profinet.operation_type\",\"size\":250,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Operation\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_profinet.index\",\"size\":30,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Index\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "8524e670-eba5-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9dccb5f0-eba9-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:49.327Z", + "version": "WzY2OSwxXQ==", + "attributes": { + "title": "PROFINET - Operation Details", + "visState": "{\"title\":\"PROFINET - Operation Details\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_profinet.operation_type\",\"size\":250,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Operation\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_profinet.index\",\"size\":30,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Index\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_profinet.slot_number\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Slot\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_profinet.subslot_number\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Subslot\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "8524e670-eba5-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "17319090-ebab-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:49.327Z", + "version": "WzY3MCwxXQ==", + "attributes": { + "title": "PROFINET DCE/RPC - Operation", + "visState": "{\"title\":\"PROFINET DCE/RPC - Operation\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_profinet_dce_rpc.operation\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Operation\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "96d31d60-eba5-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8022cc90-ebab-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:49.327Z", + "version": "WzY3MSwxXQ==", + "attributes": { + "title": "PROFINET DCE/RPC - Packet Type", + "visState": "{\"title\":\"PROFINET DCE/RPC - Packet Type\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_profinet_dce_rpc.packet_type\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Packet Type\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "96d31d60-eba5-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8524e670-eba5-11e9-a384-0fcf32210194", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:49.327Z", + "version": "WzY3MiwxXQ==", + "attributes": { + "title": "PROFINET - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "zeek_profinet.block_version", + "zeek_profinet.operation_type", + "zeek_profinet.index", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:profinet\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "96d31d60-eba5-11e9-a384-0fcf32210194", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:49.327Z", + "version": "WzY3MywxXQ==", + "attributes": { + "title": "PROFINET DCE/RPC - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "zeek_profinet_dce_rpc.version", + "zeek_profinet_dce_rpc.operation", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:profinet_dce_rpc\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/abdd7550-2c7c-40dc-947e-f6d186a158c4.json b/Vagrant/resources/malcolm/kibana/dashboards/abdd7550-2c7c-40dc-947e-f6d186a158c4.json new file mode 100644 index 0000000..8dd3a72 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/abdd7550-2c7c-40dc-947e-f6d186a158c4.json @@ -0,0 +1,941 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "abdd7550-2c7c-40dc-947e-f6d186a158c4", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY3NCwxXQ==", + "attributes": { + "title": "Connections", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"h\":24,\"i\":\"2\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":8,\"i\":\"3\",\"w\":32,\"x\":16,\"y\":0},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":22,\"i\":\"5\",\"w\":48,\"x\":0,\"y\":61},\"panelIndex\":\"5\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":21,\"i\":\"8\",\"w\":16,\"x\":0,\"y\":131},\"panelIndex\":\"8\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":21,\"i\":\"9\",\"w\":16,\"x\":16,\"y\":131},\"panelIndex\":\"9\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":20,\"i\":\"11\",\"w\":16,\"x\":0,\"y\":192},\"panelIndex\":\"11\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":20,\"i\":\"12\",\"w\":16,\"x\":16,\"y\":192},\"panelIndex\":\"12\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":20,\"i\":\"13\",\"w\":16,\"x\":32,\"y\":192},\"panelIndex\":\"13\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":25,\"i\":\"19\",\"w\":25,\"x\":23,\"y\":106},\"panelIndex\":\"19\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"panelRefName\":\"panel_8\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":29,\"i\":\"21\",\"w\":19,\"x\":29,\"y\":8},\"panelIndex\":\"21\",\"embeddableConfig\":{\"legendOpen\":false,\"vis\":{\"legendOpen\":true}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":23,\"i\":\"22\",\"w\":17,\"x\":16,\"y\":83},\"panelIndex\":\"22\",\"embeddableConfig\":{},\"panelRefName\":\"panel_10\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":23,\"i\":\"23\",\"w\":15,\"x\":33,\"y\":83},\"panelIndex\":\"23\",\"embeddableConfig\":{},\"panelRefName\":\"panel_11\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":23,\"i\":\"24\",\"w\":16,\"x\":0,\"y\":83},\"panelIndex\":\"24\",\"embeddableConfig\":{},\"panelRefName\":\"panel_12\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":13,\"i\":\"26\",\"w\":8,\"x\":0,\"y\":24},\"panelIndex\":\"26\",\"embeddableConfig\":{},\"panelRefName\":\"panel_13\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":8,\"i\":\"29\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"29\",\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"panelRefName\":\"panel_14\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":25,\"i\":\"30\",\"w\":23,\"x\":0,\"y\":106},\"panelIndex\":\"30\",\"embeddableConfig\":{},\"panelRefName\":\"panel_15\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":21,\"i\":\"31\",\"w\":16,\"x\":32,\"y\":131},\"panelIndex\":\"31\",\"embeddableConfig\":{},\"panelRefName\":\"panel_16\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":20,\"i\":\"32\",\"w\":24,\"x\":0,\"y\":172},\"panelIndex\":\"32\",\"embeddableConfig\":{},\"panelRefName\":\"panel_17\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":20,\"i\":\"33\",\"w\":24,\"x\":24,\"y\":172},\"panelIndex\":\"33\",\"embeddableConfig\":{},\"panelRefName\":\"panel_18\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":20,\"i\":\"34\",\"w\":24,\"x\":0,\"y\":152},\"panelIndex\":\"34\",\"embeddableConfig\":{},\"panelRefName\":\"panel_19\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":20,\"i\":\"35\",\"w\":24,\"x\":24,\"y\":152},\"panelIndex\":\"35\",\"embeddableConfig\":{},\"panelRefName\":\"panel_20\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":24,\"i\":\"36\",\"w\":24,\"x\":0,\"y\":37},\"panelIndex\":\"36\",\"embeddableConfig\":{},\"panelRefName\":\"panel_21\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":24,\"i\":\"37\",\"w\":24,\"x\":24,\"y\":37},\"panelIndex\":\"37\",\"embeddableConfig\":{},\"panelRefName\":\"panel_22\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":29,\"i\":\"38\",\"w\":12,\"x\":17,\"y\":8},\"panelIndex\":\"38\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false},\"legendOpen\":true},\"panelRefName\":\"panel_23\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":29,\"i\":\"cbba4b14-342c-4e8e-9afd-f4da9e4b8f00\",\"w\":9,\"x\":8,\"y\":8},\"panelIndex\":\"cbba4b14-342c-4e8e-9afd-f4da9e4b8f00\",\"embeddableConfig\":{},\"panelRefName\":\"panel_24\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":37,\"i\":\"82da0128-4dcd-4f8b-9275-aad74435296f\",\"w\":48,\"x\":0,\"y\":212},\"panelIndex\":\"82da0128-4dcd-4f8b-9275-aad74435296f\",\"embeddableConfig\":{},\"panelRefName\":\"panel_25\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "03eba854-72b5-47d0-a92a-b671a0d7ed19" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "52013c7c-c554-450e-9198-dbafdc050459" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "13f8cfbf-7b48-414b-8b34-9fc40d4fc066" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "4ab657d5-88d3-44c0-90fd-4e731e528d60" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "d25f4abc-24af-405e-a6f6-873277fe5771" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "0eb7d869-bd51-4711-8ac3-f3cea41dee37" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "fccf0fdd-7e50-4dce-8b85-74141c404ef3" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "bda3ad0a-aa00-40b6-b0ed-a42b96f3343e" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "73528008-f11d-4faa-8f69-a5bf23507b8f" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "faa08629-0011-4b38-8b74-3ba86b59155f" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "0418f791-97b5-4eb4-b644-bf91c98f9c1d" + }, + { + "name": "panel_12", + "type": "visualization", + "id": "a76bc3ed-bbf7-429a-a936-475e9f9e0c0d" + }, + { + "name": "panel_13", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + }, + { + "name": "panel_14", + "type": "visualization", + "id": "AWDG71xFxQT5EBNmq336" + }, + { + "name": "panel_15", + "type": "visualization", + "id": "f7ddb5a7-32d5-4e10-b9d5-01ac0bd694c0" + }, + { + "name": "panel_16", + "type": "visualization", + "id": "568c74ff-3ef3-45ba-a178-0520633697bd" + }, + { + "name": "panel_17", + "type": "visualization", + "id": "73df67e0-1f4b-11e9-b7cf-71e2cd3bde1b" + }, + { + "name": "panel_18", + "type": "visualization", + "id": "b1851d10-1f4b-11e9-b7cf-71e2cd3bde1b" + }, + { + "name": "panel_19", + "type": "visualization", + "id": "cf9a1cf0-1f4c-11e9-b7cf-71e2cd3bde1b" + }, + { + "name": "panel_20", + "type": "visualization", + "id": "b9e4dcb0-1f4c-11e9-b7cf-71e2cd3bde1b" + }, + { + "name": "panel_21", + "type": "visualization", + "id": "c513e8f0-1f4d-11e9-b7cf-71e2cd3bde1b" + }, + { + "name": "panel_22", + "type": "visualization", + "id": "b04c8b20-1f4d-11e9-b7cf-71e2cd3bde1b" + }, + { + "name": "panel_23", + "type": "visualization", + "id": "ede811b0-1f4e-11e9-b7cf-71e2cd3bde1b" + }, + { + "name": "panel_24", + "type": "visualization", + "id": "adc09360-49c7-11ea-812f-2bc51df4ea1e" + }, + { + "name": "panel_25", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "03eba854-72b5-47d0-a92a-b671a0d7ed19", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY3NiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Connections - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "Connections - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52013c7c-c554-450e-9198-dbafdc050459", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY3NywxXQ==", + "attributes": { + "title": "Connections - Service By Destination Country", + "visState": "{\"title\":\"Connections - Service By Destination Country\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"row\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"split\",\"params\":{\"field\":\"zeek.destination_geo.country_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Country\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.service\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Service\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "13f8cfbf-7b48-414b-8b34-9fc40d4fc066", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY3OCwxXQ==", + "attributes": { + "visState": "{\"title\":\"Connections - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Connections - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4ab657d5-88d3-44c0-90fd-4e731e528d60", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY3OSwxXQ==", + "attributes": { + "visState": "{\"title\":\"Connections - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Connections - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d25f4abc-24af-405e-a6f6-873277fe5771", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY4MCwxXQ==", + "attributes": { + "visState": "{\"title\":\"Connections - Source Country\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.source_geo.country_code2\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Country\"}}],\"listeners\":{}}", + "description": "", + "title": "Connections - Source Country", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0eb7d869-bd51-4711-8ac3-f3cea41dee37", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY4MSwxXQ==", + "attributes": { + "visState": "{\"title\":\"Connections - Responder Bytes\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_conn.resp_bytes\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"_term\",\"customLabel\":\"Responder Bytes\"}}],\"listeners\":{}}", + "description": "", + "title": "Connections - Responder Bytes", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "fccf0fdd-7e50-4dce-8b85-74141c404ef3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY4MiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Connections - Missed Bytes\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_conn.missed_bytes\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"_term\",\"customLabel\":\"Missed Bytes\"}}],\"listeners\":{}}", + "description": "", + "title": "Connections - Missed Bytes", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "bda3ad0a-aa00-40b6-b0ed-a42b96f3343e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY4MywxXQ==", + "attributes": { + "title": "Connections - Connection State", + "visState": "{\"title\":\"Connections - Connection State\",\"type\":\"table\",\"params\":{\"perPage\":15,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Connection State Description\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_conn.conn_state_description\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Connection State Description\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "73528008-f11d-4faa-8f69-a5bf23507b8f", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY4NCwxXQ==", + "attributes": { + "title": "Connections - Top 10 - Total Bytes By Connection", + "visState": "{\"title\":\"Connections - Top 10 - Total Bytes By Connection\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":false,\"truncate\":100,\"rotate\":75},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Connection ID\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"legendPosition\":\"right\",\"orderBucketsBySum\":false,\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Total Bytes\"},\"drawLinesBetweenPoints\":true,\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"showCircles\":true,\"times\":[],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"square root\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Total Bytes\"},\"type\":\"value\"}],\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Connection ID\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\",\"params\":{}},\"params\":{},\"label\":\"Total Bytes\",\"aggType\":\"max\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Connection ID\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"totBytes\",\"customLabel\":\"Total Bytes\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.uid\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Connection ID\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.uid\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Connection ID\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "faa08629-0011-4b38-8b74-3ba86b59155f", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY4NSwxXQ==", + "attributes": { + "title": "Connections - Top 10 - Total Bytes By Destination IP", + "visState": "{\"title\":\"Connections - Top 10 - Total Bytes By Destination IP\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100,\"rotate\":75},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Destination IP Address\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"legendPosition\":\"right\",\"orderBucketsBySum\":false,\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Total Bytes\"},\"drawLinesBetweenPoints\":true,\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"showCircles\":true,\"times\":[],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"square root\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Total Bytes\"},\"type\":\"value\"}],\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Destination IP Address\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\",\"params\":{}},\"params\":{},\"label\":\"Total Bytes\",\"aggType\":\"max\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Destination IP Address\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"totBytes\",\"customLabel\":\"Total Bytes\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP Address\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP Address\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0418f791-97b5-4eb4-b644-bf91c98f9c1d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY4NiwxXQ==", + "attributes": { + "title": "Connections - Top 10 - Total Bytes By Destination Port", + "visState": "{\"title\":\"Connections - Top 10 - Total Bytes By Destination Port\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100,\"rotate\":0},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Destination Port\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"legendPosition\":\"right\",\"orderBucketsBySum\":false,\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Max totBytes\"},\"drawLinesBetweenPoints\":true,\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"showCircles\":true,\"times\":[],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"square root\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Total Bytes\"},\"type\":\"value\"}],\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"number\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Destination Port\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\",\"params\":{}},\"params\":{},\"label\":\"Max totBytes\",\"aggType\":\"max\"}],\"series\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"number\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Destination Port\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"totBytes\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a76bc3ed-bbf7-429a-a936-475e9f9e0c0d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY4NywxXQ==", + "attributes": { + "title": "Connections - Top 10 - Total Bytes By Source IP", + "visState": "{\"title\":\"Connections - Top 10 - Total Bytes By Source IP\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":100,\"rotate\":75},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Source IP Address\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"legendPosition\":\"left\",\"orderBucketsBySum\":false,\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Total Bytes\"},\"drawLinesBetweenPoints\":true,\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"showCircles\":true,\"times\":[],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"square root\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Total Bytes\"},\"type\":\"value\"}],\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Source IP Address\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\",\"params\":{}},\"params\":{},\"label\":\"Total Bytes\",\"aggType\":\"max\"}],\"series\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Source IP Address\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"totBytes\",\"customLabel\":\"Total Bytes\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP Address\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP Address\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDG71xFxQT5EBNmq336", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY4OSwxXQ==", + "attributes": { + "title": "Connections - Log Count", + "visState": "{\"title\":\"Connections - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f7ddb5a7-32d5-4e10-b9d5-01ac0bd694c0", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY5MCwxXQ==", + "attributes": { + "title": "Connections - Total Bytes Per Source/Destination IP Pair", + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"4\",\"params\":{\"customLabel\":\"Total Bytes\",\"field\":\"totBytes\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"_key\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":100},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Source IP\",\"field\":\"srcIp\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderAgg\":{\"enabled\":true,\"id\":\"2-orderAgg\",\"params\":{\"field\":\"totBytes\"},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_bucket\",\"!min_bucket\",\"!sum_bucket\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"hideCustomLabel\":true,\"max\":null,\"min\":0,\"name\":\"orderAgg\",\"params\":[],\"title\":\"Order Agg\"},\"type\":\"cardinality\"},\"orderBy\":\"custom\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":100},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Destination IP\",\"field\":\"dstIp\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderAgg\":{\"enabled\":true,\"id\":\"3-orderAgg\",\"params\":{\"field\":\"totBytes\"},\"schema\":{\"aggFilter\":[\"!top_hits\",\"!percentiles\",\"!median\",\"!std_dev\",\"!derivative\",\"!moving_avg\",\"!serial_diff\",\"!cumulative_sum\",\"!avg_bucket\",\"!max_bucket\",\"!min_bucket\",\"!sum_bucket\"],\"deprecate\":false,\"editor\":false,\"group\":\"none\",\"hideCustomLabel\":true,\"max\":null,\"min\":0,\"name\":\"orderAgg\",\"params\":[],\"title\":\"Order Agg\"},\"type\":\"cardinality\"},\"orderBy\":\"custom\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":100},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":15,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"Connections - Total Bytes Per Source/Destination IP Pair\",\"type\":\"table\"}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "568c74ff-3ef3-45ba-a178-0520633697bd", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY5MSwxXQ==", + "attributes": { + "title": "Connections - Destination Port", + "visState": "{\"title\":\"Connections - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "73df67e0-1f4b-11e9-b7cf-71e2cd3bde1b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY5MiwxXQ==", + "attributes": { + "title": "Connections - Source MAC OUI", + "visState": "{\"title\":\"Connections - Source MAC OUI\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.orig_l2_oui\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source MAC OUI\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b1851d10-1f4b-11e9-b7cf-71e2cd3bde1b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY5MywxXQ==", + "attributes": { + "title": "Connections - Destination MAC OUI", + "visState": "{\"title\":\"Connections - Destination MAC OUI\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.resp_l2_oui\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination MAC OUI\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "cf9a1cf0-1f4c-11e9-b7cf-71e2cd3bde1b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY5NCwxXQ==", + "attributes": { + "title": "Connections - Source MAC Address", + "visState": "{\"title\":\"Connections - Source MAC Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcMac\",\"size\":500,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"MAC Address\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcOui\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Organizational Unique Identifier\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b9e4dcb0-1f4c-11e9-b7cf-71e2cd3bde1b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY5NSwxXQ==", + "attributes": { + "title": "Connections - Destination MAC Address", + "visState": "{\"title\":\"Connections - Destination MAC Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstMac\",\"size\":500,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"MAC Address\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstOui\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Organizational Unique Identifier\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c513e8f0-1f4d-11e9-b7cf-71e2cd3bde1b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY5NiwxXQ==", + "attributes": { + "title": "Connections - Top 10 - Total Bytes By Source MAC OUI", + "visState": "{\"title\":\"Connections - Top 10 - Total Bytes By Source MAC OUI\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":false,\"truncate\":100,\"rotate\":75},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Destination IP Address\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"legendPosition\":\"right\",\"orderBucketsBySum\":false,\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Total Bytes\"},\"drawLinesBetweenPoints\":true,\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"showCircles\":true,\"times\":[],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"square root\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Total Bytes\"},\"type\":\"value\"}],\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Source MAC OUI\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\",\"params\":{}},\"params\":{},\"label\":\"Total Bytes\",\"aggType\":\"max\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Source MAC OUI\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"totBytes\",\"customLabel\":\"Total Bytes\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"srcOui\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source MAC OUI\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"srcOui\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source MAC OUI\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b04c8b20-1f4d-11e9-b7cf-71e2cd3bde1b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY5NywxXQ==", + "attributes": { + "title": "Connections - Top 10 - Total Bytes By Destination MAC OUI", + "visState": "{\"title\":\"Connections - Top 10 - Total Bytes By Destination MAC OUI\",\"type\":\"histogram\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":false,\"truncate\":100,\"rotate\":75},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Destination IP Address\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"legendPosition\":\"right\",\"orderBucketsBySum\":false,\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Total Bytes\"},\"drawLinesBetweenPoints\":true,\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"showCircles\":true,\"times\":[],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"square root\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Total Bytes\"},\"type\":\"value\"}],\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Destination MAC OUI\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\",\"params\":{}},\"params\":{},\"label\":\"Total Bytes\",\"aggType\":\"max\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Destination MAC OUI\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"totBytes\",\"customLabel\":\"Total Bytes\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"dstOui\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination MAC OUI\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"dstOui\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination MAC OUI\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ede811b0-1f4e-11e9-b7cf-71e2cd3bde1b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY5OCwxXQ==", + "attributes": { + "title": "Connections - Protocol", + "visState": "{\"title\":\"Connections - Protocol\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":false,\"labels\":{\"show\":true,\"values\":false,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Protocol\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.proto\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Protocol\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "adc09360-49c7-11ea-812f-2bc51df4ea1e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:50.357Z", + "version": "WzY5OSwxXQ==", + "attributes": { + "title": "Network Layer", + "visState": "{\"title\":\"Network Layer\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":false,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Network Layer\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"network.type\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Network Layer\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/ae79b7d1-4281-4095-b2f6-fa7eafda9970.json b/Vagrant/resources/malcolm/kibana/dashboards/ae79b7d1-4281-4095-b2f6-fa7eafda9970.json new file mode 100644 index 0000000..582a49f --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/ae79b7d1-4281-4095-b2f6-fa7eafda9970.json @@ -0,0 +1,423 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "ae79b7d1-4281-4095-b2f6-fa7eafda9970", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:14:34.527Z", + "version": "WzI2MjYsMV0=", + "attributes": { + "title": "RADIUS", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":27,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":27,\"w\":12,\"h\":18,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":12,\"y\":27,\"w\":14,\"h\":18,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":37,\"y\":8,\"w\":11,\"h\":19,\"i\":\"8\"},\"panelIndex\":\"8\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":26,\"y\":27,\"w\":22,\"h\":18,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}},\"table\":null},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"14\"},\"panelIndex\":\"14\",\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":20,\"y\":8,\"w\":17,\"h\":19,\"i\":\"15\"},\"panelIndex\":\"15\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":8,\"w\":12,\"h\":19,\"i\":\"16\"},\"panelIndex\":\"16\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":true}},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":45,\"w\":48,\"h\":35,\"i\":\"1422b8a5-559d-4c37-91aa-cc36a293ddff\"},\"panelIndex\":\"1422b8a5-559d-4c37-91aa-cc36a293ddff\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":80,\"w\":24,\"h\":15,\"i\":\"118a0612-bdbb-4918-aab5-79830ee636aa\"},\"panelIndex\":\"118a0612-bdbb-4918-aab5-79830ee636aa\",\"embeddableConfig\":{},\"panelRefName\":\"panel_10\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "4a3b4d78-6adc-4e6f-a7ae-180c6a58e49f" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "799ed170-b759-4b14-8a05-8fbdb356ec0e" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "6f92b5d9-82b3-477f-9cd5-a68d62a2c804" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "45e768b2-e4b3-4e3f-8f1f-9a9300dedce6" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "5d64df1a-dc17-475a-ac3b-99e5c4c244f6" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "AWDHCgWzxQT5EBNmq4Y5" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "56f04556-a0c9-4b82-878b-8d5d9f29edd6" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "0299c83a-bd6c-40e6-bd18-01ee324ae7b0" + }, + { + "name": "panel_9", + "type": "search", + "id": "33bc7949-5692-4044-9e3c-0791dc7d70c0" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "168e6b40-6c83-11eb-b775-c574dc643cbb" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4a3b4d78-6adc-4e6f-a7ae-180c6a58e49f", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:51.359Z", + "version": "WzcwMywxXQ==", + "attributes": { + "visState": "{\"title\":\"RADIUS - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "RADIUS - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "33bc7949-5692-4044-9e3c-0791dc7d70c0" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "799ed170-b759-4b14-8a05-8fbdb356ec0e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:51.359Z", + "version": "WzcwNCwxXQ==", + "attributes": { + "visState": "{\"title\":\"RADIUS - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "RADIUS - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "33bc7949-5692-4044-9e3c-0791dc7d70c0" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6f92b5d9-82b3-477f-9cd5-a68d62a2c804", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:09:23.116Z", + "version": "WzI0MzgsMV0=", + "attributes": { + "title": "RADIUS - Destination IP Address", + "visState": "{\"title\":\"RADIUS - Destination IP Address\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP Address\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Port\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "33bc7949-5692-4044-9e3c-0791dc7d70c0" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "45e768b2-e4b3-4e3f-8f1f-9a9300dedce6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:51.359Z", + "version": "WzcwNiwxXQ==", + "attributes": { + "visState": "{\"title\":\"RADIUS - MAC\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_radius.mac\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"MAC Address\"}}],\"listeners\":{}}", + "description": "", + "title": "RADIUS - MAC", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "33bc7949-5692-4044-9e3c-0791dc7d70c0" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5d64df1a-dc17-475a-ac3b-99e5c4c244f6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:51.359Z", + "version": "WzcwNywxXQ==", + "attributes": { + "visState": "{\"title\":\"RADIUS - Connection Information\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_radius.connect_info\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Connection Info\"}}],\"listeners\":{}}", + "description": "", + "title": "RADIUS - Connection Information", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "33bc7949-5692-4044-9e3c-0791dc7d70c0" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHCgWzxQT5EBNmq4Y5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:51.359Z", + "version": "WzcwOSwxXQ==", + "attributes": { + "title": "RADIUS - Log Count", + "visState": "{\"title\":\"RADIUS - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "33bc7949-5692-4044-9e3c-0791dc7d70c0" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "56f04556-a0c9-4b82-878b-8d5d9f29edd6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:51.359Z", + "version": "WzcxMCwxXQ==", + "attributes": { + "title": "RADIUS - Username", + "visState": "{\"title\":\"RADIUS - Username\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.user\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Username\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "33bc7949-5692-4044-9e3c-0791dc7d70c0" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0299c83a-bd6c-40e6-bd18-01ee324ae7b0", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:06:45.852Z", + "version": "WzI0MTYsMV0=", + "attributes": { + "title": "RADIUS - Authentication Result", + "visState": "{\"title\":\"RADIUS - Authentication Result\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_radius.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "33bc7949-5692-4044-9e3c-0791dc7d70c0" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "33bc7949-5692-4044-9e3c-0791dc7d70c0", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:51.359Z", + "version": "WzcxMiwxXQ==", + "attributes": { + "title": "RADIUS - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek.user", + "zeek_radius.mac", + "zeek_radius.framed_addr", + "zeek_radius.result", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:radius\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "168e6b40-6c83-11eb-b775-c574dc643cbb", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:06:23.988Z", + "version": "WzI0MDEsMV0=", + "attributes": { + "title": "RADIUS - Authentication Result", + "visState": "{\"title\":\"RADIUS - Authentication Result\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_radius.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "33bc7949-5692-4044-9e3c-0791dc7d70c0" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/af5df620-eeb6-11e9-bdef-65a192b7f586.json b/Vagrant/resources/malcolm/kibana/dashboards/af5df620-eeb6-11e9-bdef-65a192b7f586.json new file mode 100644 index 0000000..c27284d --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/af5df620-eeb6-11e9-bdef-65a192b7f586.json @@ -0,0 +1,388 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "af5df620-eeb6-11e9-bdef-65a192b7f586", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T16:00:05.351Z", + "version": "WzIzMzIsMV0=", + "attributes": { + "title": "NTP", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":28,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":66,\"w\":48,\"h\":29,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"4\"},\"panelIndex\":\"4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false},\"table\":null},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":28,\"w\":24,\"h\":20,\"i\":\"8\"},\"panelIndex\":\"8\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":8,\"w\":19,\"h\":20,\"i\":\"9\"},\"panelIndex\":\"9\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":27,\"y\":8,\"w\":21,\"h\":20,\"i\":\"10\"},\"panelIndex\":\"10\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":24,\"y\":28,\"w\":24,\"h\":20,\"i\":\"11\"},\"panelIndex\":\"11\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":48,\"w\":24,\"h\":18,\"i\":\"12\"},\"panelIndex\":\"12\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":24,\"y\":48,\"w\":24,\"h\":18,\"i\":\"13\"},\"panelIndex\":\"13\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "search", + "id": "e8699550-eeac-11e9-bdef-65a192b7f586" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "d0e56b00-eeb8-11e9-bdef-65a192b7f586" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "24850a90-eeb9-11e9-bdef-65a192b7f586" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "48e18de0-eeba-11e9-bdef-65a192b7f586" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "1c6cf390-eebe-11e9-bdef-65a192b7f586" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "089c9ff0-eebe-11e9-bdef-65a192b7f586" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "8ee8f720-eebe-11e9-bdef-65a192b7f586" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "6ba97b90-eec8-11e9-acf8-c715d8d1900e" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "9050b8f0-eec8-11e9-acf8-c715d8d1900e" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "e8699550-eeac-11e9-bdef-65a192b7f586", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:52.397Z", + "version": "WzcxNSwxXQ==", + "attributes": { + "title": "NTP - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_ntp.version", + "zeek_ntp.stratum", + "zeek_ntp.mode_str", + "zeek_ntp.org_time", + "zeek_ntp.xmt_time", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"zeek.logType:ntp\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "d0e56b00-eeb8-11e9-bdef-65a192b7f586", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:52.397Z", + "version": "WzcxNiwxXQ==", + "attributes": { + "title": "NTP - Log Count", + "visState": "{\"title\":\"NTP - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e8699550-eeac-11e9-bdef-65a192b7f586" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "24850a90-eeb9-11e9-bdef-65a192b7f586", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:52.397Z", + "version": "WzcxNywxXQ==", + "attributes": { + "title": "NTP - Log Count Over Time", + "visState": "{\"title\":\"NTP - Log Count Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-25y\",\"to\":\"now\",\"mode\":\"quick\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek_ntp.version\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"NTP Version\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e8699550-eeac-11e9-bdef-65a192b7f586" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "48e18de0-eeba-11e9-bdef-65a192b7f586", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:52.397Z", + "version": "WzcxOCwxXQ==", + "attributes": { + "title": "NTP - Stratum", + "visState": "{\"title\":\"NTP - Stratum\",\"type\":\"horizontal_bar\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_ntp.stratum\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"NTP Stratum\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e8699550-eeac-11e9-bdef-65a192b7f586" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "1c6cf390-eebe-11e9-bdef-65a192b7f586", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:52.397Z", + "version": "WzcxOSwxXQ==", + "attributes": { + "title": "NTP - Version", + "visState": "{\"title\":\"NTP - Version\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_ntp.version\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"NTP Version\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e8699550-eeac-11e9-bdef-65a192b7f586" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "089c9ff0-eebe-11e9-bdef-65a192b7f586", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:52.397Z", + "version": "WzcyMCwxXQ==", + "attributes": { + "title": "NTP - Mode", + "visState": "{\"title\":\"NTP - Mode\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_ntp.mode_str\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"NTP Mode\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e8699550-eeac-11e9-bdef-65a192b7f586" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8ee8f720-eebe-11e9-bdef-65a192b7f586", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:52.397Z", + "version": "WzcyMSwxXQ==", + "attributes": { + "title": "NTP - Polling Interval", + "visState": "{\"title\":\"NTP - Polling Interval\",\"type\":\"horizontal_bar\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_ntp.poll\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Polling Interval (seconds)\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e8699550-eeac-11e9-bdef-65a192b7f586" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6ba97b90-eec8-11e9-acf8-c715d8d1900e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:52.397Z", + "version": "WzcyMiwxXQ==", + "attributes": { + "title": "NTP - Source IP", + "visState": "{\"title\":\"NTP - Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e8699550-eeac-11e9-bdef-65a192b7f586" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9050b8f0-eec8-11e9-acf8-c715d8d1900e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:52.397Z", + "version": "WzcyMywxXQ==", + "attributes": { + "title": "NTP - Destination IP", + "visState": "{\"title\":\"NTP - Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "e8699550-eeac-11e9-bdef-65a192b7f586" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/b50c8d17-6ed3-4de6-aed4-5181032810b2.json b/Vagrant/resources/malcolm/kibana/dashboards/b50c8d17-6ed3-4de6-aed4-5181032810b2.json new file mode 100644 index 0000000..e58bad6 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/b50c8d17-6ed3-4de6-aed4-5181032810b2.json @@ -0,0 +1,210 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "b50c8d17-6ed3-4de6-aed4-5181032810b2", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:53.414Z", + "version": "WzcyNCwxXQ==", + "attributes": { + "title": "Connections - Source - Originator Bytes", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":23,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":50,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":3},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":23,\"w\":8,\"h\":15,\"i\":\"5a871ebe-5904-4f52-ab3a-e3da4846933d\"},\"panelIndex\":\"5a871ebe-5904-4f52-ab3a-e3da4846933d\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":38,\"w\":8,\"h\":12,\"i\":\"3b635110-907e-457a-bfdf-b86a667a8483\"},\"panelIndex\":\"3b635110-907e-457a-bfdf-b86a667a8483\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"*\",\"language\":\"lucene\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "e959f9f2-e154-417f-a530-e1d7744ab9e4" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "e959f9f2-e154-417f-a530-e1d7744ab9e4", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:53.414Z", + "version": "WzcyNiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Connections - Source - Originator Bytes\",\"type\":\"tile_map\",\"params\":{\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true,\"heatMaxZoom\":0,\"heatMinOpacity\":0.1,\"heatRadius\":25,\"heatBlur\":15,\"heatNormalizeData\":true,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"mapCenter\":[0,0],\"wms\":{\"enabled\":false,\"url\":\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\",\"options\":{\"version\":\"1.3.0\",\"layers\":\"0\",\"format\":\"image/png\",\"transparent\":true,\"attribution\":\"Maps provided by USGS\",\"styles\":\"\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek_conn.orig_bytes\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"geohash_grid\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.source_geo.location\",\"autoPrecision\":true,\"useGeocentroid\":true,\"precision\":2}}],\"listeners\":{}}", + "description": "", + "title": "Connections - Source - Originator Bytes", + "uiStateJSON": "{\"mapZoom\":3,\"mapCenter\":[39.70718665682654,-44.912109375]}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NCwxXQ==", + "attributes": { + "title": "Connections - Protocol Filters", + "visState": "{\"title\":\"Connections - Protocol Filters\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1581606976709\",\"fieldName\":\"network.type\",\"parent\":\"\",\"label\":\"Network Layer\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1581606723028\",\"fieldName\":\"zeek.proto\",\"parent\":\"\",\"label\":\"Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"},{\"id\":\"1581606665268\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Service\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_2_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_1_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_2_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/b9f247c0-3f99-11e9-a58e-8bdedb0915e8.json b/Vagrant/resources/malcolm/kibana/dashboards/b9f247c0-3f99-11e9-a58e-8bdedb0915e8.json new file mode 100644 index 0000000..731c68d --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/b9f247c0-3f99-11e9-a58e-8bdedb0915e8.json @@ -0,0 +1,210 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "b9f247c0-3f99-11e9-a58e-8bdedb0915e8", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:54.429Z", + "version": "WzczMCwxXQ==", + "attributes": { + "title": "Connections - Destination - Top Connection Duration (region map)", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":23,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":50,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":3},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":23,\"w\":8,\"h\":15,\"i\":\"c96be8c5-f3a1-4d01-a747-66cc2d298318\"},\"panelIndex\":\"c96be8c5-f3a1-4d01-a747-66cc2d298318\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":38,\"w\":8,\"h\":12,\"i\":\"266c822f-c268-4e47-a53e-90b6ecf74660\"},\"panelIndex\":\"266c822f-c268-4e47-a53e-90b6ecf74660\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"*\",\"language\":\"lucene\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "9b1b6960-3f96-11e9-a58e-8bdedb0915e8" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "9b1b6960-3f96-11e9-a58e-8bdedb0915e8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:54.429Z", + "version": "WzczMiwxXQ==", + "attributes": { + "title": "Connections - Destination - Top Connection Duration (region map)", + "visState": "{\"title\":\"Connections - Destination - Top Connection Duration (region map)\",\"type\":\"region_map\",\"params\":{\"addTooltip\":true,\"colorSchema\":\"Green to Red\",\"emsHotLink\":null,\"isDisplayWarning\":false,\"legendPosition\":\"bottomright\",\"mapCenter\":[0,0],\"mapZoom\":3,\"outlineWeight\":1,\"selectedJoinField\":{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},\"selectedLayer\":{\"attribution\":\"https://exploratory.io/maps\",\"fields\":[{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},{\"description\":\"Country Code2\",\"name\":\"WB_A2\"},{\"description\":\"Country Name\",\"name\":\"NAME\"}],\"format\":{\"type\":\"geojson\"},\"isEMS\":false,\"layerId\":\"self_hosted.World (offline)\",\"meta\":{\"feature_collection_path\":\"data\"},\"name\":\"World (offline)\",\"url\":\"/world.geojson\"},\"showAllShapes\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"selectedTmsLayer\":{\"origin\":\"elastic_maps_service\",\"id\":\"road_map\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"OpenStreetMap contributors | OpenMapTiles | MapTiler | Elastic Maps Service\"}},\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\",\"params\":{}},\"params\":{},\"label\":\"Longest Session (seconds)\",\"aggType\":\"max\"},\"bucket\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Responder Country\",\"aggType\":\"terms\"}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek_conn.duration\",\"customLabel\":\"Longest Session (seconds)\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"dstGEO\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Responder Country\"}}]}", + "uiStateJSON": "{\"mapCenter\":[38.28591031601368,16.875000000000004],\"mapZoom\":3}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NCwxXQ==", + "attributes": { + "title": "Connections - Protocol Filters", + "visState": "{\"title\":\"Connections - Protocol Filters\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1581606976709\",\"fieldName\":\"network.type\",\"parent\":\"\",\"label\":\"Network Layer\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1581606723028\",\"fieldName\":\"zeek.proto\",\"parent\":\"\",\"label\":\"Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"},{\"id\":\"1581606665268\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Service\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_2_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_1_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_2_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/bb827f8e-639e-468c-93c8-9f5bc132eb8f.json b/Vagrant/resources/malcolm/kibana/dashboards/bb827f8e-639e-468c-93c8-9f5bc132eb8f.json new file mode 100644 index 0000000..f79d5b7 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/bb827f8e-639e-468c-93c8-9f5bc132eb8f.json @@ -0,0 +1,527 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "bb827f8e-639e-468c-93c8-9f5bc132eb8f", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:17:41.430Z", + "version": "WzMyNzUsMV0=", + "attributes": { + "title": "SMTP", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"h\":29,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":8,\"i\":\"3\",\"w\":32,\"x\":16,\"y\":0},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"6\",\"w\":40,\"x\":8,\"y\":23},\"panelIndex\":\"6\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":15,\"i\":\"7\",\"w\":20,\"x\":8,\"y\":8},\"panelIndex\":\"7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"9\",\"w\":24,\"x\":0,\"y\":41},\"panelIndex\":\"9\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"10\",\"w\":24,\"x\":24,\"y\":41},\"panelIndex\":\"10\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":15,\"i\":\"11\",\"w\":10,\"x\":28,\"y\":8},\"panelIndex\":\"11\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"13\",\"w\":13,\"x\":0,\"y\":59},\"panelIndex\":\"13\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"14\",\"w\":13,\"x\":13,\"y\":59},\"panelIndex\":\"14\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}},\"table\":null},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":18,\"i\":\"16\",\"w\":22,\"x\":26,\"y\":59},\"panelIndex\":\"16\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":12,\"i\":\"19\",\"w\":8,\"x\":0,\"y\":29},\"panelIndex\":\"19\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_10\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":8,\"i\":\"20\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"20\",\"embeddableConfig\":{},\"panelRefName\":\"panel_11\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":15,\"i\":\"633e2c8c-ef8e-48b1-b0a4-546a5adff4e4\",\"w\":10,\"x\":38,\"y\":8},\"panelIndex\":\"633e2c8c-ef8e-48b1-b0a4-546a5adff4e4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_12\"},{\"version\":\"7.10.0\",\"gridData\":{\"h\":40,\"i\":\"10319c5c-00bb-41a9-bbab-010e21fd4dfb\",\"w\":48,\"x\":0,\"y\":77},\"panelIndex\":\"10319c5c-00bb-41a9-bbab-010e21fd4dfb\",\"embeddableConfig\":{},\"panelRefName\":\"panel_13\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"*\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "815aba5e-16e2-4fa1-ab37-b09c39562fe4" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "63a89f9a-274c-4baa-9336-0d7cd6851bb6" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "7e16fa6b-1793-4dcd-a19b-ff251bbd0265" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "de856f53-42d1-4ffc-8182-5f275cf40006" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "45314b56-b8ba-4a89-9cb0-8d2a0e7ebd2e" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "77e86ab5-725a-4512-8c05-5250529b4385" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "ab85a06b-e513-4c8b-b80b-7283f5f1b066" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "ceaa93c5-1a76-469b-b3b3-bf4f9d6315c5" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "d622d8f0-64ce-45a6-8d66-9b04ddea2548" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "70d51476-219d-4792-b5fd-aee9992e1345" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "AWDHDsr0xQT5EBNmq4gw" + }, + { + "name": "panel_12", + "type": "visualization", + "id": "38de7940-4dcd-11ea-8336-d3388483188b" + }, + { + "name": "panel_13", + "type": "search", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "815aba5e-16e2-4fa1-ab37-b09c39562fe4", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "WzczOCwxXQ==", + "attributes": { + "visState": "{\"title\":\"SMTP - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "SMTP - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "63a89f9a-274c-4baa-9336-0d7cd6851bb6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "WzczOSwxXQ==", + "attributes": { + "visState": "{\"title\":\"SMTP - Subject\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_smtp.subject\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"SMTP\"}}],\"listeners\":{}}", + "description": "", + "title": "SMTP - Subject", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7e16fa6b-1793-4dcd-a19b-ff251bbd0265", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "Wzc0MCwxXQ==", + "attributes": { + "title": "SMTP - Destination Country", + "visState": "{\"title\":\"SMTP - Destination Country\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Country\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.destination_geo.country_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Country\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "de856f53-42d1-4ffc-8182-5f275cf40006", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "Wzc0MSwxXQ==", + "attributes": { + "visState": "{\"title\":\"SMTP - \\\"From\\\" Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_smtp.mailfrom\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"\\\"From\\\" Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SMTP - \"From\" Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "45314b56-b8ba-4a89-9cb0-8d2a0e7ebd2e", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "Wzc0MiwxXQ==", + "attributes": { + "visState": "{\"title\":\"SMTP - \\\"To\\\" Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_smtp.rcptto\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"\\\"To\\\" Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SMTP - \"To\" Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "77e86ab5-725a-4512-8c05-5250529b4385", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "Wzc0MywxXQ==", + "attributes": { + "title": "SMTP - TLS", + "visState": "{\"title\":\"SMTP - TLS\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":true,\"values\":false,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Using TLS\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_smtp.tls\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Using TLS\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ab85a06b-e513-4c8b-b80b-7283f5f1b066", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "Wzc0NCwxXQ==", + "attributes": { + "visState": "{\"title\":\"SMTP - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SMTP - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ceaa93c5-1a76-469b-b3b3-bf4f9d6315c5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "Wzc0NSwxXQ==", + "attributes": { + "visState": "{\"title\":\"SMTP - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SMTP - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d622d8f0-64ce-45a6-8d66-9b04ddea2548", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "Wzc0NiwxXQ==", + "attributes": { + "visState": "{\"title\":\"SMTP - User Agent\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_smtp.user_agent\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\"}}],\"listeners\":{}}", + "description": "", + "title": "SMTP - User Agent", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "70d51476-219d-4792-b5fd-aee9992e1345", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "Wzc0NywxXQ==", + "attributes": { + "title": "SMTP - Destination Port", + "visState": "{\"title\":\"SMTP - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":5,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"number\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Port\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHDsr0xQT5EBNmq4gw", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "Wzc0OCwxXQ==", + "attributes": { + "title": "SMTP - Log Count", + "visState": "{\"title\":\"SMTP - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "38de7940-4dcd-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "Wzc0OSwxXQ==", + "attributes": { + "title": "SMTP - Webmail", + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Is Webmail\",\"field\":\"zeek_smtp.is_webmail\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":20},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"dimensions\":{\"buckets\":[{\"accessor\":0,\"aggType\":\"terms\",\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"missingBucketLabel\":\"Unknown\",\"otherBucketLabel\":\"Other\"}},\"label\":\"Using TLS\",\"params\":{}}],\"metric\":{\"accessor\":1,\"aggType\":\"count\",\"format\":{\"id\":\"number\"},\"label\":\"Count\",\"params\":{}}},\"isDonut\":true,\"labels\":{\"last_level\":true,\"show\":true,\"truncate\":100,\"values\":false},\"legendPosition\":\"right\",\"type\":\"pie\"},\"title\":\"SMTP - Webmail\",\"type\":\"pie\"}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c999cb1b-03c8-446e-92ea-addad33ac1ff", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:55.450Z", + "version": "Wzc1MCwxXQ==", + "attributes": { + "title": "SMTP - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_smtp.x_originating_ip", + "srcIp", + "dstIp", + "dstPort", + "zeek_smtp.mailfrom", + "zeek_smtp.user_agent", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:smtp\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/bed185a0-ef82-11e9-b38a-2db3ee640e88.json b/Vagrant/resources/malcolm/kibana/dashboards/bed185a0-ef82-11e9-b38a-2db3ee640e88.json new file mode 100644 index 0000000..d49041b --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/bed185a0-ef82-11e9-b38a-2db3ee640e88.json @@ -0,0 +1,322 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "bed185a0-ef82-11e9-b38a-2db3ee640e88", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:47:53.333Z", + "version": "WzM2MjYsMV0=", + "attributes": { + "title": "Tabular Data Stream", + "hits": 0, + "description": "", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"h\":34,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":30,\"i\":\"2\",\"w\":48,\"x\":0,\"y\":34},\"panelIndex\":\"2\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":14,\"i\":\"3\",\"w\":7,\"x\":8,\"y\":0},\"panelIndex\":\"3\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":14,\"i\":\"4\",\"w\":33,\"x\":15,\"y\":0},\"panelIndex\":\"4\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":20,\"i\":\"5\",\"w\":17,\"x\":8,\"y\":14},\"panelIndex\":\"5\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":20,\"i\":\"6\",\"w\":11,\"x\":25,\"y\":14},\"panelIndex\":\"6\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":20,\"i\":\"7\",\"w\":12,\"x\":36,\"y\":14},\"panelIndex\":\"7\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_6\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "search", + "id": "4fb01ec0-ef82-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "13841bd0-ef83-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "402fcee0-ef83-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "760cdee0-ef83-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "c4c0bda0-ef87-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "049512a0-ef88-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4fb01ec0-ef82-11e9-b38a-2db3ee640e88", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:56.463Z", + "version": "Wzc1MywxXQ==", + "attributes": { + "title": "Tabular Data Stream - All Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek.logType", + "zeek_tds.command", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:(\\\"tds\\\" OR \\\"tds_rpc\\\" OR \\\"tds_sql_batch\\\")\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "13841bd0-ef83-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:56.463Z", + "version": "Wzc1NCwxXQ==", + "attributes": { + "title": "Tabular Data Stream - Log Count", + "visState": "{\"title\":\"Tabular Data Stream - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "4fb01ec0-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "402fcee0-ef83-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:56.463Z", + "version": "Wzc1NSwxXQ==", + "attributes": { + "title": "Tabular Data Stream - Log Count Over Time", + "visState": "{\"title\":\"Tabular Data Stream - Log Count Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-25y\",\"to\":\"now\",\"mode\":\"quick\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "4fb01ec0-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "760cdee0-ef83-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:47:21.220Z", + "version": "WzM2MTAsMV0=", + "attributes": { + "title": "Tabular Data Stream - Command", + "visState": "{\"title\":\"Tabular Data Stream - Command\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_tds.command\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Command\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "2f0626b0-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c4c0bda0-ef87-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:56.463Z", + "version": "Wzc1NywxXQ==", + "attributes": { + "title": "Tabular Data Stream - Source IP", + "visState": "{\"title\":\"Tabular Data Stream - Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "4fb01ec0-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "049512a0-ef88-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:56.463Z", + "version": "Wzc1OCwxXQ==", + "attributes": { + "title": "Tabular Data Stream - Destination IP", + "visState": "{\"title\":\"Tabular Data Stream - Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "4fb01ec0-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2f0626b0-ef82-11e9-b38a-2db3ee640e88", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:56.463Z", + "version": "Wzc1OSwxXQ==", + "attributes": { + "title": "Tabular Data Stream - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_tds.command", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:\\\"tds\\\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48.json b/Vagrant/resources/malcolm/kibana/dashboards/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48.json new file mode 100644 index 0000000..6793da2 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48.json @@ -0,0 +1,354 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "bf5efbb0-60f1-11eb-9d60-dbf0411cfc48", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:54.745Z", + "version": "WzU3NiwxXQ==", + "attributes": { + "title": "TFTP", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":28,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":10,\"i\":\"a8112d00-f850-4023-81e8-79ba5d5b4098\"},\"panelIndex\":\"a8112d00-f850-4023-81e8-79ba5d5b4098\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":10,\"i\":\"9c14f85e-f1bb-408e-b926-fbaccf6888b0\"},\"panelIndex\":\"9c14f85e-f1bb-408e-b926-fbaccf6888b0\",\"embeddableConfig\":{\"legendOpen\":false,\"vis\":{\"legendOpen\":true}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":10,\"w\":15,\"h\":18,\"i\":\"1d98f088-4985-4fe0-a97f-09fe988e99a2\"},\"panelIndex\":\"1d98f088-4985-4fe0-a97f-09fe988e99a2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":23,\"y\":10,\"w\":12,\"h\":18,\"i\":\"c2928421-bced-4bc1-81b5-fcc3c9146f6d\"},\"panelIndex\":\"c2928421-bced-4bc1-81b5-fcc3c9146f6d\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":35,\"y\":10,\"w\":13,\"h\":18,\"i\":\"b004c83d-302d-46dc-988b-9b6efa34117b\"},\"panelIndex\":\"b004c83d-302d-46dc-988b-9b6efa34117b\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":28,\"w\":20,\"h\":16,\"i\":\"11cd23eb-0863-4dd5-b8ca-5b617e957358\"},\"panelIndex\":\"11cd23eb-0863-4dd5-b8ca-5b617e957358\",\"embeddableConfig\":{\"legendOpen\":true,\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":20,\"y\":28,\"w\":28,\"h\":16,\"i\":\"7b74766e-9cf7-493d-b385-b7ffb6738c61\"},\"panelIndex\":\"7b74766e-9cf7-493d-b385-b7ffb6738c61\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":44,\"w\":48,\"h\":24,\"i\":\"82d6937c-b2a7-47e8-bb82-376b20125797\"},\"panelIndex\":\"82d6937c-b2a7-47e8-bb82-376b20125797\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "040c28f0-60f2-11eb-9d60-dbf0411cfc48" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "7933c480-60f2-11eb-9d60-dbf0411cfc48" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "44d83b00-66fe-11eb-90a4-cf1e1f7032b6" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "f9fe5ac0-66fc-11eb-90a4-cf1e1f7032b6" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "32ddd550-66fd-11eb-90a4-cf1e1f7032b6" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "6426d3b0-66fc-11eb-90a4-cf1e1f7032b6" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "0a99a5a0-66fe-11eb-90a4-cf1e1f7032b6" + }, + { + "name": "panel_8", + "type": "search", + "id": "a0db8d20-60f1-11eb-9d60-dbf0411cfc48" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:25:07.132Z", + "version": "WzY5MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "040c28f0-60f2-11eb-9d60-dbf0411cfc48", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:54.745Z", + "version": "WzU3OCwxXQ==", + "attributes": { + "title": "TFTP - Log Count", + "visState": "{\"title\":\"TFTP - Log Count\",\"type\":\"metric\",\"params\":{\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"type\":\"range\",\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":42}},\"dimensions\":{\"metrics\":[{\"type\":\"vis_dimension\",\"accessor\":0,\"format\":{\"id\":\"number\",\"params\":{}}}]},\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a0db8d20-60f1-11eb-9d60-dbf0411cfc48" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "7933c480-60f2-11eb-9d60-dbf0411cfc48", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:54.745Z", + "version": "WzU3OSwxXQ==", + "attributes": { + "title": "TFTP - Log Count Over Time", + "visState": "{\"title\":\"TFTP - Log Count Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"YYYY-MM-DD\"}},\"params\":{\"date\":true,\"interval\":\"P30D\",\"intervalESValue\":30,\"intervalESUnit\":\"d\",\"format\":\"YYYY-MM-DD\",\"bounds\":{\"min\":\"1996-02-04T15:21:21.768Z\",\"max\":\"2021-02-04T15:21:21.768Z\"}},\"label\":\"firstPacket per 30 days\",\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Operation\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-25y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Operation\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a0db8d20-60f1-11eb-9d60-dbf0411cfc48" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "44d83b00-66fe-11eb-90a4-cf1e1f7032b6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:54.745Z", + "version": "WzU4MCwxXQ==", + "attributes": { + "title": "TFTP - Filename", + "visState": "{\"title\":\"TFTP - Filename\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":0,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.filename\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a0db8d20-60f1-11eb-9d60-dbf0411cfc48" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f9fe5ac0-66fc-11eb-90a4-cf1e1f7032b6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:54.745Z", + "version": "WzU4MSwxXQ==", + "attributes": { + "title": "TFTP - Source IP", + "visState": "{\"title\":\"TFTP - Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Source IP\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"srcPort: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a0db8d20-60f1-11eb-9d60-dbf0411cfc48" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "32ddd550-66fd-11eb-90a4-cf1e1f7032b6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:54.745Z", + "version": "WzU4MiwxXQ==", + "attributes": { + "title": "TFTP - Destination IP", + "visState": "{\"title\":\"TFTP - Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Destination IP\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a0db8d20-60f1-11eb-9d60-dbf0411cfc48" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "6426d3b0-66fc-11eb-90a4-cf1e1f7032b6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:54.745Z", + "version": "WzU4MywxXQ==", + "attributes": { + "title": "TFTP - Transfer Mode", + "visState": "{\"title\":\"TFTP - Transfer Mode\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Transfer Mode\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_tftp.mode\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Transfer Mode\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a0db8d20-60f1-11eb-9d60-dbf0411cfc48" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0a99a5a0-66fe-11eb-90a4-cf1e1f7032b6", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:54.745Z", + "version": "WzU4NCwxXQ==", + "attributes": { + "title": "TFTP - Operation Results", + "visState": "{\"title\":\"TFTP - Operation Results\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Operation\",\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"zeek.result: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.action\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Operation\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.result\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "a0db8d20-60f1-11eb-9d60-dbf0411cfc48" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a0db8d20-60f1-11eb-9d60-dbf0411cfc48", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-15T14:24:54.745Z", + "version": "WzU4NSwxXQ==", + "attributes": { + "title": "TFTP - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.orig_h", + "zeek.orig_p", + "zeek.resp_h", + "zeek.resp_p", + "zeek_tftp.mode", + "zeek.filename", + "zeek.action", + "zeek.result", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:tftp\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2.json b/Vagrant/resources/malcolm/kibana/dashboards/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2.json new file mode 100644 index 0000000..930e03c --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2.json @@ -0,0 +1,318 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T19:01:48.690Z", + "version": "WzM3MzksMV0=", + "attributes": { + "title": "Telnet, rlogin and rsh", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":35,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":6,\"h\":17,\"i\":\"2a22ad3e-f362-43ed-b872-8258027ab5b1\"},\"panelIndex\":\"2a22ad3e-f362-43ed-b872-8258027ab5b1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":14,\"y\":0,\"w\":10,\"h\":17,\"i\":\"e6df9cb1-b460-4456-b01e-c0ea00c3c9db\"},\"panelIndex\":\"e6df9cb1-b460-4456-b01e-c0ea00c3c9db\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":24,\"y\":0,\"w\":24,\"h\":17,\"i\":\"276fcffb-3696-42cc-8473-9888550c72ff\"},\"panelIndex\":\"276fcffb-3696-42cc-8473-9888550c72ff\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":17,\"w\":13,\"h\":18,\"i\":\"c95b537e-3a4f-4566-b5f7-45597b4dbbe0\"},\"panelIndex\":\"c95b537e-3a4f-4566-b5f7-45597b4dbbe0\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":21,\"y\":17,\"w\":12,\"h\":18,\"i\":\"c4466e36-891c-4f73-bbc0-e0bd05e95b3d\"},\"panelIndex\":\"c4466e36-891c-4f73-bbc0-e0bd05e95b3d\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":33,\"y\":17,\"w\":15,\"h\":18,\"i\":\"43a6f1d1-fe78-441a-b6e4-3bb63028afb3\"},\"panelIndex\":\"43a6f1d1-fe78-441a-b6e4-3bb63028afb3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":35,\"w\":48,\"h\":33,\"i\":\"05b94a99-4088-4692-acc3-1641141e2b4a\"},\"panelIndex\":\"05b94a99-4088-4692-acc3-1641141e2b4a\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "5437b970-7f2f-11ea-9f8a-1fe1327e2cd2" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "81cf5db0-7f30-11ea-9f8a-1fe1327e2cd2" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "0a03a430-7f30-11ea-9f8a-1fe1327e2cd2" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "b277eb70-7f31-11ea-9f8a-1fe1327e2cd2" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "513b13e0-7f32-11ea-9f8a-1fe1327e2cd2" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "16f63260-7f31-11ea-9f8a-1fe1327e2cd2" + }, + { + "name": "panel_7", + "type": "search", + "id": "496bdbd0-7f2e-11ea-9f8a-1fe1327e2cd2" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5437b970-7f2f-11ea-9f8a-1fe1327e2cd2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:58.738Z", + "version": "Wzc2NywxXQ==", + "attributes": { + "title": "Telnet, rlogin and rsh - Log Count", + "visState": "{\"title\":\"Telnet, rlogin and rsh - Log Count\",\"type\":\"metric\",\"params\":{\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"type\":\"range\",\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}},\"dimensions\":{\"metrics\":[{\"type\":\"vis_dimension\",\"accessor\":1,\"format\":{\"id\":\"number\",\"params\":{}}}],\"bucket\":{\"type\":\"vis_dimension\",\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}}}},\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Protocol\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "496bdbd0-7f2e-11ea-9f8a-1fe1327e2cd2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "81cf5db0-7f30-11ea-9f8a-1fe1327e2cd2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:58.738Z", + "version": "Wzc2OCwxXQ==", + "attributes": { + "title": "Telnet, rlogin and rsh - Login Success", + "visState": "{\"title\":\"Telnet, rlogin and rsh - Login Success\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":3,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Login Succeeded\",\"aggType\":\"terms\"}],\"splitColumn\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Protocol\",\"aggType\":\"terms\"}]},\"row\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"split\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Protocol\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_login.success\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Login Succeeded\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "496bdbd0-7f2e-11ea-9f8a-1fe1327e2cd2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0a03a430-7f30-11ea-9f8a-1fe1327e2cd2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:58.738Z", + "version": "Wzc2OSwxXQ==", + "attributes": { + "title": "Telnet, rlogin and rsh - Log Count Over Time", + "visState": "{\"title\":\"Telnet, rlogin and rsh - Log Count Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"YYYY-MM-DD\"}},\"params\":{\"date\":true,\"interval\":\"P30D\",\"intervalESValue\":30,\"intervalESUnit\":\"d\",\"format\":\"YYYY-MM-DD\",\"bounds\":{\"min\":\"1995-04-15T15:43:18.959Z\",\"max\":\"2020-04-15T15:43:18.959Z\"}},\"label\":\"firstPacket per 30 days\",\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek.service: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-25y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Protocol\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "496bdbd0-7f2e-11ea-9f8a-1fe1327e2cd2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b277eb70-7f31-11ea-9f8a-1fe1327e2cd2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:58.738Z", + "version": "Wzc3MCwxXQ==", + "attributes": { + "title": "Telnet, rlogin and rsh - Login Attempts with Cleartext Passwords", + "visState": "{\"title\":\"Telnet, rlogin and rsh - Login Attempts with Cleartext Passwords\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":3,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Protocol\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"User\",\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Succeeded\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Protocol\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.user\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":99,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"User\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_login.success\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Success\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.password:*\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "496bdbd0-7f2e-11ea-9f8a-1fe1327e2cd2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "513b13e0-7f32-11ea-9f8a-1fe1327e2cd2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:58.738Z", + "version": "Wzc3MSwxXQ==", + "attributes": { + "title": "Telnet, rsh and rlogin - Source", + "visState": "{\"title\":\"Telnet, rsh and rlogin - Source\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Source IP\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Protocol\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Protocol\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "496bdbd0-7f2e-11ea-9f8a-1fe1327e2cd2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "16f63260-7f31-11ea-9f8a-1fe1327e2cd2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:58.738Z", + "version": "Wzc3MiwxXQ==", + "attributes": { + "title": "Telnet, rlogin and rsh - Destination", + "visState": "{\"title\":\"Telnet, rlogin and rsh - Destination\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Destination IP\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Protocol\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.service\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Protocol\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Destination IP\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "496bdbd0-7f2e-11ea-9f8a-1fe1327e2cd2" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "496bdbd0-7f2e-11ea-9f8a-1fe1327e2cd2", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:58.738Z", + "version": "Wzc3MywxXQ==", + "attributes": { + "title": "Telnet, rlogin and rsh - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.service", + "srcIp", + "dstIp", + "dstPort", + "user", + "zeek_login.client_user", + "zeek_login.success", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:login\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/ca5799a0-56b5-11eb-b749-576de068f8ad.json b/Vagrant/resources/malcolm/kibana/dashboards/ca5799a0-56b5-11eb-b749-576de068f8ad.json new file mode 100644 index 0000000..cec771c --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/ca5799a0-56b5-11eb-b749-576de068f8ad.json @@ -0,0 +1,481 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "ca5799a0-56b5-11eb-b749-576de068f8ad", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc3NCwxXQ==", + "attributes": { + "title": "BSAP", + "hits": 0, + "description": "", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"h\":24,\"i\":\"2\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"2\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":20,\"i\":\"214f20ea-4d19-4fb5-8c62-7c0e4f466592\",\"w\":7,\"x\":8,\"y\":0},\"panelIndex\":\"214f20ea-4d19-4fb5-8c62-7c0e4f466592\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":20,\"i\":\"5b187be7-f7e6-4a58-ba74-ec912fa49607\",\"w\":33,\"x\":15,\"y\":0},\"panelIndex\":\"5b187be7-f7e6-4a58-ba74-ec912fa49607\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"gridData\":{\"h\":18,\"i\":\"6cc8de49-0ec8-4bc7-8c27-a13ac5e902cf\",\"w\":13,\"x\":8,\"y\":20},\"panelIndex\":\"6cc8de49-0ec8-4bc7-8c27-a13ac5e902cf\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":18,\"i\":\"9d5e30e6-cabf-47d6-bc1b-513bc11eb63e\",\"w\":14,\"x\":34,\"y\":20},\"panelIndex\":\"9d5e30e6-cabf-47d6-bc1b-513bc11eb63e\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":14,\"i\":\"5052470e-daa5-4f3f-b73a-b5064516c094\",\"w\":8,\"x\":0,\"y\":24},\"panelIndex\":\"5052470e-daa5-4f3f-b73a-b5064516c094\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":18,\"i\":\"ec677134-ad66-4a53-ac6a-493eb295a137\",\"w\":18,\"x\":0,\"y\":38},\"panelIndex\":\"ec677134-ad66-4a53-ac6a-493eb295a137\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":18,\"i\":\"e5af6ed5-8b63-4aba-8640-574acda591eb\",\"w\":30,\"x\":18,\"y\":38},\"panelIndex\":\"e5af6ed5-8b63-4aba-8640-574acda591eb\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":21,\"i\":\"23809e02-25b4-41e3-80ee-b1ce57d9d931\",\"w\":48,\"x\":0,\"y\":56},\"panelIndex\":\"23809e02-25b4-41e3-80ee-b1ce57d9d931\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_8\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":19,\"i\":\"1a7bc55a-7421-45c2-ab4a-2fdae0277b45\",\"w\":48,\"x\":0,\"y\":77},\"panelIndex\":\"1a7bc55a-7421-45c2-ab4a-2fdae0277b45\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_9\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":18,\"i\":\"fa98d925-9416-4cc7-bd99-82d9d827493b\",\"w\":13,\"x\":21,\"y\":20},\"panelIndex\":\"fa98d925-9416-4cc7-bd99-82d9d827493b\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_10\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "37496460-56b8-11eb-b749-576de068f8ad" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "af42dd40-56bb-11eb-b749-576de068f8ad" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "5fff2850-56bc-11eb-b749-576de068f8ad" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "f2f59d90-56be-11eb-b749-576de068f8ad" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "ee0266e0-56bb-11eb-b749-576de068f8ad" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "90f88dd0-56c0-11eb-b749-576de068f8ad" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "49dcaa80-56c0-11eb-b749-576de068f8ad" + }, + { + "name": "panel_8", + "type": "search", + "id": "8c28de50-56b5-11eb-b749-576de068f8ad" + }, + { + "name": "panel_9", + "type": "search", + "id": "fd575aa0-56b2-11eb-b749-576de068f8ad" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "a9a0f330-56bc-11eb-b749-576de068f8ad" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "37496460-56b8-11eb-b749-576de068f8ad", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc3NiwxXQ==", + "attributes": { + "title": "BSAP - Log Count", + "visState": "{\"title\":\"BSAP - Log Count\",\"type\":\"metric\",\"params\":{\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"type\":\"range\",\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":32}},\"dimensions\":{\"metrics\":[{\"type\":\"vis_dimension\",\"accessor\":1,\"format\":{\"id\":\"number\",\"params\":{}}}],\"bucket\":{\"type\":\"vis_dimension\",\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}}}},\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:bsap*\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "af42dd40-56bb-11eb-b749-576de068f8ad", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc3NywxXQ==", + "attributes": { + "title": "BSAP - Logs Over Time", + "visState": "{\"title\":\"BSAP - Logs Over Time\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"interpolate\":\"linear\",\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"labels\":{},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"YYYY-MM-DD HH:mm\"}},\"params\":{\"date\":true,\"interval\":\"PT3H\",\"intervalESValue\":3,\"intervalESUnit\":\"h\",\"format\":\"YYYY-MM-DD HH:mm\",\"bounds\":{\"min\":\"2020-07-21T04:54:40.645Z\",\"max\":\"2020-07-27T11:08:08.319Z\"}},\"label\":\"firstPacket per 3 hours\",\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek.logType: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"2020-07-21T04:54:40.645Z\",\"to\":\"2020-07-27T11:08:08.319Z\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:bsap*\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5fff2850-56bc-11eb-b749-576de068f8ad", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc3OCwxXQ==", + "attributes": { + "title": "BSAP - Source IP", + "visState": "{\"title\":\"BSAP - Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Source Port\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.orig_h\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.orig_p\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Source Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:bsap*header\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "f2f59d90-56be-11eb-b749-576de068f8ad", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc3OSwxXQ==", + "attributes": { + "title": "BSAP IP - Function", + "visState": "{\"title\":\"BSAP IP - Function\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek_bsap_ip_rdb.func_code: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bsap_ip_rdb.app_func_code\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Application Function\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bsap_ip_rdb.func_code\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Subfunction\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8c28de50-56b5-11eb-b749-576de068f8ad" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ee0266e0-56bb-11eb-b749-576de068f8ad", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc4MCwxXQ==", + "attributes": { + "title": "BSAP - Transport", + "visState": "{\"title\":\"BSAP - Transport\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":false,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek.proto: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.proto\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:bsap*\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "90f88dd0-56c0-11eb-b749-576de068f8ad", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc4MSwxXQ==", + "attributes": { + "title": "BSAP Serial - RDB Function", + "visState": "{\"title\":\"BSAP Serial - RDB Function\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek_bsap_serial_rdb.func_code: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bsap_serial_rdb.func_code\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"RDB Function\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "fd575aa0-56b2-11eb-b749-576de068f8ad" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "49dcaa80-56c0-11eb-b749-576de068f8ad", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc4MiwxXQ==", + "attributes": { + "title": "BSAP Serial - Function", + "visState": "{\"title\":\"BSAP Serial - Function\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":3,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Destination Function\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bsap_serial_header.type_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Message Type\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bsap_serial_header.sfun\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Source Function\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bsap_serial_header.dfun\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Destination Function\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_bsap_serial_header.nsb\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Node Status\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "fd575aa0-56b2-11eb-b749-576de068f8ad" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8c28de50-56b5-11eb-b749-576de068f8ad", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc4MywxXQ==", + "attributes": { + "title": "BSAP IP - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.logType", + "zeek.orig_h", + "zeek.resp_h", + "zeek_bsap_ip_rdb.app_func_code", + "zeek_bsap_ip_rdb.func_code", + "zeek_bsap_ip_rdb.node_status", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"kuery\",\"query\":\"zeek.logType:bsap_ip_*\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "fd575aa0-56b2-11eb-b749-576de068f8ad", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc4NCwxXQ==", + "attributes": { + "title": "BSAP Serial - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.logType", + "zeek.orig_h", + "zeek.resp_h", + "zeek_bsap_serial_header.type_name", + "zeek_bsap_serial_header.sfun", + "zeek_bsap_serial_header.dfun", + "zeek_bsap_serial_rdb.func_code", + "zeek_bsap_serial_header.nsb", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:bsap_serial_*\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "a9a0f330-56bc-11eb-b749-576de068f8ad", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc4NSwxXQ==", + "attributes": { + "title": "BSAP - Destination IP", + "visState": "{\"title\":\"BSAP - Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"drilldown\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek.resp_p: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.resp_h\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":500,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.resp_p\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek.logType:bsap*header\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c97bc964-5319-41e7-ad22-db28156a2ac1", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:24:59.492Z", + "version": "Wzc4NiwxXQ==", + "attributes": { + "title": "All Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.logType", + "zeek.service", + "zeek.action", + "zeek.result", + "srcIp", + "dstIp", + "dstPort", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:*\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/caef3ade-d289-4d05-a511-149f3e97f238.json b/Vagrant/resources/malcolm/kibana/dashboards/caef3ade-d289-4d05-a511-149f3e97f238.json new file mode 100644 index 0000000..52e4fad --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/caef3ade-d289-4d05-a511-149f3e97f238.json @@ -0,0 +1,493 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "caef3ade-d289-4d05-a511-149f3e97f238", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:33:44.355Z", + "version": "WzM0MzgsMV0=", + "attributes": { + "title": "SSH", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":26,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":26,\"w\":9,\"h\":18,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":9,\"y\":26,\"w\":11,\"h\":18,\"i\":\"8\"},\"panelIndex\":\"8\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":44,\"w\":22,\"h\":18,\"i\":\"13\"},\"panelIndex\":\"13\",\"embeddableConfig\":{\"table\":null,\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"14\"},\"panelIndex\":\"14\",\"embeddableConfig\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":27,\"y\":8,\"w\":21,\"h\":18,\"i\":\"15\"},\"panelIndex\":\"15\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":8,\"w\":19,\"h\":18,\"i\":\"1becdc6f-a3f4-46f7-b5b0-72a67a679e0f\"},\"panelIndex\":\"1becdc6f-a3f4-46f7-b5b0-72a67a679e0f\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":20,\"y\":26,\"w\":14,\"h\":18,\"i\":\"68d1576b-a947-46f9-a99d-b951a09a95c7\"},\"panelIndex\":\"68d1576b-a947-46f9-a99d-b951a09a95c7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":35,\"y\":44,\"w\":13,\"h\":18,\"i\":\"26424c79-7bf6-45f0-bf5c-ca687818490b\"},\"panelIndex\":\"26424c79-7bf6-45f0-bf5c-ca687818490b\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":22,\"y\":44,\"w\":13,\"h\":18,\"i\":\"db42e16c-0961-4dda-a58a-dd44b5197bcf\"},\"panelIndex\":\"db42e16c-0961-4dda-a58a-dd44b5197bcf\",\"embeddableConfig\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_10\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":34,\"y\":26,\"w\":14,\"h\":18,\"i\":\"4a419bd4-4f84-446b-b269-1f6f1c2c27fe\"},\"panelIndex\":\"4a419bd4-4f84-446b-b269-1f6f1c2c27fe\",\"embeddableConfig\":{},\"panelRefName\":\"panel_11\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":62,\"w\":48,\"h\":36,\"i\":\"4afc3dad-4ba2-4e21-9f31-87453145b668\"},\"panelIndex\":\"4afc3dad-4ba2-4e21-9f31-87453145b668\",\"embeddableConfig\":{},\"panelRefName\":\"panel_12\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\",\"time_zone\":\"America/Boise\"}}},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "14e6c4af-72c5-4ce3-94fc-0cb1d501af96" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "17a08d5e-7ee7-43ed-b7f4-eaed153bdb7d" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "71ef0954-81c5-4953-b455-f996b21e8f08" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "4d7cb8d4-9f67-4469-b3f5-74d6fb942d35" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "AWDHEYk4xQT5EBNmq4k5" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "35ca43f9-14cc-4266-8a55-25f859530ba2" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "eba2e900-4dd0-11ea-8336-d3388483188b" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "baa06220-4dd4-11ea-8336-d3388483188b" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "562d3ec0-4dd5-11ea-8336-d3388483188b" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "3760b940-4dd5-11ea-8336-d3388483188b" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "90422180-4dd4-11ea-8336-d3388483188b" + }, + { + "name": "panel_12", + "type": "search", + "id": "88a40703-9791-4f96-bc06-992f96c9b350" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "14e6c4af-72c5-4ce3-94fc-0cb1d501af96", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:00.506Z", + "version": "Wzc4OSwxXQ==", + "attributes": { + "visState": "{\"title\":\"SSH - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "SSH - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "88a40703-9791-4f96-bc06-992f96c9b350" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "17a08d5e-7ee7-43ed-b7f4-eaed153bdb7d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:00.506Z", + "version": "Wzc5MCwxXQ==", + "attributes": { + "visState": "{\"title\":\"SSH - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "SSH - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "88a40703-9791-4f96-bc06-992f96c9b350" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "71ef0954-81c5-4953-b455-f996b21e8f08", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:27:49.060Z", + "version": "WzM0MDEsMV0=", + "attributes": { + "title": "SSH - Destination IP Address", + "visState": "{\"title\":\"SSH - Destination IP Address\",\"type\":\"table\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"IP Address\"},\"schema\":\"bucket\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":5,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Port\"},\"schema\":\"bucket\"}],\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\"}}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "88a40703-9791-4f96-bc06-992f96c9b350" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4d7cb8d4-9f67-4469-b3f5-74d6fb942d35", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:00.506Z", + "version": "Wzc5MywxXQ==", + "attributes": { + "visState": "{\"title\":\"SSH - Client/Server\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssh.client\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Client\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssh.server\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Server\"}}],\"listeners\":{}}", + "description": "", + "title": "SSH - Client/Server", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "88a40703-9791-4f96-bc06-992f96c9b350" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHEYk4xQT5EBNmq4k5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:00.506Z", + "version": "Wzc5NCwxXQ==", + "attributes": { + "title": "SSH - Log Count", + "visState": "{\"title\":\"SSH - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "88a40703-9791-4f96-bc06-992f96c9b350" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "35ca43f9-14cc-4266-8a55-25f859530ba2", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:00.506Z", + "version": "Wzc5NSwxXQ==", + "attributes": { + "title": "SSH -Server", + "visState": "{\"title\":\"SSH -Server\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssh.server\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Server\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "88a40703-9791-4f96-bc06-992f96c9b350" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "eba2e900-4dd0-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:25:38.325Z", + "version": "WzMzNzYsMV0=", + "attributes": { + "title": "SSH - Version", + "visState": "{\"title\":\"SSH - Version\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_ssh.version\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":8,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"SSH Version\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":false,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"SSH Version\",\"aggType\":\"terms\"}]}}}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "88a40703-9791-4f96-bc06-992f96c9b350" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "baa06220-4dd4-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:00.506Z", + "version": "Wzc5NywxXQ==", + "attributes": { + "title": "SSH - Client Algorithms", + "visState": "{\"title\":\"SSH - Client Algorithms\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Algorithms Offered by Server\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssh.hasshAlgorithms\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Algorithms Offered by Client\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "88a40703-9791-4f96-bc06-992f96c9b350" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "562d3ec0-4dd5-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:00.506Z", + "version": "WzgwMCwxXQ==", + "attributes": { + "title": "SSH - HASSH Server Hash", + "visState": "{\"title\":\"SSH - HASSH Server Hash\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"HASSH Client Hash\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssh.hasshServer\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"HASSH Server Hash\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "88a40703-9791-4f96-bc06-992f96c9b350" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "3760b940-4dd5-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:00.506Z", + "version": "Wzc5OSwxXQ==", + "attributes": { + "title": "SSH - HASSH Client Hash", + "visState": "{\"title\":\"SSH - HASSH Client Hash\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"HASSH Client Hash\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssh.hassh\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"HASSH Client Hash\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "88a40703-9791-4f96-bc06-992f96c9b350" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "90422180-4dd4-11ea-8336-d3388483188b", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:00.506Z", + "version": "Wzc5OCwxXQ==", + "attributes": { + "title": "SSH - Server Algorithms", + "visState": "{\"title\":\"SSH - Server Algorithms\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Algorithms Offered by Client\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_ssh.hasshServerAlgorithms\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Algorithms Offered by Server\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "88a40703-9791-4f96-bc06-992f96c9b350" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "88a40703-9791-4f96-bc06-992f96c9b350", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:00.506Z", + "version": "WzgwMSwxXQ==", + "attributes": { + "title": "SSH - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_ssh.auth_success", + "zeek_ssh.sshka", + "zeek_ssh.cipher_alg", + "zeek_ssh.mac_alg", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:ssh\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/d41fe630-3f98-11e9-a58e-8bdedb0915e8.json b/Vagrant/resources/malcolm/kibana/dashboards/d41fe630-3f98-11e9-a58e-8bdedb0915e8.json new file mode 100644 index 0000000..d9628e7 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/d41fe630-3f98-11e9-a58e-8bdedb0915e8.json @@ -0,0 +1,210 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "d41fe630-3f98-11e9-a58e-8bdedb0915e8", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:01.513Z", + "version": "WzgwMiwxXQ==", + "attributes": { + "title": "Connections - Source - Originator Bytes (region map)", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":23,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":50,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":3},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":23,\"w\":8,\"h\":15,\"i\":\"aa2d7102-11ce-426c-9979-82d5bd6d6d3b\"},\"panelIndex\":\"aa2d7102-11ce-426c-9979-82d5bd6d6d3b\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":38,\"w\":8,\"h\":12,\"i\":\"8519445c-b38a-4d86-bff3-e42b2b231ca4\"},\"panelIndex\":\"8519445c-b38a-4d86-bff3-e42b2b231ca4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"*\",\"language\":\"lucene\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "89122c10-3f94-11e9-a58e-8bdedb0915e8" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "89122c10-3f94-11e9-a58e-8bdedb0915e8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:01.513Z", + "version": "WzgwNCwxXQ==", + "attributes": { + "title": "Connections - Source - Originator Bytes (region map)", + "visState": "{\"title\":\"Connections - Source - Originator Bytes (region map)\",\"type\":\"region_map\",\"params\":{\"addTooltip\":true,\"colorSchema\":\"Green to Red\",\"emsHotLink\":null,\"isDisplayWarning\":false,\"legendPosition\":\"bottomright\",\"mapCenter\":[0,0],\"mapZoom\":2,\"outlineWeight\":1,\"selectedJoinField\":{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},\"selectedLayer\":{\"attribution\":\"https://exploratory.io/maps\",\"fields\":[{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},{\"description\":\"Country Code2\",\"name\":\"WB_A2\"},{\"description\":\"Country Name\",\"name\":\"NAME\"}],\"format\":{\"type\":\"geojson\"},\"isEMS\":false,\"layerId\":\"self_hosted.World (offline)\",\"meta\":{\"feature_collection_path\":\"data\"},\"name\":\"World (offline)\",\"url\":\"/world.geojson\"},\"showAllShapes\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"selectedTmsLayer\":{\"origin\":\"elastic_maps_service\",\"id\":\"road_map\",\"minZoom\":0,\"maxZoom\":10,\"attribution\":\"OpenStreetMap contributors | OpenMapTiles | MapTiler | Elastic Maps Service\"}},\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Originator Bytes\",\"aggType\":\"cardinality\"},\"bucket\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Originator Country\",\"aggType\":\"terms\"}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek_conn.orig_bytes\",\"customLabel\":\"Originator Bytes\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"srcGEO\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Originator Country\"}}]}", + "uiStateJSON": "{\"mapCenter\":[37.73168660636539,16.171875000000004],\"mapZoom\":3}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NCwxXQ==", + "attributes": { + "title": "Connections - Protocol Filters", + "visState": "{\"title\":\"Connections - Protocol Filters\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1581606976709\",\"fieldName\":\"network.type\",\"parent\":\"\",\"label\":\"Network Layer\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1581606723028\",\"fieldName\":\"zeek.proto\",\"parent\":\"\",\"label\":\"Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"},{\"id\":\"1581606665268\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Service\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_2_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_1_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_2_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/d4fd6afd-15cb-42bf-8a25-03dd8e59b327.json b/Vagrant/resources/malcolm/kibana/dashboards/d4fd6afd-15cb-42bf-8a25-03dd8e59b327.json new file mode 100644 index 0000000..3ccf62e --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/d4fd6afd-15cb-42bf-8a25-03dd8e59b327.json @@ -0,0 +1,210 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "d4fd6afd-15cb-42bf-8a25-03dd8e59b327", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:02.530Z", + "version": "WzgwOCwxXQ==", + "attributes": { + "title": "Connections - Destination - Responder Bytes", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":23,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":50,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":3},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":23,\"w\":8,\"h\":15,\"i\":\"d4b659f9-f6be-441e-a6c4-ea4acab7619d\"},\"panelIndex\":\"d4b659f9-f6be-441e-a6c4-ea4acab7619d\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":38,\"w\":8,\"h\":12,\"i\":\"a23bbf3d-6744-4dc7-a46a-50f450b6bff4\"},\"panelIndex\":\"a23bbf3d-6744-4dc7-a46a-50f450b6bff4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "ba8e479e-49b0-427e-a919-72aa774cedba" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ba8e479e-49b0-427e-a919-72aa774cedba", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:02.530Z", + "version": "WzgxMCwxXQ==", + "attributes": { + "visState": "{\"title\":\"Connections - Destination - Responder Bytes\",\"type\":\"tile_map\",\"params\":{\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true,\"heatMaxZoom\":0,\"heatMinOpacity\":0.1,\"heatRadius\":25,\"heatBlur\":15,\"heatNormalizeData\":true,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"mapCenter\":[0,0],\"wms\":{\"enabled\":false,\"url\":\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\",\"options\":{\"version\":\"1.3.0\",\"layers\":\"0\",\"format\":\"image/png\",\"transparent\":true,\"attribution\":\"Maps provided by USGS\",\"styles\":\"\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek_conn.resp_bytes\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"geohash_grid\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.destination_geo.location\",\"autoPrecision\":true,\"useGeocentroid\":true,\"precision\":2}}],\"listeners\":{}}", + "description": "", + "title": "Connections - Destination - Responder Bytes", + "uiStateJSON": "{\"mapZoom\":3,\"mapCenter\":[39.70718665682654,-44.912109375]}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NCwxXQ==", + "attributes": { + "title": "Connections - Protocol Filters", + "visState": "{\"title\":\"Connections - Protocol Filters\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1581606976709\",\"fieldName\":\"network.type\",\"parent\":\"\",\"label\":\"Network Layer\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1581606723028\",\"fieldName\":\"zeek.proto\",\"parent\":\"\",\"label\":\"Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"},{\"id\":\"1581606665268\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Service\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_2_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_1_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_2_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/e09a4b86-29b5-4256-bb3b-802ac9f90404.json b/Vagrant/resources/malcolm/kibana/dashboards/e09a4b86-29b5-4256-bb3b-802ac9f90404.json new file mode 100644 index 0000000..882202f --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/e09a4b86-29b5-4256-bb3b-802ac9f90404.json @@ -0,0 +1,210 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "e09a4b86-29b5-4256-bb3b-802ac9f90404", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:03.541Z", + "version": "WzgxNCwxXQ==", + "attributes": { + "title": "Connections - Source - Top Connection Duration", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":23,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":50,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":null},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":23,\"w\":8,\"h\":15,\"i\":\"03359f20-178f-4878-b423-ec2b347e5d9a\"},\"panelIndex\":\"03359f20-178f-4878-b423-ec2b347e5d9a\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":38,\"w\":8,\"h\":12,\"i\":\"e854052a-b93b-4de5-8ae3-46cef99a54ce\"},\"panelIndex\":\"e854052a-b93b-4de5-8ae3-46cef99a54ce\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\",\"default_field\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "66e7f9d4-2a90-4708-b313-ca1cc2dbd89f" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "66e7f9d4-2a90-4708-b313-ca1cc2dbd89f", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:03.541Z", + "version": "WzgxNiwxXQ==", + "attributes": { + "visState": "{\"title\":\"Connections - Source - Top Connection Duration\",\"type\":\"tile_map\",\"params\":{\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true,\"heatMaxZoom\":0,\"heatMinOpacity\":0.1,\"heatRadius\":25,\"heatBlur\":15,\"heatNormalizeData\":true,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"mapCenter\":[0,0],\"wms\":{\"enabled\":false,\"url\":\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\",\"options\":{\"version\":\"1.3.0\",\"layers\":\"0\",\"format\":\"image/png\",\"transparent\":true,\"attribution\":\"Maps provided by USGS\",\"styles\":\"\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek_conn.duration\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"geohash_grid\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.source_geo.location\",\"autoPrecision\":true,\"useGeocentroid\":true,\"precision\":2}}],\"listeners\":{}}", + "description": "", + "title": "Connections - Source - Top Connection Duration", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NCwxXQ==", + "attributes": { + "title": "Connections - Protocol Filters", + "visState": "{\"title\":\"Connections - Protocol Filters\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1581606976709\",\"fieldName\":\"network.type\",\"parent\":\"\",\"label\":\"Network Layer\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1581606723028\",\"fieldName\":\"zeek.proto\",\"parent\":\"\",\"label\":\"Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"},{\"id\":\"1581606665268\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Service\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_2_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_1_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_2_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/e76d05c0-eb9f-11e9-a384-0fcf32210194.json b/Vagrant/resources/malcolm/kibana/dashboards/e76d05c0-eb9f-11e9-a384-0fcf32210194.json new file mode 100644 index 0000000..656bcef --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/e76d05c0-eb9f-11e9-a384-0fcf32210194.json @@ -0,0 +1,478 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "e76d05c0-eb9f-11e9-a384-0fcf32210194", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:04.558Z", + "version": "WzgyMCwxXQ==", + "attributes": { + "title": "S7comm", + "hits": 0, + "description": "", + "panelsJSON": "[{\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":51,\"i\":\"1\"},\"panelIndex\":\"1\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_0\",\"embeddableConfig\":{}},{\"embeddableConfig\":{},\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":14,\"i\":\"2\"},\"panelIndex\":\"2\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":14,\"i\":\"3\"},\"panelIndex\":\"3\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":28,\"y\":34,\"w\":20,\"h\":17,\"i\":\"7\"},\"panelIndex\":\"7\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":8,\"y\":34,\"w\":20,\"h\":17,\"i\":\"8\"},\"panelIndex\":\"8\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":8,\"y\":14,\"w\":20,\"h\":20,\"i\":\"10\"},\"panelIndex\":\"10\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":28,\"y\":14,\"w\":20,\"h\":20,\"i\":\"11\"},\"panelIndex\":\"11\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":24,\"y\":51,\"w\":24,\"h\":20,\"i\":\"13\"},\"panelIndex\":\"13\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":51,\"w\":24,\"h\":20,\"i\":\"14\"},\"panelIndex\":\"14\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_8\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":71,\"w\":48,\"h\":35,\"i\":\"15\"},\"panelIndex\":\"15\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_9\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "24c75a10-eba0-11e9-a384-0fcf32210194" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "455369e0-eba0-11e9-a384-0fcf32210194" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "739fdf30-eba1-11e9-a384-0fcf32210194" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "32d94580-eba2-11e9-a384-0fcf32210194" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "0b553f40-eba8-11e9-a384-0fcf32210194" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "2b801c40-eba8-11e9-a384-0fcf32210194" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "a5ed7c10-eeb0-11e9-bdef-65a192b7f586" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "bb650520-eeb2-11e9-bdef-65a192b7f586" + }, + { + "name": "panel_9", + "type": "search", + "id": "484253d0-eb9d-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "24c75a10-eba0-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:04.558Z", + "version": "WzgyMiwxXQ==", + "attributes": { + "title": "S7comm - Log Count", + "visState": "{\"title\":\"S7comm - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":36}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"Log Count\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[{\"meta\":{\"type\":\"phrases\",\"key\":\"zeek.logType\",\"value\":\"s7comm, iso_cotp\",\"params\":[\"s7comm\",\"iso_cotp\"],\"negate\":false,\"disabled\":false,\"alias\":\"Zeek Log Type\",\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"bool\":{\"should\":[{\"match_phrase\":{\"zeek.logType\":\"s7comm\"}},{\"match_phrase\":{\"zeek.logType\":\"iso_cotp\"}}],\"minimum_should_match\":1}},\"$state\":{\"store\":\"appState\"}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "455369e0-eba0-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:04.558Z", + "version": "WzgyMywxXQ==", + "attributes": { + "title": "S7comm - Logs Over Time", + "visState": "{\"title\":\"S7comm - Logs Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"now-25y\",\"to\":\"now\",\"mode\":\"relative\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek.logType\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Log Type\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[{\"meta\":{\"type\":\"phrases\",\"key\":\"zeek.logType\",\"value\":\"s7comm, iso_cotp\",\"params\":[\"s7comm\",\"iso_cotp\"],\"negate\":false,\"disabled\":false,\"alias\":\"Zeek Log Type\",\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"bool\":{\"should\":[{\"match_phrase\":{\"zeek.logType\":\"s7comm\"}},{\"match_phrase\":{\"zeek.logType\":\"iso_cotp\"}}],\"minimum_should_match\":1}},\"$state\":{\"store\":\"appState\"}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "739fdf30-eba1-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:04.558Z", + "version": "WzgyNCwxXQ==", + "attributes": { + "title": "S7comm - Message Type", + "visState": "{\"title\":\"S7comm - Message Type\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_s7comm.rosctr\",\"size\":15,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Message Type\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "484253d0-eb9d-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "32d94580-eba2-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:04.558Z", + "version": "WzgyNSwxXQ==", + "attributes": { + "title": "COTP - PDU Type", + "visState": "{\"title\":\"COTP - PDU Type\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_iso_cotp.pdu_type\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"PDU Type\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "9a78c670-eb9d-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0b553f40-eba8-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:04.558Z", + "version": "WzgyNiwxXQ==", + "attributes": { + "title": "S7comm - Source IP", + "visState": "{\"title\":\"S7comm - Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"size\":250,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "81417210-eba2-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "2b801c40-eba8-11e9-a384-0fcf32210194", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:04.558Z", + "version": "WzgyNywxXQ==", + "attributes": { + "title": "S7comm - Destination IP", + "visState": "{\"title\":\"S7comm - Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"size\":250,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "81417210-eba2-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "a5ed7c10-eeb0-11e9-bdef-65a192b7f586", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:04.558Z", + "version": "WzgyOCwxXQ==", + "attributes": { + "title": "S7comm - User Data", + "visState": "{\"title\":\"S7comm - User Data\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_s7comm.parameters.group\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Function Group\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_s7comm.parameters.mode\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Function Mode\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_s7comm.parameters.sub\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Sub Parameter\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"zeek_s7comm.rosctr:\\\"User Data\\\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "484253d0-eb9d-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "bb650520-eeb2-11e9-bdef-65a192b7f586", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:04.558Z", + "version": "WzgyOSwxXQ==", + "attributes": { + "title": "S7comm - Job Request and Acknowledgement", + "visState": "{\"title\":\"S7comm - Job Request and Acknowledgement\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":false,\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"},\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_s7comm.rosctr\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Message Type\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_s7comm.parameters.type\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Message\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_s7comm.parameters.class\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Error Class\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_s7comm.parameters.code\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Error Code\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"zeek_s7comm.rosctr:(\\\"Acknowledge Data\\\" OR \\\"Job\\\")\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "484253d0-eb9d-11e9-a384-0fcf32210194" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "484253d0-eb9d-11e9-a384-0fcf32210194", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:04.558Z", + "version": "WzgzMCwxXQ==", + "attributes": { + "title": "S7comm - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_s7comm.rosctr", + "zeek_s7comm.parameter", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":\"zeek.logType:s7comm\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "9a78c670-eb9d-11e9-a384-0fcf32210194", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:04.558Z", + "version": "WzgzMSwxXQ==", + "attributes": { + "title": "Connection-Oriented Transport Protocol - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "zeek.orig_p", + "dstIp", + "zeek.resp_p", + "zeek_iso_cotp.pdu_type", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:iso_cotp\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "81417210-eba2-11e9-a384-0fcf32210194", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:04.558Z", + "version": "WzgzMiwxXQ==", + "attributes": { + "title": "S7comm and Related - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "zeek_iso_cotp.pdu_type", + "zeek_s7comm.parameter", + "zeek_s7comm.data_info", + "zeek_s7comm.rosctr", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":\"zeek.logType:(iso_cotp OR s7comm)\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/ed8a6640-3f98-11e9-a58e-8bdedb0915e8.json b/Vagrant/resources/malcolm/kibana/dashboards/ed8a6640-3f98-11e9-a58e-8bdedb0915e8.json new file mode 100644 index 0000000..d2ea984 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/ed8a6640-3f98-11e9-a58e-8bdedb0915e8.json @@ -0,0 +1,138 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "ed8a6640-3f98-11e9-a58e-8bdedb0915e8", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:05.562Z", + "version": "WzgzMywxXQ==", + "attributes": { + "title": "Connections - Source - Responder Bytes (region map)", + "hits": 0, + "description": "", + "panelsJSON": "[{\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":44,\"i\":\"2\"},\"panelIndex\":\"2\",\"version\":\"7.6.2\",\"panelRefName\":\"panel_0\"},{\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":40,\"i\":\"3\"},\"version\":\"7.6.2\",\"panelIndex\":\"3\",\"embeddableConfig\":{\"mapCenter\":[0,0],\"mapZoom\":3},\"panelRefName\":\"panel_1\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"default_field\":\"*\",\"query\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "18420e50-3f95-11e9-a58e-8bdedb0915e8" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "18420e50-3f95-11e9-a58e-8bdedb0915e8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:05.562Z", + "version": "WzgzNSwxXQ==", + "attributes": { + "title": "Connections - Source - Responder Bytes (region map)", + "visState": "{\"title\":\"Connections - Source - Responder Bytes (region map)\",\"type\":\"region_map\",\"params\":{\"addTooltip\":true,\"colorSchema\":\"Green to Red\",\"emsHotLink\":null,\"isDisplayWarning\":false,\"legendPosition\":\"bottomright\",\"mapCenter\":[0,0],\"mapZoom\":3,\"outlineWeight\":1,\"selectedJoinField\":{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},\"selectedLayer\":{\"attribution\":\"https://exploratory.io/maps\",\"fields\":[{\"description\":\"Country Code\",\"name\":\"ISO_A2\"},{\"description\":\"Country Code2\",\"name\":\"WB_A2\"},{\"description\":\"Country Name\",\"name\":\"NAME\"}],\"format\":{\"type\":\"geojson\"},\"isEMS\":false,\"layerId\":\"self_hosted.World (offline)\",\"meta\":{\"feature_collection_path\":\"data\"},\"name\":\"World (offline)\",\"url\":\"/world.geojson\"},\"showAllShapes\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"cardinality\",\"schema\":\"metric\",\"params\":{\"field\":\"zeek_conn.resp_bytes\",\"customLabel\":\"Responder Bytes\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"srcGEO\",\"size\":250,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Originator Country\"}}]}", + "uiStateJSON": "{\"mapCenter\":[0,0],\"mapZoom\":3}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/f1f09567-fc7f-450b-a341-19d2f2bb468b.json b/Vagrant/resources/malcolm/kibana/dashboards/f1f09567-fc7f-450b-a341-19d2f2bb468b.json new file mode 100644 index 0000000..52409d8 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/f1f09567-fc7f-450b-a341-19d2f2bb468b.json @@ -0,0 +1,491 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "f1f09567-fc7f-450b-a341-19d2f2bb468b", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "WzgzNywxXQ==", + "attributes": { + "title": "Notices", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"h\":11,\"i\":\"4\",\"w\":32,\"x\":16,\"y\":0},\"panelIndex\":\"4\",\"embeddableConfig\":{\"legendOpen\":false,\"vis\":{\"legendOpen\":true}},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":30,\"i\":\"5\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"5\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"7\",\"w\":13,\"x\":0,\"y\":30},\"panelIndex\":\"7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"8\",\"w\":13,\"x\":13,\"y\":30},\"panelIndex\":\"8\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"11\",\"w\":17,\"x\":8,\"y\":11},\"panelIndex\":\"11\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"12\",\"w\":24,\"x\":24,\"y\":67},\"panelIndex\":\"12\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"13\",\"w\":24,\"x\":0,\"y\":67},\"panelIndex\":\"13\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"14\",\"w\":11,\"x\":25,\"y\":11},\"panelIndex\":\"14\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":18,\"i\":\"15\",\"w\":48,\"x\":0,\"y\":49},\"panelIndex\":\"15\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_8\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":11,\"i\":\"16\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"16\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":24,\"i\":\"17\",\"w\":48,\"x\":0,\"y\":86},\"panelIndex\":\"17\",\"embeddableConfig\":{},\"panelRefName\":\"panel_10\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"18\",\"w\":22,\"x\":26,\"y\":30},\"panelIndex\":\"18\",\"embeddableConfig\":{},\"panelRefName\":\"panel_11\"},{\"version\":\"7.6.2\",\"gridData\":{\"h\":19,\"i\":\"19\",\"w\":12,\"x\":36,\"y\":11},\"panelIndex\":\"19\",\"embeddableConfig\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"asc\"}},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}},\"panelRefName\":\"panel_12\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "0455b814-9b8e-4895-985d-c0d484bb025c" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "abb2c718-e1f5-4b59-9c3d-54082ee3a407" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "af961658-7f3d-4f88-b35f-76d1b6f49002" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "519823ff-ee5b-4051-9dd5-0467e595ab25" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "8f4a6c67-6833-4c53-b874-4341df5f181d" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "47adad3a-a0d2-46eb-a957-1886abd4472d" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "8a911a83-3962-44b8-be39-b54532f51b46" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "8da041f0-ea80-4841-aabc-ae32c40f20c5" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "AWDG1uC-xQT5EBNmq3dP" + }, + { + "name": "panel_10", + "type": "search", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "cd33ef1d-d5b8-43aa-8ae1-2534f0b79759" + }, + { + "name": "panel_12", + "type": "visualization", + "id": "559cf002-6086-4655-908e-d1f757cd58a9" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "0455b814-9b8e-4895-985d-c0d484bb025c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "WzgzOCwxXQ==", + "attributes": { + "title": "Notices - Log Count Over Time", + "visState": "{\"title\":\"Notices - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"stacked\",\"type\":\"histogram\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"type\":\"line\",\"labels\":{},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"date\",\"params\":{\"pattern\":\"HH:mm:ss\"}},\"params\":{\"date\":true,\"interval\":\"PT1S\",\"intervalESValue\":1,\"intervalESUnit\":\"s\",\"format\":\"HH:mm:ss\",\"bounds\":{\"min\":\"2017-04-16T17:22:12.510Z\",\"max\":\"2017-04-16T17:23:40.195Z\"}},\"label\":\"firstPacket per second\",\"aggType\":\"date_histogram\"},\"y\":[{\"accessor\":2,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Notice Category\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"timeRange\":{\"from\":\"2017-04-16T17:22:12.510Z\",\"to\":\"2017-04-16T17:23:40.195Z\"},\"useNormalizedEsInterval\":true,\"scaleMetricValues\":false,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"zeek_notice.category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Notice Category\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "abb2c718-e1f5-4b59-9c3d-54082ee3a407", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0MCwxXQ==", + "attributes": { + "visState": "{\"title\":\"Notices - Source IP Addresses\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Notices - Source IP Addresses", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "af961658-7f3d-4f88-b35f-76d1b6f49002", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0MSwxXQ==", + "attributes": { + "visState": "{\"title\":\"Notices - Destination IP Addresses\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "Notices - Destination IP Addresses", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "519823ff-ee5b-4051-9dd5-0467e595ab25", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0MiwxXQ==", + "attributes": { + "title": "Notices - Notice Type", + "visState": "{\"title\":\"Notices - Notice Type\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Notice Category\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Notice Category\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.sub_category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Notice Subcategory\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8f4a6c67-6833-4c53-b874-4341df5f181d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0MywxXQ==", + "attributes": { + "visState": "{\"title\":\"Notices - File MIME Type\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.file_mime_type\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"MIME Type\"}}],\"listeners\":{}}", + "description": "", + "title": "Notices - File MIME Type", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "47adad3a-a0d2-46eb-a957-1886abd4472d", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0NCwxXQ==", + "attributes": { + "visState": "{\"title\":\"Notices - File Description\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.file_desc\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Description\"}}],\"listeners\":{}}", + "description": "", + "title": "Notices - File Description", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8a911a83-3962-44b8-be39-b54532f51b46", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0NSwxXQ==", + "attributes": { + "title": "Notice - Destination Port", + "visState": "{\"title\":\"Notice - Destination Port\",\"type\":\"histogram\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"Port\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"square root\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"number\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Port\",\"aggType\":\"terms\"},\"y\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"dstPort\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8da041f0-ea80-4841-aabc-ae32c40f20c5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0NiwxXQ==", + "attributes": { + "title": "Notice - Message Details", + "visState": "{\"title\":\"Notice - Message Details\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":4,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Category\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Subcategory\",\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Message\",\"aggType\":\"terms\"},{\"accessor\":3,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Sub-Message\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Category\"}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.sub_category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Subcategory\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.msg\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":25,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Message\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":3,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDG1uC-xQT5EBNmq3dP", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0NywxXQ==", + "attributes": { + "title": "Notices - Log Count", + "visState": "{\"title\":\"Notices - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0OCwxXQ==", + "attributes": { + "title": "Notices - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek_notice.category", + "zeek_notice.sub_category", + "zeek_notice.msg", + "srcIp", + "dstIp", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:notice\",\"default_field\":\"*\"}}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "cd33ef1d-d5b8-43aa-8ae1-2534f0b79759", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg0OSwxXQ==", + "attributes": { + "title": "Notices - Notice Types by Source and Destination", + "visState": "{\"title\":\"Notices - Notice Types by Source and Destination\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":4,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Note\",\"aggType\":\"terms\"},{\"accessor\":1,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Source IP Address\",\"aggType\":\"terms\"},{\"accessor\":2,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"ip\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Destination IP Address\",\"aggType\":\"terms\"},{\"accessor\":3,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"-\"}},\"params\":{},\"label\":\"Notice Category\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"5\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Notice Category\"}},{\"id\":\"6\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_notice.sub_category\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":250,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Notice Subcategory\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP Address\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP Address\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":4,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "559cf002-6086-4655-908e-d1f757cd58a9", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:06.578Z", + "version": "Wzg1MCwxXQ==", + "attributes": { + "title": "Notices - Destination Country", + "visState": "{\"title\":\"Notices - Destination Country\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"showMetricsAtAllLevels\":false,\"percentageCol\":\"\",\"dimensions\":{\"metrics\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Destination Country\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek.destination_geo.country_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":100,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Country\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "8f003748-a6f8-4244-9d4e-e38e4a48da4c" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/f394057d-1b16-4174-b994-7045f423a416.json b/Vagrant/resources/malcolm/kibana/dashboards/f394057d-1b16-4174-b994-7045f423a416.json new file mode 100644 index 0000000..c33e32d --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/f394057d-1b16-4174-b994-7045f423a416.json @@ -0,0 +1,210 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "f394057d-1b16-4174-b994-7045f423a416", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1MSwxXQ==", + "attributes": { + "title": "Connections - Source - Sum of Total Bytes", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":23,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":50,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{\"mapCenter\":null,\"mapZoom\":3},\"panelRefName\":\"panel_1\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":23,\"w\":8,\"h\":15,\"i\":\"0a22cd88-c236-4994-9b27-db3f5b731d7f\"},\"panelIndex\":\"0a22cd88-c236-4994-9b27-db3f5b731d7f\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.6.2\",\"gridData\":{\"x\":0,\"y\":38,\"w\":8,\"h\":12,\"i\":\"4a3f5963-08e0-4206-aede-70e943fed585\"},\"panelIndex\":\"4a3f5963-08e0-4206-aede-70e943fed585\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"*\",\"default_field\":\"*\"}}}}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "c964c032-31ce-4397-bac3-f6b625e66548" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c964c032-31ce-4397-bac3-f6b625e66548", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1MywxXQ==", + "attributes": { + "visState": "{\"title\":\"Connections - Source - Sum of Total Bytes\",\"type\":\"tile_map\",\"params\":{\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":true,\"addTooltip\":true,\"heatMaxZoom\":0,\"heatMinOpacity\":0.1,\"heatRadius\":25,\"heatBlur\":15,\"heatNormalizeData\":true,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"mapCenter\":[0,0],\"wms\":{\"enabled\":false,\"url\":\"https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer\",\"options\":{\"version\":\"1.3.0\",\"layers\":\"0\",\"format\":\"image/png\",\"transparent\":true,\"attribution\":\"Maps provided by USGS\",\"styles\":\"\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"schema\":\"metric\",\"params\":{\"field\":\"totBytes\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"geohash_grid\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek.source_geo.location\",\"autoPrecision\":true,\"useGeocentroid\":true,\"precision\":2}}],\"listeners\":{}}", + "description": "", + "title": "Connections - Source - Sum of Total Bytes", + "uiStateJSON": "{\"mapZoom\":3,\"mapCenter\":[39.70718665682654,-44.912109375]}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "623ef480-4e73-11ea-b4e7-0f540ddf3a49", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NCwxXQ==", + "attributes": { + "title": "Connections - Protocol Filters", + "visState": "{\"title\":\"Connections - Protocol Filters\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1581606976709\",\"fieldName\":\"network.type\",\"parent\":\"\",\"label\":\"Network Layer\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1581606723028\",\"fieldName\":\"zeek.proto\",\"parent\":\"\",\"label\":\"Protocol\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"},{\"id\":\"1581606665268\",\"fieldName\":\"zeek.service\",\"parent\":\"\",\"label\":\"Service\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_2_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "control_0_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_1_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + }, + { + "name": "control_2_index_pattern", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "4dd65202-bd19-40d6-9e0d-ff41c6d5a4b5", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NSwxXQ==", + "attributes": { + "title": "Connections - Maps", + "visState": "{\"title\":\"Connections - Maps\",\"type\":\"markdown\",\"params\":{\"fontSize\":10,\"markdown\":\"#### Coordinate Maps\\n[Source - Originator Bytes](/kibana/app/dashboards#/view/b50c8d17-6ed3-4de6-aed4-5181032810b2) ● [Destination - Responder Bytes](/kibana/app/dashboards#/view/d4fd6afd-15cb-42bf-8a25-03dd8e59b327) ● [Source - Sum of Total Bytes](/kibana/app/dashboards#/view/f394057d-1b16-4174-b994-7045f423a416) ● [Destination - Sum of Total Bytes](/kibana/app/dashboards#/view/60d78fbd-471c-4f59-a9e3-189b33a13644) ● [Source - Top Connection Duration](/kibana/app/dashboards#/view/e09a4b86-29b5-4256-bb3b-802ac9f90404) ● [Destination - Top Connection Duration](/kibana/app/dashboards#/view/0aed0e23-c8ac-4f2b-9f68-d04b6e7666b0) \\n#### Region Maps\\n[Source - Originator Bytes ](/kibana/app/dashboards#/view/d41fe630-3f98-11e9-a58e-8bdedb0915e8) ● [Destination - Responder Bytes ](/kibana/app/dashboards#/view/77fc9960-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Sum of Total Bytes ](/kibana/app/dashboards#/view/1ce42250-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Sum of Total Bytes ](/kibana/app/dashboards#/view/a16110b0-3f99-11e9-a58e-8bdedb0915e8) ● [Source - Top Connection Duration ](/kibana/app/dashboards#/view/39abfe30-3f99-11e9-a58e-8bdedb0915e8) ● [Destination - Top Connection Duration ](/kibana/app/dashboards#/view/b9f247c0-3f99-11e9-a58e-8bdedb0915e8)\",\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "52570870-e9d4-444f-a3df-e44c6757ed9f", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:07.590Z", + "version": "Wzg1NiwxXQ==", + "attributes": { + "title": "Connections - Logs", + "description": "", + "hits": 0, + "columns": [ + "zeek.proto", + "zeek.service", + "srcIp", + "srcPort", + "dstIp", + "dstPort", + "totBytes", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"query\":{\"query_string\":{\"query\":\"zeek.logType:conn\",\"analyze_wildcard\":true}},\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/f77bf097-18a8-465c-b634-eb2acc7a4f26.json b/Vagrant/resources/malcolm/kibana/dashboards/f77bf097-18a8-465c-b634-eb2acc7a4f26.json new file mode 100644 index 0000000..d309da4 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/f77bf097-18a8-465c-b634-eb2acc7a4f26.json @@ -0,0 +1,493 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "f77bf097-18a8-465c-b634-eb2acc7a4f26", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T17:56:05.373Z", + "version": "WzMwNTMsMV0=", + "attributes": { + "title": "RFB", + "hits": 0, + "description": "", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"h\":27,\"i\":\"1\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":8,\"i\":\"3\",\"w\":32,\"x\":16,\"y\":0},\"panelIndex\":\"3\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{\"legendOpen\":true,\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":19,\"i\":\"5\",\"w\":13,\"x\":8,\"y\":8},\"panelIndex\":\"5\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":19,\"i\":\"7\",\"w\":13,\"x\":21,\"y\":8},\"panelIndex\":\"7\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":21,\"i\":\"8\",\"w\":18,\"x\":0,\"y\":27},\"panelIndex\":\"8\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":22,\"i\":\"11\",\"w\":16,\"x\":0,\"y\":48},\"panelIndex\":\"11\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":22,\"i\":\"12\",\"w\":16,\"x\":16,\"y\":48},\"panelIndex\":\"12\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":22,\"i\":\"13\",\"w\":16,\"x\":32,\"y\":48},\"panelIndex\":\"13\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":21,\"i\":\"14\",\"w\":15,\"x\":33,\"y\":27},\"panelIndex\":\"14\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_8\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":21,\"i\":\"15\",\"w\":15,\"x\":18,\"y\":27},\"panelIndex\":\"15\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_9\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":19,\"i\":\"16\",\"w\":14,\"x\":34,\"y\":8},\"panelIndex\":\"16\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_10\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":8,\"i\":\"17\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"17\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_11\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":38,\"i\":\"2e466042-c74a-4549-9419-847d918823ae\",\"w\":48,\"x\":0,\"y\":70},\"panelIndex\":\"2e466042-c74a-4549-9419-847d918823ae\",\"version\":\"7.10.0\",\"panelRefName\":\"panel_12\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "ebfb6257-cd49-4120-aefb-e3ef95624acc" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "24fb5549-3160-41fb-901f-81c03c165e8c" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "5d961a31-c465-45eb-9e8f-2bbad058a4f8" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "8efb6175-3c0d-45ac-ae17-2908b8b7ab33" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "cd575019-21e5-45be-8fb1-7b447cdf2c91" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "0ac25486-a491-4797-b40f-c83d7d14ded0" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "5cd98bd4-370d-4d9c-afeb-0018145f6e28" + }, + { + "name": "panel_8", + "type": "visualization", + "id": "c4b27ea5-7188-4c09-9754-ea3c67fe44de" + }, + { + "name": "panel_9", + "type": "visualization", + "id": "c46f1254-54b6-414b-88cc-69751026b0e0" + }, + { + "name": "panel_10", + "type": "visualization", + "id": "0537ea69-4e73-4055-92a8-b90369603b5a" + }, + { + "name": "panel_11", + "type": "visualization", + "id": "AWDHC8iGxQT5EBNmq4bs" + }, + { + "name": "panel_12", + "type": "search", + "id": "161c6526-b634-4b79-8cb5-39b667eaa862" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "ebfb6257-cd49-4120-aefb-e3ef95624acc", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:08.611Z", + "version": "Wzg1OSwxXQ==", + "attributes": { + "visState": "{\"title\":\"RFB - Log Count Over Time\",\"type\":\"line\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{\"text\":\"firstPacket per 12 hours\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"showCircles\":true,\"interpolate\":\"linear\",\"scale\":\"linear\",\"drawLinesBetweenPoints\":true,\"radiusRatio\":9,\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"interval\":\"auto\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", + "description": "", + "title": "RFB - Log Count Over Time", + "uiStateJSON": "{}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "161c6526-b634-4b79-8cb5-39b667eaa862" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "24fb5549-3160-41fb-901f-81c03c165e8c", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:08.611Z", + "version": "Wzg2MCwxXQ==", + "attributes": { + "title": "RFB - Authentication Status", + "visState": "{\"title\":\"RFB - Authentication Status\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"Authenticated\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_rfb.auth\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"F\",\"customLabel\":\"Authenticated\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "161c6526-b634-4b79-8cb5-39b667eaa862" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5d961a31-c465-45eb-9e8f-2bbad058a4f8", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:08.611Z", + "version": "Wzg2MSwxXQ==", + "attributes": { + "title": "RFB - Exclusive Session", + "visState": "{\"title\":\"RFB - Exclusive Session\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"type\":\"pie\",\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100},\"dimensions\":{\"metric\":{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"},\"buckets\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Missing\"}},\"params\":{},\"label\":\"zeek_rfb.share_flag: Descending\",\"aggType\":\"terms\"}]}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_rfb.share_flag\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":20,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Exclusive Session\"}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "161c6526-b634-4b79-8cb5-39b667eaa862" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "8efb6175-3c0d-45ac-ae17-2908b8b7ab33", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:08.611Z", + "version": "Wzg2MiwxXQ==", + "attributes": { + "visState": "{\"title\":\"RFB - Desktop Name\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_rfb.desktop_name\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Desktop Name\"}}],\"listeners\":{}}", + "description": "", + "title": "RFB - Desktop Name", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "161c6526-b634-4b79-8cb5-39b667eaa862" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "cd575019-21e5-45be-8fb1-7b447cdf2c91", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:08.611Z", + "version": "Wzg2MywxXQ==", + "attributes": { + "visState": "{\"title\":\"RFB - Source IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "RFB - Source IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "161c6526-b634-4b79-8cb5-39b667eaa862" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0ac25486-a491-4797-b40f-c83d7d14ded0", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:08.611Z", + "version": "Wzg2NCwxXQ==", + "attributes": { + "visState": "{\"title\":\"RFB - Destination IP Address\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"IP Address\"}}],\"listeners\":{}}", + "description": "", + "title": "RFB - Destination IP Address", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "161c6526-b634-4b79-8cb5-39b667eaa862" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "5cd98bd4-370d-4d9c-afeb-0018145f6e28", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:08.611Z", + "version": "Wzg2NSwxXQ==", + "attributes": { + "visState": "{\"title\":\"RFB - Destination Port\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Port\"}}],\"listeners\":{}}", + "description": "", + "title": "RFB - Destination Port", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "161c6526-b634-4b79-8cb5-39b667eaa862" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c4b27ea5-7188-4c09-9754-ea3c67fe44de", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:08.611Z", + "version": "Wzg2NiwxXQ==", + "attributes": { + "visState": "{\"title\":\"RFB - Server Version\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_rfb.server_major_version\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Major Version\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_rfb.server_minor_version\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Minor Version\"}}],\"listeners\":{}}", + "description": "", + "title": "RFB - Server Version", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "161c6526-b634-4b79-8cb5-39b667eaa862" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "c46f1254-54b6-414b-88cc-69751026b0e0", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:08.611Z", + "version": "Wzg2NywxXQ==", + "attributes": { + "visState": "{\"title\":\"RFB - Client Version\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_rfb.client_major_version\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Major Version\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_rfb.client_minor_version\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"size\":50,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Minor Version\"}}],\"listeners\":{}}", + "description": "", + "title": "RFB - Client Version", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "161c6526-b634-4b79-8cb5-39b667eaa862" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "0537ea69-4e73-4055-92a8-b90369603b5a", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T17:52:25.525Z", + "version": "WzI5ODksMV0=", + "attributes": { + "title": "RFB - Authentication Method", + "visState": "{\"title\":\"RFB - Authentication Method\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"zeek_rfb.authentication_method\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":10,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Authentication Method\"},\"schema\":\"segment\"}],\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"type\":\"histogram\",\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"dimensions\":{\"x\":null,\"y\":[{\"accessor\":1,\"format\":{\"id\":\"number\"},\"params\":{},\"label\":\"Count\",\"aggType\":\"count\"}],\"series\":[{\"accessor\":0,\"format\":{\"id\":\"terms\",\"params\":{\"id\":\"string\",\"otherBucketLabel\":\"Other\",\"missingBucketLabel\":\"Unknown\"}},\"params\":{},\"label\":\"Method\",\"aggType\":\"terms\"}]}}}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "search_0", + "type": "search", + "id": "161c6526-b634-4b79-8cb5-39b667eaa862" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "AWDHC8iGxQT5EBNmq4bs", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:08.611Z", + "version": "Wzg2OSwxXQ==", + "attributes": { + "title": "RFB - Log Count", + "visState": "{\"title\":\"RFB - Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":false,\"gaugeType\":\"Metric\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"useRange\":false,\"colorsRange\":[{\"from\":0,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":false,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"simple\",\"style\":{\"fontSize\":\"30\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"bgFill\":\"#FB9E00\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "161c6526-b634-4b79-8cb5-39b667eaa862" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "161c6526-b634-4b79-8cb5-39b667eaa862", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:08.611Z", + "version": "Wzg3MCwxXQ==", + "attributes": { + "title": "RFB - Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_rfb.desktop_name", + "zeek_rfb.authentication_method", + "zeek_rfb.auth", + "zeek_rfb.share_flag", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"filter\":[],\"query\":{\"language\":\"lucene\",\"query\":{\"query_string\":{\"analyze_wildcard\":true,\"query\":\"zeek.logType:rfb\"}}},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/dashboards/fa141950-ef89-11e9-b38a-2db3ee640e88.json b/Vagrant/resources/malcolm/kibana/dashboards/fa141950-ef89-11e9-b38a-2db3ee640e88.json new file mode 100644 index 0000000..7fa9cf7 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/dashboards/fa141950-ef89-11e9-b38a-2db3ee640e88.json @@ -0,0 +1,316 @@ +{ + "version": "7.10.0", + "objects": [ + { + "id": "fa141950-ef89-11e9-b38a-2db3ee640e88", + "type": "dashboard", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-11T18:59:12.130Z", + "version": "WzM3MjIsMV0=", + "attributes": { + "title": "Tabular Data Stream - SQL", + "hits": 0, + "description": "", + "panelsJSON": "[{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":28,\"i\":\"1\"},\"panelIndex\":\"1\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":48,\"w\":48,\"h\":31,\"i\":\"2\"},\"panelIndex\":\"2\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":0,\"w\":8,\"h\":8,\"i\":\"3\"},\"panelIndex\":\"3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":16,\"y\":0,\"w\":32,\"h\":8,\"i\":\"4\"},\"panelIndex\":\"4\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":8,\"y\":8,\"w\":16,\"h\":20,\"i\":\"5\"},\"panelIndex\":\"5\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":24,\"y\":8,\"w\":11,\"h\":20,\"i\":\"6\"},\"panelIndex\":\"6\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":35,\"y\":8,\"w\":13,\"h\":20,\"i\":\"7\"},\"panelIndex\":\"7\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"version\":\"7.10.0\",\"gridData\":{\"x\":0,\"y\":28,\"w\":48,\"h\":20,\"i\":\"8\"},\"panelIndex\":\"8\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"}]", + "optionsJSON": "{\"useMargins\":true}", + "version": 1, + "timeRestore": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"lucene\",\"query\":\"*\"},\"filter\":[]}" + } + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3" + }, + { + "name": "panel_1", + "type": "search", + "id": "1c454740-ef82-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "455451f0-ef8a-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "827dd240-ef8a-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_4", + "type": "visualization", + "id": "b63a4c30-ef8a-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_5", + "type": "visualization", + "id": "d9275670-ef8a-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_6", + "type": "visualization", + "id": "13598fc0-ef8b-11e9-b38a-2db3ee640e88" + }, + { + "name": "panel_7", + "type": "visualization", + "id": "539691a0-ef8b-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "dashboard": "7.9.3" + } + }, + { + "id": "df9e399b-efa5-4e33-b0ac-a7668a8ac2b3", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MiwxXQ==", + "attributes": { + "title": "Zeek Logs", + "visState": "{\"title\":\"Zeek Logs\",\"type\":\"markdown\",\"params\":{\"markdown\":\"### General\\n[Overview](/kibana/app/dashboards#/view/0ad3d7c2-3441-485e-9dfe-dbb22e84e576) \\n[Security Overview](/kibana/app/dashboards#/view/95479950-41f2-11ea-88fa-7151df485405) \\n[ICS/IoT Security Overview](/kibana/app/dashboards#/view/4a4bde20-4760-11ea-949c-bbb5a9feecbf) \\n[Connections](/kibana/app/dashboards#/view/abdd7550-2c7c-40dc-947e-f6d186a158c4) \\n[Actions and Results](/kibana/app/dashboards#/view/a33e0a50-afcd-11ea-993f-b7d8522a8bed) \\n[Files](/kibana/app/dashboards#/view/9ee51f94-3316-4fc5-bd89-93a52af69714) \\n[Executables](/kibana/app/dashboards#/view/0a490422-0ce9-44bf-9a2d-19329ddde8c3) \\n[Software](/kibana/app/dashboards#/view/87d990cc-9e0b-41e5-b8fe-b10ae1da0c85) \\n[Notices](/kibana/app/dashboards#/view/f1f09567-fc7f-450b-a341-19d2f2bb468b) \\n[Weird](/kibana/app/dashboards#/view/1fff49f6-0199-4a0f-820b-721aff9ff1f1) \\n[Signatures](/kibana/app/dashboards#/view/665d1610-523d-11e9-a30e-e3576242f3ed) \\n[Intel Feeds](/kibana/app/dashboards#/view/36ed695f-edcc-47c1-b0ec-50d20c93ce0f) \\n[↪ Arkime](/sessions) \\n\\n### Common Protocols\\n[DCE/RPC](/kibana/app/dashboards#/view/432af556-c5c0-4cc3-8166-b274b4e3a406) ● [DHCP](/kibana/app/dashboards#/view/2d98bb8e-214c-4374-837b-20e1bcd63a5e) ● [DNS](/kibana/app/dashboards#/view/2cf94cd0-ecab-40a5-95a7-8419f3a39cd9) ● [FTP](/kibana/app/dashboards#/view/078b9aa5-9bd4-4f02-ae5e-cf80fa6f887b) / [TFTP](/kibana/app/dashboards#/view/bf5efbb0-60f1-11eb-9d60-dbf0411cfc48) ● [HTTP](/kibana/app/dashboards#/view/37041ee1-79c0-4684-a436-3173b0e89876) ● [IRC](/kibana/app/dashboards#/view/76f2f912-80da-44cd-ab66-6a73c8344cc3) ● [Kerberos](/kibana/app/dashboards#/view/82da3101-2a9c-4ae2-bb61-d447a3fbe673) ● [LDAP](/kibana/app/dashboards#/view/05e3e000-f118-11e9-acda-83a8e29e1a24) ● [MySQL](/kibana/app/dashboards#/view/50ced171-1b10-4c3f-8b67-2db9635661a6) ● [NTLM](/kibana/app/dashboards#/view/543118a9-02d7-43fe-b669-b8652177fc37) ● [NTP](/kibana/app/dashboards#/view/af5df620-eeb6-11e9-bdef-65a192b7f586) ● [QUIC](/kibana/app/dashboards#/view/11ddd980-e388-11e9-b568-cf17de8e860c) ● [RADIUS](/kibana/app/dashboards#/view/ae79b7d1-4281-4095-b2f6-fa7eafda9970) ● [RDP](/kibana/app/dashboards#/view/7f41913f-cba8-43f5-82a8-241b7ead03e0) ● [RFB](/kibana/app/dashboards#/view/f77bf097-18a8-465c-b634-eb2acc7a4f26) ● [SIP](/kibana/app/dashboards#/view/0b2354ae-0fe9-4fd9-b156-1c3870e5c7aa) ● [SMB](/kibana/app/dashboards#/view/42e831b9-41a9-4f35-8b7d-e1566d368773) ● [SMTP](/kibana/app/dashboards#/view/bb827f8e-639e-468c-93c8-9f5bc132eb8f) ● [SNMP](/kibana/app/dashboards#/view/4e5f106e-c60a-4226-8f64-d534abb912ab) ● [SSH](/kibana/app/dashboards#/view/caef3ade-d289-4d05-a511-149f3e97f238) ● [SSL](/kibana/app/dashboards#/view/7f77b58a-df3e-4cc2-b782-fd7f8bad8ffb) / [X.509 Certificates](/kibana/app/dashboards#/view/024062a6-48d6-498f-a91a-3bf2da3a3cd3) ● [Syslog](/kibana/app/dashboards#/view/92985909-dc29-4533-9e80-d3182a0ecf1d) ● [TDS](/kibana/app/dashboards#/view/bed185a0-ef82-11e9-b38a-2db3ee640e88) / [TDS RPC](/kibana/app/dashboards#/view/32587740-ef88-11e9-b38a-2db3ee640e88) / [TDS SQL](/kibana/app/dashboards#/view/fa141950-ef89-11e9-b38a-2db3ee640e88) ● [Telnet / rlogin / rsh](/kibana/app/dashboards#/view/c2549e10-7f2e-11ea-9f8a-1fe1327e2cd2) ● [Tunnels](/kibana/app/dashboards#/view/11be6381-beef-40a7-bdce-88c5398392fc)\\n\\n### ICS/IoT Protocols\\n[BACnet](/kibana/app/dashboards#/view/2bec1490-eb94-11e9-a384-0fcf32210194) ● [BSAP](/kibana/app/dashboards#/view/ca5799a0-56b5-11eb-b749-576de068f8ad) ● [DNP3](/kibana/app/dashboards#/view/870a5862-6c26-4a08-99fd-0c06cda85ba3) ● [EtherCAT](/kibana/app/dashboards#/view/4a073440-b286-11eb-a4d4-09fa12a6ebd4) ● [EtherNet/IP](/kibana/app/dashboards#/view/29a1b290-eb98-11e9-a384-0fcf32210194) ● [Modbus](/kibana/app/dashboards#/view/152f29dc-51a2-4f53-93e9-6e92765567b8) ● [MQTT](/kibana/app/dashboards#/view/87a32f90-ef58-11e9-974e-9d600036d105) ● [PROFINET](/kibana/app/dashboards#/view/a7514350-eba6-11e9-a384-0fcf32210194) ● [S7comm](/kibana/app/dashboards#/view/e76d05c0-eb9f-11e9-a384-0fcf32210194) ● [Best Guess](/kibana/app/dashboards#/view/12e3a130-d83b-11eb-a0b0-f328ce09b0b7)\",\"type\":\"markdown\",\"fontSize\":10,\"openLinksInNewTab\":false},\"aggs\":[]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":{\"query_string\":{\"query\":\"*\"}},\"language\":\"lucene\"},\"filter\":[]}" + } + }, + "references": [], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "1c454740-ef82-11e9-b38a-2db3ee640e88", + "type": "search", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3MywxXQ==", + "attributes": { + "title": "Tabular Data Stream - SQL Logs", + "description": "", + "hits": 0, + "columns": [ + "srcIp", + "dstIp", + "dstPort", + "zeek_tds_sql_batch.header_type", + "zeek_tds_sql_batch.query", + "zeek.uid" + ], + "sort": [ + [ + "firstPacket", + "desc" + ] + ], + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"zeek.logType:\\\"tds_sql_batch\\\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + } + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "sessions2-*" + } + ], + "migrationVersion": { + "search": "7.9.3" + } + }, + { + "id": "455451f0-ef8a-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3NCwxXQ==", + "attributes": { + "title": "Tabular Data Stream - SQL Log Count", + "visState": "{\"title\":\"Tabular Data Stream - SQL Log Count\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":false},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":42}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1c454740-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "827dd240-ef8a-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3NSwxXQ==", + "attributes": { + "title": "Tabular Data Stream - SQL Log Count Over Time", + "visState": "{\"title\":\"Tabular Data Stream - SQL Log Count Over Time\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"firstPacket\",\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}}]}", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1c454740-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "b63a4c30-ef8a-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3NiwxXQ==", + "attributes": { + "title": "Tabular Data Stream - SQL Header Type", + "visState": "{\"title\":\"Tabular Data Stream - SQL Header Type\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"isDonut\":true,\"labels\":{\"show\":false,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"zeek_tds_sql_batch.header_type\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"Unknown\",\"customLabel\":\"Header Type\"}}]}", + "uiStateJSON": "{}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1c454740-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "d9275670-ef8a-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3NywxXQ==", + "attributes": { + "title": "Tabular Data Stream - SQL Source IP", + "visState": "{\"title\":\"Tabular Data Stream - SQL Source IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"srcIp\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Source IP\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1c454740-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "13598fc0-ef8b-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3OCwxXQ==", + "attributes": { + "title": "Tabular Data Stream - SQL Destination IP", + "visState": "{\"title\":\"Tabular Data Stream - SQL Destination IP\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstIp\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination IP\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"dstPort\",\"size\":100,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Destination Port\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":2,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1c454740-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + }, + { + "id": "539691a0-ef8b-11e9-b38a-2db3ee640e88", + "type": "visualization", + "namespaces": [ + "default" + ], + "updated_at": "2021-02-10T21:25:09.616Z", + "version": "Wzg3OSwxXQ==", + "attributes": { + "title": "Tabular Data Stream - SQL Query", + "visState": "{\"title\":\"Tabular Data Stream - SQL Query\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"zeek_tds_sql_batch.query\",\"size\":200,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":true,\"missingBucketLabel\":\"-\",\"customLabel\":\"Query\"}}]}", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":1,\"direction\":\"desc\"}}}}", + "description": "", + "version": 1, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "1c454740-ef82-11e9-b38a-2db3ee640e88" + } + ], + "migrationVersion": { + "visualization": "7.10.0" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/kibana.yml b/Vagrant/resources/malcolm/kibana/kibana.yml new file mode 100644 index 0000000..81cc7fb --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/kibana.yml @@ -0,0 +1,30 @@ +--- +# Default Kibana configuration from kibana-docker. + +server.name: kibana +server.host: "0" +server.basePath: "/kibana" +server.rewriteBasePath: true +elasticsearch.hosts: ["${ELASTICSEARCH_URL}"] +elasticsearch.requestTimeout: 180000 +kibana.defaultAppId: "dashboard/${KIBANA_DEFAULT_DASHBOARD}" + +newsfeed.enabled: false +telemetry.optIn: false +telemetry.enabled: false +security.showInsecureClusterWarning: false + +# offline region map +map.regionmap: + includeElasticMapsService: false + layers: + - name: "World (offline)" + url: "/world.geojson" + attribution: "https://exploratory.io/maps" + fields: + - name: "ISO_A2" + description: "Country Code" + - name: "WB_A2" + description: "Country Code2" + - name: "NAME" + description: "Country Name" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/maps/world.geojson b/Vagrant/resources/malcolm/kibana/maps/world.geojson new file mode 100644 index 0000000..d521bcc --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/maps/world.geojson @@ -0,0 +1,35513 @@ +{ + "type": "FeatureCollection", + "crs": { + "type": "name", + "properties": { + "name": "urn:ogc:def:crs:OGC:1.3:CRS84" + } + }, + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [74.8923, 37.2311], + [74.4873, 37.2259], + [74.3661, 37.1478], + [74.5424, 37.0217], + [74.394, 36.994], + [74.0943, 36.8312], + [73.6401, 36.8966], + [72.5652, 36.8206], + [72.2136, 36.7264], + [71.7363, 36.3959], + [71.6291, 36.4595], + [71.1709, 36.027], + [71.3416, 35.9473], + [71.5935, 35.5494], + [71.6224, 35.4296], + [71.5298, 35.3009], + [71.6337, 35.2031], + [71.46, 34.9427], + [71.2895, 34.875], + [71.0806, 34.6729], + [70.9708, 34.4689], + [71.122, 34.3568], + [71.0467, 34.0419], + [70.8622, 33.9648], + [70.522, 33.9387], + [70.0028, 34.0438], + [69.8411, 33.9418], + [69.9575, 33.7527], + [70.1082, 33.7273], + [70.155, 33.5066], + [70.2944, 33.3189], + [69.8809, 33.0892], + [69.5475, 33.075], + [69.4291, 32.6674], + [69.228, 32.4213], + [69.2988, 31.9377], + [69.004, 31.6511], + [68.7773, 31.6186], + [68.6758, 31.7747], + [68.5275, 31.823], + [68.3561, 31.7625], + [68.1257, 31.8115], + [68.0466, 31.6884], + [67.8707, 31.6352], + [67.597, 31.4257], + [67.7494, 31.328], + [67.3462, 31.2078], + [67.0229, 31.2394], + [66.9433, 31.3147], + [66.697, 31.1958], + [66.55, 30.977], + [66.3663, 30.9229], + [66.268, 30.6014], + [66.3218, 30.4374], + [66.3009, 30.2256], + [66.2252, 30.0444], + [66.3405, 29.9566], + [66.1956, 29.8353], + [65.0364, 29.5402], + [64.4777, 29.5704], + [64.1726, 29.4843], + [64.0861, 29.3866], + [63.5686, 29.4975], + [62.4775, 29.4078], + [61.6134, 29.6385], + [60.8444, 29.8582], + [61.7852, 30.8314], + [61.8263, 31.0346], + [61.7492, 31.3024], + [61.6612, 31.3819], + [60.855, 31.4827], + [60.7926, 31.6601], + [60.7749, 32.0272], + [60.8303, 32.2489], + [60.5775, 32.9943], + [60.5676, 33.1513], + [60.8186, 33.4049], + [60.8796, 33.5487], + [60.6556, 33.5599], + [60.5118, 33.6384], + [60.528, 33.8414], + [60.4868, 34.0943], + [60.6437, 34.3066], + [60.8905, 34.3189], + [60.7144, 34.5374], + [60.9475, 34.638], + [61.0655, 34.8147], + [61.1159, 35.0599], + [61.1083, 35.278], + [61.29, 35.5481], + [61.2697, 35.6185], + [61.5387, 35.4523], + [62.0338, 35.424], + [62.219, 35.3063], + [62.6211, 35.2227], + [63.0802, 35.4371], + [63.0766, 35.6247], + [63.1839, 35.7123], + [63.1253, 35.8602], + [63.3429, 35.8563], + [63.6023, 35.9627], + [63.7659, 35.9773], + [64.2661, 36.1525], + [64.4446, 36.25], + [64.6059, 36.4611], + [64.592, 36.6211], + [64.7788, 36.9385], + [64.7602, 37.0926], + [65.0631, 37.2332], + [65.5014, 37.2423], + [65.6241, 37.3451], + [65.6688, 37.5206], + [66.0797, 37.4409], + [66.2944, 37.3312], + [66.5196, 37.3642], + [67.0059, 37.3844], + [67.2368, 37.1924], + [67.4824, 37.2774], + [67.7805, 37.1889], + [68.0111, 36.9309], + [68.3073, 37.1142], + [69.0055, 37.3055], + [69.1236, 37.1692], + [69.3239, 37.121], + [69.4452, 37.2364], + [69.3784, 37.4374], + [69.5287, 37.586], + [70.1579, 37.5414], + [70.2831, 37.7048], + [70.1652, 37.8899], + [70.4826, 38.1374], + [70.5958, 38.3382], + [70.7611, 38.4435], + [70.974, 38.4737], + [71.3344, 38.2807], + [71.3645, 38.2068], + [71.2558, 37.9499], + [71.3412, 37.8933], + [71.5977, 37.8984], + [71.4972, 37.5665], + [71.487, 37.2671], + [71.4311, 37.067], + [71.6111, 36.7048], + [71.8366, 36.6992], + [72.2598, 36.9673], + [72.6577, 37.0288], + [72.761, 37.1875], + [73.0675, 37.3151], + [73.2761, 37.4595], + [73.4853, 37.481], + [73.7535, 37.4284], + [73.7982, 37.2285], + [74.1633, 37.3301], + [74.2239, 37.4034], + [74.6604, 37.394], + [74.8923, 37.2311] + ] + ] + }, + "properties": { + "NAME": "Afghanistan", + "NAME_LONG": "Afghanistan", + "ADM0_A3": "AFG", + "ISO_A2": "AF", + "ISO_A3": "AFG", + "WB_A2": "AF", + "WB_A3": "AFG" + }, + "id": 1 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [23.9675, -10.8723], + [24.0112, -11.2729], + [24.0611, -11.395], + [23.9599, -11.6172], + [23.9596, -12.1967], + [24.0308, -12.3851], + [23.9287, -12.5616], + [23.8657, -12.7897], + [24.0006, -13.0015], + [23.2227, -13.0015], + [21.9799, -13.0015], + [21.9808, -14.3576], + [21.9813, -15.1112], + [21.9838, -16.1659], + [22.1517, -16.5977], + [22.3337, -16.6737], + [22.5229, -16.9147], + [22.7105, -17.0554], + [22.7559, -17.1549], + [22.9986, -17.2938], + [23.073, -17.4051], + [23.2908, -17.5354], + [23.3817, -17.6411], + [22.2305, -17.8576], + [21.3812, -18.0126], + [21.2166, -17.9306], + [20.8062, -18.0314], + [20.5655, -17.9852], + [20.3362, -17.8549], + [20.0343, -17.8959], + [19.6726, -17.8427], + [19.4213, -17.8594], + [19.1721, -17.8012], + [19.0206, -17.8223], + [18.762, -17.7477], + [18.4536, -17.3899], + [17.6226, -17.389], + [16.3398, -17.3887], + [15.0572, -17.3883], + [14.2074, -17.388], + [13.9427, -17.4082], + [13.8844, -17.3385], + [13.5213, -17.1219], + [13.3637, -16.9642], + [13.1663, -16.9511], + [12.8872, -17.0298], + [12.5546, -17.2356], + [12.2426, -17.2248], + [12.0953, -17.1397], + [11.7661, -17.2527], + [11.7593, -17.033], + [11.8205, -16.7815], + [11.822, -16.4791], + [11.7366, -15.9002], + [11.992, -15.6173], + [12.0564, -15.2331], + [12.2078, -14.8333], + [12.2727, -14.7506], + [12.3313, -14.4335], + [12.3288, -14.0922], + [12.4155, -13.8786], + [12.5025, -13.8552], + [12.5127, -13.4421], + [12.6345, -13.3434], + [12.9448, -12.9824], + [12.9395, -12.8167], + [13.1786, -12.6017], + [13.364, -12.5927], + [13.5056, -12.3714], + [13.6398, -12.2487], + [13.7946, -11.7702], + [13.7942, -11.3415], + [13.8465, -11.1137], + [13.8286, -10.9137], + [13.7393, -10.7834], + [13.7529, -10.6462], + [13.5226, -10.3878], + [13.509, -10.277], + [13.3174, -9.9763], + [13.3272, -9.886], + [13.1986, -9.7087], + [13.1707, -9.4025], + [12.9963, -9.0938], + [13.2122, -8.8149], + [13.3801, -8.7551], + [13.4061, -8.6371], + [13.3421, -8.4675], + [13.3694, -8.3235], + [13.2769, -8.1789], + [12.85, -7.2659], + [12.8152, -6.947], + [12.6204, -6.7348], + [12.2794, -6.1477], + [12.6455, -6.029], + [12.9276, -5.9812], + [12.9859, -5.9011], + [13.1838, -5.8565], + [13.6415, -5.8658], + [13.9436, -5.8416], + [14.0212, -5.8725], + [14.5766, -5.9047], + [14.7037, -5.8814], + [16.3157, -5.8546], + [16.5974, -5.9247], + [16.6043, -6.0619], + [16.7268, -6.1892], + [16.7308, -6.5698], + [16.8329, -6.8278], + [16.927, -6.8886], + [16.9271, -7.0857], + [16.9961, -7.298], + [17.0981, -7.4023], + [17.2889, -7.6995], + [17.5365, -8.0151], + [17.5443, -8.0848], + [17.9014, -8.0481], + [18.0982, -8.1093], + [18.1766, -7.9992], + [18.5076, -7.9975], + [18.7385, -7.9323], + [18.7738, -8.002], + [19.3555, -8.002], + [19.3338, -7.8673], + [19.4247, -7.5797], + [19.5132, -7.4794], + [19.4764, -7.3159], + [19.5218, -7.0019], + [20.2943, -7.0019], + [20.3311, -6.9168], + [20.6115, -6.916], + [20.5245, -7.1431], + [20.5205, -7.2864], + [21.785, -7.2834], + [21.8424, -7.3699], + [21.8541, -7.586], + [21.7705, -7.8068], + [21.7585, -8.0151], + [21.8512, -8.1435], + [21.936, -8.413], + [21.8599, -8.8464], + [21.8411, -9.2758], + [21.7933, -9.3935], + [21.8541, -9.6178], + [21.9984, -9.8091], + [22.1599, -9.9315], + [22.2028, -10.1306], + [22.3134, -10.3686], + [22.274, -10.503], + [22.3224, -10.7422], + [22.1655, -10.8524], + [22.2818, -11.2367], + [22.5376, -11.0372], + [22.7277, -11.0968], + [22.8292, -11.0521], + [23.0143, -11.1025], + [23.4948, -10.9643], + [23.8337, -11.0285], + [23.9675, -10.8723] + ] + ], + [ + [ + [13.0737, -4.6353], + [12.8332, -4.7227], + [12.6789, -4.9243], + [12.4444, -5.0551], + [12.5307, -5.1627], + [12.509, -5.7263], + [12.2105, -5.7634], + [12.1472, -5.6179], + [12.2322, -5.4796], + [12.1246, -5.1848], + [12.1325, -5.0059], + [12.0096, -5.0196], + [12.2352, -4.804], + [12.3324, -4.7659], + [12.3776, -4.6194], + [12.6081, -4.565], + [12.7617, -4.3912], + [13.0737, -4.6353] + ] + ] + ] + }, + "properties": { + "NAME": "Angola", + "NAME_LONG": "Angola", + "ADM0_A3": "AGO", + "ISO_A2": "AO", + "ISO_A3": "AGO", + "WB_A2": "AO", + "WB_A3": "AGO" + }, + "id": 2 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [20.065, 42.5468], + [20.2496, 42.3186], + [20.5008, 42.2112], + [20.5993, 41.9479], + [20.5671, 41.8732], + [20.4442, 41.5497], + [20.5402, 41.4007], + [20.4777, 41.3196], + [20.7027, 40.9363], + [20.9653, 40.8494], + [21.0367, 40.6397], + [20.8267, 40.4648], + [20.6402, 40.0901], + [20.4328, 40.0638], + [20.318, 39.9184], + [20.2995, 39.7282], + [20.1999, 39.6401], + [19.9998, 39.6935], + [20.0163, 39.845], + [19.8552, 40.0499], + [19.4762, 40.2137], + [19.4788, 40.4539], + [19.3098, 40.6444], + [19.4142, 40.8688], + [19.5166, 41.2564], + [19.4142, 41.3828], + [19.5652, 41.5851], + [19.5852, 41.8185], + [19.3651, 41.8524], + [19.3749, 42.0947], + [19.272, 42.1807], + [19.605, 42.5848], + [19.8196, 42.4665], + [20.065, 42.5468] + ] + ] + }, + "properties": { + "NAME": "Albania", + "NAME_LONG": "Albania", + "ADM0_A3": "ALB", + "ISO_A2": "AL", + "ISO_A3": "ALB", + "WB_A2": "AL", + "WB_A3": "ALB" + }, + "id": 4 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [19.9185, 60.3702], + [20.2776, 60.2787], + [20.0064, 60.0944], + [19.7476, 60.1014], + [19.9185, 60.3702] + ] + ] + }, + "properties": { + "NAME": "Aland", + "NAME_LONG": "Aland Islands", + "ADM0_A3": "ALD", + "ISO_A2": "AX", + "ISO_A3": "ALA", + "WB_A2": "-99", + "WB_A3": "-99" + }, + "id": 5 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [1.707, 42.5028], + [1.4479, 42.4346], + [1.4293, 42.5954], + [1.722, 42.6099], + [1.707, 42.5028] + ] + ] + }, + "properties": { + "NAME": "Andorra", + "NAME_LONG": "Andorra", + "ADM0_A3": "AND", + "ISO_A2": "AD", + "ISO_A3": "AND", + "WB_A2": "AD", + "WB_A3": "ADO" + }, + "id": 6 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [56.2791, 25.6274], + [56.37, 25.5257], + [56.3833, 24.9782], + [56.1183, 24.7354], + [56.0315, 24.7541], + [56.0056, 24.9562], + [55.7887, 24.8552], + [55.8182, 24.6434], + [55.7598, 24.5585], + [55.8074, 24.3408], + [55.9979, 24.0813], + [55.8071, 24.0075], + [55.4998, 23.9706], + [55.5383, 23.77], + [55.3753, 23.4693], + [55.1913, 22.9954], + [55.1868, 22.7036], + [55.1053, 22.6209], + [54.1343, 22.7403], + [52.5831, 22.9311], + [52.5385, 22.9547], + [51.5935, 24.0783], + [51.5693, 24.2562], + [51.772, 24.1763], + [51.8094, 24.0007], + [52.2244, 23.974], + [52.3411, 24.0075], + [52.6341, 24.1899], + [52.6701, 24.1447], + [53.2538, 24.0988], + [53.437, 24.1198], + [53.5813, 24.0485], + [53.8538, 24.062], + [54.1226, 24.1447], + [54.446, 24.3161], + [54.5586, 24.4577], + [54.707, 24.8039], + [55.0823, 25.0168], + [55.5247, 25.5426], + [55.8425, 25.7138], + [56.0144, 25.8789], + [56.0774, 26.061], + [56.1835, 26.0145], + [56.1451, 25.6708], + [56.2791, 25.6274] + ] + ] + }, + "properties": { + "NAME": "United Arab Emirates", + "NAME_LONG": "United Arab Emirates", + "ADM0_A3": "ARE", + "ISO_A2": "AE", + "ISO_A3": "ARE", + "WB_A2": "AE", + "WB_A3": "ARE" + }, + "id": 7 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-64.3406, -54.716], + [-64.6072, -54.9006], + [-64.7587, -54.8323], + [-64.3406, -54.716] + ] + ], + [ + [ + [-68.6419, -54.783], + [-68.6347, -53.7109], + [-68.6276, -52.6396], + [-68.266, -52.9806], + [-68.5207, -53.1206], + [-68.4514, -53.2977], + [-68.1114, -53.3438], + [-67.9836, -53.6013], + [-67.5582, -53.8362], + [-67.5715, -53.908], + [-67.2978, -54.0538], + [-66.7666, -54.2498], + [-66.4822, -54.4658], + [-65.8442, -54.6474], + [-65.1556, -54.6406], + [-65.3323, -54.9138], + [-65.9662, -54.9021], + [-65.9934, -54.9724], + [-66.5405, -55.051], + [-67.031, -54.9052], + [-68.0776, -54.8461], + [-68.5203, -54.8522], + [-68.6419, -54.783] + ] + ], + [ + [ + [-62.6504, -22.2345], + [-62.6327, -22.296], + [-62.2872, -22.4839], + [-62.1708, -22.7173], + [-61.9564, -23.0344], + [-61.7443, -23.2348], + [-61.4918, -23.4132], + [-61.297, -23.4814], + [-61.1099, -23.607], + [-61.0063, -23.8055], + [-60.5936, -23.9122], + [-60.328, -24.018], + [-60.0337, -24.007], + [-59.4597, -24.3585], + [-59.341, -24.4876], + [-59.0009, -24.6442], + [-58.8092, -24.7768], + [-58.4734, -24.8513], + [-58.312, -24.9936], + [-58.2241, -24.9412], + [-57.7541, -25.1809], + [-57.5569, -25.4598], + [-57.6231, -25.6154], + [-57.7537, -25.6727], + [-57.8754, -25.8761], + [-57.8727, -26.0103], + [-58.0865, -26.1272], + [-58.2062, -26.4027], + [-58.2479, -26.7582], + [-58.4598, -26.9282], + [-58.5115, -27.0602], + [-58.6533, -27.1563], + [-58.5108, -27.2784], + [-58.022, -27.2598], + [-57.6978, -27.3335], + [-57.5357, -27.4072], + [-57.3352, -27.4095], + [-57.1801, -27.4873], + [-56.9044, -27.4187], + [-56.7712, -27.5067], + [-56.5464, -27.4551], + [-56.3675, -27.5806], + [-56.2798, -27.3896], + [-56.1246, -27.2989], + [-55.9131, -27.3278], + [-55.7547, -27.4437], + [-55.5913, -27.3284], + [-55.599, -27.1826], + [-55.414, -26.9799], + [-54.9753, -26.7878], + [-54.7065, -26.4418], + [-54.6383, -26.197], + [-54.6623, -25.9799], + [-54.5879, -25.8108], + [-54.6002, -25.5749], + [-54.4606, -25.6421], + [-54.2148, -25.5315], + [-53.91, -25.6292], + [-53.8262, -25.9727], + [-53.6667, -26.2192], + [-53.7244, -26.3761], + [-53.746, -26.6939], + [-53.7107, -26.8738], + [-53.8192, -27.1397], + [-54.1895, -27.2609], + [-54.2869, -27.4284], + [-54.4608, -27.4126], + [-54.6997, -27.553], + [-54.8275, -27.5451], + [-54.9132, -27.7369], + [-55.0258, -27.8402], + [-55.3299, -27.9281], + [-55.4407, -28.0789], + [-55.6047, -28.1169], + [-55.7725, -28.232], + [-55.8981, -28.4607], + [-56.1847, -28.7442], + [-56.4158, -29.0514], + [-56.6173, -29.1609], + [-56.677, -29.3134], + [-57.0942, -29.752], + [-57.3085, -29.8485], + [-57.3252, -29.981], + [-57.6117, -30.183], + [-57.6527, -30.3291], + [-57.8496, -30.4853], + [-57.8072, -30.9076], + [-57.9051, -31.241], + [-58.0752, -31.4752], + [-57.9868, -31.5541], + [-58.0593, -31.8115], + [-58.1686, -31.846], + [-58.1865, -32.1529], + [-58.1016, -32.3114], + [-58.2001, -32.4471], + [-58.2228, -32.5343], + [-58.1468, -33.05], + [-58.3832, -33.0755], + [-58.4123, -33.2983], + [-58.5217, -33.4493], + [-58.5494, -33.683], + [-58.3954, -34.0312], + [-58.3786, -34.1882], + [-58.5115, -34.4359], + [-58.4742, -34.5216], + [-58.1549, -34.7504], + [-57.871, -34.8299], + [-57.522, -35.0132], + [-57.2488, -35.2488], + [-57.1449, -35.4842], + [-57.3526, -35.7275], + [-57.3664, -35.9879], + [-57.248, -36.1703], + [-56.9287, -36.3637], + [-56.6976, -36.3962], + [-56.6649, -36.851], + [-57.0559, -37.4127], + [-57.5119, -37.8723], + [-57.5936, -38.1528], + [-58.1557, -38.4301], + [-59.0632, -38.6938], + [-59.8893, -38.8385], + [-60.8657, -38.9757], + [-61.5181, -39.0115], + [-62.0267, -38.9376], + [-62.1573, -38.8105], + [-62.3578, -39.1022], + [-62.3164, -39.2652], + [-62.0558, -39.4519], + [-62.1642, -39.8588], + [-62.3146, -39.8694], + [-62.3687, -40.2112], + [-62.4842, -40.2875], + [-62.4149, -40.4621], + [-62.2506, -40.6222], + [-62.3378, -40.8727], + [-62.7294, -41.0411], + [-63.0995, -41.1549], + [-63.7794, -41.1588], + [-64.0621, -40.9994], + [-64.1743, -41.009], + [-64.773, -40.8061], + [-64.9465, -40.7114], + [-65.1219, -40.8337], + [-65.1751, -41.0102], + [-65.0612, -41.4484], + [-64.9933, -41.553], + [-64.9999, -41.7934], + [-65.0696, -41.9858], + [-64.8573, -42.1936], + [-64.5315, -42.2442], + [-64.5663, -42.436], + [-64.1276, -42.4327], + [-64.0684, -42.2696], + [-64.1622, -42.2094], + [-63.81, -42.0702], + [-63.5905, -42.3412], + [-63.6203, -42.7512], + [-63.7366, -42.8248], + [-64.1079, -42.8837], + [-64.251, -42.7521], + [-64.3226, -42.5424], + [-64.6149, -42.5153], + [-64.946, -42.6542], + [-64.9971, -42.7848], + [-64.5131, -42.9363], + [-64.4476, -43.0686], + [-64.7652, -43.1474], + [-65.0323, -43.2994], + [-65.0323, -43.3781], + [-65.3341, -43.6726], + [-65.2224, -44.0369], + [-65.3087, -44.2001], + [-65.2169, -44.3664], + [-65.3257, -44.5083], + [-65.6855, -44.7125], + [-65.7154, -44.87], + [-65.6026, -45.0277], + [-66.2004, -44.9929], + [-66.4677, -45.077], + [-66.524, -45.2161], + [-66.8689, -45.2356], + [-67.0648, -45.3499], + [-67.3319, -45.6135], + [-67.3606, -45.7767], + [-67.5477, -45.9334], + [-67.6225, -46.1638], + [-67.4232, -46.5674], + [-67.13, -46.7066], + [-66.7864, -47.0066], + [-66.2005, -47.0896], + [-65.9796, -47.0662], + [-65.7449, -47.2042], + [-65.7357, -47.5095], + [-65.8456, -47.7422], + [-65.8471, -47.9444], + [-66.3009, -48.2519], + [-66.4685, -48.4003], + [-66.651, -48.4311], + [-67.1143, -48.6738], + [-67.1983, -48.8184], + [-67.5565, -49.0158], + [-67.7042, -49.3039], + [-67.6533, -49.3771], + [-67.732, -49.7813], + [-67.8332, -49.9545], + [-68.0764, -50.0873], + [-68.8764, -50.3306], + [-69.0765, -50.5602], + [-69.1678, -50.9782], + [-68.9359, -51.6455], + [-68.6851, -52.005], + [-68.3656, -52.3062], + [-68.4484, -52.3469], + [-69.2123, -52.138], + [-69.4853, -52.1325], + [-69.9528, -52.0074], + [-71.9177, -51.9901], + [-71.9585, -51.868], + [-72.2811, -51.7015], + [-72.3515, -51.5835], + [-72.3134, -51.298], + [-72.3822, -51.1606], + [-72.2635, -50.8363], + [-72.3028, -50.6489], + [-72.506, -50.6013], + [-72.7784, -50.6196], + [-73.0961, -50.7706], + [-73.2619, -50.5566], + [-73.3229, -50.2684], + [-73.5306, -50.1408], + [-73.5727, -49.9324], + [-73.4651, -49.76], + [-73.5866, -49.53], + [-73.4579, -49.3077], + [-73.145, -49.3037], + [-73.1713, -49.1893], + [-73.0097, -48.9904], + [-72.7429, -48.9138], + [-72.5923, -48.7911], + [-72.5768, -48.4521], + [-72.3256, -48.2855], + [-72.343, -48.0704], + [-72.5439, -47.9148], + [-72.3444, -47.6023], + [-72.3287, -47.4265], + [-72.1706, -47.4075], + [-72.0098, -47.1982], + [-71.9341, -46.7995], + [-71.6872, -46.6901], + [-71.7702, -46.1126], + [-71.6123, -45.9705], + [-71.7985, -45.7399], + [-71.7651, -45.5724], + [-71.5258, -45.519], + [-71.5083, -45.4084], + [-71.3115, -45.2995], + [-71.5887, -44.9781], + [-72.0809, -44.8866], + [-72.0478, -44.7548], + [-71.8545, -44.791], + [-71.4971, -44.7429], + [-71.336, -44.8016], + [-71.1227, -44.5303], + [-71.2098, -44.4276], + [-71.822, -44.4032], + [-71.8587, -44.1078], + [-71.6599, -43.9263], + [-71.8192, -43.7581], + [-71.7238, -43.5948], + [-71.9373, -43.4569], + [-71.9017, -43.322], + [-71.743, -43.1901], + [-72.0098, -43.1204], + [-72.1485, -42.9987], + [-72.1127, -42.8638], + [-72.1484, -42.5926], + [-72.0419, -42.491], + [-72.1247, -42.2633], + [-71.7363, -42.0839], + [-71.794, -41.8675], + [-71.926, -41.6229], + [-71.8533, -41.5673], + [-71.904, -41.3677], + [-71.8514, -40.9383], + [-71.9556, -40.7204], + [-71.8042, -40.4264], + [-71.6785, -40.3402], + [-71.8238, -40.2101], + [-71.6837, -40.099], + [-71.6248, -39.931], + [-71.7187, -39.6234], + [-71.52, -39.615], + [-71.402, -39.236], + [-71.4158, -38.9353], + [-71.228, -38.8088], + [-70.8738, -38.6914], + [-70.8487, -38.5276], + [-70.9738, -38.4247], + [-71.01, -38.0655], + [-71.185, -37.7061], + [-71.1231, -37.4432], + [-71.1453, -36.6883], + [-71.0433, -36.4843], + [-70.8904, -36.4004], + [-70.7187, -36.4146], + [-70.7031, -36.2601], + [-70.3803, -36.046], + [-70.4202, -35.8684], + [-70.4082, -35.5062], + [-70.5429, -35.2093], + [-70.3866, -35.1667], + [-70.3537, -34.9533], + [-70.2278, -34.5853], + [-70.0587, -34.3958], + [-70.0403, -34.277], + [-69.8328, -34.2432], + [-69.9096, -33.9557], + [-69.8954, -33.6623], + [-69.7877, -33.3794], + [-69.9053, -33.2382], + [-70.1008, -33.1869], + [-70.1112, -33.0384], + [-70.0002, -32.8766], + [-70.14, -32.7683], + [-70.1725, -32.4649], + [-70.3218, -32.2801], + [-70.3352, -32.14], + [-70.2417, -31.9615], + [-70.4283, -31.8701], + [-70.5914, -31.5496], + [-70.569, -31.3042], + [-70.4798, -31.0967], + [-70.3398, -31.0417], + [-70.3195, -30.8008], + [-70.2171, -30.5151], + [-69.9028, -30.3127], + [-69.8497, -30.1266], + [-69.9756, -30.0586], + [-69.9222, -29.9396], + [-69.9291, -29.7183], + [-70.0426, -29.3631], + [-69.9109, -29.1432], + [-69.8039, -29.0987], + [-69.7358, -28.8124], + [-69.7409, -28.6406], + [-69.653, -28.3979], + [-69.4203, -28.2126], + [-69.3032, -27.9995], + [-69.173, -27.9241], + [-69.1243, -27.7344], + [-68.8011, -27.1128], + [-68.5859, -27.1628], + [-68.518, -27.0769], + [-68.3305, -27.045], + [-68.3201, -26.8701], + [-68.5702, -26.5506], + [-68.5752, -26.3035], + [-68.4199, -26.1793], + [-68.4985, -25.7549], + [-68.606, -25.437], + [-68.516, -25.1836], + [-68.3674, -25.1034], + [-68.5724, -24.7699], + [-68.5037, -24.6123], + [-68.2445, -24.3854], + [-67.3624, -24.0304], + [-67.3398, -24.0006], + [-67.014, -23.0007], + [-67.1939, -22.8222], + [-67.0377, -22.6546], + [-67.0327, -22.5246], + [-66.7965, -22.4349], + [-66.7359, -22.2251], + [-66.3775, -22.1271], + [-66.2972, -22.0503], + [-66.24, -21.7924], + [-66.0945, -21.8329], + [-65.7446, -22.114], + [-65.0204, -22.0966], + [-64.5869, -22.2128], + [-64.572, -22.3432], + [-64.294, -22.6909], + [-63.9476, -22.0076], + [-63.7404, -22.0506], + [-63.6394, -21.9975], + [-62.8044, -22.0041], + [-62.7909, -22.1132], + [-62.6504, -22.2345] + ] + ] + ] + }, + "properties": { + "NAME": "Argentina", + "NAME_LONG": "Argentina", + "ADM0_A3": "ARG", + "ISO_A2": "AR", + "ISO_A3": "ARG", + "WB_A2": "AR", + "WB_A3": "ARG" + }, + "id": 8 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [45.0024, 41.2905], + [45.1868, 41.1569], + [45.2216, 41.0144], + [45.4164, 40.9613], + [45.5559, 40.7766], + [45.3736, 40.6753], + [45.5262, 40.441], + [45.9792, 40.2236], + [45.8738, 40.0098], + [45.6396, 40.0254], + [45.8619, 39.8045], + [46.2065, 39.5879], + [46.3437, 39.6186], + [46.5273, 39.5382], + [46.3746, 39.3788], + [46.5979, 39.2251], + [46.4793, 39.1148], + [46.514, 38.8822], + [46.3919, 38.9224], + [46.1359, 38.8637], + [45.9581, 39.1515], + [45.9588, 39.2724], + [45.767, 39.3544], + [45.7881, 39.549], + [45.4575, 39.4893], + [45.1679, 39.5655], + [45.0335, 39.7704], + [44.7746, 39.7028], + [44.4643, 39.9723], + [44.2553, 40.0434], + [44.0324, 40.0086], + [43.7214, 40.1694], + [43.5942, 40.3454], + [43.7294, 40.6771], + [43.6049, 40.9633], + [43.4404, 41.1066], + [43.7297, 41.1067], + [44.1247, 41.1781], + [44.191, 41.23], + [44.5515, 41.177], + [45.0024, 41.2905] + ] + ] + }, + "properties": { + "NAME": "Armenia", + "NAME_LONG": "Armenia", + "ADM0_A3": "ARM", + "ISO_A2": "AM", + "ISO_A3": "ARM", + "WB_A2": "AM", + "WB_A3": "ARM" + }, + "id": 9 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [68.9829, -48.7985], + [69.1637, -48.8461], + [69.0838, -48.9734], + [69.2145, -49.1213], + [69.438, -49.0146], + [69.4959, -49.2397], + [69.7123, -49.3068], + [69.8538, -49.2091], + [70.273, -49.0764], + [70.522, -49.0959], + [70.5685, -49.2194], + [70.4639, -49.3566], + [70.1399, -49.3388], + [69.8138, -49.5325], + [70.0653, -49.5735], + [70.1232, -49.7136], + [69.4697, -49.6314], + [69.3734, -49.5661], + [69.1145, -49.6031], + [68.8317, -49.7172], + [68.7782, -49.5925], + [68.9017, -49.4311], + [68.7555, -49.0476], + [68.9829, -48.7985] + ] + ] + }, + "properties": { + "NAME": "Fr. S. Antarctic Lands", + "NAME_LONG": "French Southern and Antarctic Lands", + "ADM0_A3": "ATF", + "ISO_A2": "TF", + "ISO_A3": "ATF", + "WB_A2": "-99", + "WB_A3": "-99" + }, + "id": 13 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [144.7663, -40.7265], + [144.9847, -40.7448], + [145.7116, -40.9304], + [145.7913, -41.017], + [146.2144, -41.1554], + [146.4237, -41.1662], + [147.0176, -40.9767], + [147.286, -40.9413], + [147.4448, -41.0084], + [147.5974, -40.8469], + [147.8198, -40.8935], + [147.9842, -40.7365], + [148.2093, -40.8408], + [148.3314, -41.0022], + [148.2689, -41.1516], + [148.3311, -41.3225], + [148.2795, -41.4504], + [148.3269, -41.9158], + [148.147, -41.9993], + [147.9834, -42.319], + [148.006, -42.5141], + [147.8887, -42.8195], + [148.0047, -42.9089], + [147.7925, -43.2441], + [147.6478, -43.0728], + [147.8871, -43.0344], + [147.8403, -42.902], + [147.5856, -42.8212], + [147.3602, -42.9252], + [147.2576, -43.1144], + [147.2576, -43.2543], + [147.0998, -43.2994], + [146.936, -43.4952], + [146.927, -43.6117], + [146.7107, -43.629], + [146.5135, -43.5339], + [146.0308, -43.4827], + [146.0254, -43.3249], + [145.8733, -43.2584], + [145.5823, -42.9636], + [145.5103, -42.9584], + [145.3527, -42.6508], + [145.2642, -42.5953], + [145.2024, -42.2475], + [145.2769, -42.1821], + [145.2066, -41.9666], + [144.926, -41.7091], + [144.6058, -40.9965], + [144.7663, -40.7265] + ] + ], + [ + [ + [148.4002, -40.3617], + [148.082, -40.4543], + [148.0741, -40.3512], + [148.4002, -40.3617] + ] + ], + [ + [ + [147.9533, -39.7117], + [148.167, -39.9356], + [148.299, -39.9618], + [148.3074, -40.2377], + [148.0747, -40.2551], + [147.9092, -39.9762], + [147.7577, -39.8793], + [147.9533, -39.7117] + ] + ], + [ + [ + [144.0715, -40.0512], + [143.9225, -40.1274], + [143.8381, -39.9345], + [143.862, -39.7006], + [144.0842, -39.6262], + [144.1448, -39.9264], + [144.0715, -40.0512] + ] + ], + [ + [ + [137.6229, -35.5821], + [137.5808, -35.7268], + [138.0647, -35.761], + [138.0477, -35.9186], + [137.7567, -35.8715], + [137.4592, -36.0827], + [137.2117, -35.9802], + [136.7156, -36.0628], + [136.5326, -35.9119], + [136.6211, -35.7512], + [137.0745, -35.6716], + [137.3522, -35.5856], + [137.6229, -35.5821] + ] + ], + [ + [ + [112.9595, -25.4825], + [113.1375, -25.8859], + [113.0462, -25.94], + [112.9196, -25.6316], + [112.9595, -25.4825] + ] + ], + [ + [ + [153.2861, -24.7365], + [153.3023, -24.9295], + [153.3735, -25.0118], + [153.0835, -25.6658], + [152.9483, -25.5522], + [153.0685, -25.329], + [153.0383, -25.1835], + [153.2261, -25.0275], + [153.1633, -24.8124], + [153.2861, -24.7365] + ] + ], + [ + [ + [151.0369, -23.4509], + [151.1914, -23.5138], + [151.2976, -23.7482], + [151.2139, -23.7781], + [150.9796, -23.4874], + [151.0369, -23.4509] + ] + ], + [ + [ + [139.6973, -16.4477], + [139.6105, -16.5532], + [139.3021, -16.7245], + [139.137, -16.6972], + [139.2879, -16.4706], + [139.6038, -16.3984], + [139.6973, -16.4477] + ] + ], + [ + [ + [136.7241, -13.6872], + [136.7914, -13.9177], + [136.7168, -14.0637], + [136.9031, -14.2989], + [136.6394, -14.2802], + [136.4608, -14.2164], + [136.4302, -13.8771], + [136.5947, -13.8123], + [136.7241, -13.6872] + ] + ], + [ + [ + [130.3865, -11.4685], + [130.4617, -11.5921], + [130.448, -11.6945], + [130.5486, -11.7014], + [130.6282, -11.8046], + [130.4963, -11.839], + [130.3211, -11.7702], + [130.0535, -11.8228], + [130.0643, -11.6913], + [130.2015, -11.6535], + [130.147, -11.489], + [130.2698, -11.3381], + [130.3865, -11.4685] + ] + ], + [ + [ + [130.5065, -11.277], + [130.6917, -11.4228], + [130.888, -11.3132], + [131.0098, -11.3549], + [131.2744, -11.1896], + [131.4277, -11.2497], + [131.4746, -11.3906], + [131.4324, -11.607], + [130.98, -11.9264], + [130.7126, -11.7995], + [130.4966, -11.6495], + [130.4303, -11.4843], + [130.366, -11.2324], + [130.5065, -11.277] + ] + ], + [ + [ + [142.5496, -10.7082], + [142.5496, -10.838], + [142.742, -10.975], + [142.8013, -11.2778], + [142.8729, -11.8507], + [142.9743, -11.9252], + [143.2039, -11.9825], + [143.0863, -12.149], + [143.0772, -12.3288], + [143.2529, -12.3889], + [143.3235, -12.5578], + [143.4339, -12.6131], + [143.3651, -12.8049], + [143.4972, -12.8565], + [143.5266, -13.3298], + [143.5946, -13.4358], + [143.5344, -13.7657], + [143.6873, -14.0143], + [143.7827, -14.4023], + [143.952, -14.499], + [144.5149, -14.1728], + [144.6776, -14.5558], + [144.886, -14.6096], + [144.9417, -14.7263], + [145.2771, -14.947], + [145.2359, -15.1659], + [145.3026, -15.2846], + [145.2738, -15.5357], + [145.3664, -15.7493], + [145.3558, -15.9034], + [145.4624, -16.0605], + [145.4624, -16.2732], + [145.4004, -16.4433], + [145.7777, -16.8853], + [146.0711, -17.392], + [146.0979, -17.9313], + [146.0037, -18.1564], + [146.0238, -18.2631], + [146.3394, -18.527], + [146.2766, -18.8743], + [146.4465, -19.0597], + [146.6548, -19.1825], + [146.7463, -19.1728], + [147.1672, -19.4], + [147.4214, -19.4128], + [147.5505, -19.5209], + [147.5921, -19.7221], + [147.6843, -19.8281], + [147.8592, -19.8249], + [148.2539, -19.9635], + [148.2649, -20.0831], + [148.5667, -20.06], + [148.6109, -20.2136], + [148.7923, -20.2873], + [148.8508, -20.4211], + [148.6553, -20.5554], + [148.7398, -20.7189], + [149.0462, -20.9799], + [149.2312, -21.0898], + [149.1961, -21.1809], + [149.293, -21.3193], + [149.4783, -21.7184], + [149.4354, -21.7897], + [149.6086, -22.2443], + [149.7051, -22.3839], + [149.8308, -22.3886], + [150.0536, -22.1415], + [150.2156, -22.3948], + [150.513, -22.5354], + [150.5676, -22.3232], + [150.7583, -22.4824], + [150.8264, -22.6979], + [150.7644, -23.1589], + [150.8566, -23.52], + [151.0274, -23.58], + [151.1872, -23.8041], + [151.5806, -24.0575], + [151.7804, -24.0226], + [151.9334, -24.211], + [152.0586, -24.5139], + [152.1504, -24.6191], + [152.4048, -24.7487], + [152.506, -24.9994], + [152.6771, -25.2419], + [152.9138, -25.2877], + [152.9386, -25.4757], + [152.8938, -25.6882], + [153.1216, -25.9338], + [153.1418, -26.0615], + [153.0775, -26.2809], + [153.1509, -26.6847], + [153.1525, -26.925], + [153.2062, -27.0461], + [153.0384, -27.1734], + [153.1136, -27.2424], + [153.3154, -27.6549], + [153.4456, -27.8105], + [153.4495, -28.0732], + [153.5911, -28.2685], + [153.5635, -28.4609], + [153.6306, -28.6616], + [153.606, -28.8674], + [153.4538, -29.0356], + [153.3403, -29.3227], + [153.37, -29.3967], + [153.3216, -29.6975], + [153.2038, -30.1292], + [153.0505, -30.4733], + [152.9878, -30.7346], + [153.0879, -30.9267], + [152.9806, -31.1659], + [152.9345, -31.4828], + [152.8454, -31.5693], + [152.6929, -31.8853], + [152.5101, -32.1619], + [152.5216, -32.4275], + [152.2359, -32.607], + [152.1895, -32.7586], + [151.834, -32.865], + [151.6706, -33.0611], + [151.4242, -33.5278], + [151.3431, -33.5483], + [151.2925, -33.8918], + [151.169, -34.1101], + [150.9249, -34.3304], + [150.8338, -34.7824], + [150.6956, -35.0261], + [150.7048, -35.1994], + [150.554, -35.2136], + [150.4094, -35.5385], + [150.1634, -35.9566], + [150.1423, -36.32], + [149.9038, -36.9284], + [150.0195, -37.2209], + [149.951, -37.2843], + [149.9854, -37.4959], + [149.7871, -37.5528], + [149.6667, -37.7001], + [149.479, -37.7859], + [148.9439, -37.7895], + [148.7241, -37.8235], + [148.3064, -37.8234], + [147.9165, -37.9186], + [147.5894, -38.0807], + [146.8786, -38.6443], + [146.4118, -38.7398], + [146.2557, -38.7018], + [145.9158, -38.8958], + [145.8093, -38.6502], + [145.5708, -38.6617], + [145.4312, -38.4428], + [145.5569, -38.3852], + [145.4766, -38.2449], + [145.2966, -38.2317], + [145.0247, -38.4939], + [144.8864, -38.4821], + [145.1193, -38.1594], + [144.9827, -37.8993], + [144.8045, -37.9409], + [144.5233, -38.0842], + [144.7251, -38.1648], + [144.6528, -38.2858], + [144.4019, -38.3012], + [144.0525, -38.4858], + [143.8449, -38.6912], + [143.537, -38.8583], + [143.2415, -38.7628], + [143.0601, -38.6359], + [142.8102, -38.5784], + [142.3977, -38.3671], + [142.2246, -38.4057], + [141.9468, -38.2829], + [141.6725, -38.2843], + [141.6014, -38.3923], + [141.4344, -38.3751], + [141.1343, -38.1276], + [140.9514, -38.0543], + [140.7136, -38.0706], + [140.3599, -37.8821], + [140.1143, -37.5175], + [139.988, -37.4871], + [139.7415, -37.1808], + [139.672, -36.9534], + [139.8635, -36.7673], + [139.8537, -36.6218], + [139.4754, -35.8964], + [139.0414, -35.6041], + [139.1354, -35.4983], + [139.3755, -35.464], + [139.2232, -35.3188], + [138.9612, -35.4138], + [138.882, -35.5606], + [138.7459, -35.5388], + [138.5313, -35.6459], + [138.1768, -35.6682], + [138.1227, -35.5554], + [138.4274, -35.3526], + [138.5073, -35.0566], + [138.5363, -34.7409], + [138.2599, -34.4384], + [138.2266, -34.3205], + [138.0378, -34.308], + [137.9309, -34.4148], + [137.9104, -34.624], + [137.7469, -35.0589], + [137.6714, -35.1808], + [137.4035, -35.1242], + [137.1692, -35.2423], + [136.9534, -35.2839], + [137.0306, -34.8998], + [137.4461, -34.9174], + [137.5127, -34.6178], + [137.4595, -34.4475], + [137.4539, -34.164], + [137.5542, -34.072], + [137.6021, -33.8766], + [137.9375, -33.5278], + [137.8104, -33.26], + [138.044, -33.1251], + [137.9024, -32.7875], + [137.4522, -33.1401], + [137.3767, -33.3899], + [137.2249, -33.6533], + [136.6074, -33.9029], + [136.3694, -34.0734], + [136.1248, -34.4529], + [135.9368, -34.5346], + [135.8621, -34.6982], + [136.0125, -34.9797], + [135.7415, -34.861], + [135.604, -34.8801], + [135.4295, -34.7127], + [135.3464, -34.2756], + [135.1898, -33.893], + [134.8499, -33.6384], + [134.814, -33.3528], + [134.6624, -33.2255], + [134.4461, -33.154], + [134.2788, -33.1627], + [134.0741, -32.714], + [134.2715, -32.7321], + [134.2733, -32.5881], + [134.1483, -32.457], + [133.95, -32.3894], + [133.8123, -32.2472], + [133.5862, -32.1031], + [133.4118, -32.2114], + [133.1478, -32.1967], + [132.798, -31.9563], + [132.5873, -31.9347], + [132.4832, -32.0265], + [132.2337, -32.033], + [132.0779, -31.9078], + [131.5359, -31.6056], + [131.1775, -31.4776], + [130.8338, -31.6017], + [130.1569, -31.5739], + [128.99, -31.6905], + [128.6553, -31.8458], + [128.0173, -32.0842], + [127.7663, -32.1231], + [127.2887, -32.2734], + [126.6777, -32.3166], + [126.1857, -32.2325], + [125.87, -32.333], + [125.5373, -32.5484], + [125.0003, -32.7372], + [124.7088, -32.9039], + [124.3569, -32.9528], + [124.1165, -33.1215], + [123.9525, -33.5673], + [123.5667, -33.8844], + [123.3436, -33.9035], + [123.147, -34.0021], + [123.085, -33.8784], + [122.7879, -33.881], + [122.5603, -33.9592], + [122.3123, -33.9249], + [122.1873, -34.0207], + [122.0156, -33.8254], + [121.813, -33.8951], + [121.5329, -33.8195], + [121.1664, -33.8679], + [120.5723, -33.8915], + [120.4227, -33.9699], + [120.0022, -33.926], + [119.8062, -33.985], + [119.572, -34.142], + [119.3821, -34.4401], + [119.117, -34.4724], + [118.932, -34.4459], + [118.7273, -34.558], + [118.7059, -34.6477], + [118.4798, -34.7171], + [118.3874, -34.8259], + [118.1199, -34.9871], + [117.5386, -35.0922], + [117.3595, -35.0242], + [116.8996, -35.0504], + [116.4651, -35.0007], + [116.2484, -34.8775], + [116.0198, -34.8294], + [115.7455, -34.5402], + [115.3347, -34.3142], + [115.0178, -34.2621], + [114.971, -34.0827], + [114.9568, -33.6823], + [115.1188, -33.6165], + [115.2827, -33.6506], + [115.4341, -33.5955], + [115.6668, -33.2877], + [115.6746, -33.025], + [115.6009, -32.6617], + [115.7693, -32.6023], + [115.7144, -32.303], + [115.7568, -32.1856], + [115.7437, -31.9278], + [115.6803, -31.6486], + [115.4546, -31.3035], + [115.313, -30.9908], + [115.1809, -30.8272], + [114.9749, -30.214], + [114.9461, -29.6581], + [114.9788, -29.4799], + [114.832, -29.0921], + [114.5775, -28.7851], + [114.5311, -28.5224], + [114.3101, -28.2302], + [114.166, -28.1067], + [114.0972, -27.8194], + [114.1439, -27.6878], + [114.0125, -27.3154], + [113.5906, -26.6757], + [113.2978, -26.3973], + [113.2447, -26.2401], + [113.4501, -26.2006], + [113.5983, -26.5185], + [113.6949, -26.6142], + [113.8525, -26.5448], + [113.8848, -26.3427], + [113.6841, -26.2216], + [113.5772, -26.0893], + [113.5576, -25.941], + [113.4208, -25.7282], + [113.5329, -25.6183], + [113.7606, -25.9048], + [113.7044, -26.148], + [113.9355, -26.1917], + [113.97, -26.3317], + [114.1038, -26.4479], + [114.2344, -26.3166], + [114.1919, -26.1959], + [114.2586, -25.8419], + [114.1553, -25.7897], + [113.9284, -25.4498], + [113.8024, -25.1718], + [113.7131, -25.1249], + [113.6106, -24.8928], + [113.6043, -24.7283], + [113.4395, -24.5328], + [113.3853, -24.2491], + [113.4597, -23.9103], + [113.5995, -23.634], + [113.7376, -23.527], + [113.7825, -23.3271], + [113.7483, -23.1623], + [113.8115, -23.0514], + [113.7598, -22.7888], + [113.6589, -22.7278], + [113.6467, -22.5777], + [113.804, -22.3308], + [113.898, -22.0492], + [114.0115, -21.86], + [114.1592, -21.7919], + [114.0775, -22.1755], + [114.1714, -22.3175], + [114.1797, -22.5217], + [114.3919, -22.358], + [114.6467, -21.8434], + [114.929, -21.6939], + [115.1052, -21.6652], + [115.4546, -21.5138], + [115.6027, -21.3435], + [115.8062, -21.2354], + [115.9367, -21.059], + [116.1515, -20.97], + [116.2659, -20.8626], + [116.4347, -20.8224], + [116.7432, -20.6169], + [116.8796, -20.7131], + [117.0625, -20.6217], + [117.3538, -20.7277], + [117.8394, -20.6169], + [118.1356, -20.3621], + [118.3688, -20.3621], + [118.8318, -20.262], + [119.0685, -19.9828], + [119.2124, -19.9612], + [119.5667, -20.0688], + [119.8023, -19.9658], + [120.2383, -19.9068], + [120.9544, -19.6337], + [121.1935, -19.4724], + [121.5194, -19.0696], + [121.6426, -18.8102], + [121.7691, -18.6574], + [121.8237, -18.4518], + [121.9103, -18.4645], + [122.2204, -18.1972], + [122.324, -18.1506], + [122.3607, -18.0002], + [122.1961, -17.9454], + [122.2054, -17.7109], + [122.1432, -17.5637], + [122.172, -17.2612], + [122.2761, -17.0893], + [122.5304, -16.874], + [122.7043, -16.7867], + [122.7588, -16.6044], + [122.8864, -16.5123], + [123.1509, -16.8077], + [123.1433, -16.9138], + [123.2604, -17.0147], + [123.3997, -17.3293], + [123.5676, -17.362], + [123.6443, -17.1847], + [123.6359, -16.9914], + [123.8371, -17.1324], + [123.6931, -16.7299], + [123.5662, -16.616], + [123.6516, -16.3603], + [123.5397, -16.2652], + [123.595, -16.1559], + [123.8352, -16.3683], + [124.1262, -16.2722], + [124.2227, -16.3956], + [124.4002, -16.3531], + [124.3784, -16.2149], + [124.59, -16.0942], + [124.4043, -15.8748], + [124.4033, -15.5593], + [124.5042, -15.4675], + [124.6296, -15.505], + [124.7979, -15.2919], + [125.0498, -15.4982], + [125.0896, -15.3473], + [124.9289, -15.3381], + [124.842, -15.1412], + [125.1261, -15.0495], + [125.3108, -15.1506], + [125.3545, -14.9939], + [125.1443, -14.7284], + [125.4663, -14.5248], + [125.5838, -14.5265], + [125.6581, -14.3603], + [125.9251, -14.5186], + [126.0413, -14.5087], + [126.1413, -14.1955], + [126.2477, -14.2232], + [126.3903, -14.0051], + [126.501, -13.9972], + [126.5692, -14.1952], + [126.7048, -14.1181], + [126.8182, -13.9426], + [126.7474, -13.7918], + [126.9529, -13.7236], + [127.1074, -13.9528], + [127.3224, -13.9174], + [127.666, -14.1784], + [127.9056, -14.4975], + [128.1753, -14.6984], + [128.0671, -15.1252], + [128.1958, -15.0568], + [128.4026, -14.823], + [128.5324, -14.7529], + [129.051, -14.8801], + [129.2214, -14.8435], + [129.6118, -14.9426], + [129.7241, -14.7907], + [129.5852, -14.5663], + [129.3581, -14.4088], + [129.4959, -14.0891], + [129.7175, -14.0156], + [129.7149, -13.8805], + [129.8159, -13.762], + [129.8377, -13.5105], + [129.9689, -13.5305], + [130.1637, -13.4329], + [130.2732, -13.3188], + [130.1187, -13.1562], + [130.1299, -12.9405], + [130.3518, -12.8425], + [130.345, -12.695], + [130.5794, -12.5685], + [130.6204, -12.4369], + [130.7839, -12.435], + [130.8976, -12.3342], + [131.0252, -12.3605], + [131.0002, -12.1713], + [131.2165, -12.2149], + [131.3279, -12.1853], + [131.4929, -12.2978], + [131.7844, -12.2704], + [131.9046, -12.2198], + [132.0457, -12.3074], + [132.2688, -12.1808], + [132.4396, -12.1549], + [132.6272, -12.0439], + [132.6511, -11.8658], + [132.595, -11.622], + [132.4954, -11.4762], + [132.3699, -11.435], + [132.0847, -11.518], + [131.8562, -11.3034], + [132.0143, -11.1396], + [132.1883, -11.3513], + [132.241, -11.1965], + [132.3499, -11.1463], + [132.4749, -11.2341], + [132.6742, -11.5084], + [132.911, -11.3318], + [133.0111, -11.4328], + [133.1411, -11.6746], + [133.3467, -11.6882], + [133.6221, -11.8333], + [133.8025, -11.7149], + [133.9431, -11.9137], + [134.1322, -11.8864], + [134.3822, -12.0427], + [134.6047, -12.0495], + [134.7686, -11.9477], + [134.8611, -12.1266], + [135.0702, -12.2599], + [135.2583, -12.2221], + [135.3029, -12.1283], + [135.5353, -12.0806], + [135.5707, -11.9946], + [135.7393, -11.9415], + [135.7654, -12.0719], + [135.6501, -12.1646], + [135.7653, -12.2571], + [135.8801, -12.1516], + [136.0261, -12.3115], + [136.0232, -12.4557], + [136.2527, -12.4411], + [136.3639, -12.2564], + [136.18, -12.1878], + [136.4507, -11.9423], + [136.5333, -11.9932], + [136.5906, -12.1743], + [136.6906, -12.2828], + [136.8764, -12.2234], + [136.9493, -12.3559], + [136.7402, -12.4758], + [136.6792, -12.6713], + [136.4738, -12.7923], + [136.6369, -12.9549], + [136.4505, -13.2164], + [136.3084, -13.1628], + [135.8834, -13.3258], + [135.8448, -13.6002], + [136.0049, -13.798], + [135.9231, -13.9596], + [135.9033, -14.1358], + [135.7591, -14.2654], + [135.3913, -14.7399], + [135.4696, -14.948], + [135.861, -15.176], + [135.9517, -15.2644], + [136.2401, -15.4241], + [136.2679, -15.545], + [136.6121, -15.7547], + [136.7679, -15.9008], + [137.0459, -15.9223], + [137.3612, -16.1222], + [137.7461, -16.2521], + [137.8669, -16.4371], + [138.1843, -16.6972], + [138.4927, -16.7944], + [138.6572, -16.7797], + [139.0373, -16.9156], + [139.2742, -17.3483], + [139.4386, -17.3757], + [139.641, -17.5324], + [139.9253, -17.6214], + [139.9995, -17.7061], + [140.2405, -17.7021], + [140.5075, -17.6363], + [140.8333, -17.4508], + [140.96, -17.074], + [140.947, -17.0183], + [141.1995, -16.7031], + [141.4248, -16.0817], + [141.4017, -15.9036], + [141.4871, -15.4789], + [141.6657, -15.0114], + [141.6043, -14.8777], + [141.5217, -14.4838], + [141.5921, -14.2453], + [141.584, -14.0761], + [141.485, -13.9485], + [141.4741, -13.7763], + [141.5598, -13.492], + [141.6908, -13.2599], + [141.5855, -12.9775], + [141.7547, -12.8185], + [141.8114, -12.5841], + [141.6657, -12.4411], + [141.801, -12.0551], + [141.9476, -11.8962], + [142.1318, -11.3381], + [142.1746, -10.9301], + [142.3234, -10.9016], + [142.4486, -10.7145], + [142.5496, -10.7082] + ] + ] + ] + }, + "properties": { + "NAME": "Australia", + "NAME_LONG": "Australia", + "ADM0_A3": "AUS", + "ISO_A2": "AU", + "ISO_A3": "AUS", + "WB_A2": "AU", + "WB_A3": "AUS" + }, + "id": 15 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [16.945, 48.6042], + [16.8445, 48.3656], + [17.1483, 48.0054], + [17.0395, 47.8374], + [17.0548, 47.702], + [16.7975, 47.6755], + [16.688, 47.5226], + [16.425, 47.3511], + [16.4372, 47.0318], + [16.2749, 47.0043], + [16.094, 46.8628], + [15.9705, 46.743], + [15.6521, 46.7108], + [15.4627, 46.6146], + [15.062, 46.6496], + [14.7886, 46.5066], + [14.5022, 46.4184], + [14.1499, 46.4401], + [13.701, 46.5197], + [13.2311, 46.5522], + [12.405, 46.6901], + [12.1112, 46.993], + [11.9436, 47.0382], + [11.7464, 46.9725], + [11.3138, 46.9873], + [11.0919, 46.9124], + [10.9969, 46.7691], + [10.4538, 46.8644], + [10.3679, 46.9955], + [10.1113, 46.8471], + [9.5812, 47.0569], + [9.5212, 47.2628], + [9.6495, 47.4097], + [9.5475, 47.5345], + [9.9487, 47.5242], + [10.3059, 47.3022], + [10.6079, 47.5623], + [11.0837, 47.3895], + [11.2588, 47.4007], + [11.6205, 47.5897], + [12.1656, 47.604], + [12.4241, 47.6916], + [12.7448, 47.6654], + [12.7789, 47.5548], + [13.0373, 47.493], + [13.0748, 47.6467], + [12.892, 47.7235], + [12.9912, 47.8471], + [12.745, 48.1206], + [13.0328, 48.2636], + [13.4056, 48.3766], + [13.5207, 48.5846], + [13.7143, 48.5232], + [13.8157, 48.7664], + [14.0748, 48.5917], + [14.3157, 48.5579], + [14.4436, 48.6365], + [14.6957, 48.5895], + [14.8004, 48.7765], + [14.9193, 48.7616], + [14.9821, 49.0079], + [15.2629, 48.9826], + [15.6813, 48.8585], + [15.8185, 48.8723], + [16.0323, 48.7581], + [16.3583, 48.7273], + [16.4357, 48.7945], + [16.873, 48.719], + [16.945, 48.6042] + ] + ] + }, + "properties": { + "NAME": "Austria", + "NAME_LONG": "Austria", + "ADM0_A3": "AUT", + "ISO_A2": "AT", + "ISO_A3": "AUT", + "WB_A2": "AT", + "WB_A3": "AUT" + }, + "id": 16 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [46.1359, 38.8637], + [45.4386, 39.0042], + [45.3482, 39.1639], + [45.1789, 39.2198], + [44.957, 39.4345], + [44.807, 39.6399], + [44.7746, 39.7028], + [45.0335, 39.7704], + [45.1679, 39.5655], + [45.4575, 39.4893], + [45.7881, 39.549], + [45.767, 39.3544], + [45.9588, 39.2724], + [45.9581, 39.1515], + [46.1359, 38.8637] + ] + ], + [ + [ + [46.4309, 41.8904], + [46.5499, 41.7978], + [46.745, 41.8401], + [47.027, 41.5569], + [47.2315, 41.4275], + [47.2684, 41.3028], + [47.7437, 41.1927], + [47.8711, 41.2082], + [48.0535, 41.4613], + [48.3702, 41.5802], + [48.5789, 41.8453], + [49.0425, 41.4144], + [49.1955, 41.0573], + [49.382, 40.8666], + [49.5388, 40.7881], + [49.5896, 40.6252], + [49.8587, 40.5666], + [50.052, 40.5843], + [50.3359, 40.406], + [50.23, 40.3428], + [49.8934, 40.369], + [49.5772, 40.2167], + [49.4426, 40.0784], + [49.4839, 39.9887], + [49.318, 39.6214], + [49.2957, 39.4767], + [49.4089, 39.3864], + [49.2371, 39.279], + [49.1939, 39.0163], + [48.9676, 39.1838], + [48.8631, 38.7567], + [48.8743, 38.4341], + [48.6079, 38.396], + [48.2104, 38.7298], + [48.013, 38.8216], + [48.0585, 38.9484], + [48.3068, 39.0454], + [48.1422, 39.1812], + [48.1246, 39.2976], + [48.3389, 39.3789], + [48.052, 39.6501], + [47.8469, 39.6853], + [47.2914, 39.3796], + [47.1022, 39.3084], + [47.0205, 39.19], + [46.8662, 39.1654], + [46.514, 38.8822], + [46.4793, 39.1148], + [46.5979, 39.2251], + [46.3746, 39.3788], + [46.5273, 39.5382], + [46.3437, 39.6186], + [46.2065, 39.5879], + [45.8619, 39.8045], + [45.6396, 40.0254], + [45.8738, 40.0098], + [45.9792, 40.2236], + [45.5262, 40.441], + [45.3736, 40.6753], + [45.5559, 40.7766], + [45.4164, 40.9613], + [45.2216, 41.0144], + [45.1868, 41.1569], + [45.0024, 41.2905], + [45.2496, 41.4445], + [45.4648, 41.4302], + [45.7207, 41.3424], + [45.7097, 41.2677], + [45.9692, 41.1683], + [46.2106, 41.2002], + [46.4968, 41.0448], + [46.6948, 41.2698], + [46.5916, 41.3729], + [46.2967, 41.5104], + [46.1928, 41.6102], + [46.4309, 41.8904] + ] + ] + ] + }, + "properties": { + "NAME": "Azerbaijan", + "NAME_LONG": "Azerbaijan", + "ADM0_A3": "AZE", + "ISO_A2": "AZ", + "ISO_A3": "AZE", + "WB_A2": "AZ", + "WB_A3": "AZE" + }, + "id": 17 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [30.5546, -2.4006], + [30.416, -2.6456], + [30.4158, -2.8517], + [30.7189, -2.9895], + [30.8322, -3.1728], + [30.7998, -3.2746], + [30.6405, -3.3329], + [30.6129, -3.4449], + [30.4689, -3.513], + [30.2088, -3.9305], + [30.1498, -4.0868], + [30.003, -4.2719], + [29.8003, -4.3639], + [29.7283, -4.4616], + [29.4042, -4.4498], + [29.3395, -4.0932], + [29.215, -3.8999], + [29.2067, -3.3345], + [29.2346, -3.0466], + [29.0898, -2.9261], + [29.0154, -2.7207], + [29.1297, -2.597], + [29.3066, -2.6601], + [29.3397, -2.8264], + [29.6975, -2.8083], + [29.9033, -2.6491], + [29.9317, -2.3169], + [30.1391, -2.4308], + [30.2075, -2.3392], + [30.3786, -2.3031], + [30.5546, -2.4006] + ] + ] + }, + "properties": { + "NAME": "Burundi", + "NAME_LONG": "Burundi", + "ADM0_A3": "BDI", + "ISO_A2": "BI", + "ISO_A3": "BDI", + "WB_A2": "BI", + "WB_A3": "BDI" + }, + "id": 18 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [5.9949, 50.7499], + [6.2329, 50.5871], + [6.3377, 50.3681], + [6.1175, 50.1205], + [5.9616, 50.1656], + [5.7149, 49.8819], + [5.8855, 49.6435], + [5.7907, 49.5378], + [5.4777, 49.4952], + [5.4021, 49.6025], + [4.9891, 49.7906], + [4.849, 49.7942], + [4.7883, 49.9743], + [4.4351, 49.9323], + [4.21, 50.0601], + [4.0227, 50.3381], + [3.755, 50.3463], + [3.4629, 50.5191], + [3.271, 50.5269], + [3.1462, 50.7689], + [2.7867, 50.7234], + [2.6204, 50.8165], + [2.5218, 51.0875], + [3.1248, 51.3297], + [3.3494, 51.3752], + [3.3917, 51.2468], + [3.6351, 51.2878], + [3.927, 51.2063], + [4.2215, 51.368], + [4.2611, 51.3694], + [4.5252, 51.4759], + [4.7312, 51.4856], + [5.0681, 51.3745], + [5.2154, 51.2587], + [5.4716, 51.2881], + [5.8405, 51.1389], + [5.6407, 50.815], + [5.9949, 50.7499] + ] + ] + }, + "properties": { + "NAME": "Belgium", + "NAME_LONG": "Belgium", + "ADM0_A3": "BEL", + "ISO_A2": "BE", + "ISO_A3": "BEL", + "WB_A2": "BE", + "WB_A3": "BEL" + }, + "id": 19 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [3.5964, 11.6958], + [3.5049, 11.5566], + [3.4833, 11.3923], + [3.7221, 11.1123], + [3.7313, 10.825], + [3.8374, 10.5999], + [3.7569, 10.4053], + [3.6521, 10.4358], + [3.5724, 10.2857], + [3.6556, 10.1748], + [3.5996, 9.9687], + [3.5131, 9.8466], + [3.3171, 9.7817], + [3.3386, 9.6782], + [3.1286, 9.4296], + [3.1514, 9.2886], + [3.0913, 9.1264], + [2.9831, 9.0606], + [2.7692, 9.057], + [2.7229, 8.7723], + [2.7448, 8.4983], + [2.6971, 8.3207], + [2.735, 8.2119], + [2.6722, 7.8896], + [2.7272, 7.7933], + [2.7206, 7.5866], + [2.7739, 7.0508], + [2.7151, 6.9798], + [2.7786, 6.6988], + [2.7038, 6.3684], + [1.8845, 6.2748], + [1.6196, 6.2139], + [1.7824, 6.2773], + [1.7441, 6.4257], + [1.566, 6.6781], + [1.6257, 6.9968], + [1.6213, 7.9966], + [1.6012, 9.0495], + [1.4253, 9.2845], + [1.3513, 9.5951], + [1.331, 9.9965], + [0.7688, 10.3671], + [0.7813, 10.693], + [0.8629, 10.7961], + [0.9015, 10.9927], + [1.035, 11.0493], + [1.1306, 11.2476], + [1.2684, 11.2479], + [1.4338, 11.4594], + [1.6016, 11.3887], + [1.8798, 11.4449], + [2.0108, 11.4269], + [2.2911, 11.6748], + [2.3902, 11.8965], + [2.3612, 12.2189], + [2.8443, 12.3992], + [3.2551, 12.0188], + [3.2927, 11.9187], + [3.5035, 11.83], + [3.5964, 11.6958] + ] + ] + }, + "properties": { + "NAME": "Benin", + "NAME_LONG": "Benin", + "ADM0_A3": "BEN", + "ISO_A2": "BJ", + "ISO_A3": "BEN", + "WB_A2": "BJ", + "WB_A3": "BEN" + }, + "id": 20 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [0.2185, 14.911], + [0.2197, 14.7312], + [0.1529, 14.5467], + [0.1886, 14.4477], + [0.3888, 14.2516], + [0.3392, 14.1258], + [0.6207, 13.68], + [0.951, 13.5832], + [1.0482, 13.4419], + [0.9835, 13.3684], + [0.9718, 13.0673], + [1.114, 12.9962], + [1.5359, 12.6475], + [1.8261, 12.6042], + [1.9717, 12.7242], + [2.109, 12.7056], + [2.245, 12.4242], + [2.0709, 12.3069], + [2.3902, 11.8965], + [2.2911, 11.6748], + [2.0108, 11.4269], + [1.8798, 11.4449], + [1.6016, 11.3887], + [1.4338, 11.4594], + [1.2684, 11.2479], + [1.1306, 11.2476], + [1.035, 11.0493], + [0.9015, 10.9927], + [0.4866, 11.0032], + [-0.1661, 11.135], + [-0.4059, 11.1015], + [-0.5165, 10.9886], + [-1.5987, 10.9971], + [-2.7507, 10.9858], + [-2.8642, 10.8643], + [-2.9325, 10.6343], + [-2.8146, 10.3937], + [-2.8332, 10.306], + [-2.7368, 9.8326], + [-2.7953, 9.72], + [-2.6892, 9.4887], + [-2.7637, 9.3919], + [-2.9102, 9.5427], + [-2.99, 9.7084], + [-3.1369, 9.8295], + [-3.3892, 9.9132], + [-3.6617, 9.9489], + [-3.8897, 9.8945], + [-4.0599, 9.7963], + [-4.2703, 9.7439], + [-4.3225, 9.6089], + [-4.604, 9.7272], + [-4.7055, 9.7021], + [-4.8385, 9.8695], + [-4.9661, 9.901], + [-5.1118, 10.2787], + [-5.4025, 10.3006], + [-5.5226, 10.4255], + [-5.4314, 10.8447], + [-5.4898, 11.0821], + [-5.3223, 11.1355], + [-5.2183, 11.4222], + [-5.3078, 11.629], + [-5.2682, 11.8431], + [-5.1678, 11.9437], + [-4.9537, 12.0051], + [-4.8068, 11.9963], + [-4.6537, 12.0691], + [-4.5855, 12.1972], + [-4.4061, 12.3075], + [-4.4516, 12.4353], + [-4.3869, 12.5302], + [-4.4825, 12.6463], + [-4.2972, 12.7121], + [-4.2119, 12.8192], + [-4.2293, 12.949], + [-4.3511, 13.1183], + [-3.984, 13.3965], + [-3.7986, 13.3471], + [-3.5969, 13.1994], + [-3.2486, 13.2928], + [-3.2597, 13.6583], + [-3.0675, 13.6068], + [-2.8952, 13.6516], + [-2.9281, 13.7996], + [-2.8409, 14.043], + [-2.4617, 14.2809], + [-2.1519, 14.1561], + [-2.0234, 14.1986], + [-1.967, 14.4837], + [-1.6969, 14.4961], + [-1.3503, 14.715], + [-1.0433, 14.8179], + [-0.7529, 15.0697], + [-0.4679, 15.0799], + [-0.3977, 15.0021], + [-0.2367, 15.0656], + [0.2185, 14.911] + ] + ] + }, + "properties": { + "NAME": "Burkina Faso", + "NAME_LONG": "Burkina Faso", + "ADM0_A3": "BFA", + "ISO_A2": "BF", + "ISO_A3": "BFA", + "WB_A2": "BF", + "WB_A3": "BFA" + }, + "id": 21 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [90.8279, 22.1524], + [90.6035, 22.044], + [90.688, 22.3776], + [90.6475, 22.5483], + [90.5588, 22.6029], + [90.6506, 22.7874], + [90.7669, 22.5175], + [90.855, 22.4347], + [90.8279, 22.1524] + ] + ], + [ + [ + [92.5759, 21.9776], + [92.5902, 21.4955], + [92.6429, 21.2984], + [92.4231, 21.3637], + [92.3227, 21.4619], + [92.1837, 21.3172], + [92.175, 21.1756], + [92.2651, 21.0611], + [92.1929, 20.9957], + [92.0525, 21.1548], + [91.9597, 21.424], + [92.0221, 21.5994], + [91.9087, 21.7812], + [91.8552, 22.1092], + [91.676, 22.5346], + [91.4563, 22.7848], + [91.2434, 22.7022], + [91.2027, 22.5432], + [90.9549, 22.5758], + [90.7742, 22.7781], + [90.6272, 23.0867], + [90.4661, 23.0768], + [90.507, 22.9421], + [90.4064, 22.7631], + [90.4899, 22.7202], + [90.6066, 22.4658], + [90.6135, 22.3149], + [90.4596, 22.0919], + [90.3322, 22.0381], + [90.2727, 21.8574], + [90.1848, 21.801], + [90.0244, 21.8625], + [89.9344, 21.9977], + [89.8142, 21.8408], + [89.4658, 21.7813], + [89.3659, 21.8289], + [89.1047, 21.8159], + [89.0604, 22.1299], + [88.9081, 22.7408], + [88.9445, 22.848], + [88.8428, 22.9646], + [88.9547, 23.1838], + [88.6859, 23.2933], + [88.7194, 23.4681], + [88.5401, 23.65], + [88.5936, 23.8669], + [88.7142, 23.9252], + [88.6741, 24.0826], + [88.7375, 24.2871], + [88.4754, 24.3155], + [88.1388, 24.4953], + [88.0218, 24.6456], + [88.2025, 24.9453], + [88.3228, 24.8747], + [88.4315, 25.173], + [88.8986, 25.1693], + [88.7723, 25.502], + [88.5303, 25.5002], + [88.4194, 25.6538], + [88.0744, 25.9081], + [88.1638, 26.1405], + [88.3087, 26.2061], + [88.4955, 26.3781], + [88.6563, 26.4151], + [88.808, 26.2334], + [89.0437, 26.3811], + [89.1316, 26.1338], + [89.3515, 25.9969], + [89.6029, 26.0553], + [89.6584, 26.2079], + [89.8301, 25.908], + [89.7831, 25.8144], + [89.8344, 25.6348], + [89.795, 25.3742], + [89.9081, 25.2969], + [90.3646, 25.15], + [90.738, 25.1694], + [90.822, 25.1423], + [91.2357, 25.2019], + [91.471, 25.1339], + [92.0018, 25.183], + [92.3035, 25.0743], + [92.4581, 24.9533], + [92.3807, 24.8367], + [92.2338, 24.7775], + [92.1076, 24.406], + [91.95, 24.3754], + [91.9059, 24.2606], + [91.5965, 24.105], + [91.363, 24.0998], + [91.2163, 23.9084], + [91.1408, 23.6121], + [91.2273, 23.4688], + [91.3005, 23.1423], + [91.4636, 23.1841], + [91.5366, 22.9819], + [91.6947, 22.9881], + [91.7956, 23.0895], + [91.7437, 23.2723], + [91.9408, 23.4952], + [92.0035, 23.6474], + [92.1508, 23.7317], + [92.2528, 23.6093], + [92.3569, 23.2891], + [92.3276, 23.1714], + [92.3787, 22.9004], + [92.4959, 22.6956], + [92.577, 22.1687], + [92.5759, 21.9776] + ] + ] + ] + }, + "properties": { + "NAME": "Bangladesh", + "NAME_LONG": "Bangladesh", + "ADM0_A3": "BGD", + "ISO_A2": "BD", + "ISO_A3": "BGD", + "WB_A2": "BD", + "WB_A3": "BGD" + }, + "id": 22 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [28.5784, 43.7413], + [28.6035, 43.5382], + [28.4595, 43.3807], + [28.3216, 43.4283], + [28.0916, 43.364], + [27.8854, 43.0086], + [27.8923, 42.7105], + [27.7432, 42.7161], + [27.5115, 42.553], + [27.6917, 42.4283], + [27.7511, 42.277], + [27.9866, 42.0721], + [28.0168, 41.9726], + [27.808, 41.9935], + [27.5332, 41.9081], + [27.2734, 42.0917], + [27.0226, 42.0739], + [26.9389, 41.9962], + [26.6236, 41.969], + [26.5261, 41.8242], + [26.3334, 41.713], + [26.0481, 41.6891], + [26.1645, 41.5177], + [26.1209, 41.3578], + [25.882, 41.304], + [25.5515, 41.3157], + [25.2857, 41.2394], + [24.8864, 41.4006], + [24.5958, 41.4298], + [24.5309, 41.5475], + [24.0473, 41.5257], + [23.6124, 41.371], + [23.2877, 41.3982], + [23.1152, 41.3127], + [22.917, 41.3358], + [22.9337, 41.5846], + [23.0096, 41.7164], + [22.8437, 42.0145], + [22.5311, 42.1291], + [22.345, 42.3134], + [22.5088, 42.4049], + [22.4297, 42.5714], + [22.506, 42.8701], + [22.727, 42.8869], + [22.9353, 43.0856], + [22.8045, 43.329], + [22.5189, 43.4742], + [22.3495, 43.8079], + [22.3996, 43.9933], + [22.6047, 44.0794], + [22.6916, 44.2284], + [23.023, 44.0316], + [22.8859, 43.9945], + [22.9196, 43.8342], + [23.3252, 43.8866], + [24.1594, 43.7529], + [24.5001, 43.7995], + [24.7056, 43.7438], + [24.9637, 43.7496], + [25.3596, 43.6543], + [25.7811, 43.732], + [26.1507, 44.0124], + [27.0275, 44.177], + [27.2511, 44.1224], + [27.3838, 44.0151], + [27.6563, 44.0239], + [27.9358, 43.9644], + [27.981, 43.8493], + [28.2213, 43.762], + [28.5784, 43.7413] + ] + ] + }, + "properties": { + "NAME": "Bulgaria", + "NAME_LONG": "Bulgaria", + "ADM0_A3": "BGR", + "ISO_A2": "BG", + "ISO_A3": "BGR", + "WB_A2": "BG", + "WB_A3": "BGR" + }, + "id": 23 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [50.5516, 26.1942], + [50.6148, 26.1112], + [50.6035, 25.8546], + [50.4605, 25.9853], + [50.453, 26.1496], + [50.5516, 26.1942] + ] + ] + }, + "properties": { + "NAME": "Bahrain", + "NAME_LONG": "Bahrain", + "ADM0_A3": "BHR", + "ISO_A2": "BH", + "ISO_A3": "BHR", + "WB_A2": "BH", + "WB_A3": "BHR" + }, + "id": 24 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-73.0339, 21.1567], + [-73.1298, 20.9937], + [-73.4926, 20.9245], + [-73.6761, 20.9352], + [-73.7032, 21.0198], + [-73.5146, 21.1869], + [-73.3982, 21.2248], + [-73.2552, 21.1351], + [-73.0339, 21.1567] + ] + ], + [ + [ + [-77.7481, 24.1318], + [-77.5495, 24.1259], + [-77.5175, 23.8642], + [-77.643, 23.7549], + [-77.8129, 23.8767], + [-77.8335, 24.0218], + [-77.7481, 24.1318] + ] + ], + [ + [ + [-78.107, 25.1631], + [-77.7372, 24.7002], + [-77.7187, 24.4998], + [-77.9086, 24.3508], + [-78.0633, 24.3162], + [-78.18, 24.4649], + [-78.3516, 24.5305], + [-78.3351, 24.6728], + [-78.2081, 24.8618], + [-78.107, 25.1631] + ] + ], + [ + [ + [-78.5203, 26.729], + [-78.2871, 26.6855], + [-77.9717, 26.7296], + [-77.9029, 26.6816], + [-78.5402, 26.565], + [-78.5203, 26.729] + ] + ], + [ + [ + [-77.7745, 26.9272], + [-77.5113, 26.8695], + [-77.2699, 26.6251], + [-77.0588, 26.5294], + [-77.0148, 26.3157], + [-77.1649, 26.2454], + [-77.1907, 25.9163], + [-77.3479, 26.0706], + [-77.2564, 26.2039], + [-77.1607, 26.5642], + [-77.3122, 26.5947], + [-77.5175, 26.8522], + [-77.7745, 26.9272] + ] + ] + ] + }, + "properties": { + "NAME": "Bahamas", + "NAME_LONG": "Bahamas", + "ADM0_A3": "BHS", + "ISO_A2": "BS", + "ISO_A3": "BHS", + "WB_A2": "BS", + "WB_A3": "BHS" + }, + "id": 25 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [19.0158, 44.8656], + [19.1743, 44.9254], + [19.3687, 44.8871], + [19.3284, 44.734], + [19.1299, 44.5183], + [19.1772, 44.287], + [19.6189, 44.0357], + [19.2754, 43.9333], + [19.4617, 43.7621], + [19.3634, 43.6016], + [19.1953, 43.5328], + [18.911, 43.5073], + [18.8991, 43.3519], + [18.6795, 43.2495], + [18.639, 43.0202], + [18.4528, 42.9934], + [18.5384, 42.6183], + [18.4374, 42.5592], + [18.2241, 42.6281], + [17.6533, 42.8909], + [17.5807, 42.9421], + [17.5874, 43.0821], + [17.4421, 43.1524], + [17.2676, 43.3533], + [17.2395, 43.4784], + [17.0846, 43.5132], + [16.7126, 43.7715], + [16.6786, 43.8407], + [16.2158, 44.2082], + [16.1165, 44.5215], + [15.8956, 44.7186], + [15.7173, 44.7865], + [15.78, 45.1603], + [15.9975, 45.2185], + [16.213, 45.0315], + [16.3406, 45.0059], + [16.4819, 45.1995], + [16.7863, 45.1788], + [16.9326, 45.2788], + [17.1871, 45.1486], + [17.8357, 45.0644], + [17.9885, 45.1438], + [18.2379, 45.1575], + [18.4661, 45.074], + [18.6167, 45.0977], + [19.0158, 44.8656] + ] + ] + }, + "properties": { + "NAME": "Bosnia and Herz.", + "NAME_LONG": "Bosnia and Herzegovina", + "ADM0_A3": "BIH", + "ISO_A2": "BA", + "ISO_A3": "BIH", + "WB_A2": "BA", + "WB_A3": "BIH" + }, + "id": 26 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [28.1489, 56.1424], + [28.2898, 56.0466], + [28.6207, 56.083], + [28.7064, 55.9598], + [29.0308, 56.0242], + [29.3774, 55.954], + [29.3436, 55.787], + [29.461, 55.6873], + [29.8695, 55.8305], + [30.2178, 55.8551], + [30.4688, 55.7935], + [30.5964, 55.6653], + [30.9128, 55.5716], + [30.9186, 55.4076], + [30.7943, 55.2855], + [31.0064, 55.0424], + [30.8148, 54.928], + [30.7706, 54.786], + [31.1679, 54.6216], + [31.3247, 54.2292], + [31.7481, 54.0863], + [31.8465, 53.9923], + [31.7538, 53.8196], + [32.0836, 53.8096], + [32.4806, 53.6624], + [32.4529, 53.5464], + [32.7195, 53.4395], + [32.4055, 53.1927], + [32.2059, 53.1004], + [31.9072, 53.0919], + [31.7386, 53.1925], + [31.3785, 53.182], + [31.2471, 53.0144], + [31.5051, 52.8489], + [31.5702, 52.7253], + [31.6081, 52.3725], + [31.7643, 52.1006], + [31.4749, 52.1178], + [30.9405, 52.0201], + [30.662, 51.8194], + [30.5341, 51.5533], + [30.6383, 51.3359], + [30.3551, 51.3053], + [30.1486, 51.4844], + [29.8286, 51.43], + [29.618, 51.4856], + [29.297, 51.3737], + [29.1604, 51.6033], + [28.7999, 51.5326], + [28.3469, 51.5252], + [27.4773, 51.6237], + [27.254, 51.5954], + [27.1779, 51.7471], + [26.8548, 51.7493], + [26.4078, 51.8506], + [25.7679, 51.9285], + [25.1833, 51.9498], + [24.7218, 51.8823], + [24.3908, 51.88], + [24.2441, 51.7182], + [23.9813, 51.586], + [23.7497, 51.6445], + [23.6062, 51.5174], + [23.5603, 51.7545], + [23.6764, 51.9941], + [23.6375, 52.0845], + [23.1656, 52.2894], + [23.3923, 52.5096], + [23.869, 52.67], + [23.9225, 52.7426], + [23.8937, 53.152], + [23.5909, 53.6113], + [23.4856, 53.9393], + [23.6426, 53.899], + [24.2011, 53.9525], + [24.3779, 53.8868], + [24.8214, 54.0199], + [25.1935, 54.2437], + [25.53, 54.3461], + [25.7827, 54.8697], + [26.1386, 54.9689], + [26.3095, 55.1446], + [26.5789, 55.1185], + [26.7686, 55.3002], + [26.4455, 55.3375], + [26.5945, 55.667], + [26.8228, 55.7061], + [26.9811, 55.8269], + [27.5927, 55.7942], + [27.645, 55.9228], + [27.9115, 56.1002], + [28.1489, 56.1424] + ] + ] + }, + "properties": { + "NAME": "Belarus", + "NAME_LONG": "Belarus", + "ADM0_A3": "BLR", + "ISO_A2": "BY", + "ISO_A3": "BLR", + "WB_A2": "BY", + "WB_A3": "BLR" + }, + "id": 29 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-88.3038, 18.4814], + [-88.0915, 18.1184], + [-88.2083, 17.882], + [-88.2833, 17.5803], + [-88.2308, 17.4965], + [-88.3005, 17.1779], + [-88.2151, 16.9671], + [-88.2833, 16.8913], + [-88.3062, 16.6529], + [-88.536, 16.2741], + [-88.7401, 16.2302], + [-88.7457, 16.1549], + [-88.9276, 15.9839], + [-88.914, 15.8939], + [-89.2365, 15.8939], + [-89.1492, 17.0363], + [-89.1605, 17.8143], + [-89.0494, 17.9992], + [-88.8803, 17.8885], + [-88.7364, 18.0519], + [-88.4892, 18.4845], + [-88.3038, 18.4814] + ] + ] + }, + "properties": { + "NAME": "Belize", + "NAME_LONG": "Belize", + "ADM0_A3": "BLZ", + "ISO_A2": "BZ", + "ISO_A3": "BLZ", + "WB_A2": "BZ", + "WB_A3": "BLZ" + }, + "id": 30 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-58.1588, -20.1651], + [-58.1753, -19.8214], + [-59.0895, -19.2867], + [-60.0064, -19.2981], + [-60.8339, -19.4679], + [-61.7612, -19.6578], + [-61.9443, -20.1041], + [-62.2773, -20.5798], + [-62.2757, -21.0666], + [-62.6504, -22.2345], + [-62.7909, -22.1132], + [-62.8044, -22.0041], + [-63.6394, -21.9975], + [-63.7404, -22.0506], + [-63.9476, -22.0076], + [-64.294, -22.6909], + [-64.572, -22.3432], + [-64.5869, -22.2128], + [-65.0204, -22.0966], + [-65.7446, -22.114], + [-66.0945, -21.8329], + [-66.24, -21.7924], + [-66.2972, -22.0503], + [-66.3775, -22.1271], + [-66.7359, -22.2251], + [-66.7965, -22.4349], + [-67.0327, -22.5246], + [-67.0377, -22.6546], + [-67.1939, -22.8222], + [-67.5471, -22.8925], + [-67.7714, -22.8887], + [-67.8763, -22.8336], + [-67.8587, -22.5668], + [-67.9453, -22.3542], + [-67.9902, -22.0576], + [-68.0962, -21.954], + [-68.1076, -21.7896], + [-68.1984, -21.5719], + [-68.2075, -21.2843], + [-68.4163, -20.9598], + [-68.572, -20.8724], + [-68.4816, -20.643], + [-68.6855, -20.5168], + [-68.6785, -20.3286], + [-68.7755, -20.0897], + [-68.5883, -20.0556], + [-68.5535, -19.8579], + [-68.6984, -19.7463], + [-68.4964, -19.4584], + [-68.4932, -19.377], + [-68.6633, -19.2736], + [-68.9896, -18.9465], + [-68.9546, -18.857], + [-69.0428, -18.6005], + [-69.0344, -18.4783], + [-69.1408, -18.0308], + [-69.3024, -17.9762], + [-69.3342, -17.8058], + [-69.4758, -17.6524], + [-69.5101, -17.5066], + [-69.5226, -17.3691], + [-69.6665, -17.2883], + [-69.6228, -17.1856], + [-69.4274, -17.0869], + [-69.1917, -16.743], + [-69.0371, -16.6702], + [-69.0017, -16.4228], + [-68.8436, -16.302], + [-68.982, -16.21], + [-69.1447, -16.2235], + [-69.2196, -16.1528], + [-69.4243, -15.6563], + [-69.2912, -15.3508], + [-69.1481, -15.2333], + [-69.3907, -14.9644], + [-69.3614, -14.788], + [-69.2676, -14.7507], + [-69.2475, -14.5937], + [-68.9903, -14.379], + [-69.0101, -14.2459], + [-68.8837, -14.2115], + [-68.983, -13.9722], + [-69.016, -13.7531], + [-68.9628, -13.2836], + [-68.981, -12.8679], + [-68.6843, -12.5025], + [-69.1316, -11.726], + [-69.5776, -10.9523], + [-69.3959, -10.935], + [-68.884, -11.0164], + [-68.787, -11.126], + [-68.6157, -11.1125], + [-68.2933, -10.979], + [-68.0979, -10.6977], + [-67.8626, -10.6588], + [-67.7558, -10.7142], + [-67.5846, -10.5018], + [-67.3378, -10.3261], + [-67.0643, -10.2569], + [-66.9027, -10.0931], + [-66.6319, -9.9043], + [-66.4529, -9.8887], + [-66.1907, -9.8008], + [-65.8744, -9.7813], + [-65.7886, -9.733], + [-65.584, -9.8372], + [-65.4518, -9.6814], + [-65.3044, -9.8257], + [-65.3333, -9.9268], + [-65.2881, -10.2162], + [-65.45, -10.4681], + [-65.4047, -10.7992], + [-65.303, -10.9907], + [-65.36, -11.2188], + [-65.353, -11.3906], + [-65.1954, -11.5922], + [-65.1962, -11.7418], + [-65.0656, -11.7531], + [-64.9974, -11.9963], + [-64.7925, -12.0325], + [-64.7163, -12.1465], + [-64.4691, -12.2611], + [-64.3957, -12.4573], + [-63.9212, -12.5443], + [-63.8014, -12.4549], + [-63.4961, -12.5533], + [-63.3933, -12.6645], + [-63.2473, -12.7013], + [-63.075, -12.6527], + [-62.9753, -12.8529], + [-62.8074, -12.9889], + [-62.4927, -13.065], + [-62.3818, -13.1399], + [-62.2216, -13.1213], + [-61.8686, -13.4639], + [-61.848, -13.5308], + [-61.3477, -13.4937], + [-60.8967, -13.5529], + [-60.4653, -13.8166], + [-60.3897, -13.9749], + [-60.4735, -14.1172], + [-60.2917, -14.6301], + [-60.275, -15.0951], + [-60.5295, -15.1437], + [-60.238, -15.5027], + [-60.1798, -16.222], + [-60.1298, -16.2731], + [-58.4647, -16.3313], + [-58.3396, -16.2893], + [-58.3561, -16.5095], + [-58.4803, -16.6837], + [-58.4663, -16.8873], + [-58.3812, -17.2672], + [-58.2316, -17.3297], + [-58.0102, -17.4968], + [-57.7908, -17.5558], + [-57.7301, -17.8461], + [-57.5511, -18.1836], + [-57.7823, -18.9104], + [-57.789, -19.0592], + [-58.1246, -19.7299], + [-57.8597, -19.9801], + [-58.1588, -20.1651] + ] + ] + }, + "properties": { + "NAME": "Bolivia", + "NAME_LONG": "Bolivia", + "ADM0_A3": "BOL", + "ISO_A2": "BO", + "ISO_A3": "BOL", + "WB_A2": "BO", + "WB_A3": "BOL" + }, + "id": 32 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-48.5426, -27.8167], + [-48.5171, -27.4283], + [-48.3773, -27.4582], + [-48.5426, -27.8167] + ] + ], + [ + [ + [-45.2281, -23.7724], + [-45.2904, -23.9119], + [-45.4474, -23.8772], + [-45.3247, -23.7253], + [-45.2281, -23.7724] + ] + ], + [ + [ + [-50.8288, -0.5834], + [-50.8431, -0.716], + [-51.1004, -0.8263], + [-51.1004, -0.7306], + [-50.9564, -0.6071], + [-50.8288, -0.5834] + ] + ], + [ + [ + [-51.2233, -0.5579], + [-51.1516, -0.6371], + [-51.2711, -1.0177], + [-51.4348, -1.1867], + [-51.7856, -1.45], + [-51.9541, -1.4225], + [-51.8725, -1.2433], + [-51.7179, -1.1297], + [-51.6758, -0.8468], + [-51.5051, -0.6071], + [-51.3083, -0.5187], + [-51.2233, -0.5579] + ] + ], + [ + [ + [-50.0958, -0.1323], + [-49.6535, -0.2411], + [-49.4252, -0.2304], + [-49.2154, -0.1412], + [-48.927, -0.1588], + [-48.892, -0.2159], + [-48.4272, -0.2599], + [-48.3731, -0.3737], + [-48.4547, -0.4856], + [-48.5375, -0.8945], + [-48.6428, -1.0836], + [-48.842, -1.2133], + [-48.8392, -1.4426], + [-49.0658, -1.5319], + [-49.1819, -1.4016], + [-49.2228, -1.6212], + [-49.5565, -1.6454], + [-49.5587, -1.7242], + [-49.8236, -1.8166], + [-50.0521, -1.7039], + [-50.155, -1.779], + [-50.4052, -1.831], + [-50.5597, -1.7995], + [-50.5879, -1.6845], + [-50.8042, -1.425], + [-50.7782, -1.1725], + [-50.7799, -0.6606], + [-50.6964, -0.36], + [-50.5834, -0.1922], + [-50.3682, -0.1056], + [-50.0958, -0.1323] + ] + ], + [ + [ + [-50.8949, -0.3062], + [-51.0328, -0.1682], + [-50.9473, -0.012], + [-50.766, 0.0464], + [-50.6274, -0.0857], + [-50.8949, -0.3062] + ] + ], + [ + [ + [-49.4857, 0.0692], + [-49.3475, -0.0097], + [-49.4387, -0.1205], + [-49.6869, -0.1354], + [-49.6281, 0.0576], + [-49.4857, 0.0692] + ] + ], + [ + [ + [-49.5289, 0.3008], + [-49.6924, 0.205], + [-49.8297, 0.0113], + [-50.0045, -0.0528], + [-50.0694, 0.0166], + [-50.2976, 0.012], + [-50.3668, 0.2145], + [-50.1073, 0.2222], + [-49.6502, 0.3864], + [-49.5289, 0.3008] + ] + ], + [ + [ + [-50.3461, 0.5275], + [-50.3232, 0.3406], + [-50.4263, 0.1684], + [-50.5168, 0.2086], + [-50.3461, 0.5275] + ] + ], + [ + [ + [-50.0314, 0.5849], + [-50.0427, 0.5103], + [-50.2814, 0.3566], + [-50.2421, 0.593], + [-50.0314, 0.5849] + ] + ], + [ + [ + [-50.3996, 2.1151], + [-50.3125, 1.9471], + [-50.4586, 1.881], + [-50.5238, 2.0015], + [-50.3996, 2.1151] + ] + ], + [ + [ + [-56.4818, 1.9416], + [-56.0197, 1.8335], + [-55.9168, 1.9222], + [-55.9258, 2.0617], + [-56.1168, 2.3331], + [-55.9892, 2.5208], + [-55.7243, 2.3969], + [-55.3996, 2.4302], + [-55.3545, 2.4949], + [-55.1125, 2.5278], + [-55.0177, 2.5906], + [-54.8803, 2.4473], + [-54.7032, 2.4458], + [-54.6153, 2.3263], + [-54.4766, 2.2141], + [-54.1349, 2.1107], + [-53.8668, 2.3049], + [-53.7482, 2.3193], + [-53.5318, 2.247], + [-53.3441, 2.3496], + [-53.2342, 2.251], + [-52.9597, 2.1752], + [-52.7077, 2.3589], + [-52.5535, 2.5734], + [-52.5716, 2.6386], + [-52.3532, 3.0584], + [-52.0128, 3.6191], + [-51.9884, 3.7046], + [-51.6832, 4.0394], + [-51.6317, 4.0678], + [-51.5165, 4.4411], + [-51.3892, 4.3589], + [-51.2244, 4.165], + [-51.0799, 3.8823], + [-51.0927, 3.3763], + [-50.9445, 2.8222], + [-50.9028, 2.7938], + [-50.7424, 2.3785], + [-50.7126, 2.2368], + [-50.4665, 1.8154], + [-50.1832, 1.8189], + [-49.9102, 1.6643], + [-49.873, 1.3599], + [-49.9788, 1.0722], + [-50.3125, 0.8172], + [-50.4659, 0.6464], + [-50.609, 0.3739], + [-50.7906, 0.1695], + [-50.9289, 0.1554], + [-51.0692, -0.0193], + [-51.2016, -0.0491], + [-51.3225, -0.2153], + [-51.4452, -0.4714], + [-51.6975, -0.7472], + [-51.7242, -1.0392], + [-51.9294, -1.1783], + [-51.9215, -1.3258], + [-52.0658, -1.405], + [-52.1954, -1.345], + [-52.402, -1.4221], + [-52.1238, -1.6191], + [-51.9146, -1.571], + [-51.6695, -1.4016], + [-51.2683, -1.2204], + [-51.0329, -1.038], + [-50.9427, -0.9088], + [-50.8245, -1.0309], + [-50.9018, -1.121], + [-50.8199, -1.2317], + [-50.8192, -1.4363], + [-50.6893, -1.6121], + [-50.5653, -1.8907], + [-50.3728, -1.9737], + [-50.2808, -1.8938], + [-49.9769, -1.8261], + [-49.6761, -1.9086], + [-49.4852, -1.7639], + [-49.3792, -1.8964], + [-49.4455, -2.1838], + [-49.3316, -2.2048], + [-49.232, -1.9482], + [-48.9656, -1.5997], + [-48.8119, -1.6213], + [-48.6421, -1.3857], + [-48.535, -1.5815], + [-48.4828, -1.2813], + [-48.3397, -1.316], + [-48.1608, -0.9601], + [-48.154, -0.7818], + [-47.9461, -0.7405], + [-47.5845, -0.5782], + [-47.4147, -0.6613], + [-47.294, -0.5929], + [-47.0845, -0.7506], + [-46.8586, -0.7657], + [-46.7699, -0.8671], + [-46.6138, -0.8132], + [-46.4801, -1.0222], + [-46.2212, -1.0112], + [-45.9557, -1.22], + [-45.8098, -1.2751], + [-45.696, -1.1606], + [-45.4013, -1.4379], + [-45.3402, -1.5832], + [-45.0914, -1.4641], + [-44.725, -1.7234], + [-44.7079, -1.8132], + [-44.5217, -1.8473], + [-44.4973, -2.1479], + [-44.3625, -2.3103], + [-44.4739, -2.4021], + [-44.6462, -2.7682], + [-44.6936, -2.9949], + [-44.6136, -3.112], + [-44.433, -2.9503], + [-44.3681, -2.5496], + [-44.073, -2.3995], + [-44.0141, -2.6347], + [-43.7386, -2.5172], + [-43.477, -2.5377], + [-43.4544, -2.3414], + [-43.3118, -2.3465], + [-42.71, -2.5603], + [-42.453, -2.7522], + [-42.2222, -2.8124], + [-42.004, -2.8126], + [-41.8213, -2.7336], + [-41.675, -2.8796], + [-41.3431, -2.9203], + [-40.5816, -2.8273], + [-40.4996, -2.7863], + [-39.9857, -2.8484], + [-39.4855, -3.1458], + [-39.3583, -3.1835], + [-38.6597, -3.6764], + [-38.4573, -3.7184], + [-38.378, -3.8697], + [-38.2513, -3.9618], + [-38.1067, -4.1579], + [-37.8542, -4.3759], + [-37.7686, -4.3964], + [-37.6072, -4.6081], + [-37.3248, -4.6965], + [-37.1829, -4.9109], + [-36.8988, -4.9382], + [-36.7909, -5.0512], + [-36.59, -5.103], + [-36.1312, -5.0959], + [-35.9972, -5.0475], + [-35.5106, -5.1437], + [-35.4205, -5.2115], + [-35.2623, -5.4833], + [-35.0928, -6.1858], + [-35.0382, -6.2365], + [-34.97, -6.6173], + [-34.8594, -7.0715], + [-34.7974, -7.1585], + [-34.8053, -7.6227], + [-34.9, -7.718], + [-34.8116, -7.9059], + [-34.9321, -8.2421], + [-34.9399, -8.3508], + [-35.1273, -8.8062], + [-35.1475, -8.9119], + [-35.3051, -9.193], + [-35.482, -9.3679], + [-35.5826, -9.5329], + [-35.8532, -9.7312], + [-35.8827, -9.8556], + [-36.0363, -10.0641], + [-36.251, -10.2482], + [-36.4081, -10.5021], + [-36.5766, -10.5505], + [-36.9031, -10.7729], + [-37.0397, -10.9492], + [-37.1725, -11.2035], + [-37.2858, -11.3171], + [-37.4347, -11.5693], + [-37.6547, -12.0497], + [-38.0509, -12.641], + [-38.3204, -12.9352], + [-38.5097, -13.0214], + [-38.5089, -12.7229], + [-38.7381, -12.7366], + [-38.7363, -12.8827], + [-38.8418, -13.1612], + [-39.0625, -13.4], + [-38.9678, -13.674], + [-39.0112, -13.8325], + [-38.9237, -14.0041], + [-39.0671, -14.675], + [-39.0227, -14.8159], + [-39.0018, -15.232], + [-38.9239, -15.7156], + [-38.8644, -15.8434], + [-39.0541, -16.4365], + [-39.136, -16.8002], + [-39.1236, -16.8979], + [-39.2086, -17.1622], + [-39.1837, -17.6008], + [-39.1371, -17.6796], + [-39.2751, -17.8669], + [-39.4991, -18.0056], + [-39.625, -18.1926], + [-39.7247, -18.5187], + [-39.7411, -18.9021], + [-39.6981, -19.2399], + [-39.7098, -19.4161], + [-39.8349, -19.6572], + [-40.0268, -19.7644], + [-40.191, -20.1899], + [-40.3487, -20.5001], + [-40.5834, -20.802], + [-40.7317, -20.8438], + [-40.9651, -21.274], + [-41.0719, -21.5233], + [-40.9673, -21.9475], + [-40.9953, -22.0143], + [-41.2437, -22.1452], + [-41.6665, -22.2818], + [-41.9663, -22.5354], + [-41.9896, -22.8263], + [-42.0582, -22.9538], + [-42.6243, -22.9395], + [-43.0314, -22.9743], + [-43.0756, -22.6657], + [-43.2702, -22.747], + [-43.1621, -22.8957], + [-43.2201, -22.9953], + [-43.5422, -23.0494], + [-43.8644, -22.8962], + [-44.0562, -22.9395], + [-44.191, -23.0488], + [-44.4357, -22.9968], + [-44.6732, -23.0593], + [-44.7141, -23.1866], + [-44.5838, -23.3532], + [-44.9193, -23.3488], + [-45.0802, -23.4977], + [-45.4335, -23.6647], + [-45.5093, -23.8376], + [-45.8644, -23.7564], + [-46.0797, -23.8278], + [-46.2341, -23.986], + [-46.4067, -24.009], + [-46.9665, -24.2991], + [-47.1814, -24.5334], + [-47.5408, -24.7034], + [-47.8256, -24.8941], + [-47.9518, -25.2013], + [-48.2473, -25.4109], + [-48.4072, -25.2839], + [-48.4602, -25.4709], + [-48.4327, -25.6225], + [-48.6127, -26.0406], + [-48.5826, -26.1572], + [-48.7982, -26.3049], + [-48.6436, -26.3849], + [-48.6822, -26.7192], + [-48.5752, -27.0162], + [-48.6475, -27.4796], + [-48.6475, -27.6474], + [-48.5655, -27.8603], + [-48.6553, -28.2128], + [-48.8153, -28.6104], + [-48.9406, -28.6454], + [-49.3428, -28.9235], + [-49.5523, -29.1274], + [-49.8107, -29.4431], + [-50.0453, -29.8145], + [-50.3157, -30.4615], + [-50.7214, -31.0445], + [-51.1518, -31.4815], + [-51.5633, -31.7774], + [-51.8635, -31.9317], + [-52.0326, -32.109], + [-52.088, -31.8586], + [-51.9228, -31.8687], + [-51.6662, -31.7697], + [-51.435, -31.4965], + [-51.3345, -31.5192], + [-51.1796, -31.359], + [-51.1761, -31.1493], + [-50.9877, -31.0456], + [-50.9393, -30.8961], + [-50.7311, -30.7924], + [-50.5373, -30.3204], + [-50.8975, -30.3105], + [-51.1225, -30.256], + [-51.2902, -30.6244], + [-51.3833, -30.6589], + [-51.3619, -30.8792], + [-51.443, -31.081], + [-51.6236, -31.1353], + [-51.6528, -31.2592], + [-51.9228, -31.3069], + [-52.0008, -31.5512], + [-52.2456, -31.841], + [-52.1698, -31.9365], + [-52.2586, -32.0536], + [-52.1274, -32.1775], + [-52.2534, -32.2825], + [-52.3753, -32.4987], + [-52.4709, -32.801], + [-52.6217, -33.102], + [-52.8195, -33.3225], + [-53.3791, -33.7407], + [-53.5396, -33.6493], + [-53.5115, -33.0992], + [-53.3273, -32.9736], + [-53.1269, -32.7548], + [-53.1861, -32.6467], + [-53.4156, -32.5642], + [-53.6487, -32.3386], + [-53.7718, -32.0471], + [-54.0688, -31.8799], + [-54.1351, -31.909], + [-54.4637, -31.6719], + [-54.5915, -31.471], + [-54.8198, -31.4353], + [-55.26, -31.2287], + [-55.3539, -31.0563], + [-55.5919, -30.8483], + [-55.8643, -31.0768], + [-56.0114, -31.0821], + [-56.0114, -30.7982], + [-56.2351, -30.5654], + [-56.3726, -30.4859], + [-56.8313, -30.102], + [-57.1023, -30.1212], + [-57.2126, -30.2873], + [-57.536, -30.2744], + [-57.6117, -30.183], + [-57.3252, -29.981], + [-57.3085, -29.8485], + [-57.0942, -29.752], + [-56.677, -29.3134], + [-56.6173, -29.1609], + [-56.4158, -29.0514], + [-56.1847, -28.7442], + [-55.8981, -28.4607], + [-55.7725, -28.232], + [-55.6047, -28.1169], + [-55.4407, -28.0789], + [-55.3299, -27.9281], + [-55.0258, -27.8402], + [-54.9132, -27.7369], + [-54.8275, -27.5451], + [-54.6997, -27.553], + [-54.4608, -27.4126], + [-54.2869, -27.4284], + [-54.1895, -27.2609], + [-53.8192, -27.1397], + [-53.7107, -26.8738], + [-53.746, -26.6939], + [-53.7244, -26.3761], + [-53.6667, -26.2192], + [-53.8262, -25.9727], + [-53.91, -25.6292], + [-54.2148, -25.5315], + [-54.4606, -25.6421], + [-54.6002, -25.5749], + [-54.6098, -25.4328], + [-54.4297, -25.1306], + [-54.4623, -25.0372], + [-54.3213, -24.6284], + [-54.2611, -24.3295], + [-54.3346, -24.1489], + [-54.2453, -24.0506], + [-54.6126, -23.8112], + [-54.9436, -23.9692], + [-55.2009, -24.0195], + [-55.398, -23.9768], + [-55.4453, -23.7354], + [-55.5305, -23.6035], + [-55.5352, -23.2291], + [-55.6378, -23.0007], + [-55.6312, -22.6268], + [-55.7516, -22.4163], + [-55.8929, -22.3068], + [-56.1968, -22.2793], + [-56.4218, -22.0745], + [-56.6547, -22.2373], + [-56.8429, -22.289], + [-57.2138, -22.1882], + [-57.385, -22.2133], + [-57.8439, -22.1437], + [-57.9868, -22.0353], + [-57.8956, -21.6884], + [-57.9299, -21.4531], + [-57.8556, -21.3307], + [-57.8254, -20.9986], + [-57.9087, -20.8816], + [-57.8602, -20.7303], + [-57.991, -20.6206], + [-57.9894, -20.4331], + [-58.083, -20.3762], + [-58.1588, -20.1651], + [-57.8597, -19.9801], + [-58.1246, -19.7299], + [-57.789, -19.0592], + [-57.7823, -18.9104], + [-57.5511, -18.1836], + [-57.7301, -17.8461], + [-57.7908, -17.5558], + [-58.0102, -17.4968], + [-58.2316, -17.3297], + [-58.3812, -17.2672], + [-58.4663, -16.8873], + [-58.4803, -16.6837], + [-58.3561, -16.5095], + [-58.3396, -16.2893], + [-58.4647, -16.3313], + [-60.1298, -16.2731], + [-60.1798, -16.222], + [-60.238, -15.5027], + [-60.5295, -15.1437], + [-60.275, -15.0951], + [-60.2917, -14.6301], + [-60.4735, -14.1172], + [-60.3897, -13.9749], + [-60.4653, -13.8166], + [-60.8967, -13.5529], + [-61.3477, -13.4937], + [-61.848, -13.5308], + [-61.8686, -13.4639], + [-62.2216, -13.1213], + [-62.3818, -13.1399], + [-62.4927, -13.065], + [-62.8074, -12.9889], + [-62.9753, -12.8529], + [-63.075, -12.6527], + [-63.2473, -12.7013], + [-63.3933, -12.6645], + [-63.4961, -12.5533], + [-63.8014, -12.4549], + [-63.9212, -12.5443], + [-64.3957, -12.4573], + [-64.4691, -12.2611], + [-64.7163, -12.1465], + [-64.7925, -12.0325], + [-64.9974, -11.9963], + [-65.0656, -11.7531], + [-65.1962, -11.7418], + [-65.1954, -11.5922], + [-65.353, -11.3906], + [-65.36, -11.2188], + [-65.303, -10.9907], + [-65.4047, -10.7992], + [-65.45, -10.4681], + [-65.2881, -10.2162], + [-65.3333, -9.9268], + [-65.3044, -9.8257], + [-65.4518, -9.6814], + [-65.584, -9.8372], + [-65.7886, -9.733], + [-65.8744, -9.7813], + [-66.1907, -9.8008], + [-66.4529, -9.8887], + [-66.6319, -9.9043], + [-66.9027, -10.0931], + [-67.0643, -10.2569], + [-67.3378, -10.3261], + [-67.5846, -10.5018], + [-67.7558, -10.7142], + [-67.8626, -10.6588], + [-68.0979, -10.6977], + [-68.2933, -10.979], + [-68.6157, -11.1125], + [-68.787, -11.126], + [-68.884, -11.0164], + [-69.3959, -10.935], + [-69.5776, -10.9523], + [-69.9561, -10.9193], + [-70.2894, -11.0647], + [-70.4373, -11.0367], + [-70.5341, -10.9381], + [-70.6413, -11.0108], + [-70.6384, -9.8518], + [-70.5434, -9.727], + [-70.6808, -9.5277], + [-70.8755, -9.6605], + [-71.0154, -9.8175], + [-71.1965, -9.9399], + [-71.3914, -10.0068], + [-72.1957, -10.0056], + [-72.1604, -9.8877], + [-72.2617, -9.6674], + [-72.4302, -9.4822], + [-72.8133, -9.4109], + [-73.215, -9.409], + [-72.9594, -9.0856], + [-72.9761, -8.9854], + [-73.1746, -8.7207], + [-73.3506, -8.5983], + [-73.3564, -8.4798], + [-73.5265, -8.3724], + [-73.668, -8.0138], + [-73.7788, -7.9541], + [-73.7122, -7.7882], + [-73.9694, -7.5847], + [-73.9794, -7.3745], + [-73.7608, -7.3374], + [-73.7345, -7.2251], + [-73.8123, -7.1029], + [-73.7655, -6.9042], + [-73.6851, -6.8119], + [-73.3707, -6.5839], + [-73.199, -6.5456], + [-73.1318, -6.4353], + [-73.2348, -6.0776], + [-73.14, -5.8785], + [-73.0014, -5.7088], + [-72.9735, -5.4661], + [-72.8967, -5.2716], + [-72.9179, -5.1321], + [-72.6273, -5.0224], + [-72.2511, -4.7588], + [-72.0711, -4.6051], + [-71.7743, -4.4815], + [-70.9687, -4.3853], + [-70.8322, -4.1794], + [-70.5853, -4.1945], + [-70.4299, -4.1342], + [-70.3111, -4.1709], + [-70.2313, -4.3037], + [-69.9649, -4.2365], + [-69.9472, -4.2011], + [-69.7712, -3.2342], + [-69.5657, -2.106], + [-69.3995, -1.1827], + [-69.45, -0.9968], + [-69.6284, -0.7334], + [-69.6321, -0.5069], + [-69.9444, -0.3055], + [-70.0738, -0.1249], + [-70.0542, 0.5881], + [-69.6192, 0.6507], + [-69.5037, 0.7296], + [-69.3626, 0.6409], + [-69.1375, 0.6501], + [-69.2043, 0.9437], + [-69.3709, 1.063], + [-69.7626, 1.0911], + [-69.8522, 1.0594], + [-69.8488, 1.6689], + [-69.5803, 1.7702], + [-69.3524, 1.7202], + [-68.1633, 1.7213], + [-68.2608, 1.8582], + [-68.2008, 2.0078], + [-67.9982, 1.75], + [-67.7905, 1.8126], + [-67.5929, 2.0548], + [-67.4397, 2.1396], + [-67.3406, 2.0901], + [-67.1172, 1.7098], + [-67.0736, 1.5412], + [-67.0982, 1.2534], + [-67.0652, 1.1727], + [-66.8751, 1.2225], + [-66.3462, 0.7594], + [-66.1563, 0.733], + [-65.9741, 0.807], + [-65.7454, 0.9742], + [-65.5829, 0.9777], + [-65.517, 0.8628], + [-65.5873, 0.7391], + [-65.4512, 0.6901], + [-65.3272, 0.9103], + [-65.203, 0.9238], + [-65.1368, 1.1269], + [-65.0225, 1.14], + [-64.8393, 1.2708], + [-64.7309, 1.2476], + [-64.409, 1.5075], + [-64.3015, 1.4467], + [-64.0809, 1.6474], + [-64.0536, 1.8937], + [-63.995, 1.958], + [-63.7626, 1.9857], + [-63.6175, 2.1012], + [-63.4118, 2.1494], + [-63.3848, 2.4206], + [-63.8313, 2.4286], + [-64.048, 2.4713], + [-63.9979, 2.706], + [-64.2229, 3.124], + [-64.2456, 3.4189], + [-64.203, 3.5947], + [-64.3242, 3.7241], + [-64.5314, 3.8535], + [-64.6629, 3.997], + [-64.5897, 4.1189], + [-64.365, 4.1519], + [-64.1251, 4.0885], + [-64.0638, 3.9116], + [-63.8751, 3.9498], + [-63.6228, 3.9352], + [-63.5107, 3.8545], + [-63.4254, 3.9684], + [-63.286, 3.9208], + [-62.9971, 3.5991], + [-62.8894, 3.5608], + [-62.7496, 3.6604], + [-62.7662, 4.0207], + [-62.561, 4.0378], + [-62.3842, 4.1735], + [-62.1927, 4.0947], + [-61.9315, 4.1464], + [-61.7189, 4.2547], + [-61.5421, 4.263], + [-61.4582, 4.4191], + [-61.2973, 4.5237], + [-61.012, 4.5183], + [-60.9034, 4.6996], + [-60.7637, 4.7551], + [-60.6126, 4.9006], + [-60.6643, 5.1703], + [-60.7399, 5.2021], + [-60.4564, 5.1747], + [-60.2134, 5.2672], + [-59.9831, 5.0859], + [-60.0877, 4.6075], + [-59.6867, 4.3812], + [-59.7385, 4.2028], + [-59.5292, 3.9319], + [-59.6801, 3.7017], + [-59.8377, 3.6093], + [-59.8285, 3.3834], + [-59.9594, 3.0665], + [-60.0001, 2.694], + [-59.9031, 2.3596], + [-59.7417, 2.2638], + [-59.7645, 1.9205], + [-59.6825, 1.7656], + [-59.5727, 1.7272], + [-59.2421, 1.3778], + [-59.0111, 1.3276], + [-58.8979, 1.2178], + [-58.6826, 1.2825], + [-58.5189, 1.2673], + [-58.5137, 1.4389], + [-58.3319, 1.5934], + [-58.0272, 1.5169], + [-57.991, 1.6504], + [-57.7908, 1.7049], + [-57.5612, 1.709], + [-57.4295, 1.9003], + [-57.1045, 2.0215], + [-57.0112, 1.9186], + [-56.8065, 1.8736], + [-56.4818, 1.9416] + ] + ] + ] + }, + "properties": { + "NAME": "Brazil", + "NAME_LONG": "Brazil", + "ADM0_A3": "BRA", + "ISO_A2": "BR", + "ISO_A3": "BRA", + "WB_A2": "BR", + "WB_A3": "BRA" + }, + "id": 33 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-59.4269, 13.1604], + [-59.6081, 13.0847], + [-59.6542, 13.2951], + [-59.4269, 13.1604] + ] + ] + }, + "properties": { + "NAME": "Barbados", + "NAME_LONG": "Barbados", + "ADM0_A3": "BRB", + "ISO_A2": "BB", + "ISO_A3": "BRB", + "WB_A2": "BB", + "WB_A3": "BRB" + }, + "id": 34 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [115.1462, 4.9085], + [115.2727, 4.6368], + [115.3244, 4.3146], + [115.113, 4.3824], + [115.0355, 4.6212], + [115.0298, 4.8206], + [115.1462, 4.9085] + ] + ], + [ + [ + [113.9988, 4.6011], + [114.2517, 4.5927], + [114.5293, 4.6938], + [114.7227, 4.876], + [114.9284, 5.0006], + [114.9817, 4.8891], + [114.7518, 4.7385], + [114.8364, 4.3572], + [114.7669, 4.1318], + [114.5866, 4.0214], + [114.4199, 4.2601], + [114.2967, 4.3167], + [114.2456, 4.4814], + [113.9988, 4.6011] + ] + ] + ] + }, + "properties": { + "NAME": "Brunei", + "NAME_LONG": "Brunei Darussalam", + "ADM0_A3": "BRN", + "ISO_A2": "BN", + "ISO_A3": "BRN", + "WB_A2": "BN", + "WB_A3": "BRN" + }, + "id": 35 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [91.6329, 27.7594], + [91.5951, 27.5464], + [91.7501, 27.4162], + [91.9751, 27.4724], + [92.0848, 27.3042], + [91.9959, 27.158], + [92.0839, 26.9373], + [92.0359, 26.8548], + [91.7953, 26.8535], + [91.5206, 26.7976], + [91.4063, 26.8695], + [91.1982, 26.8023], + [90.5878, 26.7801], + [90.3826, 26.8918], + [90.1774, 26.8321], + [90.0892, 26.7417], + [89.8221, 26.701], + [89.3417, 26.8543], + [89.1846, 26.8106], + [88.9545, 26.9126], + [88.7301, 27.151], + [88.8923, 27.3155], + [89.051, 27.6083], + [89.336, 27.8691], + [89.5615, 28.1346], + [89.7558, 28.1844], + [89.8629, 28.2958], + [90.2618, 28.3354], + [90.5877, 28.2333], + [90.6839, 28.0871], + [91.0926, 27.9717], + [91.2697, 28.0729], + [91.6217, 27.9507], + [91.6329, 27.7594] + ] + ] + }, + "properties": { + "NAME": "Bhutan", + "NAME_LONG": "Bhutan", + "ADM0_A3": "BTN", + "ISO_A2": "BT", + "ISO_A3": "BTN", + "WB_A2": "BT", + "WB_A3": "BTN" + }, + "id": 36 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [25.2598, -17.7941], + [25.2261, -17.9319], + [25.3875, -18.139], + [25.5085, -18.3991], + [25.7619, -18.6303], + [25.8153, -18.814], + [25.9407, -18.9213], + [25.9565, -19.1221], + [26.1303, -19.5011], + [26.3122, -19.6514], + [26.731, -19.9359], + [27.0266, -20.0101], + [27.2149, -20.1105], + [27.3407, -20.473], + [27.6981, -20.5091], + [27.6748, -21.0901], + [27.885, -21.3102], + [27.9904, -21.5519], + [28.4646, -21.6603], + [28.6297, -21.6513], + [29.0387, -21.7979], + [29.0216, -21.9828], + [29.2393, -22.0726], + [29.3501, -22.1867], + [29.0478, -22.2203], + [28.9125, -22.4537], + [28.6239, -22.5628], + [28.3386, -22.5846], + [27.9375, -22.9638], + [27.8955, -23.0795], + [27.608, -23.2167], + [27.5489, -23.3608], + [27.35, -23.3915], + [27.0042, -23.6458], + [26.8497, -24.2481], + [26.5312, -24.4587], + [26.4044, -24.6328], + [26.2788, -24.6285], + [25.8684, -24.7482], + [25.8767, -24.886], + [25.5873, -25.6195], + [25.3865, -25.7435], + [25.0517, -25.7379], + [24.7986, -25.8292], + [24.2967, -25.7235], + [24.2277, -25.649], + [23.9248, -25.6292], + [23.4593, -25.2822], + [23.2657, -25.264], + [23.007, -25.3108], + [22.8446, -25.4811], + [22.7464, -25.7553], + [22.7194, -25.9843], + [22.5451, -26.2074], + [22.2573, -26.3409], + [22.0577, -26.6176], + [21.7675, -26.7043], + [21.6872, -26.8552], + [21.3808, -26.824], + [21.1225, -26.8653], + [20.8519, -26.8065], + [20.6935, -26.889], + [20.6089, -26.6861], + [20.6225, -26.4275], + [20.8414, -26.1313], + [20.7941, -25.8939], + [20.3649, -25.0332], + [20.1189, -24.8874], + [19.9814, -24.7525], + [19.9798, -23.2045], + [19.9783, -22.0007], + [20.972, -22.0007], + [20.9848, -21.964], + [20.9807, -20.7507], + [20.9776, -19.7508], + [20.9751, -18.3193], + [21.4757, -18.2995], + [22.9814, -18.02], + [23.3115, -18.0098], + [23.5015, -18.2375], + [23.5792, -18.4679], + [23.6454, -18.466], + [24.1831, -18.0294], + [24.4216, -17.9565], + [24.5778, -18.0444], + [24.7253, -17.8959], + [24.9581, -17.8009], + [25.2598, -17.7941] + ] + ] + }, + "properties": { + "NAME": "Botswana", + "NAME_LONG": "Botswana", + "ADM0_A3": "BWA", + "ISO_A2": "BW", + "ISO_A3": "BWA", + "WB_A2": "BW", + "WB_A3": "BWA" + }, + "id": 37 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [22.8611, 10.9192], + [23.0056, 10.6868], + [23.2912, 10.4397], + [23.624, 9.9078], + [23.674, 9.6903], + [23.6061, 9.5372], + [23.6322, 9.2776], + [23.4577, 9.1462], + [23.4823, 8.7834], + [23.7213, 8.702], + [24.1703, 8.6893], + [24.2437, 8.5702], + [24.1314, 8.3431], + [24.3321, 8.2457], + [24.4311, 8.2714], + [24.8321, 8.1657], + [25.0896, 7.8849], + [25.2169, 7.8641], + [25.2794, 7.6595], + [25.1904, 7.5012], + [25.36, 7.3356], + [26.0261, 6.9967], + [26.081, 6.8423], + [26.378, 6.6533], + [26.277, 6.4774], + [26.2896, 6.3872], + [26.452, 6.2803], + [26.528, 6.0432], + [26.705, 6.0098], + [26.8189, 5.8946], + [26.9811, 5.8592], + [27.1704, 5.7203], + [27.2607, 5.5503], + [27.2201, 5.4409], + [27.3013, 5.2052], + [27.4413, 5.0707], + [27.1164, 5.2003], + [26.9616, 5.1512], + [26.8671, 5.0375], + [26.7606, 5.0881], + [26.4627, 5.0596], + [26.13, 5.2589], + [26.0269, 5.19], + [25.7328, 5.2589], + [25.5813, 5.3749], + [25.3637, 5.3106], + [25.3076, 5.0323], + [24.9581, 4.9914], + [24.6644, 4.9244], + [24.4596, 5.1074], + [24.1629, 4.9078], + [23.9483, 4.8177], + [23.8167, 4.8206], + [23.5666, 4.7244], + [23.3884, 4.5873], + [23.1687, 4.7381], + [22.8984, 4.8236], + [22.786, 4.7246], + [22.6895, 4.4917], + [22.4927, 4.174], + [22.2073, 4.1503], + [22.0089, 4.2424], + [21.7229, 4.2951], + [21.5381, 4.2447], + [21.2989, 4.3302], + [21.1581, 4.3102], + [21.0842, 4.3882], + [20.8715, 4.4534], + [20.6031, 4.4097], + [20.4523, 4.5289], + [20.3389, 4.7719], + [19.7196, 5.136], + [19.409, 5.1304], + [19.0833, 4.9093], + [19.0116, 4.765], + [18.8282, 4.56], + [18.7211, 4.3774], + [18.5371, 4.3061], + [18.6197, 4.1696], + [18.6453, 3.9824], + [18.593, 3.7098], + [18.6264, 3.4769], + [18.5134, 3.5922], + [17.8564, 3.5373], + [17.8083, 3.6086], + [17.6273, 3.6263], + [17.4589, 3.7083], + [17.3344, 3.6185], + [16.9686, 3.5335], + [16.6394, 3.5286], + [16.5677, 3.4644], + [16.4908, 3.0678], + [16.4791, 2.8363], + [16.1967, 2.2365], + [16.0903, 2.5105], + [16.0924, 2.8633], + [15.914, 3.098], + [15.7856, 3.108], + [15.1713, 3.759], + [15.0849, 3.8858], + [15.1026, 4.1124], + [15.0006, 4.4032], + [14.7173, 4.622], + [14.6632, 5.1418], + [14.5239, 5.2797], + [14.5973, 5.4115], + [14.6311, 5.738], + [14.5848, 5.9234], + [14.3977, 6.0192], + [14.535, 6.1901], + [14.719, 6.2579], + [14.9325, 6.7103], + [15.0422, 6.7908], + [15.2239, 7.2475], + [15.4328, 7.3897], + [15.481, 7.5233], + [15.7939, 7.458], + [16.0652, 7.5912], + [16.3708, 7.6725], + [16.4074, 7.7961], + [16.5487, 7.87], + [16.6245, 7.6687], + [16.7686, 7.5502], + [16.8807, 7.6329], + [17.1019, 7.6777], + [17.2509, 7.8228], + [17.6798, 7.9852], + [17.8979, 7.9675], + [18.0705, 8.0192], + [18.5893, 8.0479], + [18.6726, 8.2075], + [18.813, 8.2764], + [19.1241, 8.6751], + [18.9291, 8.7965], + [18.8927, 8.8979], + [19.1006, 9.0153], + [19.3694, 9.0004], + [19.8895, 9.0464], + [20.0687, 9.1381], + [20.3594, 9.1164], + [20.4961, 9.2709], + [20.8261, 9.4181], + [21.2569, 9.9757], + [21.3743, 9.9731], + [21.4854, 10.1643], + [21.6563, 10.2337], + [21.7511, 10.4118], + [21.7226, 10.6367], + [22.1764, 10.8162], + [22.253, 10.9153], + [22.4605, 11.0008], + [22.8611, 10.9192] + ] + ] + }, + "properties": { + "NAME": "Central African Rep.", + "NAME_LONG": "Central African Republic", + "ADM0_A3": "CAF", + "ISO_A2": "CF", + "ISO_A3": "CAF", + "WB_A2": "CF", + "WB_A3": "CAF" + }, + "id": 38 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-60.5011, 47.0012], + [-60.3108, 46.8544], + [-60.3505, 46.6159], + [-60.5094, 46.3685], + [-60.4269, 46.284], + [-60.7008, 46.088], + [-60.9819, 45.8207], + [-60.7301, 45.7139], + [-60.7223, 45.8955], + [-60.6213, 46.101], + [-60.351, 46.3121], + [-59.8822, 46.1767], + [-59.862, 45.9357], + [-60.3954, 45.6425], + [-60.7269, 45.5656], + [-61.0097, 45.6081], + [-61.3349, 45.5662], + [-61.4553, 45.7099], + [-61.5411, 46.0405], + [-61.0948, 46.4539], + [-60.8692, 46.8], + [-60.6033, 47.0336], + [-60.5011, 47.0012] + ] + ], + [ + [ + [-64.0349, 46.8265], + [-63.8336, 46.6124], + [-63.1947, 46.4311], + [-62.9532, 46.4241], + [-62.5169, 46.4758], + [-62.0991, 46.4837], + [-62.4373, 46.2163], + [-62.5764, 46.239], + [-62.5452, 45.9718], + [-62.7774, 45.9643], + [-62.9316, 46.0426], + [-62.9974, 46.1793], + [-63.2334, 46.1455], + [-63.6278, 46.2238], + [-64.108, 46.5444], + [-64.4168, 46.6828], + [-64.2313, 46.9033], + [-64.0349, 46.8265] + ] + ], + [ + [ + [-74.713, 44.9993], + [-74.3996, 45.1448], + [-74.0485, 45.2325], + [-73.6874, 45.4312], + [-73.5573, 45.4143], + [-73.4128, 45.7515], + [-73.2593, 45.8541], + [-73.1398, 46.0583], + [-72.731, 46.1766], + [-72.496, 46.3605], + [-72.2743, 46.4206], + [-72.1899, 46.5262], + [-71.8457, 46.6683], + [-71.7142, 46.6322], + [-71.3025, 46.7452], + [-71.1579, 46.8408], + [-70.5349, 47.0106], + [-70.0311, 47.4696], + [-69.8022, 47.6224], + [-69.0544, 48.2324], + [-68.2056, 48.6419], + [-67.962, 48.7016], + [-66.6221, 49.1226], + [-66.2193, 49.2079], + [-65.5658, 49.2665], + [-64.9635, 49.2193], + [-64.6134, 49.123], + [-64.2212, 48.8944], + [-64.2782, 48.7258], + [-64.1622, 48.6296], + [-64.3291, 48.4196], + [-64.7047, 48.3237], + [-64.7794, 48.204], + [-65.2856, 48.0126], + [-65.7838, 48.1156], + [-65.953, 48.1954], + [-66.262, 48.0058], + [-65.8179, 47.9074], + [-65.6288, 47.6706], + [-65.4774, 47.6837], + [-65.2093, 47.8197], + [-64.8263, 47.8155], + [-64.6849, 47.7227], + [-64.8922, 47.5615], + [-64.9596, 47.2943], + [-65.3315, 47.1006], + [-64.8254, 47.0891], + [-64.9058, 46.8869], + [-64.7136, 46.6872], + [-64.7198, 46.5763], + [-64.514, 46.2394], + [-64.2533, 46.2344], + [-63.8131, 46.1403], + [-63.9049, 45.9803], + [-63.8059, 45.8887], + [-63.1898, 45.7364], + [-63.0705, 45.7784], + [-62.7386, 45.7625], + [-62.4704, 45.6145], + [-61.9243, 45.8891], + [-61.8942, 45.7037], + [-61.6198, 45.6143], + [-61.4705, 45.6831], + [-61.0712, 45.2239], + [-61.3318, 45.2307], + [-61.6396, 45.0873], + [-62.5515, 44.8676], + [-63.0243, 44.6968], + [-63.2813, 44.6435], + [-63.5876, 44.6642], + [-63.5233, 44.5181], + [-63.7159, 44.4561], + [-63.9294, 44.5113], + [-63.943, 44.6205], + [-64.3539, 44.4561], + [-64.3397, 44.3326], + [-64.5609, 44.08], + [-64.8157, 43.9541], + [-65.0344, 43.7123], + [-65.2504, 43.6734], + [-65.4626, 43.5276], + [-65.6677, 43.5001], + [-65.7716, 43.6688], + [-66.1217, 43.7436], + [-66.2103, 44.1057], + [-66.1137, 44.3434], + [-65.8479, 44.5565], + [-65.7859, 44.6964], + [-64.8632, 45.1396], + [-64.5107, 45.2286], + [-64.2235, 45.1084], + [-64.1151, 45.2161], + [-63.8253, 45.2796], + [-63.593, 45.3952], + [-64.066, 45.413], + [-64.3881, 45.3673], + [-64.5762, 45.4156], + [-64.7174, 45.3246], + [-64.8331, 45.484], + [-64.4291, 45.7099], + [-64.5854, 45.8259], + [-64.7563, 45.6278], + [-65.3151, 45.4592], + [-65.545, 45.3296], + [-65.9094, 45.2103], + [-66.1285, 45.2791], + [-66.1894, 45.1778], + [-66.491, 45.1556], + [-66.7458, 45.0645], + [-67.0864, 45.0976], + [-67.176, 45.1787], + [-67.3563, 45.1659], + [-67.475, 45.2824], + [-67.45, 45.6108], + [-67.8001, 45.6998], + [-67.7728, 45.8281], + [-67.8052, 47.0356], + [-68.197, 47.3414], + [-68.5397, 47.2999], + [-68.9062, 47.1902], + [-69.0402, 47.2491], + [-69.0697, 47.4319], + [-69.2676, 47.4398], + [-70.0078, 46.7041], + [-70.0743, 46.4195], + [-70.1884, 46.3584], + [-70.3114, 46.0719], + [-70.2625, 45.923], + [-70.4074, 45.7315], + [-70.6868, 45.5727], + [-70.8338, 45.3931], + [-71.1417, 45.2523], + [-71.3949, 45.2415], + [-71.5041, 45.0137], + [-73.3992, 45.0044], + [-74.713, 44.9993] + ] + ], + [ + [ + [-126.7422, 49.8564], + [-126.6426, 49.7587], + [-126.6794, 49.5918], + [-126.9125, 49.6916], + [-126.7422, 49.8564] + ] + ], + [ + [ + [-64.1328, 49.9501], + [-63.9447, 49.8961], + [-63.3747, 49.8294], + [-62.9621, 49.7405], + [-62.5343, 49.6047], + [-62.2043, 49.4142], + [-61.8826, 49.3545], + [-61.6608, 49.151], + [-61.8116, 49.069], + [-62.2482, 49.0679], + [-63.0933, 49.2329], + [-63.5868, 49.39], + [-63.6414, 49.5135], + [-63.9252, 49.6749], + [-64.4247, 49.8085], + [-64.4513, 49.9095], + [-64.1328, 49.9501] + ] + ], + [ + [ + [-126.1859, 50.7416], + [-126.2881, 50.6546], + [-126.5877, 50.7011], + [-126.2723, 50.83], + [-126.1859, 50.7416] + ] + ], + [ + [ + [-127.8825, 50.8669], + [-127.5052, 50.7733], + [-127.1986, 50.6213], + [-126.4598, 50.4748], + [-126.1173, 50.4554], + [-125.4362, 50.3136], + [-125.1783, 49.925], + [-124.8821, 49.7249], + [-124.7947, 49.4726], + [-124.5451, 49.3772], + [-124.1592, 49.3105], + [-123.8134, 49.1186], + [-123.7799, 48.9859], + [-123.5938, 48.837], + [-123.5409, 48.6365], + [-123.39, 48.6204], + [-123.5546, 48.3279], + [-123.8908, 48.3669], + [-124.6654, 48.5732], + [-125.094, 48.73], + [-125.1852, 48.801], + [-124.9676, 48.9879], + [-125.3663, 48.9874], + [-125.4894, 48.9186], + [-125.7358, 49.053], + [-125.6986, 49.1811], + [-125.956, 49.2329], + [-126.0765, 49.3837], + [-126.5727, 49.4143], + [-126.5626, 49.5874], + [-126.6497, 49.898], + [-127.1419, 49.8666], + [-127.4879, 50.1304], + [-127.7847, 50.085], + [-127.7753, 50.2329], + [-127.9155, 50.4663], + [-128.0602, 50.4526], + [-128.3198, 50.6098], + [-128.4068, 50.7805], + [-128.077, 50.8703], + [-127.8825, 50.8669] + ] + ], + [ + [ + [-55.884, 51.617], + [-55.8902, 51.5009], + [-55.5141, 51.6039], + [-55.4919, 51.3884], + [-55.6174, 51.3044], + [-55.9669, 51.3466], + [-56.0184, 51.2182], + [-55.7191, 51.1843], + [-55.8731, 50.9173], + [-56.4278, 50.3757], + [-56.5234, 50.1964], + [-56.7388, 50.0268], + [-56.8021, 49.8015], + [-56.7253, 49.6903], + [-56.1488, 50.1557], + [-55.7226, 49.9312], + [-55.9386, 49.6097], + [-55.6448, 49.3903], + [-55.5824, 49.4724], + [-55.1557, 49.5493], + [-55.2229, 49.2646], + [-54.7429, 49.3198], + [-54.0411, 49.4809], + [-53.6791, 49.3668], + [-53.4537, 49.2422], + [-53.609, 49.0437], + [-53.9239, 48.9177], + [-53.8779, 48.748], + [-53.7042, 48.661], + [-53.7745, 48.5508], + [-53.5215, 48.4622], + [-53.4142, 48.6238], + [-52.9829, 48.6042], + [-53.0585, 48.4359], + [-53.6395, 48.1693], + [-53.6216, 48.005], + [-53.8468, 47.7068], + [-53.6051, 47.5394], + [-53.4987, 47.7464], + [-53.2765, 48.0164], + [-53.0536, 47.9326], + [-53.2436, 47.5926], + [-53.1138, 47.4306], + [-52.7042, 47.756], + [-52.6166, 47.5227], + [-52.7856, 47.3115], + [-52.9413, 46.7913], + [-53.2113, 46.6353], + [-53.3739, 46.7348], + [-53.6229, 46.6558], + [-53.5726, 47.1621], + [-54.0504, 46.8081], + [-54.1885, 46.8284], + [-54.1505, 47.0053], + [-53.9106, 47.3727], + [-53.8859, 47.5275], + [-54.0133, 47.8072], + [-54.141, 47.8358], + [-54.4584, 47.4994], + [-54.6029, 47.41], + [-54.8661, 47.3796], + [-54.9892, 47.2803], + [-55.0951, 47.0599], + [-55.2509, 46.9189], + [-55.8513, 46.871], + [-55.98, 46.9704], + [-55.8699, 47.0751], + [-55.4872, 47.1403], + [-55.3013, 47.2676], + [-55.0722, 47.5974], + [-55.3759, 47.6865], + [-55.4378, 47.4714], + [-55.7742, 47.4577], + [-55.9685, 47.7598], + [-56.235, 47.632], + [-56.672, 47.6267], + [-56.7775, 47.5334], + [-57.1207, 47.5676], + [-57.3297, 47.6328], + [-57.8473, 47.6524], + [-58.0978, 47.6952], + [-59.1116, 47.5608], + [-59.3011, 47.6142], + [-59.2829, 47.7594], + [-59.3988, 47.8803], + [-59.0018, 48.1225], + [-58.5362, 48.4536], + [-58.7032, 48.5545], + [-58.6666, 48.7258], + [-58.4433, 49.0568], + [-58.1362, 49.0949], + [-58.2295, 49.2685], + [-58.1859, 49.4427], + [-57.9261, 49.5893], + [-57.9398, 49.7053], + [-57.6102, 50.1657], + [-57.4569, 50.4831], + [-57.2996, 50.6495], + [-56.9772, 50.8815], + [-56.9799, 50.9878], + [-56.7952, 51.1378], + [-56.7202, 51.3193], + [-55.884, 51.617] + ] + ], + [ + [ + [-127.8763, 51.4742], + [-128.086, 51.4869], + [-128.1566, 51.6279], + [-128.0099, 51.7237], + [-127.8763, 51.4742] + ] + ], + [ + [ + [-127.9704, 52.0632], + [-128.036, 51.8436], + [-128.2222, 51.9542], + [-127.9704, 52.0632] + ] + ], + [ + [ + [-81.4244, 53.2288], + [-81.1228, 53.2022], + [-80.7795, 52.9487], + [-80.6696, 52.742], + [-81.0268, 52.7526], + [-82.0627, 53.0228], + [-81.8828, 53.1799], + [-81.4244, 53.2288] + ] + ], + [ + [ + [-131.7941, 53.2521], + [-131.613, 53.0563], + [-131.6189, 52.9202], + [-131.8524, 52.8672], + [-131.6608, 52.5424], + [-131.4144, 52.4537], + [-131.3322, 52.2972], + [-131.1426, 52.3162], + [-131.175, 52.1245], + [-131.38, 52.2029], + [-131.6829, 52.4897], + [-131.8826, 52.5762], + [-132.5044, 53.0404], + [-132.3731, 53.1327], + [-132.0655, 53.1613], + [-131.7941, 53.2521] + ] + ], + [ + [ + [-128.6219, 53.1557], + [-128.5323, 52.8466], + [-128.6056, 52.6112], + [-128.7554, 52.6039], + [-129.057, 52.741], + [-129.1898, 53.0233], + [-129.0906, 53.0886], + [-129.0781, 53.3028], + [-128.905, 53.2934], + [-128.6219, 53.1557] + ] + ], + [ + [ + [-130.2366, 53.5708], + [-129.974, 53.458], + [-129.7429, 53.2353], + [-129.9394, 53.1689], + [-130.0862, 53.3123], + [-130.3145, 53.3928], + [-130.5305, 53.5598], + [-130.2366, 53.5708] + ] + ], + [ + [ + [-129.76, 53.6696], + [-129.3365, 53.3606], + [-129.5675, 53.2153], + [-129.7969, 53.3785], + [-129.9331, 53.6003], + [-130.2024, 53.7303], + [-130.1962, 53.9166], + [-129.76, 53.6696] + ] + ], + [ + [ + [-130.2647, 54.0151], + [-130.3518, 53.8378], + [-130.6739, 53.9892], + [-130.3925, 54.0954], + [-130.2647, 54.0151] + ] + ], + [ + [ + [-132.9979, 54.1636], + [-132.2967, 54.1123], + [-132.1304, 54.0337], + [-131.6933, 53.9919], + [-131.8705, 53.7829], + [-131.9426, 53.5216], + [-131.9078, 53.3581], + [-132.0079, 53.2536], + [-132.4696, 53.1519], + [-132.7576, 53.3171], + [-132.5179, 53.4127], + [-132.9289, 53.5225], + [-132.8911, 53.6197], + [-133.1444, 53.8969], + [-132.9979, 54.1636] + ] + ], + [ + [ + [-79.1657, 56.6594], + [-79.0426, 56.3659], + [-79.4693, 55.8794], + [-79.8671, 55.8435], + [-80.0257, 55.9003], + [-79.7372, 56.1614], + [-79.4093, 56.2329], + [-79.1657, 56.6594] + ] + ], + [ + [ + [-61.4294, 56.9366], + [-61.3728, 56.6921], + [-61.6471, 56.7438], + [-61.6055, 56.8873], + [-61.4294, 56.9366] + ] + ], + [ + [ + [-68.0785, 60.5899], + [-67.8265, 60.4657], + [-67.9601, 60.3326], + [-68.321, 60.1971], + [-68.439, 60.2593], + [-68.2413, 60.5856], + [-68.0785, 60.5899] + ] + ], + [ + [ + [-64.7921, 61.6225], + [-64.6966, 61.458], + [-64.8512, 61.3337], + [-65.4858, 61.5993], + [-65.0466, 61.6977], + [-64.7921, 61.6225] + ] + ], + [ + [ + [-79.4404, 62.3798], + [-79.2695, 62.1452], + [-79.5485, 61.7595], + [-79.7502, 61.5859], + [-80.1804, 61.7743], + [-80.2856, 61.9304], + [-80.215, 62.1377], + [-79.8308, 62.4108], + [-79.4404, 62.3798] + ] + ], + [ + [ + [-70.7886, 62.8415], + [-70.4925, 62.767], + [-70.1771, 62.59], + [-70.6822, 62.5473], + [-70.9596, 62.8032], + [-70.7886, 62.8415] + ] + ], + [ + [ + [-82.1096, 62.9685], + [-81.8624, 62.9248], + [-81.9569, 62.6977], + [-82.296, 62.5852], + [-82.7467, 62.3105], + [-83.1346, 62.1766], + [-83.2806, 62.2525], + [-83.673, 62.1451], + [-83.907, 62.4914], + [-83.5528, 62.6997], + [-83.5198, 62.8264], + [-83.1189, 62.8472], + [-82.7394, 62.9384], + [-82.1096, 62.9685] + ] + ], + [ + [ + [-78.4144, 63.4932], + [-77.8443, 63.4725], + [-77.496, 63.2761], + [-77.6448, 63.1432], + [-77.9408, 63.0871], + [-78.5317, 63.3902], + [-78.4144, 63.4932] + ] + ], + [ + [ + [-77.1507, 63.6677], + [-76.7093, 63.5678], + [-76.702, 63.3697], + [-76.9821, 63.4073], + [-77.4183, 63.5906], + [-77.1507, 63.6677] + ] + ], + [ + [ + [-85.4883, 65.7966], + [-85.201, 65.8093], + [-85.0524, 65.6142], + [-85.0767, 65.4564], + [-84.848, 65.2135], + [-84.5774, 65.4894], + [-84.1523, 65.3322], + [-84.0985, 65.2095], + [-83.3977, 65.1366], + [-83.2084, 64.9477], + [-82.7145, 64.781], + [-82.366, 64.768], + [-81.7713, 64.512], + [-81.6272, 64.1236], + [-81.0585, 64.0265], + [-80.8888, 64.1226], + [-80.1964, 63.7529], + [-80.4664, 63.7273], + [-81.0189, 63.4503], + [-82.0746, 63.6918], + [-82.4818, 63.6852], + [-82.3558, 63.853], + [-82.5339, 63.973], + [-83.1383, 64.0067], + [-83.0137, 64.1916], + [-83.5394, 64.1107], + [-83.6853, 64.0141], + [-83.6338, 63.771], + [-84.0639, 63.6207], + [-84.4053, 63.5548], + [-84.5902, 63.3151], + [-85.2739, 63.1234], + [-85.6352, 63.2431], + [-85.617, 63.6749], + [-85.7936, 63.7134], + [-86.2854, 63.6461], + [-86.6612, 63.6577], + [-87.0644, 63.5548], + [-87.2238, 63.6601], + [-86.8959, 63.9302], + [-86.1929, 64.1034], + [-86.4058, 64.4385], + [-86.3529, 64.6508], + [-86.1593, 64.9394], + [-86.1739, 65.2865], + [-86.0284, 65.665], + [-85.6098, 65.9105], + [-85.4883, 65.7966] + ] + ], + [ + [ + [-85.0129, 66.0082], + [-84.715, 65.8353], + [-84.5741, 65.6356], + [-84.7132, 65.5552], + [-85.1127, 65.7621], + [-85.1861, 65.9468], + [-85.0129, 66.0082] + ] + ], + [ + [ + [-84.3461, 66.1179], + [-83.6927, 65.9257], + [-83.8697, 65.7829], + [-84.4735, 66.0759], + [-84.3461, 66.1179] + ] + ], + [ + [ + [-74.277, 68.0776], + [-73.4129, 67.9684], + [-73.4095, 67.776], + [-74.4023, 67.7789], + [-74.6402, 67.8567], + [-74.756, 68.0634], + [-74.277, 68.0776] + ] + ], + [ + [ + [-86.3725, 67.9366], + [-86.5975, 67.7282], + [-86.8366, 67.7918], + [-86.9857, 68.0675], + [-86.66, 68.3104], + [-86.4078, 68.2077], + [-86.3725, 67.9366] + ] + ], + [ + [ + [-75.5975, 68.3138], + [-75.1376, 68.2363], + [-75.0072, 68.1105], + [-75.1614, 67.9531], + [-75.0441, 67.817], + [-75.0651, 67.5524], + [-75.3905, 67.3577], + [-75.8893, 67.258], + [-76.9816, 67.2433], + [-77.178, 67.4255], + [-77.3227, 67.708], + [-77.2122, 67.8704], + [-76.6889, 68.2626], + [-76.2991, 68.3348], + [-75.5975, 68.3138] + ] + ], + [ + [ + [-74.9033, 68.5529], + [-74.8113, 68.324], + [-75.379, 68.4988], + [-75.2604, 68.7206], + [-74.9033, 68.5529] + ] + ], + [ + [ + [-101.778, 68.7886], + [-101.8292, 68.5784], + [-102.2904, 68.6636], + [-102.0246, 68.8238], + [-101.778, 68.7886] + ] + ], + [ + [ + [-100.1542, 68.9234], + [-100.3635, 68.7221], + [-100.6224, 68.7724], + [-100.6313, 68.9957], + [-100.1542, 68.9234] + ] + ], + [ + [ + [-78.4567, 69.3935], + [-78.4567, 69.2291], + [-78.83, 68.9174], + [-79.3967, 68.8632], + [-79.2042, 69.0849], + [-78.8633, 69.1484], + [-78.7309, 69.3253], + [-78.4567, 69.3935] + ] + ], + [ + [ + [-77.0478, 69.4197], + [-76.6752, 69.311], + [-76.9915, 69.1451], + [-77.265, 69.1467], + [-77.3605, 69.3898], + [-77.0478, 69.4197] + ] + ], + [ + [ + [-95.6803, 69.6093], + [-95.3808, 69.5233], + [-95.413, 69.3863], + [-96.0114, 69.4828], + [-95.6803, 69.6093] + ] + ], + [ + [ + [-77.9706, 69.6845], + [-78.0923, 69.5783], + [-78.5172, 69.4848], + [-78.5665, 69.6467], + [-77.9706, 69.6845] + ] + ], + [ + [ + [-79.6724, 69.8204], + [-79.3481, 69.6945], + [-79.6129, 69.6198], + [-80.2104, 69.6187], + [-79.6724, 69.8204] + ] + ], + [ + [ + [-97.3907, 69.6002], + [-96.2198, 69.314], + [-95.952, 69.1396], + [-95.8455, 68.8906], + [-95.571, 68.8351], + [-96.2959, 68.4801], + [-96.5205, 68.4476], + [-97.0368, 68.5538], + [-97.562, 68.5643], + [-97.7606, 68.6521], + [-99.4172, 68.8904], + [-99.5915, 69.0411], + [-99.3093, 69.1588], + [-98.7128, 69.2021], + [-98.4111, 69.3525], + [-98.6079, 69.4427], + [-98.3693, 69.5683], + [-98.2193, 69.7976], + [-97.9252, 69.8959], + [-97.4752, 69.7772], + [-97.3907, 69.6002] + ] + ], + [ + [ + [-71.8276, 71.0613], + [-71.4387, 70.9099], + [-72.1182, 70.8254], + [-72.228, 70.9217], + [-72.0461, 70.9459], + [-72.0116, 71.0522], + [-71.8276, 71.0613] + ] + ], + [ + [ + [-74.713, 44.9993], + [-74.8685, 45.0101], + [-75.2702, 44.8638], + [-75.6997, 44.5817], + [-75.8703, 44.4086], + [-76.0673, 44.348], + [-76.4546, 44.0842], + [-76.8415, 43.6255], + [-78.6881, 43.6318], + [-79.1743, 43.4645], + [-79.0538, 43.2604], + [-79.032, 43.0134], + [-78.9153, 42.9476], + [-79.0194, 42.8027], + [-80.2466, 42.3655], + [-81.2767, 42.2087], + [-82.4249, 41.6768], + [-82.7111, 41.6802], + [-83.0684, 41.8477], + [-83.157, 42.0004], + [-83.1285, 42.24], + [-82.8001, 42.418], + [-82.5113, 42.6467], + [-82.4111, 43.0513], + [-82.1536, 43.5496], + [-82.2918, 44.2422], + [-82.5321, 45.2935], + [-82.5888, 45.3718], + [-83.5953, 45.8164], + [-83.4659, 45.9931], + [-83.6139, 46.1156], + [-83.9473, 46.0606], + [-84.0868, 46.2012], + [-84.1588, 46.4333], + [-84.1104, 46.5265], + [-84.5894, 46.4751], + [-84.7733, 46.6334], + [-84.8787, 46.8979], + [-86.6371, 47.6241], + [-88.3473, 48.2987], + [-88.6427, 48.2566], + [-89.3404, 47.9842], + [-89.9803, 48.0101], + [-90.1786, 48.1164], + [-90.7865, 48.1005], + [-90.9232, 48.2271], + [-91.4279, 48.0364], + [-91.6925, 48.0979], + [-91.9573, 48.2283], + [-92.0434, 48.3346], + [-92.3031, 48.3109], + [-92.6486, 48.5363], + [-92.9797, 48.6177], + [-93.2577, 48.6303], + [-93.4918, 48.5423], + [-93.7568, 48.5165], + [-93.8749, 48.6362], + [-94.2322, 48.652], + [-94.5929, 48.7264], + [-94.7112, 48.9146], + [-94.8273, 49.2929], + [-95.1606, 49.3695], + [-95.1771, 48.9927], + [-96.7158, 48.9927], + [-97.8148, 48.9927], + [-99.3535, 48.9927], + [-100.4525, 48.9927], + [-102.4307, 48.9926], + [-104.409, 48.9926], + [-106.6072, 48.9926], + [-108.3656, 48.9926], + [-110.5637, 48.9926], + [-111.6627, 48.9926], + [-113.641, 48.9925], + [-115.1797, 48.9925], + [-116.2788, 48.9925], + [-117.8174, 48.9925], + [-119.356, 48.9925], + [-121.1145, 48.9925], + [-122.753, 48.9925], + [-123.0353, 48.9925], + [-123.0905, 48.9925], + [-123.212, 49.13], + [-123.2486, 49.5978], + [-123.4895, 49.515], + [-123.5546, 49.39], + [-123.9638, 49.5211], + [-124.171, 49.781], + [-124.4037, 49.7673], + [-124.7322, 49.9543], + [-124.6052, 50.2329], + [-124.7054, 50.3223], + [-125.0617, 50.3276], + [-125.1278, 50.437], + [-125.391, 50.4973], + [-125.7033, 50.4379], + [-126.2423, 50.501], + [-126.2215, 50.6426], + [-126.0187, 50.666], + [-126.1789, 50.8532], + [-126.4887, 50.8167], + [-126.8586, 50.9431], + [-127.0218, 50.8219], + [-127.429, 50.9431], + [-127.777, 51.1672], + [-127.6643, 51.3981], + [-127.8737, 51.6734], + [-127.8496, 51.9201], + [-127.6381, 52.0837], + [-127.2836, 52.2377], + [-127.159, 52.3555], + [-127.225, 52.4561], + [-127.8005, 52.2563], + [-128.0159, 52.3467], + [-128.0924, 52.5133], + [-128.243, 52.5588], + [-128.1256, 52.7528], + [-128.4779, 52.8683], + [-128.5467, 53.136], + [-128.8755, 53.3062], + [-128.7755, 53.5556], + [-128.8616, 53.8302], + [-129.2283, 53.6327], + [-129.335, 53.3969], + [-130.1047, 53.9471], + [-130.1122, 54.1593], + [-130.4582, 54.3486], + [-130.3724, 54.6643], + [-130.2015, 54.7285], + [-130.0638, 55.0029], + [-130.1674, 55.0854], + [-129.9579, 55.2735], + [-130.1306, 55.7363], + [-130.0196, 55.908], + [-130.0715, 56.0841], + [-130.404, 56.1219], + [-130.4955, 56.2324], + [-130.8391, 56.3725], + [-131.1005, 56.4077], + [-131.5859, 56.595], + [-131.7991, 56.5877], + [-131.8716, 56.7935], + [-132.1074, 56.8588], + [-132.0319, 57.0284], + [-132.3412, 57.0804], + [-132.231, 57.1968], + [-132.5524, 57.4991], + [-133.1656, 58.1473], + [-133.3746, 58.291], + [-133.4631, 58.4622], + [-133.8712, 58.7359], + [-134.2222, 58.8427], + [-134.398, 59.052], + [-134.7055, 59.2401], + [-134.9324, 59.2706], + [-135.0958, 59.4189], + [-135.0162, 59.5434], + [-135.4828, 59.7925], + [-135.9238, 59.6667], + [-136.2585, 59.6216], + [-136.4676, 59.4616], + [-136.4665, 59.2878], + [-136.6135, 59.1542], + [-136.8408, 59.1482], + [-137.4231, 58.9077], + [-137.6114, 59.2393], + [-138.5992, 59.7538], + [-138.6921, 59.8869], + [-139.1821, 60.0734], + [-139.1016, 60.3466], + [-139.6283, 60.3341], + [-140.0158, 60.1874], + [-140.4241, 60.2932], + [-140.5337, 60.2185], + [-141.0012, 60.3211], + [-141.0018, 61.6331], + [-141.0023, 62.6536], + [-141.0026, 63.3825], + [-141.0031, 64.5487], + [-141.0036, 65.5692], + [-141.0042, 66.8811], + [-141.005, 68.4847], + [-141.0056, 69.6509], + [-140.2227, 69.5991], + [-139.918, 69.6213], + [-139.1438, 69.5137], + [-138.6367, 69.2837], + [-138.0955, 69.1401], + [-137.1912, 68.9479], + [-136.663, 68.8758], + [-136.0676, 68.8853], + [-135.9678, 69.2222], + [-135.8379, 69.3091], + [-135.1554, 69.4797], + [-134.6413, 69.4822], + [-134.4101, 69.6569], + [-133.6319, 69.3992], + [-133.1958, 69.414], + [-132.8873, 69.6611], + [-132.5484, 69.743], + [-132.1389, 69.6879], + [-130.9429, 70.0788], + [-130.3245, 70.1402], + [-129.5998, 69.9912], + [-131.0858, 69.6331], + [-131.9836, 69.5369], + [-132.1143, 69.3615], + [-132.7712, 69.2563], + [-132.8622, 69.0733], + [-132.3728, 69.1493], + [-131.8804, 69.2847], + [-131.5952, 69.4743], + [-130.7502, 69.4543], + [-130.3382, 69.7023], + [-129.1737, 69.8323], + [-128.9941, 69.6794], + [-128.3104, 69.9894], + [-128.3702, 70.0974], + [-128.0324, 70.2937], + [-128.1959, 70.447], + [-127.9283, 70.5671], + [-127.1365, 70.2529], + [-126.7018, 69.7674], + [-125.9386, 69.414], + [-125.4488, 69.3192], + [-125.151, 69.4543], + [-125.4159, 69.6032], + [-125.0323, 69.7473], + [-124.8971, 69.9422], + [-124.9877, 70.0456], + [-124.3839, 70.1402], + [-124.5067, 69.7362], + [-124.0718, 69.6658], + [-124.4291, 69.4735], + [-124.4385, 69.3696], + [-123.5447, 69.377], + [-123.1776, 69.4959], + [-123.1573, 69.7702], + [-122.951, 69.8386], + [-122.036, 69.8187], + [-121.4278, 69.7668], + [-120.8074, 69.6235], + [-120.2786, 69.4078], + [-118.6664, 69.2255], + [-118.0409, 69.0246], + [-116.2081, 68.8312], + [-116.1605, 68.9841], + [-115.5878, 68.9752], + [-114.9878, 68.8674], + [-114.201, 68.5719], + [-114.0568, 68.3042], + [-114.837, 68.2626], + [-115.5338, 67.9344], + [-115.1182, 67.8039], + [-114.7892, 67.817], + [-113.8588, 67.6962], + [-112.421, 67.6824], + [-111.292, 67.8261], + [-111.019, 67.7681], + [-110.4208, 67.9484], + [-109.9712, 67.9673], + [-109.6984, 67.8101], + [-109.0746, 67.722], + [-108.9294, 67.5318], + [-108.5991, 67.6253], + [-108.444, 67.434], + [-107.9925, 67.2825], + [-107.8797, 67.0534], + [-108.215, 67.0274], + [-107.6587, 66.7077], + [-107.2464, 67.0842], + [-107.527, 67.2123], + [-107.6567, 67.3725], + [-107.5858, 67.5012], + [-107.9896, 67.6933], + [-107.9416, 67.8543], + [-107.4287, 68.0427], + [-106.4944, 68.2458], + [-106.276, 68.3869], + [-105.6976, 68.4888], + [-105.8791, 68.6393], + [-106.522, 68.5267], + [-106.5732, 68.4202], + [-107.1311, 68.3007], + [-107.8473, 68.3332], + [-107.7296, 68.2072], + [-108.3376, 68.1551], + [-108.4022, 68.2689], + [-108.8151, 68.2742], + [-108.2808, 68.6216], + [-107.2926, 68.7014], + [-106.1975, 68.9444], + [-105.7508, 68.8659], + [-105.4696, 68.722], + [-105.536, 68.4499], + [-105.0951, 68.2695], + [-104.602, 68.2353], + [-104.4839, 68.0339], + [-103.8786, 68.0233], + [-103.5284, 68.133], + [-103.3661, 68.0185], + [-102.9484, 67.9268], + [-102.7626, 67.8151], + [-102.2421, 67.7251], + [-101.9391, 67.7858], + [-101.5294, 67.6804], + [-101.2524, 67.7697], + [-100.9569, 67.7492], + [-100.717, 67.847], + [-99.4237, 67.7941], + [-98.9154, 67.7116], + [-98.361, 67.8113], + [-98.727, 67.9578], + [-98.5223, 68.0456], + [-98.0921, 67.7603], + [-97.5903, 67.603], + [-97.0611, 67.6804], + [-97.1201, 67.7794], + [-97.6409, 68.0094], + [-98.1715, 67.8757], + [-98.449, 68.0709], + [-98.5444, 68.3397], + [-98.1924, 68.3077], + [-97.793, 68.4095], + [-97.8563, 68.5438], + [-97.2604, 68.4687], + [-97.0099, 68.35], + [-96.3981, 68.1714], + [-96.0094, 68.2523], + [-96.2164, 67.7803], + [-96.4652, 67.5495], + [-96.0751, 67.2258], + [-95.735, 67.3765], + [-95.5219, 67.2196], + [-95.2556, 67.2623], + [-95.4632, 67.6393], + [-95.6957, 67.7115], + [-95.582, 67.8995], + [-95.2335, 68.0697], + [-94.861, 68.0309], + [-94.3409, 68.2443], + [-93.7305, 68.6118], + [-93.5772, 68.8622], + [-93.8967, 69.0176], + [-94.1099, 68.7591], + [-94.6361, 68.756], + [-94.5505, 68.8907], + [-94.1352, 69.1328], + [-94.2379, 69.3365], + [-93.7034, 69.2254], + [-93.4344, 69.3568], + [-93.558, 69.5307], + [-93.9304, 69.4354], + [-94.3222, 69.453], + [-94.561, 69.6406], + [-94.8751, 69.5716], + [-95.6503, 69.7839], + [-95.9759, 69.7862], + [-96.4863, 70.097], + [-96.5615, 70.3153], + [-96.1903, 70.6247], + [-96.6164, 70.8258], + [-96.5615, 71.1271], + [-96.2117, 71.3868], + [-95.6583, 71.2915], + [-95.4647, 71.484], + [-95.9445, 71.5522], + [-95.4921, 71.723], + [-95.2252, 71.9495], + [-94.5487, 72.0021], + [-94.5399, 71.7713], + [-94.0541, 71.7892], + [-93.8205, 71.6553], + [-92.9906, 71.3571], + [-92.8587, 71.1498], + [-92.9077, 70.902], + [-92.6145, 70.6889], + [-92.2499, 70.6254], + [-91.9907, 70.3251], + [-91.7232, 70.3558], + [-91.5452, 70.145], + [-91.9429, 70.0241], + [-92.4714, 69.6976], + [-91.8027, 69.5133], + [-91.426, 69.6684], + [-91.11, 69.5133], + [-90.6544, 69.5369], + [-91.0336, 69.2195], + [-90.6706, 69.0882], + [-90.4465, 68.8863], + [-90.6035, 68.4408], + [-90.0002, 68.3793], + [-89.9449, 68.6158], + [-89.688, 68.8175], + [-89.6722, 69.0445], + [-89.3317, 69.2495], + [-88.942, 69.2336], + [-88.7286, 69.0839], + [-88.0226, 68.8087], + [-87.7922, 68.3312], + [-87.9438, 68.2009], + [-88.2833, 68.126], + [-88.3736, 67.9758], + [-88.153, 67.6804], + [-87.4838, 67.3631], + [-87.3278, 67.1733], + [-86.9607, 67.2552], + [-86.779, 67.4186], + [-86.5019, 67.3794], + [-86.5293, 67.6872], + [-85.9017, 68.0544], + [-85.7172, 68.3983], + [-85.6681, 68.727], + [-85.2248, 68.7213], + [-84.7672, 69.088], + [-85.22, 69.1328], + [-85.534, 69.4633], + [-85.5441, 69.6535], + [-85.3332, 69.7914], + [-84.3398, 69.8597], + [-83.7541, 69.7117], + [-82.5755, 69.6741], + [-82.618, 69.57], + [-82.2816, 69.4194], + [-82.2373, 69.2352], + [-81.753, 69.2679], + [-81.3372, 69.1876], + [-81.7025, 68.9075], + [-81.3652, 68.8617], + [-81.2665, 68.6387], + [-81.6295, 68.5128], + [-82.3697, 68.3563], + [-82.3148, 68.1466], + [-82.1094, 68.1118], + [-82.0882, 67.8995], + [-81.4572, 67.6284], + [-81.2379, 67.4605], + [-81.5274, 66.996], + [-81.9549, 66.9768], + [-82.1844, 66.7686], + [-82.6335, 66.5633], + [-83.0274, 66.4952], + [-83.3694, 66.3503], + [-83.6781, 66.5253], + [-83.9632, 66.4779], + [-83.6908, 66.1992], + [-84.3817, 66.19], + [-85.2678, 66.2869], + [-85.4161, 66.567], + [-85.7516, 66.5177], + [-86.6205, 66.5069], + [-86.6206, 66.3144], + [-85.8567, 66.1628], + [-85.9744, 66.0356], + [-86.4125, 65.9045], + [-86.4747, 65.734], + [-87.3808, 65.3297], + [-87.9275, 65.3334], + [-88.2055, 65.4051], + [-88.5846, 65.6452], + [-88.9701, 65.6965], + [-89.688, 65.9468], + [-89.8375, 65.8309], + [-89.3938, 65.5012], + [-89.0399, 65.3282], + [-87.0469, 65.238], + [-86.9382, 65.142], + [-87.6, 64.5582], + [-87.7643, 64.5224], + [-88.0443, 64.1843], + [-88.7346, 63.9724], + [-89.1774, 64.0385], + [-89.8127, 63.9602], + [-90.1684, 63.6577], + [-90.9745, 63.5787], + [-91.371, 63.7017], + [-92.3738, 63.7791], + [-92.7862, 63.901], + [-93.4789, 64.0339], + [-93.7659, 63.9935], + [-93.5331, 63.8496], + [-93.2172, 63.911], + [-92.6349, 63.7839], + [-92.1275, 63.7112], + [-91.7784, 63.7144], + [-91.5867, 63.5823], + [-91.0174, 63.4711], + [-90.6954, 63.2748], + [-90.6436, 63.0689], + [-91.442, 62.7869], + [-91.9794, 62.8474], + [-92.4539, 62.7939], + [-92.2609, 62.5626], + [-92.7183, 62.4647], + [-92.5934, 62.2394], + [-93.5021, 61.8558], + [-93.3029, 61.7519], + [-93.838, 61.5617], + [-93.985, 61.458], + [-93.8336, 61.3283], + [-94.0068, 61.2378], + [-94.2423, 60.9034], + [-94.3516, 60.8581], + [-94.7118, 60.2657], + [-94.817, 59.9629], + [-94.8219, 59.6503], + [-94.7184, 59.3667], + [-94.8074, 59.0181], + [-94.3995, 58.7125], + [-93.7174, 58.7922], + [-93.1895, 58.7597], + [-93.1285, 58.5284], + [-92.8078, 58.0758], + [-92.757, 57.8659], + [-92.4569, 57.449], + [-92.4568, 57.223], + [-92.6658, 57.0006], + [-92.2235, 57.0215], + [-91.0311, 57.2646], + [-90.5855, 57.2299], + [-89.827, 56.976], + [-88.9208, 56.8531], + [-88.3114, 56.538], + [-87.9796, 56.4429], + [-87.6223, 56.0956], + [-87.3163, 55.9623], + [-86.8749, 55.9113], + [-86.2893, 55.7256], + [-85.6826, 55.5866], + [-85.4392, 55.4284], + [-85.1266, 55.3026], + [-84.6131, 55.2452], + [-83.9291, 55.3265], + [-83.2395, 55.2236], + [-82.9203, 55.2205], + [-82.8151, 55.1468], + [-82.4585, 55.1412], + [-82.2786, 55.0455], + [-82.2014, 54.8339], + [-82.421, 54.3839], + [-82.4309, 54.2282], + [-82.2426, 54.065], + [-82.126, 53.8122], + [-82.2192, 53.6044], + [-82.1185, 53.2773], + [-82.2381, 53.2214], + [-82.3012, 52.9676], + [-81.9881, 52.7984], + [-81.9182, 52.6804], + [-81.5638, 52.4562], + [-81.5815, 52.3165], + [-81.3906, 52.1278], + [-80.9791, 52.0018], + [-80.5949, 51.7114], + [-80.4298, 51.3572], + [-80.1083, 51.2961], + [-79.7445, 51.1235], + [-79.7008, 51.3854], + [-79.5602, 51.5555], + [-79.346, 51.6618], + [-78.8822, 51.4033], + [-78.7924, 51.6108], + [-79.015, 51.7961], + [-78.8406, 51.8423], + [-78.5913, 52.1061], + [-78.5215, 52.4809], + [-78.7856, 52.6591], + [-78.7831, 52.8715], + [-78.9774, 53.07], + [-78.9017, 53.201], + [-79.0563, 53.6203], + [-79.0135, 53.8459], + [-79.1294, 54.1075], + [-79.464, 54.3102], + [-79.5294, 54.5772], + [-79.6763, 54.6938], + [-78.9674, 54.852], + [-78.3922, 55.0275], + [-77.7816, 55.2735], + [-77.1129, 55.6754], + [-77.0445, 55.783], + [-76.6587, 56.073], + [-76.5452, 56.295], + [-76.5037, 56.7838], + [-76.5893, 57.2713], + [-76.8087, 57.6755], + [-77.0793, 57.9615], + [-77.6007, 58.2713], + [-78.0315, 58.3881], + [-78.4737, 58.7202], + [-78.56, 58.9446], + [-78.3047, 58.9599], + [-78.1066, 59.2099], + [-77.8192, 59.293], + [-77.8812, 59.4849], + [-77.7162, 59.6214], + [-77.4629, 59.6766], + [-77.2831, 60.0266], + [-77.556, 60.0528], + [-77.4697, 60.2172], + [-77.7423, 60.4258], + [-77.5917, 60.5026], + [-77.8293, 60.6433], + [-77.6068, 60.7591], + [-78.1655, 60.8684], + [-77.8124, 61.0881], + [-77.7853, 61.4547], + [-77.7084, 61.6163], + [-77.9398, 61.6936], + [-78.0848, 61.888], + [-78.1549, 62.2973], + [-77.4908, 62.5883], + [-76.7577, 62.5108], + [-75.8297, 62.3133], + [-75.3277, 62.3175], + [-75.0061, 62.269], + [-74.4169, 62.2525], + [-73.6707, 62.4821], + [-73.2095, 62.3128], + [-73.0622, 62.1876], + [-72.6214, 62.1019], + [-72.6052, 61.9437], + [-72.2323, 61.8813], + [-71.9568, 61.7112], + [-71.652, 61.6498], + [-71.8553, 61.4238], + [-71.6964, 61.2774], + [-71.395, 61.1495], + [-70.6037, 61.0328], + [-70.3251, 61.1004], + [-70.1102, 61.0601], + [-70.0648, 60.8581], + [-69.9159, 60.81], + [-69.5366, 61.0797], + [-69.3813, 60.7999], + [-69.7198, 60.684], + [-69.7533, 60.333], + [-69.6024, 60.2247], + [-69.7698, 59.9711], + [-69.5898, 59.8761], + [-69.6577, 59.7033], + [-69.568, 59.6026], + [-69.6715, 59.457], + [-69.2548, 59.3248], + [-69.5281, 59.186], + [-69.4516, 58.8952], + [-70.0345, 58.8126], + [-69.834, 58.6041], + [-69.2563, 58.8992], + [-68.7869, 58.9225], + [-68.3616, 58.7835], + [-68.3502, 58.6215], + [-67.649, 58.2518], + [-67.0642, 58.3929], + [-66.9466, 58.4984], + [-66.6288, 58.5929], + [-66.3912, 58.8513], + [-66.1086, 58.7791], + [-65.9822, 58.9172], + [-65.6425, 59.0733], + [-65.7427, 59.2679], + [-65.4067, 59.4174], + [-65.5463, 59.7313], + [-65.1378, 59.9002], + [-65.1177, 60.0084], + [-64.8488, 60.3657], + [-64.4166, 60.2597], + [-64.4515, 60.0661], + [-64.2205, 60.0466], + [-64.1264, 59.9075], + [-64.1479, 59.6828], + [-63.7281, 59.5091], + [-63.8059, 59.3749], + [-63.5316, 59.3477], + [-63.3733, 59.2167], + [-63.4422, 59.1206], + [-62.9269, 58.8232], + [-62.8465, 58.6693], + [-63.1756, 58.5035], + [-63.0097, 58.4287], + [-62.5786, 58.5042], + [-62.6614, 58.1758], + [-62.305, 58.0312], + [-61.8899, 57.625], + [-62.2892, 57.5236], + [-61.817, 57.3774], + [-61.8651, 57.1706], + [-61.3819, 57.1211], + [-61.5018, 56.9789], + [-61.8092, 56.7885], + [-61.8689, 56.6373], + [-61.7566, 56.4858], + [-61.8302, 56.3769], + [-61.547, 56.2004], + [-61.3728, 56.2288], + [-61.3454, 55.9693], + [-60.7816, 55.8597], + [-60.3548, 55.5751], + [-60.4189, 55.4277], + [-60.2871, 55.2334], + [-59.9392, 55.2354], + [-59.862, 55.1409], + [-59.43, 55.142], + [-59.2523, 55.2159], + [-59.008, 55.1537], + [-59.0259, 55.0199], + [-58.6815, 54.8185], + [-58.2035, 54.7974], + [-57.847, 54.7387], + [-57.6676, 54.6334], + [-57.4498, 54.6494], + [-57.391, 54.5019], + [-57.6783, 54.3774], + [-58.1861, 54.3586], + [-58.9745, 53.9715], + [-59.5316, 53.8216], + [-59.7913, 53.848], + [-60.1083, 53.7577], + [-60.0417, 53.4802], + [-59.5111, 53.5554], + [-59.3678, 53.6524], + [-59.0768, 53.687], + [-59.0707, 53.7963], + [-58.8531, 53.942], + [-58.2203, 54.0638], + [-58.2285, 54.2357], + [-58.0116, 54.2397], + [-57.3569, 54.1395], + [-57.1527, 53.7399], + [-56.6313, 53.7416], + [-56.6327, 53.6603], + [-56.0362, 53.5804], + [-56.0349, 53.4337], + [-55.8121, 53.3301], + [-55.7469, 53.1457], + [-55.9557, 53.0222], + [-55.8116, 52.8304], + [-56.0594, 52.7657], + [-55.9333, 52.6379], + [-56.0004, 52.5151], + [-55.6476, 52.4432], + [-55.8201, 52.3082], + [-55.6848, 52.1117], + [-55.9342, 51.9252], + [-56.3379, 51.7821], + [-56.9665, 51.4252], + [-57.25, 51.5083], + [-57.6706, 51.4349], + [-58.234, 51.2769], + [-58.4537, 51.3166], + [-58.7164, 51.1065], + [-58.9477, 51.0416], + [-58.9933, 50.7908], + [-59.4099, 50.6666], + [-59.5815, 50.4841], + [-59.8031, 50.4457], + [-59.8507, 50.3136], + [-60.0637, 50.254], + [-60.5404, 50.226], + [-60.8356, 50.2563], + [-61.3114, 50.1993], + [-61.7179, 50.1], + [-61.8458, 50.2198], + [-62.8524, 50.2943], + [-63.1767, 50.2901], + [-63.4422, 50.2229], + [-63.7222, 50.3043], + [-64.2475, 50.2707], + [-64.47, 50.3223], + [-64.8883, 50.2745], + [-65.2583, 50.3223], + [-65.7372, 50.2574], + [-65.9292, 50.2928], + [-66.1619, 50.1958], + [-66.5431, 50.2161], + [-66.7459, 50.0537], + [-66.9509, 49.9864], + [-67.1315, 49.8313], + [-67.2451, 49.4588], + [-67.3763, 49.3392], + [-68.1224, 49.2713], + [-68.1811, 49.1245], + [-68.3719, 49.1403], + [-69.0696, 48.7562], + [-69.1444, 48.6005], + [-69.4466, 48.2962], + [-69.736, 48.1225], + [-69.932, 47.7731], + [-70.1996, 47.5955], + [-70.2369, 47.4956], + [-70.4971, 47.4293], + [-70.715, 47.1176], + [-70.9569, 47.0207], + [-71.354, 46.739], + [-71.694, 46.6744], + [-71.8805, 46.6907], + [-72.2279, 46.5534], + [-72.258, 46.4709], + [-72.4623, 46.4023], + [-72.6025, 46.3013], + [-72.9945, 46.2108], + [-73.1586, 46.0749], + [-73.2899, 45.8751], + [-73.4954, 45.7279], + [-73.7554, 45.6764], + [-74.0777, 45.4567], + [-73.9615, 45.3542], + [-74.4936, 45.1462], + [-74.713, 44.9993] + ] + ], + [ + [ + [-114.1966, 73.3081], + [-113.962, 73.1229], + [-114.0231, 72.7978], + [-114.3561, 72.7463], + [-114.3218, 72.5918], + [-113.604, 72.7775], + [-113.015, 73.016], + [-112.0773, 72.898], + [-111.2196, 72.7241], + [-111.4071, 72.4262], + [-111.0863, 72.4083], + [-110.7291, 72.5713], + [-109.7877, 72.5044], + [-110.4835, 72.8392], + [-110.7037, 73.0091], + [-110.0764, 72.9958], + [-108.6334, 72.5656], + [-108.6631, 72.361], + [-108.1883, 71.9495], + [-108.2869, 71.7987], + [-107.9919, 71.6834], + [-107.6684, 71.7082], + [-107.2516, 71.9017], + [-107.7792, 72.1413], + [-107.7178, 72.3027], + [-108.2983, 73.1338], + [-107.662, 73.3284], + [-107.1724, 73.195], + [-106.8234, 73.3096], + [-106.234, 73.0872], + [-105.8293, 73.0513], + [-105.3325, 72.7511], + [-105.4565, 72.703], + [-105.2769, 72.44], + [-104.9596, 72.1784], + [-105.0389, 72.114], + [-104.3803, 71.6], + [-104.2824, 71.364], + [-104.5912, 71.0732], + [-104.1052, 70.8981], + [-104.024, 70.7845], + [-103.5377, 70.5995], + [-103.1252, 70.5761], + [-102.4093, 70.4255], + [-101.5823, 70.1325], + [-100.9957, 70.175], + [-100.8722, 69.8078], + [-100.9643, 69.6645], + [-101.7068, 69.6912], + [-102.0248, 69.8086], + [-102.5823, 69.7435], + [-102.5096, 69.5642], + [-103.0411, 69.5153], + [-103.0371, 69.3662], + [-102.0548, 69.4844], + [-101.7684, 69.123], + [-101.9645, 68.9696], + [-102.5231, 68.8655], + [-103.3832, 68.7823], + [-104.4468, 68.9416], + [-104.5936, 68.8645], + [-105.123, 68.8964], + [-104.9171, 69.0479], + [-105.8859, 69.1765], + [-106.204, 69.1499], + [-106.3198, 69.4047], + [-106.5839, 69.5036], + [-106.9264, 69.239], + [-107.3348, 69.0256], + [-107.9412, 68.9411], + [-108.5395, 68.947], + [-108.9516, 68.7424], + [-109.6246, 68.6417], + [-110.6051, 68.6169], + [-111.251, 68.5197], + [-111.5312, 68.5438], + [-112.5833, 68.5097], + [-112.749, 68.4631], + [-113.3505, 68.5915], + [-113.6555, 68.8005], + [-113.584, 69.2012], + [-114.3973, 69.2882], + [-115.189, 69.2427], + [-115.9748, 69.3002], + [-116.6327, 69.4618], + [-116.6196, 69.5717], + [-117.2521, 69.7641], + [-117.442, 69.9894], + [-116.9651, 70.1291], + [-116.0327, 70.2203], + [-114.1847, 70.3157], + [-112.5863, 70.2], + [-112.2609, 70.3093], + [-111.8088, 70.3521], + [-112.144, 70.4939], + [-112.9259, 70.5654], + [-113.2071, 70.6479], + [-113.9884, 70.7162], + [-114.1831, 70.6678], + [-115.5809, 70.5801], + [-116.2334, 70.6397], + [-117.5854, 70.6064], + [-118.1868, 70.8394], + [-118.3865, 71.0222], + [-117.798, 71.1704], + [-117.4749, 71.1855], + [-115.9039, 71.3935], + [-116.1849, 71.5003], + [-117.5513, 71.3742], + [-118.3088, 71.4322], + [-118.0763, 71.665], + [-119.0509, 71.6268], + [-119.0543, 71.9353], + [-118.6782, 72.1423], + [-118.1278, 72.2272], + [-118.5934, 72.4287], + [-118.1898, 72.6354], + [-117.8673, 72.7015], + [-117.3693, 72.9178], + [-115.5704, 73.2018], + [-114.5843, 73.3846], + [-114.1966, 73.3081] + ] + ], + [ + [ + [-104.5932, 73.3132], + [-105.2025, 72.9445], + [-105.4857, 72.9558], + [-106.1207, 73.2927], + [-107.0393, 73.4844], + [-106.5996, 73.7106], + [-105.1671, 73.7567], + [-104.5008, 73.5672], + [-104.5932, 73.3132] + ] + ], + [ + [ + [-80.3342, 73.7589], + [-79.4503, 73.6353], + [-78.1385, 73.6689], + [-77.2135, 73.5108], + [-76.7572, 73.3206], + [-76.5215, 73.1292], + [-76.2716, 73.1021], + [-76.319, 72.8167], + [-78.1709, 72.8986], + [-79.1754, 72.7546], + [-79.9486, 72.8475], + [-80.1761, 73.0456], + [-80.1638, 73.2334], + [-80.795, 73.2853], + [-80.9034, 73.6074], + [-80.8058, 73.7204], + [-80.3342, 73.7589] + ] + ], + [ + [ + [-86.5584, 73.8553], + [-85.1057, 73.812], + [-84.952, 73.6677], + [-85.5772, 73.5124], + [-86.0303, 73.3024], + [-86.6986, 72.8161], + [-86.6802, 72.6462], + [-86.2534, 72.3946], + [-86.4604, 72.2034], + [-86.4082, 72.0058], + [-86.1276, 71.7943], + [-85.4969, 71.5144], + [-84.9597, 71.4288], + [-84.5283, 71.4731], + [-84.8916, 71.633], + [-85.2579, 71.6684], + [-85.7473, 71.9486], + [-85.5009, 72.2144], + [-85.0358, 72.2547], + [-85.7025, 72.6347], + [-85.4636, 73.1119], + [-84.8367, 73.3891], + [-84.0075, 73.505], + [-82.8311, 73.7367], + [-81.5284, 73.7162], + [-81.2291, 73.5397], + [-81.1335, 73.2471], + [-80.6428, 73.1698], + [-80.6403, 72.9279], + [-80.2689, 72.7252], + [-80.5585, 72.6276], + [-80.5124, 72.3815], + [-80.8316, 72.2607], + [-80.7594, 71.9836], + [-80.3967, 72.0501], + [-80.4829, 72.1807], + [-80.049, 72.3979], + [-79.2834, 72.3944], + [-78.9433, 72.1959], + [-78.5696, 72.3557], + [-78.5351, 72.5146], + [-77.9771, 72.6984], + [-77.601, 72.7558], + [-76.8891, 72.7435], + [-76.652, 72.6387], + [-75.7351, 72.5826], + [-75.1984, 72.4976], + [-74.9417, 72.2574], + [-75.0632, 72.1282], + [-74.2368, 72.0761], + [-74.2627, 71.8198], + [-73.5964, 71.7639], + [-73.6879, 71.5932], + [-73.2539, 71.33], + [-72.4726, 71.6473], + [-71.5819, 71.5151], + [-71.1171, 71.2705], + [-71.445, 71.0735], + [-72.0451, 71.0848], + [-72.3563, 70.8787], + [-72.1642, 70.8304], + [-72.3373, 70.7578], + [-71.9531, 70.7913], + [-71.3228, 70.8872], + [-71.1509, 71.0377], + [-70.7872, 71.1146], + [-70.5164, 70.9371], + [-70.6174, 70.7299], + [-69.915, 70.8799], + [-69.5903, 70.7734], + [-68.3623, 70.5843], + [-68.4586, 70.373], + [-69.4702, 70.2481], + [-68.6436, 70.147], + [-68.3369, 70.0688], + [-68.157, 70.3183], + [-67.8085, 70.2637], + [-67.2495, 69.9634], + [-67.1155, 69.7287], + [-68.0131, 69.7761], + [-68.5875, 69.591], + [-68.0051, 69.462], + [-67.2276, 69.4643], + [-66.788, 69.34], + [-66.6688, 69.1846], + [-67.678, 69.1772], + [-67.7355, 69.0401], + [-68.043, 68.9722], + [-68.1332, 68.8372], + [-68.5472, 68.7531], + [-68.3605, 68.63], + [-67.9312, 68.5282], + [-67.6641, 68.5647], + [-67.064, 68.4749], + [-66.766, 68.2421], + [-66.3135, 68.1291], + [-66.2141, 68.0051], + [-65.1815, 67.9672], + [-64.7196, 67.9852], + [-64.607, 67.8318], + [-64.2897, 67.7294], + [-63.8885, 67.2416], + [-63.4121, 67.2177], + [-63.2504, 67.1323], + [-63.3491, 66.8907], + [-62.905, 66.973], + [-62.284, 66.9461], + [-62.0041, 67.0368], + [-61.6056, 66.8716], + [-61.2705, 66.6048], + [-61.5763, 66.5505], + [-61.4923, 66.3674], + [-61.9346, 66.2895], + [-62.2196, 66.3972], + [-62.5385, 66.2274], + [-61.9542, 66.0198], + [-62.4289, 65.9787], + [-62.3064, 65.8289], + [-62.5942, 65.664], + [-63.1601, 65.6492], + [-63.4975, 65.3708], + [-63.4052, 65.0328], + [-63.6551, 64.9184], + [-63.8851, 65.0861], + [-64.1785, 65.1767], + [-64.9021, 65.282], + [-65.1147, 65.5043], + [-65.5031, 65.7668], + [-65.3533, 65.9141], + [-65.8994, 65.9537], + [-66.4718, 66.3441], + [-66.7307, 66.3736], + [-66.9613, 66.5408], + [-67.3032, 66.2807], + [-67.5748, 66.4192], + [-67.7529, 66.2547], + [-67.2936, 66.1113], + [-67.1701, 65.9326], + [-67.81, 65.8784], + [-67.927, 65.6201], + [-67.4549, 65.6789], + [-67.4331, 65.5036], + [-67.0603, 65.4534], + [-67.1688, 65.2685], + [-66.9675, 65.0866], + [-66.6494, 64.9699], + [-65.824, 64.8828], + [-65.5828, 64.7568], + [-65.7261, 64.5152], + [-65.081, 64.4792], + [-65.3074, 64.1934], + [-65.0767, 64.0834], + [-64.663, 64.0278], + [-64.8953, 63.8974], + [-64.6761, 63.7403], + [-64.4844, 63.2878], + [-64.7717, 63.3288], + [-64.9317, 63.5714], + [-65.0993, 63.5495], + [-64.765, 63.0551], + [-64.8871, 62.8694], + [-65.2037, 62.8956], + [-64.9625, 62.6627], + [-65.1696, 62.5684], + [-65.6659, 62.9123], + [-66.5192, 63.0773], + [-66.6979, 63.0385], + [-67.0124, 63.2878], + [-67.5007, 63.4428], + [-67.8689, 63.4637], + [-68.4962, 63.7403], + [-68.9282, 63.7607], + [-68.7603, 63.5548], + [-68.4034, 63.3759], + [-68.1469, 63.1606], + [-67.7987, 63.0889], + [-67.198, 62.8769], + [-66.982, 62.7031], + [-66.5515, 62.5607], + [-66.302, 62.3511], + [-65.93, 62.1978], + [-66.1285, 62.0886], + [-65.9504, 61.8969], + [-66.2745, 61.8581], + [-66.7735, 62.0172], + [-67.4006, 62.1498], + [-68.5537, 62.2497], + [-69.0272, 62.3798], + [-69.4451, 62.5535], + [-69.6269, 62.791], + [-70.2403, 62.7541], + [-70.4932, 62.8666], + [-70.8297, 62.8968], + [-71.0289, 63.0786], + [-71.3726, 63.0485], + [-71.6885, 63.1738], + [-71.7665, 63.2841], + [-71.5656, 63.6908], + [-72.3176, 63.6789], + [-72.3199, 63.7807], + [-72.5981, 63.8671], + [-73.1301, 64.2917], + [-73.3863, 64.2815], + [-73.4523, 64.5915], + [-73.8916, 64.5542], + [-74.0839, 64.6409], + [-74.5507, 64.631], + [-74.7131, 64.382], + [-75.2382, 64.4551], + [-75.7069, 64.5793], + [-75.8621, 64.3776], + [-76.7279, 64.2961], + [-77.7578, 64.343], + [-78.1848, 64.5867], + [-78.0731, 64.8159], + [-78.144, 64.9573], + [-77.9636, 65.0519], + [-77.3128, 65.2001], + [-77.5141, 65.3261], + [-77.4357, 65.4596], + [-76.6769, 65.4111], + [-75.7573, 65.2138], + [-75.7154, 65.3088], + [-75.2154, 65.2541], + [-74.8722, 65.3981], + [-74.5029, 65.3435], + [-74.1793, 65.5285], + [-73.496, 65.494], + [-73.7178, 65.7746], + [-74.0123, 65.8551], + [-74.4204, 66.0834], + [-74.3454, 66.2258], + [-73.4556, 66.5506], + [-73.0055, 66.7792], + [-72.8035, 67.043], + [-72.3509, 67.1195], + [-72.4361, 67.5315], + [-72.8574, 67.8605], + [-72.9884, 68.1733], + [-73.2003, 68.2753], + [-73.728, 68.3137], + [-73.9474, 68.4135], + [-73.8852, 68.5549], + [-74.3725, 68.5438], + [-74.8789, 68.8255], + [-75.4967, 68.9342], + [-76.3256, 68.6985], + [-76.6732, 68.7658], + [-76.4225, 69.0599], + [-75.9899, 69.0109], + [-75.5717, 69.157], + [-75.6874, 69.2871], + [-76.6296, 69.546], + [-77.0384, 69.6058], + [-76.8733, 69.8187], + [-77.4909, 69.8627], + [-77.6826, 70.1837], + [-77.8916, 70.2637], + [-78.3891, 70.2164], + [-78.7447, 70.4561], + [-79.1562, 70.4971], + [-79.5651, 70.3902], + [-78.7669, 70.1914], + [-78.6651, 70.0138], + [-78.8881, 69.8938], + [-79.6809, 69.8486], + [-79.8352, 69.9534], + [-81.0715, 70.0993], + [-81.1932, 70.0008], + [-81.6, 69.9774], + [-82.1258, 69.8181], + [-82.4415, 69.8441], + [-83.0516, 70.0105], + [-83.6728, 69.9464], + [-84.6948, 70.0066], + [-84.952, 70.0666], + [-85.7829, 69.9952], + [-86.2697, 70.1135], + [-87.0314, 70.4685], + [-87.425, 70.3153], + [-87.8525, 70.238], + [-88.1413, 70.3959], + [-88.6941, 70.465], + [-89.4491, 70.908], + [-89.1263, 71.0316], + [-88.6424, 71.0546], + [-88.3249, 70.9584], + [-87.3586, 70.9496], + [-87.2283, 71.0111], + [-88.067, 71.2128], + [-89.8134, 71.329], + [-89.963, 71.4151], + [-89.9766, 71.6579], + [-89.7979, 71.7646], + [-90.1047, 71.9163], + [-89.7617, 72.1256], + [-89.963, 72.2574], + [-89.7532, 72.6108], + [-89.3209, 72.8823], + [-89.3119, 73.0463], + [-89.0512, 73.2517], + [-88.4138, 73.5255], + [-87.7645, 73.7167], + [-86.5584, 73.8553] + ] + ], + [ + [ + [-99.831, 73.8969], + [-99.2184, 73.7394], + [-98.0965, 73.8183], + [-97.5705, 73.8937], + [-96.9564, 73.7373], + [-96.9947, 73.6259], + [-97.6683, 73.4863], + [-97.2951, 73.3664], + [-97.8283, 73.2783], + [-98.3486, 73.0436], + [-97.6607, 73.0367], + [-96.932, 72.6757], + [-96.4523, 72.6422], + [-96.3036, 72.4267], + [-96.7185, 72.2995], + [-96.4848, 72.1285], + [-96.5597, 71.8398], + [-96.9616, 71.8068], + [-97.4612, 71.6174], + [-97.9698, 71.6615], + [-98.2152, 71.4094], + [-98.5415, 71.2922], + [-99.2351, 71.3496], + [-99.8644, 71.8594], + [-100.0355, 71.8676], + [-100.6365, 72.1865], + [-101.8401, 72.3265], + [-101.9665, 72.4971], + [-102.6142, 72.6613], + [-102.756, 72.8123], + [-102.4848, 73.0412], + [-101.7628, 73.019], + [-101.2962, 72.7186], + [-100.4312, 72.7404], + [-100.1112, 73.0327], + [-100.4674, 73.2033], + [-101.289, 73.3601], + [-101.5616, 73.4686], + [-100.8858, 73.8321], + [-99.831, 73.8969] + ] + ], + [ + [ + [-97.6432, 74.0722], + [-98.1434, 73.8784], + [-98.8262, 73.8321], + [-99.3897, 73.9237], + [-98.7525, 74.0336], + [-97.7252, 74.1216], + [-97.6432, 74.0722] + ] + ], + [ + [ + [-92.7471, 74.0851], + [-92.1138, 73.9843], + [-91.8145, 74.0288], + [-90.9939, 74.0059], + [-90.1957, 73.9022], + [-91.1758, 73.3542], + [-91.8577, 72.848], + [-92.3849, 72.7099], + [-93.4032, 72.7943], + [-93.7932, 72.6931], + [-93.4642, 72.4634], + [-93.811, 72.3163], + [-94.0878, 72.0635], + [-95.1453, 71.9659], + [-95.2118, 72.1967], + [-95.1357, 72.4634], + [-95.5927, 72.6994], + [-95.7192, 73.0115], + [-95.582, 73.1623], + [-95.6129, 73.5964], + [-95.2486, 74.0099], + [-94.3739, 74.1323], + [-93.2726, 74.178], + [-92.7471, 74.0851] + ] + ], + [ + [ + [-121.5808, 74.5559], + [-120.1566, 74.279], + [-119.6622, 74.225], + [-118.7254, 74.2208], + [-118.066, 74.2807], + [-117.4165, 74.2325], + [-116.867, 74.0876], + [-115.3236, 73.5087], + [-115.7538, 73.3575], + [-116.4591, 73.2612], + [-117.2155, 73.0661], + [-119.1639, 72.6298], + [-119.3402, 72.3467], + [-119.7728, 72.2296], + [-120.1967, 72.217], + [-120.434, 71.9643], + [-120.3834, 71.7015], + [-120.6352, 71.4914], + [-121.4232, 71.3803], + [-121.7006, 71.4681], + [-122.1561, 71.2612], + [-123.0999, 71.0846], + [-123.4357, 71.2486], + [-123.6235, 71.4622], + [-124.0646, 71.7004], + [-125.2323, 71.9413], + [-125.7904, 71.9492], + [-125.7521, 72.1477], + [-124.9455, 72.703], + [-125.0384, 72.8325], + [-124.4904, 72.9251], + [-124.8599, 73.0903], + [-124.4453, 73.4193], + [-124.0679, 73.5397], + [-123.7738, 73.7656], + [-124.1453, 73.8511], + [-124.7557, 74.3486], + [-123.3035, 74.4494], + [-122.6232, 74.4631], + [-121.5808, 74.5559] + ] + ], + [ + [ + [-103.7452, 75.2879], + [-103.5858, 75.1772], + [-104.2295, 75.0189], + [-104.9065, 75.1241], + [-104.4032, 75.4326], + [-103.7452, 75.2879] + ] + ], + [ + [ + [-94.3939, 75.6042], + [-93.4994, 75.268], + [-93.409, 74.8891], + [-93.6077, 74.6542], + [-94.7242, 74.6318], + [-95.3054, 74.8055], + [-95.8976, 74.8259], + [-96.4038, 74.9369], + [-96.6046, 75.0648], + [-95.7915, 75.501], + [-94.8995, 75.6447], + [-94.3939, 75.6042] + ] + ], + [ + [ + [-96.2869, 75.6503], + [-96.2357, 75.4661], + [-96.9596, 75.3847], + [-97.0549, 75.4992], + [-96.2869, 75.6503] + ] + ], + [ + [ + [-102.0707, 75.9722], + [-102.5045, 75.7991], + [-103.0449, 75.9062], + [-102.0707, 75.9722] + ] + ], + [ + [ + [-94.3165, 75.7643], + [-94.6578, 75.7465], + [-94.9105, 75.9374], + [-94.4575, 75.9659], + [-94.3165, 75.7643] + ] + ], + [ + [ + [-102.328, 76.0654], + [-102.3559, 76.0131], + [-103.6916, 75.889], + [-103.7255, 75.9783], + [-102.328, 76.0654] + ] + ], + [ + [ + [-117.6597, 76.1259], + [-117.4625, 76.0883], + [-117.9325, 75.7398], + [-118.6139, 75.5037], + [-119.409, 75.6016], + [-118.6212, 75.9221], + [-117.6597, 76.1259] + ] + ], + [ + [ + [-79.0111, 76.1289], + [-78.7999, 76.0849], + [-79.2792, 75.8765], + [-79.7176, 75.8825], + [-79.0111, 76.1289] + ] + ], + [ + [ + [-102.6418, 76.2711], + [-102.8376, 76.0806], + [-103.8114, 76.0336], + [-104.3677, 76.0764], + [-104.312, 76.2124], + [-102.7266, 76.3156], + [-102.6418, 76.2711] + ] + ], + [ + [ + [-103.9356, 76.622], + [-103.0226, 76.4156], + [-103.3363, 76.3317], + [-104.3777, 76.3249], + [-104.652, 76.602], + [-103.9356, 76.622] + ] + ], + [ + [ + [-98.408, 76.6677], + [-97.6651, 76.4862], + [-97.7886, 76.3223], + [-97.5004, 76.1573], + [-97.5702, 75.8652], + [-97.4249, 75.5197], + [-97.9237, 75.5196], + [-98.1167, 75.298], + [-97.6849, 75.1702], + [-98.035, 75.0263], + [-99.6454, 74.976], + [-100.3302, 75.0141], + [-100.2523, 75.263], + [-100.6758, 75.3365], + [-100.2825, 75.5272], + [-100.2233, 75.6667], + [-102.0638, 75.5477], + [-102.7761, 75.545], + [-102.2623, 75.8698], + [-101.5895, 75.9245], + [-102.1028, 76.2208], + [-102.0351, 76.4128], + [-101.4134, 76.4377], + [-101.1277, 76.2603], + [-100.4787, 76.2338], + [-100.963, 76.4803], + [-100.2696, 76.6496], + [-98.9047, 76.6244], + [-98.408, 76.6677] + ] + ], + [ + [ + [-89.7125, 76.5209], + [-90.0648, 76.4862], + [-90.568, 76.7156], + [-89.9822, 76.8424], + [-89.6964, 76.7535], + [-89.7125, 76.5209] + ] + ], + [ + [ + [-108.6674, 76.8249], + [-108.6159, 76.4235], + [-108.0809, 76.2869], + [-108.4576, 76.1025], + [-107.8576, 76.0659], + [-107.0461, 75.889], + [-106.6068, 76.0616], + [-105.7599, 75.9902], + [-105.5118, 75.8906], + [-105.3905, 75.6597], + [-105.6893, 75.5272], + [-105.6614, 75.3552], + [-106.0089, 75.0566], + [-106.7602, 75.003], + [-107.0052, 74.9238], + [-107.6863, 74.9822], + [-108.4166, 74.9171], + [-108.8242, 75.0715], + [-109.5819, 74.8581], + [-110.344, 74.7966], + [-111.001, 74.6164], + [-112.4374, 74.4135], + [-113.0238, 74.3959], + [-113.693, 74.4445], + [-114.4398, 74.6837], + [-112.7978, 74.9851], + [-111.5555, 75.0126], + [-111.0279, 75.1772], + [-113.8866, 75.0582], + [-113.7843, 75.3397], + [-114.0465, 75.3664], + [-114.4408, 75.0679], + [-114.9585, 74.9705], + [-115.4058, 75.1029], + [-115.7154, 74.9704], + [-117.5101, 75.2011], + [-117.6749, 75.2932], + [-117.2022, 75.4808], + [-116.0419, 75.4848], + [-115.5897, 75.588], + [-117.1983, 75.5755], + [-116.7081, 75.8996], + [-116.5262, 76.1601], + [-115.8411, 76.185], + [-115.8749, 76.3636], + [-115.5123, 76.4562], + [-114.2059, 76.471], + [-113.963, 76.1906], + [-112.9942, 76.2733], + [-112.4325, 76.1708], + [-112.3646, 76.0336], + [-111.8555, 75.9535], + [-111.3614, 75.7152], + [-111.2743, 75.5272], + [-110.5136, 75.5733], + [-108.8964, 75.4924], + [-109.102, 75.7501], + [-110.0546, 75.8965], + [-109.4333, 76.0036], + [-109.5422, 76.1894], + [-110.3836, 76.3005], + [-110.3972, 76.3967], + [-109.5543, 76.6301], + [-109.1844, 76.8219], + [-108.6674, 76.8249] + ] + ], + [ + [ + [-113.734, 76.8834], + [-113.4535, 76.7735], + [-114.4219, 76.7297], + [-114.4346, 76.8824], + [-113.734, 76.8834] + ] + ], + [ + [ + [-95.2388, 77.0137], + [-93.7009, 76.921], + [-92.9503, 76.6301], + [-92.693, 76.596], + [-91.4411, 76.6937], + [-90.5717, 76.564], + [-90.4478, 76.4113], + [-89.2976, 76.3005], + [-89.3801, 76.1845], + [-91.2436, 76.164], + [-90.1882, 76.0678], + [-89.1977, 75.7963], + [-89.2572, 75.6358], + [-88.5799, 75.6585], + [-88.2454, 75.4784], + [-87.7508, 75.5809], + [-87.1115, 75.5948], + [-86.7778, 75.476], + [-86.1964, 75.4154], + [-86.0104, 75.5359], + [-85.2991, 75.5749], + [-85.0449, 75.6558], + [-84.2896, 75.7133], + [-83.9181, 75.8145], + [-83.089, 75.7403], + [-82.331, 75.8436], + [-81.1131, 75.7791], + [-79.501, 75.3919], + [-79.6285, 75.1802], + [-80.4434, 75.0399], + [-80.197, 74.958], + [-79.592, 75.0206], + [-79.3952, 74.8763], + [-80.2454, 74.7587], + [-80.1617, 74.6238], + [-80.5419, 74.5635], + [-81.3202, 74.5618], + [-81.7887, 74.4584], + [-83.4935, 74.5778], + [-84.2583, 74.5065], + [-87.6436, 74.4583], + [-88.5178, 74.5012], + [-88.4118, 74.759], + [-89.0837, 74.7197], + [-89.1474, 74.6079], + [-89.9486, 74.5328], + [-90.7013, 74.6461], + [-90.8941, 74.7609], + [-91.6208, 74.7116], + [-92.0185, 74.7775], + [-92.0611, 74.9628], + [-92.504, 75.218], + [-92.3, 75.5125], + [-92.0044, 75.6016], + [-92.1846, 75.8949], + [-93.1283, 76.3702], + [-93.5911, 76.2997], + [-94.8481, 76.2692], + [-95.8233, 76.3991], + [-96.4996, 76.6957], + [-96.3144, 76.8083], + [-96.8511, 76.9296], + [-95.7707, 77.0767], + [-95.2388, 77.0137] + ] + ], + [ + [ + [-116.1256, 77.4724], + [-115.4042, 77.3184], + [-116.2472, 77.1959], + [-116.2217, 77.0417], + [-115.8314, 76.9728], + [-116.0402, 76.8283], + [-115.8928, 76.6984], + [-116.3248, 76.5817], + [-117.0748, 76.5261], + [-116.9343, 76.3558], + [-117.3524, 76.2596], + [-118.007, 76.4025], + [-118.6464, 76.4324], + [-118.901, 76.1723], + [-119.4917, 76.0369], + [-119.8629, 75.8591], + [-120.489, 75.8471], + [-120.7174, 76.0268], + [-121.4368, 75.9443], + [-121.8471, 76.0452], + [-122.4259, 75.9328], + [-122.4926, 76.1435], + [-122.8617, 76.1824], + [-122.3806, 76.4085], + [-121.5536, 76.437], + [-121.2043, 76.6782], + [-120.368, 76.8145], + [-120.0911, 77.0056], + [-118.8205, 77.361], + [-117.8524, 77.3904], + [-117.2311, 77.2857], + [-116.9136, 77.4743], + [-116.1256, 77.4724] + ] + ], + [ + [ + [-90.3041, 77.6294], + [-89.7159, 77.4587], + [-89.6571, 77.3242], + [-90.0939, 77.2041], + [-90.9245, 77.307], + [-91.1996, 77.4079], + [-91.1687, 77.6175], + [-90.3041, 77.6294] + ] + ], + [ + [ + [-105.0159, 77.4146], + [-104.4213, 77.3079], + [-104.754, 77.1112], + [-105.5363, 77.3044], + [-105.765, 77.4662], + [-105.503, 77.7211], + [-104.9961, 77.5371], + [-105.0159, 77.4146] + ] + ], + [ + [ + [-95.4032, 77.7815], + [-93.608, 77.7815], + [-93.2079, 77.723], + [-93.4784, 77.4881], + [-95.9876, 77.4791], + [-96.2355, 77.7055], + [-95.4032, 77.7815] + ] + ], + [ + [ + [-100.932, 77.7445], + [-101.7906, 77.6794], + [-102.4487, 77.7331], + [-102.3982, 77.8889], + [-101.6452, 77.8903], + [-100.932, 77.7445] + ] + ], + [ + [ + [-114.3169, 78.0142], + [-113.7373, 77.9017], + [-113.7225, 77.7692], + [-114.3007, 77.7133], + [-115.1182, 77.9597], + [-114.3169, 78.0142] + ] + ], + [ + [ + [-109.6037, 78.0739], + [-109.6861, 77.9714], + [-110.8415, 77.8698], + [-110.1295, 77.7815], + [-110.2354, 77.5042], + [-112.1092, 77.3258], + [-113.1996, 77.5277], + [-113.2413, 77.905], + [-112.2709, 78.0153], + [-110.7117, 78.1038], + [-109.6037, 78.0739] + ] + ], + [ + [ + [-110.3972, 78.7535], + [-109.3467, 78.5353], + [-109.3389, 78.3547], + [-109.8232, 78.2954], + [-110.8403, 78.3152], + [-111.7785, 78.2702], + [-112.1755, 78.3774], + [-113.0615, 78.2744], + [-113.2142, 78.4066], + [-112.1501, 78.557], + [-111.816, 78.5489], + [-110.7147, 78.7531], + [-110.3972, 78.7535] + ] + ], + [ + [ + [-96.8942, 78.7029], + [-96.2735, 78.5351], + [-95.6998, 78.5261], + [-94.8279, 78.3637], + [-95.3699, 78.2468], + [-94.8893, 78.1093], + [-95.0607, 77.9726], + [-96.3655, 77.863], + [-97.7423, 78.0423], + [-96.8693, 78.1372], + [-97.7668, 78.247], + [-98.3597, 78.4517], + [-98.3559, 78.7739], + [-97.451, 78.7971], + [-96.8942, 78.7029] + ] + ], + [ + [ + [-103.657, 79.3413], + [-103.1209, 79.2907], + [-102.6072, 79.0765], + [-101.6484, 79.081], + [-99.5579, 78.5987], + [-99.8027, 78.3085], + [-99.0445, 78.0819], + [-99.0172, 77.8938], + [-99.9386, 77.7829], + [-100.61, 77.864], + [-101.036, 78.1992], + [-102.1608, 78.2883], + [-102.7441, 78.3806], + [-103.9465, 78.2428], + [-104.8196, 78.3616], + [-105.0177, 78.5245], + [-104.641, 78.5834], + [-103.4972, 78.5065], + [-103.384, 78.7746], + [-105.6278, 79.165], + [-105.1568, 79.2999], + [-103.657, 79.3413] + ] + ], + [ + [ + [-99.4489, 80.1125], + [-98.8738, 80.0838], + [-98.6514, 79.7922], + [-99.3001, 79.7594], + [-100.1937, 80.0323], + [-99.4489, 80.1125] + ] + ], + [ + [ + [-92.7729, 81.3177], + [-91.8291, 81.1619], + [-91.7081, 81.038], + [-90.7098, 80.7033], + [-90.6392, 80.5685], + [-89.3249, 80.5368], + [-87.7006, 80.4126], + [-87.5756, 80.1796], + [-86.9713, 79.8816], + [-87.1887, 79.6278], + [-86.3091, 79.6481], + [-85.5638, 79.5798], + [-84.9186, 79.296], + [-85.5105, 79.1662], + [-86.5039, 79.0687], + [-86.6146, 78.9742], + [-87.8588, 78.6927], + [-88.0421, 78.4793], + [-88.5512, 78.4328], + [-88.77, 78.1855], + [-89.7135, 78.2261], + [-90.8841, 78.1446], + [-92.1163, 78.227], + [-92.9527, 78.4367], + [-92.6559, 78.6119], + [-93.3468, 78.6083], + [-94.2716, 78.9682], + [-93.433, 79.1565], + [-92.6273, 79.2454], + [-92.5804, 79.3848], + [-94.3884, 79.371], + [-94.9607, 79.2916], + [-95.646, 79.3943], + [-95.6115, 79.559], + [-96.5427, 79.8484], + [-96.773, 80.0727], + [-94.8457, 80.0454], + [-96.3216, 80.2616], + [-96.027, 80.5839], + [-94.3754, 80.6174], + [-94.6952, 80.7341], + [-95.4997, 80.808], + [-95.2318, 81.0153], + [-93.2172, 81.2145], + [-94.3959, 81.2617], + [-94.1885, 81.3666], + [-92.7729, 81.3177] + ] + ], + [ + [ + [-69.6875, 83.1165], + [-69.4834, 83.0456], + [-67.5968, 82.9712], + [-65.8516, 82.8424], + [-63.4471, 82.8267], + [-63.6515, 82.7178], + [-63.0655, 82.5373], + [-61.5789, 82.4889], + [-61.137, 82.3823], + [-61.3124, 82.1972], + [-62.2576, 82.0235], + [-64.3726, 81.725], + [-65.3612, 81.7344], + [-66.6541, 81.4999], + [-64.5461, 81.5504], + [-64.6921, 81.3908], + [-65.9889, 81.2283], + [-66.6721, 81.0399], + [-68.2794, 80.7599], + [-69.3742, 80.3974], + [-70.2108, 80.1882], + [-71.1424, 79.7895], + [-72.2317, 79.6626], + [-73.3863, 79.7547], + [-73.1278, 79.5592], + [-75.028, 79.3733], + [-76.8865, 79.3529], + [-75.9482, 79.2372], + [-74.4687, 79.2272], + [-75.087, 79.0318], + [-76.1335, 79.1241], + [-75.7443, 78.8972], + [-74.7738, 78.8348], + [-75.1077, 78.3755], + [-75.5819, 78.113], + [-76.8807, 77.905], + [-77.1538, 77.9487], + [-77.9807, 77.8167], + [-77.7368, 77.6008], + [-78.2891, 77.3775], + [-78.8198, 77.3837], + [-79.4324, 77.2386], + [-78.8675, 76.9244], + [-78.0909, 77.0228], + [-77.7162, 76.822], + [-77.7708, 76.6643], + [-78.1413, 76.5272], + [-80.6672, 76.164], + [-81.0952, 76.2186], + [-80.7725, 76.42], + [-81.9353, 76.495], + [-82.8009, 76.39], + [-84.235, 76.4468], + [-84.942, 76.4223], + [-85.2491, 76.3161], + [-86.2174, 76.375], + [-87.6299, 76.3356], + [-89.1702, 76.4242], + [-89.6567, 76.5654], + [-89.419, 76.6875], + [-89.5372, 76.8568], + [-88.2936, 77.1363], + [-87.4746, 77.1114], + [-87.1326, 77.2136], + [-87.6812, 77.3534], + [-87.6466, 77.4868], + [-88.1883, 77.6404], + [-88.181, 77.8015], + [-87.192, 77.9045], + [-86.2156, 77.7933], + [-85.7818, 77.5044], + [-85.4023, 77.4007], + [-84.617, 77.3837], + [-84.761, 77.5202], + [-85.2825, 77.6597], + [-85.1895, 77.7983], + [-86.2277, 78.0621], + [-87.4879, 78.1272], + [-87.4825, 78.452], + [-86.6099, 78.8093], + [-85.7573, 78.8317], + [-84.7521, 79.0389], + [-84.3296, 79.1924], + [-84.4866, 79.4127], + [-85.3216, 79.6797], + [-86.4499, 79.7542], + [-86.6431, 80.1532], + [-86.4377, 80.32], + [-85.3157, 80.2685], + [-83.7879, 80.2509], + [-82.1709, 79.8689], + [-82.1687, 80.0183], + [-83.1592, 80.3354], + [-80.3523, 80.4726], + [-79.9643, 80.6113], + [-78.5319, 80.7807], + [-79.1532, 81.103], + [-79.6145, 80.8276], + [-81.2171, 80.6277], + [-82.9131, 80.5394], + [-84.397, 80.51], + [-86.1178, 80.5368], + [-88.1011, 80.6808], + [-89.3864, 80.8789], + [-88.4132, 80.9988], + [-86.6992, 81.0054], + [-86.5219, 81.1252], + [-89.8262, 81.013], + [-90.3528, 81.1737], + [-90.3502, 81.376], + [-90.8336, 81.4643], + [-89.9148, 81.5964], + [-91.9492, 81.6323], + [-91.7085, 81.7344], + [-90.2429, 81.8998], + [-89.6448, 81.864], + [-88.6807, 82.0584], + [-86.9648, 82.0515], + [-86.848, 82.2206], + [-85.3506, 82.2903], + [-85.7619, 82.4675], + [-82.4008, 82.2472], + [-82.7116, 82.3815], + [-81.5762, 82.7912], + [-79.3405, 82.9755], + [-78.4206, 82.8723], + [-76.1355, 83.0537], + [-74.2, 83.0021], + [-73.6531, 82.9271], + [-72.5916, 83.1024], + [-69.6875, 83.1165] + ] + ] + ] + }, + "properties": { + "NAME": "Canada", + "NAME_LONG": "Canada", + "ADM0_A3": "CAN", + "ISO_A2": "CA", + "ISO_A3": "CAN", + "WB_A2": "CA", + "WB_A3": "CAN" + }, + "id": 39 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [9.5475, 47.5345], + [9.6495, 47.4097], + [9.5212, 47.2628], + [9.5812, 47.0569], + [10.1113, 46.8471], + [10.3679, 46.9955], + [10.4538, 46.8644], + [10.2954, 46.5511], + [10.1334, 46.414], + [9.6743, 46.2918], + [9.2632, 46.4851], + [9.2248, 46.2312], + [9.0021, 46.0393], + [8.6018, 46.1228], + [8.4272, 46.2514], + [8.4416, 46.4349], + [8.0773, 46.262], + [8.1106, 46.127], + [7.8312, 45.9145], + [7.5411, 45.9841], + [7.1837, 45.8805], + [7.0221, 45.9253], + [6.8539, 46.1226], + [6.7627, 46.4293], + [6.4829, 46.4486], + [6.2141, 46.3155], + [6.0642, 46.4711], + [6.1319, 46.5956], + [6.4292, 46.7608], + [6.4426, 46.9442], + [6.6654, 47.0213], + [7.0443, 47.3405], + [7.1037, 47.4963], + [7.3785, 47.4306], + [7.586, 47.5846], + [8.0872, 47.5674], + [8.5582, 47.8012], + [8.9062, 47.6518], + [9.2732, 47.6501], + [9.5475, 47.5345] + ] + ] + }, + "properties": { + "NAME": "Switzerland", + "NAME_LONG": "Switzerland", + "ADM0_A3": "CHE", + "ISO_A2": "CH", + "ISO_A3": "CHE", + "WB_A2": "CH", + "WB_A3": "CHE" + }, + "id": 40 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-68.3457, -54.9985], + [-68.5306, -55.1098], + [-68.2392, -55.2923], + [-68.2525, -55.5245], + [-68.9674, -55.4299], + [-68.8558, -55.2575], + [-69.2721, -55.2135], + [-69.6077, -55.3655], + [-70.0315, -55.1533], + [-69.886, -55.0636], + [-69.3197, -54.9933], + [-68.4412, -54.9397], + [-68.3457, -54.9985] + ] + ], + [ + [ + [-67.8058, -54.9138], + [-67.3018, -54.9289], + [-67.0619, -55.072], + [-67.2706, -55.3069], + [-67.6088, -55.1887], + [-68.1569, -55.1961], + [-68.2115, -54.908], + [-67.8058, -54.9138] + ] + ], + [ + [ + [-70.5054, -54.9508], + [-70.4081, -55.052], + [-70.7158, -55.1228], + [-70.9911, -55.0336], + [-70.5054, -54.9508] + ] + ], + [ + [ + [-69.5093, -54.9081], + [-69.8622, -55.039], + [-69.9283, -54.8976], + [-69.5093, -54.9081] + ] + ], + [ + [ + [-71.524, -53.986], + [-71.3015, -53.9915], + [-71.2145, -54.1501], + [-70.9901, -54.2658], + [-71.1139, -54.3798], + [-71.6998, -54.1662], + [-71.524, -53.986] + ] + ], + [ + [ + [-71.8664, -53.8865], + [-71.7273, -53.8986], + [-71.7134, -54.1477], + [-71.9369, -54.2459], + [-72.228, -54.0584], + [-72.2582, -53.9451], + [-71.8664, -53.8865] + ] + ], + [ + [ + [-70.4197, -53.8712], + [-70.3363, -54.0074], + [-70.5404, -54.2216], + [-70.8227, -54.1135], + [-70.8815, -53.8423], + [-70.4695, -53.5663], + [-70.4197, -53.8712] + ] + ], + [ + [ + [-73.0114, -53.4892], + [-72.6559, -53.5368], + [-72.187, -53.7765], + [-72.3285, -53.8396], + [-72.5433, -54.1], + [-72.817, -54.1266], + [-72.9337, -54.0584], + [-72.7431, -53.8936], + [-73.0665, -53.8313], + [-73.2041, -53.9894], + [-73.3625, -53.7133], + [-73.34, -53.5479], + [-73.0114, -53.4892] + ] + ], + [ + [ + [-74.6744, -52.7213], + [-74.4072, -52.9138], + [-73.8759, -53.0032], + [-73.4351, -53.1402], + [-73.2862, -53.2633], + [-73.5596, -53.3237], + [-73.6059, -53.2111], + [-73.8804, -53.0577], + [-74.2626, -53.0912], + [-74.6744, -52.7213] + ] + ], + [ + [ + [-68.6276, -52.6396], + [-68.6347, -53.7109], + [-68.6419, -54.783], + [-68.642, -54.7992], + [-68.6541, -54.8862], + [-69.067, -54.9488], + [-69.7949, -54.7877], + [-70.2397, -54.8578], + [-71.2897, -54.6764], + [-71.4774, -54.6764], + [-71.94, -54.5108], + [-71.725, -54.4055], + [-71.0109, -54.4487], + [-70.8603, -54.3178], + [-70.9327, -54.1135], + [-70.3225, -54.3253], + [-70.073, -54.2488], + [-69.5005, -54.3422], + [-70.0568, -54.087], + [-70.1853, -53.8113], + [-70.137, -53.7387], + [-69.6514, -53.6362], + [-69.3608, -53.5217], + [-69.3527, -53.3557], + [-69.6755, -53.3584], + [-70.2567, -53.461], + [-70.4735, -53.3093], + [-70.419, -53.0117], + [-70.2435, -53.0617], + [-70.0011, -52.8417], + [-69.7344, -52.7745], + [-69.591, -52.6419], + [-69.5839, -52.5099], + [-69.3742, -52.4703], + [-69.1402, -52.6838], + [-68.746, -52.5569], + [-68.6276, -52.6396] + ] + ], + [ + [ + [-74.8321, -52.2175], + [-74.5893, -52.2129], + [-74.5938, -52.3948], + [-74.8154, -52.3504], + [-74.8321, -52.2175] + ] + ], + [ + [ + [-74.2367, -52.1095], + [-73.951, -52.3071], + [-74.1873, -52.3674], + [-74.2367, -52.1095] + ] + ], + [ + [ + [-74.6777, -51.2014], + [-74.7987, -51.4323], + [-74.9628, -51.3294], + [-74.6777, -51.2014] + ] + ], + [ + [ + [-74.4755, -50.7997], + [-74.3856, -50.9811], + [-74.8932, -51.0492], + [-74.8787, -50.8863], + [-74.6255, -50.9249], + [-74.6431, -50.8478], + [-74.4755, -50.7997] + ] + ], + [ + [ + [-74.7424, -50.7072], + [-74.6605, -50.8239], + [-74.693, -50.8901], + [-74.9416, -50.8376], + [-74.7424, -50.7072] + ] + ], + [ + [ + [-74.4892, -50.4738], + [-74.3831, -50.456], + [-74.2424, -50.714], + [-74.3738, -50.8274], + [-74.5812, -50.6336], + [-74.4892, -50.4738] + ] + ], + [ + [ + [-75.2916, -50.0289], + [-74.9521, -50.1088], + [-74.8339, -50.2195], + [-75.0593, -50.2978], + [-75.4609, -50.35], + [-75.2916, -50.0289] + ] + ], + [ + [ + [-75.4852, -49.5647], + [-75.3845, -49.7482], + [-75.6268, -49.7563], + [-75.4852, -49.5647] + ] + ], + [ + [ + [-74.681, -48.7267], + [-74.5255, -48.7228], + [-74.4482, -49.3224], + [-74.5364, -49.508], + [-74.4205, -49.6896], + [-74.4855, -49.9531], + [-74.6606, -50.0506], + [-74.8677, -50.0162], + [-74.9615, -49.7853], + [-75.1339, -49.8583], + [-75.4673, -49.3327], + [-75.4272, -49.2795], + [-74.9302, -49.3142], + [-74.8045, -49.1039], + [-75.0515, -48.857], + [-74.985, -48.759], + [-74.681, -48.7267] + ] + ], + [ + [ + [-75.3792, -48.4558], + [-75.3399, -48.6148], + [-75.6261, -48.632], + [-75.6064, -48.4392], + [-75.3792, -48.4558] + ] + ], + [ + [ + [-74.7213, -48.2219], + [-74.5869, -48.4034], + [-74.621, -48.6918], + [-74.9471, -48.6196], + [-75.0331, -48.5045], + [-74.82, -48.4035], + [-74.7213, -48.2219] + ] + ], + [ + [ + [-75.1205, -48.1026], + [-74.8278, -48.1455], + [-74.8374, -48.3448], + [-75.0311, -48.4438], + [-75.1558, -48.3122], + [-75.1205, -48.1026] + ] + ], + [ + [ + [-75.3491, -48.0592], + [-75.0987, -48.4659], + [-75.555, -48.3786], + [-75.5853, -48.0857], + [-75.3491, -48.0592] + ] + ], + [ + [ + [-74.8314, -47.8108], + [-74.7274, -48.1059], + [-75.0335, -48.0312], + [-74.8314, -47.8108] + ] + ], + [ + [ + [-73.9757, -47.8598], + [-74.3185, -47.9812], + [-74.2452, -47.8064], + [-73.9757, -47.8598] + ] + ], + [ + [ + [-74.7211, -45.8098], + [-74.7663, -45.9889], + [-74.9197, -46.1042], + [-75.0743, -46.0938], + [-75.1129, -45.8857], + [-74.7211, -45.8098] + ] + ], + [ + [ + [-73.8456, -45.0012], + [-73.7146, -45.1142], + [-73.8301, -45.2431], + [-74.0074, -45.2321], + [-74.2069, -45.0427], + [-73.8456, -45.0012] + ] + ], + [ + [ + [-73.9178, -44.9565], + [-74.3569, -45.0115], + [-74.1883, -44.8691], + [-73.9178, -44.9565] + ] + ], + [ + [ + [-73.9268, -44.6288], + [-74.0118, -44.7165], + [-74.2797, -44.8038], + [-74.4005, -44.6261], + [-73.9268, -44.6288] + ] + ], + [ + [ + [-72.9339, -44.4509], + [-72.7212, -44.528], + [-72.8376, -44.7101], + [-73.1475, -44.9119], + [-73.4076, -44.8224], + [-73.4681, -44.6425], + [-73.2974, -44.6061], + [-73.2612, -44.4772], + [-73.002, -44.3613], + [-72.9339, -44.4509] + ] + ], + [ + [ + [-73.9546, -41.8107], + [-73.866, -41.8923], + [-73.691, -41.809], + [-73.537, -41.84], + [-73.4891, -42.1456], + [-73.374, -42.2574], + [-73.6815, -42.37], + [-73.8092, -42.6087], + [-73.5167, -42.7892], + [-73.6497, -42.8832], + [-73.4901, -43.1], + [-73.7214, -43.1417], + [-73.6817, -43.3811], + [-73.877, -43.422], + [-74.401, -43.2604], + [-74.2295, -43.0229], + [-74.1275, -42.6711], + [-74.1896, -42.4319], + [-74.1471, -42.2165], + [-74.0533, -42.1303], + [-74.0553, -41.945], + [-73.9546, -41.8107] + ] + ], + [ + [ + [-67.1939, -22.8222], + [-67.014, -23.0007], + [-67.3398, -24.0006], + [-67.3624, -24.0304], + [-68.2445, -24.3854], + [-68.5037, -24.6123], + [-68.5724, -24.7699], + [-68.3674, -25.1034], + [-68.516, -25.1836], + [-68.606, -25.437], + [-68.4985, -25.7549], + [-68.4199, -26.1793], + [-68.5752, -26.3035], + [-68.5702, -26.5506], + [-68.3201, -26.8701], + [-68.3305, -27.045], + [-68.518, -27.0769], + [-68.5859, -27.1628], + [-68.8011, -27.1128], + [-69.1243, -27.7344], + [-69.173, -27.9241], + [-69.3032, -27.9995], + [-69.4203, -28.2126], + [-69.653, -28.3979], + [-69.7409, -28.6406], + [-69.7358, -28.8124], + [-69.8039, -29.0987], + [-69.9109, -29.1432], + [-70.0426, -29.3631], + [-69.9291, -29.7183], + [-69.9222, -29.9396], + [-69.9756, -30.0586], + [-69.8497, -30.1266], + [-69.9028, -30.3127], + [-70.2171, -30.5151], + [-70.3195, -30.8008], + [-70.3398, -31.0417], + [-70.4798, -31.0967], + [-70.569, -31.3042], + [-70.5914, -31.5496], + [-70.4283, -31.8701], + [-70.2417, -31.9615], + [-70.3352, -32.14], + [-70.3218, -32.2801], + [-70.1725, -32.4649], + [-70.14, -32.7683], + [-70.0002, -32.8766], + [-70.1112, -33.0384], + [-70.1008, -33.1869], + [-69.9053, -33.2382], + [-69.7877, -33.3794], + [-69.8954, -33.6623], + [-69.9096, -33.9557], + [-69.8328, -34.2432], + [-70.0403, -34.277], + [-70.0587, -34.3958], + [-70.2278, -34.5853], + [-70.3537, -34.9533], + [-70.3866, -35.1667], + [-70.5429, -35.2093], + [-70.4082, -35.5062], + [-70.4202, -35.8684], + [-70.3803, -36.046], + [-70.7031, -36.2601], + [-70.7187, -36.4146], + [-70.8904, -36.4004], + [-71.0433, -36.4843], + [-71.1453, -36.6883], + [-71.1231, -37.4432], + [-71.185, -37.7061], + [-71.01, -38.0655], + [-70.9738, -38.4247], + [-70.8487, -38.5276], + [-70.8738, -38.6914], + [-71.228, -38.8088], + [-71.4158, -38.9353], + [-71.402, -39.236], + [-71.52, -39.615], + [-71.7187, -39.6234], + [-71.6248, -39.931], + [-71.6837, -40.099], + [-71.8238, -40.2101], + [-71.6785, -40.3402], + [-71.8042, -40.4264], + [-71.9556, -40.7204], + [-71.8514, -40.9383], + [-71.904, -41.3677], + [-71.8533, -41.5673], + [-71.926, -41.6229], + [-71.794, -41.8675], + [-71.7363, -42.0839], + [-72.1247, -42.2633], + [-72.0419, -42.491], + [-72.1484, -42.5926], + [-72.1127, -42.8638], + [-72.1485, -42.9987], + [-72.0098, -43.1204], + [-71.743, -43.1901], + [-71.9017, -43.322], + [-71.9373, -43.4569], + [-71.7238, -43.5948], + [-71.8192, -43.7581], + [-71.6599, -43.9263], + [-71.8587, -44.1078], + [-71.822, -44.4032], + [-71.2098, -44.4276], + [-71.1227, -44.5303], + [-71.336, -44.8016], + [-71.4971, -44.7429], + [-71.8545, -44.791], + [-72.0478, -44.7548], + [-72.0809, -44.8866], + [-71.5887, -44.9781], + [-71.3115, -45.2995], + [-71.5083, -45.4084], + [-71.5258, -45.519], + [-71.7651, -45.5724], + [-71.7985, -45.7399], + [-71.6123, -45.9705], + [-71.7702, -46.1126], + [-71.6872, -46.6901], + [-71.9341, -46.7995], + [-72.0098, -47.1982], + [-72.1706, -47.4075], + [-72.3287, -47.4265], + [-72.3444, -47.6023], + [-72.5439, -47.9148], + [-72.343, -48.0704], + [-72.3256, -48.2855], + [-72.5768, -48.4521], + [-72.5923, -48.7911], + [-72.7429, -48.9138], + [-73.0097, -48.9904], + [-73.1713, -49.1893], + [-73.145, -49.3037], + [-73.4579, -49.3077], + [-73.5866, -49.53], + [-73.4651, -49.76], + [-73.5727, -49.9324], + [-73.5306, -50.1408], + [-73.3229, -50.2684], + [-73.2619, -50.5566], + [-73.0961, -50.7706], + [-72.7784, -50.6196], + [-72.506, -50.6013], + [-72.3028, -50.6489], + [-72.2635, -50.8363], + [-72.3822, -51.1606], + [-72.3134, -51.298], + [-72.3515, -51.5835], + [-72.2811, -51.7015], + [-71.9585, -51.868], + [-71.9177, -51.9901], + [-69.9528, -52.0074], + [-69.4853, -52.1325], + [-69.2123, -52.138], + [-68.4484, -52.3469], + [-68.8985, -52.3035], + [-69.2347, -52.2031], + [-69.4825, -52.2905], + [-69.6724, -52.5309], + [-69.8466, -52.4865], + [-70.3218, -52.6381], + [-70.583, -52.672], + [-70.8121, -52.8214], + [-70.8169, -52.9924], + [-70.9927, -53.383], + [-70.9736, -53.756], + [-71.2287, -53.8747], + [-71.6446, -53.8237], + [-72.0535, -53.707], + [-72.2841, -53.5812], + [-72.4533, -53.4073], + [-72.2823, -53.2428], + [-71.835, -53.252], + [-71.2541, -53.0168], + [-71.1693, -52.8128], + [-71.5308, -52.8667], + [-71.9062, -53.0109], + [-72.0856, -53.1344], + [-72.4669, -53.2831], + [-72.5225, -53.5444], + [-73.1991, -53.2408], + [-72.891, -53.0568], + [-72.9604, -52.825], + [-72.6116, -52.7419], + [-72.5622, -52.8337], + [-72.1609, -52.6521], + [-71.8505, -52.6947], + [-71.5716, -52.5613], + [-72.3278, -52.5252], + [-72.4136, -52.6489], + [-72.6561, -52.5217], + [-72.7987, -52.6154], + [-72.7908, -52.7527], + [-73.0053, -52.8333], + [-72.9536, -53.0236], + [-73.3273, -53.0715], + [-73.2689, -52.6736], + [-73.6879, -52.5978], + [-73.5309, -52.457], + [-73.5806, -52.2084], + [-73.3339, -52.2187], + [-73.0869, -52.0825], + [-72.8945, -52.0571], + [-72.8028, -51.9374], + [-72.529, -51.9548], + [-72.4669, -51.7897], + [-72.9194, -51.8586], + [-73.1453, -51.94], + [-73.3162, -52.1661], + [-73.54, -52.0553], + [-73.6804, -51.7692], + [-73.9042, -51.6117], + [-73.9343, -51.3993], + [-73.7196, -51.3565], + [-73.7843, -51.2236], + [-74.1295, -51.1877], + [-74.2564, -50.9394], + [-74.1261, -50.7625], + [-74.5737, -50.0993], + [-74.2507, -50.081], + [-74.3223, -49.6325], + [-74.2149, -49.5231], + [-74.4241, -49.3712], + [-74.4005, -48.9748], + [-74.4535, -48.831], + [-74.3922, -48.5991], + [-74.1971, -48.4733], + [-74.3179, -48.2121], + [-74.4425, -48.1824], + [-74.6254, -48.0042], + [-74.4154, -47.9837], + [-73.8911, -48.0222], + [-73.5917, -48.1407], + [-73.7097, -47.7761], + [-73.9237, -47.8427], + [-74.0737, -47.773], + [-74.6284, -47.7678], + [-74.7362, -47.7045], + [-74.5289, -47.4223], + [-74.3247, -47.2189], + [-74.1391, -47.2223], + [-73.9576, -47.0603], + [-74.1186, -46.9881], + [-74.2668, -46.7817], + [-74.6509, -46.7883], + [-74.681, -46.8839], + [-75.0834, -46.6409], + [-75.4372, -46.6498], + [-75.3526, -46.9006], + [-75.5517, -46.9483], + [-75.707, -46.7866], + [-75.7047, -46.6393], + [-75.5171, -46.5543], + [-75.0907, -46.2161], + [-74.9581, -46.2153], + [-74.7134, -45.9845], + [-74.6909, -45.8416], + [-74.1894, -45.7936], + [-73.7698, -46.2346], + [-73.5802, -46.3102], + [-73.6606, -45.9757], + [-73.5548, -45.8776], + [-73.5173, -45.4604], + [-73.3277, -45.3409], + [-73.4607, -45.2663], + [-73.3044, -45.1448], + [-73.3483, -44.9578], + [-73.1171, -44.9483], + [-72.7277, -44.7586], + [-72.6868, -44.4885], + [-73.2777, -44.11], + [-72.9794, -43.7612], + [-72.973, -43.6214], + [-73.1113, -43.461], + [-73.0846, -43.3163], + [-72.9122, -43.2354], + [-72.9344, -43.0982], + [-72.7611, -43.009], + [-72.8422, -42.8381], + [-72.8238, -42.5042], + [-72.6798, -42.5042], + [-72.8097, -42.2433], + [-72.6199, -42.1847], + [-72.488, -42.0647], + [-72.7373, -42.0139], + [-72.8636, -41.9059], + [-72.6451, -41.7228], + [-72.7516, -41.5484], + [-72.9573, -41.4836], + [-73.1119, -41.5862], + [-73.0592, -41.6974], + [-73.2014, -41.7848], + [-73.515, -41.8036], + [-73.66, -41.7575], + [-73.7982, -41.5657], + [-73.9469, -40.9728], + [-73.8415, -40.6667], + [-73.7285, -40.5442], + [-73.7809, -40.4373], + [-73.6832, -39.9425], + [-73.4019, -39.8041], + [-73.4061, -39.6949], + [-73.2416, -39.4895], + [-73.2211, -39.3417], + [-73.2834, -39.0753], + [-73.5433, -38.4207], + [-73.4628, -38.0917], + [-73.5032, -37.9333], + [-73.6681, -37.7194], + [-73.6041, -37.5124], + [-73.6718, -37.3626], + [-73.6076, -37.1555], + [-73.4674, -37.2346], + [-73.2826, -37.214], + [-73.1733, -37.0763], + [-73.1597, -36.735], + [-73.002, -36.7138], + [-72.8323, -36.308], + [-72.7801, -35.9526], + [-72.598, -35.8102], + [-72.6466, -35.5666], + [-72.5297, -35.4904], + [-72.364, -35.2078], + [-72.2306, -35.1161], + [-72.1878, -34.8855], + [-72.0572, -34.6588], + [-72.0268, -34.1627], + [-71.8081, -33.777], + [-71.6877, -33.7209], + [-71.6408, -33.5006], + [-71.7203, -33.1676], + [-71.5682, -33.0019], + [-71.4459, -32.6428], + [-71.4125, -32.3696], + [-71.5439, -32.1933], + [-71.515, -31.7755], + [-71.6678, -31.1505], + [-71.6549, -30.976], + [-71.7134, -30.6149], + [-71.6392, -30.2522], + [-71.5176, -30.2786], + [-71.3826, -30.1477], + [-71.4125, -29.9918], + [-71.2866, -29.9103], + [-71.336, -29.525], + [-71.3072, -29.4212], + [-71.4943, -29.1926], + [-71.522, -28.9401], + [-71.3019, -28.6749], + [-71.3126, -28.5834], + [-71.1739, -28.3606], + [-71.1381, -27.946], + [-71.0387, -27.6664], + [-70.9124, -27.6218], + [-70.96, -27.1614], + [-70.7886, -26.9963], + [-70.8227, -26.887], + [-70.7325, -26.7493], + [-70.7067, -26.4929], + [-70.6424, -26.3153], + [-70.6307, -26.0095], + [-70.7104, -25.8354], + [-70.6514, -25.5408], + [-70.4448, -25.3449], + [-70.4727, -24.9753], + [-70.5764, -24.7317], + [-70.5828, -24.5248], + [-70.5003, -24.0974], + [-70.4985, -23.7846], + [-70.4053, -23.6508], + [-70.4131, -23.5113], + [-70.5851, -23.4236], + [-70.5622, -23.0598], + [-70.4508, -23.0971], + [-70.297, -22.9177], + [-70.2001, -22.0055], + [-70.152, -21.6648], + [-70.0587, -21.4334], + [-70.0801, -21.2333], + [-70.1644, -21.0405], + [-70.1275, -20.9353], + [-70.2056, -20.7394], + [-70.1921, -20.3668], + [-70.1233, -20.0722], + [-70.1512, -19.7194], + [-70.2877, -19.301], + [-70.2774, -19.109], + [-70.3566, -18.7734], + [-70.3036, -18.4454], + [-70.3947, -18.3377], + [-70.1342, -18.3189], + [-69.9703, -18.2506], + [-69.7831, -17.9816], + [-69.8576, -17.7342], + [-69.6839, -17.656], + [-69.5101, -17.5066], + [-69.4758, -17.6524], + [-69.3342, -17.8058], + [-69.3024, -17.9762], + [-69.1408, -18.0308], + [-69.0344, -18.4783], + [-69.0428, -18.6005], + [-68.9546, -18.857], + [-68.9896, -18.9465], + [-68.6633, -19.2736], + [-68.4932, -19.377], + [-68.4964, -19.4584], + [-68.6984, -19.7463], + [-68.5535, -19.8579], + [-68.5883, -20.0556], + [-68.7755, -20.0897], + [-68.6785, -20.3286], + [-68.6855, -20.5168], + [-68.4816, -20.643], + [-68.572, -20.8724], + [-68.4163, -20.9598], + [-68.2075, -21.2843], + [-68.1984, -21.5719], + [-68.1076, -21.7896], + [-68.0962, -21.954], + [-67.9902, -22.0576], + [-67.9453, -22.3542], + [-67.8587, -22.5668], + [-67.8763, -22.8336], + [-67.7714, -22.8887], + [-67.5471, -22.8925], + [-67.1939, -22.8222] + ] + ] + ] + }, + "properties": { + "NAME": "Chile", + "NAME_LONG": "Chile", + "ADM0_A3": "CHL", + "ISO_A2": "CL", + "ISO_A3": "CHL", + "WB_A2": "CL", + "WB_A3": "CHL" + }, + "id": 41 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [110.6851, 20.1533], + [110.7883, 20.0104], + [110.9346, 19.9951], + [111, 19.7217], + [110.8765, 19.5398], + [110.6983, 19.4169], + [110.5632, 19.0557], + [110.4656, 18.8819], + [110.4268, 18.6809], + [110.2708, 18.6682], + [110.1033, 18.5394], + [110.0526, 18.3902], + [109.7461, 18.3959], + [109.6773, 18.2451], + [109.568, 18.1932], + [109.44, 18.289], + [109.0007, 18.3672], + [108.695, 18.5048], + [108.6936, 18.7199], + [108.6152, 19.1016], + [108.6317, 19.2863], + [109.1565, 19.6496], + [109.1668, 19.8055], + [109.3037, 19.9217], + [109.465, 19.8341], + [109.527, 19.9514], + [109.719, 20.0106], + [110.0896, 19.9781], + [110.383, 20.081], + [110.5693, 20.0798], + [110.6851, 20.1533] + ] + ], + [ + [ + [121.9129, 31.4563], + [121.8514, 31.4392], + [121.3145, 31.6556], + [121.2641, 31.8411], + [121.6632, 31.6524], + [121.9801, 31.5403], + [121.9129, 31.4563] + ] + ], + [ + [ + [130.5308, 42.5305], + [130.243, 42.7434], + [130.239, 42.9022], + [130.1215, 42.9818], + [129.8798, 42.996], + [129.7613, 42.746], + [129.7033, 42.4424], + [129.2431, 42.3787], + [129.2112, 42.22], + [128.9638, 42.0885], + [128.5024, 41.9961], + [128.262, 42.0329], + [128.0346, 41.9937], + [128.04, 41.8796], + [128.303, 41.5834], + [128.1857, 41.4045], + [127.9442, 41.4709], + [127.6383, 41.4299], + [127.2691, 41.505], + [126.8871, 41.7849], + [126.6179, 41.6659], + [126.5013, 41.4344], + [126.2607, 41.1431], + [126.1474, 41.0923], + [126.0078, 40.8993], + [125.7609, 40.8857], + [125.3636, 40.6467], + [124.8955, 40.4836], + [124.37, 40.0983], + [124.2022, 39.8786], + [123.9857, 39.8102], + [123.6226, 39.8717], + [123.1743, 39.6658], + [123.0091, 39.6805], + [122.3963, 39.411], + [122.115, 39.2008], + [122.1275, 39.142], + [121.6548, 38.8579], + [121.3447, 38.8146], + [121.1531, 38.7276], + [121.0904, 38.8991], + [121.6741, 39.088], + [121.436, 39.5086], + [121.4573, 39.7485], + [121.5359, 39.8618], + [121.7744, 39.9208], + [122.0916, 40.2272], + [122.3018, 40.5023], + [122.0491, 40.7461], + [121.8511, 40.8323], + [121.575, 40.8415], + [121.3613, 40.9396], + [120.991, 40.8313], + [120.9402, 40.6912], + [120.6209, 40.4744], + [120.436, 40.1945], + [119.9503, 40.0565], + [119.912, 39.9981], + [119.5356, 39.8908], + [119.3396, 39.7156], + [119.262, 39.5351], + [119.3051, 39.433], + [118.9402, 39.1389], + [118.6194, 39.161], + [118.3443, 39.0307], + [118.0454, 39.219], + [117.8856, 39.2011], + [117.7183, 39.093], + [117.584, 38.8116], + [117.566, 38.6125], + [117.7161, 38.3785], + [118.0848, 38.1387], + [118.543, 38.0683], + [118.8401, 38.1526], + [118.9966, 37.9631], + [119.2431, 37.7695], + [119.0371, 37.7221], + [118.9767, 37.6109], + [118.9724, 37.2807], + [119.1455, 37.1789], + [119.4412, 37.1206], + [119.7706, 37.1518], + [119.8973, 37.2494], + [119.8589, 37.3602], + [120.0598, 37.4404], + [120.4634, 37.7477], + [120.738, 37.834], + [120.9258, 37.8193], + [121.138, 37.7012], + [121.1915, 37.5752], + [121.3817, 37.5661], + [121.4769, 37.468], + [122.1299, 37.4835], + [122.5491, 37.3109], + [122.4476, 37.1474], + [122.5254, 36.9445], + [122.3198, 36.8229], + [122.0396, 36.9846], + [121.5601, 36.7676], + [121.4089, 36.754], + [120.7506, 36.4592], + [120.6477, 36.3309], + [120.6968, 36.144], + [120.3535, 36.0408], + [120.3616, 36.1916], + [120.1053, 36.2009], + [120.1002, 36.0961], + [120.2428, 35.9736], + [119.8116, 35.6479], + [119.648, 35.5839], + [119.5515, 35.38], + [119.4239, 35.3135], + [119.358, 35.0971], + [119.2073, 35.0484], + [119.2019, 34.785], + [119.3467, 34.7808], + [119.641, 34.5505], + [119.94, 34.4579], + [120.2571, 34.3118], + [120.4071, 33.8598], + [120.6278, 33.478], + [120.7302, 33.2049], + [120.8958, 33.0136], + [120.8614, 32.7197], + [120.9112, 32.6301], + [121.3541, 32.4148], + [121.4434, 32.1143], + [121.6554, 32.0629], + [121.8219, 31.9525], + [121.9221, 31.7544], + [121.6756, 31.7236], + [121.2864, 31.8906], + [121.1151, 31.7963], + [121.1444, 31.6847], + [121.3203, 31.5048], + [121.7252, 31.2816], + [121.9774, 30.9149], + [121.9074, 30.8571], + [121.6311, 30.8366], + [121.4106, 30.7674], + [120.9778, 30.5433], + [120.9395, 30.4219], + [120.7344, 30.2322], + [120.8928, 30.1698], + [121.1497, 30.3258], + [121.3774, 30.3251], + [121.6778, 30.0006], + [121.9149, 29.9187], + [121.983, 29.8232], + [121.7041, 29.572], + [121.4583, 29.5252], + [121.4651, 29.4209], + [121.9158, 29.6409], + [121.9663, 29.6025], + [121.9059, 29.2846], + [121.8406, 29.1611], + [121.6148, 29.206], + [121.6817, 29.0268], + [121.6699, 28.8253], + [121.5101, 28.6571], + [121.6563, 28.3393], + [121.2368, 28.3061], + [120.8353, 27.956], + [120.6665, 27.6254], + [120.6768, 27.4946], + [120.5459, 27.4033], + [120.5178, 27.2016], + [120.3579, 27.0984], + [120.2374, 26.9272], + [120.1257, 26.9273], + [120.0797, 26.6461], + [119.5846, 26.7946], + [119.6751, 26.6188], + [119.6736, 26.2805], + [119.5664, 26.0502], + [119.6165, 25.8926], + [119.5584, 25.5638], + [119.1096, 25.4068], + [119.2887, 25.3254], + [119.2888, 25.1891], + [118.9873, 25.2222], + [118.8779, 25.0407], + [118.9973, 24.9534], + [118.7161, 24.8436], + [118.7468, 24.7207], + [118.5711, 24.569], + [118.131, 24.6201], + [118.0448, 24.576], + [117.9893, 24.3948], + [118.1265, 24.262], + [117.9893, 24.1931], + [117.8936, 24.028], + [117.5824, 23.8893], + [117.4635, 23.7883], + [117.2923, 23.7622], + [117.2636, 23.6554], + [117.0784, 23.5646], + [116.9176, 23.6379], + [116.8666, 23.4502], + [116.7313, 23.2577], + [116.5336, 23.1091], + [116.4947, 22.9394], + [116.2985, 22.9632], + [116.171, 22.8645], + [115.8099, 22.8083], + [115.584, 22.8803], + [115.5239, 22.7418], + [115.3735, 22.6942], + [115.2456, 22.8354], + [115.0655, 22.796], + [114.8658, 22.6017], + [114.7438, 22.6094], + [114.7167, 22.7908], + [114.2298, 22.5558], + [114.0824, 22.5294], + [113.8903, 22.4527], + [113.7444, 22.7612], + [113.6626, 22.7981], + [113.6121, 22.9947], + [113.3679, 22.8807], + [113.5992, 22.5752], + [113.5464, 22.4376], + [113.5877, 22.2379], + [113.4837, 22.1551], + [113.3027, 22.1833], + [113.2306, 22.0432], + [113.0286, 21.9611], + [112.826, 21.9661], + [112.608, 21.7751], + [112.4432, 21.8284], + [112.2449, 21.7065], + [112.1727, 21.8144], + [111.992, 21.7638], + [111.6904, 21.6038], + [111.6305, 21.5299], + [111.3013, 21.4993], + [111.2063, 21.532], + [110.8694, 21.3847], + [110.7905, 21.4038], + [110.6365, 21.2302], + [110.4815, 21.2172], + [110.1567, 20.986], + [110.1567, 20.8489], + [110.3862, 20.826], + [110.3375, 20.7258], + [110.5342, 20.4783], + [110.4, 20.3008], + [110.1275, 20.248], + [110.0155, 20.4184], + [109.8221, 20.5165], + [109.7459, 20.6298], + [109.7732, 20.8215], + [109.6612, 20.9276], + [109.6702, 21.1232], + [109.7732, 21.2154], + [109.918, 21.4894], + [109.5308, 21.4916], + [109.2146, 21.4174], + [109.1358, 21.603], + [108.7516, 21.6501], + [108.5714, 21.8128], + [108.4481, 21.6581], + [108.1353, 21.5819], + [107.9912, 21.4857], + [107.7448, 21.6575], + [107.6132, 21.6056], + [107.3482, 21.5994], + [107.1724, 21.7151], + [107.0211, 21.8923], + [106.7224, 22.007], + [106.6629, 22.2233], + [106.5269, 22.4278], + [106.5688, 22.5746], + [106.7355, 22.6954], + [106.6675, 22.8675], + [106.4878, 22.9254], + [106.3157, 22.8538], + [106.2024, 22.947], + [105.9992, 22.9754], + [105.8539, 22.9046], + [105.3323, 23.318], + [105.0611, 23.2325], + [104.7979, 23.0856], + [104.827, 22.9543], + [104.7282, 22.8391], + [104.5535, 22.836], + [104.3402, 22.6864], + [104.2133, 22.825], + [104.0238, 22.7192], + [103.9854, 22.5272], + [103.8668, 22.5754], + [103.6469, 22.799], + [103.4731, 22.5916], + [103.3096, 22.7879], + [103.142, 22.5378], + [102.9891, 22.4376], + [102.8452, 22.5852], + [102.4427, 22.7652], + [102.218, 22.4107], + [102.1187, 22.3975], + [102.0146, 22.4461], + [101.8178, 22.4063], + [101.6545, 22.4461], + [101.5182, 22.2282], + [101.6068, 21.9676], + [101.7515, 21.8064], + [101.7225, 21.3042], + [101.756, 21.1433], + [101.4951, 21.2428], + [101.2753, 21.1741], + [101.209, 21.2455], + [101.159, 21.5527], + [101.0687, 21.762], + [100.797, 21.6261], + [100.6217, 21.4691], + [100.4567, 21.455], + [100.3265, 21.5243], + [100.1871, 21.4279], + [100.09, 21.5289], + [100.0823, 21.6845], + [99.9503, 21.7212], + [99.9424, 22.0455], + [99.4386, 22.1242], + [99.1664, 22.1321], + [99.1664, 22.2046], + [99.3578, 22.4955], + [99.3079, 22.7196], + [99.5346, 22.9493], + [99.351, 23.1193], + [99.2166, 23.0574], + [99.0264, 23.1604], + [98.9107, 23.2976], + [98.8574, 23.6043], + [98.7779, 23.7693], + [98.6637, 23.7969], + [98.6633, 23.9695], + [98.5033, 24.1213], + [98.1815, 24.1187], + [97.89, 24.0226], + [97.6371, 23.8636], + [97.5165, 23.9428], + [97.7077, 24.1253], + [97.7184, 24.2777], + [97.6399, 24.4393], + [97.5196, 24.4308], + [97.5361, 24.745], + [97.6639, 24.8298], + [97.7375, 25.0905], + [98.1084, 25.3889], + [98.1502, 25.6131], + [98.3326, 25.567], + [98.4613, 25.7947], + [98.6924, 25.879], + [98.5455, 26.1056], + [98.7055, 26.1749], + [98.7492, 26.7714], + [98.6726, 27.1756], + [98.7042, 27.3042], + [98.6793, 27.5773], + [98.4, 27.6757], + [98.2947, 27.5366], + [98.1071, 27.9731], + [98.1187, 28.1408], + [97.8975, 28.3553], + [97.74, 28.3826], + [97.6996, 28.488], + [97.5277, 28.5295], + [97.4367, 28.2864], + [97.3235, 28.2175], + [97.1155, 28.3666], + [96.9658, 28.3305], + [96.598, 28.7099], + [96.4576, 28.9946], + [96.142, 29.3685], + [95.7448, 29.3404], + [95.5113, 29.1318], + [95.1915, 29.0968], + [94.7766, 29.1667], + [94.6304, 29.3195], + [94.2708, 29.0979], + [94.2502, 28.9331], + [94.0268, 28.8642], + [93.6255, 28.6724], + [93.4462, 28.6719], + [93.1554, 28.4949], + [93.0932, 28.3666], + [92.8503, 28.1919], + [92.6548, 28.1058], + [92.6285, 27.9158], + [92.3039, 27.7862], + [92.0697, 27.794], + [91.9751, 27.7266], + [91.6329, 27.7594], + [91.6217, 27.9507], + [91.2697, 28.0729], + [91.0926, 27.9717], + [90.6839, 28.0871], + [90.5877, 28.2333], + [90.2618, 28.3354], + [89.8629, 28.2958], + [89.7558, 28.1844], + [89.5615, 28.1346], + [89.336, 27.8691], + [89.051, 27.6083], + [88.8923, 27.3155], + [88.7736, 27.4085], + [88.741, 27.5457], + [88.8539, 27.8437], + [88.8177, 27.9947], + [88.6105, 28.1058], + [88.3788, 27.9826], + [88.1267, 27.9504], + [88.1182, 27.8609], + [87.8259, 27.9066], + [87.7564, 27.8204], + [87.3868, 27.8044], + [87.1558, 27.8258], + [87.0305, 27.9381], + [86.8931, 27.9542], + [86.662, 28.1068], + [86.5442, 28.093], + [86.4388, 27.9109], + [86.203, 28.0026], + [85.9803, 27.8852], + [85.8483, 28.1589], + [85.6751, 28.3064], + [85.2596, 28.2669], + [85.0802, 28.3188], + [85.168, 28.5832], + [85.0549, 28.6387], + [84.9187, 28.5357], + [84.6778, 28.6044], + [84.2351, 28.9], + [84.2314, 29.026], + [84.0991, 29.247], + [83.9456, 29.2918], + [83.5171, 29.1917], + [83.328, 29.485], + [83.1621, 29.6252], + [82.8366, 29.6598], + [82.5418, 29.9232], + [82.1445, 30.0694], + [82.0888, 30.3301], + [81.779, 30.358], + [81.5916, 30.4143], + [81.1945, 30.0045], + [81.0978, 30.0169], + [80.996, 30.197], + [80.7231, 30.392], + [80.2528, 30.565], + [80.0625, 30.7848], + [79.8335, 30.9615], + [79.5296, 30.9536], + [79.2957, 31.1241], + [79.1984, 31.3249], + [79.0633, 31.4336], + [78.9762, 31.32], + [78.7385, 31.335], + [78.6995, 31.51], + [78.8189, 31.6074], + [78.6709, 31.7705], + [78.7446, 31.9642], + [78.458, 32.2297], + [78.4475, 32.5663], + [78.6302, 32.578], + [78.9434, 32.3464], + [79.1129, 32.4724], + [79.276, 32.4902], + [79.4764, 32.6454], + [79.5, 32.7468], + [79.3342, 32.9568], + [79.3819, 33.1273], + [78.9733, 33.3096], + [78.7814, 33.5528], + [78.7941, 33.7439], + [78.7301, 34.0793], + [78.9032, 34.1581], + [78.9854, 34.2864], + [78.6073, 34.5465], + [78.3794, 34.5787], + [78.2732, 34.6589], + [78.13, 35.0554], + [78.0012, 35.2689], + [78.0556, 35.4529], + [77.8003, 35.4954], + [77.4128, 35.4694], + [76.7774, 35.6461], + [76.5708, 35.7513], + [76.5653, 35.8655], + [76.166, 35.8062], + [76.0614, 35.9916], + [75.8943, 36.0974], + [76.0144, 36.2304], + [75.9766, 36.4626], + [75.7905, 36.6878], + [75.5705, 36.7667], + [75.4105, 36.7473], + [75.3513, 36.9158], + [75.1001, 36.9941], + [74.9105, 36.9626], + [74.6624, 37.0545], + [74.5424, 37.0217], + [74.3661, 37.1478], + [74.4873, 37.2259], + [74.8923, 37.2311], + [75.1641, 37.4006], + [74.8919, 37.5992], + [74.9652, 37.7675], + [74.8928, 37.994], + [74.7907, 38.0814], + [74.7763, 38.5107], + [74.3342, 38.667], + [74.1404, 38.6692], + [73.9329, 38.5297], + [73.7974, 38.6028], + [73.6837, 38.8549], + [73.816, 38.9938], + [73.6023, 39.2358], + [73.6326, 39.4483], + [73.8207, 39.4682], + [73.9268, 39.5929], + [73.823, 39.8057], + [74.004, 40.0608], + [74.3699, 40.1058], + [74.7058, 40.3313], + [74.8354, 40.5116], + [75.1939, 40.4413], + [75.5599, 40.6329], + [75.6669, 40.4502], + [75.6818, 40.2917], + [75.9215, 40.3091], + [76.2442, 40.4412], + [76.4491, 40.4155], + [76.6242, 40.6275], + [76.6308, 40.7289], + [76.861, 41.0132], + [77.333, 41.0206], + [77.4749, 40.982], + [77.8667, 41.0641], + [78.075, 41.0395], + [78.3597, 41.2875], + [78.3599, 41.3775], + [78.6721, 41.5384], + [79.3041, 41.7876], + [79.7475, 41.8797], + [79.8429, 42.0018], + [80.1819, 42.021], + [80.2103, 42.1895], + [80.2684, 42.238], + [80.14, 42.623], + [80.2275, 42.791], + [80.4762, 42.8639], + [80.3681, 43.0285], + [80.5759, 43.1194], + [80.7734, 43.1129], + [80.7127, 43.4589], + [80.3451, 44.1031], + [80.3329, 44.4174], + [80.3763, 44.6713], + [80.2183, 44.8181], + [79.9917, 44.7936], + [79.8582, 44.9037], + [80.0617, 45.019], + [80.365, 45.0432], + [80.6971, 45.1437], + [80.8539, 45.1265], + [81.7393, 45.3381], + [81.8073, 45.1887], + [81.9501, 45.1445], + [82.2946, 45.2282], + [82.4758, 45.1157], + [82.5852, 45.1768], + [82.6157, 45.4354], + [82.2915, 45.5332], + [82.4889, 45.9017], + [82.5683, 46.1965], + [82.6744, 46.3311], + [82.839, 46.7324], + [82.9855, 46.9425], + [83.0135, 47.1946], + [83.1504, 47.2115], + [83.5245, 47.0671], + [83.9053, 46.974], + [84.6635, 46.9839], + [84.7396, 46.8148], + [84.916, 46.8506], + [85.2051, 47.0337], + [85.4986, 47.0518], + [85.6597, 47.2065], + [85.6704, 47.3843], + [85.5154, 47.9203], + [85.5864, 48.1412], + [85.7837, 48.4076], + [86.192, 48.4182], + [86.5651, 48.5273], + [86.7445, 48.7035], + [86.7275, 48.9903], + [86.8873, 49.1068], + [87.3238, 49.0853], + [87.8163, 49.1658], + [87.7569, 48.9204], + [87.8059, 48.8006], + [88.0338, 48.7291], + [87.9428, 48.5995], + [88.5651, 48.343], + [88.5808, 48.212], + [89.0456, 47.993], + [89.5418, 48.031], + [89.7513, 47.8243], + [90.0446, 47.8798], + [90.0829, 47.7561], + [90.3274, 47.623], + [90.4412, 47.493], + [90.4687, 47.3089], + [90.7121, 47.0147], + [90.8282, 46.9823], + [91.0048, 46.7404], + [91.0475, 46.5664], + [90.8962, 46.302], + [91.0024, 46.0218], + [90.7108, 45.7522], + [90.6511, 45.4931], + [90.9055, 45.186], + [91.135, 45.1979], + [91.663, 45.0595], + [92.0094, 45.0762], + [92.4751, 44.9975], + [92.7527, 45.038], + [93.5253, 44.9513], + [93.714, 44.8746], + [93.9751, 44.66], + [94.195, 44.6543], + [94.3385, 44.5121], + [94.6982, 44.3435], + [95.0368, 44.255], + [95.3794, 44.2871], + [95.3275, 44.0067], + [95.5103, 43.9791], + [95.8328, 43.4089], + [95.9085, 43.2145], + [96.2943, 42.9333], + [96.3506, 42.7409], + [97.1933, 42.7873], + [98.6622, 42.6436], + [99.4745, 42.5642], + [100.017, 42.6765], + [101.2187, 42.5298], + [101.6376, 42.5154], + [102.0342, 42.1846], + [103.0735, 42.0045], + [103.721, 41.7556], + [104.5008, 41.8706], + [104.498, 41.6658], + [104.8923, 41.6448], + [105.0148, 41.5961], + [105.2745, 41.7555], + [105.8686, 41.9935], + [106.7678, 42.2866], + [108.1774, 42.4543], + [108.7969, 42.3984], + [108.9945, 42.4495], + [109.4851, 42.4493], + [109.6673, 42.549], + [110.0749, 42.6435], + [110.4067, 42.7686], + [110.9337, 43.2878], + [111.5972, 43.5234], + [111.7538, 43.6632], + [111.9334, 43.6966], + [111.8388, 43.9388], + [111.5194, 44.1886], + [111.4064, 44.4165], + [111.7385, 44.9663], + [112.0115, 45.0875], + [112.4413, 45.0524], + [112.6142, 44.9088], + [113.1049, 44.7944], + [113.6351, 44.7463], + [113.8893, 44.9083], + [114.0553, 44.9406], + [114.4189, 45.2015], + [114.5337, 45.3855], + [114.7373, 45.425], + [114.9389, 45.3738], + [115.6378, 45.4444], + [116.012, 45.6786], + [116.1699, 45.7091], + [116.2132, 45.9082], + [116.3572, 46.1056], + [116.6036, 46.3093], + [116.8046, 46.3829], + [117.3017, 46.3501], + [117.3938, 46.5714], + [117.6962, 46.5123], + [118.2383, 46.7154], + [118.7201, 46.6767], + [118.8162, 46.7582], + [119.3169, 46.6117], + [119.6801, 46.5916], + [119.9042, 46.7089], + [119.9029, 46.8424], + [119.7, 47.1595], + [119.1576, 47.5177], + [119.0835, 47.6616], + [118.7674, 47.7562], + [118.5423, 47.9662], + [118.1825, 48.0282], + [117.7417, 47.9776], + [117.3171, 47.6541], + [117.0697, 47.8102], + [116.8533, 47.8721], + [116.4997, 47.8364], + [116.2439, 47.8629], + [115.9729, 47.7091], + [115.8527, 47.7056], + [115.5619, 47.9332], + [115.5145, 48.1221], + [115.8093, 48.274], + [115.8004, 48.5304], + [116.0282, 48.7675], + [116.0378, 48.8701], + [116.6843, 49.8233], + [117.0576, 49.6729], + [117.4729, 49.6143], + [117.7588, 49.5127], + [118.1686, 49.6715], + [118.6444, 49.9546], + [119.0917, 49.9866], + [119.3162, 50.0927], + [119.3529, 50.3455], + [119.2437, 50.4455], + [119.2936, 50.5992], + [119.4967, 50.7371], + [119.518, 50.9048], + [119.7483, 51.0834], + [120.1082, 51.6652], + [120.4931, 51.8757], + [120.6476, 51.911], + [120.7792, 52.1176], + [120.6262, 52.3468], + [120.724, 52.5422], + [120.4299, 52.6361], + [120.0564, 52.6005], + [120.033, 52.7607], + [120.2802, 52.8659], + [120.8743, 53.2802], + [121.2035, 53.2767], + [121.889, 53.4306], + [122.3378, 53.4913], + [122.8597, 53.4739], + [123.2526, 53.5678], + [123.6396, 53.5513], + [124.2327, 53.3817], + [124.4082, 53.2357], + [124.7202, 53.1488], + [125.1274, 53.2065], + [125.5213, 53.0424], + [125.6214, 53.0621], + [126.0351, 52.7271], + [125.9732, 52.6316], + [126.2123, 52.533], + [126.5312, 52.1527], + [126.4461, 51.9825], + [126.9546, 51.3296], + [126.9318, 51.0638], + [127.2874, 50.751], + [127.3648, 50.5547], + [127.3307, 50.3282], + [127.5784, 50.2206], + [127.4867, 50.0256], + [127.5081, 49.8223], + [127.8309, 49.5939], + [128.0925, 49.5416], + [128.6662, 49.6095], + [129.0506, 49.3767], + [129.7112, 49.2742], + [129.9134, 49.0395], + [130.2493, 48.8645], + [130.6743, 48.8708], + [130.5333, 48.6358], + [130.7159, 48.4991], + [130.8194, 48.2819], + [130.6634, 48.1164], + [130.907, 47.8843], + [131.0234, 47.6823], + [131.4184, 47.7426], + [131.5774, 47.6686], + [132.5247, 47.7075], + [132.6588, 47.8698], + [133.092, 48.1068], + [133.4637, 48.0895], + [133.7213, 48.2448], + [134.3863, 48.3813], + [134.7009, 48.2615], + [134.5672, 48.0404], + [134.7726, 47.7107], + [134.4846, 47.4302], + [134.2928, 47.4097], + [134.1541, 47.2579], + [133.988, 46.6252], + [133.8493, 46.4803], + [133.9025, 46.259], + [133.6874, 46.1418], + [133.6581, 45.9345], + [133.5144, 45.8793], + [133.4135, 45.5733], + [133.2021, 45.5113], + [133.0975, 45.2435], + [133.1154, 45.123], + [132.9534, 45.0244], + [131.9696, 45.2338], + [131.818, 45.3328], + [131.6091, 45.0897], + [131.4195, 44.959], + [130.9334, 44.8417], + [131.0658, 44.682], + [131.2645, 44.0542], + [131.1703, 43.7811], + [131.2809, 43.3802], + [130.9924, 42.8487], + [130.7695, 42.8658], + [130.4072, 42.7354], + [130.5308, 42.5305] + ] + ] + ] + }, + "properties": { + "NAME": "China", + "NAME_LONG": "China", + "ADM0_A3": "CHN", + "ISO_A2": "CN", + "ISO_A3": "CHN", + "WB_A2": "CN", + "WB_A3": "CHN" + }, + "id": 42 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-5.5226, 10.4255], + [-5.4025, 10.3006], + [-5.1118, 10.2787], + [-4.9661, 9.901], + [-4.8385, 9.8695], + [-4.7055, 9.7021], + [-4.604, 9.7272], + [-4.3225, 9.6089], + [-4.2703, 9.7439], + [-4.0599, 9.7963], + [-3.8897, 9.8945], + [-3.6617, 9.9489], + [-3.3892, 9.9132], + [-3.1369, 9.8295], + [-2.99, 9.7084], + [-2.9102, 9.5427], + [-2.7637, 9.3919], + [-2.6892, 9.4887], + [-2.6598, 9.2729], + [-2.7748, 9.055], + [-2.6194, 8.9236], + [-2.5063, 8.2093], + [-2.6194, 8.1231], + [-2.84, 7.8202], + [-2.9415, 7.5772], + [-3.0459, 7.0712], + [-3.2249, 6.8494], + [-3.2625, 6.6171], + [-3.1836, 6.2639], + [-3.1181, 6.1635], + [-2.9695, 5.6214], + [-2.7818, 5.5789], + [-2.7327, 5.3557], + [-2.8437, 5.1491], + [-2.9467, 5.1771], + [-3.3122, 5.1199], + [-3.8409, 5.2012], + [-4.1255, 5.3074], + [-4.7847, 5.1439], + [-5.5248, 5.0998], + [-5.8513, 5.03], + [-6.5839, 4.7604], + [-6.9142, 4.6557], + [-7.4568, 4.3441], + [-7.5407, 4.3528], + [-7.6055, 4.8974], + [-7.5782, 5.0547], + [-7.4889, 5.1407], + [-7.45, 5.4228], + [-7.3936, 5.524], + [-7.4465, 5.8459], + [-7.5591, 5.8399], + [-7.7996, 5.9745], + [-7.8441, 6.184], + [-7.9349, 6.2714], + [-8.1706, 6.274], + [-8.3888, 6.3551], + [-8.5661, 6.5509], + [-8.3518, 6.7554], + [-8.2841, 7.0179], + [-8.4436, 7.5371], + [-8.4854, 7.558], + [-8.229, 7.5443], + [-8.1274, 7.713], + [-8.1289, 7.8826], + [-8.0217, 8.1177], + [-8.266, 8.246], + [-8.2003, 8.4918], + [-7.9705, 8.497], + [-7.771, 8.3865], + [-7.6896, 8.4387], + [-7.6916, 8.6061], + [-7.8037, 8.7491], + [-7.9589, 8.782], + [-7.9296, 9.1839], + [-7.8654, 9.4099], + [-8.0872, 9.4154], + [-8.1616, 9.5756], + [-8.1235, 9.8449], + [-8.1738, 9.9419], + [-7.9897, 10.162], + [-7.829, 10.2117], + [-7.7086, 10.4025], + [-7.4662, 10.4295], + [-7.347, 10.2479], + [-6.9594, 10.1855], + [-6.9731, 10.3323], + [-6.7003, 10.3417], + [-6.6679, 10.6509], + [-6.5214, 10.5642], + [-6.434, 10.6679], + [-6.28, 10.7233], + [-6.2078, 10.6375], + [-6.1809, 10.2158], + [-6.0159, 10.1899], + [-5.8063, 10.4135], + [-5.5226, 10.4255] + ] + ] + }, + "properties": { + "NAME": "Côte d'Ivoire", + "NAME_LONG": "Côte d'Ivoire", + "ADM0_A3": "CIV", + "ISO_A2": "CI", + "ISO_A3": "CIV", + "WB_A2": "CI", + "WB_A3": "CIV" + }, + "id": 43 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [15.481, 7.5233], + [15.4328, 7.3897], + [15.2239, 7.2475], + [15.0422, 6.7908], + [14.9325, 6.7103], + [14.719, 6.2579], + [14.535, 6.1901], + [14.3977, 6.0192], + [14.5848, 5.9234], + [14.6311, 5.738], + [14.5973, 5.4115], + [14.5239, 5.2797], + [14.6632, 5.1418], + [14.7173, 4.622], + [15.0006, 4.4032], + [15.1026, 4.1124], + [15.0849, 3.8858], + [15.1713, 3.759], + [15.7856, 3.108], + [15.914, 3.098], + [16.0924, 2.8633], + [16.0903, 2.5105], + [16.1967, 2.2365], + [16.1044, 2.1936], + [16.0649, 1.979], + [16.159, 1.7348], + [15.8899, 1.7933], + [15.7646, 1.9087], + [15.4829, 1.9758], + [15.3492, 1.9233], + [15.2337, 2.0313], + [15.0916, 1.9844], + [14.8715, 2.1017], + [14.7057, 2.1055], + [14.5621, 2.2088], + [14.4187, 2.1353], + [14.267, 2.1524], + [13.2946, 2.1611], + [13.2429, 2.2715], + [12.7499, 2.2367], + [12.334, 2.3096], + [12.2026, 2.2796], + [11.7527, 2.2819], + [11.6712, 2.321], + [11.3516, 2.3006], + [11.3221, 2.1658], + [9.991, 2.1656], + [9.8109, 2.2649], + [9.7996, 2.3417], + [9.8778, 2.8814], + [9.958, 3.0822], + [9.9031, 3.2729], + [9.6421, 3.539], + [9.5892, 3.8096], + [9.6648, 3.9404], + [9.5794, 4.013], + [9.4121, 3.9022], + [8.9712, 4.1008], + [8.8719, 4.6025], + [8.7017, 4.5013], + [8.5051, 4.5509], + [8.5942, 4.8153], + [8.7989, 5.1596], + [8.8937, 5.6218], + [8.8193, 5.7035], + [8.8559, 5.8475], + [9.2733, 6.2028], + [9.3274, 6.2985], + [9.5881, 6.5027], + [9.693, 6.5313], + [9.7698, 6.7737], + [9.8746, 6.7877], + [10.1195, 6.9944], + [10.2384, 6.871], + [10.496, 6.8747], + [10.6025, 7.0581], + [10.8319, 6.9452], + [10.8775, 6.8161], + [11.0559, 6.7004], + [11.0971, 6.4491], + [11.3195, 6.4373], + [11.5098, 6.6123], + [11.6232, 6.9323], + [11.8813, 7.102], + [11.7802, 7.2411], + [11.8447, 7.3964], + [12.025, 7.5966], + [12.055, 7.7839], + [12.1978, 7.9752], + [12.25, 8.4188], + [12.4039, 8.4965], + [12.377, 8.5951], + [12.6604, 8.6593], + [12.8057, 8.8315], + [12.8221, 9.0968], + [12.8884, 9.2267], + [12.862, 9.3829], + [12.9824, 9.4746], + [13.1955, 9.5422], + [13.2629, 9.8017], + [13.2127, 9.8701], + [13.248, 10.0794], + [13.4349, 10.1534], + [13.5663, 10.679], + [13.7444, 10.9305], + [13.7548, 11.0167], + [13.9823, 11.2763], + [14.1655, 11.2383], + [14.5938, 11.4964], + [14.6214, 11.6298], + [14.5465, 11.7186], + [14.6699, 12.1674], + [14.5144, 12.3235], + [14.1798, 12.3856], + [14.1774, 12.5456], + [14.0649, 13.078], + [14.4182, 13.0811], + [14.4906, 12.8863], + [14.604, 12.7608], + [14.8308, 12.6182], + [14.9083, 12.3269], + [14.9031, 12.1459], + [15.0406, 12.0556], + [15.0683, 11.7001], + [15.1356, 11.5308], + [15.0606, 11.4161], + [15.0212, 11.1825], + [15.0659, 10.7931], + [15.3014, 10.3117], + [15.5361, 10.0805], + [15.383, 9.9302], + [15.2149, 9.9841], + [14.7325, 9.9238], + [14.4405, 9.9953], + [14.1817, 9.9782], + [13.9476, 9.6378], + [14.3213, 9.2432], + [14.3495, 9.1684], + [14.7939, 8.8136], + [15.0313, 8.6587], + [15.1837, 8.4791], + [15.3453, 8.136], + [15.4407, 7.8394], + [15.5629, 7.7924], + [15.481, 7.5233] + ] + ] + }, + "properties": { + "NAME": "Cameroon", + "NAME_LONG": "Cameroon", + "ADM0_A3": "CMR", + "ISO_A2": "CM", + "ISO_A3": "CMR", + "WB_A2": "CM", + "WB_A3": "CMR" + }, + "id": 45 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [34.0123, 35.0638], + [34.022, 35.057], + [33.8981, 35.0613], + [33.9065, 35.0691], + [34.0123, 35.0638] + ] + ], + [ + [ + [32.5848, 35.1725], + [32.6019, 35.1786], + [32.6407, 35.1871], + [32.6598, 35.1871], + [32.5848, 35.1725] + ] + ], + [ + [ + [33.6794, 35.0339], + [33.7029, 34.9879], + [33.497, 35.0261], + [33.4463, 35.0012], + [33.4573, 35.1011], + [33.4159, 35.1603], + [33.1739, 35.1627], + [32.9219, 35.0723], + [32.8159, 35.0628], + [32.8065, 35.0948], + [32.7127, 35.1338], + [32.6915, 35.1837], + [32.7114, 35.1816], + [32.8549, 35.0792], + [33.0958, 35.1697], + [33.1903, 35.1899], + [33.4003, 35.1977], + [33.4768, 35.0948], + [33.4768, 35.0574], + [33.6794, 35.0339] + ] + ] + ] + }, + "properties": { + "NAME": "Cyprus U.N. Buffer Zone", + "NAME_LONG": "Cyprus U.N. Buffer Zone", + "ADM0_A3": "CNM", + "ISO_A2": "-99", + "ISO_A3": "-99", + "WB_A2": "-99", + "WB_A3": "-99" + }, + "id": 46 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [27.4413, 5.0707], + [27.5527, 4.9005], + [27.641, 4.8909], + [27.7669, 4.7354], + [27.7724, 4.5958], + [28.0089, 4.4991], + [28.1776, 4.3472], + [28.4041, 4.2778], + [28.7554, 4.554], + [28.8153, 4.4783], + [28.9862, 4.4959], + [29.1735, 4.348], + [29.3039, 4.3871], + [29.4941, 4.6683], + [29.7777, 4.5239], + [29.7762, 4.4056], + [30.1227, 4.1025], + [30.2059, 3.9504], + [30.5389, 3.8415], + [30.5726, 3.601], + [30.6934, 3.6319], + [30.8395, 3.4902], + [30.91, 3.3934], + [30.8042, 3.246], + [30.7451, 3.0363], + [30.8548, 2.8932], + [30.7394, 2.6033], + [30.7249, 2.4408], + [30.8718, 2.3321], + [31.1776, 2.3029], + [31.2675, 2.1733], + [31.2428, 2.0512], + [31.0258, 1.7782], + [30.6817, 1.5003], + [30.4783, 1.2386], + [30.2389, 1.136], + [30.1451, 0.9032], + [29.9283, 0.785], + [29.9405, 0.4983], + [29.8326, 0.337], + [29.8006, 0.1724], + [29.7118, 0.0996], + [29.6294, -0.4424], + [29.6108, -0.864], + [29.556, -0.9195], + [29.5779, -1.3884], + [29.3585, -1.5099], + [29.1493, -1.7993], + [29.1506, -2.1504], + [28.8588, -2.4182], + [28.8913, -2.6527], + [29.0154, -2.7207], + [29.0898, -2.9261], + [29.2346, -3.0466], + [29.2067, -3.3345], + [29.215, -3.8999], + [29.3395, -4.0932], + [29.4042, -4.4498], + [29.321, -4.8363], + [29.3778, -5.0875], + [29.4556, -5.23], + [29.5935, -5.6203], + [29.603, -5.7817], + [29.4761, -6.0021], + [29.5255, -6.2731], + [29.7386, -6.6524], + [30.0909, -6.89], + [30.2347, -7.0571], + [30.3696, -7.3103], + [30.4416, -7.5963], + [30.655, -7.9274], + [30.7521, -8.1941], + [29.8581, -8.3298], + [28.9153, -8.4729], + [28.9305, -8.6799], + [28.7654, -8.934], + [28.5991, -9.0964], + [28.3723, -9.2351], + [28.516, -9.3783], + [28.6685, -9.8216], + [28.6239, -9.951], + [28.6349, -10.5195], + [28.6996, -10.6432], + [28.5635, -10.8119], + [28.4768, -11.078], + [28.4396, -11.3482], + [28.357, -11.4469], + [28.4972, -11.8574], + [28.835, -12.0922], + [29.0304, -12.3762], + [29.4466, -12.3351], + [29.4743, -12.2427], + [29.7993, -12.1541], + [29.7976, -13.4242], + [29.6017, -13.3744], + [29.5744, -13.2254], + [29.1689, -13.4339], + [28.994, -13.3959], + [28.9034, -13.1623], + [28.6679, -12.8493], + [28.584, -12.8887], + [28.4227, -12.5213], + [28.3397, -12.4505], + [28.1313, -12.4292], + [27.9339, -12.3033], + [27.6382, -12.2936], + [27.5205, -12.1796], + [27.4207, -11.922], + [27.2342, -11.8091], + [27.1801, -11.5696], + [27.0103, -11.6098], + [26.9673, -11.8704], + [26.8742, -11.9643], + [26.6435, -11.9855], + [26.4146, -11.9118], + [26.298, -11.9412], + [25.9941, -11.9048], + [25.8507, -11.7938], + [25.352, -11.6461], + [25.279, -11.3963], + [25.2788, -11.1999], + [24.6741, -11.3416], + [24.5647, -11.4447], + [24.3101, -11.4066], + [24.3922, -11.2791], + [24.3818, -11.1206], + [24.1242, -11.0433], + [24.1142, -10.9192], + [23.9675, -10.8723], + [23.8337, -11.0285], + [23.4948, -10.9643], + [23.0143, -11.1025], + [22.8292, -11.0521], + [22.7277, -11.0968], + [22.5376, -11.0372], + [22.2818, -11.2367], + [22.1655, -10.8524], + [22.3224, -10.7422], + [22.274, -10.503], + [22.3134, -10.3686], + [22.2028, -10.1306], + [22.1599, -9.9315], + [21.9984, -9.8091], + [21.8541, -9.6178], + [21.7933, -9.3935], + [21.8411, -9.2758], + [21.8599, -8.8464], + [21.936, -8.413], + [21.8512, -8.1435], + [21.7585, -8.0151], + [21.7705, -7.8068], + [21.8541, -7.586], + [21.8424, -7.3699], + [21.785, -7.2834], + [20.5205, -7.2864], + [20.5245, -7.1431], + [20.6115, -6.916], + [20.3311, -6.9168], + [20.2943, -7.0019], + [19.5218, -7.0019], + [19.4764, -7.3159], + [19.5132, -7.4794], + [19.4247, -7.5797], + [19.3338, -7.8673], + [19.3555, -8.002], + [18.7738, -8.002], + [18.7385, -7.9323], + [18.5076, -7.9975], + [18.1766, -7.9992], + [18.0982, -8.1093], + [17.9014, -8.0481], + [17.5443, -8.0848], + [17.5365, -8.0151], + [17.2889, -7.6995], + [17.0981, -7.4023], + [16.9961, -7.298], + [16.9271, -7.0857], + [16.927, -6.8886], + [16.8329, -6.8278], + [16.7308, -6.5698], + [16.7268, -6.1892], + [16.6043, -6.0619], + [16.5974, -5.9247], + [16.3157, -5.8546], + [14.7037, -5.8814], + [14.5766, -5.9047], + [14.0212, -5.8725], + [13.9436, -5.8416], + [13.6415, -5.8658], + [13.1838, -5.8565], + [12.8224, -5.8298], + [12.7226, -5.9793], + [12.4495, -6.0519], + [12.2105, -5.7634], + [12.509, -5.7263], + [12.5307, -5.1627], + [12.4444, -5.0551], + [12.6789, -4.9243], + [12.8332, -4.7227], + [13.0737, -4.6353], + [13.3588, -4.7948], + [13.3926, -4.8853], + [13.6901, -4.6911], + [13.711, -4.4645], + [13.9549, -4.4919], + [14.3686, -4.2784], + [14.4665, -4.448], + [14.35, -4.5669], + [14.4069, -4.676], + [14.3965, -4.8559], + [14.6345, -4.9036], + [14.8312, -4.8151], + [14.931, -4.6469], + [15.0979, -4.4999], + [15.204, -4.339], + [15.4589, -4.2139], + [15.5668, -4.038], + [15.883, -3.9453], + [16.2077, -3.3619], + [16.177, -2.8825], + [16.2256, -2.6352], + [16.1769, -2.2868], + [16.2313, -2.129], + [16.5225, -1.8617], + [16.8397, -1.2625], + [17.0287, -1.0945], + [17.2977, -1.0211], + [17.7495, -0.5234], + [17.7164, -0.1958], + [17.854, 0.2411], + [17.9399, 0.3613], + [17.8666, 1.0166], + [17.9634, 1.1915], + [18.0714, 1.5515], + [18.0724, 2.16], + [18.2462, 2.5189], + [18.3932, 2.7137], + [18.5284, 3.0648], + [18.6131, 3.1282], + [18.6264, 3.4769], + [18.593, 3.7098], + [18.6453, 3.9824], + [18.6197, 4.1696], + [18.5371, 4.3061], + [18.7211, 4.3774], + [18.8282, 4.56], + [19.0116, 4.765], + [19.0833, 4.9093], + [19.409, 5.1304], + [19.7196, 5.136], + [20.3389, 4.7719], + [20.4523, 4.5289], + [20.6031, 4.4097], + [20.8715, 4.4534], + [21.0842, 4.3882], + [21.1581, 4.3102], + [21.2989, 4.3302], + [21.5381, 4.2447], + [21.7229, 4.2951], + [22.0089, 4.2424], + [22.2073, 4.1503], + [22.4927, 4.174], + [22.6895, 4.4917], + [22.786, 4.7246], + [22.8984, 4.8236], + [23.1687, 4.7381], + [23.3884, 4.5873], + [23.5666, 4.7244], + [23.8167, 4.8206], + [23.9483, 4.8177], + [24.1629, 4.9078], + [24.4596, 5.1074], + [24.6644, 4.9244], + [24.9581, 4.9914], + [25.3076, 5.0323], + [25.3637, 5.3106], + [25.5813, 5.3749], + [25.7328, 5.2589], + [26.0269, 5.19], + [26.13, 5.2589], + [26.4627, 5.0596], + [26.7606, 5.0881], + [26.8671, 5.0375], + [26.9616, 5.1512], + [27.1164, 5.2003], + [27.4413, 5.0707] + ] + ] + }, + "properties": { + "NAME": "Dem. Rep. Congo", + "NAME_LONG": "Democratic Republic of the Congo", + "ADM0_A3": "COD", + "ISO_A2": "CD", + "ISO_A3": "COD", + "WB_A2": "ZR", + "WB_A3": "ZAR" + }, + "id": 47 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [18.6264, 3.4769], + [18.6131, 3.1282], + [18.5284, 3.0648], + [18.3932, 2.7137], + [18.2462, 2.5189], + [18.0724, 2.16], + [18.0714, 1.5515], + [17.9634, 1.1915], + [17.8666, 1.0166], + [17.9399, 0.3613], + [17.854, 0.2411], + [17.7164, -0.1958], + [17.7495, -0.5234], + [17.2977, -1.0211], + [17.0287, -1.0945], + [16.8397, -1.2625], + [16.5225, -1.8617], + [16.2313, -2.129], + [16.1769, -2.2868], + [16.2256, -2.6352], + [16.177, -2.8825], + [16.2077, -3.3619], + [15.883, -3.9453], + [15.5668, -4.038], + [15.4589, -4.2139], + [15.204, -4.339], + [15.0979, -4.4999], + [14.931, -4.6469], + [14.8312, -4.8151], + [14.6345, -4.9036], + [14.3965, -4.8559], + [14.4069, -4.676], + [14.35, -4.5669], + [14.4665, -4.448], + [14.3686, -4.2784], + [13.9549, -4.4919], + [13.711, -4.4645], + [13.6901, -4.6911], + [13.3926, -4.8853], + [13.3588, -4.7948], + [13.0737, -4.6353], + [12.7617, -4.3912], + [12.6081, -4.565], + [12.3776, -4.6194], + [12.3324, -4.7659], + [12.2352, -4.804], + [12.0096, -5.0196], + [11.7816, -4.6804], + [11.8064, -4.5771], + [11.4014, -4.2214], + [11.3582, -4.1119], + [11.114, -3.9369], + [11.2125, -3.6973], + [11.5698, -3.545], + [11.6492, -3.6733], + [11.8197, -3.7104], + [11.8278, -3.5481], + [11.9444, -3.3032], + [11.6875, -3.171], + [11.7637, -2.9826], + [11.6368, -2.8333], + [11.5582, -2.3494], + [11.7561, -2.4151], + [11.9384, -2.3291], + [12.0623, -2.415], + [12.4593, -2.3299], + [12.4702, -2.1563], + [12.4231, -1.8976], + [12.5832, -1.8265], + [12.8046, -1.9191], + [13.0107, -2.2878], + [13.361, -2.4288], + [13.5934, -2.3268], + [13.7707, -2.1191], + [13.8639, -2.3215], + [13.885, -2.4885], + [14.0809, -2.4999], + [14.227, -2.3231], + [14.1512, -2.259], + [14.2384, -2.1202], + [14.2522, -1.9676], + [14.3707, -1.9213], + [14.3738, -1.6041], + [14.4821, -1.3886], + [14.3918, -1.0233], + [14.499, -0.6309], + [14.2927, -0.4364], + [14.1597, -0.4551], + [14.1214, -0.3022], + [13.8312, -0.2054], + [13.9211, -0.053], + [13.8712, 0.1964], + [14.076, 0.5395], + [14.2318, 0.5426], + [14.4476, 0.8162], + [14.4681, 0.9132], + [14.2747, 1.1556], + [14.1839, 1.3808], + [13.7947, 1.4344], + [13.5434, 1.2835], + [13.4139, 1.2955], + [13.2502, 1.2218], + [13.2395, 1.428], + [13.1296, 1.5925], + [13.2069, 1.9936], + [13.2946, 2.1611], + [14.267, 2.1524], + [14.4187, 2.1353], + [14.5621, 2.2088], + [14.7057, 2.1055], + [14.8715, 2.1017], + [15.0916, 1.9844], + [15.2337, 2.0313], + [15.3492, 1.9233], + [15.4829, 1.9758], + [15.7646, 1.9087], + [15.8899, 1.7933], + [16.159, 1.7348], + [16.0649, 1.979], + [16.1044, 2.1936], + [16.1967, 2.2365], + [16.4791, 2.8363], + [16.4908, 3.0678], + [16.5677, 3.4644], + [16.6394, 3.5286], + [16.9686, 3.5335], + [17.3344, 3.6185], + [17.4589, 3.7083], + [17.6273, 3.6263], + [17.8083, 3.6086], + [17.8564, 3.5373], + [18.5134, 3.5922], + [18.6264, 3.4769] + ] + ] + }, + "properties": { + "NAME": "Congo", + "NAME_LONG": "Republic of Congo", + "ADM0_A3": "COG", + "ISO_A2": "CG", + "ISO_A3": "COG", + "WB_A2": "CG", + "WB_A3": "COG" + }, + "id": 48 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-71.3275, 11.85], + [-71.4495, 11.7955], + [-71.9711, 11.6619], + [-72.2566, 11.1678], + [-72.4815, 11.1325], + [-72.7061, 10.8113], + [-72.9076, 10.4525], + [-72.9877, 9.9994], + [-72.9776, 9.8381], + [-73.3778, 9.1647], + [-73.1762, 9.1909], + [-73.0097, 9.2954], + [-72.9364, 9.0992], + [-72.7831, 9.0599], + [-72.6754, 8.6515], + [-72.3868, 8.3386], + [-72.3358, 8.1039], + [-72.4878, 7.9492], + [-72.4513, 7.4402], + [-72.2062, 7.3819], + [-72.081, 7.0666], + [-71.8326, 6.9864], + [-71.6543, 7.0534], + [-71.2835, 7.0188], + [-71.184, 6.9626], + [-70.7033, 7.0999], + [-70.3191, 6.9383], + [-70.0966, 6.9444], + [-69.4436, 6.1222], + [-69.2461, 6.0807], + [-69.0611, 6.2178], + [-68.6353, 6.1359], + [-68.449, 6.195], + [-68.3042, 6.177], + [-67.9241, 6.2346], + [-67.8391, 6.3075], + [-67.574, 6.2662], + [-67.4286, 6.0385], + [-67.6012, 5.8206], + [-67.647, 5.4834], + [-67.8437, 5.2972], + [-67.7931, 5.0633], + [-67.8537, 4.5758], + [-67.8049, 4.2685], + [-67.6318, 3.7619], + [-67.4714, 3.6801], + [-67.4039, 3.5045], + [-67.3046, 3.4257], + [-67.4522, 3.2437], + [-67.8386, 2.8861], + [-67.6266, 2.8134], + [-67.3254, 2.4746], + [-67.1976, 2.402], + [-67.2177, 2.2845], + [-67.0668, 1.8941], + [-66.8825, 1.326], + [-66.8751, 1.2225], + [-67.0652, 1.1727], + [-67.0982, 1.2534], + [-67.0736, 1.5412], + [-67.1172, 1.7098], + [-67.3406, 2.0901], + [-67.4397, 2.1396], + [-67.5929, 2.0548], + [-67.7905, 1.8126], + [-67.9982, 1.75], + [-68.2008, 2.0078], + [-68.2608, 1.8582], + [-68.1633, 1.7213], + [-69.3524, 1.7202], + [-69.5803, 1.7702], + [-69.8488, 1.6689], + [-69.8522, 1.0594], + [-69.7626, 1.0911], + [-69.3709, 1.063], + [-69.2043, 0.9437], + [-69.1375, 0.6501], + [-69.3626, 0.6409], + [-69.5037, 0.7296], + [-69.6192, 0.6507], + [-70.0542, 0.5881], + [-70.0738, -0.1249], + [-69.9444, -0.3055], + [-69.6321, -0.5069], + [-69.6284, -0.7334], + [-69.45, -0.9968], + [-69.3995, -1.1827], + [-69.5657, -2.106], + [-69.7712, -3.2342], + [-69.9472, -4.2011], + [-69.9649, -4.2365], + [-70.1884, -4.029], + [-70.3111, -3.8293], + [-70.5443, -3.8652], + [-70.7341, -3.782], + [-70.0506, -2.7151], + [-70.2361, -2.6251], + [-70.3575, -2.4869], + [-70.457, -2.4927], + [-70.8742, -2.2296], + [-70.9927, -2.1974], + [-71.2199, -2.3415], + [-71.387, -2.3689], + [-71.4565, -2.2551], + [-71.7679, -2.1422], + [-71.9663, -2.3285], + [-72.3966, -2.4465], + [-72.6443, -2.3341], + [-72.9433, -2.419], + [-73.1953, -2.1872], + [-73.1111, -2.0734], + [-73.1863, -1.7996], + [-73.3403, -1.7922], + [-73.531, -1.6737], + [-73.4972, -1.478], + [-73.6366, -1.2552], + [-73.8808, -1.191], + [-73.9199, -1.1138], + [-74.2891, -0.943], + [-74.4127, -0.5731], + [-74.8247, -0.1705], + [-74.9335, -0.2094], + [-75.1417, -0.0435], + [-75.2835, -0.107], + [-75.6467, 0.0854], + [-75.7897, 0.0844], + [-75.9271, 0.181], + [-76.0535, 0.3635], + [-76.3116, 0.4585], + [-76.4159, 0.3954], + [-76.408, 0.2545], + [-76.5843, 0.2226], + [-76.7369, 0.2729], + [-76.8968, 0.2453], + [-77.1174, 0.3576], + [-77.2069, 0.3342], + [-77.4244, 0.4083], + [-77.4681, 0.6509], + [-77.6456, 0.7163], + [-77.7279, 0.8433], + [-78.12, 0.9212], + [-78.5701, 1.1958], + [-78.8287, 1.4343], + [-78.8533, 1.5434], + [-78.998, 1.6079], + [-78.8461, 1.8216], + [-78.5712, 1.7822], + [-78.5863, 2.0004], + [-78.7032, 2.1898], + [-78.5857, 2.4031], + [-78.4322, 2.587], + [-78.0867, 2.5106], + [-78.0961, 2.6515], + [-77.9498, 2.6745], + [-77.9043, 2.58], + [-77.7515, 2.6273], + [-77.8118, 2.7485], + [-77.6434, 2.8981], + [-77.6477, 3.0739], + [-77.5087, 3.1946], + [-77.4574, 3.3561], + [-77.2049, 3.6212], + [-77.1515, 3.8004], + [-77.425, 4.0046], + [-77.4352, 4.1552], + [-77.3196, 4.5466], + [-77.3667, 4.9989], + [-77.3592, 5.2973], + [-77.4908, 5.5948], + [-77.3556, 5.6079], + [-77.2464, 5.7873], + [-77.4151, 6.2391], + [-77.343, 6.5438], + [-77.4112, 6.6938], + [-77.5318, 6.7121], + [-77.7013, 6.9184], + [-77.6527, 6.9766], + [-77.8958, 7.2351], + [-77.8202, 7.4765], + [-77.58, 7.5284], + [-77.3397, 7.7072], + [-77.3216, 7.881], + [-77.2012, 7.982], + [-77.4804, 8.5262], + [-77.3735, 8.6647], + [-77.2747, 8.4958], + [-77.1336, 8.4084], + [-77.0528, 8.2763], + [-76.8323, 8.1365], + [-76.9337, 7.9646], + [-76.7572, 7.9236], + [-76.732, 8.0793], + [-76.7701, 8.398], + [-76.8937, 8.6203], + [-76.6732, 8.6804], + [-76.2563, 9.0074], + [-76.1681, 9.247], + [-75.91, 9.4282], + [-75.8119, 9.3915], + [-75.6206, 9.4529], + [-75.5764, 9.6211], + [-75.6578, 9.7052], + [-75.5738, 10.074], + [-75.6464, 10.1935], + [-75.5157, 10.319], + [-75.5098, 10.5858], + [-75.3073, 10.7095], + [-75.2674, 10.7953], + [-75.036, 10.9167], + [-74.8444, 11.1097], + [-74.5028, 10.9743], + [-74.4566, 10.748], + [-74.3622, 10.7757], + [-74.2181, 11.0791], + [-74.1875, 11.317], + [-74.0046, 11.3553], + [-73.826, 11.2768], + [-73.2924, 11.294], + [-73.0548, 11.494], + [-72.7597, 11.6971], + [-72.4521, 11.7913], + [-72.2631, 11.886], + [-72.1387, 12.1046], + [-72.1705, 12.2343], + [-72.0049, 12.2629], + [-71.9053, 12.2077], + [-71.6562, 12.4653], + [-71.2423, 12.3277], + [-71.1139, 12.0944], + [-71.3275, 11.85] + ] + ] + }, + "properties": { + "NAME": "Colombia", + "NAME_LONG": "Colombia", + "ADM0_A3": "COL", + "ISO_A2": "CO", + "ISO_A3": "COL", + "WB_A2": "CO", + "WB_A3": "COL" + }, + "id": 50 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [44.4841, -12.0855], + [44.5285, -12.3548], + [44.3306, -12.2363], + [44.4841, -12.0855] + ] + ], + [ + [ + [43.4631, -11.9309], + [43.2629, -11.818], + [43.2765, -11.3796], + [43.3994, -11.4184], + [43.3771, -11.6051], + [43.4988, -11.8736], + [43.4631, -11.9309] + ] + ] + ] + }, + "properties": { + "NAME": "Comoros", + "NAME_LONG": "Comoros", + "ADM0_A3": "COM", + "ISO_A2": "KM", + "ISO_A3": "COM", + "WB_A2": "KM", + "WB_A3": "COM" + }, + "id": 51 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-24.3345, 14.8319], + [-24.5262, 14.9247], + [-24.4034, 15.038], + [-24.2958, 14.9305], + [-24.3345, 14.8319] + ] + ], + [ + [ + [-23.7399, 15.3173], + [-23.5114, 15.113], + [-23.494, 14.9187], + [-23.6765, 14.9355], + [-23.7721, 15.038], + [-23.7399, 15.3173] + ] + ], + [ + [ + [-22.8525, 16.2066], + [-22.6825, 16.1686], + [-22.6798, 16.0632], + [-22.8061, 15.9859], + [-22.9455, 16.0197], + [-22.8525, 16.2066] + ] + ], + [ + [ + [-25.0911, 17.193], + [-24.9713, 17.1073], + [-25.1879, 16.9282], + [-25.2987, 16.9174], + [-25.3168, 17.1061], + [-25.0911, 17.193] + ] + ] + ] + }, + "properties": { + "NAME": "Cape Verde", + "NAME_LONG": "Cape Verde", + "ADM0_A3": "CPV", + "ISO_A2": "CV", + "ISO_A3": "CPV", + "WB_A2": "CV", + "WB_A3": "CPV" + }, + "id": 52 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-83.6444, 10.9259], + [-83.4662, 10.4945], + [-83.2037, 10.1293], + [-83.0167, 9.9631], + [-82.7723, 9.661], + [-82.5736, 9.5762], + [-82.6189, 9.4867], + [-82.829, 9.6027], + [-82.9443, 9.4372], + [-82.9394, 9.0596], + [-82.7491, 8.9741], + [-82.9242, 8.7412], + [-82.8498, 8.6299], + [-82.8704, 8.4381], + [-83.0532, 8.3151], + [-82.9437, 8.2486], + [-82.8976, 8.0347], + [-82.9685, 8.2212], + [-83.1509, 8.3693], + [-83.1434, 8.5502], + [-83.3837, 8.7398], + [-83.4048, 8.589], + [-83.2869, 8.5172], + [-83.2764, 8.4016], + [-83.5756, 8.445], + [-83.7399, 8.6238], + [-83.5876, 8.8354], + [-83.6299, 9.0353], + [-83.9181, 9.2947], + [-84.2727, 9.4816], + [-84.5216, 9.5193], + [-84.6784, 9.6926], + [-84.6346, 9.7834], + [-84.7623, 9.9757], + [-84.8509, 9.9669], + [-85.0899, 10.1724], + [-85.2401, 10.1163], + [-85.1445, 9.9993], + [-84.9596, 9.9465], + [-84.8646, 9.8229], + [-85.1458, 9.6126], + [-85.3324, 9.8266], + [-85.6386, 9.9055], + [-85.7786, 10.0799], + [-85.8616, 10.347], + [-85.8092, 10.4945], + [-85.6317, 10.6212], + [-85.741, 10.9396], + [-85.7017, 11.0809], + [-85.6312, 11.1962], + [-84.9314, 10.9419], + [-84.6765, 11.0704], + [-84.0227, 10.7872], + [-83.9333, 10.7181], + [-83.663, 10.807], + [-83.6444, 10.9259] + ] + ] + }, + "properties": { + "NAME": "Costa Rica", + "NAME_LONG": "Costa Rica", + "ADM0_A3": "CRI", + "ISO_A2": "CR", + "ISO_A3": "CRI", + "WB_A2": "CR", + "WB_A3": "CRI" + }, + "id": 53 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-82.859, 21.9337], + [-82.6902, 21.8818], + [-82.5924, 21.7291], + [-82.5946, 21.5418], + [-82.8356, 21.4447], + [-83.0785, 21.4692], + [-82.9692, 21.5913], + [-83.0735, 21.7606], + [-82.9895, 21.9484], + [-82.859, 21.9337] + ] + ], + [ + [ + [-75.095, 19.8972], + [-75.137, 19.9716], + [-75.1602, 19.9706], + [-75.2329, 19.9001], + [-75.6047, 19.892], + [-75.7218, 19.9575], + [-75.9801, 19.9524], + [-76.2482, 19.9906], + [-76.5244, 19.9439], + [-76.8664, 19.9377], + [-76.9589, 19.8911], + [-77.189, 19.9126], + [-77.3585, 19.8645], + [-77.7372, 19.8557], + [-77.6204, 20.0203], + [-77.4014, 20.1981], + [-77.1818, 20.2949], + [-77.1134, 20.5124], + [-77.3148, 20.7091], + [-77.4934, 20.6775], + [-78.0655, 20.7117], + [-78.272, 20.9011], + [-78.4947, 21.0479], + [-78.5633, 21.3834], + [-78.7665, 21.6397], + [-79.2494, 21.5519], + [-80.2699, 21.887], + [-80.4372, 22.0412], + [-80.9921, 22.0543], + [-81.1976, 22.2125], + [-81.2913, 22.0976], + [-81.3961, 22.1707], + [-81.6515, 22.213], + [-81.8245, 22.1889], + [-82.0882, 22.3422], + [-82.1187, 22.4318], + [-81.6835, 22.4636], + [-81.6433, 22.5727], + [-81.8775, 22.6797], + [-82.6329, 22.6802], + [-83.0861, 22.4628], + [-83.1669, 22.3395], + [-83.2874, 22.3187], + [-83.4155, 22.1861], + [-83.9254, 22.1715], + [-83.993, 21.9514], + [-84.3052, 21.8845], + [-84.66, 21.9121], + [-84.5833, 22.0075], + [-84.3221, 22.048], + [-84.4293, 22.2017], + [-84.391, 22.3528], + [-84.0211, 22.6787], + [-83.8728, 22.7508], + [-83.3694, 22.894], + [-83.2076, 23.0027], + [-82.5755, 23.054], + [-82.4069, 23.1474], + [-82.0332, 23.2005], + [-81.5812, 23.1578], + [-81.4807, 23.1003], + [-81.2722, 23.142], + [-81.1849, 23.0521], + [-80.6222, 23.0895], + [-80.5568, 23.0074], + [-80.2796, 22.912], + [-80.0246, 22.9467], + [-79.9879, 22.8841], + [-79.7002, 22.7469], + [-79.5118, 22.5346], + [-79.3418, 22.4132], + [-79.1487, 22.3776], + [-78.7818, 22.3906], + [-78.3815, 22.2466], + [-78.3014, 22.1638], + [-78.0651, 22.087], + [-77.895, 21.8769], + [-77.6647, 21.7812], + [-77.5076, 21.8625], + [-77.0699, 21.5958], + [-76.9626, 21.4726], + [-76.6536, 21.2941], + [-76.3876, 21.2843], + [-76.1378, 21.1672], + [-76.1168, 21.0915], + [-75.8218, 21.1369], + [-75.5785, 21.0134], + [-75.7839, 20.7464], + [-75.7089, 20.6906], + [-75.3942, 20.739], + [-75.1491, 20.6831], + [-74.9984, 20.7008], + [-74.6052, 20.4857], + [-74.4011, 20.3073], + [-74.2136, 20.311], + [-74.142, 20.1826], + [-74.2674, 20.0683], + [-74.813, 20.0373], + [-75.095, 19.8972] + ] + ] + ] + }, + "properties": { + "NAME": "Cuba", + "NAME_LONG": "Cuba", + "ADM0_A3": "CUB", + "ISO_A2": "CU", + "ISO_A3": "CUB", + "WB_A2": "CU", + "WB_A3": "CUB" + }, + "id": 55 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.0123, 35.0638], + [33.9065, 35.0691], + [33.6794, 35.0339], + [33.4768, 35.0574], + [33.4768, 35.0948], + [33.4003, 35.1977], + [33.1903, 35.1899], + [33.0958, 35.1697], + [32.8549, 35.0792], + [32.7114, 35.1816], + [32.9294, 35.233], + [32.9204, 35.3978], + [33.4275, 35.3289], + [33.6603, 35.3593], + [34.0356, 35.4714], + [34.1817, 35.5542], + [34.5728, 35.6435], + [33.9714, 35.3213], + [33.8999, 35.1645], + [34.0123, 35.0638] + ] + ] + }, + "properties": { + "NAME": "N. Cyprus", + "NAME_LONG": "Northern Cyprus", + "ADM0_A3": "CYN", + "ISO_A2": "-99", + "ISO_A3": "-99", + "WB_A2": "-99", + "WB_A3": "-99" + }, + "id": 58 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [34.022, 35.057], + [33.8918, 34.9581], + [33.8981, 35.0613], + [34.022, 35.057] + ] + ], + [ + [ + [33.7029, 34.9879], + [33.7015, 34.9729], + [33.6056, 34.8218], + [33.0156, 34.6344], + [32.7607, 34.6532], + [32.4133, 34.7535], + [32.3294, 34.8864], + [32.3723, 35.0415], + [32.5848, 35.1725], + [32.6598, 35.1871], + [32.6915, 35.1837], + [32.7127, 35.1338], + [32.8065, 35.0948], + [32.8159, 35.0628], + [32.9219, 35.0723], + [33.1739, 35.1627], + [33.4159, 35.1603], + [33.4573, 35.1011], + [33.4463, 35.0012], + [33.497, 35.0261], + [33.7029, 34.9879] + ] + ] + ] + }, + "properties": { + "NAME": "Cyprus", + "NAME_LONG": "Cyprus", + "ADM0_A3": "CYP", + "ISO_A2": "CY", + "ISO_A3": "CYP", + "WB_A2": "CY", + "WB_A3": "CYP" + }, + "id": 59 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [14.8104, 50.8584], + [14.9965, 51.0078], + [15.2271, 50.9774], + [15.3497, 50.7837], + [15.7674, 50.7442], + [15.8482, 50.6752], + [16.3316, 50.644], + [16.3342, 50.3719], + [16.7012, 50.0949], + [16.9603, 50.232], + [16.9158, 50.4311], + [17.1854, 50.3757], + [17.3348, 50.27], + [17.6064, 50.2582], + [17.5842, 50.1459], + [17.8394, 49.9736], + [18.0916, 50.0172], + [18.3069, 49.9097], + [18.5592, 49.9072], + [18.6373, 49.7003], + [18.7735, 49.6758], + [18.8332, 49.5103], + [18.5356, 49.4817], + [18.19, 49.2769], + [18.1029, 49.0923], + [17.8603, 48.9217], + [17.5351, 48.813], + [17.1675, 48.8598], + [16.945, 48.6042], + [16.873, 48.719], + [16.4357, 48.7945], + [16.3583, 48.7273], + [16.0323, 48.7581], + [15.8185, 48.8723], + [15.6813, 48.8585], + [15.2629, 48.9826], + [14.9821, 49.0079], + [14.9193, 48.7616], + [14.8004, 48.7765], + [14.6957, 48.5895], + [14.4436, 48.6365], + [14.3157, 48.5579], + [14.0748, 48.5917], + [13.8157, 48.7664], + [13.6087, 48.9462], + [13.4823, 48.9376], + [13.1785, 49.1183], + [12.9998, 49.2949], + [12.7978, 49.3278], + [12.3836, 49.7429], + [12.5241, 49.905], + [12.2469, 50.045], + [12.1073, 50.2909], + [12.3365, 50.2586], + [12.5102, 50.3888], + [12.6788, 50.3937], + [13.2323, 50.582], + [13.4479, 50.5973], + [13.6019, 50.7122], + [13.8345, 50.7237], + [14.3819, 50.9209], + [14.4935, 51.0167], + [14.8104, 50.8584] + ] + ] + }, + "properties": { + "NAME": "Czechia", + "NAME_LONG": "Czech Republic", + "ADM0_A3": "CZE", + "ISO_A2": "CZ", + "ISO_A3": "CZE", + "WB_A2": "CZ", + "WB_A3": "CZE" + }, + "id": 60 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [14.2101, 53.9385], + [14.2008, 53.8782], + [13.8753, 53.8441], + [13.9317, 53.8993], + [13.9019, 53.9698], + [14.2101, 53.9385] + ] + ], + [ + [ + [13.3909, 54.6505], + [13.6405, 54.5857], + [13.4997, 54.3449], + [13.347, 54.2375], + [13.1664, 54.5494], + [13.3909, 54.6505] + ] + ], + [ + [ + [9.4375, 54.8104], + [9.5544, 54.8471], + [9.9705, 54.7626], + [10.02, 54.5458], + [10.2039, 54.461], + [10.7771, 54.3151], + [11.0774, 54.3422], + [11.0666, 54.1839], + [10.7526, 54.0439], + [10.8874, 53.9639], + [11.1751, 54.018], + [11.459, 53.9167], + [11.6579, 54.1422], + [12.1089, 54.183], + [12.3421, 54.3039], + [12.502, 54.4736], + [12.876, 54.3654], + [13.4793, 54.1252], + [13.6834, 54.168], + [13.7581, 54.031], + [13.8901, 53.9129], + [13.8185, 53.878], + [13.9842, 53.774], + [14.2639, 53.7], + [14.4094, 53.2724], + [14.3433, 53.0486], + [14.1445, 52.9599], + [14.216, 52.818], + [14.6448, 52.5769], + [14.5398, 52.4219], + [14.7614, 52.0767], + [14.5858, 51.8039], + [14.7195, 51.6756], + [14.7322, 51.5158], + [14.9451, 51.4492], + [15.0195, 51.2717], + [14.9553, 51.064], + [14.8104, 50.8584], + [14.4935, 51.0167], + [14.3819, 50.9209], + [13.8345, 50.7237], + [13.6019, 50.7122], + [13.4479, 50.5973], + [13.2323, 50.582], + [12.6788, 50.3937], + [12.5102, 50.3888], + [12.3365, 50.2586], + [12.1073, 50.2909], + [12.2469, 50.045], + [12.5241, 49.905], + [12.3836, 49.7429], + [12.7978, 49.3278], + [12.9998, 49.2949], + [13.1785, 49.1183], + [13.4823, 48.9376], + [13.6087, 48.9462], + [13.8157, 48.7664], + [13.7143, 48.5232], + [13.5207, 48.5846], + [13.4056, 48.3766], + [13.0328, 48.2636], + [12.745, 48.1206], + [12.9912, 47.8471], + [12.892, 47.7235], + [13.0748, 47.6467], + [13.0373, 47.493], + [12.7789, 47.5548], + [12.7448, 47.6654], + [12.4241, 47.6916], + [12.1656, 47.604], + [11.6205, 47.5897], + [11.2588, 47.4007], + [11.0837, 47.3895], + [10.6079, 47.5623], + [10.3059, 47.3022], + [9.9487, 47.5242], + [9.5475, 47.5345], + [9.2732, 47.6501], + [8.9062, 47.6518], + [8.5582, 47.8012], + [8.0872, 47.5674], + [7.586, 47.5846], + [7.5259, 47.7832], + [7.6189, 48.0027], + [7.5726, 48.095], + [7.752, 48.3553], + [7.8103, 48.615], + [8.1027, 48.8213], + [8.1887, 48.9657], + [7.9319, 49.0348], + [7.6488, 49.0357], + [7.3911, 49.17], + [7.2681, 49.1056], + [6.8435, 49.2111], + [6.7256, 49.1556], + [6.4945, 49.4355], + [6.3453, 49.4553], + [6.5001, 49.7945], + [6.2227, 49.8871], + [6.1175, 50.1205], + [6.3377, 50.3681], + [6.2329, 50.5871], + [5.9949, 50.7499], + [6.0637, 50.9075], + [5.9829, 51.0747], + [6.1836, 51.3357], + [6.1933, 51.5093], + [5.928, 51.8067], + [6.2252, 51.8625], + [6.3825, 51.8276], + [6.7167, 51.8993], + [6.7659, 52.1084], + [7.0263, 52.2306], + [7.0482, 52.3651], + [6.6951, 52.4756], + [6.7018, 52.6191], + [7.0367, 52.6474], + [7.1836, 52.9661], + [7.1946, 53.245], + [7.0233, 53.4505], + [7.2261, 53.6665], + [7.9514, 53.7219], + [8.168, 53.5532], + [8.4839, 53.6836], + [8.5733, 53.8577], + [8.8607, 53.831], + [9.0183, 54.0979], + [8.6519, 54.2748], + [8.6292, 54.3877], + [9.0116, 54.5063], + [8.6887, 54.7353], + [8.6608, 54.8963], + [8.8242, 54.9059], + [9.4375, 54.8104] + ] + ] + ] + }, + "properties": { + "NAME": "Germany", + "NAME_LONG": "Germany", + "ADM0_A3": "DEU", + "ISO_A2": "DE", + "ISO_A3": "DEU", + "WB_A2": "DE", + "WB_A3": "DEU" + }, + "id": 61 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [43.2407, 11.4879], + [42.9237, 10.9988], + [42.7718, 10.9965], + [42.6156, 11.0897], + [42.3918, 11.0059], + [41.7987, 10.9707], + [41.7491, 11.538], + [41.8082, 11.7362], + [41.9364, 11.8274], + [42.3795, 12.4659], + [42.5216, 12.4962], + [42.6783, 12.36], + [42.7923, 12.4292], + [42.8521, 12.6117], + [43.1177, 12.7079], + [43.313, 12.4777], + [43.4114, 12.2418], + [43.3771, 12.0048], + [43.2066, 11.9578], + [43.0415, 11.7985], + [42.7541, 11.708], + [42.6841, 11.5823], + [43.1231, 11.5815], + [43.2407, 11.4879] + ] + ] + }, + "properties": { + "NAME": "Djibouti", + "NAME_LONG": "Djibouti", + "ADM0_A3": "DJI", + "ISO_A2": "DJ", + "ISO_A3": "DJI", + "WB_A2": "DJ", + "WB_A3": "DJI" + }, + "id": 62 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-61.3629, 15.2018], + [-61.4889, 15.5357], + [-61.3077, 15.5793], + [-61.2567, 15.2853], + [-61.3629, 15.2018] + ] + ] + }, + "properties": { + "NAME": "Dominica", + "NAME_LONG": "Dominica", + "ADM0_A3": "DMA", + "ISO_A2": "DM", + "ISO_A3": "DMA", + "WB_A2": "DM", + "WB_A3": "DMA" + }, + "id": 63 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [11.256, 54.9546], + [11.3689, 54.8811], + [11.7258, 54.8734], + [11.8486, 54.7732], + [11.7661, 54.6466], + [11.4518, 54.6284], + [11.0305, 54.7606], + [11.0881, 54.9442], + [11.256, 54.9546] + ] + ], + [ + [ + [14.889, 55.2332], + [15.1316, 55.1455], + [15.0727, 54.9916], + [14.6996, 55.0892], + [14.889, 55.2332] + ] + ], + [ + [ + [10.3384, 55.6101], + [10.5025, 55.4636], + [10.6979, 55.4403], + [10.8284, 55.3066], + [10.7337, 55.0718], + [10.3128, 55.0637], + [9.884, 55.2535], + [9.8882, 55.5087], + [10.3384, 55.6101] + ] + ], + [ + [ + [12.3285, 56.1269], + [12.6219, 56.0438], + [12.5127, 55.9208], + [12.6022, 55.7086], + [12.2482, 55.5461], + [12.2249, 55.4349], + [12.3924, 55.2553], + [12.0466, 55.1401], + [12.1702, 54.8383], + [11.9607, 54.6941], + [11.7497, 54.8731], + [11.8828, 54.9755], + [11.6494, 55.181], + [11.2454, 55.2148], + [11.2131, 55.4158], + [11.0711, 55.6769], + [11.2522, 55.7291], + [11.6409, 55.9434], + [11.7627, 55.7495], + [12.1654, 56.1037], + [12.3285, 56.1269] + ] + ], + [ + [ + [9.4375, 54.8104], + [8.8242, 54.9059], + [8.6608, 54.8963], + [8.6895, 55.1416], + [8.6177, 55.4379], + [8.2902, 55.5838], + [8.094, 55.5639], + [8.1936, 55.8118], + [8.3869, 55.9265], + [8.2824, 56.0759], + [8.1065, 56.1195], + [8.1224, 56.5517], + [8.4365, 56.5802], + [8.6011, 56.5011], + [8.8766, 56.7643], + [9.106, 56.8001], + [9.2887, 56.9971], + [9.1128, 57.0386], + [8.6795, 56.9525], + [8.4915, 56.7314], + [8.2704, 56.8432], + [8.5863, 57.1064], + [8.9805, 57.161], + [9.4121, 57.1654], + [9.5733, 57.2429], + [9.967, 57.5914], + [10.4304, 57.5705], + [10.5466, 57.4353], + [10.5391, 57.2367], + [10.2659, 56.9077], + [10.3609, 56.5617], + [10.7891, 56.5364], + [10.9641, 56.4484], + [10.75, 56.2161], + [10.377, 56.2033], + [10.259, 56.099], + [10.2454, 55.9146], + [9.5868, 55.4274], + [9.7103, 55.2487], + [9.4944, 55.1605], + [9.7386, 54.9809], + [9.4375, 54.8104] + ] + ] + ] + }, + "properties": { + "NAME": "Denmark", + "NAME_LONG": "Denmark", + "ADM0_A3": "DNK", + "ISO_A2": "DK", + "ISO_A3": "DNK", + "WB_A2": "DK", + "WB_A3": "DNK" + }, + "id": 64 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-71.7762, 18.0393], + [-71.7093, 18.3133], + [-71.9122, 18.4307], + [-72.0009, 18.5825], + [-71.8416, 18.618], + [-71.7188, 18.7842], + [-71.7837, 18.9963], + [-71.6391, 19.2121], + [-71.7765, 19.3275], + [-71.7039, 19.4146], + [-71.7574, 19.7101], + [-71.6486, 19.8967], + [-71.5046, 19.9103], + [-71.2121, 19.8371], + [-71.0009, 19.9377], + [-70.831, 19.9025], + [-70.6237, 19.7665], + [-70.4337, 19.7752], + [-70.3013, 19.6577], + [-69.8979, 19.636], + [-69.868, 19.4253], + [-69.6029, 19.229], + [-69.6085, 19.0935], + [-69.0425, 18.9868], + [-68.9794, 19.0329], + [-68.7397, 18.9644], + [-68.3562, 18.6566], + [-68.4443, 18.4195], + [-68.5745, 18.3782], + [-68.6584, 18.2109], + [-68.743, 18.2045], + [-68.8496, 18.3748], + [-69.2363, 18.4505], + [-69.5253, 18.4084], + [-69.6021, 18.4557], + [-69.8837, 18.471], + [-70.0166, 18.4114], + [-70.1581, 18.2426], + [-70.5528, 18.2043], + [-70.6014, 18.4119], + [-70.7038, 18.4301], + [-71.0611, 18.1421], + [-71.3093, 17.8164], + [-71.4172, 17.6048], + [-71.6309, 17.8168], + [-71.6588, 17.9533], + [-71.7762, 18.0393] + ] + ] + }, + "properties": { + "NAME": "Dominican Rep.", + "NAME_LONG": "Dominican Republic", + "ADM0_A3": "DOM", + "ISO_A2": "DO", + "ISO_A3": "DOM", + "WB_A2": "DO", + "WB_A3": "DOM" + }, + "id": 65 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [8.6025, 36.9395], + [8.6238, 36.8261], + [8.444, 36.7962], + [8.4079, 36.6426], + [8.1699, 36.5258], + [8.3492, 36.4488], + [8.3171, 36.1459], + [8.2414, 35.8277], + [8.3236, 35.6522], + [8.3137, 35.1031], + [8.2489, 34.902], + [8.2365, 34.6477], + [8.0941, 34.5301], + [7.8315, 34.4144], + [7.7743, 34.261], + [7.5175, 34.095], + [7.4798, 33.8939], + [7.553, 33.6587], + [7.6932, 33.4541], + [7.7507, 33.2077], + [8.0868, 33.0943], + [8.2829, 32.8364], + [8.3196, 32.5606], + [8.4827, 32.4348], + [9.045, 32.0718], + [9.2644, 31.2193], + [9.5197, 30.2289], + [9.2865, 30.1171], + [9.5497, 29.8023], + [9.6677, 29.6083], + [9.8261, 29.1285], + [9.8513, 28.786], + [9.777, 28.2676], + [9.9359, 27.8667], + [9.8216, 27.5057], + [9.7213, 27.2919], + [9.8255, 26.9206], + [9.9106, 26.8431], + [9.8358, 26.5042], + [9.4826, 26.3526], + [9.4012, 26.1134], + [9.9695, 25.3954], + [10.0214, 25.268], + [10.032, 24.8563], + [10.1934, 24.7499], + [10.2603, 24.5766], + [10.4502, 24.4769], + [10.7207, 24.5523], + [11.5086, 24.3138], + [11.5671, 24.2668], + [11.9689, 23.5174], + [11.0844, 22.9958], + [9.7233, 22.1934], + [8.6345, 21.5515], + [7.4827, 20.8726], + [6.61, 20.1429], + [5.8376, 19.4786], + [5.7493, 19.4337], + [4.2286, 19.1422], + [3.3084, 18.9817], + [3.1027, 19.1536], + [3.2582, 19.4104], + [3.1994, 19.5538], + [3.2168, 19.7941], + [2.946, 19.9417], + [2.4004, 20.0566], + [2.1824, 20.2785], + [2.0563, 20.215], + [1.7781, 20.3043], + [1.6492, 20.4121], + [1.644, 20.5227], + [1.1453, 20.7959], + [1.1465, 21.1017], + [-0.0104, 21.8582], + [-0.9636, 22.4813], + [-1.83, 23.0478], + [-2.5232, 23.501], + [-3.4485, 24.106], + [-4.8216, 24.9951], + [-6.1399, 25.7902], + [-7.297, 26.4707], + [-8.6824, 27.2854], + [-8.6824, 27.6614], + [-8.6824, 28.6659], + [-8.3835, 28.9058], + [-8.0697, 29.0793], + [-7.6195, 29.3894], + [-7.3496, 29.3834], + [-7.1469, 29.5092], + [-6.7835, 29.4463], + [-6.6996, 29.5162], + [-6.2733, 29.5791], + [-5.7562, 29.6141], + [-5.7212, 29.5232], + [-5.5395, 29.5232], + [-5.2739, 29.8866], + [-4.8756, 30.1802], + [-4.624, 30.285], + [-4.3724, 30.5086], + [-4.1557, 30.5855], + [-3.8342, 30.6275], + [-3.6455, 30.7113], + [-3.6595, 30.8371], + [-3.5547, 30.9559], + [-3.6359, 31.0957], + [-3.815, 31.2205], + [-3.6735, 31.3892], + [-3.6595, 31.6478], + [-2.8278, 31.7946], + [-2.9387, 32.0486], + [-2.5161, 32.1322], + [-1.2496, 32.0817], + [-1.289, 32.1509], + [-1.218, 32.3926], + [-1.0475, 32.517], + [-1.4233, 32.7424], + [-1.5588, 32.9336], + [-1.4995, 33.0602], + [-1.6742, 33.238], + [-1.6127, 33.5215], + [-1.7187, 33.8981], + [-1.6748, 34.106], + [-1.8096, 34.3725], + [-1.7507, 34.4942], + [-1.8711, 34.5966], + [-1.7877, 34.7567], + [-2.1938, 35.0036], + [-2.2226, 35.0893], + [-2.0524, 35.075], + [-1.7611, 35.1296], + [-1.5104, 35.2955], + [-1.2677, 35.3903], + [-1.1903, 35.5661], + [-0.825, 35.7685], + [-0.6826, 35.7174], + [-0.3485, 35.907], + [-0.1239, 35.7869], + [0.0345, 35.8633], + [0.1273, 36.0508], + [0.6633, 36.3326], + [0.8648, 36.3774], + [1.0448, 36.4869], + [1.9138, 36.5702], + [2.3098, 36.6305], + [2.633, 36.6051], + [2.9331, 36.8086], + [3.1794, 36.7428], + [3.2378, 36.8131], + [3.4607, 36.7751], + [3.8275, 36.9129], + [4.1048, 36.8837], + [4.4407, 36.9116], + [4.7871, 36.8954], + [5.1048, 36.7813], + [5.3044, 36.643], + [5.5762, 36.7614], + [6.197, 36.9023], + [6.3387, 37.0693], + [6.9094, 36.8931], + [7.239, 36.9715], + [7.3835, 37.083], + [7.7127, 36.9632], + [7.9085, 36.8496], + [8.2332, 36.9581], + [8.4976, 36.9042], + [8.6025, 36.9395] + ] + ] + }, + "properties": { + "NAME": "Algeria", + "NAME_LONG": "Algeria", + "ADM0_A3": "DZA", + "ISO_A2": "DZ", + "ISO_A3": "DZA", + "WB_A2": "DZ", + "WB_A3": "DZA" + }, + "id": 66 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-80.1151, -2.998], + [-80.2659, -3.0185], + [-80.2107, -2.7249], + [-80.0599, -2.6628], + [-79.9458, -2.7066], + [-80.1151, -2.998] + ] + ], + [ + [ + [-89.3081, -0.6856], + [-89.4347, -0.9293], + [-89.6314, -0.9167], + [-89.4132, -0.7135], + [-89.3081, -0.6856] + ] + ], + [ + [ + [-90.2406, -0.507], + [-90.1988, -0.6816], + [-90.3371, -0.777], + [-90.5445, -0.6816], + [-90.4877, -0.5255], + [-90.2406, -0.507] + ] + ], + [ + [ + [-91.4557, -0.2576], + [-91.4011, -0.4529], + [-91.5076, -0.4904], + [-91.6437, -0.4036], + [-91.6686, -0.2849], + [-91.4557, -0.2576] + ] + ], + [ + [ + [-90.7773, -0.1477], + [-90.552, -0.2781], + [-90.5868, -0.3637], + [-90.8321, -0.3227], + [-90.7773, -0.1477] + ] + ], + [ + [ + [-91.3397, 0.1538], + [-91.2093, -0.0107], + [-91.1846, -0.211], + [-90.9623, -0.442], + [-90.956, -0.6071], + [-90.7965, -0.7599], + [-90.9287, -0.9703], + [-91.1598, -1.0302], + [-91.3997, -1.0185], + [-91.5023, -0.8963], + [-91.4359, -0.7784], + [-91.0942, -0.5694], + [-91.352, -0.3072], + [-91.4233, -0.0286], + [-91.3397, 0.1538] + ] + ], + [ + [ + [-75.2835, -0.107], + [-75.4553, -0.1612], + [-75.4342, -0.403], + [-75.272, -0.5257], + [-75.297, -0.747], + [-75.2273, -0.9698], + [-75.4126, -0.9239], + [-75.56, -1.5026], + [-76.0912, -2.1289], + [-76.6846, -2.5736], + [-77.849, -2.9806], + [-78.1964, -3.3637], + [-78.3629, -3.4887], + [-78.5018, -3.9537], + [-78.6824, -4.3269], + [-78.6727, -4.551], + [-78.8531, -4.6523], + [-78.9002, -4.8437], + [-79.0093, -4.9601], + [-79.3032, -4.9612], + [-79.4506, -4.8102], + [-79.5072, -4.5316], + [-79.658, -4.4387], + [-79.7957, -4.4847], + [-80.0797, -4.309], + [-80.4085, -4.4775], + [-80.4885, -4.396], + [-80.4811, -3.9988], + [-80.3046, -4.0052], + [-80.1653, -3.89], + [-80.2164, -3.6316], + [-80.3407, -3.3935], + [-80.1356, -3.3276], + [-79.9532, -3.1974], + [-79.8346, -2.8068], + [-79.7251, -2.5698], + [-79.8395, -2.377], + [-79.9235, -2.5739], + [-80.1751, -2.5867], + [-80.3205, -2.7106], + [-80.4679, -2.6179], + [-80.6566, -2.4158], + [-80.9136, -2.3188], + [-80.9512, -2.2376], + [-80.745, -2.1029], + [-80.733, -1.904], + [-80.8495, -1.6158], + [-80.7443, -1.3438], + [-80.9162, -1.0655], + [-80.8164, -0.9463], + [-80.6163, -0.9414], + [-80.422, -0.5996], + [-80.4965, -0.3814], + [-80.3712, -0.2228], + [-80.2318, -0.1397], + [-80.0665, 0.0522], + [-80.017, 0.5589], + [-80.0903, 0.6522], + [-80.0758, 0.8161], + [-79.8622, 0.8764], + [-79.7656, 0.9551], + [-79.5718, 0.9837], + [-79.4565, 1.0725], + [-79.1473, 1.1096], + [-79.0718, 1.2095], + [-78.9578, 1.1634], + [-78.8287, 1.4343], + [-78.5701, 1.1958], + [-78.12, 0.9212], + [-77.7279, 0.8433], + [-77.6456, 0.7163], + [-77.4681, 0.6509], + [-77.4244, 0.4083], + [-77.2069, 0.3342], + [-77.1174, 0.3576], + [-76.8968, 0.2453], + [-76.7369, 0.2729], + [-76.5843, 0.2226], + [-76.408, 0.2545], + [-76.4159, 0.3954], + [-76.3116, 0.4585], + [-76.0535, 0.3635], + [-75.9271, 0.181], + [-75.7897, 0.0844], + [-75.6467, 0.0854], + [-75.2835, -0.107] + ] + ] + ] + }, + "properties": { + "NAME": "Ecuador", + "NAME_LONG": "Ecuador", + "ADM0_A3": "ECU", + "ISO_A2": "EC", + "ISO_A3": "ECU", + "WB_A2": "EC", + "WB_A3": "ECU" + }, + "id": 67 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.2003, 31.3143], + [34.2484, 31.2114], + [34.4804, 30.6512], + [34.5338, 30.4002], + [34.5995, 30.3445], + [34.8244, 29.7417], + [34.8867, 29.4901], + [34.7366, 29.3051], + [34.6746, 29.1065], + [34.6335, 28.7707], + [34.4069, 28.308], + [34.4553, 28.1675], + [34.4274, 27.9831], + [34.2395, 27.7941], + [34.0785, 27.8007], + [33.7634, 28.024], + [33.5647, 28.2971], + [33.4339, 28.3664], + [33.2287, 28.5694], + [33.145, 29.0317], + [32.8856, 29.2431], + [32.6808, 29.5999], + [32.6907, 29.7336], + [32.5635, 29.9724], + [32.3377, 29.5999], + [32.5915, 29.3495], + [32.6597, 29.0891], + [32.6255, 28.9727], + [32.8206, 28.7479], + [32.8689, 28.5789], + [33.0029, 28.4895], + [33.1265, 28.2875], + [33.5125, 27.9591], + [33.5579, 27.5368], + [33.6917, 27.3419], + [33.8254, 27.2597], + [33.8368, 27.1208], + [34.0036, 26.8489], + [33.9414, 26.6535], + [34.014, 26.6116], + [34.3387, 26.0018], + [34.5466, 25.725], + [34.6819, 25.4287], + [34.9898, 24.905], + [35.2355, 24.4001], + [35.3919, 24.2828], + [35.5139, 23.9771], + [35.4894, 23.497], + [35.6953, 22.9321], + [35.886, 22.7357], + [36.1978, 22.6517], + [36.4398, 22.3564], + [36.8954, 22.0661], + [36.8836, 21.9957], + [35.4864, 21.9956], + [34.3231, 21.9955], + [33.1811, 21.9954], + [31.4355, 21.9954], + [31.4906, 22.1482], + [31.3595, 22.1881], + [31.2484, 21.9944], + [30.4315, 21.9945], + [29.4582, 21.9946], + [28.2903, 21.9948], + [27.317, 21.9949], + [26.3438, 21.9951], + [24.9812, 21.9954], + [24.9812, 22.579], + [24.9812, 23.7463], + [24.9812, 25.2054], + [24.9812, 26.6645], + [24.9812, 27.6665], + [24.9812, 29.1814], + [24.8738, 29.4683], + [24.8116, 29.8909], + [24.6883, 30.1442], + [24.9077, 30.4987], + [24.9949, 30.7851], + [24.8595, 31.146], + [24.8613, 31.3804], + [25.1509, 31.6565], + [25.1909, 31.5315], + [25.4019, 31.5032], + [25.8241, 31.6149], + [25.9668, 31.6166], + [26.3622, 31.5219], + [26.9655, 31.4497], + [27.3206, 31.381], + [27.3835, 31.2685], + [27.6603, 31.1802], + [27.8633, 31.2335], + [27.8971, 31.1144], + [28.3184, 31.0598], + [28.405, 31.0865], + [28.818, 30.9512], + [29.0281, 30.8271], + [29.2189, 30.838], + [29.5033, 30.9567], + [29.8384, 31.1541], + [30.0422, 31.3205], + [30.2678, 31.2573], + [30.3622, 31.5087], + [30.7407, 31.4055], + [30.9094, 31.4238], + [31.221, 31.5799], + [31.5237, 31.4497], + [31.8379, 31.5253], + [31.7902, 31.3435], + [32.057, 31.0797], + [32.2482, 31.1069], + [32.3005, 31.2814], + [32.5095, 31.1069], + [32.7313, 31.0388], + [32.9688, 31.0865], + [33.0986, 31.1895], + [33.1877, 31.0617], + [33.4995, 31.1281], + [33.648, 31.1173], + [34.047, 31.2292], + [34.2003, 31.3143] + ] + ] + }, + "properties": { + "NAME": "Egypt", + "NAME_LONG": "Egypt", + "ADM0_A3": "EGY", + "ISO_A2": "EG", + "ISO_A3": "EGY", + "WB_A2": "EG", + "WB_A3": "EGY" + }, + "id": 68 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [40.0262, 15.8826], + [40.1389, 15.7922], + [40.1638, 15.6444], + [40.0608, 15.5922], + [40.0262, 15.8826] + ] + ], + [ + [ + [43.1177, 12.7079], + [42.8521, 12.6117], + [42.7923, 12.4292], + [42.6783, 12.36], + [42.5216, 12.4962], + [42.3795, 12.4659], + [42.1373, 12.7733], + [41.9466, 12.8762], + [41.7118, 13.2479], + [41.192, 13.6159], + [41.0436, 13.8725], + [40.8332, 14.106], + [40.4216, 14.2738], + [40.2771, 14.4046], + [40.1046, 14.466], + [39.9112, 14.4234], + [39.7669, 14.5048], + [39.4894, 14.5245], + [39.2082, 14.4402], + [39.0755, 14.6374], + [38.8661, 14.4937], + [38.4268, 14.4172], + [38.2293, 14.6797], + [38.0067, 14.7244], + [37.8915, 14.8795], + [37.565, 14.1167], + [37.2938, 14.4574], + [37.1211, 14.4208], + [37.0727, 14.2853], + [36.7481, 14.3321], + [36.5264, 14.2635], + [36.4236, 15.1115], + [36.5249, 15.2479], + [36.671, 15.7231], + [36.7595, 15.8375], + [36.8859, 16.1849], + [36.944, 16.2529], + [36.8773, 16.5273], + [36.985, 16.7657], + [37.0005, 17.0726], + [37.134, 17.0164], + [37.4034, 17.0299], + [37.5068, 17.3185], + [37.872, 17.4373], + [38.0154, 17.54], + [38.1606, 17.5573], + [38.3437, 17.6559], + [38.4593, 17.8907], + [38.6016, 18.0048], + [38.929, 17.3971], + [39.0559, 17.0341], + [39.1633, 16.6282], + [39.2356, 16.1087], + [39.3135, 15.8939], + [39.427, 15.8204], + [39.4828, 15.6149], + [39.5872, 15.5314], + [39.7183, 15.2639], + [39.8753, 15.5041], + [40.0724, 15.3507], + [40.0266, 15.2372], + [40.1594, 14.9822], + [40.3018, 14.9169], + [40.3757, 14.9867], + [40.5542, 14.9902], + [40.8081, 14.7028], + [41.1561, 14.6416], + [41.6209, 14.0636], + [41.6765, 13.9403], + [41.981, 13.8378], + [42.0996, 13.6544], + [42.2884, 13.5746], + [42.3794, 13.2226], + [42.5207, 13.2355], + [42.7376, 13.0177], + [42.7739, 12.8621], + [43.0864, 12.8209], + [43.1177, 12.7079] + ] + ] + ] + }, + "properties": { + "NAME": "Eritrea", + "NAME_LONG": "Eritrea", + "ADM0_A3": "ERI", + "ISO_A2": "ER", + "ISO_A3": "ERI", + "WB_A2": "ER", + "WB_A3": "ERI" + }, + "id": 69 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [33.9065, 35.0691], + [33.8981, 35.0613], + [33.8918, 34.9581], + [33.7818, 34.9762], + [33.7809, 34.9763], + [33.7015, 34.9729], + [33.7029, 34.9879], + [33.6794, 35.0339], + [33.9065, 35.0691] + ] + ] + }, + "properties": { + "NAME": "Dhekelia", + "NAME_LONG": "Dhekelia", + "ADM0_A3": "ESB", + "ISO_A2": "-99", + "ISO_A3": "-99", + "WB_A2": "-99", + "WB_A3": "-99" + }, + "id": 70 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-15.4156, 28.1415], + [-15.3778, 27.8523], + [-15.578, 27.7344], + [-15.786, 27.8442], + [-15.8161, 27.996], + [-15.7062, 28.1674], + [-15.4156, 28.1415] + ] + ], + [ + [ + [-16.1177, 28.5721], + [-16.3555, 28.3811], + [-16.4277, 28.1497], + [-16.5458, 28.024], + [-16.6763, 27.9971], + [-16.9161, 28.355], + [-16.5071, 28.4241], + [-16.3002, 28.5666], + [-16.1177, 28.5721] + ] + ], + [ + [ + [-14.2445, 28.1292], + [-14.1464, 28.4233], + [-13.9999, 28.7167], + [-13.8355, 28.7155], + [-13.8478, 28.3974], + [-13.9668, 28.228], + [-14.2445, 28.1292] + ] + ], + [ + [ + [-17.8658, 28.8406], + [-17.721, 28.7306], + [-17.8309, 28.4554], + [-18.0022, 28.7496], + [-17.8658, 28.8406] + ] + ], + [ + [ + [-13.4587, 29.1474], + [-13.482, 28.9995], + [-13.8597, 28.8594], + [-13.7506, 29.0806], + [-13.4587, 29.1474] + ] + ], + [ + [ + [1.5784, 39.1049], + [1.6231, 39.0292], + [1.3435, 38.8624], + [1.2122, 38.9032], + [1.3568, 39.0776], + [1.5784, 39.1049] + ] + ], + [ + [ + [3.1795, 39.9688], + [3.1248, 39.8111], + [3.4685, 39.7393], + [3.221, 39.3599], + [3.0608, 39.2691], + [2.9588, 39.3632], + [2.7617, 39.4002], + [2.6553, 39.5647], + [2.4927, 39.4702], + [2.3577, 39.6119], + [2.9333, 39.9145], + [3.1795, 39.9688] + ] + ], + [ + [ + [4.1168, 40.0596], + [4.3073, 39.9105], + [4.2481, 39.8165], + [3.8219, 40.0476], + [4.1168, 40.0596] + ] + ], + [ + [ + [-1.7941, 43.386], + [-1.7474, 43.291], + [-1.4035, 43.2433], + [-1.435, 43.0357], + [-1.2749, 43.0468], + [-0.9815, 42.957], + [-0.7597, 42.9465], + [-0.5612, 42.7735], + [-0.3074, 42.8318], + [-0.0389, 42.6851], + [0.6082, 42.688], + [0.6563, 42.8384], + [1.3191, 42.7134], + [1.4293, 42.5954], + [1.4479, 42.4346], + [1.707, 42.5028], + [2.0517, 42.3524], + [2.2774, 42.4286], + [2.4649, 42.3406], + [2.9337, 42.4702], + [3.181, 42.4315], + [3.1225, 42.1405], + [3.2357, 41.9655], + [3.1502, 41.8454], + [2.7785, 41.6456], + [2.2967, 41.4653], + [2.0603, 41.2746], + [1.5392, 41.1874], + [0.9904, 41.0397], + [0.7142, 40.8152], + [0.8724, 40.7071], + [0.5485, 40.5723], + [0.3506, 40.2849], + [0.2053, 40.1715], + [-0.1945, 39.7154], + [-0.3234, 39.5162], + [-0.21, 39.0787], + [-0.0098, 38.8697], + [0.2341, 38.7579], + [-0.0902, 38.5353], + [-0.3294, 38.47], + [-0.6095, 38.178], + [-0.6545, 37.9893], + [-0.8526, 37.7238], + [-0.9252, 37.5559], + [-1.3237, 37.562], + [-1.6709, 37.3633], + [-1.8127, 37.2071], + [-1.8987, 36.9501], + [-2.0712, 36.7753], + [-2.2036, 36.7371], + [-2.3617, 36.8368], + [-2.5769, 36.8113], + [-2.7567, 36.6804], + [-2.9333, 36.7517], + [-3.2279, 36.7548], + [-3.4152, 36.6955], + [-3.6011, 36.7426], + [-4.0567, 36.748], + [-4.4333, 36.7107], + [-4.5248, 36.5807], + [-4.7228, 36.493], + [-4.9027, 36.5065], + [-5.1866, 36.4112], + [-5.3388, 36.1411], + [-5.3584, 36.1411], + [-5.6118, 36.0065], + [-5.9172, 36.1841], + [-6.0368, 36.1895], + [-6.2184, 36.4025], + [-6.2349, 36.5758], + [-6.3947, 36.6369], + [-6.3589, 36.7858], + [-6.4996, 36.9597], + [-6.7449, 37.1014], + [-7.0294, 37.2055], + [-7.4144, 37.1928], + [-7.5297, 37.5672], + [-7.2686, 37.9492], + [-7.024, 38.0226], + [-6.9475, 38.1966], + [-7.1269, 38.1909], + [-7.3592, 38.4464], + [-7.2704, 38.7375], + [-7.0561, 38.8551], + [-6.9733, 39.014], + [-7.1675, 39.1135], + [-7.3267, 39.3413], + [-7.3135, 39.4574], + [-7.5573, 39.6798], + [-7.0358, 39.6893], + [-6.8797, 40.0092], + [-7.0431, 40.1814], + [-6.7944, 40.3564], + [-6.8571, 40.4421], + [-6.8367, 40.8402], + [-6.9425, 41.016], + [-6.818, 41.0541], + [-6.6466, 41.2676], + [-6.4959, 41.2949], + [-6.2059, 41.5703], + [-6.3659, 41.6636], + [-6.5553, 41.6749], + [-6.5242, 41.8674], + [-6.6568, 41.9331], + [-7.1454, 41.9875], + [-7.2515, 41.8637], + [-7.5884, 41.8242], + [-7.722, 41.8993], + [-8.0486, 41.8164], + [-8.2317, 41.886], + [-8.108, 42.0109], + [-8.2224, 42.1536], + [-8.6269, 42.051], + [-8.7508, 41.969], + [-8.8986, 42.1018], + [-8.7958, 42.2582], + [-8.8675, 42.4147], + [-8.823, 42.5695], + [-9.0709, 42.5961], + [-9.1414, 42.9214], + [-9.251, 43.0168], + [-9.2176, 43.1553], + [-9.0524, 43.1964], + [-8.8412, 43.3389], + [-8.506, 43.3315], + [-8.3082, 43.5463], + [-8.0593, 43.7094], + [-7.7738, 43.7426], + [-7.3671, 43.6801], + [-7.2301, 43.5686], + [-6.6487, 43.579], + [-6.5101, 43.5475], + [-6.2228, 43.5959], + [-5.4242, 43.5611], + [-5.1779, 43.4894], + [-4.7349, 43.4171], + [-4.1886, 43.4054], + [-3.8267, 43.497], + [-3.5544, 43.5169], + [-3.1124, 43.3541], + [-2.7558, 43.4503], + [-2.3674, 43.3157], + [-2.0989, 43.3041], + [-1.7941, 43.386] + ] + ] + ] + }, + "properties": { + "NAME": "Spain", + "NAME_LONG": "Spain", + "ADM0_A3": "ESP", + "ISO_A2": "ES", + "ISO_A3": "ESP", + "WB_A2": "ES", + "WB_A3": "ESP" + }, + "id": 71 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [22.6408, 58.5889], + [23.0911, 58.5709], + [23.0868, 58.395], + [22.7567, 58.2423], + [22.3234, 58.2066], + [21.8678, 58.2646], + [22.1136, 58.498], + [22.322, 58.5848], + [22.6408, 58.5889] + ] + ], + [ + [ + [22.7205, 59.0116], + [22.9341, 58.984], + [23.0405, 58.8408], + [22.7367, 58.8065], + [22.5557, 58.687], + [22.325, 58.8966], + [22.5977, 59.0895], + [22.7205, 59.0116] + ] + ], + [ + [ + [28.0191, 59.4818], + [28.1865, 59.3749], + [27.9039, 59.2904], + [27.6944, 58.9759], + [27.4106, 58.7549], + [27.5549, 58.3952], + [27.4954, 58.2215], + [27.6731, 57.9128], + [27.4077, 57.689], + [27.3529, 57.5276], + [26.8385, 57.6099], + [26.4996, 57.5158], + [26.0247, 57.7744], + [26.0027, 57.846], + [25.6015, 57.9122], + [25.167, 58.0587], + [24.3062, 57.8682], + [24.4641, 58.0722], + [24.5288, 58.3507], + [24.3618, 58.3973], + [24.1117, 58.241], + [23.741, 58.3431], + [23.4932, 58.6734], + [23.5803, 58.7922], + [23.4224, 58.9087], + [23.4709, 59.2121], + [24.0921, 59.3126], + [24.0806, 59.3955], + [24.3997, 59.4788], + [25.1941, 59.5227], + [25.4077, 59.491], + [25.6848, 59.6286], + [26.665, 59.5519], + [26.8269, 59.477], + [27.8733, 59.4076], + [28.0191, 59.4818] + ] + ] + ] + }, + "properties": { + "NAME": "Estonia", + "NAME_LONG": "Estonia", + "ADM0_A3": "EST", + "ISO_A2": "EE", + "ISO_A3": "EST", + "WB_A2": "EE", + "WB_A3": "EST" + }, + "id": 72 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [42.3795, 12.4659], + [41.9364, 11.8274], + [41.8082, 11.7362], + [41.7491, 11.538], + [41.7987, 10.9707], + [42.3918, 11.0059], + [42.6156, 11.0897], + [42.7718, 10.9965], + [42.9237, 10.9988], + [42.6996, 10.6585], + [42.8363, 10.2081], + [42.9582, 10.1156], + [43.0677, 9.9225], + [43.1872, 9.8833], + [43.2353, 9.6918], + [43.419, 9.413], + [43.6215, 9.3369], + [44.0239, 8.9855], + [45.5144, 8.4965], + [46.9205, 8.0256], + [46.9792, 7.9966], + [47.9792, 7.9966], + [47.3959, 7.4342], + [46.4239, 6.4967], + [45.936, 5.9967], + [44.9415, 4.9115], + [44.9126, 4.8994], + [43.969, 4.954], + [43.5285, 4.8416], + [43.1193, 4.6477], + [42.9604, 4.5174], + [42.8689, 4.3268], + [42.7898, 4.2856], + [42.2973, 4.2017], + [42.1353, 4.2001], + [41.9235, 4.0706], + [41.885, 3.9772], + [41.6998, 3.9969], + [41.4295, 3.9489], + [41.1145, 3.9623], + [40.7637, 4.2849], + [39.8485, 3.8673], + [39.7451, 3.6606], + [39.575, 3.4979], + [39.4362, 3.4624], + [38.8952, 3.5136], + [38.4969, 3.6239], + [38.1019, 3.6126], + [37.9767, 3.7264], + [37.1119, 4.2823], + [36.8441, 4.4322], + [36.0413, 4.4437], + [35.9208, 4.6193], + [35.7845, 4.7642], + [35.7559, 5.0634], + [35.8042, 5.318], + [35.4302, 5.4272], + [35.3208, 5.3487], + [35.262, 5.5119], + [35.0987, 5.6225], + [34.9844, 5.841], + [34.9515, 6.0812], + [34.8447, 6.2487], + [34.7335, 6.6376], + [34.5247, 6.7529], + [34.5037, 6.89], + [34.2976, 6.9686], + [34.1958, 7.129], + [34.0311, 7.2554], + [34.0065, 7.4099], + [33.7161, 7.6572], + [33.4623, 7.7495], + [33.0513, 7.8011], + [32.9898, 7.9172], + [33.2069, 8.2407], + [33.1741, 8.4045], + [33.6001, 8.464], + [33.6955, 8.3729], + [33.9708, 8.4454], + [34.1119, 8.6266], + [34.0707, 9.4546], + [34.0982, 9.6797], + [34.3249, 10.2687], + [34.2795, 10.5655], + [34.4373, 10.7957], + [34.5871, 10.8793], + [34.8385, 10.7291], + [34.9338, 10.8453], + [34.9143, 10.964], + [34.9803, 11.1553], + [34.9471, 11.2749], + [35.0731, 11.549], + [35.0482, 11.7714], + [35.2156, 11.8966], + [35.6169, 12.5752], + [35.7284, 12.6744], + [36.1236, 12.7214], + [36.1144, 12.9339], + [36.2336, 13.3616], + [36.3821, 13.571], + [36.4582, 13.8201], + [36.4366, 13.9912], + [36.5264, 14.2635], + [36.7481, 14.3321], + [37.0727, 14.2853], + [37.1211, 14.4208], + [37.2938, 14.4574], + [37.565, 14.1167], + [37.8915, 14.8795], + [38.0067, 14.7244], + [38.2293, 14.6797], + [38.4268, 14.4172], + [38.8661, 14.4937], + [39.0755, 14.6374], + [39.2082, 14.4402], + [39.4894, 14.5245], + [39.7669, 14.5048], + [39.9112, 14.4234], + [40.1046, 14.466], + [40.2771, 14.4046], + [40.4216, 14.2738], + [40.8332, 14.106], + [41.0436, 13.8725], + [41.192, 13.6159], + [41.7118, 13.2479], + [41.9466, 12.8762], + [42.1373, 12.7733], + [42.3795, 12.4659] + ] + ] + }, + "properties": { + "NAME": "Ethiopia", + "NAME_LONG": "Ethiopia", + "ADM0_A3": "ETH", + "ISO_A2": "ET", + "ISO_A3": "ETH", + "WB_A2": "ET", + "WB_A3": "ETH" + }, + "id": 73 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [22.8335, 60.1931], + [22.8469, 60.111], + [22.7305, 60.0466], + [22.4699, 59.9975], + [22.4665, 60.1837], + [22.8335, 60.1931] + ] + ], + [ + [ + [28.9541, 69.0273], + [28.4562, 68.9001], + [28.8015, 68.8355], + [28.4474, 68.5149], + [28.6638, 68.204], + [29.2987, 68.0818], + [29.6512, 67.8236], + [30.0094, 67.6858], + [29.9162, 67.5081], + [29.5198, 67.2982], + [29.1001, 66.9912], + [29.0892, 66.8375], + [29.5245, 66.4912], + [29.5932, 66.3459], + [29.9002, 66.1081], + [30.1117, 65.712], + [29.7029, 65.6294], + [29.7201, 65.3291], + [29.8205, 65.0937], + [29.5881, 64.9914], + [29.7803, 64.7956], + [30.1705, 64.6817], + [29.9658, 64.5786], + [30.0931, 64.3612], + [30.5585, 64.2197], + [30.5093, 63.9914], + [30.2015, 63.7926], + [29.9808, 63.7415], + [30.4887, 63.4621], + [30.8209, 63.3757], + [31.2257, 63.196], + [31.5695, 62.9059], + [31.2222, 62.4917], + [30.635, 62.184], + [29.7791, 61.5931], + [29.2032, 61.2459], + [28.7976, 61.0968], + [27.8079, 60.553], + [27.4568, 60.4637], + [27.0544, 60.5468], + [26.6873, 60.4182], + [26.324, 60.383], + [26.0946, 60.4233], + [25.7355, 60.2473], + [25.1975, 60.2452], + [25.177, 60.1833], + [24.2959, 60.0722], + [23.2372, 59.898], + [23.2051, 60.0497], + [23.0594, 60.0397], + [22.8672, 60.1837], + [22.7362, 60.2382], + [22.6276, 60.3754], + [22.0645, 60.4363], + [21.7739, 60.6039], + [21.47, 60.6083], + [21.3259, 60.8349], + [21.3357, 61.0046], + [21.5435, 61.2251], + [21.5103, 61.5195], + [21.6234, 61.5459], + [21.3714, 61.9391], + [21.2366, 61.985], + [21.339, 62.3555], + [21.1156, 62.4958], + [21.1135, 62.7812], + [21.3828, 62.8746], + [21.6154, 63.2039], + [21.9055, 63.1754], + [22.3737, 63.3214], + [22.4972, 63.623], + [22.9224, 63.8017], + [23.6045, 64.0277], + [23.7244, 64.2089], + [24.3441, 64.5307], + [24.4229, 64.6756], + [24.7731, 64.8658], + [25.4435, 64.9668], + [25.2825, 65.1914], + [25.3518, 65.4841], + [25.0855, 65.6052], + [24.6711, 65.645], + [24.5188, 65.796], + [24.1631, 65.8227], + [24.0196, 66.0489], + [23.7242, 66.2066], + [23.6423, 66.4363], + [23.8819, 66.5635], + [24.0013, 66.8124], + [23.5813, 67.1531], + [23.7652, 67.4201], + [23.5535, 67.587], + [23.4989, 67.8822], + [23.6612, 67.9329], + [23.1517, 68.1303], + [23.0522, 68.2982], + [22.6076, 68.4249], + [22.0722, 68.477], + [21.4636, 68.6869], + [20.9346, 68.967], + [20.6232, 69.0364], + [21.3136, 69.2914], + [21.6629, 69.2632], + [22.0231, 69.012], + [22.5965, 68.7246], + [23.1976, 68.618], + [23.7348, 68.7154], + [23.929, 68.8162], + [24.6634, 68.6661], + [25.1176, 68.6377], + [25.2013, 68.8126], + [25.6516, 68.8835], + [25.8011, 69.0132], + [25.7341, 69.1913], + [26.032, 69.6967], + [26.5007, 69.9183], + [27.3118, 69.9295], + [27.8669, 70.0753], + [28.4046, 69.8023], + [29.1312, 69.6742], + [29.3445, 69.4644], + [28.8648, 69.2166], + [28.9541, 69.0273] + ] + ] + ] + }, + "properties": { + "NAME": "Finland", + "NAME_LONG": "Finland", + "ADM0_A3": "FIN", + "ISO_A2": "FI", + "ISO_A3": "FIN", + "WB_A2": "FI", + "WB_A3": "FIN" + }, + "id": 74 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [178.2727, -17.3517], + [178.2796, -17.4074], + [178.6023, -17.65], + [178.5949, -17.926], + [178.6846, -18.0704], + [178.4702, -18.1419], + [178.277, -18.1463], + [178.1683, -18.2485], + [177.8272, -18.2345], + [177.3359, -18.1056], + [177.2516, -17.9522], + [177.2821, -17.8517], + [177.4353, -17.7433], + [177.3889, -17.6406], + [177.6221, -17.4547], + [177.8333, -17.3665], + [178.2727, -17.3517] + ] + ], + [ + [ + [179.9038, -16.2311], + [179.7385, -16.4592], + [179.5979, -16.5398], + [179.4888, -16.7076], + [179.5481, -16.766], + [179.8511, -16.5086], + [179.9038, -16.7177], + [179.5969, -16.7888], + [179.2969, -16.8068], + [179.2664, -16.6899], + [179.0444, -16.8238], + [178.8838, -16.8577], + [178.7053, -16.9988], + [178.6023, -16.7797], + [178.6809, -16.6681], + [178.917, -16.4706], + [179.2404, -16.3981], + [179.7644, -16.1814], + [180, -16.1491], + [180, -16.169], + [179.9038, -16.2311] + ] + ] + ] + }, + "properties": { + "NAME": "Fiji", + "NAME_LONG": "Fiji", + "ADM0_A3": "FJI", + "ISO_A2": "FJ", + "ISO_A3": "FJI", + "WB_A2": "FJ", + "WB_A3": "FJI" + }, + "id": 75 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-59.3649, -51.3549], + [-59.2618, -51.457], + [-59.5225, -51.6183], + [-59.8717, -51.949], + [-60.2599, -51.9854], + [-60.3604, -52.1536], + [-60.5366, -52.2171], + [-60.7968, -52.1721], + [-60.8868, -52.0362], + [-60.3999, -51.9166], + [-60.6102, -51.7428], + [-60.2488, -51.6116], + [-60.0296, -51.3925], + [-59.3928, -51.4328], + [-59.3649, -51.3549] + ] + ], + [ + [ + [-58.7335, -51.3283], + [-58.4814, -51.301], + [-58.3291, -51.4163], + [-57.9064, -51.3766], + [-57.8026, -51.5495], + [-57.8638, -51.7263], + [-58.1444, -51.7623], + [-58.6045, -52.002], + [-58.9477, -52.0566], + [-59.1383, -51.9833], + [-59.2217, -52.2072], + [-59.386, -52.1119], + [-59.6283, -52.1106], + [-59.5813, -51.9113], + [-59.3638, -51.8224], + [-59.1007, -51.6218], + [-59.0843, -51.406], + [-58.7335, -51.3283] + ] + ] + ] + }, + "properties": { + "NAME": "Falkland Is.", + "NAME_LONG": "Falkland Islands", + "ADM0_A3": "FLK", + "ISO_A2": "FK", + "ISO_A3": "FLK", + "WB_A2": "-99", + "WB_A3": "-99" + }, + "id": 76 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [55.5013, -20.8732], + [55.6506, -20.898], + [55.8545, -21.157], + [55.8208, -21.325], + [55.5545, -21.3635], + [55.3545, -21.2746], + [55.2254, -21.0483], + [55.303, -20.9052], + [55.5013, -20.8732] + ] + ], + [ + [ + [-51.6832, 4.0394], + [-51.9884, 3.7046], + [-52.0128, 3.6191], + [-52.3532, 3.0584], + [-52.5716, 2.6386], + [-52.5535, 2.5734], + [-52.7077, 2.3589], + [-52.9597, 2.1752], + [-53.2342, 2.251], + [-53.3441, 2.3496], + [-53.5318, 2.247], + [-53.7482, 2.3193], + [-53.8668, 2.3049], + [-54.1349, 2.1107], + [-54.4766, 2.2141], + [-54.6153, 2.3263], + [-54.5203, 2.3489], + [-54.3594, 2.508], + [-54.2125, 2.7764], + [-54.1634, 2.9697], + [-54.1905, 3.1781], + [-54.003, 3.4554], + [-53.9888, 3.611], + [-54.1874, 3.8147], + [-54.3552, 4.0665], + [-54.4508, 4.4842], + [-54.4355, 4.7094], + [-54.4821, 4.9128], + [-54.4302, 5.0534], + [-54.171, 5.3484], + [-54.0611, 5.4365], + [-53.9443, 5.7446], + [-53.7767, 5.7142], + [-53.5173, 5.5808], + [-53.2517, 5.5486], + [-52.9946, 5.4576], + [-52.4023, 4.9738], + [-52.0941, 4.7581], + [-51.9313, 4.5904], + [-51.8015, 4.6127], + [-51.6507, 4.19], + [-51.6832, 4.0394] + ] + ], + [ + [ + [-60.979, 14.7847], + [-60.8104, 14.462], + [-61.006, 14.4763], + [-61.2288, 14.822], + [-61.102, 14.8662], + [-60.979, 14.7847] + ] + ], + [ + [ + [-61.6046, 16.2823], + [-61.5577, 16.0863], + [-61.6949, 15.9492], + [-61.7686, 16.0876], + [-61.7708, 16.3488], + [-61.6046, 16.2823] + ] + ], + [ + [ + [9.4494, 42.6826], + [9.5281, 42.5635], + [9.5527, 42.113], + [9.4032, 41.9529], + [9.4016, 41.7064], + [9.2107, 41.4409], + [8.9357, 41.4892], + [8.6956, 41.7294], + [8.8054, 41.9069], + [8.738, 42.0439], + [8.5658, 42.1745], + [8.6675, 42.5097], + [9.1071, 42.7259], + [9.3425, 42.7491], + [9.4494, 42.6826] + ] + ], + [ + [ + [5.7907, 49.5378], + [5.9607, 49.4413], + [6.1361, 49.4953], + [6.3453, 49.4553], + [6.4945, 49.4355], + [6.7256, 49.1556], + [6.8435, 49.2111], + [7.2681, 49.1056], + [7.3911, 49.17], + [7.6488, 49.0357], + [7.9319, 49.0348], + [8.1887, 48.9657], + [8.1027, 48.8213], + [7.8103, 48.615], + [7.752, 48.3553], + [7.5726, 48.095], + [7.6189, 48.0027], + [7.5259, 47.7832], + [7.586, 47.5846], + [7.3785, 47.4306], + [7.1037, 47.4963], + [7.0443, 47.3405], + [6.6654, 47.0213], + [6.4426, 46.9442], + [6.4292, 46.7608], + [6.1319, 46.5956], + [6.0642, 46.4711], + [6.2141, 46.3155], + [6.4829, 46.4486], + [6.7627, 46.4293], + [6.8539, 46.1226], + [7.0221, 45.9253], + [6.8008, 45.8265], + [6.7959, 45.7181], + [6.9634, 45.6407], + [6.9828, 45.5111], + [7.1607, 45.4109], + [7.0622, 45.2185], + [6.8441, 45.1301], + [6.6027, 45.1034], + [6.7279, 44.9287], + [6.9828, 44.847], + [7.019, 44.7389], + [6.8388, 44.5029], + [6.8661, 44.3721], + [7.0335, 44.2429], + [7.3808, 44.1229], + [7.6247, 44.1801], + [7.6919, 44.0846], + [7.4779, 43.8655], + [7.5023, 43.7922], + [7.4375, 43.7434], + [7.3658, 43.7227], + [6.9756, 43.5469], + [6.894, 43.4276], + [6.7311, 43.4078], + [6.6798, 43.2016], + [6.027, 43.0782], + [5.5378, 43.2074], + [5.347, 43.2159], + [5.3389, 43.3343], + [5.0648, 43.328], + [5.0223, 43.5522], + [4.8203, 43.3464], + [4.5663, 43.3711], + [4.513, 43.4558], + [4.2059, 43.4599], + [3.9393, 43.5325], + [3.3854, 43.2839], + [3.114, 43.1063], + [3.039, 42.9428], + [3.0518, 42.5549], + [3.181, 42.4315], + [2.9337, 42.4702], + [2.4649, 42.3406], + [2.2774, 42.4286], + [2.0517, 42.3524], + [1.707, 42.5028], + [1.722, 42.6099], + [1.4293, 42.5954], + [1.3191, 42.7134], + [0.6563, 42.8384], + [0.6082, 42.688], + [-0.0389, 42.6851], + [-0.3074, 42.8318], + [-0.5612, 42.7735], + [-0.7597, 42.9465], + [-0.9815, 42.957], + [-1.2749, 43.0468], + [-1.435, 43.0357], + [-1.4035, 43.2433], + [-1.7474, 43.291], + [-1.7941, 43.386], + [-1.661, 43.3997], + [-1.4769, 43.5801], + [-1.3461, 44.0192], + [-1.2473, 44.5045], + [-1.1995, 45.1208], + [-1.14, 45.4901], + [-0.8418, 45.5146], + [-1.1942, 45.7102], + [-1.0487, 46.0388], + [-1.1796, 46.2295], + [-1.5045, 46.4193], + [-1.8048, 46.5036], + [-1.8574, 46.6353], + [-2.1188, 46.82], + [-1.9926, 47.0523], + [-2.4049, 47.2864], + [-2.5017, 47.5267], + [-2.7582, 47.6391], + [-3.0738, 47.5765], + [-3.3451, 47.7213], + [-3.8517, 47.801], + [-4.0944, 47.8755], + [-4.2252, 47.8024], + [-4.4346, 47.9757], + [-4.3619, 48.1157], + [-4.4576, 48.249], + [-4.7834, 48.3764], + [-4.7646, 48.5202], + [-4.5636, 48.6296], + [-3.974, 48.7328], + [-3.614, 48.6827], + [-3.5153, 48.8419], + [-3.0771, 48.8283], + [-2.6363, 48.5388], + [-2.3125, 48.687], + [-2.2192, 48.6037], + [-1.977, 48.6911], + [-1.8382, 48.6238], + [-1.5797, 48.6433], + [-1.5536, 48.7471], + [-1.6104, 49.2159], + [-1.8196, 49.3968], + [-1.8847, 49.5309], + [-1.8118, 49.6907], + [-1.5973, 49.6523], + [-1.3913, 49.7127], + [-1.3063, 49.5581], + [-1.0723, 49.3968], + [-0.4111, 49.3428], + [-0.2195, 49.2801], + [0.072, 49.3593], + [0.2568, 49.4641], + [0.0797, 49.5422], + [0.2359, 49.7293], + [0.6748, 49.8758], + [1.1726, 49.961], + [1.521, 50.2147], + [1.5735, 50.4454], + [1.5806, 50.8688], + [1.9735, 51.0071], + [2.5218, 51.0875], + [2.6204, 50.8165], + [2.7867, 50.7234], + [3.1462, 50.7689], + [3.271, 50.5269], + [3.4629, 50.5191], + [3.755, 50.3463], + [4.0227, 50.3381], + [4.21, 50.0601], + [4.4351, 49.9323], + [4.7883, 49.9743], + [4.849, 49.7942], + [4.9891, 49.7906], + [5.4021, 49.6025], + [5.4777, 49.4952], + [5.7907, 49.5378] + ] + ] + ] + }, + "properties": { + "NAME": "France", + "NAME_LONG": "France", + "ADM0_A3": "FRA", + "ISO_A2": "FR", + "ISO_A3": "FRA", + "WB_A2": "FR", + "WB_A3": "FRA" + }, + "id": 77 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-7.1903, 62.3098], + [-6.7156, 62.034], + [-6.8569, 61.9948], + [-7.2321, 62.1764], + [-7.1903, 62.3098] + ] + ] + }, + "properties": { + "NAME": "Faeroe Is.", + "NAME_LONG": "Faeroe Islands", + "ADM0_A3": "FRO", + "ISO_A2": "FO", + "ISO_A3": "FRO", + "WB_A2": "FO", + "WB_A3": "FRO" + }, + "id": 78 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [13.2946, 2.1611], + [13.2069, 1.9936], + [13.1296, 1.5925], + [13.2395, 1.428], + [13.2502, 1.2218], + [13.4139, 1.2955], + [13.5434, 1.2835], + [13.7947, 1.4344], + [14.1839, 1.3808], + [14.2747, 1.1556], + [14.4681, 0.9132], + [14.4476, 0.8162], + [14.2318, 0.5426], + [14.076, 0.5395], + [13.8712, 0.1964], + [13.9211, -0.053], + [13.8312, -0.2054], + [14.1214, -0.3022], + [14.1597, -0.4551], + [14.2927, -0.4364], + [14.499, -0.6309], + [14.3918, -1.0233], + [14.4821, -1.3886], + [14.3738, -1.6041], + [14.3707, -1.9213], + [14.2522, -1.9676], + [14.2384, -2.1202], + [14.1512, -2.259], + [14.227, -2.3231], + [14.0809, -2.4999], + [13.885, -2.4885], + [13.8639, -2.3215], + [13.7707, -2.1191], + [13.5934, -2.3268], + [13.361, -2.4288], + [13.0107, -2.2878], + [12.8046, -1.9191], + [12.5832, -1.8265], + [12.4231, -1.8976], + [12.4702, -2.1563], + [12.4593, -2.3299], + [12.0623, -2.415], + [11.9384, -2.3291], + [11.7561, -2.4151], + [11.5582, -2.3494], + [11.6368, -2.8333], + [11.7637, -2.9826], + [11.6875, -3.171], + [11.9444, -3.3032], + [11.8278, -3.5481], + [11.8197, -3.7104], + [11.6492, -3.6733], + [11.5698, -3.545], + [11.2125, -3.6973], + [11.114, -3.9369], + [10.9846, -3.7146], + [10.6464, -3.4519], + [10.6354, -3.3137], + [10.4526, -3.1333], + [9.9024, -2.7004], + [9.8425, -2.5006], + [9.597, -2.3522], + [9.5658, -2.1926], + [9.368, -1.9952], + [9.2443, -1.7858], + [9.2998, -1.5774], + [9.2853, -1.4158], + [9.03, -1.2991], + [9.0158, -1.1699], + [8.8775, -0.9737], + [8.8003, -0.7337], + [9.1008, -0.5997], + [9.2674, -0.4124], + [9.3553, 0.0162], + [9.4981, 0.291], + [9.3088, 0.614], + [9.52, 0.6835], + [9.6182, 0.8068], + [9.5615, 0.9628], + [9.6688, 1.0582], + [9.8044, 0.9984], + [9.9086, 0.9351], + [10.0294, 1.0035], + [11.3363, 0.9992], + [11.3221, 2.1658], + [11.3516, 2.3006], + [11.6712, 2.321], + [11.7527, 2.2819], + [12.2026, 2.2796], + [12.334, 2.3096], + [12.7499, 2.2367], + [13.2429, 2.2715], + [13.2946, 2.1611] + ] + ] + }, + "properties": { + "NAME": "Gabon", + "NAME_LONG": "Gabon", + "ADM0_A3": "GAB", + "ISO_A2": "GA", + "ISO_A3": "GAB", + "WB_A2": "GA", + "WB_A3": "GAB" + }, + "id": 80 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-1.2958, 50.7732], + [-1.0623, 50.6928], + [-1.3155, 50.5892], + [-1.5059, 50.7077], + [-1.2958, 50.7732] + ] + ], + [ + [ + [-4.2032, 53.2985], + [-4.3439, 53.1321], + [-4.571, 53.2755], + [-4.5535, 53.4006], + [-4.2767, 53.401], + [-4.2032, 53.2985] + ] + ], + [ + [ + [-6.2699, 54.0979], + [-6.6165, 54.0373], + [-6.6403, 54.168], + [-6.8239, 54.2323], + [-7.0493, 54.4115], + [-7.3103, 54.1147], + [-7.837, 54.2043], + [-8.156, 54.4391], + [-7.9066, 54.6613], + [-7.5517, 54.7547], + [-7.4053, 55.0036], + [-7.2471, 55.0693], + [-7.0172, 55.0711], + [-6.4759, 55.2487], + [-6.0371, 55.1679], + [-6.0621, 55.0741], + [-5.7976, 54.8445], + [-5.748, 54.6804], + [-5.5366, 54.6575], + [-5.4335, 54.4663], + [-5.6126, 54.2556], + [-5.862, 54.2305], + [-6.0405, 54.0364], + [-6.2699, 54.0979] + ] + ], + [ + [ + [-5.1178, 55.4398], + [-5.3457, 55.4827], + [-5.3552, 55.6896], + [-5.16, 55.6762], + [-5.1178, 55.4398] + ] + ], + [ + [ + [-6.1024, 55.8312], + [-6.0235, 55.6819], + [-6.2153, 55.6267], + [-6.4091, 55.8636], + [-6.1024, 55.8312] + ] + ], + [ + [ + [-6.0335, 56.6188], + [-5.9521, 56.5242], + [-5.6484, 56.4477], + [-5.72, 56.3528], + [-6.3275, 56.2772], + [-6.0335, 56.6188] + ] + ], + [ + [ + [-6.3109, 57.7028], + [-6.1539, 57.5895], + [-6.1066, 57.3235], + [-5.6909, 57.1895], + [-5.9189, 57.0501], + [-6.0235, 57.1957], + [-6.3183, 57.161], + [-6.4822, 57.3118], + [-6.7148, 57.3766], + [-6.7065, 57.5109], + [-6.3109, 57.7028] + ] + ], + [ + [ + [-6.1955, 58.3563], + [-6.3179, 58.2683], + [-6.3524, 58.0386], + [-6.9808, 57.7351], + [-7.1265, 58.124], + [-6.8186, 58.2851], + [-6.3456, 58.4632], + [-6.1955, 58.3563] + ] + ], + [ + [ + [-3.3479, 58.652], + [-3.0191, 58.6403], + [-3.0863, 58.4142], + [-3.2205, 58.3056], + [-4.0301, 57.9532], + [-3.9148, 57.8077], + [-4.1186, 57.593], + [-3.8375, 57.593], + [-3.4919, 57.7131], + [-3.0787, 57.6694], + [-2.9161, 57.7028], + [-2.4329, 57.6681], + [-2.1081, 57.705], + [-1.8295, 57.6135], + [-1.7593, 57.4736], + [-1.9803, 57.3193], + [-2.2199, 56.8726], + [-2.4407, 56.7348], + [-2.53, 56.5808], + [-2.8216, 56.3762], + [-2.5768, 56.2839], + [-2.9643, 56.2056], + [-3.3035, 55.9776], + [-2.9399, 55.9693], + [-2.6351, 56.0581], + [-2.1468, 55.9173], + [-1.8217, 55.6364], + [-1.6308, 55.5851], + [-1.5701, 55.2862], + [-1.2755, 54.7484], + [-1.1036, 54.6247], + [-0.563, 54.4774], + [-0.3976, 54.2692], + [-0.1114, 54.1316], + [-0.2195, 54.0228], + [-0.1511, 53.8993], + [0.1335, 53.6426], + [-0.0466, 53.5704], + [0.2195, 53.4195], + [0.3421, 53.2263], + [0.3298, 53.0865], + [0.0221, 52.9126], + [0.3792, 52.7908], + [0.5696, 52.9693], + [0.9661, 52.9744], + [1.2747, 52.9292], + [1.6442, 52.7758], + [1.7712, 52.4859], + [1.5823, 52.0815], + [1.1354, 51.7817], + [0.887, 51.7821], + [0.9245, 51.5883], + [0.5545, 51.4122], + [0.9772, 51.3492], + [1.4238, 51.3921], + [1.3572, 51.131], + [1.0276, 51.0417], + [0.6242, 50.8587], + [0.271, 50.7474], + [-0.1732, 50.829], + [-0.569, 50.8021], + [-0.8128, 50.7348], + [-1.3173, 50.8002], + [-1.9493, 50.7133], + [-1.9837, 50.5966], + [-2.4359, 50.6375], + [-2.8648, 50.7338], + [-3.2598, 50.6745], + [-3.4673, 50.5856], + [-3.4875, 50.4116], + [-3.6456, 50.226], + [-4.0329, 50.2949], + [-4.2161, 50.4157], + [-4.4954, 50.3284], + [-4.7521, 50.3303], + [-4.8002, 50.2296], + [-5.0204, 50.192], + [-5.2104, 49.9667], + [-5.438, 50.1943], + [-5.0503, 50.4287], + [-5.0253, 50.5242], + [-4.7925, 50.5952], + [-4.5501, 50.8096], + [-4.5264, 51.015], + [-4.3377, 50.9966], + [-4.1523, 51.2116], + [-3.7692, 51.2477], + [-3.385, 51.1862], + [-3.0575, 51.2082], + [-2.9596, 51.3743], + [-3.5392, 51.3985], + [-3.9746, 51.563], + [-4.2725, 51.5548], + [-4.3793, 51.7269], + [-4.6454, 51.7321], + [-4.941, 51.5965], + [-5.1259, 51.856], + [-5.2889, 51.9169], + [-4.5138, 52.1357], + [-4.1971, 52.2793], + [-4.0531, 52.5424], + [-4.1299, 52.8892], + [-4.3582, 53.0285], + [-4.1515, 53.2281], + [-3.7689, 53.3192], + [-3.5623, 53.2944], + [-3.0583, 53.4348], + [-3.0995, 53.572], + [-2.9517, 53.7081], + [-3.0176, 53.932], + [-2.796, 54.1252], + [-2.8509, 54.1846], + [-3.241, 54.1121], + [-3.6342, 54.5129], + [-3.3879, 54.8834], + [-3.8443, 54.8663], + [-3.9642, 54.7719], + [-4.3476, 54.8073], + [-4.3481, 54.702], + [-4.8591, 54.8663], + [-5.1282, 54.8489], + [-5.1708, 55.0087], + [-4.6178, 55.4956], + [-4.9205, 55.7086], + [-4.9831, 55.871], + [-5.3136, 56.0124], + [-5.3178, 55.783], + [-5.64, 55.3039], + [-5.7723, 55.3013], + [-5.7218, 55.5646], + [-5.5812, 55.7576], + [-5.6964, 55.916], + [-5.5225, 56.1658], + [-5.5981, 56.2586], + [-5.4109, 56.5521], + [-5.6674, 56.4985], + [-6.0034, 56.6187], + [-5.7355, 56.8941], + [-5.8317, 56.9971], + [-5.5994, 57.2792], + [-5.8078, 57.3549], + [-5.8697, 57.5009], + [-5.7628, 57.634], + [-5.8074, 57.8439], + [-5.487, 57.8559], + [-5.2926, 57.9806], + [-5.3108, 58.2434], + [-5.0501, 58.4538], + [-4.9882, 58.6283], + [-4.3824, 58.5246], + [-3.8101, 58.5731], + [-3.3479, 58.652] + ] + ], + [ + [ + [-3.1562, 59.1422], + [-2.9736, 58.9538], + [-3.2028, 58.9159], + [-3.3667, 59.0161], + [-3.1562, 59.1422] + ] + ], + [ + [ + [-1.2921, 60.5996], + [-1.0792, 60.355], + [-1.2626, 60.1151], + [-1.6697, 60.2396], + [-1.3964, 60.3218], + [-1.5484, 60.5394], + [-1.2921, 60.5996] + ] + ] + ] + }, + "properties": { + "NAME": "United Kingdom", + "NAME_LONG": "United Kingdom", + "ADM0_A3": "GBR", + "ISO_A2": "GB", + "ISO_A3": "GBR", + "WB_A2": "GB", + "WB_A3": "GBR" + }, + "id": 81 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [46.4309, 41.8904], + [46.1928, 41.6102], + [46.2967, 41.5104], + [46.5916, 41.3729], + [46.6948, 41.2698], + [46.4968, 41.0448], + [46.2106, 41.2002], + [45.9692, 41.1683], + [45.7097, 41.2677], + [45.7207, 41.3424], + [45.4648, 41.4302], + [45.2496, 41.4445], + [45.0024, 41.2905], + [44.5515, 41.177], + [44.191, 41.23], + [44.1247, 41.1781], + [43.7297, 41.1067], + [43.4404, 41.1066], + [43.2306, 41.1726], + [42.9577, 41.437], + [42.5652, 41.5671], + [42.4379, 41.4309], + [41.948, 41.5056], + [41.8008, 41.4257], + [41.5208, 41.5142], + [41.7739, 41.8216], + [41.7557, 42.0064], + [41.6641, 42.114], + [41.5002, 42.6406], + [41.3835, 42.7573], + [41.1502, 42.7956], + [41.0231, 42.99], + [40.856, 43.0631], + [40.3351, 43.1409], + [40.2191, 43.319], + [39.986, 43.389], + [40.0592, 43.5352], + [40.2331, 43.5758], + [40.4798, 43.5087], + [40.6519, 43.539], + [41.0118, 43.3754], + [41.3807, 43.3348], + [41.5506, 43.2263], + [42.0753, 43.1853], + [42.4229, 43.229], + [42.5959, 43.14], + [42.7515, 43.177], + [43.1943, 42.9268], + [43.5174, 42.8605], + [43.8006, 42.7465], + [43.7511, 42.5987], + [43.9397, 42.5522], + [44.272, 42.7024], + [44.8594, 42.7595], + [45.1842, 42.6748], + [45.356, 42.52], + [45.6987, 42.5076], + [45.6214, 42.2245], + [45.9476, 42.0229], + [46.2243, 41.9935], + [46.4309, 41.8904] + ] + ] + }, + "properties": { + "NAME": "Georgia", + "NAME_LONG": "Georgia", + "ADM0_A3": "GEO", + "ISO_A2": "GE", + "ISO_A3": "GEO", + "WB_A2": "GE", + "WB_A3": "GEO" + }, + "id": 82 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-0.1661, 11.135], + [0.0162, 11.0626], + [-0.0881, 10.6335], + [0.0203, 10.588], + [0.177, 10.3977], + [0.3666, 10.3045], + [0.3702, 9.947], + [0.3224, 9.7607], + [0.3546, 9.5711], + [0.2302, 9.5757], + [0.2314, 9.419], + [0.4304, 9.4892], + [0.5376, 9.3776], + [0.4313, 9.0276], + [0.5056, 8.8663], + [0.3659, 8.7743], + [0.4435, 8.6069], + [0.6163, 8.4888], + [0.7052, 8.2828], + [0.5738, 8.2039], + [0.6123, 7.6994], + [0.4994, 7.5624], + [0.5006, 7.455], + [0.6457, 7.3236], + [0.598, 7.0312], + [0.4946, 6.9731], + [0.5193, 6.8322], + [0.7146, 6.5839], + [0.7668, 6.4194], + [1.1854, 6.1005], + [1.0988, 6.047], + [0.9953, 5.8393], + [0.7235, 5.7554], + [0.322, 5.7792], + [0.0345, 5.6284], + [-0.3716, 5.4927], + [-0.5074, 5.3688], + [-0.6378, 5.3409], + [-0.7995, 5.2148], + [-1.0498, 5.1987], + [-1.2336, 5.1007], + [-1.5695, 5.0188], + [-1.7486, 4.8772], + [-2.0906, 4.7371], + [-2.3566, 4.9196], + [-2.6904, 5.0102], + [-3.1196, 5.0913], + [-3.1153, 5.1078], + [-2.9763, 5.0846], + [-2.8437, 5.1491], + [-2.7327, 5.3557], + [-2.7818, 5.5789], + [-2.9695, 5.6214], + [-3.1181, 6.1635], + [-3.1836, 6.2639], + [-3.2625, 6.6171], + [-3.2249, 6.8494], + [-3.0459, 7.0712], + [-2.9415, 7.5772], + [-2.84, 7.8202], + [-2.6194, 8.1231], + [-2.5063, 8.2093], + [-2.6194, 8.9236], + [-2.7748, 9.055], + [-2.6598, 9.2729], + [-2.6892, 9.4887], + [-2.7953, 9.72], + [-2.7368, 9.8326], + [-2.8332, 10.306], + [-2.8146, 10.3937], + [-2.9325, 10.6343], + [-2.8642, 10.8643], + [-2.7507, 10.9858], + [-1.5987, 10.9971], + [-0.5165, 10.9886], + [-0.4059, 11.1015], + [-0.1661, 11.135] + ] + ] + }, + "properties": { + "NAME": "Ghana", + "NAME_LONG": "Ghana", + "ADM0_A3": "GHA", + "ISO_A2": "GH", + "ISO_A3": "GHA", + "WB_A2": "GH", + "WB_A3": "GHA" + }, + "id": 84 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-11.3884, 12.4039], + [-11.5078, 12.1916], + [-11.3513, 12.0404], + [-11.1912, 12.0144], + [-11.0523, 12.2025], + [-10.9098, 12.2001], + [-10.8049, 12.096], + [-10.7114, 11.8904], + [-10.3814, 12.1801], + [-10.2669, 12.2178], + [-9.8707, 12.0521], + [-9.723, 12.0254], + [-9.6282, 12.1702], + [-9.3085, 12.345], + [-9.3215, 12.4966], + [-8.9938, 12.3875], + [-8.9263, 12.0643], + [-8.797, 11.9132], + [-8.8472, 11.6579], + [-8.7129, 11.6401], + [-8.679, 11.5298], + [-8.5276, 11.4234], + [-8.4832, 11.2849], + [-8.6969, 10.996], + [-8.5058, 11.0528], + [-8.3111, 11.0008], + [-8.2955, 10.5374], + [-8.2289, 10.4234], + [-8.0157, 10.3393], + [-7.9897, 10.162], + [-8.1738, 9.9419], + [-8.1235, 9.8449], + [-8.1616, 9.5756], + [-8.0872, 9.4154], + [-7.8654, 9.4099], + [-7.9296, 9.1839], + [-7.9589, 8.782], + [-7.8037, 8.7491], + [-7.6916, 8.6061], + [-7.6896, 8.4387], + [-7.771, 8.3865], + [-7.9705, 8.497], + [-8.2003, 8.4918], + [-8.266, 8.246], + [-8.0217, 8.1177], + [-8.1289, 7.8826], + [-8.1274, 7.713], + [-8.229, 7.5443], + [-8.4854, 7.558], + [-8.5674, 7.6882], + [-8.6866, 7.6944], + [-8.7296, 7.5087], + [-8.9254, 7.2486], + [-9.1196, 7.238], + [-9.2343, 7.3813], + [-9.4381, 7.4216], + [-9.3535, 7.6224], + [-9.4387, 7.8662], + [-9.4223, 8.0158], + [-9.5792, 8.3873], + [-9.6835, 8.4871], + [-10.2822, 8.4846], + [-10.3898, 8.4891], + [-10.5193, 8.3348], + [-10.6691, 8.3991], + [-10.6389, 8.5199], + [-10.4819, 8.6725], + [-10.6002, 8.819], + [-10.606, 9.0638], + [-10.7463, 9.0838], + [-10.6751, 9.3065], + [-10.8549, 9.4553], + [-11.0101, 9.7427], + [-11.2727, 9.996], + [-11.9101, 9.9925], + [-11.9218, 9.9222], + [-12.1413, 9.8749], + [-12.2536, 9.9284], + [-12.5083, 9.8604], + [-12.5375, 9.7157], + [-12.7016, 9.4202], + [-12.8358, 9.282], + [-12.9579, 9.2724], + [-13.0289, 9.096], + [-13.3011, 9.0415], + [-13.3222, 9.3454], + [-13.432, 9.3711], + [-13.5614, 9.509], + [-13.6244, 9.7203], + [-13.7472, 9.7678], + [-13.9454, 9.9669], + [-14.1532, 10.0557], + [-14.463, 10.33], + [-14.6287, 10.6173], + [-14.7928, 10.745], + [-14.7493, 10.8161], + [-14.8988, 10.9932], + [-15.021, 10.9675], + [-14.8282, 11.3348], + [-14.6868, 11.5107], + [-14.5209, 11.5129], + [-14.2787, 11.6651], + [-14.0151, 11.6371], + [-13.7299, 11.7098], + [-13.7239, 12.0028], + [-13.9649, 12.1479], + [-13.84, 12.2771], + [-13.7118, 12.2675], + [-13.6634, 12.4758], + [-13.7283, 12.6734], + [-13.0765, 12.6359], + [-13.0827, 12.5157], + [-12.9131, 12.5363], + [-12.7733, 12.4351], + [-12.5051, 12.3903], + [-12.3609, 12.3056], + [-12.0792, 12.4081], + [-11.7578, 12.3833], + [-11.5154, 12.4316], + [-11.3884, 12.4039] + ] + ] + }, + "properties": { + "NAME": "Guinea", + "NAME_LONG": "Guinea", + "ADM0_A3": "GIN", + "ISO_A2": "GN", + "ISO_A3": "GIN", + "WB_A2": "GN", + "WB_A3": "GIN" + }, + "id": 86 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-16.7537, 13.065], + [-16.8297, 13.3385], + [-16.5614, 13.5869], + [-15.5182, 13.5831], + [-15.3941, 13.7715], + [-15.2673, 13.7418], + [-15.0977, 13.82], + [-14.9158, 13.7924], + [-14.7286, 13.6193], + [-14.5855, 13.6605], + [-14.4703, 13.5224], + [-14.3299, 13.4564], + [-13.9675, 13.5756], + [-13.8187, 13.4294], + [-13.851, 13.3358], + [-14.2017, 13.2296], + [-14.395, 13.243], + [-14.5922, 13.3531], + [-15.0151, 13.4957], + [-15.1377, 13.59], + [-15.2278, 13.4252], + [-15.3792, 13.3625], + [-15.5195, 13.3866], + [-15.8227, 13.3194], + [-15.8333, 13.1568], + [-16.6735, 13.1643], + [-16.7537, 13.065] + ] + ] + }, + "properties": { + "NAME": "Gambia", + "NAME_LONG": "The Gambia", + "ADM0_A3": "GMB", + "ISO_A2": "GM", + "ISO_A3": "GMB", + "WB_A2": "GM", + "WB_A3": "GMB" + }, + "id": 87 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-15.021, 10.9675], + [-15.1172, 10.9843], + [-15.2066, 11.1251], + [-15.4095, 11.1896], + [-15.3961, 11.5321], + [-15.5514, 11.7331], + [-15.585, 11.8513], + [-15.8304, 11.7484], + [-15.9696, 11.7683], + [-15.9816, 11.9213], + [-16.1343, 11.8889], + [-16.3318, 12.0046], + [-16.3653, 12.1923], + [-16.4719, 12.1863], + [-16.7284, 12.3325], + [-16.382, 12.3738], + [-16.2329, 12.4529], + [-15.677, 12.4393], + [-15.1951, 12.6794], + [-13.7283, 12.6734], + [-13.6634, 12.4758], + [-13.7118, 12.2675], + [-13.84, 12.2771], + [-13.9649, 12.1479], + [-13.7239, 12.0028], + [-13.7299, 11.7098], + [-14.0151, 11.6371], + [-14.2787, 11.6651], + [-14.5209, 11.5129], + [-14.6868, 11.5107], + [-14.8282, 11.3348], + [-15.021, 10.9675] + ] + ] + }, + "properties": { + "NAME": "Guinea-Bissau", + "NAME_LONG": "Guinea-Bissau", + "ADM0_A3": "GNB", + "ISO_A2": "GW", + "ISO_A3": "GNB", + "WB_A2": "GW", + "WB_A3": "GNB" + }, + "id": 88 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [11.3221, 2.1658], + [11.3363, 0.9992], + [10.0294, 1.0035], + [9.9086, 0.9351], + [9.8044, 0.9984], + [9.7551, 1.1059], + [9.5843, 1.043], + [9.4076, 1.2838], + [9.5642, 1.5034], + [9.6175, 1.6715], + [9.7991, 1.9011], + [9.7655, 2.0854], + [9.7996, 2.3417], + [9.8109, 2.2649], + [9.991, 2.1656], + [11.3221, 2.1658] + ] + ], + [ + [ + [8.7682, 3.7517], + [8.9227, 3.7507], + [8.9575, 3.643], + [8.6955, 3.2086], + [8.4502, 3.2729], + [8.4739, 3.4631], + [8.5628, 3.4565], + [8.6279, 3.6483], + [8.7682, 3.7517] + ] + ] + ] + }, + "properties": { + "NAME": "Eq. Guinea", + "NAME_LONG": "Equatorial Guinea", + "ADM0_A3": "GNQ", + "ISO_A2": "GQ", + "ISO_A3": "GNQ", + "WB_A2": "GQ", + "WB_A3": "GNQ" + }, + "id": 89 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [23.9014, 35.5272], + [24.0447, 35.5277], + [24.3401, 35.3483], + [24.721, 35.4272], + [24.9712, 35.4245], + [25.0553, 35.3552], + [25.376, 35.3432], + [25.4819, 35.2974], + [25.7664, 35.3357], + [25.7127, 35.1828], + [25.8303, 35.1224], + [26.0674, 35.2333], + [26.3118, 35.1824], + [26.241, 35.039], + [25.6012, 35.0136], + [25.0974, 34.9379], + [24.7385, 34.9316], + [24.7075, 35.0961], + [24.4021, 35.1911], + [23.8267, 35.2526], + [23.5872, 35.2395], + [23.5735, 35.4348], + [23.9014, 35.5272] + ] + ], + [ + [ + [28.2398, 36.4325], + [28.1305, 36.1855], + [27.7804, 35.89], + [27.7007, 36.1634], + [27.8997, 36.3402], + [28.2398, 36.4325] + ] + ], + [ + [ + [25.5951, 37.0997], + [25.4476, 36.9248], + [25.3418, 37.0767], + [25.5337, 37.2007], + [25.5951, 37.0997] + ] + ], + [ + [ + [20.5718, 38.4739], + [20.7977, 38.1313], + [20.7184, 38.0663], + [20.4729, 38.1821], + [20.5718, 38.4739] + ] + ], + [ + [ + [26.0663, 38.5832], + [26.1636, 38.3026], + [25.9749, 38.166], + [25.8675, 38.2597], + [25.989, 38.3793], + [25.8433, 38.5153], + [26.0663, 38.5832] + ] + ], + [ + [ + [23.4422, 38.8983], + [23.62, 38.7655], + [23.8576, 38.6825], + [24.0731, 38.6794], + [24.2161, 38.5395], + [24.1851, 38.4076], + [24.327, 38.1859], + [24.5877, 38.1592], + [24.5521, 37.9782], + [24.3718, 37.9719], + [24.0491, 38.3945], + [23.6385, 38.4155], + [23.6355, 38.5286], + [23.2023, 38.8299], + [22.9694, 38.8891], + [23.2991, 39.0425], + [23.4422, 38.8983] + ] + ], + [ + [ + [26.4114, 39.3209], + [26.6123, 39.0493], + [26.4242, 38.9674], + [26.1657, 39.0224], + [25.8889, 39.1447], + [25.8587, 39.2592], + [26.343, 39.383], + [26.4114, 39.3209] + ] + ], + [ + [ + [25.4368, 40.0225], + [25.2953, 39.8077], + [25.0674, 39.8581], + [25.0454, 39.9847], + [25.4368, 40.0225] + ] + ], + [ + [ + [24.7824, 40.6202], + [24.6423, 40.5706], + [24.512, 40.6668], + [24.6423, 40.8039], + [24.7824, 40.6202] + ] + ], + [ + [ + [26.3334, 41.713], + [26.5963, 41.5975], + [26.6366, 41.3785], + [26.3317, 41.2541], + [26.3591, 40.9647], + [26.044, 40.7385], + [25.9186, 40.853], + [25.5378, 40.8704], + [25.2997, 40.9518], + [24.9898, 40.9421], + [24.802, 40.8535], + [24.4155, 40.9455], + [24.3407, 40.8313], + [24.1101, 40.7279], + [23.8093, 40.7804], + [23.6917, 40.6954], + [23.8776, 40.5602], + [23.8682, 40.4135], + [23.6997, 40.3264], + [23.7786, 40.2027], + [23.9912, 40.1187], + [23.8241, 40.0219], + [23.6755, 40.2179], + [23.3983, 40.2777], + [23.2991, 40.2354], + [23.0291, 40.3258], + [22.7109, 40.5116], + [22.5525, 40.1666], + [22.5713, 40.0543], + [22.8587, 39.7733], + [22.9251, 39.5995], + [23.1018, 39.4974], + [23.3423, 39.1926], + [23.0205, 39.3175], + [22.8262, 39.2213], + [23.0233, 39.0084], + [22.8465, 38.9264], + [22.7695, 38.7848], + [23.2049, 38.6827], + [23.4185, 38.5043], + [23.6013, 38.4739], + [23.594, 38.4261], + [23.71, 38.3367], + [23.951, 38.2909], + [24.0669, 37.8644], + [24.0721, 37.6895], + [23.7645, 37.816], + [23.6802, 37.9459], + [23.45, 38.0214], + [23.0941, 37.911], + [23.1824, 37.8091], + [23.1686, 37.6142], + [23.3743, 37.5559], + [23.4465, 37.4146], + [23.132, 37.4486], + [22.9639, 37.5218], + [22.7232, 37.5417], + [22.758, 37.3983], + [22.9998, 37.0333], + [23.0956, 36.807], + [23.0806, 36.5793], + [22.9724, 36.5202], + [22.7651, 36.8042], + [22.5335, 36.7072], + [22.4699, 36.4523], + [22.3545, 36.5119], + [22.3706, 36.6736], + [22.1532, 37.0212], + [21.9373, 36.98], + [21.9451, 36.7899], + [21.7074, 36.818], + [21.7026, 36.9573], + [21.5676, 37.1563], + [21.6823, 37.2839], + [21.55, 37.5615], + [21.2987, 37.6726], + [21.2953, 37.7717], + [21.1221, 37.8374], + [21.3259, 38.0214], + [21.3757, 38.2043], + [21.603, 38.1518], + [21.7642, 38.2958], + [21.9559, 38.3367], + [22.2266, 38.1859], + [22.6804, 38.0666], + [22.8672, 37.9395], + [22.9429, 38.0835], + [23.1096, 38.2101], + [22.6914, 38.3222], + [22.5457, 38.3026], + [21.9876, 38.4106], + [21.7625, 38.3284], + [21.5354, 38.314], + [21.3699, 38.4082], + [21.1556, 38.3039], + [21.0247, 38.6085], + [20.7645, 38.8918], + [21.1599, 38.9977], + [20.8939, 39.0772], + [20.6865, 39.0725], + [20.2928, 39.3334], + [19.9998, 39.6935], + [20.1999, 39.6401], + [20.2995, 39.7282], + [20.318, 39.9184], + [20.4328, 40.0638], + [20.6402, 40.0901], + [20.8267, 40.4648], + [21.0367, 40.6397], + [20.9653, 40.8494], + [21.5816, 40.8663], + [21.737, 40.9192], + [21.9091, 41.0975], + [22.1832, 41.1599], + [22.4218, 41.1146], + [22.7272, 41.1658], + [22.7513, 41.3152], + [22.917, 41.3358], + [23.1152, 41.3127], + [23.2877, 41.3982], + [23.6124, 41.371], + [24.0473, 41.5257], + [24.5309, 41.5475], + [24.5958, 41.4298], + [24.8864, 41.4006], + [25.2857, 41.2394], + [25.5515, 41.3157], + [25.882, 41.304], + [26.1209, 41.3578], + [26.1645, 41.5177], + [26.0481, 41.6891], + [26.3334, 41.713] + ] + ] + ] + }, + "properties": { + "NAME": "Greece", + "NAME_LONG": "Greece", + "ADM0_A3": "GRC", + "ISO_A2": "GR", + "ISO_A3": "GRC", + "WB_A2": "GR", + "WB_A3": "GRC" + }, + "id": 90 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-43.6225, 60.1251], + [-43.5901, 59.923], + [-43.8998, 59.9922], + [-44.0733, 60.1763], + [-43.6225, 60.1251] + ] + ], + [ + [ + [-37.3969, 65.8232], + [-37.3131, 65.6793], + [-37.7379, 65.5694], + [-37.9498, 65.6241], + [-37.9543, 65.7964], + [-37.6412, 65.905], + [-37.3969, 65.8232] + ] + ], + [ + [ + [-51.0048, 69.9205], + [-50.6676, 69.8293], + [-50.9715, 69.7195], + [-50.9511, 69.5594], + [-51.2454, 69.5383], + [-51.3406, 69.743], + [-51.0048, 69.9205] + ] + ], + [ + [ + [-52.7281, 69.9287], + [-51.9982, 69.8051], + [-51.8364, 69.6318], + [-52.1416, 69.4773], + [-53.5874, 69.2391], + [-54.1485, 69.3378], + [-53.7987, 69.4263], + [-53.8811, 69.5611], + [-54.7374, 69.5891], + [-54.9927, 69.702], + [-54.7668, 69.9695], + [-54.8292, 70.2008], + [-54.453, 70.3133], + [-53.9034, 70.2904], + [-53.266, 70.2023], + [-52.7281, 69.9287] + ] + ], + [ + [ + [-25.478, 70.7712], + [-25.3011, 70.6573], + [-26.2818, 70.5849], + [-26.5751, 70.5238], + [-28.0677, 70.4307], + [-27.9273, 70.6383], + [-27.6781, 70.6541], + [-27.0675, 70.8935], + [-26.6625, 70.8965], + [-25.7038, 71.0858], + [-25.4101, 70.9248], + [-25.478, 70.7712] + ] + ], + [ + [ + [-53.5124, 71.0377], + [-53.9857, 71.1177], + [-53.6118, 71.3217], + [-53.3913, 71.1549], + [-53.5124, 71.0377] + ] + ], + [ + [ + [-52.6616, 71.1684], + [-53.1197, 71.2128], + [-52.9718, 71.3872], + [-52.4091, 71.3537], + [-52.6616, 71.1684] + ] + ], + [ + [ + [-54.9779, 72.8047], + [-55.5289, 72.5552], + [-55.6072, 72.759], + [-54.9779, 72.8047] + ] + ], + [ + [ + [-23.9304, 72.8815], + [-23.1468, 72.8402], + [-22.7175, 72.6347], + [-22.6752, 72.3616], + [-22.0453, 72.2717], + [-22.5249, 72.1348], + [-23.0651, 72.31], + [-23.9056, 72.4661], + [-24.3518, 72.5913], + [-24.4853, 72.8266], + [-23.9304, 72.8815] + ] + ], + [ + [ + [-23.2383, 73.0753], + [-21.9007, 72.916], + [-22.654, 72.6981], + [-23.1633, 72.8779], + [-24.5262, 72.9017], + [-24.5365, 72.9919], + [-23.2383, 73.0753] + ] + ], + [ + [ + [-24.0073, 73.3608], + [-23.2302, 73.2511], + [-22.9807, 73.1071], + [-24.4675, 73.0361], + [-25.7073, 73.1847], + [-25.2435, 73.4111], + [-24.4601, 73.425], + [-24.0073, 73.3608] + ] + ], + [ + [ + [-20.9424, 74.4304], + [-20.5476, 74.4099], + [-20.1615, 74.1688], + [-21.0255, 74.0963], + [-21.9329, 74.2077], + [-21.84, 74.3512], + [-21.2471, 74.4571], + [-20.9424, 74.4304] + ] + ], + [ + [ + [-20.1764, 74.9039], + [-19.7411, 74.8813], + [-20.1383, 74.6993], + [-20.6807, 74.8209], + [-20.1764, 74.9039] + ] + ], + [ + [ + [-17.8029, 75.3143], + [-18.1984, 75.2416], + [-17.8134, 75.0889], + [-18.4479, 74.9853], + [-18.9276, 75.0468], + [-18.7973, 75.3362], + [-17.8029, 75.3143] + ] + ], + [ + [ + [-17.3144, 79.9783], + [-17.8363, 79.7425], + [-18.4852, 79.6861], + [-19.3575, 79.8707], + [-18.5776, 80.017], + [-17.7408, 80.0912], + [-17.3144, 79.9783] + ] + ], + [ + [ + [-51.2375, 81.9885], + [-52.1052, 81.9954], + [-53.1901, 82.1124], + [-52.4652, 82.1999], + [-51.2375, 81.9885] + ] + ], + [ + [ + [-45.9884, 82.6405], + [-44.4221, 82.3847], + [-45.0704, 82.2226], + [-46.876, 82.36], + [-47.6981, 82.6438], + [-45.9884, 82.6405] + ] + ], + [ + [ + [-32.2079, 83.6135], + [-30.6471, 83.6018], + [-25.6496, 83.2976], + [-26.0754, 83.2085], + [-30.7364, 83.1371], + [-27.381, 83.0606], + [-25.2214, 83.1679], + [-24.7537, 82.9983], + [-23.6622, 82.8383], + [-22.5654, 82.7965], + [-21.3185, 82.6055], + [-22.4373, 82.34], + [-23.8867, 82.2789], + [-29.8523, 82.1393], + [-29.9432, 82.0854], + [-31.774, 81.9614], + [-30.8033, 81.8653], + [-27.762, 82.0624], + [-24.6199, 81.9875], + [-24.7062, 81.7812], + [-26.3148, 81.6168], + [-25.6169, 81.561], + [-23.3077, 81.7925], + [-23.1954, 82.0223], + [-21.3884, 82.0834], + [-21.0256, 81.7716], + [-21.2568, 81.5175], + [-22.2711, 81.1504], + [-21.3628, 81.2004], + [-19.3862, 81.6352], + [-19.2463, 81.5548], + [-17.1468, 81.4134], + [-16.4518, 81.6397], + [-16.4852, 81.7495], + [-15.2067, 81.8148], + [-13.9205, 81.8122], + [-12.0277, 81.6373], + [-11.6386, 81.3884], + [-12.5382, 81.187], + [-14.2037, 80.9144], + [-14.2949, 80.7843], + [-15.4204, 80.6484], + [-17.063, 80.6628], + [-18.5939, 80.5734], + [-18.0551, 80.4918], + [-16.8962, 80.5837], + [-15.7892, 80.4047], + [-16.4473, 80.2193], + [-17.8729, 80.1611], + [-19.4744, 80.2602], + [-20.4231, 79.8396], + [-19.2078, 79.7085], + [-19.5659, 79.3859], + [-18.9379, 79.2615], + [-18.9552, 79.149], + [-19.9106, 79.0183], + [-19.9259, 78.8287], + [-20.979, 78.7668], + [-20.8898, 78.5644], + [-21.2997, 78.2698], + [-21.3223, 78.0768], + [-21.63, 77.9981], + [-21.3739, 77.7768], + [-20.7606, 77.9706], + [-18.9792, 77.6168], + [-19.4118, 77.5429], + [-20.0204, 77.6925], + [-20.7748, 77.617], + [-20.2301, 77.3725], + [-19.0825, 77.3184], + [-18.3245, 77.2085], + [-18.2659, 76.9206], + [-18.5022, 76.7487], + [-19.8951, 76.9254], + [-20.5134, 76.9457], + [-21.9355, 76.6227], + [-21.5673, 76.3847], + [-20.4891, 76.2236], + [-19.9377, 76.258], + [-19.6724, 76.1273], + [-20.2694, 75.9923], + [-19.7494, 75.889], + [-19.3815, 75.5413], + [-19.4272, 75.2255], + [-19.8798, 75.1498], + [-20.1687, 75.3411], + [-20.6678, 75.2932], + [-20.7582, 74.8313], + [-20.5211, 74.6843], + [-20.0715, 74.6632], + [-18.9748, 74.4844], + [-19.3744, 74.2668], + [-20.2007, 74.2798], + [-20.3573, 74.4453], + [-21.255, 74.4742], + [-21.7716, 74.4387], + [-22.0516, 74.3205], + [-22.2294, 74.1013], + [-21.5901, 74.0577], + [-20.6886, 73.8865], + [-20.483, 73.7589], + [-20.5433, 73.449], + [-21.2809, 73.4572], + [-22.3141, 73.2504], + [-23.1142, 73.3542], + [-24.4095, 73.7278], + [-24.3754, 73.5596], + [-25.2922, 73.4735], + [-25.7049, 73.2722], + [-25.7206, 73.1381], + [-24.9843, 73.0258], + [-25.5228, 72.8402], + [-24.8484, 72.7241], + [-24.342, 72.3317], + [-23.7612, 72.2445], + [-23.5779, 72.1472], + [-22.5034, 71.9008], + [-23.06, 71.7121], + [-22.3051, 71.6972], + [-22.5314, 71.4645], + [-21.9357, 71.4866], + [-21.668, 71.4014], + [-21.785, 71.0861], + [-21.5724, 70.9558], + [-21.7301, 70.579], + [-22.0229, 70.4995], + [-22.6609, 70.4385], + [-23.3454, 70.4406], + [-23.9298, 70.6132], + [-24.183, 70.805], + [-24.2649, 71.0814], + [-24.6694, 71.272], + [-25.122, 71.3115], + [-25.5756, 71.5204], + [-26.076, 71.5864], + [-26.7851, 71.5465], + [-27.8817, 71.9788], + [-27.968, 71.8712], + [-27.3314, 71.7188], + [-27.0344, 71.5312], + [-25.7274, 71.4744], + [-25.4101, 71.3537], + [-25.6019, 71.1696], + [-26.4256, 70.9746], + [-27.5062, 70.9421], + [-27.7897, 71.0225], + [-28.0105, 70.7398], + [-28.3103, 70.5639], + [-28.2329, 70.372], + [-26.7433, 70.4841], + [-26.3213, 70.3798], + [-26.8454, 70.2608], + [-26.3262, 70.1983], + [-25.3053, 70.4132], + [-24.4847, 70.247], + [-23.5598, 70.1129], + [-22.3717, 70.1151], + [-22.38, 69.9713], + [-22.8813, 69.9627], + [-23.703, 69.7181], + [-23.8142, 69.5123], + [-24.0988, 69.5335], + [-24.6151, 69.2801], + [-25.6677, 68.8704], + [-26.2352, 68.7926], + [-26.4167, 68.6589], + [-27.1822, 68.6093], + [-27.3144, 68.5351], + [-27.9145, 68.5128], + [-28.0919, 68.4438], + [-29.0067, 68.3476], + [-29.5113, 68.2217], + [-29.9919, 68.3798], + [-30.1478, 68.2379], + [-30.0082, 68.126], + [-30.9127, 68.0451], + [-31.4111, 68.1183], + [-32.1254, 68.0507], + [-32.098, 67.9063], + [-32.5192, 67.8722], + [-33.1867, 67.5577], + [-33.7509, 66.9883], + [-33.9483, 66.9269], + [-34.2565, 66.5848], + [-34.6433, 66.3804], + [-35.2164, 66.241], + [-35.6552, 66.2752], + [-35.5863, 66.1113], + [-36.0738, 65.9355], + [-36.3888, 66.0155], + [-36.8264, 65.9196], + [-37.2101, 65.7753], + [-37.642, 65.9257], + [-37.7979, 66.0487], + [-37.2154, 66.3462], + [-37.7587, 66.2956], + [-37.9679, 66.118], + [-37.9852, 65.9499], + [-38.2206, 65.6464], + [-38.6693, 65.59], + [-39.8745, 65.5059], + [-39.8576, 65.2358], + [-40.1229, 65.1662], + [-40.1843, 65.0419], + [-41.0776, 65.0677], + [-41.0546, 64.8774], + [-40.6291, 64.6921], + [-40.5611, 64.515], + [-40.3583, 64.359], + [-40.8362, 64.3803], + [-41.0777, 64.3111], + [-41.5249, 64.3261], + [-41.3873, 64.1785], + [-40.712, 64.158], + [-40.5609, 64.1069], + [-40.6141, 63.8076], + [-40.8795, 63.6577], + [-41.1691, 63.3906], + [-41.9071, 63.4635], + [-41.4729, 63.2258], + [-41.7501, 62.8439], + [-42.0177, 62.7968], + [-42.4231, 62.8158], + [-42.7082, 62.6929], + [-42.3837, 62.5715], + [-42.2537, 62.4374], + [-42.2675, 62.2466], + [-42.4181, 62.0129], + [-42.1172, 62.0067], + [-42.5275, 61.5338], + [-42.5001, 61.3618], + [-42.7075, 61.2918], + [-42.6725, 61.0251], + [-42.8851, 60.8454], + [-42.8263, 60.6113], + [-43.2003, 60.5533], + [-43.3154, 60.4375], + [-43.0898, 60.2589], + [-43.1382, 60.0808], + [-43.9906, 60.1909], + [-44.4813, 60.1237], + [-44.5902, 59.9891], + [-44.9748, 60.0397], + [-45.1873, 60.2126], + [-44.9264, 60.3271], + [-44.9389, 60.4836], + [-45.2142, 60.439], + [-45.3937, 60.5163], + [-45.9816, 60.5804], + [-45.7215, 60.7387], + [-46.0006, 60.8029], + [-46.0328, 60.9139], + [-46.3757, 61.0847], + [-46.6317, 60.9926], + [-46.8623, 60.8001], + [-47.0565, 60.8608], + [-47.4383, 60.8274], + [-47.9321, 60.8417], + [-48.0734, 61.0884], + [-48.6191, 61.2121], + [-48.5458, 61.3813], + [-48.8529, 61.4028], + [-49.2411, 61.6076], + [-49.4349, 61.8474], + [-49.3104, 61.9962], + [-49.6958, 62.2668], + [-50.0138, 62.3204], + [-50.3077, 62.4913], + [-50.1785, 62.7664], + [-50.563, 62.9809], + [-50.593, 63.2303], + [-51.0563, 63.1848], + [-51.1273, 63.4956], + [-51.5392, 63.685], + [-51.4029, 63.8127], + [-51.4399, 64.0823], + [-51.1347, 64.2077], + [-50.8995, 64.4067], + [-50.6245, 64.4667], + [-50.7848, 64.6024], + [-50.4803, 64.7129], + [-50.6551, 64.8216], + [-50.9097, 64.685], + [-51.2526, 64.7602], + [-51.5051, 64.4727], + [-51.8351, 64.225], + [-52.1426, 64.2222], + [-52.1562, 64.6788], + [-51.8793, 64.8371], + [-52.2786, 65.0788], + [-52.1986, 65.2846], + [-52.2729, 65.4465], + [-52.7917, 65.5347], + [-52.7556, 65.6723], + [-53.1904, 65.6752], + [-53.0714, 65.8103], + [-53.4554, 65.9608], + [-53.3537, 66.1121], + [-53.6953, 66.3588], + [-53.4269, 66.6453], + [-52.6675, 66.693], + [-53.0958, 66.932], + [-53.647, 66.9116], + [-53.9649, 67.1044], + [-53.8057, 67.4186], + [-53.3788, 67.5323], + [-53.0477, 67.6958], + [-52.4091, 67.7692], + [-51.8641, 67.6359], + [-51.4448, 67.7471], + [-52.824, 67.7965], + [-53.5767, 67.5189], + [-53.7353, 67.6133], + [-53.6877, 67.8118], + [-53.2004, 67.9678], + [-53.1359, 68.1091], + [-52.5829, 68.1911], + [-51.9315, 68.0468], + [-51.2171, 68.0709], + [-51.2233, 68.2748], + [-51.6481, 68.2746], + [-52.4451, 68.1815], + [-53.0885, 68.3179], + [-52.6164, 68.5259], + [-51.9647, 68.5876], + [-51.5688, 68.5239], + [-50.9291, 68.6741], + [-51.1019, 68.8662], + [-51.0799, 69.1328], + [-50.8875, 69.1745], + [-50.8472, 69.6263], + [-50.3329, 69.89], + [-50.9391, 69.9636], + [-52.3295, 70.0536], + [-52.61, 70.2171], + [-53.2318, 70.3531], + [-54.0187, 70.4132], + [-54.5881, 70.6826], + [-53.9796, 70.8297], + [-53.434, 70.7527], + [-52.7906, 70.7568], + [-52.4503, 70.7026], + [-51.5494, 70.4316], + [-51.1898, 70.8869], + [-51.9149, 71.0214], + [-51.5358, 71.3127], + [-52.0494, 71.2473], + [-52.2577, 71.3655], + [-52.9923, 71.4213], + [-52.7009, 71.5259], + [-52.663, 71.6798], + [-53.6789, 71.7425], + [-53.9518, 71.4378], + [-54.6252, 71.3513], + [-54.9808, 71.4362], + [-55.5145, 71.4492], + [-55.8475, 71.722], + [-55.3701, 71.826], + [-55.5517, 72.0382], + [-54.8835, 72.2512], + [-55.6513, 72.4504], + [-54.9683, 72.517], + [-54.6503, 72.845], + [-54.9814, 72.999], + [-55.4657, 73.0729], + [-55.2691, 73.3866], + [-55.8431, 73.6831], + [-55.9455, 73.8612], + [-56.3313, 74.0445], + [-56.2569, 74.2379], + [-56.6034, 74.2448], + [-56.6136, 74.4509], + [-56.2419, 74.4977], + [-56.8774, 74.7116], + [-56.846, 74.8112], + [-58.1315, 75.1082], + [-58.6595, 75.3773], + [-58.1667, 75.5004], + [-58.5572, 75.6541], + [-59.0416, 75.7014], + [-59.2722, 75.8801], + [-60.1242, 76.0319], + [-60.8321, 76.0336], + [-60.8725, 76.1581], + [-62.3976, 76.2446], + [-63.4769, 76.3769], + [-63.7233, 76.1845], + [-64.3812, 76.2603], + [-65.3545, 76.0268], + [-65.8889, 76.1025], + [-66.4137, 76.0861], + [-67.0471, 76.267], + [-67.3078, 76.164], + [-66.4871, 75.9474], + [-68.4325, 76.0794], + [-69.5773, 76.4376], + [-68.7328, 76.5862], + [-68.9103, 76.6649], + [-70.6601, 76.802], + [-71.3456, 76.9918], + [-70.9033, 77.1914], + [-69.0619, 77.2573], + [-68.3695, 77.3769], + [-66.7728, 77.3564], + [-66.0534, 77.4935], + [-66.6134, 77.6739], + [-67.1409, 77.6723], + [-67.5917, 77.5244], + [-68.6384, 77.5097], + [-69.2226, 77.4529], + [-70.2554, 77.5574], + [-71.3128, 77.7698], + [-72.7843, 78.1076], + [-72.5902, 78.5212], + [-71.5546, 78.6435], + [-69.4386, 78.8088], + [-69.0339, 78.98], + [-68.0402, 79.0768], + [-66.6789, 79.1444], + [-66.1171, 79.1028], + [-64.8599, 79.5078], + [-65.1286, 79.8503], + [-64.926, 80.0727], + [-67.0501, 80.0612], + [-67.4624, 80.1847], + [-67.4554, 80.3425], + [-66.7584, 80.5524], + [-65.1247, 80.7797], + [-64.7535, 80.9962], + [-63.9294, 81.0569], + [-62.9768, 81.2283], + [-61.5015, 81.1079], + [-60.9395, 81.1846], + [-61.2963, 81.371], + [-60.7869, 81.5089], + [-61.4543, 81.745], + [-61.2811, 81.8151], + [-58.6109, 82.1052], + [-57.0296, 82.1888], + [-54.4407, 82.3727], + [-53.0238, 82.008], + [-50.8907, 81.8781], + [-49.4645, 81.9472], + [-50.5813, 82.154], + [-51.1072, 82.5099], + [-49.0113, 82.4545], + [-48.7353, 82.3581], + [-46.0082, 82.0362], + [-45.1561, 81.7899], + [-44.3027, 81.8142], + [-44.8848, 81.9794], + [-44.3988, 82.1052], + [-44.7023, 82.2578], + [-43.7272, 82.4069], + [-45.6627, 82.7261], + [-44.9614, 82.7689], + [-41.8185, 82.7529], + [-40.6308, 82.5751], + [-39.9531, 82.6931], + [-40.9766, 82.7744], + [-46.5575, 82.8929], + [-46.43, 83.0621], + [-45.1538, 83.1623], + [-43.0395, 83.2117], + [-41.7407, 83.1946], + [-40.6903, 82.9865], + [-39.4376, 82.9618], + [-37.6283, 83.1536], + [-38.8617, 83.2567], + [-38.6903, 83.4255], + [-36.7386, 83.538], + [-35.2436, 83.5372], + [-32.2079, 83.6135] + ] + ] + ] + }, + "properties": { + "NAME": "Greenland", + "NAME_LONG": "Greenland", + "ADM0_A3": "GRL", + "ISO_A2": "GL", + "ISO_A3": "GRL", + "WB_A2": "GL", + "WB_A3": "GRL" + }, + "id": 92 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-89.1605, 17.8143], + [-89.1492, 17.0363], + [-89.2365, 15.8939], + [-88.914, 15.8939], + [-88.626, 15.7539], + [-88.4479, 15.8587], + [-88.2209, 15.7257], + [-88.399, 15.5728], + [-88.9734, 15.1404], + [-89.1728, 15.0422], + [-89.2277, 14.8346], + [-89.1445, 14.7083], + [-89.3616, 14.4155], + [-89.5699, 14.412], + [-89.5309, 14.2256], + [-89.8801, 14.0427], + [-90.099, 13.8585], + [-90.093, 13.7289], + [-90.4012, 13.8586], + [-90.7073, 13.9289], + [-90.9103, 13.9111], + [-91.3165, 13.9557], + [-91.7626, 14.1802], + [-92.2462, 14.5463], + [-92.1617, 14.7023], + [-92.1542, 14.9959], + [-92.0738, 15.0737], + [-92.2047, 15.2895], + [-91.7519, 16.0463], + [-91.7238, 16.0688], + [-90.4857, 16.0707], + [-90.3988, 16.3476], + [-90.6482, 16.5296], + [-90.7353, 16.7466], + [-91.0669, 16.9182], + [-91.2904, 17.1891], + [-90.992, 17.2519], + [-90.9909, 17.802], + [-90.2597, 17.8153], + [-89.1605, 17.8143] + ] + ] + }, + "properties": { + "NAME": "Guatemala", + "NAME_LONG": "Guatemala", + "ADM0_A3": "GTM", + "ISO_A2": "GT", + "ISO_A3": "GTM", + "WB_A2": "GT", + "WB_A3": "GTM" + }, + "id": 93 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-57.2477, 5.4849], + [-57.3241, 5.3386], + [-57.3152, 5.0261], + [-57.7205, 4.9898], + [-57.9185, 4.8298], + [-57.8374, 4.6509], + [-57.9527, 4.4097], + [-57.965, 4.282], + [-58.0677, 4.1511], + [-58.0321, 3.9877], + [-57.8539, 3.7667], + [-57.8298, 3.6624], + [-57.644, 3.5167], + [-57.5651, 3.3498], + [-57.2836, 3.3438], + [-57.2749, 3.1343], + [-57.1746, 2.819], + [-57.0272, 2.6482], + [-56.9941, 2.5049], + [-56.7052, 2.0296], + [-56.4818, 1.9416], + [-56.8065, 1.8736], + [-57.0112, 1.9186], + [-57.1045, 2.0215], + [-57.4295, 1.9003], + [-57.5612, 1.709], + [-57.7908, 1.7049], + [-57.991, 1.6504], + [-58.0272, 1.5169], + [-58.3319, 1.5934], + [-58.5137, 1.4389], + [-58.5189, 1.2673], + [-58.6826, 1.2825], + [-58.8979, 1.2178], + [-59.0111, 1.3276], + [-59.2421, 1.3778], + [-59.5727, 1.7272], + [-59.6825, 1.7656], + [-59.7645, 1.9205], + [-59.7417, 2.2638], + [-59.9031, 2.3596], + [-60.0001, 2.694], + [-59.9594, 3.0665], + [-59.8285, 3.3834], + [-59.8377, 3.6093], + [-59.6801, 3.7017], + [-59.5292, 3.9319], + [-59.7385, 4.2028], + [-59.6867, 4.3812], + [-60.0877, 4.6075], + [-59.9831, 5.0859], + [-60.2134, 5.2672], + [-60.4564, 5.1747], + [-60.7399, 5.2021], + [-61.3796, 5.9053], + [-61.2694, 6.1072], + [-61.1216, 6.1867], + [-61.139, 6.4248], + [-61.2048, 6.5958], + [-61.1298, 6.7158], + [-60.9338, 6.7317], + [-60.421, 6.9422], + [-60.2923, 7.1053], + [-60.6431, 7.2209], + [-60.6018, 7.3301], + [-60.7306, 7.5254], + [-60.6013, 7.6339], + [-60.5033, 7.8209], + [-60.3748, 7.8236], + [-60.2311, 7.9641], + [-60.0195, 8.0603], + [-59.9933, 8.1685], + [-59.8156, 8.2878], + [-60.021, 8.558], + [-59.8094, 8.3547], + [-59.7558, 8.4109], + [-59.1652, 8.0587], + [-58.7786, 7.6624], + [-58.6632, 7.5852], + [-58.4642, 7.3122], + [-58.485, 7.0108], + [-58.5507, 6.9471], + [-58.6114, 6.6878], + [-58.3984, 6.8834], + [-58.0679, 6.8217], + [-57.8919, 6.6964], + [-57.5986, 6.4272], + [-57.2898, 6.2347], + [-57.1673, 6.0851], + [-57.1373, 5.8821], + [-57.1615, 5.6389], + [-57.2477, 5.4849] + ] + ] + }, + "properties": { + "NAME": "Guyana", + "NAME_LONG": "Guyana", + "ADM0_A3": "GUY", + "ISO_A2": "GY", + "ISO_A3": "GUY", + "WB_A2": "GY", + "WB_A3": "GUY" + }, + "id": 95 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [114.2298, 22.5558], + [114.3381, 22.4464], + [114.2783, 22.2705], + [114.111, 22.366], + [114.0824, 22.5294], + [114.2298, 22.5558] + ] + ] + }, + "properties": { + "NAME": "Hong Kong", + "NAME_LONG": "Hong Kong", + "ADM0_A3": "HKG", + "ISO_A2": "HK", + "ISO_A3": "HKG", + "WB_A2": "HK", + "WB_A3": "HKG" + }, + "id": 96 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-83.1304, 14.997], + [-83.3903, 15.031], + [-83.8695, 14.7771], + [-84.0236, 14.7583], + [-84.4827, 14.6195], + [-84.6993, 14.6747], + [-84.7702, 14.8051], + [-85.002, 14.7407], + [-85.0296, 14.589], + [-85.4317, 14.1328], + [-85.8242, 13.8477], + [-86.0967, 14.0441], + [-86.4101, 13.749], + [-86.5417, 13.7821], + [-86.7662, 13.7453], + [-86.7019, 13.3142], + [-86.9108, 13.2396], + [-86.9484, 13.0697], + [-87.0847, 12.9959], + [-87.314, 12.9816], + [-87.6224, 13.423], + [-87.8172, 13.4066], + [-87.7126, 13.8005], + [-87.8329, 13.9152], + [-88.0236, 13.8912], + [-88.0875, 13.9805], + [-88.488, 13.8653], + [-88.4954, 13.9751], + [-88.7466, 14.0525], + [-88.9572, 14.1852], + [-89.0266, 14.3113], + [-89.3616, 14.4155], + [-89.1445, 14.7083], + [-89.2277, 14.8346], + [-89.1728, 15.0422], + [-88.9734, 15.1404], + [-88.399, 15.5728], + [-88.2209, 15.7257], + [-88.1189, 15.6959], + [-87.9088, 15.8681], + [-87.7222, 15.9229], + [-87.5096, 15.7987], + [-87.3451, 15.8503], + [-86.8787, 15.7641], + [-86.4706, 15.8042], + [-86.3383, 15.7814], + [-86.2071, 15.874], + [-85.9949, 15.9007], + [-85.9032, 15.9835], + [-85.7032, 15.9765], + [-85.4886, 15.8696], + [-85.2543, 15.8841], + [-84.9999, 15.9879], + [-84.6766, 15.8762], + [-84.6601, 15.7745], + [-84.2946, 15.811], + [-84.0245, 15.5351], + [-84.0825, 15.3601], + [-83.9051, 15.3835], + [-83.7745, 15.2857], + [-83.408, 15.2664], + [-83.2538, 15.0446], + [-83.1304, 14.997] + ] + ] + }, + "properties": { + "NAME": "Honduras", + "NAME_LONG": "Honduras", + "ADM0_A3": "HND", + "ISO_A2": "HN", + "ISO_A3": "HND", + "WB_A2": "HN", + "WB_A3": "HND" + }, + "id": 98 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [17.6533, 42.8909], + [18.2241, 42.6281], + [18.4374, 42.5592], + [18.4964, 42.4163], + [18.2175, 42.6201], + [17.6533, 42.8909] + ] + ], + [ + [ + [16.5153, 46.5017], + [16.8377, 46.3819], + [16.9748, 46.2106], + [17.2486, 46.0802], + [17.3453, 45.9557], + [17.5911, 45.9362], + [17.6565, 45.8454], + [17.8898, 45.7921], + [18.4117, 45.7432], + [18.6743, 45.9104], + [18.9013, 45.9312], + [18.845, 45.8157], + [18.9124, 45.6192], + [19.1621, 45.285], + [19.0823, 45.0849], + [19.1317, 44.9532], + [19.0158, 44.8656], + [18.6167, 45.0977], + [18.4661, 45.074], + [18.2379, 45.1575], + [17.9885, 45.1438], + [17.8357, 45.0644], + [17.1871, 45.1486], + [16.9326, 45.2788], + [16.7863, 45.1788], + [16.4819, 45.1995], + [16.3406, 45.0059], + [16.213, 45.0315], + [15.9975, 45.2185], + [15.78, 45.1603], + [15.7173, 44.7865], + [15.8956, 44.7186], + [16.1165, 44.5215], + [16.2158, 44.2082], + [16.6786, 43.8407], + [16.7126, 43.7715], + [17.0846, 43.5132], + [17.2395, 43.4784], + [17.2676, 43.3533], + [17.4421, 43.1524], + [17.5874, 43.0821], + [17.5807, 42.9421], + [17.3163, 43.1273], + [17.0735, 43.239], + [16.8806, 43.406], + [16.6258, 43.449], + [16.4338, 43.5498], + [16.0985, 43.48], + [15.9312, 43.6765], + [15.4661, 43.9217], + [15.1445, 44.1955], + [15.308, 44.3544], + [14.9014, 44.6902], + [14.9216, 44.9588], + [14.8274, 45.114], + [14.5105, 45.2998], + [14.3298, 45.354], + [14.2326, 45.1494], + [13.9727, 44.8266], + [13.86, 44.8257], + [13.6438, 45.0705], + [13.5134, 45.4362], + [13.5895, 45.4888], + [13.889, 45.4236], + [14.2187, 45.4972], + [14.3728, 45.4778], + [14.5561, 45.6567], + [14.6685, 45.534], + [14.9226, 45.5149], + [15.1393, 45.43], + [15.314, 45.4505], + [15.2489, 45.7118], + [15.4513, 45.8151], + [15.6661, 45.8317], + [15.6613, 46.2153], + [16.1918, 46.3698], + [16.3441, 46.547], + [16.5153, 46.5017] + ] + ] + ] + }, + "properties": { + "NAME": "Croatia", + "NAME_LONG": "Croatia", + "ADM0_A3": "HRV", + "ISO_A2": "HR", + "ISO_A3": "HRV", + "WB_A2": "HR", + "WB_A3": "HRV" + }, + "id": 99 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-72.8205, 18.7007], + [-73.2146, 18.8366], + [-73.2008, 18.9687], + [-72.8461, 18.8271], + [-72.8205, 18.7007] + ] + ], + [ + [ + [-71.7574, 19.7101], + [-71.7039, 19.4146], + [-71.7765, 19.3275], + [-71.6391, 19.2121], + [-71.7837, 18.9963], + [-71.7188, 18.7842], + [-71.8416, 18.618], + [-72.0009, 18.5825], + [-71.9122, 18.4307], + [-71.7093, 18.3133], + [-71.7762, 18.0393], + [-71.9281, 18.1838], + [-72.0718, 18.2375], + [-72.4403, 18.2239], + [-72.8859, 18.1414], + [-73.3773, 18.2581], + [-73.6542, 18.2527], + [-73.8093, 18.1592], + [-73.9678, 18.1414], + [-74.1834, 18.2933], + [-74.3309, 18.286], + [-74.4892, 18.4294], + [-74.4263, 18.6082], + [-74.2559, 18.6703], + [-73.6047, 18.4983], + [-73.5267, 18.5235], + [-72.755, 18.4294], + [-72.6283, 18.5541], + [-72.3538, 18.5301], + [-72.3251, 18.6714], + [-72.5495, 18.7856], + [-72.8135, 19.0529], + [-72.8034, 19.2319], + [-72.7283, 19.4256], + [-73.0189, 19.6007], + [-73.2211, 19.6496], + [-73.4095, 19.636], + [-73.4681, 19.7248], + [-73.3446, 19.8341], + [-73.1437, 19.9203], + [-72.776, 19.9439], + [-72.3976, 19.807], + [-72.3304, 19.7521], + [-71.7574, 19.7101] + ] + ] + ] + }, + "properties": { + "NAME": "Haiti", + "NAME_LONG": "Haiti", + "ADM0_A3": "HTI", + "ISO_A2": "HT", + "ISO_A3": "HTI", + "WB_A2": "HT", + "WB_A3": "HTI" + }, + "id": 100 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [22.1328, 48.4048], + [22.2718, 48.4035], + [22.3571, 48.2431], + [22.6001, 48.1011], + [22.831, 48.0724], + [22.8776, 47.9467], + [22.7458, 47.825], + [22.2617, 47.7158], + [21.9889, 47.4929], + [22.0016, 47.3938], + [21.6328, 47.0227], + [21.4836, 46.6849], + [21.3162, 46.6166], + [21.1645, 46.3183], + [21.0515, 46.2361], + [20.8196, 46.2717], + [20.664, 46.1378], + [20.2428, 46.1081], + [19.9292, 46.1635], + [19.5499, 46.1642], + [19.2635, 45.9814], + [18.9013, 45.9312], + [18.6743, 45.9104], + [18.4117, 45.7432], + [17.8898, 45.7921], + [17.6565, 45.8454], + [17.5911, 45.9362], + [17.3453, 45.9557], + [17.2486, 46.0802], + [16.9748, 46.2106], + [16.8377, 46.3819], + [16.5153, 46.5017], + [16.3764, 46.6291], + [16.272, 46.864], + [16.094, 46.8628], + [16.2749, 47.0043], + [16.4372, 47.0318], + [16.425, 47.3511], + [16.688, 47.5226], + [16.7975, 47.6755], + [17.0548, 47.702], + [17.0395, 47.8374], + [17.1483, 48.0054], + [17.3379, 47.9987], + [17.472, 47.8888], + [17.8257, 47.75], + [18.2359, 47.7539], + [18.7677, 47.8223], + [18.8385, 48.04], + [19.4282, 48.0859], + [19.6232, 48.227], + [19.8843, 48.1296], + [20.2724, 48.2525], + [20.4817, 48.5261], + [20.7841, 48.5691], + [21.1093, 48.4891], + [21.4246, 48.5613], + [21.7277, 48.3409], + [22.1328, 48.4048] + ] + ] + }, + "properties": { + "NAME": "Hungary", + "NAME_LONG": "Hungary", + "ADM0_A3": "HUN", + "ISO_A2": "HU", + "ISO_A3": "HUN", + "WB_A2": "HU", + "WB_A3": "HUN" + }, + "id": 101 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [123.3716, -10.5717], + [123.2092, -10.8131], + [122.8418, -10.9211], + [122.8125, -10.7784], + [123.0492, -10.7114], + [123.2251, -10.5436], + [123.3716, -10.5717] + ] + ], + [ + [ + [120.0117, -9.3576], + [120.2439, -9.509], + [120.3303, -9.6694], + [120.4363, -9.6313], + [120.5803, -9.735], + [120.6697, -9.8852], + [120.7925, -9.9609], + [120.8267, -10.0912], + [120.7112, -10.2067], + [120.3916, -10.2631], + [120.1556, -10.221], + [119.9763, -9.9924], + [119.4773, -9.7486], + [119.4061, -9.7901], + [119.0374, -9.6759], + [118.9416, -9.5705], + [119.0247, -9.4377], + [119.1687, -9.3855], + [119.6292, -9.3419], + [119.8213, -9.3786], + [120.0117, -9.3576] + ] + ], + [ + [ + [125.0616, -9.4858], + [124.9707, -9.6624], + [124.7345, -9.8995], + [124.4185, -10.1638], + [124.1224, -10.1725], + [124.0339, -10.2761], + [123.8263, -10.3639], + [123.5154, -10.3355], + [123.5471, -10.1868], + [123.7485, -10.0978], + [123.5762, -10.0139], + [123.6502, -9.8894], + [123.6888, -9.6114], + [124.03, -9.342], + [124.1975, -9.3732], + [124.3101, -9.4887], + [124.4505, -9.1802], + [124.9195, -8.962], + [124.9479, -9.0785], + [125.1624, -9.0606], + [125.1425, -9.1891], + [124.9745, -9.1919], + [125.0616, -9.4858] + ] + ], + [ + [ + [123.2879, -8.2464], + [123.3211, -8.3849], + [123.041, -8.4108], + [123.1882, -8.235], + [123.2879, -8.2464] + ] + ], + [ + [ + [116.7432, -8.3918], + [116.681, -8.5563], + [116.5004, -8.8027], + [116.5654, -8.8956], + [116.2048, -8.92], + [116.0021, -8.8989], + [115.8286, -8.7918], + [116.0603, -8.7139], + [116.0279, -8.445], + [116.3762, -8.2018], + [116.6333, -8.2751], + [116.7432, -8.3918] + ] + ], + [ + [ + [123.9412, -8.2437], + [123.7754, -8.3058], + [123.7289, -8.3933], + [123.3994, -8.586], + [123.3576, -8.4113], + [123.7982, -8.1799], + [123.9412, -8.2437] + ] + ], + [ + [ + [138.9045, -8.3517], + [138.8941, -8.4055], + [138.5584, -8.3666], + [138.5642, -8.3073], + [138.6888, -8.1813], + [138.8314, -8.1856], + [138.9045, -8.3517] + ] + ], + [ + [ + [117.5537, -8.379], + [117.4939, -8.1762], + [117.6643, -8.1481], + [117.5537, -8.379] + ] + ], + [ + [ + [124.5687, -8.131], + [124.665, -8.1697], + [125.0925, -8.1616], + [125.1233, -8.3523], + [124.4182, -8.4646], + [124.4507, -8.149], + [124.5687, -8.131] + ] + ], + [ + [ + [117.9712, -8.1004], + [118.1497, -8.1345], + [118.304, -8.3683], + [118.4436, -8.2579], + [118.9883, -8.309], + [119.0511, -8.4705], + [118.9915, -8.7551], + [118.8984, -8.6884], + [118.7466, -8.7763], + [118.465, -8.865], + [118.2993, -8.7579], + [117.8905, -8.9368], + [117.7378, -8.9098], + [117.3341, -9.0594], + [117.2261, -9.0238], + [117.0097, -9.1073], + [116.763, -9.0156], + [116.7352, -8.8734], + [116.8213, -8.7873], + [116.7901, -8.5837], + [117.1951, -8.3576], + [117.3532, -8.4467], + [117.5581, -8.4055], + [117.6491, -8.5519], + [117.7717, -8.6041], + [117.8052, -8.72], + [117.969, -8.7481], + [118.0681, -8.6559], + [118.2909, -8.6059], + [118.0575, -8.4506], + [118.0032, -8.4737], + [117.7063, -8.2297], + [117.7295, -8.1589], + [117.9712, -8.1004] + ] + ], + [ + [ + [122.9829, -8.1603], + [123.0187, -8.3341], + [122.9041, -8.3634], + [122.8074, -8.4867], + [122.8074, -8.6109], + [122.4079, -8.7415], + [122.1145, -8.7324], + [121.7937, -8.884], + [121.396, -8.7941], + [121.3406, -8.9181], + [121.1653, -8.8951], + [120.9229, -8.9262], + [120.5939, -8.7958], + [120.2439, -8.8232], + [120.131, -8.7708], + [119.9758, -8.8139], + [119.824, -8.7804], + [119.8037, -8.5968], + [119.9194, -8.4612], + [120.1089, -8.3919], + [120.277, -8.2692], + [120.6546, -8.2617], + [120.7446, -8.3298], + [120.9761, -8.3375], + [121.5095, -8.6021], + [121.8347, -8.4737], + [122.0256, -8.4998], + [122.2884, -8.6339], + [122.5007, -8.5763], + [122.4942, -8.475], + [122.7581, -8.361], + [122.7957, -8.11], + [122.9829, -8.1603] + ] + ], + [ + [ + [115.5025, -8.1726], + [115.7142, -8.3752], + [115.6048, -8.5011], + [115.3226, -8.6238], + [115.2539, -8.7146], + [114.927, -8.4675], + [114.639, -8.3986], + [114.4684, -8.2185], + [114.4479, -8.1218], + [114.6914, -8.135], + [114.8576, -8.1931], + [115.0226, -8.1726], + [115.2155, -8.0595], + [115.5025, -8.1726] + ] + ], + [ + [ + [129.7661, -7.8131], + [129.8591, -7.9325], + [129.7764, -8.0554], + [129.5942, -7.924], + [129.6325, -7.796], + [129.7661, -7.8131] + ] + ], + [ + [ + [126.7217, -7.6681], + [126.7134, -7.7475], + [126.4219, -7.9325], + [125.8084, -7.8642], + [125.9479, -7.6783], + [126.3284, -7.6957], + [126.6314, -7.5654], + [126.7217, -7.6681] + ] + ], + [ + [ + [138.8926, -8.0413], + [138.7466, -8.1515], + [138.6609, -8.169], + [138.6025, -8.2547], + [138.4442, -8.3791], + [137.637, -8.3894], + [137.759, -8.0734], + [138.0281, -7.61], + [138.2442, -7.4565], + [138.6209, -7.3647], + [138.8045, -7.3742], + [138.939, -7.5421], + [139.0464, -7.5619], + [138.9827, -7.8298], + [138.8838, -7.9325], + [138.8926, -8.0413] + ] + ], + [ + [ + [131.6536, -7.1662], + [131.6992, -7.414], + [131.6433, -7.5991], + [131.3899, -7.8471], + [131.3609, -7.9474], + [131.1162, -8.0007], + [131.1196, -7.7338], + [131.2547, -7.4723], + [131.347, -7.4382], + [131.5288, -7.1701], + [131.6536, -7.1662] + ] + ], + [ + [ + [113.9899, -6.8779], + [114.0511, -7.0114], + [113.8325, -7.132], + [113.6652, -7.11], + [113.549, -7.2338], + [113.1279, -7.2311], + [112.7425, -7.1614], + [112.6926, -7.0585], + [112.9153, -6.8917], + [113.9899, -6.8779] + ] + ], + [ + [ + [134.4365, -6.4452], + [134.4993, -6.6378], + [134.3107, -6.8595], + [134.1851, -6.9186], + [134.0734, -6.8268], + [134.1238, -6.1716], + [134.4365, -6.4452] + ] + ], + [ + [ + [106.1592, -6.0095], + [106.2565, -5.9416], + [106.4954, -6.0348], + [106.7209, -6.0309], + [106.7932, -6.1041], + [106.9935, -6.0785], + [107.1501, -5.9731], + [107.3541, -5.976], + [107.4703, -6.1454], + [107.6782, -6.238], + [107.8108, -6.1893], + [108.0937, -6.3268], + [108.2164, -6.238], + [108.5396, -6.4869], + [108.6055, -6.7617], + [108.923, -6.8447], + [109.0013, -6.7892], + [109.1428, -6.8562], + [109.3519, -6.8757], + [109.532, -6.8351], + [109.8963, -6.9182], + [110.198, -6.8909], + [110.3557, -6.9729], + [110.5715, -6.8362], + [110.7305, -6.457], + [110.9248, -6.4037], + [111.0518, -6.4567], + [111.1569, -6.6921], + [111.4287, -6.6992], + [111.4934, -6.6235], + [111.7404, -6.7817], + [111.9762, -6.7848], + [112.0679, -6.8936], + [112.3635, -6.8705], + [112.5828, -6.9899], + [112.7007, -7.2547], + [112.8233, -7.2626], + [112.7615, -7.5312], + [113.2993, -7.7885], + [113.5286, -7.7004], + [113.8039, -7.7218], + [114.0161, -7.6181], + [114.2586, -7.7004], + [114.4673, -7.831], + [114.3587, -8.4091], + [114.4612, -8.6183], + [114.5891, -8.6642], + [114.5972, -8.7756], + [114.3889, -8.7481], + [114.3026, -8.6119], + [114.197, -8.6456], + [113.7239, -8.5283], + [113.1979, -8.2773], + [112.9873, -8.3235], + [112.6727, -8.447], + [112.3662, -8.342], + [111.9273, -8.3025], + [111.792, -8.2565], + [111.6734, -8.3679], + [111.4421, -8.2761], + [111.1712, -8.2826], + [110.4767, -8.1119], + [110.0342, -7.8847], + [109.6567, -7.7817], + [109.4263, -7.7742], + [109.3688, -7.7135], + [108.8897, -7.6786], + [108.5396, -7.6923], + [108.4537, -7.8185], + [108.3268, -7.8175], + [107.6865, -7.6621], + [107.4114, -7.4959], + [106.5227, -7.411], + [106.3754, -7.3102], + [106.5371, -6.983], + [106.2834, -6.9833], + [105.9596, -6.8176], + [105.5552, -6.8557], + [105.4536, -6.8088], + [105.8241, -6.4346], + [105.8879, -6.0706], + [106.0527, -5.881], + [106.1592, -6.0095] + ] + ], + [ + [ + [120.4905, -6.4714], + [120.4636, -6.3839], + [120.4483, -5.8439], + [120.5552, -5.9794], + [120.4905, -6.4714] + ] + ], + [ + [ + [132.7029, -5.6168], + [132.8054, -5.8625], + [132.6678, -5.8881], + [132.7029, -5.6168] + ] + ], + [ + [ + [134.5812, -5.4242], + [134.6965, -5.5341], + [134.7649, -5.8904], + [134.7722, -6.0896], + [134.7018, -6.3219], + [134.6078, -6.3696], + [134.3335, -6.2214], + [134.2759, -6.0836], + [134.3604, -5.8495], + [134.3518, -5.7145], + [134.4912, -5.4482], + [134.5812, -5.4242] + ] + ], + [ + [ + [133.047, -5.6486], + [133.023, -5.5485], + [133.1101, -5.311], + [133.1843, -5.3103], + [133.1133, -5.5956], + [133.047, -5.6486] + ] + ], + [ + [ + [121.9194, -5.0955], + [122.0642, -5.1899], + [122.053, -5.4323], + [121.9683, -5.468], + [121.8068, -5.2599], + [121.9194, -5.0955] + ] + ], + [ + [ + [122.7786, -4.9495], + [122.6434, -5.0788], + [122.6554, -5.3225], + [122.5435, -5.4288], + [122.2752, -5.3276], + [122.4026, -5.0618], + [122.3275, -4.8352], + [122.405, -4.7379], + [122.657, -4.6243], + [122.7355, -4.6437], + [122.7786, -4.9495] + ] + ], + [ + [ + [123.2113, -4.6775], + [123.0464, -4.7529], + [122.9836, -5.0878], + [123.2131, -5.3017], + [123.0656, -5.4184], + [122.9775, -5.3942], + [122.8276, -5.6762], + [122.6384, -5.6622], + [122.5671, -5.5069], + [122.7634, -5.2079], + [122.855, -4.8178], + [122.848, -4.6489], + [122.9089, -4.4745], + [123.0195, -4.3902], + [123.1904, -4.5668], + [123.2113, -4.6775] + ] + ], + [ + [ + [123.0818, -4.0012], + [123.2534, -4.0898], + [123.0866, -4.2345], + [122.9507, -4.0471], + [123.0818, -4.0012] + ] + ], + [ + [ + [128.3234, -3.5702], + [128.2365, -3.7223], + [128.1271, -3.7494], + [127.9164, -3.6939], + [128.0345, -3.589], + [128.3234, -3.5702] + ] + ], + [ + [ + [116.1247, -4.0304], + [116.013, -3.6505], + [116.1262, -3.3186], + [116.263, -3.4055], + [116.308, -3.8786], + [116.1247, -4.0304] + ] + ], + [ + [ + [126.8753, -3.1095], + [127.0935, -3.2008], + [127.0462, -3.3054], + [127.2598, -3.3712], + [127.2434, -3.6061], + [126.7422, -3.8594], + [126.5893, -3.8166], + [126.1736, -3.6025], + [126.0526, -3.4463], + [125.9917, -3.2482], + [126.0909, -3.1121], + [126.1851, -3.1809], + [126.4214, -3.0705], + [126.7202, -3.0602], + [126.8753, -3.1095] + ] + ], + [ + [ + [129.541, -2.78], + [130.0466, -2.9921], + [130.345, -2.9776], + [130.5785, -3.1228], + [130.6667, -3.4036], + [130.7615, -3.4059], + [130.8732, -3.574], + [130.8179, -3.8688], + [130.6069, -3.7785], + [130.4188, -3.6369], + [129.9832, -3.4597], + [129.8905, -3.3331], + [129.5449, -3.2978], + [129.4856, -3.4635], + [129.1135, -3.3488], + [128.9608, -3.3556], + [128.8775, -3.2026], + [128.6926, -3.3487], + [128.6776, -3.4323], + [128.4841, -3.4625], + [128.2821, -3.2209], + [128.0666, -3.197], + [128.0222, -3.3686], + [127.8753, -3.2088], + [128.1063, -2.9755], + [128.1755, -2.857], + [128.5159, -2.8342], + [128.8652, -2.8621], + [129.0529, -2.8045], + [129.1218, -2.9577], + [129.541, -2.78] + ] + ], + [ + [ + [100.4675, -3.067], + [100.3452, -3.1266], + [100.1895, -2.9666], + [100.2554, -2.7914], + [100.4675, -3.067] + ] + ], + [ + [ + [107.8482, -2.5499], + [108.0666, -2.5945], + [108.2673, -2.7574], + [108.2887, -2.8666], + [108.1877, -3.1369], + [107.9661, -3.151], + [107.8884, -3.0875], + [107.7531, -3.1985], + [107.5811, -3.0107], + [107.5942, -2.7863], + [107.6703, -2.5615], + [107.8482, -2.5499] + ] + ], + [ + [ + [100.2041, -2.7599], + [100.0078, -2.8195], + [99.9841, -2.4846], + [100.2014, -2.6782], + [100.2041, -2.7599] + ] + ], + [ + [ + [125.4221, -1.7941], + [125.7029, -1.8193], + [125.9934, -1.7858], + [125.9802, -1.9018], + [125.438, -1.9325], + [125.4221, -1.7941] + ] + ], + [ + [ + [130.3572, -1.6949], + [130.4378, -1.8507], + [130.2561, -2.0458], + [130.1265, -2.067], + [129.9255, -2.0038], + [129.7453, -1.8635], + [130.012, -1.7502], + [130.3572, -1.6949] + ] + ], + [ + [ + [124.5296, -1.6357], + [124.6328, -1.6311], + [125.023, -1.7231], + [125.284, -1.7311], + [125.3216, -1.8644], + [125.0135, -1.9443], + [124.8533, -1.8969], + [124.5432, -2.0065], + [124.406, -2.0041], + [124.3314, -1.8269], + [124.3849, -1.6679], + [124.5296, -1.6357] + ] + ], + [ + [ + [135.4773, -1.5899], + [135.8967, -1.648], + [136.1913, -1.6539], + [136.3903, -1.7258], + [136.7046, -1.7306], + [136.6449, -1.8764], + [136.2732, -1.9094], + [135.718, -1.7033], + [135.4839, -1.675], + [135.4773, -1.5899] + ] + ], + [ + [ + [105.8757, -1.4892], + [106.0339, -1.5759], + [106.0355, -1.6783], + [106.1746, -1.8791], + [106.1626, -2.007], + [106.2642, -2.3513], + [106.354, -2.463], + [106.683, -2.5325], + [106.613, -2.9426], + [106.7073, -3.0942], + [106.5322, -3.1056], + [106.447, -2.9811], + [105.9865, -2.8212], + [105.9016, -2.6287], + [105.9443, -2.4988], + [105.8288, -2.3951], + [105.7957, -2.1718], + [105.6074, -2.1148], + [105.3064, -2.135], + [105.1475, -2.08], + [105.1543, -1.936], + [105.3757, -1.8219], + [105.3499, -1.6487], + [105.4596, -1.5629], + [105.8757, -1.4892] + ] + ], + [ + [ + [127.8308, -1.4316], + [127.8989, -1.4267], + [128.1511, -1.6697], + [127.7033, -1.6902], + [127.5327, -1.7314], + [127.3787, -1.6323], + [127.4036, -1.4916], + [127.6245, -1.3295], + [127.8308, -1.4316] + ] + ], + [ + [ + [123.201, -1.1552], + [123.5391, -1.2727], + [123.5286, -1.433], + [123.4084, -1.5165], + [123.3268, -1.4212], + [123.1848, -1.4856], + [123.0946, -1.3464], + [122.9932, -1.5092], + [122.874, -1.5846], + [122.812, -1.4436], + [122.8987, -1.1843], + [123.201, -1.1552] + ] + ], + [ + [ + [109.6063, -0.9747], + [109.7598, -1.0317], + [109.7803, -1.1316], + [109.4787, -1.2985], + [109.4172, -1.2545], + [109.4523, -1.004], + [109.6063, -0.9747] + ] + ], + [ + [ + [98.918, -0.9401], + [98.9053, -0.9907], + [99.2725, -1.6018], + [99.2442, -1.779], + [99.1006, -1.7994], + [98.8848, -1.6794], + [98.5938, -1.1984], + [98.6582, -0.9635], + [98.918, -0.9401] + ] + ], + [ + [ + [130.9349, -0.9259], + [131.0348, -0.9148], + [131.0725, -1.0776], + [130.9826, -1.3486], + [130.8533, -1.3307], + [130.7497, -1.2234], + [130.6807, -0.9566], + [130.9349, -0.9259] + ] + ], + [ + [ + [135.4234, -0.6549], + [135.8474, -0.6959], + [136.0658, -0.8717], + [136.2936, -1.1832], + [136.1428, -1.2234], + [135.8283, -1.1078], + [135.781, -0.8727], + [135.6406, -0.8816], + [135.4234, -0.6549] + ] + ], + [ + [ + [140.9745, -2.6005], + [140.9735, -3.8], + [140.9758, -4.5959], + [140.9769, -5.6212], + [140.9769, -6.3351], + [140.8492, -6.7028], + [140.9772, -6.8966], + [140.9769, -7.9621], + [140.977, -9.1061], + [140.8569, -9.0491], + [140.6216, -8.8067], + [140.5075, -8.6381], + [140.0319, -8.2464], + [139.9324, -8.1086], + [139.6305, -8.1249], + [139.3567, -8.1994], + [139.2012, -8.0956], + [139.0895, -8.1336], + [138.9144, -8.2921], + [138.8386, -8.1384], + [138.9058, -8.0436], + [138.911, -7.9225], + [138.994, -7.8655], + [139.093, -7.56], + [138.958, -7.5073], + [138.8861, -7.3609], + [138.6882, -7.1926], + [138.762, -7.1139], + [138.572, -6.9425], + [138.7398, -6.8971], + [138.8224, -6.8061], + [138.6729, -6.6949], + [138.6776, -6.603], + [138.4661, -6.4021], + [138.2708, -5.887], + [138.0711, -5.7286], + [138.0598, -5.5753], + [137.9146, -5.3869], + [137.7063, -5.2219], + [137.5798, -5.1819], + [137.2671, -4.9994], + [136.9539, -4.9228], + [136.8221, -4.9283], + [136.3555, -4.6774], + [136.0358, -4.586], + [135.9705, -4.5196], + [135.4295, -4.4304], + [135.1856, -4.4489], + [134.8235, -4.2594], + [134.4304, -3.9078], + [134.3153, -4.0203], + [134.1912, -3.9435], + [134.1731, -3.7879], + [133.959, -3.8376], + [133.8436, -3.6384], + [133.5862, -3.5666], + [133.4089, -3.7224], + [133.4556, -3.8469], + [133.2694, -4.052], + [132.9077, -4.0881], + [132.7918, -3.9272], + [132.7561, -3.6275], + [132.8319, -3.461], + [132.8117, -3.2817], + [132.6921, -3.3381], + [132.5531, -3.107], + [132.3257, -2.9465], + [131.9969, -2.9148], + [132.035, -2.7936], + [132.2019, -2.6764], + [132.5857, -2.7175], + [132.7366, -2.81], + [132.8353, -2.736], + [133.0335, -2.4794], + [133.2585, -2.4164], + [133.3206, -2.4919], + [133.735, -2.5168], + [133.9209, -2.3876], + [133.863, -2.218], + [133.5486, -2.245], + [133.2962, -2.2042], + [132.9436, -2.2834], + [132.8159, -2.245], + [132.6987, -2.3054], + [132.5604, -2.1856], + [132.3479, -2.2701], + [132.0734, -2.1052], + [131.9729, -1.9646], + [131.9273, -1.7062], + [131.8215, -1.5982], + [131.5731, -1.4802], + [131.3237, -1.4692], + [131.2057, -1.5236], + [131.0036, -1.4562], + [131.03, -1.2756], + [131.1817, -1.2172], + [131.2915, -0.915], + [131.243, -0.8194], + [131.8843, -0.6819], + [132.0996, -0.4699], + [132.4372, -0.3471], + [132.7092, -0.36], + [133.1548, -0.532], + [133.3916, -0.7232], + [133.7454, -0.7507], + [133.9772, -0.7232], + [134.1008, -0.8126], + [134.0361, -0.9578], + [134.1275, -1.1484], + [134.282, -1.3502], + [134.2072, -1.5735], + [134.0871, -1.6828], + [134.1934, -2.3791], + [134.3303, -2.5222], + [134.4639, -2.8547], + [134.5327, -2.8342], + [134.4744, -2.5807], + [134.5563, -2.4648], + [134.6581, -2.5628], + [134.7013, -2.9587], + [134.8242, -3.0504], + [134.8806, -3.2429], + [134.9847, -3.3297], + [135.322, -3.3865], + [135.4705, -3.3631], + [135.6389, -3.1782], + [135.9099, -2.9858], + [135.9646, -2.7758], + [136.2664, -2.5603], + [136.4038, -2.2197], + [136.7586, -2.2487], + [136.9515, -2.1422], + [137.2263, -2.0744], + [137.1428, -1.787], + [137.3488, -1.7101], + [137.7944, -1.4841], + [137.9248, -1.4841], + [138.0749, -1.6103], + [138.6652, -1.7892], + [138.8032, -1.9208], + [139.1067, -2.0128], + [139.2832, -2.1218], + [139.8648, -2.372], + [140.1047, -2.3201], + [140.3323, -2.4557], + [140.3885, -2.3971], + [140.7308, -2.4915], + [140.7346, -2.6349], + [140.9745, -2.6005] + ] + ], + [ + [ + [104.5485, -0.398], + [104.522, -0.5966], + [104.2559, -0.4755], + [104.3247, -0.3648], + [104.5485, -0.398] + ] + ], + [ + [ + [127.632, -0.4153], + [127.6065, -0.6291], + [127.8982, -0.7673], + [127.7488, -0.8853], + [127.6257, -0.7524], + [127.4699, -0.8185], + [127.3986, -0.6202], + [127.303, -0.5109], + [127.3167, -0.3396], + [127.632, -0.4153] + ] + ], + [ + [ + [127.2136, -0.2502], + [127.252, -0.4972], + [127.1023, -0.4378], + [127.1104, -0.2877], + [127.2136, -0.2502] + ] + ], + [ + [ + [98.4868, -0.5109], + [98.3167, -0.5351], + [98.3689, -0.3492], + [98.5073, -0.3649], + [98.4868, -0.5109] + ] + ], + [ + [ + [130.8247, -0.0038], + [131.1537, -0.0857], + [131.2974, -0.1593], + [131.3386, -0.2776], + [130.9517, -0.3464], + [130.6956, -0.0795], + [130.6262, -0.1257], + [130.811, -0.3185], + [130.6807, -0.3396], + [130.3163, -0.2599], + [130.3687, -0.1218], + [130.4985, -0.0627], + [130.8247, -0.0038] + ] + ], + [ + [ + [98.5598, -0.2783], + [98.5125, -0.319], + [98.3435, -0.0447], + [98.4061, -0.0074], + [98.5598, -0.2783] + ] + ], + [ + [ + [104.5879, 0.0083], + [104.7663, -0.1882], + [104.5414, -0.2713], + [104.4373, -0.1811], + [104.5879, 0.0083] + ] + ], + [ + [ + [102.6453, 0.9972], + [102.7638, 1.0112], + [103.0217, 0.8453], + [102.8522, 0.7982], + [102.5579, 0.7803], + [102.4065, 0.8732], + [102.5017, 0.9729], + [102.6453, 0.9972] + ] + ], + [ + [ + [103.0371, 1.0446], + [103.0863, 0.841], + [102.7907, 1.0315], + [102.8018, 1.1633], + [103.0371, 1.0446] + ] + ], + [ + [ + [104.1524, 1.14], + [104.0492, 0.9842], + [103.9026, 1.0905], + [104.1032, 1.1895], + [104.1524, 1.14] + ] + ], + [ + [ + [104.5925, 1.1988], + [104.6616, 0.9372], + [104.4834, 0.859], + [104.4525, 1.0582], + [104.3154, 1.0036], + [104.2319, 1.0933], + [104.3997, 1.2026], + [104.5925, 1.1988] + ] + ], + [ + [ + [102.4649, 0.9634], + [102.3338, 0.9637], + [102.2329, 1.0995], + [102.201, 1.2978], + [102.2909, 1.4045], + [102.4734, 1.242], + [102.4649, 0.9634] + ] + ], + [ + [ + [97.3745, 1.5185], + [97.4863, 1.4765], + [97.6936, 1.186], + [97.9392, 0.9861], + [97.883, 0.643], + [97.7041, 0.5727], + [97.6138, 0.8236], + [97.3888, 0.9521], + [97.2331, 1.2773], + [97.2359, 1.4167], + [97.3745, 1.5185] + ] + ], + [ + [ + [102.2376, 1.5703], + [102.4905, 1.4897], + [102.5115, 1.2953], + [102.3303, 1.4133], + [102.1345, 1.4557], + [102.2376, 1.5703] + ] + ], + [ + [ + [125.0617, 1.6745], + [125.2492, 1.4847], + [125.1443, 1.4213], + [125.0337, 1.1754], + [124.8987, 0.973], + [124.6638, 0.8056], + [124.5034, 0.534], + [124.3218, 0.3989], + [123.7458, 0.3109], + [123.2388, 0.3245], + [123.0742, 0.5163], + [122.9779, 0.4828], + [122.3244, 0.4971], + [121.8005, 0.4265], + [121.6901, 0.5238], + [121.5078, 0.4868], + [120.8924, 0.4233], + [120.6795, 0.5306], + [120.3753, 0.4777], + [120.1284, 0.1811], + [119.9956, -0.2092], + [120.0892, -0.6573], + [120.2439, -0.8876], + [120.4124, -0.905], + [120.5824, -1.1052], + [120.5654, -1.2155], + [120.676, -1.3947], + [120.8039, -1.3429], + [121.0733, -1.4213], + [121.5007, -0.8593], + [121.6597, -0.8126], + [121.7142, -0.9355], + [122.1053, -0.9262], + [122.2077, -0.7647], + [122.6125, -0.7522], + [122.7165, -0.7924], + [122.9124, -0.7629], + [122.823, -0.6122], + [123.2395, -0.5705], + [123.4035, -0.6427], + [123.4544, -0.7582], + [123.3833, -1.0037], + [123.2388, -1.0248], + [123.0608, -0.8805], + [122.8117, -0.9241], + [122.6483, -1.1594], + [122.3688, -1.4928], + [122.1839, -1.6142], + [122.0365, -1.6139], + [121.7986, -1.718], + [121.6921, -1.9081], + [121.54, -1.9234], + [121.4409, -1.8136], + [121.327, -1.919], + [121.8229, -2.2873], + [122.0191, -2.615], + [122.0156, -2.6935], + [122.3125, -2.9269], + [122.2796, -3.0396], + [122.3859, -3.132], + [122.2517, -3.3761], + [122.2005, -3.5566], + [122.2505, -3.6562], + [122.4414, -3.7311], + [122.6244, -3.9524], + [122.6751, -4.1227], + [122.9071, -4.196], + [122.9002, -4.3888], + [122.7688, -4.4784], + [122.5991, -4.3967], + [122.4304, -4.4169], + [122.1078, -4.52], + [121.9917, -4.8557], + [121.7044, -4.8352], + [121.4846, -4.6564], + [121.5363, -4.2306], + [121.6277, -4.0871], + [121.3543, -3.9684], + [120.8938, -3.5392], + [120.8703, -3.4457], + [121.0667, -3.1938], + [121.0669, -2.7522], + [121.0059, -2.6608], + [120.7761, -2.6149], + [120.2316, -2.9504], + [120.2853, -3.1625], + [120.4216, -3.2675], + [120.3953, -3.3823], + [120.4465, -3.7287], + [120.3535, -3.9308], + [120.4021, -4.5745], + [120.3866, -4.8293], + [120.3094, -4.8713], + [120.2643, -5.15], + [120.3811, -5.3373], + [120.3233, -5.5095], + [120.1004, -5.5956], + [119.9149, -5.5689], + [119.8057, -5.6925], + [119.648, -5.6788], + [119.4375, -5.5217], + [119.3528, -5.3556], + [119.3799, -5.1917], + [119.5252, -4.8831], + [119.4912, -4.7541], + [119.5911, -4.5641], + [119.6268, -4.3145], + [119.5852, -3.9703], + [119.4567, -3.7145], + [119.4976, -3.4953], + [119.2976, -3.4279], + [119.209, -3.4898], + [118.9268, -3.5661], + [118.7642, -3.0909], + [118.8533, -3.0534], + [118.8806, -2.861], + [118.7573, -2.7758], + [119.1414, -2.442], + [119.134, -2.2035], + [119.2161, -2.0099], + [119.354, -1.9347], + [119.3084, -1.6949], + [119.2986, -1.3879], + [119.3284, -1.2145], + [119.4531, -1.0964], + [119.5374, -0.85], + [119.6821, -0.7369], + [119.8672, -0.7883], + [119.7578, -0.4699], + [119.792, -0.1068], + [119.8882, 0.0713], + [119.794, 0.1966], + [119.9118, 0.4737], + [120.0322, 0.5163], + [120.0628, 0.7429], + [120.3403, 0.8724], + [120.5681, 0.7821], + [120.6834, 0.9919], + [120.8032, 1.0684], + [120.8208, 1.31], + [120.9673, 1.3462], + [121.2649, 1.2296], + [121.43, 1.233], + [121.4807, 1.1209], + [121.6309, 1.062], + [121.9261, 1.0987], + [122.2354, 1.0098], + [122.4541, 1.0207], + [122.6238, 0.9664], + [122.8489, 0.818], + [122.968, 0.9626], + [123.3687, 0.9274], + [123.563, 0.8669], + [123.9479, 0.8389], + [124.315, 1.0377], + [124.3894, 1.1861], + [124.5938, 1.1959], + [124.5484, 1.3598], + [124.8504, 1.4897], + [124.8369, 1.5889], + [125.0617, 1.6745] + ] + ], + [ + [ + [101.7212, 2.0581], + [101.7756, 1.948], + [101.7151, 1.7782], + [101.5773, 1.7093], + [101.4601, 1.7655], + [101.3938, 1.9306], + [101.4409, 2.0649], + [101.6493, 2.1285], + [101.7212, 2.0581] + ] + ], + [ + [ + [128.0567, 2.1925], + [127.8517, 1.8254], + [128.0149, 1.7192], + [128.0353, 1.538], + [127.9739, 1.2978], + [127.8943, 1.1566], + [127.6375, 1.0007], + [127.6551, 0.89], + [127.7957, 0.7991], + [127.923, 0.8698], + [127.9364, 1.0073], + [128.1961, 1.1964], + [128.1868, 1.3742], + [128.4597, 1.545], + [128.7195, 1.5706], + [128.741, 1.4049], + [128.7012, 1.0709], + [128.3154, 0.9016], + [128.2136, 0.7739], + [128.3135, 0.6682], + [128.6843, 0.5417], + [128.7039, 0.332], + [128.4748, 0.3872], + [128.2622, 0.3913], + [127.9602, 0.4828], + [127.8809, 0.3017], + [127.9212, 0.1456], + [127.8924, -0.0172], + [128.0427, -0.4153], + [128.2278, -0.7096], + [128.0488, -0.7128], + [127.8513, -0.3655], + [127.6724, -0.2302], + [127.7137, 0.2773], + [127.5723, 0.4223], + [127.5269, 0.5606], + [127.5554, 0.7399], + [127.492, 1.0549], + [127.4059, 1.2299], + [127.5408, 1.4757], + [127.5809, 1.7518], + [127.69, 1.9253], + [127.9172, 2.1721], + [128.0567, 2.1925] + ] + ], + [ + [ + [128.596, 2.6086], + [128.6945, 2.4389], + [128.5667, 2.1099], + [128.345, 2.0399], + [128.2461, 2.1061], + [128.1971, 2.2662], + [128.3211, 2.4586], + [128.4666, 2.5943], + [128.596, 2.6086] + ] + ], + [ + [ + [95.9119, 2.9062], + [96.2461, 2.6], + [96.4441, 2.4904], + [96.3076, 2.3741], + [96.0657, 2.5794], + [95.9314, 2.5956], + [95.698, 2.7788], + [95.8141, 2.9221], + [95.9119, 2.9062] + ] + ], + [ + [ + [117.5062, 3.5021], + [117.2549, 3.5071], + [117.2684, 3.5929], + [117.5062, 3.5021] + ] + ], + [ + [ + [117.7036, 4.1634], + [117.907, 4.1567], + [117.8386, 4.0402], + [117.7036, 4.1634] + ] + ], + [ + [ + [108.3068, 4.0865], + [108.4063, 3.8743], + [108.3176, 3.6838], + [108.1745, 3.6519], + [108.1803, 3.8168], + [108.0623, 3.8559], + [107.9846, 4.012], + [108.1703, 4.1794], + [108.3068, 4.0865] + ] + ], + [ + [ + [117.5671, 4.1597], + [117.5203, 4.0493], + [117.7772, 3.7991], + [117.7485, 3.6369], + [117.5466, 3.664], + [117.2195, 3.6474], + [117.2, 3.555], + [117.3255, 3.436], + [117.3527, 3.1828], + [117.6172, 3.0859], + [117.6333, 2.8122], + [117.784, 2.7582], + [117.8262, 2.6074], + [118.0635, 2.3669], + [118.0915, 2.262], + [117.8599, 2.0383], + [117.9241, 1.8192], + [118.1267, 1.6547], + [118.4251, 1.4857], + [118.7764, 1.202], + [118.8569, 1.0582], + [119.0029, 0.9625], + [118.7982, 0.8049], + [118.5653, 0.804], + [118.1878, 0.8752], + [117.8113, 0.8118], + [117.5173, 0.291], + [117.4756, 0.0576], + [117.5303, -0.0323], + [117.4339, -0.2638], + [117.596, -0.4226], + [117.5759, -0.63], + [117.4519, -0.8665], + [117.3011, -0.816], + [117.0237, -1.2029], + [116.8198, -1.2614], + [116.7624, -1.3653], + [116.5392, -1.4812], + [116.5575, -1.6062], + [116.3249, -1.7039], + [116.4666, -1.9075], + [116.3928, -2.1911], + [116.6033, -2.2242], + [116.54, -2.5129], + [116.3904, -2.589], + [116.3342, -2.9256], + [116.1113, -2.9303], + [116.2649, -3.1369], + [116.1633, -3.1729], + [115.9679, -3.6088], + [115.8362, -3.6332], + [115.5833, -3.7805], + [115.0603, -3.9858], + [114.7129, -4.1708], + [114.6316, -4.0129], + [114.6111, -3.6839], + [114.5239, -3.4758], + [114.4124, -3.4853], + [114.1082, -3.3473], + [113.7131, -3.4726], + [113.6325, -3.4568], + [113.6204, -3.1853], + [113.3452, -3.2465], + [113.1826, -3.0771], + [113.0371, -2.9931], + [113.0215, -3.1625], + [112.618, -3.4238], + [112.5247, -3.4378], + [112.3027, -3.3139], + [112.1169, -3.3823], + [111.9053, -3.572], + [111.822, -3.5451], + [111.8325, -3.0616], + [111.7603, -2.9076], + [111.5843, -3.0089], + [111.4475, -2.9298], + [111.2962, -2.9365], + [111.0608, -3.0611], + [110.9065, -3.0833], + [110.5081, -2.8746], + [110.2632, -3.0029], + [110.221, -2.5328], + [110.0956, -2.1974], + [110.1292, -2.0695], + [110.075, -1.9225], + [109.9216, -1.7696], + [110.0339, -1.6462], + [110.0685, -1.4325], + [110.0296, -1.2859], + [109.9299, -1.2232], + [109.7341, -0.954], + [109.4382, -0.8456], + [109.2732, -0.8536], + [109.2453, -0.6959], + [109.1233, -0.4997], + [109.0908, -0.2872], + [109.176, -0.212], + [109.1668, 0.1123], + [109.1023, 0.2431], + [108.9209, 0.3403], + [108.9273, 0.6408], + [108.8555, 0.8322], + [108.9803, 0.9956], + [108.927, 1.1404], + [109.0608, 1.3839], + [109.096, 1.5606], + [109.2527, 1.6684], + [109.3478, 1.8096], + [109.341, 1.9355], + [109.5612, 1.9905], + [109.6453, 2.0832], + [109.5284, 1.89], + [109.6472, 1.7619], + [109.6773, 1.5729], + [109.9763, 1.2877], + [110.1704, 1.1745], + [110.2566, 1.0391], + [110.5539, 0.8514], + [110.784, 0.9082], + [110.8527, 0.9972], + [111.1976, 1.0752], + [111.3518, 1.0139], + [111.8231, 1.0085], + [111.9101, 1.114], + [112.1001, 1.1549], + [112.1801, 1.449], + [112.4705, 1.5677], + [113.0234, 1.537], + [113.089, 1.4313], + [113.5034, 1.3145], + [113.6495, 1.2333], + [113.9097, 1.4425], + [114.1604, 1.4248], + [114.3557, 1.502], + [114.5006, 1.436], + [114.669, 1.694], + [114.6714, 1.821], + [114.832, 1.9025], + [114.8453, 2.025], + [114.753, 2.1348], + [114.7788, 2.2472], + [114.9196, 2.2957], + [115.1265, 2.4792], + [115.0565, 2.6086], + [115.0669, 2.8282], + [115.2421, 3.0416], + [115.4641, 3.0308], + [115.5176, 3.3572], + [115.6006, 3.4412], + [115.5485, 3.6053], + [115.6469, 4.1691], + [115.8788, 4.3521], + [116.0206, 4.2709], + [116.1258, 4.3789], + [116.3107, 4.3834], + [116.4941, 4.3249], + [117.1647, 4.3331], + [117.4129, 4.2001], + [117.5671, 4.1597] + ] + ], + [ + [ + [126.875, 4.4943], + [126.9221, 4.282], + [126.8099, 4.1572], + [126.81, 4.0373], + [126.6648, 4.0341], + [126.7337, 4.5359], + [126.875, 4.4943] + ] + ], + [ + [ + [95.5027, 5.6051], + [95.5762, 5.6313], + [95.8875, 5.5122], + [95.9304, 5.4145], + [96.1262, 5.2818], + [96.3622, 5.2255], + [96.6506, 5.2163], + [96.9734, 5.2734], + [97.2684, 5.1551], + [97.4968, 5.2519], + [97.6644, 5.0734], + [97.9092, 4.8896], + [98.054, 4.5532], + [98.2756, 4.4254], + [98.263, 4.1773], + [98.3057, 4.0803], + [98.4772, 4.0462], + [98.6766, 3.9145], + [98.7966, 3.7254], + [98.9575, 3.6713], + [99.4898, 3.3362], + [99.5894, 3.228], + [99.7507, 3.1805], + [99.9795, 2.9485], + [100.0186, 2.7317], + [100.2034, 2.7099], + [100.3084, 2.5695], + [100.3817, 2.355], + [100.561, 2.1568], + [100.8557, 1.9992], + [100.8128, 2.2498], + [100.9079, 2.2995], + [101.3, 2.0466], + [101.3776, 1.7733], + [101.5916, 1.6547], + [101.7786, 1.6443], + [102.1182, 1.3865], + [102.2401, 0.9821], + [102.5519, 0.7381], + [102.8771, 0.7264], + [103.0563, 0.5583], + [103.0747, 0.4423], + [103.3622, 0.5363], + [103.7112, 0.3115], + [103.7915, -0.0125], + [103.6712, -0.0174], + [103.4944, -0.1184], + [103.4822, -0.3737], + [103.376, -0.7268], + [103.6504, -0.943], + [103.8391, -1.0328], + [103.9558, -0.977], + [104.2124, -1.0733], + [104.3772, -1.0317], + [104.445, -1.3046], + [104.4544, -1.531], + [104.5645, -1.8577], + [104.6638, -2.0313], + [104.8743, -2.08], + [104.8833, -2.2849], + [105.1167, -2.3805], + [105.2022, -2.3474], + [105.6238, -2.4018], + [105.6084, -2.5523], + [105.7781, -2.6901], + [105.7918, -2.8621], + [106.0156, -2.9695], + [106.0632, -3.2667], + [105.929, -3.3654], + [105.8196, -3.6725], + [105.9525, -3.8338], + [105.8128, -4.2387], + [105.9063, -4.4693], + [105.8333, -5.3832], + [105.8296, -5.6547], + [105.7826, -5.8285], + [105.6021, -5.8098], + [105.3107, -5.466], + [105.1184, -5.7822], + [104.6228, -5.4907], + [104.5332, -5.5598], + [104.6887, -5.8079], + [104.5418, -5.8419], + [104.2977, -5.6433], + [104.258, -5.5398], + [104.1109, -5.4462], + [103.9014, -5.2185], + [103.9134, -5.1393], + [103.7054, -4.955], + [103.4146, -4.8693], + [103.1729, -4.6179], + [102.9204, -4.4926], + [102.7012, -4.2704], + [102.3125, -3.9915], + [102.2222, -3.6428], + [101.6375, -3.2507], + [101.419, -2.9273], + [101.327, -2.7392], + [101.1048, -2.5871], + [100.9231, -2.3334], + [100.8316, -2.1413], + [100.8872, -2.0372], + [100.5706, -1.4426], + [100.5692, -1.3308], + [100.406, -1.2644], + [100.4129, -1.0392], + [100.3014, -0.8163], + [100.0013, -0.4563], + [99.8138, -0.2946], + [99.7472, -0.0298], + [99.6109, 0.0986], + [99.3162, 0.2426], + [99.1393, 0.2737], + [99.0899, 0.622], + [98.9812, 0.8317], + [98.9173, 1.1172], + [98.7302, 1.5144], + [98.8189, 1.6197], + [98.7601, 1.7641], + [98.6582, 1.7639], + [98.5352, 1.9365], + [98.3545, 2.0038], + [97.9836, 2.2444], + [97.7444, 2.2811], + [97.6582, 2.4116], + [97.6027, 2.8662], + [97.4221, 2.9284], + [97.2708, 3.2144], + [97.1826, 3.246], + [97.0186, 3.5227], + [96.8836, 3.6824], + [96.7605, 3.7487], + [96.5598, 3.7466], + [96.4303, 3.8253], + [96.1909, 4.126], + [96.01, 4.2257], + [95.4263, 4.8273], + [95.2913, 5.1916], + [95.199, 5.2929], + [95.2517, 5.3956], + [95.1973, 5.5464], + [95.4129, 5.6496], + [95.5027, 5.6051] + ] + ] + ] + }, + "properties": { + "NAME": "Indonesia", + "NAME_LONG": "Indonesia", + "ADM0_A3": "IDN", + "ISO_A2": "ID", + "ISO_A3": "IDN", + "WB_A2": "ID", + "WB_A3": "IDN" + }, + "id": 102 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-4.6121, 54.057], + [-4.7103, 54.2206], + [-4.442, 54.4044], + [-4.3119, 54.2872], + [-4.6121, 54.057] + ] + ] + }, + "properties": { + "NAME": "Isle of Man", + "NAME_LONG": "Isle of Man", + "ADM0_A3": "IMN", + "ISO_A2": "IM", + "ISO_A3": "IMN", + "WB_A2": "IM", + "WB_A3": "IMY" + }, + "id": 103 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [93.8553, 7.2142], + [93.9287, 7.0124], + [93.8137, 6.8083], + [93.7175, 6.9926], + [93.6764, 7.1819], + [93.8553, 7.2142] + ] + ], + [ + [ + [92.5821, 10.7903], + [92.5742, 10.5806], + [92.4026, 10.5752], + [92.3757, 10.775], + [92.5276, 10.8955], + [92.5821, 10.7903] + ] + ], + [ + [ + [93.0163, 13.5674], + [93.0794, 13.2598], + [92.964, 12.8649], + [92.9906, 12.5192], + [92.8926, 12.2145], + [92.7688, 12.0847], + [92.7969, 11.8651], + [92.7267, 11.5062], + [92.6336, 11.5826], + [92.5397, 11.8944], + [92.6401, 12.1361], + [92.7927, 12.2077], + [92.7178, 12.3625], + [92.7375, 12.8072], + [92.8003, 12.8578], + [92.8542, 13.1461], + [92.8474, 13.3449], + [93.0163, 13.5674] + ] + ], + [ + [ + [80.996, 30.197], + [80.5713, 29.9469], + [80.369, 29.7579], + [80.3852, 29.6048], + [80.2137, 29.4169], + [80.2787, 29.2681], + [80.1326, 29.1102], + [80.0364, 28.837], + [80.3498, 28.6202], + [80.4975, 28.6701], + [80.6483, 28.6198], + [81.0004, 28.397], + [81.1463, 28.3722], + [81.3071, 28.1238], + [81.6889, 27.9632], + [81.8557, 27.8509], + [82.0516, 27.9052], + [82.4019, 27.6772], + [82.6521, 27.7041], + [82.7521, 27.495], + [83.1328, 27.4442], + [83.3049, 27.3319], + [83.361, 27.4622], + [83.8341, 27.434], + [84.0796, 27.5095], + [84.2894, 27.3761], + [84.577, 27.329], + [84.6577, 27.2034], + [84.6402, 27.0284], + [84.8019, 27.0138], + [85.044, 26.8437], + [85.162, 26.851], + [85.2873, 26.737], + [85.5986, 26.8544], + [85.7129, 26.6532], + [85.8216, 26.5717], + [86.0114, 26.6544], + [86.2844, 26.612], + [86.7136, 26.4146], + [87.0413, 26.5802], + [87.0833, 26.4321], + [87.3262, 26.3533], + [87.3842, 26.4186], + [87.587, 26.378], + [87.8707, 26.4607], + [88.0742, 26.4539], + [88.1691, 26.744], + [88.0769, 26.9918], + [87.9707, 27.1027], + [88.0351, 27.3226], + [88.0233, 27.4949], + [88.1597, 27.7741], + [88.1182, 27.8609], + [88.1267, 27.9504], + [88.3788, 27.9826], + [88.6105, 28.1058], + [88.8177, 27.9947], + [88.8539, 27.8437], + [88.741, 27.5457], + [88.7736, 27.4085], + [88.8923, 27.3155], + [88.7301, 27.151], + [88.9545, 26.9126], + [89.1846, 26.8106], + [89.3417, 26.8543], + [89.8221, 26.701], + [90.0892, 26.7417], + [90.1774, 26.8321], + [90.3826, 26.8918], + [90.5878, 26.7801], + [91.1982, 26.8023], + [91.4063, 26.8695], + [91.5206, 26.7976], + [91.7953, 26.8535], + [92.0359, 26.8548], + [92.0839, 26.9373], + [91.9959, 27.158], + [92.0848, 27.3042], + [91.9751, 27.4724], + [91.7501, 27.4162], + [91.5951, 27.5464], + [91.6329, 27.7594], + [91.9751, 27.7266], + [92.0697, 27.794], + [92.3039, 27.7862], + [92.6285, 27.9158], + [92.6548, 28.1058], + [92.8503, 28.1919], + [93.0932, 28.3666], + [93.1554, 28.4949], + [93.4462, 28.6719], + [93.6255, 28.6724], + [94.0268, 28.8642], + [94.2502, 28.9331], + [94.2708, 29.0979], + [94.6304, 29.3195], + [94.7766, 29.1667], + [95.1915, 29.0968], + [95.5113, 29.1318], + [95.7448, 29.3404], + [96.142, 29.3685], + [96.4576, 28.9946], + [96.598, 28.7099], + [96.9658, 28.3305], + [97.1155, 28.3666], + [97.3235, 28.2175], + [97.3335, 27.8942], + [97.2229, 27.8997], + [96.8702, 27.6191], + [96.9051, 27.4084], + [97.1348, 27.1273], + [97.0268, 27.0915], + [96.8653, 27.1716], + [96.7589, 27.3417], + [96.1426, 27.2575], + [96.0132, 27.1908], + [95.8889, 27.027], + [95.778, 26.9951], + [95.3927, 26.6918], + [95.1191, 26.6042], + [95.0406, 26.4756], + [95.0463, 26.248], + [95.1395, 26.0299], + [95.0006, 25.922], + [95.0088, 25.7371], + [94.8508, 25.5628], + [94.608, 25.3946], + [94.5501, 25.2453], + [94.6891, 25.1385], + [94.7086, 25.0259], + [94.5895, 24.7473], + [94.5163, 24.705], + [94.29, 24.3168], + [94.1903, 23.9953], + [94.0997, 23.8426], + [93.9979, 23.917], + [93.6124, 24.0091], + [93.4567, 23.96], + [93.303, 24.0411], + [93.4324, 23.6473], + [93.3749, 23.1297], + [93.0795, 22.7727], + [93.0992, 22.512], + [93.169, 22.2469], + [92.9672, 22.0627], + [92.8539, 22.0241], + [92.7081, 22.148], + [92.5759, 21.9776], + [92.577, 22.1687], + [92.4959, 22.6956], + [92.3787, 22.9004], + [92.3276, 23.1714], + [92.3569, 23.2891], + [92.2528, 23.6093], + [92.1508, 23.7317], + [92.0035, 23.6474], + [91.9408, 23.4952], + [91.7437, 23.2723], + [91.7956, 23.0895], + [91.6947, 22.9881], + [91.5366, 22.9819], + [91.4636, 23.1841], + [91.3005, 23.1423], + [91.2273, 23.4688], + [91.1408, 23.6121], + [91.2163, 23.9084], + [91.363, 24.0998], + [91.5965, 24.105], + [91.9059, 24.2606], + [91.95, 24.3754], + [92.1076, 24.406], + [92.2338, 24.7775], + [92.3807, 24.8367], + [92.4581, 24.9533], + [92.3035, 25.0743], + [92.0018, 25.183], + [91.471, 25.1339], + [91.2357, 25.2019], + [90.822, 25.1423], + [90.738, 25.1694], + [90.3646, 25.15], + [89.9081, 25.2969], + [89.795, 25.3742], + [89.8344, 25.6348], + [89.7831, 25.8144], + [89.8301, 25.908], + [89.6584, 26.2079], + [89.6029, 26.0553], + [89.3515, 25.9969], + [89.1316, 26.1338], + [89.0437, 26.3811], + [88.808, 26.2334], + [88.6563, 26.4151], + [88.4955, 26.3781], + [88.3087, 26.2061], + [88.1638, 26.1405], + [88.0744, 25.9081], + [88.4194, 25.6538], + [88.5303, 25.5002], + [88.7723, 25.502], + [88.8986, 25.1693], + [88.4315, 25.173], + [88.3228, 24.8747], + [88.2025, 24.9453], + [88.0218, 24.6456], + [88.1388, 24.4953], + [88.4754, 24.3155], + [88.7375, 24.2871], + [88.6741, 24.0826], + [88.7142, 23.9252], + [88.5936, 23.8669], + [88.5401, 23.65], + [88.7194, 23.4681], + [88.6859, 23.2933], + [88.9547, 23.1838], + [88.8428, 22.9646], + [88.9445, 22.848], + [88.9081, 22.7408], + [89.0604, 22.1299], + [88.993, 21.9127], + [89.0827, 21.6173], + [88.8816, 21.672], + [88.7625, 21.5559], + [88.3931, 21.6002], + [88.2493, 21.5583], + [88.2038, 21.8054], + [88.0508, 21.985], + [87.9705, 21.8365], + [87.7038, 21.6555], + [87.2009, 21.552], + [86.9177, 21.3274], + [86.844, 21.0822], + [87.0036, 20.657], + [86.7339, 20.4622], + [86.7017, 20.2847], + [86.4951, 20.1841], + [86.3724, 19.965], + [86.2686, 19.9103], + [85.7444, 19.7657], + [85.5492, 19.6906], + [85.5703, 19.8756], + [85.4636, 19.9029], + [85.221, 19.736], + [85.1045, 19.5149], + [85.1804, 19.475], + [84.8721, 19.2199], + [84.4237, 18.6365], + [84.2817, 18.5256], + [84.0774, 18.2716], + [83.6139, 18.0452], + [83.4312, 17.8542], + [83.2389, 17.593], + [82.4749, 17.206], + [82.2993, 17.0303], + [82.2679, 16.8675], + [82.3656, 16.8116], + [82.3074, 16.5798], + [81.9927, 16.4084], + [81.763, 16.3226], + [81.3174, 16.3675], + [81.2485, 16.3201], + [81.1554, 15.9855], + [80.9989, 15.8467], + [80.6904, 15.9007], + [80.4691, 15.8347], + [80.2632, 15.6745], + [80.0906, 15.3049], + [80.0545, 15.0141], + [80.1107, 14.7048], + [80.197, 14.565], + [80.1211, 14.242], + [80.1639, 13.988], + [80.2372, 13.8397], + [80.1194, 13.5007], + [80.327, 13.4304], + [80.3328, 13.1981], + [80.2858, 13.0676], + [80.2287, 12.675], + [80.156, 12.4745], + [79.8618, 12.022], + [79.752, 11.577], + [79.8553, 11.1599], + [79.8407, 10.9501], + [79.8638, 10.3787], + [79.7598, 10.2582], + [79.3981, 10.3247], + [79.2363, 10.1666], + [79.2791, 10.0358], + [78.9808, 9.6672], + [78.9133, 9.4743], + [78.9568, 9.2748], + [78.6188, 9.1405], + [78.4499, 9.1166], + [78.2398, 8.9656], + [78.1779, 8.8611], + [78.1283, 8.488], + [78.0628, 8.3732], + [77.5109, 8.076], + [77.3156, 8.1278], + [76.9959, 8.3681], + [76.544, 8.9125], + [76.3118, 9.493], + [76.3592, 9.9154], + [76.1775, 10.1706], + [76.0524, 10.514], + [75.922, 10.7656], + [75.8328, 11.0978], + [75.6952, 11.42], + [75.6165, 11.4736], + [75.5308, 11.6937], + [75.2904, 11.9811], + [75.1937, 12.0223], + [75.1309, 12.2078], + [74.9553, 12.5373], + [74.8176, 12.8618], + [74.6146, 13.8355], + [74.5047, 14.0102], + [74.3942, 14.4108], + [74.2632, 14.7016], + [74.1113, 14.7803], + [73.9473, 15.1608], + [73.8859, 15.4352], + [73.7663, 15.4973], + [73.5876, 15.9029], + [73.447, 16.0689], + [73.3192, 16.5098], + [73.3216, 16.6925], + [73.2347, 17.3023], + [73.1317, 17.5394], + [73.1232, 17.7233], + [72.981, 18.0806], + [72.9774, 18.2951], + [72.8897, 18.4413], + [72.9212, 18.5549], + [72.8524, 18.7699], + [72.9269, 18.8266], + [72.8242, 19.0535], + [72.718, 19.6067], + [72.6501, 19.842], + [72.7482, 20.2803], + [72.8792, 20.5124], + [72.945, 20.77], + [72.7839, 21.0404], + [72.7996, 21.1288], + [72.6061, 21.2666], + [72.6196, 21.4874], + [72.7981, 21.6735], + [72.5321, 21.7139], + [72.5071, 21.9623], + [72.5531, 22.2825], + [72.3172, 22.1849], + [72.2577, 22.0122], + [72.1281, 21.9835], + [72.166, 21.7939], + [72.2957, 21.6539], + [72.2422, 21.4808], + [72.1045, 21.315], + [72.1047, 21.2051], + [71.7176, 21.032], + [71.4623, 20.8853], + [70.9824, 20.7102], + [70.8402, 20.7019], + [70.5415, 20.8078], + [70.3367, 20.9271], + [70.0576, 21.1492], + [69.8147, 21.4337], + [69.4785, 21.7526], + [69.1984, 21.9797], + [68.9942, 22.2039], + [68.9744, 22.4047], + [69.2057, 22.3987], + [69.3599, 22.3292], + [69.6161, 22.3559], + [69.9621, 22.5353], + [70.1785, 22.562], + [70.3988, 22.9455], + [70.2693, 22.9586], + [69.8332, 22.8585], + [69.7158, 22.7469], + [69.2388, 22.8419], + [68.8662, 23.02], + [68.5523, 23.2597], + [68.561, 23.3639], + [68.4237, 23.4458], + [68.1637, 23.7577], + [68.183, 23.8421], + [68.4316, 23.9671], + [68.7245, 23.9652], + [68.7259, 24.2892], + [68.8903, 24.3195], + [68.9808, 24.2554], + [69.5631, 24.2768], + [69.6706, 24.1887], + [69.972, 24.1652], + [70.1097, 24.3049], + [70.5629, 24.4241], + [70.5602, 24.2873], + [70.7555, 24.2314], + [70.9177, 24.3617], + [70.9548, 24.5845], + [71.0639, 24.6826], + [70.8933, 25.0019], + [70.8599, 25.1394], + [70.6466, 25.4314], + [70.6575, 25.6336], + [70.2646, 25.6973], + [70.0646, 25.9803], + [70.132, 26.1805], + [70.1581, 26.5301], + [70.0561, 26.5891], + [69.8156, 26.5803], + [69.5042, 26.7352], + [69.4651, 26.8078], + [69.5756, 27.1884], + [69.848, 27.4104], + [70.0169, 27.6006], + [70.0907, 27.7936], + [70.3419, 28.0115], + [70.4562, 28.0398], + [70.6332, 27.9316], + [70.7104, 27.7412], + [70.8316, 27.7015], + [71.3114, 27.8617], + [71.5607, 27.8685], + [71.8609, 27.9502], + [71.8916, 28.0971], + [72.1499, 28.3538], + [72.2565, 28.6456], + [72.3822, 28.784], + [72.9015, 29.0226], + [73.2329, 29.5366], + [73.3703, 29.9273], + [73.7397, 30.0485], + [73.9444, 30.1883], + [73.8518, 30.3727], + [74.1637, 30.6649], + [74.3298, 30.8996], + [74.5193, 30.9625], + [74.601, 31.0566], + [74.5064, 31.1754], + [74.6119, 31.4402], + [74.4894, 31.7112], + [74.5656, 31.8405], + [74.8286, 32.0254], + [74.9557, 32.0322], + [75.2947, 32.1489], + [75.359, 32.2617], + [75.0237, 32.4663], + [74.725, 32.4608], + [74.6296, 32.5881], + [74.6497, 32.7231], + [74.419, 32.7846], + [74.322, 32.972], + [74.1539, 33.0402], + [74.0023, 33.1777], + [74.1055, 33.3452], + [74.1416, 33.5494], + [73.9767, 33.6484], + [74.0346, 33.8286], + [74.2395, 33.901], + [74.2284, 34.0129], + [73.9458, 34.0098], + [73.9983, 34.1968], + [73.7749, 34.371], + [73.9622, 34.6682], + [74.2858, 34.7689], + [75.0178, 34.6297], + [75.2129, 34.645], + [75.3481, 34.5572], + [75.7771, 34.5038], + [76.0234, 34.6772], + [76.5532, 34.7258], + [76.9211, 34.9207], + [77.049, 35.1104], + [77.8003, 35.4954], + [78.0556, 35.4529], + [78.0012, 35.2689], + [78.13, 35.0554], + [78.2732, 34.6589], + [78.3794, 34.5787], + [78.6073, 34.5465], + [78.9854, 34.2864], + [78.9032, 34.1581], + [78.7301, 34.0793], + [78.7941, 33.7439], + [78.7814, 33.5528], + [78.9733, 33.3096], + [79.3819, 33.1273], + [79.3342, 32.9568], + [79.5, 32.7468], + [79.4764, 32.6454], + [79.276, 32.4902], + [79.1129, 32.4724], + [78.9434, 32.3464], + [78.6302, 32.578], + [78.4475, 32.5663], + [78.458, 32.2297], + [78.7446, 31.9642], + [78.6709, 31.7705], + [78.8189, 31.6074], + [78.6995, 31.51], + [78.7385, 31.335], + [78.9762, 31.32], + [79.0633, 31.4336], + [79.1984, 31.3249], + [79.2957, 31.1241], + [79.5296, 30.9536], + [79.8335, 30.9615], + [80.0625, 30.7848], + [80.2528, 30.565], + [80.7231, 30.392], + [80.996, 30.197] + ] + ] + ] + }, + "properties": { + "NAME": "India", + "NAME_LONG": "India", + "ADM0_A3": "IND", + "ISO_A2": "IN", + "ISO_A3": "IND", + "WB_A2": "IN", + "WB_A3": "IND" + }, + "id": 104 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-7.2471, 55.0693], + [-7.4053, 55.0036], + [-7.5517, 54.7547], + [-7.9066, 54.6613], + [-8.156, 54.4391], + [-7.837, 54.2043], + [-7.3103, 54.1147], + [-7.0493, 54.4115], + [-6.8239, 54.2323], + [-6.6403, 54.168], + [-6.6165, 54.0373], + [-6.2699, 54.0979], + [-6.379, 53.9169], + [-6.2432, 53.8651], + [-6.2228, 53.6461], + [-6.0924, 53.5771], + [-6.097, 53.2855], + [-5.9966, 52.9649], + [-6.2153, 52.666], + [-6.2091, 52.5458], + [-6.4481, 52.3559], + [-6.3699, 52.18], + [-6.7863, 52.21], + [-6.8971, 52.152], + [-7.4355, 52.1257], + [-7.5899, 51.9912], + [-8.3017, 51.7582], + [-8.5392, 51.6484], + [-9.1077, 51.5494], + [-9.425, 51.5576], + [-9.8066, 51.4457], + [-9.7703, 51.5922], + [-10.2346, 51.851], + [-10.2758, 52.2681], + [-9.8372, 52.2543], + [-9.8484, 52.4284], + [-9.577, 52.5704], + [-9.4376, 52.9667], + [-9.2722, 53.1467], + [-8.9635, 53.1518], + [-9.0221, 53.2755], + [-9.5117, 53.2283], + [-10.0257, 53.3854], + [-10.1527, 53.5436], + [-9.9307, 53.5998], + [-9.9084, 53.7621], + [-9.5664, 53.7963], + [-9.8385, 53.9636], + [-9.9882, 54.2131], + [-9.7855, 54.3381], + [-9.2095, 54.2676], + [-8.486, 54.2886], + [-8.6129, 54.3755], + [-8.2873, 54.4794], + [-8.1208, 54.6466], + [-8.5969, 54.6193], + [-8.7955, 54.6984], + [-8.4907, 54.852], + [-8.4566, 54.9954], + [-8.263, 55.1611], + [-7.8142, 55.2018], + [-7.5278, 55.1326], + [-7.5136, 55.2744], + [-7.3325, 55.3728], + [-6.9396, 55.2391], + [-7.2471, 55.0693] + ] + ] + }, + "properties": { + "NAME": "Ireland", + "NAME_LONG": "Ireland", + "ADM0_A3": "IRL", + "ISO_A2": "IE", + "ISO_A3": "IRL", + "WB_A2": "IE", + "WB_A3": "IRL" + }, + "id": 107 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [56.1714, 26.9068], + [55.947, 26.6963], + [55.8766, 26.7429], + [55.5029, 26.5949], + [55.3519, 26.6474], + [55.7368, 26.7824], + [56.041, 26.9757], + [56.1714, 26.9068] + ] + ], + [ + [ + [46.1359, 38.8637], + [46.3919, 38.9224], + [46.514, 38.8822], + [46.8662, 39.1654], + [47.0205, 39.19], + [47.1022, 39.3084], + [47.2914, 39.3796], + [47.8469, 39.6853], + [48.052, 39.6501], + [48.3389, 39.3789], + [48.1246, 39.2976], + [48.1422, 39.1812], + [48.3068, 39.0454], + [48.0585, 38.9484], + [48.013, 38.8216], + [48.2104, 38.7298], + [48.6079, 38.396], + [48.8743, 38.4341], + [48.9077, 38.0835], + [49.0145, 37.7392], + [49.1325, 37.6234], + [49.4417, 37.4949], + [49.9353, 37.4536], + [50.1488, 37.4039], + [50.3223, 37.1533], + [50.4789, 37.035], + [51.0886, 36.737], + [51.909, 36.5827], + [52.7793, 36.7404], + [53.4924, 36.8879], + [53.701, 36.8166], + [54.0143, 36.8211], + [54.0335, 36.9491], + [53.9137, 37.3428], + [54.1866, 37.3237], + [54.6169, 37.433], + [54.7837, 37.5175], + [54.8566, 37.7611], + [55.1303, 37.9523], + [55.4231, 38.0759], + [55.7087, 38.1187], + [55.9784, 38.0659], + [56.2997, 38.0802], + [56.4365, 38.2551], + [56.739, 38.2696], + [57.0384, 38.1873], + [57.2183, 38.2651], + [57.3524, 37.9675], + [57.6912, 37.9203], + [58.1812, 37.7749], + [58.3718, 37.6304], + [58.5143, 37.6915], + [58.861, 37.6681], + [59.3517, 37.4938], + [59.3704, 37.3194], + [59.5095, 37.1898], + [60.0192, 37.0258], + [60.3423, 36.6371], + [61.0755, 36.6478], + [61.186, 36.5777], + [61.1525, 36.4063], + [61.2228, 36.1175], + [61.174, 36.0065], + [61.2474, 35.8762], + [61.2697, 35.6185], + [61.29, 35.5481], + [61.1083, 35.278], + [61.1159, 35.0599], + [61.0655, 34.8147], + [60.9475, 34.638], + [60.7144, 34.5374], + [60.8905, 34.3189], + [60.6437, 34.3066], + [60.4868, 34.0943], + [60.528, 33.8414], + [60.5118, 33.6384], + [60.6556, 33.5599], + [60.8796, 33.5487], + [60.8186, 33.4049], + [60.5676, 33.1513], + [60.5775, 32.9943], + [60.8303, 32.2489], + [60.7749, 32.0272], + [60.7926, 31.6601], + [60.855, 31.4827], + [61.6612, 31.3819], + [61.7492, 31.3024], + [61.8263, 31.0346], + [61.7852, 30.8314], + [60.8444, 29.8582], + [61.2792, 29.4066], + [61.4878, 29.0807], + [61.653, 28.7563], + [61.8928, 28.5426], + [62.3628, 28.4189], + [62.5756, 28.229], + [62.7664, 28.2115], + [62.7357, 27.995], + [62.8147, 27.495], + [62.756, 27.3481], + [62.8006, 27.2252], + [63.167, 27.2587], + [63.2515, 27.219], + [63.2649, 26.89], + [63.1823, 26.8302], + [63.1413, 26.6254], + [62.7536, 26.6442], + [62.292, 26.5012], + [62.2434, 26.3506], + [61.8571, 26.2424], + [61.8099, 26.1674], + [61.7601, 25.8376], + [61.6603, 25.7692], + [61.62, 25.2855], + [61.5882, 25.2021], + [61.4117, 25.0594], + [61.0306, 25.2098], + [60.6335, 25.275], + [60.5497, 25.4469], + [60.3626, 25.3306], + [60.082, 25.3659], + [59.9038, 25.3299], + [59.7749, 25.3899], + [59.538, 25.3997], + [59.4539, 25.4616], + [59.1172, 25.3942], + [58.9943, 25.4196], + [58.8137, 25.5636], + [58.5464, 25.5937], + [58.0731, 25.5636], + [57.9632, 25.6932], + [57.3262, 25.777], + [57.1646, 26.0949], + [57.0763, 26.4475], + [57.09, 26.6188], + [56.9733, 26.9688], + [56.8088, 27.1396], + [56.353, 27.2016], + [56.1237, 27.1606], + [55.9393, 27.0267], + [55.6848, 27.003], + [55.5545, 26.8105], + [55.2708, 26.7925], + [54.8015, 26.4982], + [54.62, 26.5082], + [54.3894, 26.6051], + [54.3081, 26.715], + [53.9951, 26.7456], + [53.7161, 26.7086], + [53.4915, 26.8543], + [53.4121, 26.9936], + [53.072, 27.0969], + [52.6013, 27.3529], + [52.5676, 27.5407], + [52.4231, 27.6466], + [52.2449, 27.6814], + [52.0112, 27.8327], + [51.5851, 27.8493], + [51.3803, 27.9914], + [51.2648, 28.1605], + [51.2648, 28.2705], + [51.1419, 28.4008], + [51.0588, 28.7359], + [50.813, 28.9147], + [50.9202, 29.069], + [50.8403, 29.1406], + [50.6438, 29.1435], + [50.6553, 29.4491], + [50.397, 29.6547], + [50.1449, 29.9381], + [50.0734, 30.1957], + [49.9146, 30.2039], + [49.6008, 30.0301], + [49.4798, 30.1561], + [49.2451, 30.1565], + [49.0037, 30.3094], + [49.1668, 30.5088], + [48.9815, 30.5156], + [48.8623, 30.3456], + [48.9348, 30.0797], + [48.6406, 30.0381], + [48.531, 29.9613], + [48.4531, 30.0014], + [48.397, 30.221], + [48.1577, 30.4263], + [48.0136, 30.4639], + [48.0154, 30.9762], + [47.6729, 30.9947], + [47.6789, 31.4079], + [47.8313, 31.7618], + [47.6681, 32.0124], + [47.3958, 32.337], + [47.3433, 32.4587], + [47.121, 32.461], + [46.7159, 32.756], + [46.2734, 32.9595], + [46.097, 32.9543], + [46.1553, 33.2602], + [46.0362, 33.3679], + [45.886, 33.6309], + [45.6588, 33.6817], + [45.4199, 33.9944], + [45.5344, 34.1282], + [45.5576, 34.312], + [45.448, 34.3621], + [45.5007, 34.5917], + [45.835, 34.8902], + [45.857, 35.0213], + [46.0092, 35.0609], + [46.1655, 35.1899], + [45.964, 35.4942], + [46.0604, 35.8572], + [45.8142, 35.8093], + [45.3483, 36.0875], + [45.2389, 36.403], + [45.1108, 36.4025], + [44.9914, 36.5337], + [44.9962, 36.7417], + [44.8312, 36.7919], + [44.8808, 37.0249], + [44.7661, 37.1419], + [44.8016, 37.2927], + [44.5659, 37.4472], + [44.5961, 37.7164], + [44.3779, 37.8541], + [44.2196, 37.8753], + [44.4247, 38.377], + [44.2895, 38.3823], + [44.275, 38.8436], + [44.1392, 38.994], + [44.1866, 39.1451], + [44.0777, 39.2001], + [44.0614, 39.4003], + [44.4048, 39.4344], + [44.4595, 39.6985], + [44.5657, 39.7659], + [44.807, 39.6399], + [44.957, 39.4345], + [45.1789, 39.2198], + [45.3482, 39.1639], + [45.4386, 39.0042], + [46.1359, 38.8637] + ] + ] + ] + }, + "properties": { + "NAME": "Iran", + "NAME_LONG": "Iran", + "ADM0_A3": "IRN", + "ISO_A2": "IR", + "ISO_A3": "IRN", + "WB_A2": "IR", + "WB_A3": "IRN" + }, + "id": 108 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [44.7661, 37.1419], + [44.8808, 37.0249], + [44.8312, 36.7919], + [44.9962, 36.7417], + [44.9914, 36.5337], + [45.1108, 36.4025], + [45.2389, 36.403], + [45.3483, 36.0875], + [45.8142, 35.8093], + [46.0604, 35.8572], + [45.964, 35.4942], + [46.1655, 35.1899], + [46.0092, 35.0609], + [45.857, 35.0213], + [45.835, 34.8902], + [45.5007, 34.5917], + [45.448, 34.3621], + [45.5576, 34.312], + [45.5344, 34.1282], + [45.4199, 33.9944], + [45.6588, 33.6817], + [45.886, 33.6309], + [46.0362, 33.3679], + [46.1553, 33.2602], + [46.097, 32.9543], + [46.2734, 32.9595], + [46.7159, 32.756], + [47.121, 32.461], + [47.3433, 32.4587], + [47.3958, 32.337], + [47.6681, 32.0124], + [47.8313, 31.7618], + [47.6789, 31.4079], + [47.6729, 30.9947], + [48.0154, 30.9762], + [48.0136, 30.4639], + [48.1577, 30.4263], + [48.397, 30.221], + [48.4531, 30.0014], + [48.531, 29.9613], + [48.2092, 30.0245], + [47.948, 29.994], + [47.6742, 30.0982], + [47.3582, 30.0921], + [47.1105, 29.9609], + [46.8534, 29.4446], + [46.5324, 29.0957], + [46.3575, 29.0631], + [45.4349, 29.1362], + [44.6918, 29.2018], + [43.8901, 29.7674], + [42.8587, 30.4947], + [42.0754, 31.0799], + [40.4241, 31.9205], + [40.0293, 31.9944], + [39.1464, 32.1181], + [39.292, 32.2445], + [39.2358, 32.3529], + [39.0463, 32.3085], + [39.0572, 32.4966], + [38.7745, 33.3717], + [39.8804, 33.9256], + [40.6905, 34.3315], + [40.988, 34.4285], + [41.1957, 34.7685], + [41.1915, 35.1821], + [41.2613, 35.4943], + [41.3635, 35.6552], + [41.3437, 35.8577], + [41.2406, 36.043], + [41.277, 36.3548], + [41.4149, 36.5274], + [41.8438, 36.6179], + [42.2816, 36.994], + [42.3572, 37.11], + [42.5613, 37.1466], + [42.7716, 37.3749], + [42.937, 37.3202], + [43.0837, 37.3688], + [43.4796, 37.2434], + [43.8936, 37.2249], + [43.9904, 37.3125], + [44.2232, 37.2541], + [44.2343, 36.9837], + [44.5782, 37.1664], + [44.7661, 37.1419] + ] + ] + }, + "properties": { + "NAME": "Iraq", + "NAME_LONG": "Iraq", + "ADM0_A3": "IRQ", + "ISO_A2": "IQ", + "ISO_A3": "IRQ", + "WB_A2": "IQ", + "WB_A3": "IRQ" + }, + "id": 109 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-16.0229, 66.5366], + [-15.7751, 66.2895], + [-14.9591, 66.2965], + [-15.076, 66.0496], + [-14.6773, 66.0562], + [-14.6047, 65.9639], + [-14.823, 65.8159], + [-13.6096, 65.5142], + [-13.6877, 65.3064], + [-13.527, 65.0555], + [-14.0485, 64.7197], + [-14.4935, 64.6583], + [-14.5105, 64.4423], + [-14.9955, 64.2626], + [-15.3636, 64.3368], + [-15.464, 64.2513], + [-15.9921, 64.1445], + [-16.3505, 63.9656], + [-16.8958, 63.8078], + [-17.8603, 63.737], + [-17.965, 63.5225], + [-18.732, 63.3967], + [-19.2873, 63.4387], + [-19.7699, 63.5342], + [-20.1857, 63.5444], + [-20.4421, 63.6714], + [-21.1683, 63.8756], + [-21.6599, 63.8319], + [-22.3364, 63.8632], + [-22.6859, 63.9457], + [-21.9634, 64.0823], + [-21.9626, 64.2973], + [-22.391, 64.6378], + [-22.3197, 64.7539], + [-23.2462, 64.8305], + [-23.8336, 64.7259], + [-24.06, 64.8911], + [-22.6744, 65.0076], + [-22.5577, 65.1689], + [-22.2013, 65.3177], + [-22.1992, 65.4323], + [-22.9258, 65.5732], + [-23.8975, 65.4046], + [-24.1967, 65.5012], + [-24.0499, 65.8035], + [-23.8666, 65.8756], + [-23.7926, 66.0704], + [-23.4614, 66.2042], + [-23.0277, 66.1087], + [-23.0981, 66.3183], + [-22.8503, 66.467], + [-22.3767, 66.4326], + [-22.2141, 66.2897], + [-21.7499, 66.1858], + [-21.723, 66.0822], + [-21.3185, 65.9878], + [-21.4179, 65.7635], + [-21.3699, 65.4871], + [-21.1952, 65.4081], + [-20.9181, 65.6014], + [-20.2633, 65.7445], + [-20.4489, 66.0294], + [-20.0306, 66.0834], + [-19.6504, 65.765], + [-19.3627, 66.0884], + [-18.9447, 66.1907], + [-18.6923, 66.17], + [-18.54, 65.9742], + [-18.2281, 65.9394], + [-18.297, 66.1796], + [-17.9127, 66.1523], + [-17.673, 66.0071], + [-17.4193, 65.994], + [-17.2174, 66.1942], + [-16.9197, 66.1243], + [-16.487, 66.1895], + [-16.5433, 66.507], + [-16.0229, 66.5366] + ] + ] + }, + "properties": { + "NAME": "Iceland", + "NAME_LONG": "Iceland", + "ADM0_A3": "ISL", + "ISO_A2": "IS", + "ISO_A3": "ISL", + "WB_A2": "IS", + "WB_A3": "ISL" + }, + "id": 110 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [35.7576, 32.7443], + [35.5627, 32.6442], + [35.561, 32.3847], + [35.2086, 32.5426], + [35.0644, 32.4631], + [34.9461, 32.1773], + [34.9761, 31.9482], + [35.1814, 31.8041], + [34.9736, 31.6304], + [34.8672, 31.3964], + [34.9274, 31.3449], + [35.2233, 31.381], + [35.4581, 31.4919], + [35.3957, 31.2577], + [35.4385, 31.1037], + [35.14, 30.4302], + [35.1453, 30.1549], + [34.9556, 29.559], + [34.8867, 29.4901], + [34.8244, 29.7417], + [34.5995, 30.3445], + [34.5338, 30.4002], + [34.4804, 30.6512], + [34.2484, 31.2114], + [34.4812, 31.5831], + [34.7119, 31.9516], + [34.8377, 32.2807], + [34.9475, 32.8142], + [35.0796, 32.9058], + [35.1052, 33.089], + [35.4801, 33.0874], + [35.52, 33.2222], + [35.8211, 33.4067], + [35.8036, 33.2485], + [35.8881, 32.9449], + [35.7576, 32.7443] + ] + ] + }, + "properties": { + "NAME": "Israel", + "NAME_LONG": "Israel", + "ADM0_A3": "ISR", + "ISO_A2": "IL", + "ISO_A3": "ISR", + "WB_A2": "IL", + "WB_A3": "ISR" + }, + "id": 111 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [15.6424, 38.2623], + [15.2066, 37.7477], + [15.0967, 37.4945], + [15.1107, 37.3218], + [15.3294, 37.0277], + [15.1747, 36.9441], + [15.0736, 36.6591], + [14.7808, 36.6994], + [14.4873, 36.7934], + [14.2788, 37.044], + [14.0886, 37.1177], + [13.8944, 37.1008], + [13.4526, 37.2988], + [13.1741, 37.487], + [12.9426, 37.5685], + [12.6978, 37.5627], + [12.489, 37.6827], + [12.427, 37.797], + [12.5042, 38.0112], + [12.7254, 38.1259], + [12.9011, 38.0281], + [13.1009, 38.1901], + [13.3102, 38.2195], + [13.7908, 37.9736], + [14.0205, 38.0494], + [14.2732, 38.0151], + [14.6346, 38.0815], + [14.9071, 38.1877], + [15.0879, 38.1282], + [15.5129, 38.2976], + [15.6424, 38.2623] + ] + ], + [ + [ + [9.2383, 41.2488], + [9.5462, 41.1209], + [9.5733, 40.9064], + [9.8267, 40.5196], + [9.6261, 40.2631], + [9.7323, 40.0839], + [9.6449, 39.484], + [9.5578, 39.1397], + [9.2525, 39.2252], + [9.0789, 39.2123], + [9.0183, 38.9953], + [8.8415, 38.8806], + [8.6428, 38.89], + [8.3718, 39.2306], + [8.3869, 39.4698], + [8.5552, 39.8527], + [8.3983, 39.9053], + [8.49, 40.1045], + [8.4629, 40.3145], + [8.312, 40.5781], + [8.1338, 40.7289], + [8.3102, 40.8507], + [8.5205, 40.827], + [8.7644, 40.9138], + [9.0248, 41.1289], + [9.2383, 41.2488] + ] + ], + [ + [ + [13.701, 46.5197], + [13.3653, 46.2903], + [13.6228, 45.9664], + [13.5813, 45.8092], + [13.7787, 45.7434], + [13.7118, 45.5932], + [13.7262, 45.7038], + [13.1314, 45.7689], + [12.9439, 45.6286], + [12.4878, 45.4567], + [12.2727, 45.4636], + [12.1688, 45.2622], + [12.2961, 45.2266], + [12.3762, 45.039], + [12.527, 44.9433], + [12.4446, 44.8205], + [12.2536, 44.7513], + [12.2837, 44.4876], + [12.3688, 44.2507], + [12.7103, 43.9829], + [12.9473, 43.8976], + [13.2533, 43.7032], + [13.617, 43.5313], + [13.8348, 43.1273], + [13.9447, 42.7983], + [14.0754, 42.5988], + [14.7407, 42.0846], + [15.1234, 41.9343], + [15.4461, 41.9069], + [16.0271, 41.9441], + [16.1929, 41.7909], + [15.9253, 41.64], + [16.0217, 41.4278], + [16.5939, 41.207], + [17.0571, 41.0819], + [17.4761, 40.8301], + [18.007, 40.6507], + [18.0374, 40.557], + [18.2383, 40.4577], + [18.4373, 40.2679], + [18.5174, 40.1142], + [18.384, 39.8139], + [18.2113, 39.8393], + [18.0073, 39.9861], + [17.9972, 40.1204], + [17.8477, 40.29], + [17.5121, 40.3037], + [17.2129, 40.4062], + [17.0496, 40.5191], + [16.9121, 40.4452], + [16.6047, 40.0845], + [16.6316, 39.9662], + [16.4917, 39.8055], + [16.5156, 39.6896], + [16.7498, 39.62], + [17.1587, 39.4062], + [17.1222, 39.3383], + [17.1277, 38.9288], + [16.8386, 38.9182], + [16.6106, 38.8166], + [16.5388, 38.7233], + [16.5696, 38.4295], + [16.3399, 38.3008], + [16.1694, 38.1432], + [16.09, 37.9492], + [15.7615, 37.9252], + [15.6658, 37.9669], + [15.6506, 38.241], + [15.7865, 38.278], + [15.9048, 38.4739], + [15.8445, 38.6604], + [16.1209, 38.7209], + [16.2201, 38.8991], + [16.083, 39.0753], + [15.9954, 39.4388], + [15.8675, 39.5639], + [15.7819, 39.8686], + [15.6102, 40.0732], + [15.4101, 39.994], + [15.1272, 40.1696], + [14.9111, 40.2416], + [14.9983, 40.3976], + [14.7522, 40.6767], + [14.5442, 40.6136], + [14.2942, 40.8388], + [14.0523, 40.8376], + [13.8517, 41.1473], + [13.7219, 41.2524], + [13.5144, 41.2297], + [13.3244, 41.2948], + [13.0446, 41.2275], + [12.8936, 41.3993], + [12.6194, 41.4591], + [12.448, 41.6308], + [12.239, 41.7363], + [12.1475, 41.9035], + [11.8275, 42.0342], + [11.6582, 42.2794], + [11.1869, 42.5208], + [10.99, 42.7103], + [10.7313, 42.8044], + [10.6814, 42.949], + [10.4995, 42.9405], + [10.5466, 43.1471], + [10.437, 43.3886], + [10.3263, 43.4769], + [10.264, 43.8094], + [10.1058, 44.0168], + [9.7718, 44.0794], + [9.2306, 44.3537], + [8.7624, 44.4321], + [8.4661, 44.3043], + [8.2332, 44.1036], + [8.1447, 43.9526], + [7.9597, 43.8529], + [7.5023, 43.7922], + [7.4779, 43.8655], + [7.6919, 44.0846], + [7.6247, 44.1801], + [7.3808, 44.1229], + [7.0335, 44.2429], + [6.8661, 44.3721], + [6.8388, 44.5029], + [7.019, 44.7389], + [6.9828, 44.847], + [6.7279, 44.9287], + [6.6027, 45.1034], + [6.8441, 45.1301], + [7.0622, 45.2185], + [7.1607, 45.4109], + [6.9828, 45.5111], + [6.9634, 45.6407], + [6.7959, 45.7181], + [6.8008, 45.8265], + [7.0221, 45.9253], + [7.1837, 45.8805], + [7.5411, 45.9841], + [7.8312, 45.9145], + [8.1106, 46.127], + [8.0773, 46.262], + [8.4416, 46.4349], + [8.4272, 46.2514], + [8.6018, 46.1228], + [9.0021, 46.0393], + [9.2248, 46.2312], + [9.2632, 46.4851], + [9.6743, 46.2918], + [10.1334, 46.414], + [10.2954, 46.5511], + [10.4538, 46.8644], + [10.9969, 46.7691], + [11.0919, 46.9124], + [11.3138, 46.9873], + [11.7464, 46.9725], + [11.9436, 47.0382], + [12.1112, 46.993], + [12.405, 46.6901], + [13.2311, 46.5522], + [13.701, 46.5197] + ] + ] + ] + }, + "properties": { + "NAME": "Italy", + "NAME_LONG": "Italy", + "ADM0_A3": "ITA", + "ISO_A2": "IT", + "ISO_A3": "ITA", + "WB_A2": "IT", + "WB_A3": "ITA" + }, + "id": 112 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-76.2637, 18.0124], + [-76.3074, 17.8701], + [-76.5235, 17.8603], + [-76.85, 17.9923], + [-76.9553, 17.8334], + [-77.1417, 17.8811], + [-77.2161, 17.7167], + [-77.441, 17.8647], + [-77.7239, 17.8536], + [-77.9563, 18.0322], + [-78.0752, 18.1984], + [-78.3407, 18.2219], + [-78.3319, 18.3674], + [-78.195, 18.4555], + [-77.9814, 18.4414], + [-77.9023, 18.5188], + [-77.2726, 18.4594], + [-77.1374, 18.4089], + [-76.8949, 18.4093], + [-76.7646, 18.273], + [-76.3511, 18.156], + [-76.2637, 18.0124] + ] + ] + }, + "properties": { + "NAME": "Jamaica", + "NAME_LONG": "Jamaica", + "ADM0_A3": "JAM", + "ISO_A2": "JM", + "ISO_A3": "JAM", + "WB_A2": "JM", + "WB_A3": "JAM" + }, + "id": 113 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [39.1464, 32.1181], + [38.9633, 31.9944], + [36.9595, 31.491], + [37.48, 31.0073], + [37.9811, 30.4995], + [37.6345, 30.3128], + [37.4702, 29.9946], + [36.7562, 29.8655], + [36.4771, 29.4946], + [36.0164, 29.19], + [34.9494, 29.3517], + [34.9556, 29.559], + [35.1453, 30.1549], + [35.14, 30.4302], + [35.4385, 31.1037], + [35.3957, 31.2577], + [35.4581, 31.4919], + [35.5594, 31.7653], + [35.5228, 32.0578], + [35.561, 32.3847], + [35.5627, 32.6442], + [35.7576, 32.7443], + [35.8957, 32.7133], + [36.0699, 32.5166], + [36.1774, 32.5273], + [36.3731, 32.3864], + [36.8194, 32.3168], + [38.0567, 32.9943], + [38.7745, 33.3717], + [39.0572, 32.4966], + [39.0463, 32.3085], + [39.2358, 32.3529], + [39.292, 32.2445], + [39.1464, 32.1181] + ] + ] + }, + "properties": { + "NAME": "Jordan", + "NAME_LONG": "Jordan", + "ADM0_A3": "JOR", + "ISO_A2": "JO", + "ISO_A3": "JOR", + "WB_A2": "JO", + "WB_A3": "JOR" + }, + "id": 115 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [128.3097, 26.7047], + [127.9403, 26.4477], + [127.7775, 26.2333], + [127.7313, 26.4399], + [127.9375, 26.5321], + [128.2259, 26.801], + [128.3097, 26.7047] + ] + ], + [ + [ + [129.721, 28.4349], + [129.4202, 28.2499], + [129.2277, 28.3046], + [129.6262, 28.4827], + [129.721, 28.4349] + ] + ], + [ + [ + [130.499, 30.468], + [130.6746, 30.3746], + [130.5773, 30.2359], + [130.3863, 30.3396], + [130.499, 30.468] + ] + ], + [ + [ + [130.1895, 32.5218], + [130.2034, 32.3389], + [130.012, 32.1906], + [129.9753, 32.3554], + [130.033, 32.5219], + [130.1895, 32.5218] + ] + ], + [ + [ + [128.8423, 32.7595], + [128.8993, 32.6425], + [128.6629, 32.6015], + [128.6418, 32.7614], + [128.8423, 32.7595] + ] + ], + [ + [ + [130.9929, 33.8977], + [131.0813, 33.635], + [131.4177, 33.5817], + [131.521, 33.6764], + [131.7295, 33.5802], + [131.7109, 33.2702], + [131.8722, 33.2003], + [131.9292, 32.7783], + [131.6821, 32.5351], + [131.4473, 31.8769], + [131.4753, 31.7622], + [131.3455, 31.395], + [131.0718, 31.4496], + [131.104, 31.3288], + [130.924, 31.113], + [130.7254, 31.047], + [130.7953, 31.3444], + [130.613, 31.6824], + [130.5291, 31.5133], + [130.6398, 31.1865], + [130.4511, 31.2494], + [130.2222, 31.2463], + [130.3362, 31.6262], + [130.1714, 31.7901], + [130.2204, 31.9296], + [130.1799, 32.0935], + [130.3319, 32.1286], + [130.562, 32.4271], + [130.6413, 32.6075], + [130.593, 32.8159], + [130.4331, 32.9417], + [130.4222, 33.0826], + [130.2193, 33.1595], + [130.1319, 33.102], + [130.2436, 32.8753], + [130.3394, 32.8566], + [130.3417, 32.6673], + [130.0938, 32.7949], + [129.8949, 32.6627], + [129.6981, 32.8395], + [129.6324, 32.9791], + [129.7285, 33.1223], + [129.5521, 33.2258], + [129.5804, 33.371], + [129.8075, 33.3481], + [129.8546, 33.5329], + [130.0553, 33.4952], + [130.3909, 33.6049], + [130.4544, 33.8077], + [130.6844, 33.9342], + [130.9929, 33.8977] + ] + ], + [ + [ + [134.1616, 34.3625], + [134.4398, 34.2083], + [134.6283, 34.1779], + [134.5998, 34.0095], + [134.7323, 33.826], + [134.3886, 33.6236], + [134.2732, 33.508], + [134.1903, 33.2483], + [133.9252, 33.4937], + [133.7394, 33.5375], + [133.4659, 33.4543], + [133.2694, 33.3469], + [133.2533, 33.2191], + [133.0183, 33.024], + [132.915, 32.778], + [132.6234, 32.7995], + [132.4723, 32.9337], + [132.4518, 33.0529], + [132.5368, 33.2426], + [132.4201, 33.3044], + [132.3811, 33.4661], + [132.5006, 33.625], + [132.6766, 33.7156], + [132.7699, 33.9963], + [132.9191, 34.0684], + [133.127, 33.9333], + [133.3226, 33.9906], + [133.511, 33.9652], + [133.6209, 34.0456], + [133.6726, 34.2231], + [133.9465, 34.3762], + [134.1616, 34.3625] + ] + ], + [ + [ + [134.9163, 34.3383], + [134.7287, 34.1909], + [134.6572, 34.2882], + [134.799, 34.4468], + [134.9163, 34.3383] + ] + ], + [ + [ + [141.2761, 41.3532], + [141.4575, 41.3775], + [141.3908, 41.161], + [141.4374, 40.6701], + [141.7438, 40.3839], + [141.9496, 39.9966], + [142.0693, 39.5405], + [141.9053, 39.3305], + [141.9089, 39.1098], + [141.6384, 38.9854], + [141.5726, 38.7187], + [141.4671, 38.5695], + [141.4714, 38.4357], + [141.0978, 38.3715], + [140.9668, 38.1705], + [140.9334, 37.8892], + [141.0222, 37.727], + [141.0418, 37.3771], + [140.9603, 36.9662], + [140.8044, 36.886], + [140.6235, 36.5061], + [140.5641, 36.2831], + [140.646, 36.0133], + [140.8416, 35.7424], + [140.4835, 35.566], + [140.3859, 35.381], + [140.3942, 35.1966], + [139.8677, 35.0133], + [139.8242, 35.3284], + [140.0059, 35.4734], + [140.0796, 35.6036], + [139.8068, 35.6382], + [139.7786, 35.5019], + [139.5266, 35.302], + [139.4149, 35.3188], + [139.146, 35.2352], + [139.0865, 34.9973], + [139.1409, 34.8706], + [138.8353, 34.5959], + [138.744, 34.7289], + [138.8033, 35.1219], + [138.5541, 35.0961], + [138.5143, 34.9802], + [138.3671, 34.9173], + [138.216, 34.7123], + [137.7922, 34.6394], + [137.4276, 34.6677], + [137.2979, 34.7972], + [136.9156, 34.776], + [136.8235, 34.9549], + [136.6592, 34.984], + [136.5195, 34.6809], + [136.916, 34.434], + [136.8464, 34.3076], + [136.523, 34.2731], + [136.299, 34.1543], + [136.2732, 33.9714], + [136.1047, 33.8914], + [135.9599, 33.5931], + [135.7656, 33.4815], + [135.4448, 33.5508], + [135.3916, 33.7136], + [135.0655, 33.8856], + [135.0945, 34.0676], + [135.187, 34.1359], + [135.105, 34.3181], + [135.3197, 34.4288], + [135.4144, 34.5581], + [135.3413, 34.7085], + [135.0458, 34.625], + [134.7444, 34.7665], + [134.3267, 34.7043], + [133.9832, 34.5286], + [133.9363, 34.4512], + [133.7, 34.5259], + [133.1658, 34.2923], + [132.8362, 34.3111], + [132.6563, 34.1993], + [132.4968, 34.3625], + [132.3835, 34.3657], + [132.2225, 34.239], + [132.2132, 33.9897], + [132.0578, 33.8952], + [131.7415, 34.0562], + [131.4829, 34.032], + [131.2722, 33.9268], + [130.8616, 34.1127], + [130.8716, 34.2792], + [131.0747, 34.4248], + [131.2362, 34.3823], + [131.4143, 34.424], + [131.5969, 34.6596], + [131.8584, 34.7145], + [132.0633, 34.9075], + [132.3168, 35.0623], + [132.4081, 35.1751], + [132.6387, 35.2946], + [132.6354, 35.441], + [132.9697, 35.517], + [133.1054, 35.5975], + [133.4174, 35.4565], + [133.5802, 35.5336], + [133.7311, 35.5029], + [134.2378, 35.5467], + [134.537, 35.6722], + [134.927, 35.6412], + [135.2268, 35.7723], + [135.4524, 35.5718], + [135.6451, 35.4802], + [135.7061, 35.5621], + [135.9817, 35.6436], + [136.0995, 35.7757], + [135.9573, 35.9731], + [136.1348, 36.2246], + [136.4302, 36.4325], + [136.64, 36.6626], + [136.7606, 36.8706], + [136.6703, 37.15], + [136.7491, 37.3579], + [137.2957, 37.5315], + [137.2302, 37.2921], + [137.1087, 37.2834], + [137.0055, 36.8359], + [137.3333, 36.7627], + [137.4271, 36.922], + [137.8967, 37.0575], + [138.0975, 37.1711], + [138.2449, 37.1838], + [138.5506, 37.3779], + [138.7656, 37.6347], + [138.8577, 37.8278], + [139.3045, 38.0419], + [139.4324, 38.1691], + [139.4622, 38.375], + [139.5992, 38.6483], + [139.7738, 38.8171], + [139.9318, 39.2871], + [140.0486, 39.5047], + [140.0276, 39.8245], + [139.8221, 39.9611], + [139.978, 40.1255], + [140.0243, 40.355], + [139.8604, 40.6088], + [140.046, 40.7678], + [140.2708, 40.8124], + [140.3328, 41.2372], + [140.6427, 41.1714], + [140.673, 40.8956], + [140.7992, 40.8391], + [140.9751, 40.9378], + [141.1852, 40.9112], + [141.2705, 41.1852], + [140.7982, 41.1286], + [140.7656, 41.196], + [140.9071, 41.5008], + [141.1078, 41.4639], + [141.2761, 41.3532] + ] + ], + [ + [ + [142.0178, 45.4557], + [142.5393, 45.0185], + [142.6307, 44.8837], + [142.9815, 44.5865], + [143.7832, 44.1007], + [144.2151, 44.1115], + [144.4304, 43.9426], + [144.8312, 43.9422], + [145.2017, 44.2058], + [145.3499, 44.2116], + [145.1223, 43.9171], + [145.0747, 43.7537], + [145.1948, 43.6207], + [145.3117, 43.3668], + [145.3025, 43.1735], + [145.1255, 43.1201], + [145.0002, 42.9862], + [144.742, 42.9242], + [144.4959, 42.9333], + [144.323, 43.0026], + [144.042, 42.9266], + [143.6388, 42.6611], + [143.349, 42.3192], + [143.2529, 41.9419], + [142.9597, 42.1054], + [142.46, 42.2713], + [142.1678, 42.4599], + [141.7261, 42.6172], + [141.4277, 42.5644], + [141.0168, 42.3161], + [140.7337, 42.5642], + [140.5256, 42.5806], + [140.3809, 42.5051], + [140.2918, 42.2596], + [140.5488, 42.1055], + [140.7136, 42.1335], + [140.9743, 41.9138], + [141.1828, 41.8183], + [140.96, 41.722], + [140.6416, 41.8151], + [140.4529, 41.6811], + [140.4006, 41.513], + [140.209, 41.4011], + [140.0383, 41.4426], + [139.9837, 41.5605], + [140.1297, 41.8232], + [140.145, 41.9827], + [139.7874, 42.2468], + [139.877, 42.6634], + [140.2608, 42.761], + [140.5271, 43.0154], + [140.3381, 43.2105], + [140.4872, 43.3724], + [140.8099, 43.1925], + [140.9883, 43.227], + [141.1691, 43.1409], + [141.3709, 43.2507], + [141.4401, 43.3617], + [141.3374, 43.7128], + [141.6406, 43.9379], + [141.6554, 44.2769], + [141.7918, 44.597], + [141.7219, 44.9551], + [141.5864, 45.1644], + [141.6921, 45.4023], + [142.0178, 45.4557] + ] + ] + ] + }, + "properties": { + "NAME": "Japan", + "NAME_LONG": "Japan", + "ADM0_A3": "JPN", + "ISO_A2": "JP", + "ISO_A3": "JPN", + "WB_A2": "JP", + "WB_A3": "JPN" + }, + "id": 116 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [63.3839, 45.5658], + [63.2105, 45.5844], + [62.9003, 45.7477], + [62.8125, 45.8952], + [62.9003, 46.209], + [63.2105, 46.3723], + [63.4435, 46.3887], + [63.7549, 46.2967], + [63.9553, 46.0614], + [63.8676, 45.7477], + [63.5574, 45.5844], + [63.3839, 45.5658] + ] + ] + }, + "properties": { + "NAME": "Baikonur", + "NAME_LONG": "Baikonur Cosmodrome", + "ADM0_A3": "KAB", + "ISO_A2": "KZ", + "ISO_A3": "KAZ", + "WB_A2": "KZ", + "WB_A3": "KAZ" + }, + "id": 117 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [77.8003, 35.4954], + [77.049, 35.1104], + [76.7774, 35.6461], + [77.4128, 35.4694], + [77.8003, 35.4954] + ] + ] + }, + "properties": { + "NAME": "Siachen Glacier", + "NAME_LONG": "Siachen Glacier", + "ADM0_A3": "KAS", + "ISO_A2": "-99", + "ISO_A3": "-99", + "WB_A2": "-99", + "WB_A3": "-99" + }, + "id": 118 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [87.3238, 49.0853], + [86.8873, 49.1068], + [86.7275, 48.9903], + [86.7445, 48.7035], + [86.5651, 48.5273], + [86.192, 48.4182], + [85.7837, 48.4076], + [85.5864, 48.1412], + [85.5154, 47.9203], + [85.6704, 47.3843], + [85.6597, 47.2065], + [85.4986, 47.0518], + [85.2051, 47.0337], + [84.916, 46.8506], + [84.7396, 46.8148], + [84.6635, 46.9839], + [83.9053, 46.974], + [83.5245, 47.0671], + [83.1504, 47.2115], + [83.0135, 47.1946], + [82.9855, 46.9425], + [82.839, 46.7324], + [82.6744, 46.3311], + [82.5683, 46.1965], + [82.4889, 45.9017], + [82.2915, 45.5332], + [82.6157, 45.4354], + [82.5852, 45.1768], + [82.4758, 45.1157], + [82.2946, 45.2282], + [81.9501, 45.1445], + [81.8073, 45.1887], + [81.7393, 45.3381], + [80.8539, 45.1265], + [80.6971, 45.1437], + [80.365, 45.0432], + [80.0617, 45.019], + [79.8582, 44.9037], + [79.9917, 44.7936], + [80.2183, 44.8181], + [80.3763, 44.6713], + [80.3329, 44.4174], + [80.3451, 44.1031], + [80.7127, 43.4589], + [80.7734, 43.1129], + [80.5759, 43.1194], + [80.3681, 43.0285], + [80.4762, 42.8639], + [80.2275, 42.791], + [80.14, 42.623], + [80.2684, 42.238], + [80.2103, 42.1895], + [79.9179, 42.4244], + [79.4764, 42.454], + [79.0309, 42.7562], + [78.6871, 42.8046], + [78.4961, 42.8756], + [78.0306, 42.8547], + [77.907, 42.8913], + [77.1637, 42.922], + [76.9569, 42.9885], + [76.6888, 42.9103], + [75.7706, 42.9256], + [75.6462, 42.8061], + [75.1786, 42.8497], + [74.7139, 42.9999], + [74.5582, 43.115], + [74.2587, 43.2158], + [73.6341, 43.0625], + [73.493, 42.895], + [73.41, 42.5896], + [73.5055, 42.4209], + [73.1151, 42.5508], + [72.8408, 42.5557], + [72.7258, 42.6529], + [72.2924, 42.7611], + [72.1049, 42.7503], + [71.8477, 42.8341], + [71.5836, 42.7596], + [71.4046, 42.7949], + [71.0032, 42.5635], + [70.9478, 42.2481], + [70.7343, 42.1973], + [70.6102, 42.0274], + [70.4554, 42.0937], + [70.3151, 42.0346], + [70.1364, 41.8481], + [69.8709, 41.6996], + [69.6246, 41.6683], + [69.0444, 41.3792], + [69.0392, 41.2203], + [68.7463, 41.0638], + [68.5497, 40.835], + [68.6274, 40.6671], + [68.4617, 40.5847], + [68.0675, 40.788], + [68.1313, 41.0296], + [67.9374, 41.2004], + [66.8153, 41.1419], + [66.6882, 41.1992], + [66.5389, 41.7408], + [66.5041, 41.9935], + [66.0172, 41.9976], + [66.0137, 42.403], + [66.0532, 42.4409], + [66.1013, 42.9903], + [65.7952, 42.8772], + [65.5169, 43.2972], + [65.2714, 43.417], + [64.9565, 43.6974], + [64.855, 43.7129], + [64.4267, 43.547], + [63.208, 43.6275], + [62.0261, 43.4806], + [61.9857, 43.4933], + [61.1617, 44.1681], + [61.0363, 44.3828], + [59.6758, 45.0291], + [58.5822, 45.5487], + [58.5314, 45.5587], + [57.4783, 45.3369], + [55.9784, 44.9962], + [55.9768, 43.6164], + [55.9774, 42.6985], + [55.9784, 41.3217], + [55.6355, 41.2644], + [55.4295, 41.2908], + [55.2284, 41.4728], + [54.9507, 41.7956], + [54.9071, 41.9321], + [54.7383, 42.0482], + [54.1953, 42.3181], + [54.0472, 42.3454], + [53.4123, 42.2582], + [52.9787, 42.1266], + [52.4377, 41.7489], + [52.4845, 41.9416], + [52.402, 42.0925], + [52.5991, 42.3447], + [52.7446, 42.6574], + [52.5742, 42.7985], + [52.1692, 42.887], + [51.9328, 42.8349], + [51.6511, 43.1914], + [51.2663, 43.1876], + [51.3196, 43.4425], + [51.1419, 43.6337], + [50.9832, 43.919], + [50.8528, 44.0388], + [50.8472, 44.1893], + [50.6963, 44.2643], + [50.3446, 44.3113], + [50.2302, 44.3909], + [50.2991, 44.6553], + [50.8479, 44.6328], + [51.1433, 44.4848], + [51.3193, 44.5964], + [51.2009, 44.7409], + [50.9707, 44.8472], + [50.9822, 44.9895], + [51.2434, 45.1011], + [51.3972, 45.3326], + [51.7925, 45.4055], + [51.9578, 45.3716], + [52.5667, 45.4007], + [52.9097, 45.3127], + [53.1429, 45.384], + [52.7385, 45.5256], + [52.7456, 45.6391], + [53.0866, 46.0205], + [53.1567, 46.3417], + [53.0829, 46.435], + [53.1882, 46.718], + [52.9199, 46.9575], + [52.6148, 46.95], + [52.4559, 47.0012], + [52.2389, 46.8068], + [51.7637, 46.9157], + [51.5026, 47.0613], + [51.187, 47.1169], + [50.8574, 47.04], + [50.6069, 46.8681], + [50.1688, 46.7491], + [49.8174, 46.5404], + [49.4692, 46.5626], + [49.2271, 46.3279], + [48.4551, 46.6608], + [48.5567, 46.7617], + [48.764, 46.6828], + [49.0063, 46.7691], + [48.6973, 47.101], + [48.5251, 47.4102], + [48.3606, 47.4931], + [48.1744, 47.7129], + [48.0445, 47.7697], + [47.6497, 47.7656], + [47.4353, 47.8344], + [47.3597, 47.6833], + [47.1745, 47.7705], + [47.0512, 47.9746], + [47.0783, 48.2753], + [46.4793, 48.4102], + [46.7538, 48.9141], + [47.0209, 49.0968], + [47.0286, 49.2015], + [46.7751, 49.3325], + [46.8999, 49.8203], + [47.3087, 50.0448], + [47.2948, 50.2754], + [47.6247, 50.4408], + [47.9932, 50.1818], + [48.2393, 49.8648], + [48.4176, 49.8117], + [48.7846, 49.9334], + [48.8857, 50.0199], + [48.7013, 50.3346], + [48.6734, 50.5795], + [48.8304, 50.596], + [49.1441, 50.7817], + [49.3694, 50.8268], + [49.4231, 51.102], + [49.7791, 51.1022], + [49.9869, 51.2298], + [50.3254, 51.3035], + [50.5183, 51.4598], + [50.5817, 51.6353], + [50.7907, 51.5973], + [50.9254, 51.6797], + [51.2339, 51.6855], + [51.3719, 51.6296], + [51.3795, 51.4671], + [51.6205, 51.5187], + [51.8692, 51.6731], + [52.0918, 51.6587], + [52.3349, 51.7637], + [52.5058, 51.4789], + [53.1533, 51.5127], + [53.4073, 51.4842], + [53.6103, 51.3884], + [53.6739, 51.2199], + [53.9359, 51.1856], + [54.1766, 50.9679], + [54.4786, 50.8535], + [54.3798, 50.6194], + [54.6763, 50.6025], + [54.6382, 51.0277], + [55.3054, 50.665], + [55.4911, 50.6459], + [55.66, 50.53], + [56.0789, 50.7248], + [56.1749, 50.9087], + [56.3357, 50.8959], + [56.508, 51.0663], + [56.8651, 51.0518], + [57.1682, 51.0938], + [57.3527, 50.886], + [57.7373, 50.9382], + [57.7688, 51.1197], + [58.595, 51.0234], + [58.6644, 50.7899], + [58.9259, 50.6781], + [59.4376, 50.6311], + [59.5228, 50.4746], + [59.7747, 50.5337], + [60.0213, 50.8541], + [60.3004, 50.6847], + [60.7185, 50.6527], + [61.3721, 50.7825], + [61.5932, 51.2778], + [61.4738, 51.4258], + [61.0233, 51.4855], + [60.9374, 51.6112], + [60.5151, 51.6179], + [60.4521, 51.8055], + [60.1381, 51.8889], + [60.2028, 51.9927], + [60.5065, 52.1516], + [60.6722, 52.1443], + [61.0399, 52.335], + [60.8314, 52.5132], + [60.6962, 52.7349], + [60.8291, 52.7716], + [61.1903, 53.0131], + [61.5743, 52.9558], + [62.0942, 52.9925], + [62.0507, 53.1248], + [61.2029, 53.2764], + [61.1372, 53.3731], + [61.2807, 53.5424], + [61.0076, 53.6357], + [61.202, 53.8196], + [61.1935, 54.0183], + [61.4786, 54.0029], + [62.5506, 54.0268], + [62.8121, 54.095], + [63.0847, 54.0856], + [63.7086, 54.2504], + [64.5785, 54.3856], + [64.9106, 54.4027], + [65.2129, 54.343], + [65.2143, 54.5279], + [65.4774, 54.6327], + [65.9775, 54.6117], + [66.4465, 54.7109], + [67.6227, 54.8539], + [67.8173, 54.9522], + [68.1661, 54.9561], + [68.3082, 55.0728], + [68.2624, 55.194], + [68.6053, 55.1956], + [68.7225, 55.3528], + [69.1861, 55.3258], + [69.3346, 55.3851], + [69.6739, 55.334], + [70.197, 55.1335], + [70.4601, 55.2874], + [70.6657, 55.3092], + [70.9771, 55.078], + [71.006, 54.7742], + [71.1803, 54.7274], + [71.1823, 54.1016], + [71.7087, 54.1322], + [71.7625, 54.2476], + [72.0667, 54.2224], + [72.1518, 54.3683], + [72.4829, 54.1356], + [72.3569, 54.0818], + [72.4556, 53.9053], + [72.6562, 54.0425], + [72.9568, 54.1175], + [73.0628, 53.9791], + [73.3603, 53.9384], + [73.7406, 54.0579], + [73.6971, 53.9008], + [73.4853, 53.8749], + [73.2297, 53.6624], + [73.3912, 53.5202], + [73.8727, 53.6321], + [74.2139, 53.597], + [74.6165, 53.6807], + [74.772, 53.8309], + [75.0279, 53.8079], + [75.6404, 54.0989], + [76.4331, 54.3166], + [76.7661, 54.3646], + [76.8377, 54.2969], + [76.6646, 54.1341], + [76.3744, 54.1478], + [76.5257, 53.9613], + [77.6128, 53.4428], + [77.8668, 53.2723], + [78.4765, 52.6379], + [79.4698, 51.4926], + [79.9901, 50.7881], + [80.0493, 50.8523], + [80.439, 50.9581], + [80.4762, 51.2096], + [80.6828, 51.302], + [81.1472, 51.1359], + [81.0583, 50.9471], + [81.4008, 50.9591], + [81.4602, 50.7303], + [81.7635, 50.7843], + [82.0731, 50.7157], + [82.698, 50.811], + [82.9759, 50.8819], + [83.1076, 50.9927], + [83.434, 50.9927], + [83.8205, 50.868], + [84.1017, 50.6286], + [84.25, 50.2599], + [84.642, 50.1849], + [84.9758, 50.0752], + [85.0326, 49.885], + [85.2631, 49.5815], + [85.384, 49.6157], + [86.1115, 49.5202], + [86.3918, 49.625], + [86.6102, 49.7955], + [86.7759, 49.695], + [86.5918, 49.5872], + [86.8243, 49.5092], + [86.9051, 49.3519], + [87.218, 49.2298], + [87.3238, 49.0853] + ], + [ + [63.3839, 45.5658], + [63.5574, 45.5844], + [63.8676, 45.7477], + [63.9553, 46.0614], + [63.7549, 46.2967], + [63.4435, 46.3887], + [63.2105, 46.3723], + [62.9003, 46.209], + [62.8125, 45.8952], + [62.9003, 45.7477], + [63.2105, 45.5844], + [63.3839, 45.5658] + ] + ] + }, + "properties": { + "NAME": "Kazakhstan", + "NAME_LONG": "Kazakhstan", + "ADM0_A3": "KAZ", + "ISO_A2": "KZ", + "ISO_A3": "KAZ", + "WB_A2": "KZ", + "WB_A3": "KAZ" + }, + "id": 119 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [35.9208, 4.6193], + [36.0413, 4.4437], + [36.8441, 4.4322], + [37.1119, 4.2823], + [37.9767, 3.7264], + [38.1019, 3.6126], + [38.4969, 3.6239], + [38.8952, 3.5136], + [39.4362, 3.4624], + [39.575, 3.4979], + [39.7451, 3.6606], + [39.8485, 3.8673], + [40.7637, 4.2849], + [41.1145, 3.9623], + [41.4295, 3.9489], + [41.6998, 3.9969], + [41.885, 3.9772], + [41.3427, 3.2011], + [40.9654, 2.8141], + [40.9685, 2.1036], + [40.9685, 0.8722], + [40.9685, -0.0027], + [40.9798, -0.8708], + [41.5229, -1.5728], + [41.5351, -1.6963], + [41.3035, -1.9561], + [41.199, -1.9431], + [40.9043, -2.0803], + [40.8286, -2.3748], + [40.6159, -2.5525], + [40.3898, -2.5603], + [40.175, -2.7626], + [40.2251, -2.9937], + [40.1291, -3.2519], + [39.9652, -3.3992], + [39.849, -3.6252], + [39.7864, -3.9172], + [39.6697, -4.088], + [39.5511, -4.4021], + [39.3625, -4.634], + [39.1906, -4.6775], + [38.5083, -4.1862], + [37.771, -3.6554], + [37.5903, -3.4041], + [37.7001, -3.3144], + [37.6449, -3.046], + [36.7035, -2.5204], + [35.4156, -1.8013], + [34.0525, -1.0404], + [33.9042, -1.0026], + [33.8948, -0.6627], + [33.9535, -0.1544], + [33.8936, 0.1098], + [34.088, 0.3674], + [34.1324, 0.5728], + [34.388, 0.8158], + [34.5075, 1.1025], + [34.7979, 1.2319], + [34.779, 1.3885], + [34.9787, 1.6759], + [34.9675, 2.1019], + [34.8656, 2.3475], + [34.9236, 2.4773], + [34.8187, 2.598], + [34.7301, 2.8529], + [34.5747, 2.9461], + [34.5456, 3.0974], + [34.434, 3.182], + [34.3821, 3.466], + [34.4397, 3.6677], + [34.2789, 3.7097], + [34.0611, 4.0078], + [33.9771, 4.2197], + [34.3812, 4.6202], + [34.6663, 4.765], + [35.2457, 4.9817], + [35.5708, 4.9043], + [35.5222, 4.7805], + [35.6106, 4.62], + [35.9208, 4.6193] + ] + ] + }, + "properties": { + "NAME": "Kenya", + "NAME_LONG": "Kenya", + "ADM0_A3": "KEN", + "ISO_A2": "KE", + "ISO_A3": "KEN", + "WB_A2": "KE", + "WB_A3": "KEN" + }, + "id": 120 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [80.2103, 42.1895], + [80.1819, 42.021], + [79.8429, 42.0018], + [79.7475, 41.8797], + [79.3041, 41.7876], + [78.6721, 41.5384], + [78.3599, 41.3775], + [78.3597, 41.2875], + [78.075, 41.0395], + [77.8667, 41.0641], + [77.4749, 40.982], + [77.333, 41.0206], + [76.861, 41.0132], + [76.6308, 40.7289], + [76.6242, 40.6275], + [76.4491, 40.4155], + [76.2442, 40.4412], + [75.9215, 40.3091], + [75.6818, 40.2917], + [75.6669, 40.4502], + [75.5599, 40.6329], + [75.1939, 40.4413], + [74.8354, 40.5116], + [74.7058, 40.3313], + [74.3699, 40.1058], + [74.004, 40.0608], + [73.823, 39.8057], + [73.9268, 39.5929], + [73.8207, 39.4682], + [73.6326, 39.4483], + [73.3676, 39.4438], + [73.1679, 39.3554], + [72.6505, 39.3938], + [72.3163, 39.3288], + [72.2033, 39.2408], + [72.0498, 39.3689], + [71.7329, 39.2851], + [71.7403, 39.4483], + [71.4921, 39.4937], + [71.4595, 39.6121], + [71.0093, 39.4076], + [70.7397, 39.3862], + [70.6221, 39.5635], + [70.46, 39.5995], + [70.206, 39.5241], + [70.0197, 39.5686], + [69.6694, 39.5778], + [69.2862, 39.5397], + [69.2263, 39.751], + [69.314, 39.9869], + [69.5755, 40.1036], + [69.9696, 40.2116], + [70.6274, 39.9939], + [70.6394, 40.0849], + [70.959, 40.2384], + [71.3651, 40.2941], + [71.6731, 40.1479], + [72.0993, 40.4264], + [72.3705, 40.3856], + [72.4479, 40.5605], + [72.5858, 40.5087], + [72.7839, 40.6697], + [73.118, 40.7829], + [73.0034, 40.8702], + [72.6195, 40.8801], + [72.4767, 41.0118], + [72.1856, 41.0411], + [72.1699, 41.1687], + [71.8716, 41.1945], + [71.863, 41.3122], + [71.6841, 41.5341], + [71.5855, 41.3235], + [71.4126, 41.3347], + [71.4215, 41.1621], + [71.2761, 41.1132], + [70.9142, 41.193], + [70.7563, 41.2696], + [70.6338, 41.4675], + [70.4772, 41.4047], + [70.1693, 41.5783], + [70.4537, 41.7121], + [70.5501, 41.8241], + [70.8251, 41.9363], + [71.2179, 42.2064], + [70.9478, 42.2481], + [71.0032, 42.5635], + [71.4046, 42.7949], + [71.5836, 42.7596], + [71.8477, 42.8341], + [72.1049, 42.7503], + [72.2924, 42.7611], + [72.7258, 42.6529], + [72.8408, 42.5557], + [73.1151, 42.5508], + [73.5055, 42.4209], + [73.41, 42.5896], + [73.493, 42.895], + [73.6341, 43.0625], + [74.2587, 43.2158], + [74.5582, 43.115], + [74.7139, 42.9999], + [75.1786, 42.8497], + [75.6462, 42.8061], + [75.7706, 42.9256], + [76.6888, 42.9103], + [76.9569, 42.9885], + [77.1637, 42.922], + [77.907, 42.8913], + [78.0306, 42.8547], + [78.4961, 42.8756], + [78.6871, 42.8046], + [79.0309, 42.7562], + [79.4764, 42.454], + [79.9179, 42.4244], + [80.2103, 42.1895] + ], + [ + [71.0086, 40.1578], + [70.953, 40.0792], + [71.1137, 39.8745], + [71.2211, 39.9317], + [71.0086, 40.1578] + ] + ] + }, + "properties": { + "NAME": "Kyrgyzstan", + "NAME_LONG": "Kyrgyzstan", + "ADM0_A3": "KGZ", + "ISO_A2": "KG", + "ISO_A3": "KGZ", + "WB_A2": "KG", + "WB_A3": "KGZ" + }, + "id": 121 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [104.4513, 10.4197], + [104.2863, 10.5405], + [103.8543, 10.5865], + [103.6239, 10.5009], + [103.5068, 10.6354], + [103.6722, 10.7579], + [103.7224, 10.8948], + [103.6595, 11.0298], + [103.4745, 11.1337], + [103.4021, 10.8843], + [103.0956, 10.934], + [103.0789, 11.2735], + [103.1145, 11.4582], + [102.9136, 11.6459], + [102.9138, 11.7655], + [102.7, 12.1387], + [102.7651, 12.4163], + [102.5586, 12.6312], + [102.4732, 13.0061], + [102.3282, 13.2752], + [102.3322, 13.5646], + [102.5132, 13.5672], + [102.5744, 13.6939], + [102.6986, 13.7618], + [102.8698, 14.0206], + [102.9186, 14.1855], + [103.085, 14.2958], + [103.5502, 14.4219], + [103.8703, 14.3433], + [104.2475, 14.4011], + [104.462, 14.3571], + [104.7717, 14.4399], + [104.9738, 14.3806], + [105.1014, 14.2305], + [105.1843, 14.3457], + [105.3479, 14.1061], + [105.5332, 14.1643], + [105.744, 14.0869], + [105.8731, 13.9369], + [106.0492, 13.9155], + [106.1446, 14.0724], + [105.9692, 14.332], + [106.1541, 14.3675], + [106.236, 14.4844], + [106.4192, 14.4665], + [106.5125, 14.5904], + [106.793, 14.3226], + [106.9461, 14.3235], + [107.2112, 14.4935], + [107.2873, 14.5985], + [107.4149, 14.5434], + [107.5204, 14.7046], + [107.5053, 14.541], + [107.3869, 14.4219], + [107.3199, 14.1198], + [107.4307, 13.9845], + [107.4432, 13.7835], + [107.5969, 13.5351], + [107.607, 13.3698], + [107.4604, 13.0216], + [107.5651, 12.6064], + [107.5143, 12.3438], + [107.1525, 12.277], + [106.9777, 12.0972], + [106.7492, 12.0523], + [106.7016, 11.9708], + [106.394, 11.9698], + [106.3989, 11.7463], + [106.2873, 11.6746], + [106.0154, 11.7705], + [105.8532, 11.5469], + [105.8434, 11.3041], + [106.0631, 11.0933], + [106.155, 10.7848], + [105.861, 10.8393], + [105.7529, 11.0156], + [105.4739, 10.9409], + [105.3275, 10.8483], + [105.0291, 10.9141], + [105.0662, 10.7464], + [104.8544, 10.5313], + [104.554, 10.5183], + [104.4513, 10.4197] + ] + ] + }, + "properties": { + "NAME": "Cambodia", + "NAME_LONG": "Cambodia", + "ADM0_A3": "KHM", + "ISO_A2": "KH", + "ISO_A3": "KHM", + "WB_A2": "KH", + "WB_A3": "KHM" + }, + "id": 122 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [126.8234, 33.5594], + [126.9392, 33.4309], + [126.8406, 33.3102], + [126.2861, 33.2004], + [126.1714, 33.2694], + [126.3106, 33.4645], + [126.8234, 33.5594] + ] + ], + [ + [ + [128.7239, 34.9545], + [128.6182, 34.7256], + [128.4885, 34.869], + [128.7239, 34.9545] + ] + ], + [ + [ + [126.6675, 37.8278], + [126.7619, 37.979], + [127.0267, 38.2545], + [127.1575, 38.3072], + [127.7537, 38.3254], + [128.0399, 38.3043], + [128.2681, 38.4535], + [128.3649, 38.6243], + [128.6316, 38.145], + [129.0642, 37.6789], + [129.1482, 37.5051], + [129.3311, 37.2822], + [129.4712, 36.7719], + [129.4409, 36.4079], + [129.3823, 36.2018], + [129.5426, 36.0659], + [129.4546, 35.5133], + [129.3578, 35.4518], + [129.1943, 35.1555], + [128.997, 35.0757], + [128.5264, 35.1035], + [128.4353, 34.8432], + [128.0193, 34.9987], + [127.6411, 34.8991], + [127.7745, 34.8293], + [127.638, 34.6982], + [127.511, 34.8847], + [127.3853, 34.7602], + [127.5008, 34.6122], + [127.3159, 34.4449], + [127.2235, 34.5468], + [127.2908, 34.7214], + [127.0103, 34.6125], + [126.8098, 34.4512], + [126.4796, 34.3488], + [126.4902, 34.5086], + [126.2711, 34.6425], + [126.4093, 34.8445], + [126.4503, 35.0666], + [126.3616, 35.269], + [126.5132, 35.5769], + [126.7332, 35.8856], + [126.5349, 36.2196], + [126.5715, 36.3056], + [126.4242, 36.6066], + [126.131, 36.7681], + [126.336, 36.8247], + [126.5662, 36.9908], + [126.7552, 37.0488], + [126.596, 37.4397], + [126.531, 37.7547], + [126.6869, 37.7736], + [126.6675, 37.8278] + ] + ] + ] + }, + "properties": { + "NAME": "South Korea", + "NAME_LONG": "Republic of Korea", + "ADM0_A3": "KOR", + "ISO_A2": "KR", + "ISO_A3": "KOR", + "WB_A2": "KR", + "WB_A3": "KOR" + }, + "id": 125 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [21.5641, 42.2463], + [21.3538, 42.216], + [21.2378, 42.0974], + [21.0985, 42.196], + [20.7654, 42.0643], + [20.7505, 41.9068], + [20.5671, 41.8732], + [20.5993, 41.9479], + [20.5008, 42.2112], + [20.2496, 42.3186], + [20.065, 42.5468], + [20.0763, 42.7734], + [20.3454, 42.8274], + [20.6438, 43.0523], + [20.5975, 43.185], + [20.8386, 43.1705], + [21.0926, 43.0907], + [21.3787, 42.7441], + [21.7387, 42.6822], + [21.5641, 42.2463] + ] + ] + }, + "properties": { + "NAME": "Kosovo", + "NAME_LONG": "Kosovo", + "ADM0_A3": "KOS", + "ISO_A2": "KV", + "ISO_A3": "KSV", + "WB_A2": "KV", + "WB_A3": "KSV" + }, + "id": 126 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [48.1887, 29.9835], + [48.3445, 29.7906], + [48.229, 29.5999], + [48.0461, 29.8005], + [48.1887, 29.9835] + ] + ], + [ + [ + [48.4328, 28.5405], + [47.6681, 28.5335], + [47.5968, 28.6088], + [47.4341, 28.9946], + [46.5324, 29.0957], + [46.8534, 29.4446], + [47.1105, 29.9609], + [47.3582, 30.0921], + [47.6742, 30.0982], + [47.948, 29.994], + [48.0217, 29.7797], + [48.1809, 29.5622], + [47.9655, 29.5763], + [47.727, 29.3619], + [48.0921, 29.2872], + [48.1585, 29.0173], + [48.4328, 28.5405] + ] + ] + ] + }, + "properties": { + "NAME": "Kuwait", + "NAME_LONG": "Kuwait", + "ADM0_A3": "KWT", + "ISO_A2": "KW", + "ISO_A3": "KWT", + "WB_A2": "KW", + "WB_A3": "KWT" + }, + "id": 127 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [102.1187, 22.3975], + [102.2262, 22.2284], + [102.591, 21.9014], + [102.6507, 21.6578], + [102.7867, 21.7399], + [102.9478, 21.7371], + [102.9741, 21.5753], + [102.895, 21.4953], + [102.8879, 21.2269], + [103.1153, 20.8684], + [103.3638, 20.7876], + [103.4266, 20.8207], + [103.6654, 20.6583], + [103.7756, 20.8349], + [104.0567, 20.9588], + [104.2953, 20.8798], + [104.3891, 20.771], + [104.6007, 20.6605], + [104.5426, 20.5357], + [104.6809, 20.341], + [104.6571, 20.2127], + [104.908, 20.1753], + [104.9532, 20.0093], + [104.7807, 19.9081], + [104.805, 19.7909], + [104.5058, 19.6028], + [104.229, 19.706], + [104.0887, 19.6519], + [104.09, 19.4837], + [103.8567, 19.3172], + [104.1477, 19.1829], + [104.4809, 18.9777], + [104.722, 18.792], + [105.1127, 18.6983], + [105.1695, 18.6306], + [105.08, 18.4544], + [105.1567, 18.3198], + [105.3683, 18.15], + [105.476, 18.1273], + [105.7353, 17.664], + [105.846, 17.598], + [106.1854, 17.2574], + [106.26, 17.2892], + [106.4203, 16.9887], + [106.5334, 16.9727], + [106.5351, 16.6835], + [106.6552, 16.4708], + [106.8599, 16.4118], + [106.9673, 16.2999], + [107.1169, 16.2546], + [107.3906, 15.9358], + [107.1752, 15.8485], + [107.1603, 15.7587], + [107.3693, 15.4961], + [107.5732, 15.4112], + [107.6576, 15.2824], + [107.578, 15.0472], + [107.5204, 14.7046], + [107.4149, 14.5434], + [107.2873, 14.5985], + [107.2112, 14.4935], + [106.9461, 14.3235], + [106.793, 14.3226], + [106.5125, 14.5904], + [106.4192, 14.4665], + [106.236, 14.4844], + [106.1541, 14.3675], + [105.9692, 14.332], + [106.1446, 14.0724], + [106.0492, 13.9155], + [105.8731, 13.9369], + [105.744, 14.0869], + [105.5332, 14.1643], + [105.3479, 14.1061], + [105.1843, 14.3457], + [105.416, 14.4282], + [105.5101, 14.5936], + [105.4891, 14.7863], + [105.5836, 14.9776], + [105.4438, 15.1338], + [105.564, 15.2725], + [105.651, 15.6346], + [105.6129, 15.7215], + [105.448, 15.7649], + [105.3726, 15.8821], + [105.4049, 16.0188], + [105.0425, 16.1414], + [105.0155, 16.2767], + [104.7545, 16.5289], + [104.7783, 16.7158], + [104.7453, 17.0248], + [104.8099, 17.1717], + [104.8164, 17.3728], + [104.7145, 17.5153], + [104.4812, 17.6404], + [104.1109, 18.1146], + [104, 18.3184], + [103.8321, 18.3207], + [103.3968, 18.4414], + [103.2608, 18.4002], + [103.0379, 17.9907], + [102.9386, 18.0089], + [102.5956, 17.8501], + [102.5675, 17.9708], + [102.3067, 18.0515], + [102.0785, 18.2138], + [101.9043, 18.0371], + [101.7904, 18.0736], + [101.7291, 17.9122], + [101.5776, 17.8681], + [101.247, 17.5922], + [101.1323, 17.4617], + [100.9019, 17.5619], + [101.0083, 17.8952], + [101.1652, 18.0534], + [101.1455, 18.3362], + [101.0303, 18.4278], + [101.2401, 18.6736], + [101.2329, 18.8927], + [101.3179, 19.0501], + [101.2291, 19.1436], + [101.1929, 19.4528], + [101.1247, 19.5651], + [100.8746, 19.6129], + [100.7455, 19.485], + [100.462, 19.5371], + [100.3835, 19.7639], + [100.4743, 19.8654], + [100.5434, 20.0666], + [100.3644, 20.369], + [100.0993, 20.3178], + [100.2113, 20.6974], + [100.5157, 20.8865], + [100.6376, 21.0697], + [100.7254, 21.3117], + [101.0034, 21.406], + [101.159, 21.5527], + [101.209, 21.2455], + [101.2753, 21.1741], + [101.4951, 21.2428], + [101.756, 21.1433], + [101.7225, 21.3042], + [101.7515, 21.8064], + [101.6068, 21.9676], + [101.5182, 22.2282], + [101.6545, 22.4461], + [101.8178, 22.4063], + [102.0146, 22.4461], + [102.1187, 22.3975] + ] + ] + }, + "properties": { + "NAME": "Lao PDR", + "NAME_LONG": "Lao PDR", + "ADM0_A3": "LAO", + "ISO_A2": "LA", + "ISO_A3": "LAO", + "WB_A2": "LA", + "WB_A3": "LAO" + }, + "id": 128 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [35.8211, 33.4067], + [35.52, 33.2222], + [35.4801, 33.0874], + [35.1052, 33.089], + [35.271, 33.4575], + [35.3491, 33.5139], + [35.4773, 33.8039], + [35.5784, 33.9167], + [35.6272, 34.2011], + [35.8054, 34.4587], + [35.9832, 34.5386], + [35.9699, 34.6498], + [36.2616, 34.6272], + [36.5306, 34.4142], + [36.6041, 34.1991], + [36.2672, 33.9104], + [36.0504, 33.8164], + [36.0129, 33.608], + [35.8211, 33.4067] + ] + ] + }, + "properties": { + "NAME": "Lebanon", + "NAME_LONG": "Lebanon", + "ADM0_A3": "LBN", + "ISO_A2": "LB", + "ISO_A3": "LBN", + "WB_A2": "LB", + "WB_A3": "LBN" + }, + "id": 129 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-8.4854, 7.558], + [-8.4436, 7.5371], + [-8.2841, 7.0179], + [-8.3518, 6.7554], + [-8.5661, 6.5509], + [-8.3888, 6.3551], + [-8.1706, 6.274], + [-7.9349, 6.2714], + [-7.8441, 6.184], + [-7.7996, 5.9745], + [-7.5591, 5.8399], + [-7.4465, 5.8459], + [-7.3936, 5.524], + [-7.45, 5.4228], + [-7.4889, 5.1407], + [-7.5782, 5.0547], + [-7.6055, 4.8974], + [-7.5407, 4.3528], + [-7.7127, 4.3615], + [-7.8329, 4.4522], + [-8.2573, 4.58], + [-8.6075, 4.7869], + [-9.0148, 4.9785], + [-9.2787, 5.1457], + [-9.4975, 5.3894], + [-10.0399, 5.8543], + [-10.0462, 5.8964], + [-10.3956, 6.177], + [-10.6594, 6.2275], + [-10.7883, 6.293], + [-10.8243, 6.4377], + [-11.0536, 6.5842], + [-11.3532, 6.7012], + [-11.4762, 6.9194], + [-11.3732, 7.1388], + [-11.1263, 7.368], + [-10.8746, 7.5309], + [-10.7306, 7.7055], + [-10.6152, 7.769], + [-10.6177, 8.0108], + [-10.5292, 8.1243], + [-10.3649, 8.1482], + [-10.2822, 8.4846], + [-9.6835, 8.4871], + [-9.5792, 8.3873], + [-9.4223, 8.0158], + [-9.4387, 7.8662], + [-9.3535, 7.6224], + [-9.4381, 7.4216], + [-9.2343, 7.3813], + [-9.1196, 7.238], + [-8.9254, 7.2486], + [-8.7296, 7.5087], + [-8.6866, 7.6944], + [-8.5674, 7.6882], + [-8.4854, 7.558] + ] + ] + }, + "properties": { + "NAME": "Liberia", + "NAME_LONG": "Liberia", + "ADM0_A3": "LBR", + "ISO_A2": "LR", + "ISO_A3": "LBR", + "WB_A2": "LR", + "WB_A3": "LBR" + }, + "id": 130 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [25.1509, 31.6565], + [24.8613, 31.3804], + [24.8595, 31.146], + [24.9949, 30.7851], + [24.9077, 30.4987], + [24.6883, 30.1442], + [24.8116, 29.8909], + [24.8738, 29.4683], + [24.9812, 29.1814], + [24.9812, 27.6665], + [24.9812, 26.6645], + [24.9812, 25.2054], + [24.9812, 23.7463], + [24.9812, 22.579], + [24.9812, 21.9954], + [24.9808, 20.5004], + [24.968, 19.995], + [23.9813, 19.9954], + [23.9813, 19.4961], + [23.2402, 19.8621], + [22.2521, 20.3501], + [21.6345, 20.655], + [20.5228, 21.2039], + [19.1641, 21.8749], + [18.176, 22.3628], + [17.4348, 22.7288], + [15.9851, 23.4447], + [14.9799, 22.9957], + [14.2317, 22.6179], + [14.2016, 22.6232], + [13.5996, 23.119], + [13.4823, 23.1797], + [11.9689, 23.5174], + [11.5671, 24.2668], + [11.5086, 24.3138], + [10.7207, 24.5523], + [10.4502, 24.4769], + [10.2603, 24.5766], + [10.1934, 24.7499], + [10.032, 24.8563], + [10.0214, 25.268], + [9.9695, 25.3954], + [9.4012, 26.1134], + [9.4826, 26.3526], + [9.8358, 26.5042], + [9.9106, 26.8431], + [9.8255, 26.9206], + [9.7213, 27.2919], + [9.8216, 27.5057], + [9.9359, 27.8667], + [9.777, 28.2676], + [9.8513, 28.786], + [9.8261, 29.1285], + [9.6677, 29.6083], + [9.5497, 29.8023], + [9.2865, 30.1171], + [9.5197, 30.2289], + [9.8713, 30.3552], + [10.1922, 30.7313], + [10.2702, 30.9156], + [10.2448, 31.0782], + [10.1081, 31.4118], + [10.264, 31.6805], + [10.5135, 31.757], + [10.6059, 31.9536], + [10.8056, 32.0324], + [10.8732, 32.1367], + [11.444, 32.3685], + [11.5641, 32.4655], + [11.4499, 32.638], + [11.5051, 33.1812], + [11.847, 33.0828], + [12.1224, 32.9213], + [12.3483, 32.8327], + [12.7298, 32.7986], + [13.3517, 32.9042], + [13.5715, 32.8028], + [13.7871, 32.7996], + [14.1755, 32.7177], + [14.4695, 32.519], + [14.7268, 32.4508], + [15.196, 32.3898], + [15.3705, 32.1591], + [15.3705, 31.9294], + [15.4904, 31.6649], + [15.7615, 31.3881], + [16.0446, 31.2755], + [16.3587, 31.2271], + [16.728, 31.2238], + [17.3659, 31.0866], + [17.8486, 30.9237], + [18.1753, 30.7861], + [18.6532, 30.4223], + [19.0568, 30.2662], + [19.3386, 30.2988], + [19.7489, 30.5109], + [20.0365, 30.8191], + [20.1467, 31.0456], + [20.1467, 31.2168], + [20.0222, 31.3968], + [19.9207, 31.7177], + [19.9401, 31.9577], + [20.0715, 32.1764], + [20.5627, 32.5578], + [21.0967, 32.7811], + [21.4546, 32.8126], + [21.6087, 32.9307], + [22.0962, 32.9231], + [22.3792, 32.8703], + [22.5138, 32.791], + [23.0864, 32.6465], + [23.1489, 32.4781], + [23.0956, 32.3236], + [23.2435, 32.2206], + [23.6697, 32.1833], + [23.9987, 32.0939], + [24.0907, 32.0058], + [24.5461, 31.9914], + [24.6703, 32.0324], + [24.9817, 31.9679], + [25.1509, 31.6565] + ] + ] + }, + "properties": { + "NAME": "Libya", + "NAME_LONG": "Libya", + "ADM0_A3": "LBY", + "ISO_A2": "LY", + "ISO_A3": "LBY", + "WB_A2": "LY", + "WB_A3": "LBY" + }, + "id": 131 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-60.8868, 14.0101], + [-60.9408, 13.7221], + [-61.0759, 13.8904], + [-60.8868, 14.0101] + ] + ] + }, + "properties": { + "NAME": "Saint Lucia", + "NAME_LONG": "Saint Lucia", + "ADM0_A3": "LCA", + "ISO_A2": "LC", + "ISO_A3": "LCA", + "WB_A2": "LC", + "WB_A3": "LCA" + }, + "id": 132 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [80.4683, 9.5814], + [80.7444, 9.3597], + [80.9307, 9.021], + [81.2317, 8.6511], + [81.2131, 8.4724], + [81.3657, 8.4822], + [81.4485, 8.128], + [81.6968, 7.753], + [81.7576, 7.5054], + [81.8807, 7.3271], + [81.8903, 7.0199], + [81.7756, 6.6104], + [81.6815, 6.4621], + [81.3621, 6.2254], + [81.1126, 6.1203], + [80.8091, 6.0351], + [80.5908, 5.9237], + [80.2476, 6.0092], + [80.1038, 6.1271], + [80.032, 6.2663], + [79.9696, 6.5353], + [79.863, 6.8072], + [79.8616, 7.0119], + [79.7847, 7.5898], + [79.7638, 7.9901], + [79.8272, 8.1365], + [79.8738, 8.5381], + [79.9417, 8.6425], + [79.9471, 8.9487], + [80.048, 9.0263], + [80.116, 9.2338], + [80.053, 9.3915], + [80.2722, 9.5041], + [80.1736, 9.6487], + [79.947, 9.6932], + [79.9885, 9.8229], + [80.2268, 9.8296], + [80.4683, 9.5814] + ] + ] + }, + "properties": { + "NAME": "Sri Lanka", + "NAME_LONG": "Sri Lanka", + "ADM0_A3": "LKA", + "ISO_A2": "LK", + "ISO_A3": "LKA", + "WB_A2": "LK", + "WB_A3": "LKA" + }, + "id": 134 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [28.9808, -28.909], + [29.3118, -29.0898], + [29.4359, -29.3424], + [29.3038, -29.4668], + [29.2786, -29.6136], + [29.1613, -29.6669], + [29.1442, -29.9197], + [28.86, -30.0664], + [28.3641, -30.1593], + [28.216, -30.2674], + [28.2182, -30.3874], + [28.0547, -30.6497], + [27.7436, -30.6003], + [27.4594, -30.3166], + [27.3662, -30.311], + [27.2659, -30.0333], + [27.1988, -29.9785], + [27.0149, -29.6256], + [27.2418, -29.549], + [27.4176, -29.3966], + [27.4533, -29.2916], + [27.665, -29.0657], + [27.7474, -28.9086], + [28.0187, -28.8568], + [28.155, -28.7023], + [28.4034, -28.6189], + [28.6665, -28.5972], + [28.6995, -28.6885], + [28.9808, -28.909] + ] + ] + }, + "properties": { + "NAME": "Lesotho", + "NAME_LONG": "Lesotho", + "ADM0_A3": "LSO", + "ISO_A2": "LS", + "ISO_A3": "LSO", + "WB_A2": "LS", + "WB_A3": "LSO" + }, + "id": 135 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [26.5945, 55.667], + [26.4455, 55.3375], + [26.7686, 55.3002], + [26.5789, 55.1185], + [26.3095, 55.1446], + [26.1386, 54.9689], + [25.7827, 54.8697], + [25.53, 54.3461], + [25.1935, 54.2437], + [24.8214, 54.0199], + [24.3779, 53.8868], + [24.2011, 53.9525], + [23.6426, 53.899], + [23.4856, 53.9393], + [23.4325, 54.1693], + [22.9733, 54.3754], + [22.7672, 54.3563], + [22.6804, 54.4532], + [22.8089, 54.8938], + [22.5807, 55.0576], + [22.0999, 55.0299], + [21.2676, 55.2487], + [21.2229, 55.5202], + [21.0744, 55.7449], + [21.0534, 56.0726], + [21.596, 56.3079], + [22.0941, 56.4174], + [23.0167, 56.3238], + [23.2884, 56.373], + [23.8581, 56.3344], + [24.1086, 56.2607], + [24.4472, 56.2605], + [24.8923, 56.4387], + [25.1092, 56.1831], + [25.6497, 56.1438], + [26.1786, 55.8496], + [26.2797, 55.7432], + [26.5945, 55.667] + ] + ] + }, + "properties": { + "NAME": "Lithuania", + "NAME_LONG": "Lithuania", + "ADM0_A3": "LTU", + "ISO_A2": "LT", + "ISO_A3": "LTU", + "WB_A2": "LT", + "WB_A3": "LTU" + }, + "id": 136 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [6.1175, 50.1205], + [6.2227, 49.8871], + [6.5001, 49.7945], + [6.3453, 49.4553], + [6.1361, 49.4953], + [5.9607, 49.4413], + [5.7907, 49.5378], + [5.8855, 49.6435], + [5.7149, 49.8819], + [5.9616, 50.1656], + [6.1175, 50.1205] + ] + ] + }, + "properties": { + "NAME": "Luxembourg", + "NAME_LONG": "Luxembourg", + "ADM0_A3": "LUX", + "ISO_A2": "LU", + "ISO_A3": "LUX", + "WB_A2": "LU", + "WB_A3": "LUX" + }, + "id": 137 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [27.3529, 57.5276], + [27.8403, 57.2906], + [27.6487, 56.8793], + [27.9189, 56.8059], + [27.9974, 56.6038], + [28.1261, 56.5478], + [28.2148, 56.2814], + [28.1489, 56.1424], + [27.9115, 56.1002], + [27.645, 55.9228], + [27.5927, 55.7942], + [26.9811, 55.8269], + [26.8228, 55.7061], + [26.5945, 55.667], + [26.2797, 55.7432], + [26.1786, 55.8496], + [25.6497, 56.1438], + [25.1092, 56.1831], + [24.8923, 56.4387], + [24.4472, 56.2605], + [24.1086, 56.2607], + [23.8581, 56.3344], + [23.2884, 56.373], + [23.0167, 56.3238], + [22.0941, 56.4174], + [21.596, 56.3079], + [21.0534, 56.0726], + [20.9691, 56.2535], + [21.0652, 56.8463], + [21.4016, 57.0375], + [21.4214, 57.2887], + [21.6992, 57.5553], + [21.9993, 57.6003], + [22.4837, 57.7425], + [22.6561, 57.5858], + [23.1302, 57.3708], + [23.2505, 57.1144], + [23.6952, 56.9673], + [23.9529, 57.0133], + [24.3792, 57.2302], + [24.4055, 57.3445], + [24.3062, 57.8682], + [25.167, 58.0587], + [25.6015, 57.9122], + [26.0027, 57.846], + [26.0247, 57.7744], + [26.4996, 57.5158], + [26.8385, 57.6099], + [27.3529, 57.5276] + ] + ] + }, + "properties": { + "NAME": "Latvia", + "NAME_LONG": "Latvia", + "ADM0_A3": "LVA", + "ISO_A2": "LV", + "ISO_A3": "LVA", + "WB_A2": "LV", + "WB_A3": "LVA" + }, + "id": 138 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-2.2226, 35.0893], + [-2.1938, 35.0036], + [-1.7877, 34.7567], + [-1.8711, 34.5966], + [-1.7507, 34.4942], + [-1.8096, 34.3725], + [-1.6748, 34.106], + [-1.7187, 33.8981], + [-1.6127, 33.5215], + [-1.6742, 33.238], + [-1.4995, 33.0602], + [-1.5588, 32.9336], + [-1.4233, 32.7424], + [-1.0475, 32.517], + [-1.218, 32.3926], + [-1.289, 32.1509], + [-1.2496, 32.0817], + [-2.5161, 32.1322], + [-2.9387, 32.0486], + [-2.8278, 31.7946], + [-3.6595, 31.6478], + [-3.6735, 31.3892], + [-3.815, 31.2205], + [-3.6359, 31.0957], + [-3.5547, 30.9559], + [-3.6595, 30.8371], + [-3.6455, 30.7113], + [-3.8342, 30.6275], + [-4.1557, 30.5855], + [-4.3724, 30.5086], + [-4.624, 30.285], + [-4.8756, 30.1802], + [-5.2739, 29.8866], + [-5.5395, 29.5232], + [-5.7212, 29.5232], + [-5.7562, 29.6141], + [-6.2733, 29.5791], + [-6.6996, 29.5162], + [-6.7835, 29.4463], + [-7.1469, 29.5092], + [-7.3496, 29.3834], + [-7.6195, 29.3894], + [-8.0697, 29.0793], + [-8.3835, 28.9058], + [-8.6824, 28.6659], + [-8.6824, 27.6614], + [-8.817, 27.6615], + [-8.7529, 27.1905], + [-9.0009, 27.0899], + [-9.4121, 27.088], + [-9.7344, 26.8604], + [-10.0317, 26.9102], + [-10.2505, 26.8604], + [-10.5503, 26.9903], + [-10.9218, 27.0098], + [-11.3916, 26.8829], + [-11.3369, 26.6329], + [-11.6362, 26.295], + [-11.7172, 26.1036], + [-12.0298, 26.0304], + [-12.1699, 25.6397], + [-12.31, 25.1104], + [-12.4301, 24.8302], + [-13.06, 24.4005], + [-13.31, 23.9806], + [-13.77, 23.7901], + [-13.8901, 23.6905], + [-14.02, 23.4103], + [-14.1699, 22.7599], + [-14.2202, 22.3096], + [-14.6299, 21.8604], + [-14.6699, 21.5997], + [-14.8398, 21.4503], + [-15.4599, 21.4503], + [-15.75, 21.4903], + [-16.73, 21.4698], + [-17.0137, 21.42], + [-16.9669, 21.7812], + [-16.8166, 22.1306], + [-16.7068, 22.2755], + [-16.5218, 22.3149], + [-16.3573, 22.5831], + [-16.2896, 22.8998], + [-16.173, 22.9735], + [-16.1351, 23.1851], + [-15.9672, 23.5129], + [-15.7726, 23.7878], + [-15.7681, 23.9599], + [-15.6201, 24.0263], + [-15.1719, 24.4941], + [-15.0148, 24.5624], + [-14.9078, 24.6855], + [-14.836, 24.9187], + [-14.8497, 25.2142], + [-14.7821, 25.4469], + [-14.621, 25.7836], + [-14.5195, 25.9238], + [-14.4928, 26.1327], + [-14.4101, 26.2601], + [-14.1571, 26.4338], + [-13.9237, 26.5009], + [-13.62, 26.6889], + [-13.5009, 26.8583], + [-13.4025, 27.1772], + [-13.3011, 27.3244], + [-13.1713, 27.685], + [-13.0614, 27.7429], + [-12.9681, 27.9146], + [-12.8389, 27.9704], + [-12.5135, 27.9954], + [-12.0614, 28.089], + [-11.4856, 28.3256], + [-11.3259, 28.5152], + [-11.0476, 28.7617], + [-10.5738, 28.9904], + [-10.1418, 29.4286], + [-10.053, 29.5999], + [-9.8202, 29.8389], + [-9.6551, 30.1269], + [-9.6116, 30.4044], + [-9.7001, 30.5427], + [-9.8867, 30.6867], + [-9.8202, 30.7923], + [-9.8475, 31.4024], + [-9.6673, 31.7311], + [-9.3661, 32.0263], + [-9.27, 32.2275], + [-9.2599, 32.5769], + [-8.8678, 32.8819], + [-8.6291, 33.1276], + [-8.2432, 33.4045], + [-8.1066, 33.4309], + [-7.4971, 33.65], + [-7.0995, 33.8403], + [-6.8221, 34.0396], + [-6.5579, 34.4177], + [-6.2921, 34.8808], + [-6.0239, 35.5012], + [-5.9272, 35.7807], + [-5.599, 35.8223], + [-5.3989, 35.9245], + [-5.3407, 35.8474], + [-5.2494, 35.5846], + [-5.0663, 35.4175], + [-4.7705, 35.241], + [-4.376, 35.1518], + [-3.9613, 35.2504], + [-3.7648, 35.2185], + [-3.6736, 35.2879], + [-3.4129, 35.1979], + [-2.9478, 35.3298], + [-2.9129, 35.2769], + [-2.9051, 35.1736], + [-2.5632, 35.0961], + [-2.4167, 35.1492], + [-2.2226, 35.0893] + ] + ] + }, + "properties": { + "NAME": "Morocco", + "NAME_LONG": "Morocco", + "ADM0_A3": "MAR", + "ISO_A2": "MA", + "ISO_A3": "MAR", + "WB_A2": "MA", + "WB_A3": "MAR" + }, + "id": 141 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [28.1995, 45.4618], + [28.0861, 46.0006], + [28.2461, 46.4279], + [28.2341, 46.6624], + [28.037, 47.0165], + [27.8066, 47.1446], + [27.5632, 47.4683], + [27.272, 47.715], + [27.048, 48.1222], + [26.8049, 48.2583], + [26.6179, 48.259], + [26.8428, 48.3937], + [27.1758, 48.3618], + [27.5038, 48.4724], + [27.7518, 48.452], + [28.1999, 48.2117], + [28.7993, 48.1118], + [28.9504, 47.9348], + [29.124, 47.976], + [29.2386, 47.756], + [29.1174, 47.5333], + [29.3589, 47.3527], + [29.5566, 47.324], + [29.5587, 46.9457], + [29.8436, 46.8541], + [29.9526, 46.7247], + [29.9161, 46.5188], + [30.0811, 46.3742], + [29.8478, 46.3415], + [29.7269, 46.4558], + [29.2007, 46.3571], + [29.1627, 46.5381], + [28.9458, 46.4548], + [28.9335, 46.259], + [29.0154, 46.1826], + [28.932, 45.9932], + [28.7576, 45.9612], + [28.7383, 45.8376], + [28.474, 45.6579], + [28.4809, 45.502], + [28.1995, 45.4618] + ] + ] + }, + "properties": { + "NAME": "Moldova", + "NAME_LONG": "Moldova", + "ADM0_A3": "MDA", + "ISO_A2": "MD", + "ISO_A3": "MDA", + "WB_A2": "MD", + "WB_A3": "MDA" + }, + "id": 143 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [49.3517, -12.0905], + [49.2492, -12.1803], + [49.3494, -12.2985], + [49.5394, -12.3782], + [49.5632, -12.6168], + [49.8643, -12.8805], + [49.9421, -13.0339], + [49.9727, -13.3313], + [50.1429, -13.7831], + [50.1909, -14.4566], + [50.2837, -14.8792], + [50.4766, -15.1951], + [50.5039, -15.3162], + [50.4299, -15.6003], + [50.2415, -15.9583], + [50.0389, -15.8595], + [49.9011, -15.4223], + [49.7503, -15.436], + [49.6384, -15.5446], + [49.7337, -15.9057], + [49.7026, -16.115], + [49.8457, -16.2121], + [49.8495, -16.5524], + [49.7232, -16.7081], + [49.7783, -16.8556], + [49.6245, -16.8857], + [49.4313, -17.2839], + [49.5041, -17.663], + [49.3592, -18.424], + [49.0769, -19.0656], + [48.9859, -19.3788], + [48.8596, -19.6847], + [48.8237, -19.9028], + [48.5623, -20.5771], + [48.4556, -21.0141], + [48.2018, -21.7962], + [47.9006, -22.4811], + [47.8338, -22.901], + [47.6195, -23.5906], + [47.5687, -23.8526], + [47.3384, -24.3243], + [47.3123, -24.4859], + [47.1375, -24.9093], + [46.9647, -25.0657], + [46.6537, -25.1839], + [46.3866, -25.1648], + [46.2376, -25.1982], + [45.7742, -25.4081], + [45.4922, -25.5737], + [45.1361, -25.5842], + [44.8347, -25.344], + [44.3695, -25.2568], + [44.1872, -25.067], + [44.0288, -24.999], + [43.8399, -24.5058], + [43.7067, -24.4062], + [43.6563, -24.1853], + [43.6416, -23.6389], + [43.758, -23.454], + [43.6286, -23.3393], + [43.5832, -23.0759], + [43.3567, -22.8297], + [43.2229, -22.2548], + [43.2952, -22.1661], + [43.2468, -22.0351], + [43.3362, -21.7688], + [43.4727, -21.6721], + [43.4727, -21.4052], + [43.5869, -21.2748], + [43.8128, -21.2243], + [43.9015, -20.8829], + [44.0364, -20.7255], + [44.1258, -20.4983], + [44.2547, -20.3761], + [44.4793, -19.9128], + [44.3709, -19.774], + [44.4596, -19.4177], + [44.2275, -19.0546], + [44.2573, -18.8039], + [44.1859, -18.6108], + [44.0497, -18.4265], + [44.001, -17.9379], + [44.0357, -17.7695], + [43.9292, -17.6017], + [43.9431, -17.4557], + [44.4307, -16.7004], + [44.4006, -16.3728], + [44.4528, -16.1867], + [44.8543, -16.2254], + [45.0402, -16.1181], + [45.2664, -15.9239], + [45.3794, -15.9738], + [45.6384, -15.943], + [45.6939, -15.7831], + [46.0158, -15.7923], + [46.1442, -15.7037], + [46.293, -15.9407], + [46.3831, -15.8349], + [46.3327, -15.6301], + [46.8794, -15.225], + [46.9714, -15.1984], + [47.0747, -15.324], + [46.9671, -15.4923], + [47.2321, -15.4333], + [47.0579, -15.2162], + [47.2918, -14.9234], + [47.2899, -14.8469], + [47.4448, -14.6716], + [47.5034, -14.8469], + [47.4207, -14.9656], + [47.4824, -15.0803], + [47.7529, -14.6005], + [47.7095, -14.3696], + [47.8145, -14.216], + [47.9268, -14.2463], + [48.0448, -14.1516], + [47.9411, -14.0041], + [47.8758, -13.7843], + [47.9043, -13.6032], + [48.0313, -13.5172], + [48.1424, -13.5954], + [48.1813, -13.7468], + [48.332, -13.6614], + [48.4276, -13.5242], + [48.7474, -13.4116], + [48.8392, -13.2604], + [48.8435, -13.0808], + [48.9553, -12.8117], + [48.8662, -12.6371], + [48.9846, -12.3334], + [49.2015, -12.1467], + [49.3517, -12.0905] + ] + ] + }, + "properties": { + "NAME": "Madagascar", + "NAME_LONG": "Madagascar", + "ADM0_A3": "MDG", + "ISO_A2": "MG", + "ISO_A3": "MDG", + "WB_A2": "MG", + "WB_A3": "MDG" + }, + "id": 144 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-86.749, 20.5677], + [-86.9265, 20.3137], + [-87.0189, 20.3325], + [-86.9368, 20.5472], + [-86.749, 20.5677] + ] + ], + [ + [ + [-112.2816, 29.2255], + [-112.1956, 29.0213], + [-112.2747, 28.7684], + [-112.583, 28.8754], + [-112.4859, 28.9716], + [-112.4387, 29.2021], + [-112.2816, 29.2255] + ] + ], + [ + [ + [-113.4995, 29.5351], + [-113.1828, 29.2897], + [-113.1743, 29.1292], + [-113.354, 29.1707], + [-113.5891, 29.4096], + [-113.4995, 29.5351] + ] + ], + [ + [ + [-97.1393, 25.9658], + [-97.1652, 25.7233], + [-97.3194, 25.39], + [-97.459, 25.1794], + [-97.6514, 24.5159], + [-97.7167, 24.0081], + [-97.7685, 23.2601], + [-97.7423, 22.9721], + [-97.8894, 22.6254], + [-97.7743, 22.2535], + [-97.7606, 22.0959], + [-97.6105, 21.8358], + [-97.6576, 21.6365], + [-97.4968, 21.4006], + [-97.1972, 20.8102], + [-97.1505, 20.647], + [-96.676, 20.1579], + [-96.4561, 19.8688], + [-96.2783, 19.3146], + [-95.9772, 19.0583], + [-95.852, 18.7168], + [-95.7284, 18.7572], + [-95.4952, 18.7073], + [-95.2084, 18.7086], + [-95.0026, 18.5554], + [-94.8079, 18.5236], + [-94.5809, 18.1898], + [-94.4669, 18.1442], + [-94.2071, 18.1896], + [-93.4447, 18.4418], + [-92.9398, 18.4457], + [-92.681, 18.6229], + [-92.4051, 18.6711], + [-91.9481, 18.6912], + [-91.9907, 18.5393], + [-91.8291, 18.4773], + [-91.5444, 18.4492], + [-91.3328, 18.5734], + [-91.2655, 18.7357], + [-91.4312, 18.8801], + [-90.9355, 19.1631], + [-90.7301, 19.3759], + [-90.7095, 19.6875], + [-90.4778, 19.9221], + [-90.4899, 20.5341], + [-90.3601, 21.0004], + [-90.0995, 21.1641], + [-89.786, 21.2846], + [-89.1232, 21.3635], + [-88.7027, 21.4586], + [-88.4478, 21.5751], + [-88.2827, 21.5567], + [-88.1295, 21.616], + [-87.9621, 21.6001], + [-87.4741, 21.4671], + [-87.2382, 21.443], + [-86.9979, 21.5659], + [-86.828, 21.4333], + [-86.8151, 21.2048], + [-86.7416, 21.1641], + [-86.8753, 20.855], + [-87.0675, 20.6192], + [-87.235, 20.4926], + [-87.444, 20.1911], + [-87.4715, 19.8847], + [-87.6287, 19.7086], + [-87.6664, 19.5525], + [-87.4232, 19.558], + [-87.7234, 18.6812], + [-87.7712, 18.4064], + [-88.0778, 18.4986], + [-88.0022, 18.6901], + [-88.1039, 18.8027], + [-88.3038, 18.4814], + [-88.4892, 18.4845], + [-88.7364, 18.0519], + [-88.8803, 17.8885], + [-89.0494, 17.9992], + [-89.1605, 17.8143], + [-90.2597, 17.8153], + [-90.9909, 17.802], + [-90.992, 17.2519], + [-91.2904, 17.1891], + [-91.0669, 16.9182], + [-90.7353, 16.7466], + [-90.6482, 16.5296], + [-90.3988, 16.3476], + [-90.4857, 16.0707], + [-91.7238, 16.0688], + [-91.7519, 16.0463], + [-92.2047, 15.2895], + [-92.0738, 15.0737], + [-92.1542, 14.9959], + [-92.1617, 14.7023], + [-92.2462, 14.5463], + [-92.6999, 14.9991], + [-92.824, 15.1728], + [-92.9831, 15.2656], + [-93.2286, 15.5019], + [-93.656, 15.8393], + [-93.9434, 16.0106], + [-94.1278, 16.2209], + [-94.3636, 16.287], + [-94.4396, 16.1868], + [-94.6544, 16.3636], + [-94.7633, 16.2935], + [-94.8521, 16.4289], + [-95.2332, 16.1582], + [-95.4345, 15.9754], + [-95.9599, 15.8279], + [-96.2366, 15.6833], + [-96.556, 15.659], + [-96.8451, 15.7326], + [-97.266, 15.9359], + [-97.7727, 15.9795], + [-98.1238, 16.2092], + [-98.5682, 16.324], + [-98.7769, 16.5551], + [-98.8566, 16.5282], + [-99.3743, 16.6679], + [-99.7412, 16.7306], + [-99.9917, 16.9097], + [-101.0082, 17.253], + [-101.1822, 17.4125], + [-101.4558, 17.5263], + [-101.6445, 17.6683], + [-101.8111, 17.8903], + [-102.0367, 17.9907], + [-102.1906, 17.916], + [-102.5972, 18.0491], + [-102.7423, 18.067], + [-103.0244, 18.1858], + [-103.3616, 18.2668], + [-103.4984, 18.3335], + [-103.7002, 18.6543], + [-103.98, 18.8749], + [-104.3317, 19.0223], + [-104.4516, 19.1044], + [-104.8069, 19.2291], + [-105.0171, 19.3685], + [-105.0877, 19.5611], + [-105.2508, 19.6661], + [-105.5256, 20.0319], + [-105.5532, 20.2015], + [-105.6987, 20.4069], + [-105.5756, 20.4877], + [-105.3287, 20.5137], + [-105.2343, 20.6361], + [-105.3616, 20.7628], + [-105.5141, 20.7703], + [-105.3097, 21.0307], + [-105.2343, 21.061], + [-105.2431, 21.3421], + [-105.185, 21.443], + [-105.4141, 21.6011], + [-105.6323, 21.9557], + [-105.655, 22.2563], + [-105.8002, 22.6385], + [-106.032, 22.8301], + [-106.2203, 23.0519], + [-106.4298, 23.2304], + [-106.5228, 23.4075], + [-106.7932, 23.6324], + [-106.902, 23.8466], + [-107.0359, 23.9808], + [-107.3778, 24.2069], + [-107.6241, 24.4585], + [-107.8205, 24.5952], + [-107.9952, 24.6484], + [-108.0362, 24.7852], + [-108.1864, 24.9866], + [-108.1069, 25.1169], + [-108.3336, 25.161], + [-108.4508, 25.2694], + [-108.8878, 25.4897], + [-109.1161, 25.5363], + [-109.1712, 25.6487], + [-109.4405, 25.7934], + [-109.4333, 26.0217], + [-109.2681, 26.1799], + [-109.2557, 26.498], + [-109.5499, 26.728], + [-109.6944, 26.6782], + [-109.8563, 26.801], + [-109.917, 27.0601], + [-110.2876, 27.1484], + [-110.5548, 27.3848], + [-110.6267, 27.6085], + [-110.5866, 27.8371], + [-110.8082, 27.9278], + [-111.0591, 27.937], + [-111.2507, 28.052], + [-111.4735, 28.381], + [-111.7084, 28.4601], + [-111.8944, 28.7807], + [-112.1507, 28.963], + [-112.2635, 29.33], + [-112.506, 29.6169], + [-112.6864, 29.9078], + [-112.7515, 29.9243], + [-112.7532, 30.1859], + [-112.8707, 30.4285], + [-113.0799, 30.6704], + [-113.1288, 30.8124], + [-113.0487, 31.1567], + [-113.1169, 31.2176], + [-113.5489, 31.2957], + [-113.6596, 31.4975], + [-113.8757, 31.5967], + [-114.0289, 31.4915], + [-114.159, 31.4945], + [-114.5847, 31.7608], + [-114.828, 31.7898], + [-114.7806, 31.6558], + [-114.8529, 31.5266], + [-114.8887, 31.1629], + [-114.8324, 31.0067], + [-114.7203, 30.9411], + [-114.6985, 30.6372], + [-114.6295, 30.4248], + [-114.6603, 30.1833], + [-114.3922, 29.783], + [-114.2712, 29.7721], + [-113.7709, 29.4078], + [-113.4787, 28.9462], + [-113.2604, 28.8401], + [-113.103, 28.5046], + [-112.9024, 28.4753], + [-112.7938, 28.1903], + [-112.7732, 27.8639], + [-112.598, 27.6543], + [-112.3731, 27.5641], + [-112.1549, 27.162], + [-112.0112, 27.1168], + [-112.0172, 26.9785], + [-111.8181, 26.8962], + [-111.5601, 26.6957], + [-111.5691, 26.5762], + [-111.4422, 26.5175], + [-111.4616, 26.4001], + [-111.3183, 26.0737], + [-111.3603, 25.9641], + [-111.3071, 25.7792], + [-111.0263, 25.4586], + [-110.9045, 25.143], + [-110.7578, 25.0122], + [-110.657, 24.8069], + [-110.7386, 24.5546], + [-110.6818, 24.3607], + [-110.5624, 24.2125], + [-110.4021, 24.1755], + [-110.1728, 24.253], + [-110.0181, 24.1693], + [-109.9877, 24.0463], + [-109.6984, 23.7984], + [-109.6798, 23.6482], + [-109.4765, 23.5602], + [-109.4256, 23.2972], + [-109.5317, 23.1082], + [-109.7132, 23.0311], + [-109.8954, 22.8742], + [-110.0984, 23.0176], + [-110.1673, 23.3211], + [-110.3074, 23.541], + [-110.5773, 23.6816], + [-111.0397, 24.1042], + [-111.4444, 24.3244], + [-111.679, 24.5863], + [-111.8489, 24.6537], + [-111.9667, 24.7783], + [-112.088, 24.7734], + [-112.1425, 25.086], + [-112.0779, 25.2587], + [-112.076, 25.7134], + [-112.1983, 25.9951], + [-112.3435, 26.1781], + [-112.7284, 26.3702], + [-113.0607, 26.5991], + [-113.1431, 26.7577], + [-113.5039, 26.7934], + [-113.6371, 26.7255], + [-113.8164, 26.949], + [-114.0052, 26.9774], + [-114.1144, 27.1055], + [-114.4875, 27.2381], + [-114.5065, 27.4062], + [-114.7342, 27.5213], + [-114.8866, 27.6949], + [-114.9234, 27.8363], + [-114.4991, 27.7741], + [-114.3253, 27.8747], + [-114.1732, 27.8268], + [-114.0397, 28.0277], + [-114.1249, 28.2557], + [-114.0426, 28.4584], + [-114.1658, 28.647], + [-114.2718, 28.6588], + [-114.4023, 28.8602], + [-114.5299, 28.9255], + [-114.972, 29.3778], + [-115.1871, 29.4286], + [-115.2857, 29.5299], + [-115.4986, 29.6114], + [-115.6976, 29.7558], + [-115.8373, 30.3465], + [-116.0493, 30.4796], + [-116.068, 30.8132], + [-116.2497, 30.9568], + [-116.3094, 31.1485], + [-116.5301, 31.4403], + [-116.6756, 31.5526], + [-116.6197, 31.8576], + [-116.8423, 31.9865], + [-116.9483, 32.247], + [-117.025, 32.2769], + [-117.1251, 32.5317], + [-115.7941, 32.632], + [-114.7243, 32.7128], + [-114.8221, 32.5002], + [-113.9617, 32.2341], + [-112.3247, 31.728], + [-111.0671, 31.3336], + [-109.9663, 31.3272], + [-108.2148, 31.3274], + [-108.2151, 31.7778], + [-106.5172, 31.7738], + [-106.3585, 31.7175], + [-106.1643, 31.4478], + [-106.0047, 31.3969], + [-105.7682, 31.18], + [-105.5909, 31.0714], + [-105.3638, 30.8504], + [-105.0085, 30.677], + [-104.6816, 30.1929], + [-104.6805, 29.9423], + [-104.5308, 29.6679], + [-104.2672, 29.5266], + [-104.0573, 29.339], + [-103.7942, 29.2776], + [-103.6731, 29.1736], + [-103.3015, 29.0024], + [-103.148, 28.9851], + [-102.8831, 29.3438], + [-102.6835, 29.7437], + [-102.4061, 29.7773], + [-102.3022, 29.8894], + [-102.1093, 29.8021], + [-101.9722, 29.8182], + [-101.4093, 29.7658], + [-101.1636, 29.5013], + [-100.8161, 29.2708], + [-100.669, 29.1162], + [-100.6243, 28.9247], + [-100.3971, 28.5927], + [-100.2843, 28.2965], + [-100.0749, 28.1544], + [-99.8788, 27.9018], + [-99.8634, 27.8047], + [-99.7004, 27.6592], + [-99.5072, 27.5738], + [-99.4976, 27.3388], + [-99.432, 27.2076], + [-99.4617, 27.057], + [-99.2483, 26.8271], + [-99.1649, 26.5404], + [-99.0855, 26.4076], + [-98.7959, 26.3683], + [-98.6406, 26.2418], + [-98.3693, 26.194], + [-98.2227, 26.0754], + [-97.6796, 26.0346], + [-97.4254, 25.8549], + [-97.1393, 25.9658] + ] + ] + ] + }, + "properties": { + "NAME": "Mexico", + "NAME_LONG": "Mexico", + "ADM0_A3": "MEX", + "ISO_A2": "MX", + "ISO_A3": "MEX", + "WB_A2": "MX", + "WB_A3": "MEX" + }, + "id": 146 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [22.345, 42.3134], + [22.5311, 42.1291], + [22.8437, 42.0145], + [23.0096, 41.7164], + [22.9337, 41.5846], + [22.917, 41.3358], + [22.7513, 41.3152], + [22.7272, 41.1658], + [22.4218, 41.1146], + [22.1832, 41.1599], + [21.9091, 41.0975], + [21.737, 40.9192], + [21.5816, 40.8663], + [20.9653, 40.8494], + [20.7027, 40.9363], + [20.4777, 41.3196], + [20.5402, 41.4007], + [20.4442, 41.5497], + [20.5671, 41.8732], + [20.7505, 41.9068], + [20.7654, 42.0643], + [21.0985, 42.196], + [21.2378, 42.0974], + [21.3538, 42.216], + [21.5641, 42.2463], + [21.9415, 42.3331], + [22.345, 42.3134] + ] + ] + }, + "properties": { + "NAME": "Macedonia", + "NAME_LONG": "Macedonia", + "ADM0_A3": "MKD", + "ISO_A2": "MK", + "ISO_A3": "MKD", + "WB_A2": "MK", + "WB_A3": "MKD" + }, + "id": 148 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [4.2286, 19.1422], + [4.2319, 18.1531], + [4.2356, 16.9959], + [4.182, 16.8096], + [4.184, 16.4161], + [4.0606, 16.2983], + [3.9035, 15.8863], + [3.8712, 15.7148], + [3.5265, 15.496], + [3.5071, 15.354], + [3.073, 15.4272], + [3.0002, 15.3391], + [1.3315, 15.2836], + [0.9737, 14.9913], + [0.6701, 14.9397], + [0.5148, 14.9936], + [0.2185, 14.911], + [-0.2367, 15.0656], + [-0.3977, 15.0021], + [-0.4679, 15.0799], + [-0.7529, 15.0697], + [-1.0433, 14.8179], + [-1.3503, 14.715], + [-1.6969, 14.4961], + [-1.967, 14.4837], + [-2.0234, 14.1986], + [-2.1519, 14.1561], + [-2.4617, 14.2809], + [-2.8409, 14.043], + [-2.9281, 13.7996], + [-2.8952, 13.6516], + [-3.0675, 13.6068], + [-3.2597, 13.6583], + [-3.2486, 13.2928], + [-3.5969, 13.1994], + [-3.7986, 13.3471], + [-3.984, 13.3965], + [-4.3511, 13.1183], + [-4.2293, 12.949], + [-4.2119, 12.8192], + [-4.2972, 12.7121], + [-4.4825, 12.6463], + [-4.3869, 12.5302], + [-4.4516, 12.4353], + [-4.4061, 12.3075], + [-4.5855, 12.1972], + [-4.6537, 12.0691], + [-4.8068, 11.9963], + [-4.9537, 12.0051], + [-5.1678, 11.9437], + [-5.2682, 11.8431], + [-5.3078, 11.629], + [-5.2183, 11.4222], + [-5.3223, 11.1355], + [-5.4898, 11.0821], + [-5.4314, 10.8447], + [-5.5226, 10.4255], + [-5.8063, 10.4135], + [-6.0159, 10.1899], + [-6.1809, 10.2158], + [-6.2078, 10.6375], + [-6.28, 10.7233], + [-6.434, 10.6679], + [-6.5214, 10.5642], + [-6.6679, 10.6509], + [-6.7003, 10.3417], + [-6.9731, 10.3323], + [-6.9594, 10.1855], + [-7.347, 10.2479], + [-7.4662, 10.4295], + [-7.7086, 10.4025], + [-7.829, 10.2117], + [-7.9897, 10.162], + [-8.0157, 10.3393], + [-8.2289, 10.4234], + [-8.2955, 10.5374], + [-8.3111, 11.0008], + [-8.5058, 11.0528], + [-8.6969, 10.996], + [-8.4832, 11.2849], + [-8.5276, 11.4234], + [-8.679, 11.5298], + [-8.7129, 11.6401], + [-8.8472, 11.6579], + [-8.797, 11.9132], + [-8.9263, 12.0643], + [-8.9938, 12.3875], + [-9.3215, 12.4966], + [-9.3085, 12.345], + [-9.6282, 12.1702], + [-9.723, 12.0254], + [-9.8707, 12.0521], + [-10.2669, 12.2178], + [-10.3814, 12.1801], + [-10.7114, 11.8904], + [-10.8049, 12.096], + [-10.9098, 12.2001], + [-11.0523, 12.2025], + [-11.1912, 12.0144], + [-11.3513, 12.0404], + [-11.5078, 12.1916], + [-11.3884, 12.4039], + [-11.461, 12.6584], + [-11.4022, 12.7317], + [-11.4503, 13.0751], + [-11.5331, 13.1118], + [-11.6131, 13.3608], + [-11.7565, 13.3998], + [-11.9968, 13.5442], + [-12.0976, 13.7044], + [-11.9629, 13.9092], + [-12.0252, 14.0267], + [-11.9976, 14.1662], + [-12.1156, 14.3551], + [-12.2217, 14.3912], + [-12.1659, 14.6252], + [-12.2641, 14.7749], + [-11.974, 14.7798], + [-11.8371, 14.8931], + [-11.8457, 15.1791], + [-11.7271, 15.5412], + [-11.4096, 15.6022], + [-11.2982, 15.451], + [-11.0454, 15.2702], + [-10.9152, 15.1029], + [-10.7364, 15.4226], + [-10.3087, 15.4352], + [-10.1316, 15.3726], + [-9.8356, 15.3711], + [-9.6721, 15.4307], + [-9.4239, 15.4405], + [-9.3492, 15.4956], + [-8.327, 15.4953], + [-6.6739, 15.4947], + [-5.511, 15.4959], + [-5.3533, 16.312], + [-5.6233, 16.5278], + [-5.7565, 17.741], + [-5.8575, 18.6608], + [-5.9635, 19.6206], + [-6.1137, 20.9196], + [-6.2194, 21.8229], + [-6.3747, 23.1503], + [-6.4984, 24.2084], + [-6.5931, 24.9941], + [-4.8216, 24.9951], + [-3.4485, 24.106], + [-2.5232, 23.501], + [-1.83, 23.0478], + [-0.9636, 22.4813], + [-0.0104, 21.8582], + [1.1465, 21.1017], + [1.1453, 20.7959], + [1.644, 20.5227], + [1.6492, 20.4121], + [1.7781, 20.3043], + [2.0563, 20.215], + [2.1824, 20.2785], + [2.4004, 20.0566], + [2.946, 19.9417], + [3.2168, 19.7941], + [3.1994, 19.5538], + [3.2582, 19.4104], + [3.1027, 19.1536], + [3.3084, 18.9817], + [4.2286, 19.1422] + ] + ] + }, + "properties": { + "NAME": "Mali", + "NAME_LONG": "Mali", + "ADM0_A3": "MLI", + "ISO_A2": "ML", + "ISO_A3": "MLI", + "WB_A2": "ML", + "WB_A3": "MLI" + }, + "id": 149 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [98.5437, 11.799], + [98.549, 11.6217], + [98.4419, 11.5641], + [98.3821, 11.7762], + [98.5437, 11.799] + ] + ], + [ + [ + [97.5714, 16.2227], + [97.4593, 16.3014], + [97.4522, 16.4494], + [97.6063, 16.4835], + [97.5714, 16.2227] + ] + ], + [ + [ + [93.6836, 18.869], + [93.759, 18.7556], + [93.6453, 18.6793], + [93.4978, 18.8409], + [93.6836, 18.869] + ] + ], + [ + [ + [93.8031, 19.4874], + [93.9707, 19.4169], + [93.9658, 19.363], + [93.8569, 19.2789], + [93.7738, 19.2988], + [93.6418, 19.492], + [93.8031, 19.4874] + ] + ], + [ + [ + [101.159, 21.5527], + [101.0034, 21.406], + [100.7254, 21.3117], + [100.6376, 21.0697], + [100.5157, 20.8865], + [100.2113, 20.6974], + [100.0993, 20.3178], + [99.942, 20.444], + [99.7696, 20.3284], + [99.5029, 20.3452], + [99.5258, 20.1962], + [99.2957, 20.0625], + [99.1175, 20.1178], + [99.0168, 20.041], + [99.0088, 19.8459], + [98.8078, 19.8065], + [98.5326, 19.6759], + [98.2179, 19.708], + [98.0179, 19.7894], + [98.0083, 19.6391], + [97.8398, 19.5553], + [97.7671, 19.3975], + [97.8108, 19.1122], + [97.6578, 18.9257], + [97.7191, 18.8646], + [97.7518, 18.5825], + [97.4381, 18.4881], + [97.5606, 18.3283], + [97.7541, 17.969], + [97.6855, 17.8807], + [97.7689, 17.6792], + [97.9828, 17.5054], + [98.1006, 17.3026], + [98.3133, 17.052], + [98.4362, 17.0116], + [98.5246, 16.8504], + [98.4567, 16.7232], + [98.6316, 16.4631], + [98.657, 16.3016], + [98.9033, 16.3634], + [98.8072, 16.1105], + [98.6587, 16.1163], + [98.5838, 15.977], + [98.5431, 15.7354], + [98.5599, 15.3553], + [98.4034, 15.3601], + [98.283, 15.29], + [98.165, 15.1258], + [98.2433, 14.8051], + [98.4182, 14.6076], + [98.5477, 14.3777], + [98.9453, 14.0691], + [99.1525, 13.7149], + [99.1902, 13.2295], + [99.1021, 13.1713], + [99.2141, 12.7347], + [99.3938, 12.5898], + [99.387, 12.4659], + [99.4663, 12.126], + [99.63, 11.8158], + [99.2433, 11.1977], + [99.213, 11.1083], + [99.0015, 10.9576], + [98.7667, 10.6888], + [98.7913, 10.5204], + [98.7474, 10.3505], + [98.5899, 10.0421], + [98.4907, 10.2043], + [98.5285, 10.3642], + [98.4593, 10.7154], + [98.7124, 10.9244], + [98.7593, 11.2689], + [98.698, 11.388], + [98.6843, 11.6828], + [98.6104, 11.7313], + [98.7202, 11.9643], + [98.552, 12.2796], + [98.6912, 12.7104], + [98.5838, 13.0266], + [98.5785, 13.1868], + [98.48, 13.2839], + [98.4317, 13.4787], + [98.2448, 13.7141], + [98.1033, 13.701], + [98.0617, 14.0101], + [98.1086, 14.1326], + [97.7948, 14.8803], + [97.8071, 15.175], + [97.7264, 15.3396], + [97.7948, 15.4079], + [97.7271, 15.8432], + [97.5823, 16.0091], + [97.6499, 16.2838], + [97.6266, 16.4376], + [97.6519, 16.5072], + [97.5484, 16.5382], + [97.4026, 16.5169], + [97.2554, 16.6979], + [97.199, 16.9975], + [97.0686, 17.2514], + [96.8494, 17.213], + [96.9109, 17.0248], + [96.801, 16.7374], + [96.6159, 16.518], + [96.3364, 16.4394], + [96.2853, 16.366], + [96.0676, 16.3102], + [95.98, 16.2231], + [95.7555, 16.1452], + [95.6647, 15.9492], + [95.3965, 15.7164], + [95.1736, 15.7778], + [95.1152, 15.8939], + [94.9756, 15.7641], + [94.8587, 15.7826], + [94.8396, 15.9621], + [94.6587, 15.8545], + [94.5623, 15.9619], + [94.6838, 16.2092], + [94.507, 16.1896], + [94.34, 15.9962], + [94.2151, 16.1577], + [94.2731, 16.5382], + [94.4027, 16.7883], + [94.3789, 16.8869], + [94.5725, 17.3111], + [94.5952, 17.6155], + [94.4474, 17.9733], + [94.481, 18.0942], + [94.3897, 18.3627], + [94.2796, 18.4802], + [94.2124, 18.7418], + [94.1336, 18.8465], + [93.9304, 18.8586], + [93.7503, 18.9704], + [93.4978, 19.3139], + [93.7969, 19.2352], + [93.9299, 19.2998], + [93.9873, 19.3867], + [93.9844, 19.4641], + [93.9146, 19.4728], + [93.7396, 19.6175], + [93.6014, 19.7834], + [93.5659, 19.9166], + [93.4136, 19.9775], + [93.3748, 20.0885], + [93.1481, 19.9943], + [92.7721, 20.2015], + [92.9012, 20.3081], + [92.8316, 20.4789], + [92.6532, 20.4183], + [92.4536, 20.6685], + [92.3811, 20.7001], + [92.2651, 21.0611], + [92.175, 21.1756], + [92.1837, 21.3172], + [92.3227, 21.4619], + [92.4231, 21.3637], + [92.6429, 21.2984], + [92.5902, 21.4955], + [92.5759, 21.9776], + [92.7081, 22.148], + [92.8539, 22.0241], + [92.9672, 22.0627], + [93.169, 22.2469], + [93.0992, 22.512], + [93.0795, 22.7727], + [93.3749, 23.1297], + [93.4324, 23.6473], + [93.303, 24.0411], + [93.4567, 23.96], + [93.6124, 24.0091], + [93.9979, 23.917], + [94.0997, 23.8426], + [94.1903, 23.9953], + [94.29, 24.3168], + [94.5163, 24.705], + [94.5895, 24.7473], + [94.7086, 25.0259], + [94.6891, 25.1385], + [94.5501, 25.2453], + [94.608, 25.3946], + [94.8508, 25.5628], + [95.0088, 25.7371], + [95.0006, 25.922], + [95.1395, 26.0299], + [95.0463, 26.248], + [95.0406, 26.4756], + [95.1191, 26.6042], + [95.3927, 26.6918], + [95.778, 26.9951], + [95.8889, 27.027], + [96.0132, 27.1908], + [96.1426, 27.2575], + [96.7589, 27.3417], + [96.8653, 27.1716], + [97.0268, 27.0915], + [97.1348, 27.1273], + [96.9051, 27.4084], + [96.8702, 27.6191], + [97.2229, 27.8997], + [97.3335, 27.8942], + [97.3235, 28.2175], + [97.4367, 28.2864], + [97.5277, 28.5295], + [97.6996, 28.488], + [97.74, 28.3826], + [97.8975, 28.3553], + [98.1187, 28.1408], + [98.1071, 27.9731], + [98.2947, 27.5366], + [98.4, 27.6757], + [98.6793, 27.5773], + [98.7042, 27.3042], + [98.6726, 27.1756], + [98.7492, 26.7714], + [98.7055, 26.1749], + [98.5455, 26.1056], + [98.6924, 25.879], + [98.4613, 25.7947], + [98.3326, 25.567], + [98.1502, 25.6131], + [98.1084, 25.3889], + [97.7375, 25.0905], + [97.6639, 24.8298], + [97.5361, 24.745], + [97.5196, 24.4308], + [97.6399, 24.4393], + [97.7184, 24.2777], + [97.7077, 24.1253], + [97.5165, 23.9428], + [97.6371, 23.8636], + [97.89, 24.0226], + [98.1815, 24.1187], + [98.5033, 24.1213], + [98.6633, 23.9695], + [98.6637, 23.7969], + [98.7779, 23.7693], + [98.8574, 23.6043], + [98.9107, 23.2976], + [99.0264, 23.1604], + [99.2166, 23.0574], + [99.351, 23.1193], + [99.5346, 22.9493], + [99.3079, 22.7196], + [99.3578, 22.4955], + [99.1664, 22.2046], + [99.1664, 22.1321], + [99.4386, 22.1242], + [99.9424, 22.0455], + [99.9503, 21.7212], + [100.0823, 21.6845], + [100.09, 21.5289], + [100.1871, 21.4279], + [100.3265, 21.5243], + [100.4567, 21.455], + [100.6217, 21.4691], + [100.797, 21.6261], + [101.0687, 21.762], + [101.159, 21.5527] + ] + ] + ] + }, + "properties": { + "NAME": "Myanmar", + "NAME_LONG": "Myanmar", + "ADM0_A3": "MMR", + "ISO_A2": "MM", + "ISO_A3": "MMR", + "WB_A2": "MM", + "WB_A3": "MMR" + }, + "id": 151 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [19.1953, 43.5328], + [19.6187, 43.1682], + [19.9292, 43.1139], + [20.3454, 42.8274], + [20.0763, 42.7734], + [20.065, 42.5468], + [19.8196, 42.4665], + [19.605, 42.5848], + [19.272, 42.1807], + [19.3749, 42.0947], + [19.3651, 41.8524], + [19.1703, 41.938], + [19.1392, 42.0424], + [18.7786, 42.2715], + [18.6838, 42.4588], + [18.4964, 42.4163], + [18.4374, 42.5592], + [18.5384, 42.6183], + [18.4528, 42.9934], + [18.639, 43.0202], + [18.6795, 43.2495], + [18.8991, 43.3519], + [18.911, 43.5073], + [19.1953, 43.5328] + ] + ] + }, + "properties": { + "NAME": "Montenegro", + "NAME_LONG": "Montenegro", + "ADM0_A3": "MNE", + "ISO_A2": "ME", + "ISO_A3": "MNE", + "WB_A2": "ME", + "WB_A3": "MNE" + }, + "id": 152 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [116.6843, 49.8233], + [116.0378, 48.8701], + [116.0282, 48.7675], + [115.8004, 48.5304], + [115.8093, 48.274], + [115.5145, 48.1221], + [115.5619, 47.9332], + [115.8527, 47.7056], + [115.9729, 47.7091], + [116.2439, 47.8629], + [116.4997, 47.8364], + [116.8533, 47.8721], + [117.0697, 47.8102], + [117.3171, 47.6541], + [117.7417, 47.9776], + [118.1825, 48.0282], + [118.5423, 47.9662], + [118.7674, 47.7562], + [119.0835, 47.6616], + [119.1576, 47.5177], + [119.7, 47.1595], + [119.9029, 46.8424], + [119.9042, 46.7089], + [119.6801, 46.5916], + [119.3169, 46.6117], + [118.8162, 46.7582], + [118.7201, 46.6767], + [118.2383, 46.7154], + [117.6962, 46.5123], + [117.3938, 46.5714], + [117.3017, 46.3501], + [116.8046, 46.3829], + [116.6036, 46.3093], + [116.3572, 46.1056], + [116.2132, 45.9082], + [116.1699, 45.7091], + [116.012, 45.6786], + [115.6378, 45.4444], + [114.9389, 45.3738], + [114.7373, 45.425], + [114.5337, 45.3855], + [114.4189, 45.2015], + [114.0553, 44.9406], + [113.8893, 44.9083], + [113.6351, 44.7463], + [113.1049, 44.7944], + [112.6142, 44.9088], + [112.4413, 45.0524], + [112.0115, 45.0875], + [111.7385, 44.9663], + [111.4064, 44.4165], + [111.5194, 44.1886], + [111.8388, 43.9388], + [111.9334, 43.6966], + [111.7538, 43.6632], + [111.5972, 43.5234], + [110.9337, 43.2878], + [110.4067, 42.7686], + [110.0749, 42.6435], + [109.6673, 42.549], + [109.4851, 42.4493], + [108.9945, 42.4495], + [108.7969, 42.3984], + [108.1774, 42.4543], + [106.7678, 42.2866], + [105.8686, 41.9935], + [105.2745, 41.7555], + [105.0148, 41.5961], + [104.8923, 41.6448], + [104.498, 41.6658], + [104.5008, 41.8706], + [103.721, 41.7556], + [103.0735, 42.0045], + [102.0342, 42.1846], + [101.6376, 42.5154], + [101.2187, 42.5298], + [100.017, 42.6765], + [99.4745, 42.5642], + [98.6622, 42.6436], + [97.1933, 42.7873], + [96.3506, 42.7409], + [96.2943, 42.9333], + [95.9085, 43.2145], + [95.8328, 43.4089], + [95.5103, 43.9791], + [95.3275, 44.0067], + [95.3794, 44.2871], + [95.0368, 44.255], + [94.6982, 44.3435], + [94.3385, 44.5121], + [94.195, 44.6543], + [93.9751, 44.66], + [93.714, 44.8746], + [93.5253, 44.9513], + [92.7527, 45.038], + [92.4751, 44.9975], + [92.0094, 45.0762], + [91.663, 45.0595], + [91.135, 45.1979], + [90.9055, 45.186], + [90.6511, 45.4931], + [90.7108, 45.7522], + [91.0024, 46.0218], + [90.8962, 46.302], + [91.0475, 46.5664], + [91.0048, 46.7404], + [90.8282, 46.9823], + [90.7121, 47.0147], + [90.4687, 47.3089], + [90.4412, 47.493], + [90.3274, 47.623], + [90.0829, 47.7561], + [90.0446, 47.8798], + [89.7513, 47.8243], + [89.5418, 48.031], + [89.0456, 47.993], + [88.5808, 48.212], + [88.5651, 48.343], + [87.9428, 48.5995], + [88.0338, 48.7291], + [87.8059, 48.8006], + [87.7569, 48.9204], + [87.8163, 49.1658], + [88.144, 49.2707], + [88.2, 49.4543], + [88.3788, 49.4758], + [88.8706, 49.436], + [89.1607, 49.5027], + [89.2522, 49.6294], + [89.6823, 49.7083], + [89.6239, 49.9027], + [89.9694, 49.9671], + [90.0512, 50.0842], + [90.4752, 50.2146], + [90.6839, 50.2162], + [91.012, 50.4253], + [91.4157, 50.4614], + [91.7498, 50.6841], + [92.1588, 50.6891], + [92.3017, 50.8434], + [92.6498, 50.6741], + [92.9617, 50.7779], + [93.0114, 50.6233], + [93.5363, 50.5847], + [94.2376, 50.5652], + [94.3443, 50.2492], + [94.6245, 50.0152], + [94.9216, 50.0459], + [95.0764, 49.9455], + [95.4806, 49.8922], + [95.867, 50.015], + [96.3729, 49.8861], + [96.9692, 49.8867], + [97.3017, 49.7255], + [97.5427, 49.8227], + [97.5666, 49.9168], + [97.8474, 49.9301], + [98.1056, 50.0639], + [98.2625, 50.2838], + [98.2935, 50.5186], + [98.0233, 50.642], + [97.9902, 50.8356], + [97.8064, 51.0011], + [98.0509, 51.4664], + [98.2204, 51.4752], + [98.3322, 51.7183], + [98.7111, 51.8451], + [98.8556, 52.1067], + [99.3239, 51.9342], + [99.6793, 51.8887], + [100.006, 51.7317], + [100.5109, 51.7269], + [101.3878, 51.4506], + [101.4821, 51.4729], + [102.0512, 51.3836], + [102.1839, 51.3239], + [102.1465, 51.0976], + [102.2168, 50.7989], + [102.3294, 50.7188], + [102.3276, 50.5455], + [102.5866, 50.4153], + [103.2531, 50.215], + [103.6014, 50.1335], + [103.7853, 50.1861], + [104.1217, 50.1483], + [104.4058, 50.3005], + [105.3286, 50.4765], + [105.9849, 50.3998], + [106.2449, 50.2903], + [106.6565, 50.327], + [106.9737, 50.1964], + [107.2249, 49.9971], + [107.9465, 49.9335], + [108.0327, 49.5893], + [108.2505, 49.5224], + [108.5381, 49.3274], + [109.2867, 49.3385], + [109.5162, 49.2559], + [109.7285, 49.2665], + [110.1814, 49.162], + [110.3712, 49.2417], + [110.7314, 49.1377], + [111.3385, 49.3647], + [112.0302, 49.4119], + [112.4322, 49.5292], + [112.7337, 49.4928], + [113.0437, 49.5886], + [113.2124, 49.822], + [113.5797, 50.0199], + [113.8498, 50.0807], + [114.2863, 50.2769], + [114.7537, 50.2362], + [114.9974, 50.1443], + [115.3687, 49.8954], + [115.7509, 49.885], + [116.2176, 50.0138], + [116.5754, 49.9218], + [116.6843, 49.8233] + ] + ] + }, + "properties": { + "NAME": "Mongolia", + "NAME_LONG": "Mongolia", + "ADM0_A3": "MNG", + "ISO_A2": "MN", + "ISO_A3": "MNG", + "WB_A2": "MN", + "WB_A3": "MNG" + }, + "id": 153 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [32.8931, -26.8461], + [32.3522, -26.8603], + [32.1139, -26.84], + [32.1174, -26.5823], + [32.0399, -26.2837], + [32.0575, -26.0412], + [31.9492, -25.9581], + [31.9119, -25.7853], + [31.9916, -25.6502], + [31.9866, -24.4231], + [31.8695, -24.1638], + [31.8558, -23.9465], + [31.7412, -23.8368], + [31.6423, -23.5879], + [31.5215, -23.4156], + [31.5363, -23.157], + [31.2889, -22.3973], + [31.4338, -22.302], + [32.4085, -21.2903], + [32.3398, -21.1341], + [32.4972, -20.8981], + [32.4691, -20.6868], + [32.5131, -20.5646], + [32.6465, -20.558], + [32.8452, -20.2867], + [32.8853, -20.103], + [33.002, -19.927], + [33.0328, -19.7842], + [32.8163, -19.6521], + [32.7688, -19.3636], + [32.8623, -19.1181], + [32.6911, -19.0143], + [32.6914, -18.8342], + [32.8852, -18.7878], + [32.8707, -18.5358], + [32.9964, -18.4671], + [33.035, -18.3329], + [32.9523, -18.233], + [32.9371, -18.0471], + [33.0225, -17.3615], + [32.8288, -16.9351], + [32.9334, -16.8158], + [32.8934, -16.7124], + [32.6987, -16.6868], + [32.6718, -16.5998], + [32.2905, -16.4518], + [31.9103, -16.4289], + [31.6861, -16.2072], + [31.4046, -16.1623], + [31.26, -16.0235], + [31.1141, -15.9969], + [30.9731, -16.062], + [30.8574, -15.9981], + [30.4026, -16.0012], + [30.3963, -15.636], + [30.3692, -15.3747], + [30.2879, -15.2789], + [30.2145, -14.9815], + [30.8158, -14.7682], + [31.4109, -14.6336], + [31.6584, -14.5196], + [32.2274, -14.339], + [33.2027, -14.0139], + [33.4392, -14.3807], + [33.6042, -14.524], + [33.8889, -14.4882], + [34.3441, -14.3874], + [34.5018, -14.5757], + [34.5842, -14.9845], + [34.5691, -15.2712], + [34.4101, -15.4813], + [34.404, -15.6468], + [34.2471, -15.7941], + [34.2332, -15.8898], + [34.3877, -16.037], + [34.3852, -16.1865], + [34.5247, -16.3008], + [35.0045, -16.8146], + [35.0958, -16.8173], + [35.0813, -17.1241], + [35.305, -17.1042], + [35.2782, -16.7007], + [35.1319, -16.5376], + [35.2144, -16.4842], + [35.2588, -16.2715], + [35.3746, -16.141], + [35.6976, -16.1075], + [35.7957, -16.005], + [35.8405, -15.4172], + [35.7845, -15.1952], + [35.9043, -14.8869], + [35.853, -14.6675], + [35.5228, -14.2627], + [35.4557, -14.137], + [35.0841, -13.7042], + [34.8944, -13.5347], + [34.6406, -13.4924], + [34.5453, -13.3257], + [34.5493, -13.1591], + [34.4945, -12.6874], + [34.354, -12.1995], + [34.5638, -11.8309], + [34.6512, -11.57], + [34.9646, -11.5736], + [35.6548, -11.5783], + [35.8264, -11.4135], + [35.9397, -11.4341], + [36.1681, -11.5787], + [36.1997, -11.7015], + [36.4949, -11.6809], + [36.563, -11.7313], + [36.747, -11.6665], + [36.8201, -11.5736], + [37.0444, -11.5957], + [37.2266, -11.6938], + [37.4278, -11.7226], + [37.7837, -11.5589], + [37.8752, -11.3191], + [38.0708, -11.2558], + [38.2566, -11.2771], + [38.4923, -11.4135], + [38.6542, -11.2758], + [38.8963, -11.1677], + [39.2866, -11.1542], + [39.4827, -10.9992], + [39.7605, -10.9431], + [40.0081, -10.8111], + [40.4369, -10.4748], + [40.5321, -10.5095], + [40.6021, -10.8205], + [40.4961, -10.9557], + [40.5065, -11.1874], + [40.3488, -11.3171], + [40.4714, -11.4168], + [40.4295, -11.6415], + [40.5369, -11.9968], + [40.4803, -12.4843], + [40.6468, -12.7553], + [40.5601, -12.8139], + [40.5679, -13.3666], + [40.5427, -13.6589], + [40.6506, -14.0319], + [40.6096, -14.1386], + [40.7461, -14.2709], + [40.8425, -14.4645], + [40.8355, -14.8023], + [40.6709, -14.9767], + [40.6817, -15.233], + [40.5733, -15.505], + [40.4258, -15.615], + [40.1646, -15.9156], + [39.9924, -16.2224], + [39.8133, -16.277], + [39.6983, -16.5322], + [39.2044, -16.817], + [39.0905, -16.9838], + [38.5955, -17.0944], + [38.0399, -17.3278], + [37.9089, -17.3552], + [37.3609, -17.65], + [37.0864, -17.8691], + [36.8874, -18.1891], + [36.552, -18.486], + [36.2443, -18.8832], + [36.1086, -18.8059], + [35.6623, -19.133], + [35.3399, -19.5207], + [35.1268, -19.705], + [34.8801, -19.8634], + [34.7576, -19.8691], + [34.7769, -20.135], + [34.6799, -20.3469], + [34.7424, -20.5502], + [34.9933, -20.7302], + [35.1201, -20.9664], + [35.058, -21.1376], + [35.1516, -21.4539], + [35.271, -21.6441], + [35.3358, -22.0891], + [35.4968, -22.1415], + [35.5422, -22.4099], + [35.4927, -22.5649], + [35.5208, -22.9076], + [35.6009, -22.9436], + [35.4785, -23.1769], + [35.3948, -23.8419], + [35.5432, -23.8632], + [35.4935, -24.1105], + [35.1065, -24.5979], + [34.6489, -24.8128], + [34.4827, -24.8513], + [33.7292, -25.1051], + [33.1531, -25.3658], + [32.8727, -25.5439], + [32.687, -25.8859], + [32.5915, -25.969], + [32.6808, -26.1882], + [32.9295, -26.266], + [32.8931, -26.8461] + ] + ] + }, + "properties": { + "NAME": "Mozambique", + "NAME_LONG": "Mozambique", + "ADM0_A3": "MOZ", + "ISO_A2": "MZ", + "ISO_A3": "MOZ", + "WB_A2": "MZ", + "WB_A3": "MOZ" + }, + "id": 155 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-12.2641, 14.7749], + [-12.3825, 14.846], + [-12.4715, 14.998], + [-12.6903, 15.0924], + [-12.8568, 15.222], + [-12.9643, 15.5092], + [-13.0896, 15.497], + [-13.2378, 15.6234], + [-13.3137, 15.9221], + [-13.4849, 16.155], + [-13.8113, 16.1221], + [-13.9641, 16.2301], + [-14.0156, 16.3559], + [-14.3433, 16.6367], + [-14.9309, 16.6434], + [-15.1251, 16.5827], + [-15.4909, 16.5645], + [-15.6722, 16.4814], + [-16.0538, 16.4954], + [-16.1323, 16.5548], + [-16.3274, 16.4746], + [-16.3811, 16.2467], + [-16.466, 16.1741], + [-16.5423, 15.8088], + [-16.5392, 16.2672], + [-16.4592, 16.6439], + [-16.3431, 16.9423], + [-16.1726, 17.2624], + [-16.049, 17.6672], + [-16.0242, 17.9602], + [-16.0694, 18.484], + [-16.132, 18.6286], + [-16.2046, 18.9827], + [-16.2828, 19.1304], + [-16.4746, 19.2708], + [-16.3592, 19.4158], + [-16.3846, 19.5739], + [-16.2338, 19.7936], + [-16.298, 19.9225], + [-16.214, 20.0333], + [-16.1997, 20.2152], + [-16.2951, 20.3306], + [-16.3912, 20.5695], + [-16.5525, 20.5764], + [-16.665, 20.6706], + [-16.7454, 20.8686], + [-16.9312, 21.1515], + [-17.0159, 21.0312], + [-17.0569, 20.7669], + [-17.0812, 20.8747], + [-16.9588, 21.3329], + [-16.2677, 21.3329], + [-15.0023, 21.3332], + [-14.0155, 21.3333], + [-13.0152, 21.3334], + [-13.0933, 22.4955], + [-13.1655, 22.7527], + [-13.0152, 23.018], + [-12.6194, 23.2708], + [-12.3539, 23.3225], + [-12.0153, 23.4952], + [-12.0153, 25.1633], + [-12.0153, 25.9949], + [-10.5044, 25.995], + [-8.7072, 25.995], + [-8.6808, 26.0131], + [-8.6824, 27.2854], + [-7.297, 26.4707], + [-6.1399, 25.7902], + [-4.8216, 24.9951], + [-6.5931, 24.9941], + [-6.4984, 24.2084], + [-6.3747, 23.1503], + [-6.2194, 21.8229], + [-6.1137, 20.9196], + [-5.9635, 19.6206], + [-5.8575, 18.6608], + [-5.7565, 17.741], + [-5.6233, 16.5278], + [-5.3533, 16.312], + [-5.511, 15.4959], + [-6.6739, 15.4947], + [-8.327, 15.4953], + [-9.3492, 15.4956], + [-9.4239, 15.4405], + [-9.6721, 15.4307], + [-9.8356, 15.3711], + [-10.1316, 15.3726], + [-10.3087, 15.4352], + [-10.7364, 15.4226], + [-10.9152, 15.1029], + [-11.0454, 15.2702], + [-11.2982, 15.451], + [-11.4096, 15.6022], + [-11.7271, 15.5412], + [-11.8457, 15.1791], + [-11.8371, 14.8931], + [-11.974, 14.7798], + [-12.2641, 14.7749] + ] + ] + }, + "properties": { + "NAME": "Mauritania", + "NAME_LONG": "Mauritania", + "ADM0_A3": "MRT", + "ISO_A2": "MR", + "ISO_A3": "MRT", + "WB_A2": "MR", + "WB_A3": "MRT" + }, + "id": 156 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [57.7139, -20.0961], + [57.7957, -20.2228], + [57.6722, -20.4797], + [57.5036, -20.5173], + [57.3578, -20.4274], + [57.3706, -20.2605], + [57.5325, -20.0248], + [57.7139, -20.0961] + ] + ] + }, + "properties": { + "NAME": "Mauritius", + "NAME_LONG": "Mauritius", + "ADM0_A3": "MUS", + "ISO_A2": "MU", + "ISO_A3": "MUS", + "WB_A2": "MU", + "WB_A3": "MUS" + }, + "id": 158 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.9646, -11.5736], + [34.6512, -11.57], + [34.5638, -11.8309], + [34.354, -12.1995], + [34.4945, -12.6874], + [34.5493, -13.1591], + [34.5453, -13.3257], + [34.6406, -13.4924], + [34.8944, -13.5347], + [35.0841, -13.7042], + [35.4557, -14.137], + [35.5228, -14.2627], + [35.853, -14.6675], + [35.9043, -14.8869], + [35.7845, -15.1952], + [35.8405, -15.4172], + [35.7957, -16.005], + [35.6976, -16.1075], + [35.3746, -16.141], + [35.2588, -16.2715], + [35.2144, -16.4842], + [35.1319, -16.5376], + [35.2782, -16.7007], + [35.305, -17.1042], + [35.0813, -17.1241], + [35.0958, -16.8173], + [35.0045, -16.8146], + [34.5247, -16.3008], + [34.3852, -16.1865], + [34.3877, -16.037], + [34.2332, -15.8898], + [34.2471, -15.7941], + [34.404, -15.6468], + [34.4101, -15.4813], + [34.5691, -15.2712], + [34.5842, -14.9845], + [34.5018, -14.5757], + [34.3441, -14.3874], + [33.8889, -14.4882], + [33.6042, -14.524], + [33.4392, -14.3807], + [33.2027, -14.0139], + [33.0494, -13.9966], + [32.8594, -13.8081], + [32.7228, -13.5734], + [32.8743, -13.4432], + [32.9951, -13.1909], + [33.005, -12.893], + [32.9411, -12.7699], + [33.0248, -12.6127], + [33.3732, -12.5185], + [33.5181, -12.3718], + [33.3301, -12.2983], + [33.2549, -12.0726], + [33.3127, -11.8987], + [33.3026, -11.6097], + [33.2303, -11.4166], + [33.3909, -11.1648], + [33.3037, -11.0346], + [33.3191, -10.8181], + [33.501, -10.7692], + [33.6742, -10.577], + [33.5293, -10.3186], + [33.5333, -10.2312], + [33.31, -10.0127], + [33.3656, -9.8988], + [33.2167, -9.7271], + [32.9747, -9.6013], + [32.9209, -9.4079], + [33.1729, -9.511], + [33.3003, -9.4922], + [33.4042, -9.6049], + [33.7346, -9.5841], + [33.8653, -9.6696], + [34.0127, -9.4775], + [34.2881, -9.7085], + [34.4833, -9.9462], + [34.5853, -10.3007], + [34.5811, -10.5397], + [34.6724, -10.7395], + [34.593, -11.0162], + [34.7591, -11.3375], + [34.8866, -11.3754], + [34.9646, -11.5736] + ] + ] + }, + "properties": { + "NAME": "Malawi", + "NAME_LONG": "Malawi", + "ADM0_A3": "MWI", + "ISO_A2": "MW", + "ISO_A3": "MWI", + "WB_A2": "MW", + "WB_A3": "MWI" + }, + "id": 159 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [111.4124, 2.3874], + [111.3081, 2.4521], + [111.299, 2.7027], + [111.381, 2.6979], + [111.4124, 2.3874] + ] + ], + [ + [ + [117.907, 4.1567], + [117.7036, 4.1634], + [117.7854, 4.2466], + [117.907, 4.1567] + ] + ], + [ + [ + [102.0731, 6.2575], + [102.3157, 6.1904], + [102.4998, 5.8974], + [103.1203, 5.3813], + [103.4486, 4.7951], + [103.4942, 4.3366], + [103.3952, 4.1163], + [103.438, 3.975], + [103.3387, 3.7582], + [103.4822, 3.5118], + [103.4281, 3.3672], + [103.4346, 2.9618], + [103.4736, 2.851], + [103.6384, 2.6721], + [103.7671, 2.6238], + [103.949, 2.3399], + [103.9764, 2.1924], + [104.1209, 1.954], + [104.2552, 1.6378], + [104.2947, 1.4465], + [104.2192, 1.3462], + [103.8397, 1.4765], + [103.6814, 1.4418], + [103.5041, 1.2899], + [103.3674, 1.5384], + [102.8045, 1.8601], + [102.7219, 1.8471], + [102.489, 2.0929], + [102.188, 2.2164], + [101.9888, 2.3945], + [101.8582, 2.4194], + [101.7831, 2.5759], + [101.5423, 2.6613], + [101.2831, 2.9112], + [101.3728, 3.0023], + [101.2976, 3.2746], + [101.1084, 3.4739], + [101.0405, 3.622], + [100.7207, 3.8681], + [100.7761, 4.0865], + [100.6326, 4.1555], + [100.5654, 4.3192], + [100.6326, 4.5329], + [100.5774, 4.8543], + [100.4539, 4.9089], + [100.3645, 5.0843], + [100.43, 5.3029], + [100.344, 5.6693], + [100.3491, 6.0127], + [100.1273, 6.4423], + [100.1668, 6.6951], + [100.2808, 6.6889], + [100.3874, 6.5221], + [100.8056, 6.4148], + [100.8221, 6.2599], + [101.0817, 6.2465], + [101.0711, 5.9198], + [100.9672, 5.781], + [101.1054, 5.6376], + [101.249, 5.787], + [101.5347, 5.906], + [101.6504, 5.7826], + [101.8005, 5.7399], + [101.9129, 5.8593], + [101.9594, 6.0116], + [102.06, 6.0948], + [102.0731, 6.2575] + ] + ], + [ + [ + [117.5671, 4.1597], + [117.4129, 4.2001], + [117.1647, 4.3331], + [116.4941, 4.3249], + [116.3107, 4.3834], + [116.1258, 4.3789], + [116.0206, 4.2709], + [115.8788, 4.3521], + [115.6469, 4.1691], + [115.5485, 3.6053], + [115.6006, 3.4412], + [115.5176, 3.3572], + [115.4641, 3.0308], + [115.2421, 3.0416], + [115.0669, 2.8282], + [115.0565, 2.6086], + [115.1265, 2.4792], + [114.9196, 2.2957], + [114.7788, 2.2472], + [114.753, 2.1348], + [114.8453, 2.025], + [114.832, 1.9025], + [114.6714, 1.821], + [114.669, 1.694], + [114.5006, 1.436], + [114.3557, 1.502], + [114.1604, 1.4248], + [113.9097, 1.4425], + [113.6495, 1.2333], + [113.5034, 1.3145], + [113.089, 1.4313], + [113.0234, 1.537], + [112.4705, 1.5677], + [112.1801, 1.449], + [112.1001, 1.1549], + [111.9101, 1.114], + [111.8231, 1.0085], + [111.3518, 1.0139], + [111.1976, 1.0752], + [110.8527, 0.9972], + [110.784, 0.9082], + [110.5539, 0.8514], + [110.2566, 1.0391], + [110.1704, 1.1745], + [109.9763, 1.2877], + [109.6773, 1.5729], + [109.6472, 1.7619], + [109.5284, 1.89], + [109.6453, 2.0832], + [109.6546, 1.937], + [109.9277, 1.6923], + [110.3665, 1.7159], + [110.7267, 1.5474], + [110.9679, 1.5032], + [111.2113, 2.0739], + [111.2085, 2.3889], + [111.3655, 2.3408], + [111.4483, 2.3724], + [111.4046, 2.484], + [111.4403, 2.6801], + [111.6696, 2.8431], + [112.0135, 2.8859], + [112.9744, 3.1442], + [113.2776, 3.4842], + [113.4343, 3.7532], + [113.7368, 4.0013], + [113.9468, 4.2738], + [113.9988, 4.6011], + [114.2456, 4.4814], + [114.2967, 4.3167], + [114.4199, 4.2601], + [114.5866, 4.0214], + [114.7669, 4.1318], + [114.8364, 4.3572], + [114.7518, 4.7385], + [114.9817, 4.8891], + [115.0298, 4.8206], + [115.0355, 4.6212], + [115.113, 4.3824], + [115.3244, 4.3146], + [115.2727, 4.6368], + [115.1462, 4.9085], + [115.3584, 4.9028], + [115.557, 5.0672], + [115.5608, 5.2078], + [115.3596, 5.3196], + [115.5501, 5.5402], + [115.8486, 5.56], + [115.9199, 5.7468], + [116.0508, 5.8423], + [116.2013, 6.218], + [116.5032, 6.4952], + [116.645, 6.7169], + [116.7464, 7.0104], + [116.9738, 6.7081], + [117.0293, 6.91], + [117.1438, 7.0037], + [117.3089, 6.6288], + [117.5098, 6.6022], + [117.7438, 6.3899], + [117.723, 6.2546], + [117.6056, 6.1818], + [117.6546, 5.9587], + [117.884, 5.9547], + [118.0169, 6.061], + [118.1252, 5.8639], + [117.938, 5.8145], + [117.9649, 5.6862], + [118.1267, 5.6935], + [118.1763, 5.8052], + [118.4107, 5.7961], + [118.7366, 5.5478], + [118.9709, 5.4283], + [119.2048, 5.4433], + [119.2743, 5.3612], + [119.2671, 5.2011], + [119.1559, 5.1062], + [118.6815, 4.9443], + [118.509, 4.9311], + [118.3572, 5.0388], + [118.1365, 4.8823], + [118.3335, 4.6516], + [118.5996, 4.5192], + [118.5428, 4.36], + [117.8923, 4.257], + [117.6712, 4.426], + [117.5671, 4.1597] + ] + ], + [ + [ + [117.2624, 7.202], + [117.0641, 7.1267], + [117.0641, 7.2707], + [117.1577, 7.3407], + [117.2624, 7.202] + ] + ] + ] + }, + "properties": { + "NAME": "Malaysia", + "NAME_LONG": "Malaysia", + "ADM0_A3": "MYS", + "ISO_A2": "MY", + "ISO_A3": "MYS", + "WB_A2": "MY", + "WB_A3": "MYS" + }, + "id": 160 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [23.3817, -17.6411], + [24.2205, -17.4795], + [24.6844, -17.4924], + [24.958, -17.5517], + [25.2598, -17.7941], + [24.9581, -17.8009], + [24.7253, -17.8959], + [24.5778, -18.0444], + [24.4216, -17.9565], + [24.1831, -18.0294], + [23.6454, -18.466], + [23.5792, -18.4679], + [23.5015, -18.2375], + [23.3115, -18.0098], + [22.9814, -18.02], + [21.4757, -18.2995], + [20.9751, -18.3193], + [20.9776, -19.7508], + [20.9807, -20.7507], + [20.9848, -21.964], + [20.972, -22.0007], + [19.9783, -22.0007], + [19.9798, -23.2045], + [19.9814, -24.7525], + [19.9823, -25.9424], + [19.9827, -26.8955], + [19.9817, -28.4223], + [19.5688, -28.5312], + [19.4829, -28.6782], + [19.2486, -28.7716], + [19.2889, -28.871], + [19.0817, -28.9594], + [18.9545, -28.8667], + [18.7457, -28.8399], + [18.3976, -28.8989], + [18.1665, -28.9019], + [17.9133, -28.7813], + [17.4036, -28.7043], + [17.3282, -28.4561], + [17.4021, -28.3678], + [17.3457, -28.2276], + [17.192, -28.2088], + [17.0978, -28.0312], + [16.893, -28.0826], + [16.7644, -28.2832], + [16.7693, -28.4426], + [16.4871, -28.5729], + [16.4194, -28.607], + [15.9111, -28.1713], + [15.6843, -27.9499], + [15.5207, -27.6337], + [15.2953, -27.3224], + [15.2342, -26.9654], + [15.083, -26.6952], + [15.1681, -26.6028], + [15.1288, -26.4576], + [14.9663, -26.3352], + [14.979, -26.0588], + [14.8428, -25.7636], + [14.877, -25.5781], + [14.8013, -25.2628], + [14.8533, -25.0642], + [14.7808, -24.8034], + [14.6019, -24.5624], + [14.6123, -24.4457], + [14.4736, -24.1591], + [14.4953, -23.5785], + [14.4343, -23.4152], + [14.492, -23.3092], + [14.4102, -22.9708], + [14.522, -22.9234], + [14.5086, -22.548], + [14.3865, -22.2765], + [14.1372, -21.9464], + [13.9523, -21.7839], + [13.8317, -21.4565], + [13.6027, -21.1581], + [13.3872, -20.8161], + [13.1546, -20.1542], + [13.0709, -20.1142], + [13.0054, -19.9355], + [12.7046, -19.4108], + [12.5674, -19.1023], + [12.2869, -18.6977], + [12.0319, -18.5054], + [11.9373, -18.2321], + [11.8491, -18.1432], + [11.7176, -17.5463], + [11.7661, -17.2527], + [12.0953, -17.1397], + [12.2426, -17.2248], + [12.5546, -17.2356], + [12.8872, -17.0298], + [13.1663, -16.9511], + [13.3637, -16.9642], + [13.5213, -17.1219], + [13.8844, -17.3385], + [13.9427, -17.4082], + [14.2074, -17.388], + [15.0572, -17.3883], + [16.3398, -17.3887], + [17.6226, -17.389], + [18.4536, -17.3899], + [18.762, -17.7477], + [19.0206, -17.8223], + [19.1721, -17.8012], + [19.4213, -17.8594], + [19.6726, -17.8427], + [20.0343, -17.8959], + [20.3362, -17.8549], + [20.5655, -17.9852], + [20.8062, -18.0314], + [21.2166, -17.9306], + [21.3812, -18.0126], + [22.2305, -17.8576], + [23.3817, -17.6411] + ] + ] + }, + "properties": { + "NAME": "Namibia", + "NAME_LONG": "Namibia", + "ADM0_A3": "NAM", + "ISO_A2": "NA", + "ISO_A3": "NAM", + "WB_A2": "NA", + "WB_A3": "NAM" + }, + "id": 161 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [167.9719, -21.3753], + [168.1375, -21.4318], + [168.1291, -21.6013], + [167.9582, -21.6384], + [167.8568, -21.5007], + [167.9719, -21.3753] + ] + ], + [ + [ + [167.3013, -20.7131], + [167.2847, -20.9018], + [167.3855, -20.9417], + [167.4234, -21.1476], + [167.1463, -21.073], + [167.0674, -20.9964], + [167.1853, -20.7882], + [167.3013, -20.7131] + ] + ], + [ + [ + [164.0135, -20.0831], + [164.2443, -20.2853], + [164.3158, -20.2348], + [164.4956, -20.3002], + [164.8278, -20.5827], + [165.0615, -20.7341], + [165.2175, -20.7644], + [165.4131, -20.9492], + [165.4067, -21.0554], + [165.7544, -21.3023], + [166.0667, -21.4699], + [166.4113, -21.7055], + [166.5734, -21.8749], + [166.9388, -22.0798], + [167.0288, -22.2268], + [166.9116, -22.385], + [166.7777, -22.392], + [166.6328, -22.277], + [166.4784, -22.2872], + [166.1445, -22.0466], + [165.6777, -21.7614], + [165.2908, -21.5768], + [165.1165, -21.3977], + [164.9204, -21.2851], + [164.8008, -21.0822], + [164.6566, -20.9459], + [164.3656, -20.7581], + [164.2866, -20.5759], + [164.1926, -20.5258], + [164.1325, -20.301], + [164.0402, -20.301], + [164.0135, -20.0831] + ] + ] + ] + }, + "properties": { + "NAME": "New Caledonia", + "NAME_LONG": "New Caledonia", + "ADM0_A3": "NCL", + "ISO_A2": "NC", + "ISO_A3": "NCL", + "WB_A2": "NC", + "WB_A3": "NCL" + }, + "id": 162 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [14.9799, 22.9957], + [15.172, 21.9934], + [15.1804, 21.5073], + [15.301, 21.4013], + [15.6093, 20.9507], + [15.5442, 20.799], + [15.954, 20.3746], + [15.963, 20.3192], + [15.736, 19.9035], + [15.5911, 18.2651], + [15.472, 16.9167], + [15.4524, 16.8762], + [14.369, 15.7496], + [13.8339, 15.0196], + [13.7605, 14.8664], + [13.7644, 14.7191], + [13.6483, 14.6494], + [13.6243, 14.5213], + [13.4823, 14.4836], + [13.4492, 14.3801], + [13.6073, 13.7041], + [13.36, 13.7144], + [13.2281, 13.548], + [12.8838, 13.496], + [12.6831, 13.2889], + [12.5611, 13.2428], + [12.4727, 13.0642], + [12.0576, 13.1168], + [11.8528, 13.2454], + [11.44, 13.3644], + [10.675, 13.3751], + [10.1615, 13.2672], + [9.9301, 13.146], + [9.6407, 12.8225], + [9.2694, 12.8098], + [8.9428, 12.8472], + [8.6793, 12.9236], + [8.5335, 13.0646], + [8.3978, 13.0754], + [8.0775, 13.31], + [7.7556, 13.3271], + [7.392, 13.1125], + [7.1982, 13.1174], + [7.0901, 13.0064], + [6.9066, 13.0069], + [6.7787, 13.1303], + [6.6725, 13.3212], + [6.3689, 13.6263], + [6.1204, 13.6541], + [5.5543, 13.8734], + [5.3741, 13.8553], + [5.2735, 13.7525], + [4.9251, 13.7331], + [4.8569, 13.7741], + [4.5067, 13.6947], + [4.2485, 13.4941], + [4.1258, 13.473], + [4.0888, 12.9962], + [3.9291, 12.7504], + [3.6457, 12.5285], + [3.6515, 12.269], + [3.6039, 11.9056], + [3.667, 11.7597], + [3.5964, 11.6958], + [3.5035, 11.83], + [3.2927, 11.9187], + [3.2551, 12.0188], + [2.8443, 12.3992], + [2.3612, 12.2189], + [2.3902, 11.8965], + [2.0709, 12.3069], + [2.245, 12.4242], + [2.109, 12.7056], + [1.9717, 12.7242], + [1.8261, 12.6042], + [1.5359, 12.6475], + [1.114, 12.9962], + [0.9718, 13.0673], + [0.9835, 13.3684], + [1.0482, 13.4419], + [0.951, 13.5832], + [0.6207, 13.68], + [0.3392, 14.1258], + [0.3888, 14.2516], + [0.1886, 14.4477], + [0.1529, 14.5467], + [0.2197, 14.7312], + [0.2185, 14.911], + [0.5148, 14.9936], + [0.6701, 14.9397], + [0.9737, 14.9913], + [1.3315, 15.2836], + [3.0002, 15.3391], + [3.073, 15.4272], + [3.5071, 15.354], + [3.5265, 15.496], + [3.8712, 15.7148], + [3.9035, 15.8863], + [4.0606, 16.2983], + [4.184, 16.4161], + [4.182, 16.8096], + [4.2356, 16.9959], + [4.2319, 18.1531], + [4.2286, 19.1422], + [5.7493, 19.4337], + [5.8376, 19.4786], + [6.61, 20.1429], + [7.4827, 20.8726], + [8.6345, 21.5515], + [9.7233, 22.1934], + [11.0844, 22.9958], + [11.9689, 23.5174], + [13.4823, 23.1797], + [13.5996, 23.119], + [14.2016, 22.6232], + [14.2317, 22.6179], + [14.9799, 22.9957] + ] + ] + }, + "properties": { + "NAME": "Niger", + "NAME_LONG": "Niger", + "ADM0_A3": "NER", + "ISO_A2": "NE", + "ISO_A3": "NER", + "WB_A2": "NE", + "WB_A3": "NER" + }, + "id": 163 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [13.6073, 13.7041], + [14.0649, 13.078], + [14.1774, 12.5456], + [14.1798, 12.3856], + [14.5144, 12.3235], + [14.6699, 12.1674], + [14.5465, 11.7186], + [14.6214, 11.6298], + [14.5938, 11.4964], + [14.1655, 11.2383], + [13.9823, 11.2763], + [13.7548, 11.0167], + [13.7444, 10.9305], + [13.5663, 10.679], + [13.4349, 10.1534], + [13.248, 10.0794], + [13.2127, 9.8701], + [13.2629, 9.8017], + [13.1955, 9.5422], + [12.9824, 9.4746], + [12.862, 9.3829], + [12.8884, 9.2267], + [12.8221, 9.0968], + [12.8057, 8.8315], + [12.6604, 8.6593], + [12.377, 8.5951], + [12.4039, 8.4965], + [12.25, 8.4188], + [12.1978, 7.9752], + [12.055, 7.7839], + [12.025, 7.5966], + [11.8447, 7.3964], + [11.7802, 7.2411], + [11.8813, 7.102], + [11.6232, 6.9323], + [11.5098, 6.6123], + [11.3195, 6.4373], + [11.0971, 6.4491], + [11.0559, 6.7004], + [10.8775, 6.8161], + [10.8319, 6.9452], + [10.6025, 7.0581], + [10.496, 6.8747], + [10.2384, 6.871], + [10.1195, 6.9944], + [9.8746, 6.7877], + [9.7698, 6.7737], + [9.693, 6.5313], + [9.5881, 6.5027], + [9.3274, 6.2985], + [9.2733, 6.2028], + [8.8559, 5.8475], + [8.8193, 5.7035], + [8.8937, 5.6218], + [8.7989, 5.1596], + [8.5942, 4.8153], + [8.2984, 4.5533], + [8.032, 4.5588], + [7.5584, 4.5253], + [7.1697, 4.6059], + [7.1782, 4.5015], + [6.9695, 4.3746], + [6.0967, 4.2781], + [5.9463, 4.3352], + [5.5949, 4.6365], + [5.4863, 4.835], + [5.3636, 5.1716], + [5.3402, 5.3439], + [5.198, 5.5015], + [5.0073, 5.8492], + [4.7171, 6.1636], + [4.4055, 6.3589], + [4.1258, 6.4103], + [3.5414, 6.4548], + [3.3845, 6.3977], + [2.7038, 6.3684], + [2.7786, 6.6988], + [2.7151, 6.9798], + [2.7739, 7.0508], + [2.7206, 7.5866], + [2.7272, 7.7933], + [2.6722, 7.8896], + [2.735, 8.2119], + [2.6971, 8.3207], + [2.7448, 8.4983], + [2.7229, 8.7723], + [2.7692, 9.057], + [2.9831, 9.0606], + [3.0913, 9.1264], + [3.1514, 9.2886], + [3.1286, 9.4296], + [3.3386, 9.6782], + [3.3171, 9.7817], + [3.5131, 9.8466], + [3.5996, 9.9687], + [3.6556, 10.1748], + [3.5724, 10.2857], + [3.6521, 10.4358], + [3.7569, 10.4053], + [3.8374, 10.5999], + [3.7313, 10.825], + [3.7221, 11.1123], + [3.4833, 11.3923], + [3.5049, 11.5566], + [3.5964, 11.6958], + [3.667, 11.7597], + [3.6039, 11.9056], + [3.6515, 12.269], + [3.6457, 12.5285], + [3.9291, 12.7504], + [4.0888, 12.9962], + [4.1258, 13.473], + [4.2485, 13.4941], + [4.5067, 13.6947], + [4.8569, 13.7741], + [4.9251, 13.7331], + [5.2735, 13.7525], + [5.3741, 13.8553], + [5.5543, 13.8734], + [6.1204, 13.6541], + [6.3689, 13.6263], + [6.6725, 13.3212], + [6.7787, 13.1303], + [6.9066, 13.0069], + [7.0901, 13.0064], + [7.1982, 13.1174], + [7.392, 13.1125], + [7.7556, 13.3271], + [8.0775, 13.31], + [8.3978, 13.0754], + [8.5335, 13.0646], + [8.6793, 12.9236], + [8.9428, 12.8472], + [9.2694, 12.8098], + [9.6407, 12.8225], + [9.9301, 13.146], + [10.1615, 13.2672], + [10.675, 13.3751], + [11.44, 13.3644], + [11.8528, 13.2454], + [12.0576, 13.1168], + [12.4727, 13.0642], + [12.5611, 13.2428], + [12.6831, 13.2889], + [12.8838, 13.496], + [13.2281, 13.548], + [13.36, 13.7144], + [13.6073, 13.7041] + ] + ] + }, + "properties": { + "NAME": "Nigeria", + "NAME_LONG": "Nigeria", + "ADM0_A3": "NGA", + "ISO_A2": "NG", + "ISO_A3": "NGA", + "WB_A2": "NG", + "WB_A3": "NGA" + }, + "id": 165 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-83.1304, 14.997], + [-83.4141, 14.8277], + [-83.2992, 14.7712], + [-83.1918, 14.3869], + [-83.2186, 14.2503], + [-83.4313, 13.9567], + [-83.4938, 13.7377], + [-83.5701, 13.2871], + [-83.5077, 12.9028], + [-83.5891, 12.6321], + [-83.7672, 12.5467], + [-83.6637, 12.2561], + [-83.7132, 12.0493], + [-83.8361, 11.8712], + [-83.6999, 11.8499], + [-83.653, 11.6115], + [-83.7611, 11.5571], + [-83.868, 11.3749], + [-83.8373, 11.1425], + [-83.7521, 10.9822], + [-83.6444, 10.9259], + [-83.663, 10.807], + [-83.9333, 10.7181], + [-84.0227, 10.7872], + [-84.6765, 11.0704], + [-84.9314, 10.9419], + [-85.6312, 11.1962], + [-85.7017, 11.0809], + [-85.7858, 11.1123], + [-85.928, 11.3107], + [-86.3365, 11.6114], + [-86.4964, 11.7594], + [-86.7975, 12.2185], + [-87.0714, 12.3887], + [-87.4549, 12.7438], + [-87.6465, 12.8724], + [-87.5839, 13.0573], + [-87.435, 12.9224], + [-87.314, 12.9816], + [-87.0847, 12.9959], + [-86.9484, 13.0697], + [-86.9108, 13.2396], + [-86.7019, 13.3142], + [-86.7662, 13.7453], + [-86.5417, 13.7821], + [-86.4101, 13.749], + [-86.0967, 14.0441], + [-85.8242, 13.8477], + [-85.4317, 14.1328], + [-85.0296, 14.589], + [-85.002, 14.7407], + [-84.7702, 14.8051], + [-84.6993, 14.6747], + [-84.4827, 14.6195], + [-84.0236, 14.7583], + [-83.8695, 14.7771], + [-83.3903, 15.031], + [-83.1304, 14.997] + ] + ] + }, + "properties": { + "NAME": "Nicaragua", + "NAME_LONG": "Nicaragua", + "ADM0_A3": "NIC", + "ISO_A2": "NI", + "ISO_A3": "NIC", + "WB_A2": "NI", + "WB_A3": "NIC" + }, + "id": 166 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [4.2215, 51.368], + [3.927, 51.2063], + [3.6351, 51.2878], + [3.3917, 51.2468], + [3.3494, 51.3752], + [3.5414, 51.4167], + [3.7555, 51.3501], + [4.2215, 51.368] + ] + ], + [ + [ + [7.1946, 53.245], + [7.1836, 52.9661], + [7.0367, 52.6474], + [6.7018, 52.6191], + [6.6951, 52.4756], + [7.0482, 52.3651], + [7.0263, 52.2306], + [6.7659, 52.1084], + [6.7167, 51.8993], + [6.3825, 51.8276], + [6.2252, 51.8625], + [5.928, 51.8067], + [6.1933, 51.5093], + [6.1836, 51.3357], + [5.9829, 51.0747], + [6.0637, 50.9075], + [5.9949, 50.7499], + [5.6407, 50.815], + [5.8405, 51.1389], + [5.4716, 51.2881], + [5.2154, 51.2587], + [5.0681, 51.3745], + [4.7312, 51.4856], + [4.5252, 51.4759], + [4.2611, 51.3694], + [3.9431, 51.4504], + [3.8272, 51.3911], + [3.5354, 51.4592], + [3.5604, 51.5946], + [4.118, 51.6307], + [4.01, 51.9801], + [4.1419, 52.0056], + [4.5081, 52.3364], + [4.7455, 52.9676], + [4.9131, 52.9056], + [5.3792, 53.0974], + [5.5916, 53.3028], + [5.9808, 53.4061], + [6.7302, 53.4606], + [7.1946, 53.245] + ] + ] + ] + }, + "properties": { + "NAME": "Netherlands", + "NAME_LONG": "Netherlands", + "ADM0_A3": "NLD", + "ISO_A2": "NL", + "ISO_A3": "NLD", + "WB_A2": "NL", + "WB_A3": "NLD" + }, + "id": 168 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [5.676, 60.4729], + [5.324, 60.5468], + [5.6877, 60.6766], + [5.676, 60.4729] + ] + ], + [ + [ + [8.9652, 63.6562], + [9.1068, 63.5333], + [8.5036, 63.4342], + [8.5453, 63.6025], + [8.9652, 63.6562] + ] + ], + [ + [ + [13.9675, 68.2696], + [13.7188, 68.0776], + [13.4857, 68.1068], + [13.6367, 68.2943], + [13.9675, 68.2696] + ] + ], + [ + [ + [15.1546, 68.4387], + [14.7632, 68.259], + [14.6535, 68.4285], + [15.1546, 68.4387] + ] + ], + [ + [ + [15.9079, 68.9573], + [15.9331, 68.6841], + [16.5055, 68.8032], + [16.4815, 68.5475], + [16.0935, 68.5335], + [15.904, 68.3699], + [15.2166, 68.3354], + [15.2388, 68.5643], + [15.5138, 68.6362], + [15.4592, 68.7961], + [15.6766, 68.9627], + [15.9079, 68.9573] + ] + ], + [ + [ + [15.1929, 68.9342], + [15.3942, 68.7311], + [15.0627, 68.5785], + [14.4172, 68.6195], + [15.1929, 68.9342] + ] + ], + [ + [ + [17.7357, 69.5517], + [18.0786, 69.425], + [17.9231, 69.3323], + [17.9583, 69.1805], + [16.8233, 69.0544], + [16.9153, 69.3176], + [17.2634, 69.4784], + [17.7357, 69.5517] + ] + ], + [ + [ + [18.8416, 69.878], + [19.0608, 69.7871], + [18.8229, 69.5907], + [18.262, 69.5306], + [18.3568, 69.7929], + [18.8416, 69.878] + ] + ], + [ + [ + [19.2234, 70.0737], + [19.5402, 69.9516], + [19.1216, 69.7878], + [18.7693, 69.9553], + [19.2234, 70.0737] + ] + ], + [ + [ + [23.5015, 70.6166], + [23.6623, 70.4698], + [23.2163, 70.2828], + [22.8972, 70.451], + [23.5015, 70.6166] + ] + ], + [ + [ + [23.3965, 70.8426], + [23.4605, 70.7908], + [22.9138, 70.5438], + [22.7737, 70.6502], + [23.3965, 70.8426] + ] + ], + [ + [ + [30.841, 69.8058], + [30.853, 69.5274], + [30.5117, 69.5363], + [29.9007, 69.3582], + [29.3345, 69.2774], + [29.2405, 69.1151], + [28.9541, 69.0273], + [28.8648, 69.2166], + [29.3445, 69.4644], + [29.1312, 69.6742], + [28.4046, 69.8023], + [27.8669, 70.0753], + [27.3118, 69.9295], + [26.5007, 69.9183], + [26.032, 69.6967], + [25.7341, 69.1913], + [25.8011, 69.0132], + [25.6516, 68.8835], + [25.2013, 68.8126], + [25.1176, 68.6377], + [24.6634, 68.6661], + [23.929, 68.8162], + [23.7348, 68.7154], + [23.1976, 68.618], + [22.5965, 68.7246], + [22.0231, 69.012], + [21.6629, 69.2632], + [21.3136, 69.2914], + [20.6232, 69.0364], + [20.3411, 68.9101], + [20.2459, 68.4774], + [19.931, 68.3502], + [19.0381, 68.5056], + [18.1718, 68.5359], + [18.1667, 68.1585], + [17.8954, 67.9697], + [17.3215, 68.1053], + [16.808, 67.9106], + [16.483, 67.5578], + [16.1271, 67.4228], + [16.4379, 67.2003], + [16.4156, 67.0527], + [16.0388, 66.8875], + [15.6695, 66.5994], + [15.4263, 66.4912], + [15.4819, 66.2749], + [15.0534, 66.1533], + [14.5405, 66.1254], + [14.6444, 65.8429], + [14.5607, 65.7011], + [14.5143, 65.3181], + [14.3107, 65.0841], + [13.6428, 64.584], + [14.1156, 64.4412], + [14.1614, 64.2054], + [13.9394, 64.0095], + [13.2341, 64.0909], + [12.6819, 63.9564], + [12.1703, 63.5981], + [12.2049, 63.4546], + [11.9924, 63.2889], + [12.2227, 63.0015], + [12.1044, 62.9233], + [12.0912, 62.5863], + [12.3175, 62.234], + [12.1617, 61.7248], + [12.6138, 61.547], + [12.8771, 61.371], + [12.6825, 61.0403], + [12.2561, 60.9813], + [12.377, 60.7541], + [12.5944, 60.5149], + [12.4873, 60.2959], + [12.5109, 60.118], + [11.9035, 59.77], + [11.6774, 59.5591], + [11.8117, 59.2497], + [11.6644, 58.9201], + [11.4375, 58.9917], + [11.3705, 59.1007], + [10.8503, 59.1804], + [10.4837, 59.5145], + [10.282, 59.0997], + [9.8462, 58.9556], + [9.4281, 58.8931], + [9.3405, 58.7512], + [8.5134, 58.2934], + [8.1229, 58.102], + [7.3906, 58.0175], + [6.9994, 58.0307], + [6.6262, 58.2447], + [6.1403, 58.3397], + [5.9285, 58.4836], + [5.7042, 58.5208], + [5.478, 58.7547], + [5.6262, 58.9256], + [5.8825, 58.9593], + [5.8727, 59.087], + [6.1123, 59.2746], + [5.8596, 59.3508], + [5.4754, 59.2788], + [5.1823, 59.5112], + [5.4372, 59.7082], + [5.7461, 59.6755], + [5.7722, 59.9307], + [6.098, 60.0919], + [5.304, 60.1906], + [5.1707, 60.2787], + [5.2383, 60.4892], + [5.6177, 60.4172], + [5.7083, 60.4711], + [5.7386, 60.7051], + [5.3001, 60.5608], + [5.033, 60.7417], + [5.0039, 61.0161], + [5.1252, 61.1451], + [4.9641, 61.2657], + [5.0571, 61.4443], + [5.2903, 61.4796], + [5.2293, 61.6287], + [4.9745, 61.7386], + [5.2445, 61.8173], + [5.2979, 62.0682], + [5.9287, 62.1989], + [6.3047, 62.4592], + [6.3196, 62.6085], + [6.6222, 62.5888], + [6.9704, 62.7256], + [6.9102, 62.9294], + [7.2712, 63.0141], + [7.5011, 62.9108], + [7.7483, 62.9421], + [8.2362, 63.1507], + [8.6245, 63.1281], + [8.5147, 63.3059], + [8.7918, 63.4312], + [9.1677, 63.402], + [9.6991, 63.6445], + [9.9606, 63.4277], + [10.7777, 63.4875], + [10.7557, 63.6251], + [11.4639, 63.8017], + [11.0964, 63.8896], + [10.91, 63.731], + [10.4158, 63.5794], + [9.9182, 63.5147], + [9.7991, 63.6918], + [9.5459, 63.7744], + [9.9939, 63.9294], + [10.0137, 64.1188], + [10.4626, 64.2941], + [10.6152, 64.4501], + [11.0762, 64.5236], + [11.3621, 64.4113], + [11.5213, 64.5182], + [11.402, 64.6632], + [11.7764, 64.9767], + [11.9785, 65.0688], + [12.4715, 65.0893], + [12.3421, 65.3026], + [12.6022, 65.4323], + [12.3489, 65.6384], + [12.9175, 65.953], + [12.869, 66.1343], + [13.2254, 66.1858], + [13.0818, 66.498], + [13.2839, 66.6607], + [13.6883, 66.835], + [14.2228, 66.9815], + [14.4069, 67.2781], + [14.8, 67.4218], + [14.7268, 67.4887], + [15.0407, 67.6776], + [15.0632, 67.8388], + [15.7887, 67.9514], + [15.7101, 68.0846], + [16.104, 68.1602], + [16.1724, 68.3179], + [16.5348, 68.4383], + [16.6292, 68.6417], + [17.2344, 68.756], + [17.6794, 69.0919], + [18.0813, 69.1691], + [18.0031, 69.2857], + [18.301, 69.4868], + [18.8527, 69.5523], + [19.0983, 69.7362], + [19.7842, 69.8044], + [20.007, 69.7685], + [20.315, 69.9638], + [20.512, 69.7695], + [21.1704, 69.8756], + [21.2531, 70.003], + [21.9046, 69.8254], + [21.9401, 69.9857], + [21.2092, 70.2085], + [21.9868, 70.3234], + [23.3578, 70.1153], + [23.5132, 70.3655], + [24.2643, 70.6063], + [24.8602, 70.9284], + [25.3418, 70.9527], + [25.8252, 70.8275], + [25.2459, 70.5279], + [25.4411, 70.3422], + [26.0122, 70.6262], + [26.0708, 70.7125], + [26.6136, 70.9491], + [26.7443, 70.8235], + [26.513, 70.4316], + [26.9761, 70.5274], + [27.3913, 70.8764], + [27.2532, 71.0263], + [27.5687, 71.0972], + [28.5461, 70.9799], + [28.1305, 70.736], + [28.2332, 70.6152], + [28.7947, 70.8732], + [29.3805, 70.7694], + [30.2068, 70.6815], + [31.0633, 70.3668], + [30.5488, 70.2487], + [30.1331, 70.0732], + [29.6859, 69.9695], + [29.7754, 69.8386], + [30.1652, 69.8795], + [30.841, 69.8058] + ] + ], + [ + [ + [25.677, 71.1606], + [25.9686, 70.9777], + [25.5335, 70.9318], + [25.2933, 71.0452], + [25.677, 71.1606] + ] + ], + [ + [ + [23.3278, 78.2001], + [23.1205, 77.9859], + [23.6283, 77.8703], + [24.4248, 77.8259], + [23.8928, 77.5084], + [23.2345, 77.2637], + [22.4297, 77.2637], + [22.1917, 77.5041], + [20.9217, 77.4424], + [21.2608, 77.7331], + [21.6618, 77.918], + [20.8801, 78.0854], + [21.6968, 78.2111], + [23.3278, 78.2001] + ] + ], + [ + [ + [21.4761, 78.5866], + [22.2354, 78.4879], + [22.2713, 78.2675], + [21.0612, 78.2003], + [20.1831, 78.4953], + [21.4761, 78.5866] + ] + ], + [ + [ + [16.8201, 79.8758], + [17.5625, 79.8979], + [18.8818, 79.4411], + [18.9451, 79.157], + [19.7863, 79.1651], + [19.9064, 79.0142], + [21.5221, 78.8537], + [21.0374, 78.6442], + [20.2196, 78.6462], + [18.993, 78.467], + [18.9206, 78.1785], + [18.3304, 77.905], + [18.4452, 77.7563], + [18.1941, 77.4902], + [17.8133, 77.4935], + [17.4832, 77.3061], + [17.3237, 76.9789], + [16.9424, 76.7803], + [17.1921, 76.6968], + [16.8096, 76.5668], + [16.3368, 76.6164], + [15.0402, 77.1348], + [14.3737, 77.1987], + [13.9107, 77.5345], + [14.7742, 77.5488], + [15.1154, 77.7032], + [16.87, 77.8113], + [16.6829, 77.866], + [14.4578, 77.758], + [13.7188, 77.7679], + [13.5891, 78.0559], + [15.0347, 78.1166], + [15.7951, 78.3429], + [15.2093, 78.6562], + [14.3836, 78.5009], + [14.2819, 78.3051], + [13.856, 78.2129], + [12.9113, 78.247], + [12.8581, 78.3597], + [11.6432, 78.7473], + [11.8566, 78.8556], + [11.2793, 79.0996], + [10.708, 79.5614], + [11.8223, 79.845], + [12.7676, 79.7733], + [13.797, 79.8819], + [14.5486, 79.8115], + [15.2624, 79.6188], + [15.4973, 79.33], + [15.9595, 79.3096], + [15.6516, 79.8503], + [16.0217, 80.0154], + [16.8201, 79.8758] + ] + ], + [ + [ + [23.1424, 80.3812], + [23.055, 80.2484], + [24.376, 80.3323], + [25.9397, 80.1855], + [27.2391, 80.0973], + [26.9196, 79.8425], + [25.826, 79.626], + [25.6457, 79.3977], + [24.2881, 79.3099], + [24.0531, 79.1889], + [22.9256, 79.2228], + [22.4167, 79.4097], + [20.8169, 79.3781], + [19.6333, 79.6113], + [20.4756, 79.6864], + [21.8504, 79.7069], + [21.8877, 79.8236], + [18.7839, 79.7231], + [18.1467, 79.9164], + [18.3755, 80.039], + [18.0078, 80.1904], + [19.1052, 80.258], + [19.8023, 80.493], + [20.8826, 80.2112], + [22.3737, 80.111], + [22.5642, 80.3109], + [23.1424, 80.3812] + ] + ] + ] + }, + "properties": { + "NAME": "Norway", + "NAME_LONG": "Norway", + "ADM0_A3": "NOR", + "ISO_A2": "NO", + "ISO_A3": "NOR", + "WB_A2": "NO", + "WB_A3": "NOR" + }, + "id": 169 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [88.1182, 27.8609], + [88.1597, 27.7741], + [88.0233, 27.4949], + [88.0351, 27.3226], + [87.9707, 27.1027], + [88.0769, 26.9918], + [88.1691, 26.744], + [88.0742, 26.4539], + [87.8707, 26.4607], + [87.587, 26.378], + [87.3842, 26.4186], + [87.3262, 26.3533], + [87.0833, 26.4321], + [87.0413, 26.5802], + [86.7136, 26.4146], + [86.2844, 26.612], + [86.0114, 26.6544], + [85.8216, 26.5717], + [85.7129, 26.6532], + [85.5986, 26.8544], + [85.2873, 26.737], + [85.162, 26.851], + [85.044, 26.8437], + [84.8019, 27.0138], + [84.6402, 27.0284], + [84.6577, 27.2034], + [84.577, 27.329], + [84.2894, 27.3761], + [84.0796, 27.5095], + [83.8341, 27.434], + [83.361, 27.4622], + [83.3049, 27.3319], + [83.1328, 27.4442], + [82.7521, 27.495], + [82.6521, 27.7041], + [82.4019, 27.6772], + [82.0516, 27.9052], + [81.8557, 27.8509], + [81.6889, 27.9632], + [81.3071, 28.1238], + [81.1463, 28.3722], + [81.0004, 28.397], + [80.6483, 28.6198], + [80.4975, 28.6701], + [80.3498, 28.6202], + [80.0364, 28.837], + [80.1326, 29.1102], + [80.2787, 29.2681], + [80.2137, 29.4169], + [80.3852, 29.6048], + [80.369, 29.7579], + [80.5713, 29.9469], + [80.996, 30.197], + [81.0978, 30.0169], + [81.1945, 30.0045], + [81.5916, 30.4143], + [81.779, 30.358], + [82.0888, 30.3301], + [82.1445, 30.0694], + [82.5418, 29.9232], + [82.8366, 29.6598], + [83.1621, 29.6252], + [83.328, 29.485], + [83.5171, 29.1917], + [83.9456, 29.2918], + [84.0991, 29.247], + [84.2314, 29.026], + [84.2351, 28.9], + [84.6778, 28.6044], + [84.9187, 28.5357], + [85.0549, 28.6387], + [85.168, 28.5832], + [85.0802, 28.3188], + [85.2596, 28.2669], + [85.6751, 28.3064], + [85.8483, 28.1589], + [85.9803, 27.8852], + [86.203, 28.0026], + [86.4388, 27.9109], + [86.5442, 28.093], + [86.662, 28.1068], + [86.8931, 27.9542], + [87.0305, 27.9381], + [87.1558, 27.8258], + [87.3868, 27.8044], + [87.7564, 27.8204], + [87.8259, 27.9066], + [88.1182, 27.8609] + ] + ] + }, + "properties": { + "NAME": "Nepal", + "NAME_LONG": "Nepal", + "ADM0_A3": "NPL", + "ISO_A2": "NP", + "ISO_A3": "NPL", + "WB_A2": "NP", + "WB_A3": "NPL" + }, + "id": 170 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [167.9675, -46.6998], + [168.1792, -46.8644], + [168.1921, -47.0989], + [167.9019, -47.1884], + [167.6458, -47.2052], + [167.6482, -47.048], + [167.8166, -46.8974], + [167.7874, -46.6972], + [167.9675, -46.6998] + ] + ], + [ + [ + [172.9045, -40.5085], + [172.7578, -40.5177], + [172.6891, -40.7341], + [172.8565, -40.8437], + [173.065, -40.8867], + [173.0309, -41.1491], + [173.2127, -41.3019], + [173.5711, -41.0681], + [174.2114, -40.9996], + [174.2604, -41.1183], + [174.0555, -41.4246], + [174.2259, -41.7234], + [174.1979, -41.8761], + [174.0041, -42.0312], + [173.8909, -42.2408], + [173.5586, -42.4911], + [173.2873, -42.9539], + [172.8112, -43.169], + [172.7297, -43.4148], + [172.804, -43.611], + [173.0529, -43.6533], + [173.1055, -43.8294], + [172.8767, -43.902], + [172.4971, -43.7219], + [172.3656, -43.8684], + [172.0612, -43.9566], + [171.5506, -44.1673], + [171.346, -44.2786], + [171.196, -44.5668], + [171.2031, -44.9055], + [170.9803, -45.155], + [170.9063, -45.4028], + [170.6984, -45.6793], + [170.7873, -45.8631], + [170.3338, -45.9815], + [170.2349, -46.154], + [169.8648, -46.3784], + [169.849, -46.4675], + [169.6351, -46.5784], + [169.036, -46.6819], + [168.8449, -46.5602], + [168.5915, -46.6144], + [168.3657, -46.5402], + [168.2161, -46.3544], + [167.8501, -46.3966], + [167.6979, -46.1887], + [167.4609, -46.1482], + [167.4058, -46.2512], + [166.762, -46.22], + [166.4694, -45.9835], + [166.4898, -45.8075], + [166.7975, -45.7244], + [166.7025, -45.5424], + [166.8814, -45.2796], + [167.2035, -44.95], + [167.4187, -44.8409], + [168.3401, -44.1183], + [168.4103, -44.0279], + [168.6458, -43.9645], + [168.7468, -44.0103], + [169.1921, -43.7587], + [169.7337, -43.5657], + [169.8968, -43.3945], + [170.2388, -43.2379], + [170.5144, -43.0066], + [170.7007, -42.9547], + [171.1228, -42.5924], + [171.3049, -42.2946], + [171.3316, -42.1472], + [171.4888, -41.8303], + [171.9038, -41.6069], + [172.0708, -41.4142], + [172.1144, -41.2509], + [172.1068, -40.8869], + [172.6414, -40.5097], + [172.9045, -40.5085] + ] + ], + [ + [ + [173.0793, -34.4117], + [172.9075, -34.5414], + [173.0508, -34.6013], + [173.1231, -34.8097], + [173.4783, -34.9904], + [173.8882, -35.006], + [174.1375, -35.3191], + [174.3325, -35.288], + [174.5695, -35.5943], + [174.5174, -35.7208], + [174.5793, -35.8495], + [174.4969, -35.9876], + [174.757, -36.2449], + [174.7229, -36.5937], + [174.8191, -36.8237], + [175.241, -36.9423], + [175.3311, -37.0213], + [175.3672, -37.2072], + [175.5957, -37.2131], + [175.5278, -36.9625], + [175.5025, -36.6539], + [175.7857, -36.7828], + [175.8818, -36.926], + [175.9972, -37.6318], + [176.5186, -37.7621], + [176.7183, -37.8777], + [177.1455, -38.0235], + [177.5568, -37.9138], + [177.7388, -37.6762], + [178.0315, -37.5496], + [178.2777, -37.5593], + [178.5643, -37.7177], + [178.3516, -38.0017], + [178.2946, -38.5398], + [177.964, -38.7614], + [177.8828, -39.0855], + [177.9989, -39.1298], + [177.8685, -39.2902], + [177.7639, -39.081], + [177.3874, -39.0774], + [177.065, -39.1994], + [176.9063, -39.4475], + [177.0364, -39.7536], + [176.8373, -40.1779], + [176.7036, -40.2902], + [176.348, -40.6965], + [176.2204, -40.9333], + [175.9668, -41.247], + [175.3303, -41.6098], + [175.1818, -41.4179], + [174.8656, -41.4195], + [174.6094, -41.2919], + [174.9427, -40.9706], + [175.1413, -40.6744], + [175.2349, -40.336], + [175.155, -40.0854], + [174.9673, -39.9164], + [174.5676, -39.8268], + [174.319, -39.6139], + [173.9866, -39.5423], + [173.7844, -39.3932], + [173.8527, -39.1345], + [174.2116, -38.9733], + [174.3667, -38.9757], + [174.5789, -38.8395], + [174.7051, -38.1197], + [174.8504, -37.7649], + [174.6917, -37.3294], + [174.7043, -37.176], + [174.8805, -37.0763], + [174.8328, -36.9428], + [174.4889, -37.0146], + [174.3599, -36.6313], + [174.4697, -36.5834], + [174.4414, -36.4065], + [174.2923, -36.32], + [174.0798, -36.3995], + [173.8582, -36.0656], + [173.1003, -35.22], + [173.202, -35.0578], + [173.1436, -34.9284], + [172.7993, -34.551], + [172.7417, -34.4312], + [173.0793, -34.4117] + ] + ] + ] + }, + "properties": { + "NAME": "New Zealand", + "NAME_LONG": "New Zealand", + "ADM0_A3": "NZL", + "ISO_A2": "NZ", + "ISO_A3": "NZL", + "WB_A2": "NZ", + "WB_A3": "NZL" + }, + "id": 172 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [58.6524, 20.1705], + [58.6429, 20.3561], + [58.7512, 20.4401], + [58.8826, 20.6825], + [58.9539, 20.5199], + [58.8441, 20.4373], + [58.7894, 20.2865], + [58.6524, 20.1705] + ] + ], + [ + [ + [53.0903, 16.6424], + [52.8016, 17.2674], + [52.7301, 17.2999], + [52.4845, 17.8542], + [51.9786, 18.9956], + [52.7744, 19.2608], + [53.63, 19.546], + [54.9784, 19.9954], + [55.3029, 20.9715], + [55.6376, 21.979], + [55.6267, 22.0238], + [55.1868, 22.7036], + [55.1913, 22.9954], + [55.3753, 23.4693], + [55.5383, 23.77], + [55.4998, 23.9706], + [55.8071, 24.0075], + [55.9979, 24.0813], + [55.8074, 24.3408], + [55.7598, 24.5585], + [55.8182, 24.6434], + [55.7887, 24.8552], + [56.0056, 24.9562], + [56.0315, 24.7541], + [56.1183, 24.7354], + [56.3833, 24.9782], + [56.6112, 24.4963], + [56.9395, 24.1159], + [57.1515, 23.9536], + [57.9128, 23.7178], + [58.0431, 23.7246], + [58.412, 23.6162], + [58.4909, 23.6566], + [58.7861, 23.5121], + [59.0837, 23.0554], + [59.2075, 22.9704], + [59.2975, 22.7927], + [59.5355, 22.5831], + [59.7764, 22.5414], + [59.8446, 22.4453], + [59.7918, 22.1981], + [59.6453, 21.9258], + [59.4979, 21.7563], + [59.3362, 21.4377], + [59.1663, 21.3628], + [58.9192, 21.1437], + [58.793, 20.9274], + [58.6803, 20.8284], + [58.5186, 20.4168], + [58.2243, 20.3964], + [58.2642, 20.5876], + [58.1035, 20.5751], + [57.8561, 20.2606], + [57.848, 20.1118], + [57.6989, 19.7544], + [57.7044, 19.5487], + [57.7739, 19.4097], + [57.7507, 19.2681], + [57.8401, 19.0153], + [57.7097, 18.944], + [57.5015, 18.9537], + [57.2075, 18.91], + [56.915, 18.8103], + [56.6597, 18.5954], + [56.5613, 18.1492], + [56.3449, 17.9378], + [56.1885, 17.9571], + [55.6535, 17.8953], + [55.4452, 17.841], + [55.2254, 17.5154], + [55.3008, 17.4168], + [55.2547, 17.2287], + [55.0269, 17.0111], + [54.8084, 16.9515], + [54.5921, 17.0385], + [54.39, 17.0395], + [54.0234, 16.9853], + [53.9811, 16.9088], + [53.7532, 16.8677], + [53.5827, 16.7499], + [53.3386, 16.7348], + [53.0903, 16.6424] + ] + ], + [ + [ + [56.2791, 25.6274], + [56.1451, 25.6708], + [56.1835, 26.0145], + [56.0774, 26.061], + [56.1818, 26.246], + [56.3019, 26.2053], + [56.4004, 25.9905], + [56.2791, 25.6274] + ] + ] + ] + }, + "properties": { + "NAME": "Oman", + "NAME_LONG": "Oman", + "ADM0_A3": "OMN", + "ISO_A2": "OM", + "ISO_A3": "OMN", + "WB_A2": "OM", + "WB_A3": "OMN" + }, + "id": 173 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [76.7774, 35.6461], + [77.049, 35.1104], + [76.9211, 34.9207], + [76.5532, 34.7258], + [76.0234, 34.6772], + [75.7771, 34.5038], + [75.3481, 34.5572], + [75.2129, 34.645], + [75.0178, 34.6297], + [74.2858, 34.7689], + [73.9622, 34.6682], + [73.7749, 34.371], + [73.9983, 34.1968], + [73.9458, 34.0098], + [74.2284, 34.0129], + [74.2395, 33.901], + [74.0346, 33.8286], + [73.9767, 33.6484], + [74.1416, 33.5494], + [74.1055, 33.3452], + [74.0023, 33.1777], + [74.1539, 33.0402], + [74.322, 32.972], + [74.419, 32.7846], + [74.6497, 32.7231], + [74.6296, 32.5881], + [74.725, 32.4608], + [75.0237, 32.4663], + [75.359, 32.2617], + [75.2947, 32.1489], + [74.9557, 32.0322], + [74.8286, 32.0254], + [74.5656, 31.8405], + [74.4894, 31.7112], + [74.6119, 31.4402], + [74.5064, 31.1754], + [74.601, 31.0566], + [74.5193, 30.9625], + [74.3298, 30.8996], + [74.1637, 30.6649], + [73.8518, 30.3727], + [73.9444, 30.1883], + [73.7397, 30.0485], + [73.3703, 29.9273], + [73.2329, 29.5366], + [72.9015, 29.0226], + [72.3822, 28.784], + [72.2565, 28.6456], + [72.1499, 28.3538], + [71.8916, 28.0971], + [71.8609, 27.9502], + [71.5607, 27.8685], + [71.3114, 27.8617], + [70.8316, 27.7015], + [70.7104, 27.7412], + [70.6332, 27.9316], + [70.4562, 28.0398], + [70.3419, 28.0115], + [70.0907, 27.7936], + [70.0169, 27.6006], + [69.848, 27.4104], + [69.5756, 27.1884], + [69.4651, 26.8078], + [69.5042, 26.7352], + [69.8156, 26.5803], + [70.0561, 26.5891], + [70.1581, 26.5301], + [70.132, 26.1805], + [70.0646, 25.9803], + [70.2646, 25.6973], + [70.6575, 25.6336], + [70.6466, 25.4314], + [70.8599, 25.1394], + [70.8933, 25.0019], + [71.0639, 24.6826], + [70.9548, 24.5845], + [70.9177, 24.3617], + [70.7555, 24.2314], + [70.5602, 24.2873], + [70.5629, 24.4241], + [70.1097, 24.3049], + [69.972, 24.1652], + [69.6706, 24.1887], + [69.5631, 24.2768], + [68.9808, 24.2554], + [68.8903, 24.3195], + [68.7259, 24.2892], + [68.7245, 23.9652], + [68.4316, 23.9671], + [68.183, 23.8421], + [68.1022, 23.7338], + [67.8645, 23.8658], + [67.6316, 23.8035], + [67.4407, 24.0703], + [67.3003, 24.1863], + [67.2468, 24.468], + [67.1496, 24.6351], + [67.176, 24.7577], + [66.9651, 24.8436], + [66.6797, 24.8306], + [66.7175, 25.2312], + [66.437, 25.5977], + [66.2518, 25.4729], + [65.8584, 25.4175], + [65.6716, 25.3474], + [65.3954, 25.3923], + [65.1553, 25.2961], + [64.8073, 25.3285], + [64.6628, 25.2291], + [64.0667, 25.3463], + [63.5725, 25.365], + [63.5005, 25.1937], + [63.1785, 25.258], + [63.0278, 25.2204], + [62.7705, 25.2619], + [62.4772, 25.2591], + [62.3659, 25.1794], + [62.08, 25.1972], + [61.8811, 25.103], + [61.5882, 25.2021], + [61.62, 25.2855], + [61.6603, 25.7692], + [61.7601, 25.8376], + [61.8099, 26.1674], + [61.8571, 26.2424], + [62.2434, 26.3506], + [62.292, 26.5012], + [62.7536, 26.6442], + [63.1413, 26.6254], + [63.1823, 26.8302], + [63.2649, 26.89], + [63.2515, 27.219], + [63.167, 27.2587], + [62.8006, 27.2252], + [62.756, 27.3481], + [62.8147, 27.495], + [62.7357, 27.995], + [62.7664, 28.2115], + [62.5756, 28.229], + [62.3628, 28.4189], + [61.8928, 28.5426], + [61.653, 28.7563], + [61.4878, 29.0807], + [61.2792, 29.4066], + [60.8444, 29.8582], + [61.6134, 29.6385], + [62.4775, 29.4078], + [63.5686, 29.4975], + [64.0861, 29.3866], + [64.1726, 29.4843], + [64.4777, 29.5704], + [65.0364, 29.5402], + [66.1956, 29.8353], + [66.3405, 29.9566], + [66.2252, 30.0444], + [66.3009, 30.2256], + [66.3218, 30.4374], + [66.268, 30.6014], + [66.3663, 30.9229], + [66.55, 30.977], + [66.697, 31.1958], + [66.9433, 31.3147], + [67.0229, 31.2394], + [67.3462, 31.2078], + [67.7494, 31.328], + [67.597, 31.4257], + [67.8707, 31.6352], + [68.0466, 31.6884], + [68.1257, 31.8115], + [68.3561, 31.7625], + [68.5275, 31.823], + [68.6758, 31.7747], + [68.7773, 31.6186], + [69.004, 31.6511], + [69.2988, 31.9377], + [69.228, 32.4213], + [69.4291, 32.6674], + [69.5475, 33.075], + [69.8809, 33.0892], + [70.2944, 33.3189], + [70.155, 33.5066], + [70.1082, 33.7273], + [69.9575, 33.7527], + [69.8411, 33.9418], + [70.0028, 34.0438], + [70.522, 33.9387], + [70.8622, 33.9648], + [71.0467, 34.0419], + [71.122, 34.3568], + [70.9708, 34.4689], + [71.0806, 34.6729], + [71.2895, 34.875], + [71.46, 34.9427], + [71.6337, 35.2031], + [71.5298, 35.3009], + [71.6224, 35.4296], + [71.5935, 35.5494], + [71.3416, 35.9473], + [71.1709, 36.027], + [71.6291, 36.4595], + [71.7363, 36.3959], + [72.2136, 36.7264], + [72.5652, 36.8206], + [73.6401, 36.8966], + [74.0943, 36.8312], + [74.394, 36.994], + [74.5424, 37.0217], + [74.6624, 37.0545], + [74.9105, 36.9626], + [75.1001, 36.9941], + [75.3513, 36.9158], + [75.4105, 36.7473], + [75.5705, 36.7667], + [75.7905, 36.6878], + [75.9766, 36.4626], + [76.0144, 36.2304], + [75.8943, 36.0974], + [76.0614, 35.9916], + [76.166, 35.8062], + [76.5653, 35.8655], + [76.5708, 35.7513], + [76.7774, 35.6461] + ] + ] + }, + "properties": { + "NAME": "Pakistan", + "NAME_LONG": "Pakistan", + "ADM0_A3": "PAK", + "ISO_A2": "PK", + "ISO_A3": "PAK", + "WB_A2": "PK", + "WB_A3": "PAK" + }, + "id": 174 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-77.3735, 8.6647], + [-77.4804, 8.5262], + [-77.2012, 7.982], + [-77.3216, 7.881], + [-77.3397, 7.7072], + [-77.58, 7.5284], + [-77.8202, 7.4765], + [-77.8958, 7.2351], + [-78.1442, 7.4979], + [-78.4308, 8.0771], + [-78.2864, 8.0807], + [-78.3058, 8.2539], + [-78.1556, 8.3941], + [-78.3033, 8.4543], + [-78.4498, 8.391], + [-78.5044, 8.634], + [-78.6125, 8.6697], + [-78.7576, 8.8293], + [-79.176, 9.0107], + [-79.482, 8.9984], + [-79.7563, 8.7963], + [-79.7744, 8.5796], + [-80.225, 8.3011], + [-80.3807, 8.3104], + [-80.4702, 8.2206], + [-80.4561, 8.0362], + [-80.1438, 7.7528], + [-79.9947, 7.5034], + [-80.1355, 7.4246], + [-80.3576, 7.382], + [-80.4745, 7.2533], + [-80.8731, 7.2126], + [-80.9463, 7.5557], + [-81.0854, 7.7943], + [-81.1952, 7.6389], + [-81.5258, 7.7115], + [-81.7115, 8.1303], + [-82.1094, 8.2333], + [-82.2801, 8.3432], + [-82.5117, 8.2764], + [-82.6589, 8.3228], + [-82.8772, 8.2191], + [-82.8976, 8.0347], + [-82.9437, 8.2486], + [-83.0532, 8.3151], + [-82.8704, 8.4381], + [-82.8498, 8.6299], + [-82.9242, 8.7412], + [-82.7491, 8.9741], + [-82.9394, 9.0596], + [-82.9443, 9.4372], + [-82.829, 9.6027], + [-82.6189, 9.4867], + [-82.5736, 9.5762], + [-82.3496, 9.402], + [-82.3876, 9.2861], + [-82.2555, 9.1826], + [-82.246, 9.0141], + [-82.1054, 8.9352], + [-81.9037, 8.9711], + [-81.762, 9.0638], + [-81.5391, 8.8129], + [-81.3045, 8.7819], + [-81.0877, 8.8087], + [-80.8224, 8.8907], + [-80.6371, 9.0517], + [-80.1008, 9.2223], + [-79.909, 9.3084], + [-79.551, 9.6293], + [-79.1938, 9.5396], + [-79.0581, 9.4579], + [-78.4377, 9.4044], + [-78.0246, 9.2265], + [-77.5741, 8.7928], + [-77.477, 8.6699], + [-77.3735, 8.6647] + ] + ] + }, + "properties": { + "NAME": "Panama", + "NAME_LONG": "Panama", + "ADM0_A3": "PAN", + "ISO_A2": "PA", + "ISO_A3": "PAN", + "WB_A2": "PA", + "WB_A3": "PAN" + }, + "id": 175 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-69.9649, -4.2365], + [-70.2313, -4.3037], + [-70.3111, -4.1709], + [-70.4299, -4.1342], + [-70.5853, -4.1945], + [-70.8322, -4.1794], + [-70.9687, -4.3853], + [-71.7743, -4.4815], + [-72.0711, -4.6051], + [-72.2511, -4.7588], + [-72.6273, -5.0224], + [-72.9179, -5.1321], + [-72.8967, -5.2716], + [-72.9735, -5.4661], + [-73.0014, -5.7088], + [-73.14, -5.8785], + [-73.2348, -6.0776], + [-73.1318, -6.4353], + [-73.199, -6.5456], + [-73.3707, -6.5839], + [-73.6851, -6.8119], + [-73.7655, -6.9042], + [-73.8123, -7.1029], + [-73.7345, -7.2251], + [-73.7608, -7.3374], + [-73.9794, -7.3745], + [-73.9694, -7.5847], + [-73.7122, -7.7882], + [-73.7788, -7.9541], + [-73.668, -8.0138], + [-73.5265, -8.3724], + [-73.3564, -8.4798], + [-73.3506, -8.5983], + [-73.1746, -8.7207], + [-72.9761, -8.9854], + [-72.9594, -9.0856], + [-73.215, -9.409], + [-72.8133, -9.4109], + [-72.4302, -9.4822], + [-72.2617, -9.6674], + [-72.1604, -9.8877], + [-72.1957, -10.0056], + [-71.3914, -10.0068], + [-71.1965, -9.9399], + [-71.0154, -9.8175], + [-70.8755, -9.6605], + [-70.6808, -9.5277], + [-70.5434, -9.727], + [-70.6384, -9.8518], + [-70.6413, -11.0108], + [-70.5341, -10.9381], + [-70.4373, -11.0367], + [-70.2894, -11.0647], + [-69.9561, -10.9193], + [-69.5776, -10.9523], + [-69.1316, -11.726], + [-68.6843, -12.5025], + [-68.981, -12.8679], + [-68.9628, -13.2836], + [-69.016, -13.7531], + [-68.983, -13.9722], + [-68.8837, -14.2115], + [-69.0101, -14.2459], + [-68.9903, -14.379], + [-69.2475, -14.5937], + [-69.2676, -14.7507], + [-69.3614, -14.788], + [-69.3907, -14.9644], + [-69.1481, -15.2333], + [-69.2912, -15.3508], + [-69.4243, -15.6563], + [-69.2196, -16.1528], + [-69.1447, -16.2235], + [-68.982, -16.21], + [-68.8436, -16.302], + [-69.0017, -16.4228], + [-69.0371, -16.6702], + [-69.1917, -16.743], + [-69.4274, -17.0869], + [-69.6228, -17.1856], + [-69.6665, -17.2883], + [-69.5226, -17.3691], + [-69.5101, -17.5066], + [-69.6839, -17.656], + [-69.8576, -17.7342], + [-69.7831, -17.9816], + [-69.9703, -18.2506], + [-70.1342, -18.3189], + [-70.3947, -18.3377], + [-70.6833, -18.1617], + [-70.9146, -17.9465], + [-71.0866, -17.8691], + [-71.3596, -17.6331], + [-71.4003, -17.4003], + [-71.5145, -17.2846], + [-71.8076, -17.1913], + [-71.9486, -17.0735], + [-72.2934, -16.8806], + [-72.3622, -16.7613], + [-72.6924, -16.6607], + [-73.2801, -16.3884], + [-73.4203, -16.2931], + [-73.7003, -16.2207], + [-74.0328, -16.0123], + [-74.0466, -15.9601], + [-74.4417, -15.798], + [-74.4631, -15.7267], + [-74.8476, -15.5663], + [-75.1608, -15.3933], + [-75.2411, -15.2053], + [-75.3618, -15.1448], + [-75.5506, -14.8849], + [-75.9307, -14.6493], + [-75.9806, -14.4611], + [-76.0922, -14.3731], + [-76.1492, -14.2239], + [-76.2821, -14.1409], + [-76.2774, -13.9451], + [-76.1813, -13.5395], + [-76.2211, -13.3576], + [-76.4833, -13.0363], + [-76.5162, -12.8699], + [-76.8118, -12.4827], + [-76.8536, -12.3026], + [-77.0383, -12.2044], + [-77.1749, -12.0719], + [-77.1459, -11.9321], + [-77.2255, -11.6272], + [-77.3205, -11.4937], + [-77.6473, -11.2923], + [-77.5947, -11.1651], + [-77.6705, -10.9275], + [-78.0558, -10.3475], + [-78.2346, -9.9525], + [-78.2294, -9.7938], + [-78.3699, -9.6154], + [-78.484, -9.3303], + [-78.4974, -9.1895], + [-78.7643, -8.7751], + [-78.7593, -8.6083], + [-78.9403, -8.4355], + [-78.9857, -8.2174], + [-79.2997, -7.9387], + [-79.4659, -7.7159], + [-79.5825, -7.4636], + [-79.6128, -7.2664], + [-79.7082, -7.1068], + [-79.9315, -6.8835], + [-79.9647, -6.7874], + [-80.2981, -6.5444], + [-80.7905, -6.2997], + [-81.1015, -6.0721], + [-81.1502, -5.8831], + [-80.9399, -5.8508], + [-80.8562, -5.6505], + [-80.9318, -5.4638], + [-81.1985, -5.2081], + [-81.0634, -5.022], + [-81.3376, -4.6783], + [-81.3289, -4.4767], + [-81.2528, -4.2387], + [-81.0733, -4.0968], + [-80.8678, -3.8727], + [-80.7717, -3.7101], + [-80.5362, -3.5053], + [-80.3407, -3.3935], + [-80.2164, -3.6316], + [-80.1653, -3.89], + [-80.3046, -4.0052], + [-80.4811, -3.9988], + [-80.4885, -4.396], + [-80.4085, -4.4775], + [-80.0797, -4.309], + [-79.7957, -4.4847], + [-79.658, -4.4387], + [-79.5072, -4.5316], + [-79.4506, -4.8102], + [-79.3032, -4.9612], + [-79.0093, -4.9601], + [-78.9002, -4.8437], + [-78.8531, -4.6523], + [-78.6727, -4.551], + [-78.6824, -4.3269], + [-78.5018, -3.9537], + [-78.3629, -3.4887], + [-78.1964, -3.3637], + [-77.849, -2.9806], + [-76.6846, -2.5736], + [-76.0912, -2.1289], + [-75.56, -1.5026], + [-75.4126, -0.9239], + [-75.2273, -0.9698], + [-75.297, -0.747], + [-75.272, -0.5257], + [-75.4342, -0.403], + [-75.4553, -0.1612], + [-75.2835, -0.107], + [-75.1417, -0.0435], + [-74.9335, -0.2094], + [-74.8247, -0.1705], + [-74.4127, -0.5731], + [-74.2891, -0.943], + [-73.9199, -1.1138], + [-73.8808, -1.191], + [-73.6366, -1.2552], + [-73.4972, -1.478], + [-73.531, -1.6737], + [-73.3403, -1.7922], + [-73.1863, -1.7996], + [-73.1111, -2.0734], + [-73.1953, -2.1872], + [-72.9433, -2.419], + [-72.6443, -2.3341], + [-72.3966, -2.4465], + [-71.9663, -2.3285], + [-71.7679, -2.1422], + [-71.4565, -2.2551], + [-71.387, -2.3689], + [-71.2199, -2.3415], + [-70.9927, -2.1974], + [-70.8742, -2.2296], + [-70.457, -2.4927], + [-70.3575, -2.4869], + [-70.2361, -2.6251], + [-70.0506, -2.7151], + [-70.7341, -3.782], + [-70.5443, -3.8652], + [-70.3111, -3.8293], + [-70.1884, -4.029], + [-69.9649, -4.2365] + ] + ] + }, + "properties": { + "NAME": "Peru", + "NAME_LONG": "Peru", + "ADM0_A3": "PER", + "ISO_A2": "PE", + "ISO_A3": "PER", + "WB_A2": "PE", + "WB_A3": "PER" + }, + "id": 177 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [121.0422, 6.0971], + [121.4212, 5.9871], + [120.9341, 5.8857], + [120.9055, 6.015], + [121.0422, 6.0971] + ] + ], + [ + [ + [122.0576, 6.4139], + [121.8801, 6.5032], + [121.8392, 6.6689], + [122.0667, 6.7407], + [122.2354, 6.5712], + [122.1886, 6.4511], + [122.0576, 6.4139] + ] + ], + [ + [ + [125.6436, 9.6113], + [125.9341, 9.4923], + [126.179, 9.093], + [126.3128, 8.9562], + [126.3001, 8.7683], + [126.1384, 8.654], + [126.2205, 8.5555], + [126.3569, 8.5344], + [126.3884, 8.2929], + [126.4631, 8.2299], + [126.4061, 7.8332], + [126.5829, 7.7194], + [126.6123, 7.2579], + [126.4764, 7.0662], + [126.3495, 7.0001], + [126.2546, 6.7667], + [126.2269, 6.4689], + [126.0951, 6.5141], + [126.0791, 6.8425], + [125.9768, 6.9396], + [125.8069, 7.3511], + [125.6569, 7.237], + [125.6581, 7.1291], + [125.5099, 7.0156], + [125.3889, 6.7683], + [125.3975, 6.5985], + [125.5736, 6.5169], + [125.7066, 6.1497], + [125.6673, 5.9501], + [125.3875, 5.5738], + [125.1812, 5.7983], + [125.264, 5.9499], + [125.169, 6.112], + [125.0691, 5.8617], + [124.9387, 5.864], + [124.5962, 5.9989], + [124.2458, 6.1865], + [124.0549, 6.4377], + [124.0523, 6.6694], + [123.9655, 6.8213], + [124.0295, 7.1151], + [124.1838, 7.2264], + [124.2468, 7.4041], + [124.0652, 7.6027], + [123.7942, 7.7105], + [123.5869, 7.8393], + [123.4447, 7.8013], + [123.4857, 7.6636], + [123.2258, 7.5156], + [123.1073, 7.7319], + [122.9956, 7.4673], + [122.8307, 7.5498], + [122.8147, 7.7434], + [122.5967, 7.7614], + [122.4439, 7.6086], + [122.3791, 7.3916], + [122.2659, 7.2491], + [122.1545, 6.9281], + [122.0379, 6.9174], + [121.8989, 7.0572], + [121.9334, 7.2179], + [122.0469, 7.3011], + [122.1289, 7.815], + [122.2922, 8.0099], + [122.6497, 8.116], + [122.9246, 8.1501], + [123.0554, 8.505], + [123.3311, 8.5466], + [123.4778, 8.6953], + [123.7588, 8.6075], + [123.8661, 8.3643], + [123.8737, 8.1052], + [124.0363, 8.1898], + [124.2323, 8.2129], + [124.3218, 8.5146], + [124.4058, 8.6079], + [124.641, 8.476], + [124.7532, 8.5002], + [124.7808, 8.9491], + [124.9153, 8.9941], + [125.1157, 8.8306], + [125.1792, 8.998], + [125.4622, 8.9852], + [125.542, 9.1892], + [125.3987, 9.6811], + [125.569, 9.7567], + [125.6436, 9.6113] + ] + ], + [ + [ + [124.3496, 10.151], + [124.5886, 10.0239], + [124.5498, 9.8616], + [124.4105, 9.6584], + [124.2942, 9.6068], + [123.9375, 9.6175], + [123.8079, 9.74], + [123.8861, 9.9149], + [124.0508, 9.9793], + [124.1846, 10.1445], + [124.3496, 10.151] + ] + ], + [ + [ + [125.6848, 10.3999], + [125.6581, 10.2617], + [125.6815, 9.9581], + [125.4971, 10.1035], + [125.5562, 10.3708], + [125.6848, 10.3999] + ] + ], + [ + [ + [122.7215, 10.5852], + [122.6345, 10.4442], + [122.5286, 10.5912], + [122.6702, 10.762], + [122.7215, 10.5852] + ] + ], + [ + [ + [123.2698, 10.9774], + [123.5218, 10.9199], + [123.5755, 10.8256], + [123.4857, 10.5491], + [123.3897, 10.4372], + [123.2904, 10.0936], + [123.1567, 9.8676], + [123.1976, 9.4871], + [123.3211, 9.3432], + [123.2302, 9.1076], + [123.0332, 9.0353], + [122.9336, 9.1215], + [122.8694, 9.3227], + [122.5995, 9.4327], + [122.4966, 9.5617], + [122.3952, 9.8366], + [122.4746, 9.9744], + [122.7078, 9.9864], + [122.8789, 10.1181], + [122.8239, 10.5329], + [122.9717, 10.7211], + [122.9663, 10.8764], + [123.2698, 10.9774] + ] + ], + [ + [ + [123.9995, 11.0773], + [124.0669, 10.8891], + [124.0208, 10.7477], + [124.04, 10.4844], + [123.9729, 10.3266], + [123.8081, 10.2366], + [123.6433, 10.039], + [123.6433, 9.9601], + [123.4883, 9.5665], + [123.3143, 9.5076], + [123.3833, 9.9427], + [123.7068, 10.462], + [123.8493, 10.7526], + [123.9177, 11.029], + [123.9995, 11.0773] + ] + ], + [ + [ + [119.523, 11.3399], + [119.569, 11.2617], + [119.5046, 10.9709], + [119.5934, 10.8371], + [119.5908, 10.6724], + [119.71, 10.4945], + [119.5632, 10.3735], + [119.356, 10.3288], + [119.1963, 10.0563], + [118.8748, 9.9719], + [118.7505, 9.8875], + [118.7254, 9.6313], + [118.4979, 9.3137], + [118.3358, 9.1793], + [118.1321, 9.1267], + [118.0137, 8.8876], + [117.7737, 8.7031], + [117.5656, 8.6611], + [117.5129, 8.5068], + [117.3186, 8.4518], + [117.2915, 8.6408], + [117.4504, 8.7912], + [117.6555, 9.0579], + [117.7681, 9.0864], + [117.9045, 9.2612], + [118.0032, 9.2333], + [118.127, 9.3378], + [118.3455, 9.6362], + [118.5305, 9.7742], + [118.8223, 10.1945], + [118.9497, 10.2202], + [119.072, 10.3915], + [119.2781, 10.5082], + [119.345, 10.7236], + [119.2234, 10.8508], + [119.4061, 11.0495], + [119.4206, 11.2976], + [119.523, 11.3399] + ] + ], + [ + [ + [124.4431, 11.4469], + [124.6299, 11.3044], + [124.8457, 11.433], + [124.9841, 11.3813], + [125.0531, 10.9682], + [125.0061, 10.7973], + [125.1941, 10.603], + [125.2666, 10.3684], + [124.8828, 10.135], + [124.7804, 10.1519], + [124.7389, 10.3955], + [124.7981, 10.6591], + [124.7788, 10.8214], + [124.6223, 11.002], + [124.5073, 10.8744], + [124.3968, 10.9538], + [124.4043, 11.3027], + [124.4431, 11.4469] + ] + ], + [ + [ + [124.4309, 11.6951], + [124.556, 11.6602], + [124.6091, 11.4866], + [124.4588, 11.4945], + [124.4309, 11.6951] + ] + ], + [ + [ + [122.3001, 11.7619], + [122.388, 11.7274], + [122.6223, 11.5087], + [122.855, 11.5913], + [122.9007, 11.4379], + [123.1178, 11.5482], + [123.1748, 11.4675], + [123.0149, 11.0916], + [122.78, 10.9569], + [122.7615, 10.8107], + [122.6306, 10.7744], + [122.5899, 10.6987], + [122.2266, 10.6422], + [122.0396, 10.4666], + [121.937, 10.7757], + [122.0451, 11.0174], + [122.1072, 11.6579], + [122.0845, 11.7247], + [121.8648, 11.7626], + [121.9637, 11.9339], + [122.1179, 11.8236], + [122.3001, 11.7619] + ] + ], + [ + [ + [119.9639, 11.9401], + [120.0526, 11.8712], + [120.0142, 11.6821], + [119.868, 11.9066], + [119.9639, 11.9401] + ] + ], + [ + [ + [119.9346, 12.2851], + [120.1961, 12.112], + [120.1346, 11.9748], + [119.9841, 12.0257], + [119.8672, 12.2318], + [119.9346, 12.2851] + ] + ], + [ + [ + [122.6253, 12.281], + [122.4319, 12.4097], + [122.4811, 12.4934], + [122.6492, 12.4732], + [122.6253, 12.281] + ] + ], + [ + [ + [124.919, 12.5622], + [125.1663, 12.5781], + [125.3496, 12.3994], + [125.3607, 12.2851], + [125.5005, 12.2486], + [125.452, 11.9641], + [125.5005, 11.7011], + [125.4709, 11.6026], + [125.5586, 11.4248], + [125.5662, 11.2681], + [125.7074, 11.1774], + [125.4402, 11.0976], + [125.2141, 11.1315], + [125.0029, 11.4197], + [124.8283, 11.5087], + [125.0002, 11.6248], + [124.6799, 12.0297], + [124.4932, 12.0978], + [124.3908, 12.2219], + [124.2762, 12.5333], + [124.6792, 12.5159], + [124.919, 12.5622] + ] + ], + [ + [ + [123.3553, 12.5477], + [123.5471, 12.4609], + [123.7673, 12.2141], + [123.8823, 12.2128], + [124.0403, 11.9881], + [123.9241, 11.8596], + [123.7117, 11.9544], + [123.5397, 12.194], + [123.4242, 12.2008], + [123.1814, 11.9309], + [123.2178, 12.2654], + [123.3553, 12.5477] + ] + ], + [ + [ + [122.1563, 12.6321], + [122.0808, 12.3155], + [121.9932, 12.4418], + [122.0191, 12.6117], + [122.1563, 12.6321] + ] + ], + [ + [ + [123.2014, 12.9064], + [122.9507, 13.0437], + [123.0398, 13.1281], + [123.2014, 12.9064] + ] + ], + [ + [ + [120.9787, 13.5265], + [121.0427, 13.413], + [121.2178, 13.4041], + [121.4305, 13.2243], + [121.4895, 13.0368], + [121.4856, 12.7685], + [121.5464, 12.6441], + [121.4378, 12.5216], + [121.4253, 12.3842], + [121.273, 12.269], + [121.1317, 12.2418], + [120.9164, 12.5124], + [120.9124, 12.6347], + [120.7979, 12.7294], + [120.7583, 13.0024], + [120.6423, 13.1833], + [120.48, 13.3015], + [120.44, 13.4272], + [120.5654, 13.5131], + [120.7546, 13.4667], + [120.9787, 13.5265] + ] + ], + [ + [ + [121.8875, 13.5548], + [122.1152, 13.465], + [122.1203, 13.3566], + [121.9932, 13.2016], + [121.8172, 13.3419], + [121.8875, 13.5548] + ] + ], + [ + [ + [124.2359, 14.0681], + [124.2774, 13.9555], + [124.418, 13.873], + [124.39, 13.7116], + [124.1702, 13.5298], + [124.0261, 13.6696], + [124.1218, 13.7798], + [124.1245, 14.0494], + [124.2359, 14.0681] + ] + ], + [ + [ + [120.9092, 18.5672], + [121.1068, 18.6427], + [121.6133, 18.3593], + [121.9746, 18.286], + [122.2202, 18.5224], + [122.3171, 18.3774], + [122.307, 18.2513], + [122.18, 18.1208], + [122.1401, 17.7983], + [122.1566, 17.6193], + [122.2511, 17.3602], + [122.4354, 17.2924], + [122.4104, 17.1755], + [122.5291, 17.0905], + [122.3455, 16.6425], + [122.2053, 16.4239], + [122.2039, 16.2638], + [121.7523, 16.0769], + [121.5778, 15.9321], + [121.6366, 15.7225], + [121.3792, 15.3082], + [121.4876, 15.1633], + [121.5945, 14.8592], + [121.6107, 14.6126], + [121.7316, 14.1882], + [121.9363, 13.9952], + [122.2319, 13.9064], + [122.2908, 14.0231], + [122.1702, 14.1396], + [122.471, 14.3459], + [122.7527, 14.3322], + [123.0122, 14.1057], + [123.1082, 13.7221], + [123.315, 13.8205], + [123.2181, 13.9927], + [123.3296, 14.0703], + [123.4778, 13.9505], + [123.9378, 13.784], + [123.7974, 13.688], + [123.5881, 13.7289], + [123.5285, 13.6268], + [123.7946, 13.3084], + [123.7495, 13.1547], + [123.9792, 13.0983], + [124.0816, 13.0095], + [124.1431, 12.7973], + [124.0952, 12.5571], + [123.8786, 12.6452], + [123.8191, 12.8319], + [123.5984, 12.8966], + [123.4413, 13.0369], + [123.3101, 13.0124], + [123.3008, 13.2355], + [123.1688, 13.4492], + [122.972, 13.5275], + [122.8147, 13.6538], + [122.739, 13.8183], + [122.5159, 13.9344], + [122.4976, 13.652], + [122.6218, 13.5527], + [122.6907, 13.2287], + [122.5051, 13.2392], + [122.5011, 13.3681], + [122.319, 13.5922], + [122.2075, 13.6143], + [122.1184, 13.7521], + [121.7249, 13.9691], + [121.4846, 13.8518], + [121.4641, 13.6948], + [121.2788, 13.595], + [120.9092, 13.8046], + [120.895, 13.9064], + [120.7459, 13.9338], + [120.6201, 13.8466], + [120.5873, 14.2003], + [120.8779, 14.4589], + [120.9704, 14.5019], + [120.9365, 14.6674], + [120.8301, 14.7636], + [120.6421, 14.787], + [120.5393, 14.7028], + [120.5979, 14.5056], + [120.4021, 14.4558], + [120.3674, 14.6208], + [120.1873, 14.775], + [120.0901, 14.7943], + [120.0051, 15.2694], + [119.8882, 15.429], + [119.9639, 15.5143], + [119.8789, 15.9147], + [119.7559, 15.9446], + [119.7557, 16.2034], + [119.9019, 16.2508], + [120.0912, 16.1535], + [120.1853, 16.0334], + [120.3338, 16.059], + [120.4021, 16.1655], + [120.3363, 16.2922], + [120.2761, 16.6119], + [120.3122, 16.7778], + [120.4273, 16.9619], + [120.4031, 17.2216], + [120.4417, 17.368], + [120.3338, 17.5564], + [120.4701, 18.091], + [120.5862, 18.3645], + [120.6111, 18.5386], + [120.9092, 18.5672] + ] + ] + ] + }, + "properties": { + "NAME": "Philippines", + "NAME_LONG": "Philippines", + "ADM0_A3": "PHL", + "ISO_A2": "PH", + "ISO_A3": "PHL", + "WB_A2": "PH", + "WB_A3": "PHL" + }, + "id": 179 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [153.2578, -11.3534], + [153.6956, -11.5213], + [153.4356, -11.5784], + [153.2717, -11.4533], + [153.2578, -11.3534] + ] + ], + [ + [ + [151.0481, -9.9352], + [151.3006, -9.9677], + [151.2119, -10.1867], + [150.958, -10.1049], + [150.8823, -9.903], + [151.0481, -9.9352] + ] + ], + [ + [ + [150.6561, -9.4311], + [150.8884, -9.5214], + [150.8418, -9.6974], + [150.5493, -9.6232], + [150.4269, -9.4187], + [150.5055, -9.3377], + [150.6561, -9.4311] + ] + ], + [ + [ + [150.3656, -9.364], + [150.3352, -9.4713], + [150.1082, -9.361], + [150.2145, -9.2058], + [150.3656, -9.364] + ] + ], + [ + [ + [152.4716, -8.9495], + [152.5179, -8.9964], + [152.7942, -9.0035], + [152.9512, -9.0945], + [152.8116, -9.2547], + [152.5981, -9.0686], + [152.5063, -9.0388], + [152.4716, -8.9495] + ] + ], + [ + [ + [143.6423, -8.7262], + [143.4123, -8.5956], + [143.4749, -8.5253], + [143.6423, -8.7262] + ] + ], + [ + [ + [143.3654, -8.3676], + [143.5737, -8.3737], + [143.5301, -8.4855], + [143.3654, -8.3676] + ] + ], + [ + [ + [147.8286, -5.4881], + [148.0492, -5.6061], + [148.0246, -5.842], + [147.8958, -5.7707], + [147.7691, -5.6117], + [147.8286, -5.4881] + ] + ], + [ + [ + [154.8108, -5.4836], + [155.0693, -5.5522], + [155.1921, -5.7659], + [155.4038, -6.006], + [155.4522, -6.1371], + [155.7139, -6.2792], + [155.9168, -6.5175], + [155.9675, -6.7271], + [155.7178, -6.8728], + [155.5236, -6.8391], + [155.3609, -6.7459], + [155.1873, -6.5545], + [155.2346, -6.3634], + [154.9787, -6.193], + [154.7559, -5.9478], + [154.7002, -5.7669], + [154.8108, -5.4836] + ] + ], + [ + [ + [147.2233, -5.4242], + [147.1272, -5.4433], + [147.0104, -5.3349], + [147.134, -5.1909], + [147.209, -5.2558], + [147.2233, -5.4242] + ] + ], + [ + [ + [152.2334, -4.1904], + [152.1779, -4.2968], + [152.4146, -4.3604], + [152.3652, -4.4721], + [152.4116, -4.6838], + [152.2918, -4.9355], + [152.1367, -4.9991], + [151.9927, -4.9718], + [151.988, -5.164], + [152.1231, -5.2908], + [152.0989, -5.4557], + [151.786, -5.5849], + [151.7394, -5.5341], + [151.479, -5.5299], + [151.4651, -5.685], + [151.2085, -5.9428], + [150.5881, -6.1784], + [150.4651, -6.274], + [150.273, -6.295], + [150.054, -6.2577], + [149.6294, -6.2992], + [149.464, -6.1026], + [149.3042, -6.0587], + [149.1419, -6.1442], + [149.0121, -6.0276], + [148.8539, -5.9798], + [148.772, -5.8733], + [148.3862, -5.7751], + [148.3247, -5.6464], + [148.4299, -5.4448], + [148.5564, -5.54], + [148.6519, -5.4809], + [148.8328, -5.5339], + [148.978, -5.4653], + [149.2, -5.5652], + [149.3905, -5.5873], + [149.6149, -5.5136], + [149.7184, -5.5689], + [149.8728, -5.5276], + [150.0581, -5.3429], + [150.1423, -5.5341], + [150.3069, -5.5615], + [150.4234, -5.4566], + [150.719, -5.5341], + [151.0222, -5.3903], + [151.0829, -5.1638], + [151.388, -4.9145], + [151.6125, -4.9656], + [151.6956, -4.8188], + [151.6091, -4.4518], + [151.5073, -4.2292], + [151.5403, -4.1767], + [151.8171, -4.214], + [151.9647, -4.3312], + [152.2334, -4.1904] + ] + ], + [ + [ + [140.977, -9.1061], + [140.9769, -7.9621], + [140.9772, -6.8966], + [140.8492, -6.7028], + [140.9769, -6.3351], + [140.9769, -5.6212], + [140.9758, -4.5959], + [140.9735, -3.8], + [140.9745, -2.6005], + [141.2759, -2.6423], + [141.9055, -2.9672], + [142, -2.956], + [142.1819, -3.0802], + [143.0293, -3.3556], + [143.4779, -3.4206], + [143.6187, -3.5449], + [143.818, -3.6217], + [143.9959, -3.7931], + [144.2036, -3.8378], + [144.5134, -3.8176], + [144.5513, -3.9684], + [144.8678, -4.0992], + [145.051, -4.3419], + [145.3457, -4.3902], + [145.6902, -4.7682], + [145.8119, -4.861], + [145.8108, -5.0665], + [145.7274, -5.4225], + [146.2849, -5.5826], + [146.4609, -5.5993], + [146.8128, -5.8386], + [147.0422, -5.9387], + [147.4491, -5.9616], + [147.8267, -6.3354], + [147.8675, -6.4763], + [147.854, -6.691], + [147.7756, -6.7179], + [146.9773, -6.7404], + [146.9562, -6.9547], + [147.1414, -7.2131], + [147.1619, -7.3906], + [147.3545, -7.5153], + [147.6834, -7.8107], + [147.7268, -7.9321], + [147.8765, -7.9372], + [147.9985, -8.0554], + [148.114, -8.0554], + [148.2108, -8.3061], + [148.2376, -8.5693], + [148.4368, -8.6662], + [148.5593, -9.0325], + [148.7583, -9.1037], + [148.8916, -9.051], + [149.2437, -8.9972], + [149.3067, -9.1174], + [149.1829, -9.3681], + [149.2266, -9.4867], + [149.4572, -9.5942], + [149.731, -9.5978], + [150.0122, -9.6422], + [150.0559, -9.715], + [149.731, -9.8093], + [149.9395, -10.0624], + [150.1968, -10.0951], + [150.3999, -10.3002], + [150.3469, -10.3653], + [150.6473, -10.477], + [150.6929, -10.5567], + [150.4157, -10.6819], + [150.2113, -10.7013], + [150.0674, -10.6399], + [149.9403, -10.4406], + [149.7484, -10.3383], + [149.4606, -10.3523], + [149.0674, -10.2346], + [148.978, -10.2761], + [148.5379, -10.1723], + [148.402, -10.2005], + [148.2313, -10.1056], + [148.0183, -10.1248], + [147.7617, -10.0597], + [147.5176, -9.879], + [147.491, -9.7677], + [147.3101, -9.5388], + [147.0527, -9.4602], + [146.9149, -9.1242], + [146.6268, -9.023], + [146.5759, -8.822], + [146.2772, -8.4352], + [146.2219, -8.2604], + [146.1028, -8.1003], + [145.6133, -7.9325], + [145.4656, -7.9455], + [145.3216, -7.862], + [144.8796, -7.7817], + [144.6995, -7.6168], + [144.4313, -7.6122], + [144.2149, -7.796], + [143.9243, -7.6943], + [143.8562, -7.8083], + [143.9568, -7.9723], + [143.7673, -8.0402], + [143.548, -8.0317], + [143.5921, -8.242], + [143.3379, -8.2477], + [142.9805, -8.3356], + [143.2616, -8.5924], + [143.3999, -8.7822], + [143.4055, -8.9622], + [143.1734, -9.0429], + [142.6526, -9.3303], + [142.2234, -9.1612], + [141.8684, -9.2204], + [141.51, -9.215], + [141.4217, -9.1503], + [141.115, -9.2184], + [140.977, -9.1061] + ] + ], + [ + [ + [151.0436, -2.7106], + [151.2163, -2.8692], + [151.4373, -2.9089], + [151.8281, -3.1904], + [152.0525, -3.2467], + [152.2175, -3.457], + [152.4929, -3.6428], + [152.5752, -3.8181], + [152.9563, -3.9986], + [153.1372, -4.2695], + [153.054, -4.4523], + [153.0752, -4.6018], + [152.9802, -4.7595], + [152.8738, -4.7888], + [152.7326, -4.6496], + [152.6712, -4.4518], + [152.6878, -4.1638], + [152.5189, -3.8547], + [152.2886, -3.5698], + [152.1711, -3.4902], + [151.9841, -3.4589], + [151.8091, -3.3611], + [151.6125, -3.1662], + [151.0906, -2.8327], + [150.7949, -2.7291], + [150.9369, -2.6492], + [151.0436, -2.7106] + ] + ], + [ + [ + [150.2302, -2.3835], + [150.4473, -2.4845], + [150.4513, -2.6584], + [150.1868, -2.6795], + [149.9946, -2.4665], + [150.2302, -2.3835] + ] + ], + [ + [ + [146.8923, -1.9521], + [147.11, -1.9633], + [147.3332, -2.0323], + [147.2165, -2.183], + [146.648, -2.1694], + [146.6521, -1.9645], + [146.8923, -1.9521] + ] + ], + [ + [ + [149.5869, -1.3522], + [149.7248, -1.4289], + [149.667, -1.5759], + [149.541, -1.4645], + [149.5869, -1.3522] + ] + ] + ] + }, + "properties": { + "NAME": "Papua New Guinea", + "NAME_LONG": "Papua New Guinea", + "ADM0_A3": "PNG", + "ISO_A2": "PG", + "ISO_A3": "PNG", + "WB_A2": "PG", + "WB_A3": "PNG" + }, + "id": 181 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [19.6095, 54.4567], + [19.6803, 54.4367], + [20.9296, 54.3978], + [22.6984, 54.3429], + [22.7672, 54.3563], + [22.9733, 54.3754], + [23.4325, 54.1693], + [23.4856, 53.9393], + [23.5909, 53.6113], + [23.8937, 53.152], + [23.9225, 52.7426], + [23.869, 52.67], + [23.3923, 52.5096], + [23.1656, 52.2894], + [23.6375, 52.0845], + [23.6764, 51.9941], + [23.5603, 51.7545], + [23.6062, 51.5174], + [23.634, 51.3393], + [23.8747, 51.1361], + [24.1065, 50.5386], + [23.9813, 50.4048], + [23.7475, 50.3894], + [23.1015, 49.9571], + [22.6409, 49.5288], + [22.7242, 49.3671], + [22.7445, 49.0455], + [22.5396, 49.0722], + [22.0124, 49.2111], + [21.8196, 49.3772], + [21.2744, 49.4473], + [21.0535, 49.4145], + [20.9424, 49.2959], + [20.6895, 49.4005], + [20.3295, 49.3918], + [20.1302, 49.3039], + [20.07, 49.1831], + [19.7518, 49.2191], + [19.4434, 49.6018], + [19.1725, 49.4023], + [18.9623, 49.3892], + [18.8332, 49.5103], + [18.7735, 49.6758], + [18.6373, 49.7003], + [18.5592, 49.9072], + [18.3069, 49.9097], + [18.0916, 50.0172], + [17.8394, 49.9736], + [17.5842, 50.1459], + [17.6064, 50.2582], + [17.3348, 50.27], + [17.1854, 50.3757], + [16.9158, 50.4311], + [16.9603, 50.232], + [16.7012, 50.0949], + [16.3342, 50.3719], + [16.3316, 50.644], + [15.8482, 50.6752], + [15.7674, 50.7442], + [15.3497, 50.7837], + [15.2271, 50.9774], + [14.9965, 51.0078], + [14.8104, 50.8584], + [14.9553, 51.064], + [15.0195, 51.2717], + [14.9451, 51.4492], + [14.7322, 51.5158], + [14.7195, 51.6756], + [14.5858, 51.8039], + [14.7614, 52.0767], + [14.5398, 52.4219], + [14.6448, 52.5769], + [14.216, 52.818], + [14.1445, 52.9599], + [14.3433, 53.0486], + [14.4094, 53.2724], + [14.2639, 53.7], + [14.5449, 53.704], + [14.5759, 53.8548], + [14.2008, 53.8782], + [14.2101, 53.9385], + [14.367, 53.917], + [14.7819, 54.0346], + [15.8597, 54.25], + [16.2201, 54.2766], + [16.5696, 54.5572], + [16.94, 54.606], + [17.3374, 54.749], + [17.8854, 54.8241], + [18.3169, 54.8383], + [18.4292, 54.7817], + [18.5881, 54.4337], + [19.0021, 54.3449], + [19.3772, 54.3776], + [19.6095, 54.4567] + ] + ] + }, + "properties": { + "NAME": "Poland", + "NAME_LONG": "Poland", + "ADM0_A3": "POL", + "ISO_A2": "PL", + "ISO_A3": "POL", + "WB_A2": "PL", + "WB_A3": "POL" + }, + "id": 182 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-67.0124, 18.5058], + [-65.9889, 18.4631], + [-65.6632, 18.3664], + [-65.5918, 18.2309], + [-65.7375, 18.1827], + [-65.8303, 18.0269], + [-66.1632, 17.9291], + [-66.7659, 17.9844], + [-66.9242, 17.9496], + [-67.2148, 17.9663], + [-67.1519, 18.2034], + [-67.2708, 18.3618], + [-67.0124, 18.5058] + ] + ] + }, + "properties": { + "NAME": "Puerto Rico", + "NAME_LONG": "Puerto Rico", + "ADM0_A3": "PRI", + "ISO_A2": "PR", + "ISO_A3": "PRI", + "WB_A2": "PR", + "WB_A3": "PRI" + }, + "id": 183 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [130.5308, 42.5305], + [130.7, 42.2951], + [130.4807, 42.3398], + [130.073, 42.0785], + [129.9647, 41.8987], + [129.6908, 41.6497], + [129.6594, 41.4646], + [129.7999, 41.3686], + [129.7119, 41.1226], + [129.753, 40.9099], + [129.2064, 40.6755], + [129.0776, 40.4726], + [128.6553, 40.3202], + [128.6646, 40.2012], + [128.3021, 40.0334], + [128.0068, 40.0452], + [127.8746, 39.8928], + [127.6237, 39.8309], + [127.5208, 39.747], + [127.5746, 39.595], + [127.3784, 39.3715], + [127.4522, 39.166], + [127.7696, 39.1092], + [128.0147, 38.8581], + [128.3649, 38.6243], + [128.2681, 38.4535], + [128.0399, 38.3043], + [127.7537, 38.3254], + [127.1575, 38.3072], + [127.0267, 38.2545], + [126.7619, 37.979], + [126.6675, 37.8278], + [126.5762, 37.7775], + [126.3977, 37.8918], + [126.0628, 37.8022], + [125.8955, 37.8648], + [125.804, 37.989], + [125.6092, 37.8063], + [125.3486, 37.738], + [125.3006, 37.8952], + [125.0132, 37.906], + [125.0135, 38.0624], + [124.9049, 38.1248], + [124.8839, 38.3553], + [125.0582, 38.5685], + [125.2596, 38.6697], + [125.1372, 38.8035], + [125.2874, 39.1523], + [125.4319, 39.3007], + [125.2252, 39.5912], + [125.0477, 39.6042], + [124.8663, 39.7139], + [124.6749, 39.6221], + [124.5549, 39.8171], + [124.4344, 39.8308], + [124.37, 40.0983], + [124.8955, 40.4836], + [125.3636, 40.6467], + [125.7609, 40.8857], + [126.0078, 40.8993], + [126.1474, 41.0923], + [126.2607, 41.1431], + [126.5013, 41.4344], + [126.6179, 41.6659], + [126.8871, 41.7849], + [127.2691, 41.505], + [127.6383, 41.4299], + [127.9442, 41.4709], + [128.1857, 41.4045], + [128.303, 41.5834], + [128.04, 41.8796], + [128.0346, 41.9937], + [128.262, 42.0329], + [128.5024, 41.9961], + [128.9638, 42.0885], + [129.2112, 42.22], + [129.2431, 42.3787], + [129.7033, 42.4424], + [129.7613, 42.746], + [129.8798, 42.996], + [130.1215, 42.9818], + [130.239, 42.9022], + [130.243, 42.7434], + [130.5308, 42.5305] + ] + ] + }, + "properties": { + "NAME": "North Korea", + "NAME_LONG": "Dem. Rep. Korea", + "ADM0_A3": "PRK", + "ISO_A2": "KP", + "ISO_A3": "PRK", + "WB_A2": "KP", + "WB_A3": "PRK" + }, + "id": 184 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-17.068, 32.8142], + [-16.9197, 32.8412], + [-16.75, 32.7306], + [-16.9768, 32.6472], + [-17.068, 32.8142] + ] + ], + [ + [ + [-25.6807, 37.8433], + [-25.1592, 37.852], + [-25.1947, 37.7407], + [-25.5057, 37.7067], + [-25.6807, 37.8433] + ] + ], + [ + [ + [-28.0471, 38.4326], + [-28.2419, 38.3776], + [-28.4595, 38.4057], + [-28.3745, 38.5505], + [-28.0471, 38.4326] + ] + ], + [ + [ + [-27.0517, 38.6543], + [-27.3276, 38.6663], + [-27.2982, 38.8035], + [-27.0426, 38.7445], + [-27.0517, 38.6543] + ] + ], + [ + [ + [-7.4144, 37.1928], + [-7.7866, 37.0227], + [-7.9814, 37.0017], + [-8.1792, 37.0881], + [-8.6268, 37.1212], + [-8.8789, 37.0472], + [-8.8814, 37.2325], + [-8.7979, 37.4896], + [-8.7972, 37.8449], + [-8.8675, 37.9736], + [-8.7744, 38.1869], + [-8.7951, 38.3592], + [-8.9058, 38.5124], + [-9.2004, 38.4125], + [-9.2527, 38.6655], + [-9.4917, 38.7076], + [-9.4366, 39.0295], + [-9.3509, 39.1973], + [-9.3529, 39.3679], + [-9.0904, 39.5793], + [-8.8682, 40.1248], + [-8.8654, 40.2755], + [-8.6551, 40.9938], + [-8.7748, 41.4683], + [-8.8803, 41.7369], + [-8.7508, 41.969], + [-8.6269, 42.051], + [-8.2224, 42.1536], + [-8.108, 42.0109], + [-8.2317, 41.886], + [-8.0486, 41.8164], + [-7.722, 41.8993], + [-7.5884, 41.8242], + [-7.2515, 41.8637], + [-7.1454, 41.9875], + [-6.6568, 41.9331], + [-6.5242, 41.8674], + [-6.5553, 41.6749], + [-6.3659, 41.6636], + [-6.2059, 41.5703], + [-6.4959, 41.2949], + [-6.6466, 41.2676], + [-6.818, 41.0541], + [-6.9425, 41.016], + [-6.8367, 40.8402], + [-6.8571, 40.4421], + [-6.7944, 40.3564], + [-7.0431, 40.1814], + [-6.8797, 40.0092], + [-7.0358, 39.6893], + [-7.5573, 39.6798], + [-7.3135, 39.4574], + [-7.3267, 39.3413], + [-7.1675, 39.1135], + [-6.9733, 39.014], + [-7.0561, 38.8551], + [-7.2704, 38.7375], + [-7.3592, 38.4464], + [-7.1269, 38.1909], + [-6.9475, 38.1966], + [-7.024, 38.0226], + [-7.2686, 37.9492], + [-7.5297, 37.5672], + [-7.4144, 37.1928] + ] + ] + ] + }, + "properties": { + "NAME": "Portugal", + "NAME_LONG": "Portugal", + "ADM0_A3": "PRT", + "ISO_A2": "PT", + "ISO_A3": "PRT", + "WB_A2": "PT", + "WB_A3": "PRT" + }, + "id": 185 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-58.1588, -20.1651], + [-58.083, -20.3762], + [-57.9894, -20.4331], + [-57.991, -20.6206], + [-57.8602, -20.7303], + [-57.9087, -20.8816], + [-57.8254, -20.9986], + [-57.8556, -21.3307], + [-57.9299, -21.4531], + [-57.8956, -21.6884], + [-57.9868, -22.0353], + [-57.8439, -22.1437], + [-57.385, -22.2133], + [-57.2138, -22.1882], + [-56.8429, -22.289], + [-56.6547, -22.2373], + [-56.4218, -22.0745], + [-56.1968, -22.2793], + [-55.8929, -22.3068], + [-55.7516, -22.4163], + [-55.6312, -22.6268], + [-55.6378, -23.0007], + [-55.5352, -23.2291], + [-55.5305, -23.6035], + [-55.4453, -23.7354], + [-55.398, -23.9768], + [-55.2009, -24.0195], + [-54.9436, -23.9692], + [-54.6126, -23.8112], + [-54.2453, -24.0506], + [-54.3346, -24.1489], + [-54.2611, -24.3295], + [-54.3213, -24.6284], + [-54.4623, -25.0372], + [-54.4297, -25.1306], + [-54.6098, -25.4328], + [-54.6002, -25.5749], + [-54.5879, -25.8108], + [-54.6623, -25.9799], + [-54.6383, -26.197], + [-54.7065, -26.4418], + [-54.9753, -26.7878], + [-55.414, -26.9799], + [-55.599, -27.1826], + [-55.5913, -27.3284], + [-55.7547, -27.4437], + [-55.9131, -27.3278], + [-56.1246, -27.2989], + [-56.2798, -27.3896], + [-56.3675, -27.5806], + [-56.5464, -27.4551], + [-56.7712, -27.5067], + [-56.9044, -27.4187], + [-57.1801, -27.4873], + [-57.3352, -27.4095], + [-57.5357, -27.4072], + [-57.6978, -27.3335], + [-58.022, -27.2598], + [-58.5108, -27.2784], + [-58.6533, -27.1563], + [-58.5115, -27.0602], + [-58.4598, -26.9282], + [-58.2479, -26.7582], + [-58.2062, -26.4027], + [-58.0865, -26.1272], + [-57.8727, -26.0103], + [-57.8754, -25.8761], + [-57.7537, -25.6727], + [-57.6231, -25.6154], + [-57.5569, -25.4598], + [-57.7541, -25.1809], + [-58.2241, -24.9412], + [-58.312, -24.9936], + [-58.4734, -24.8513], + [-58.8092, -24.7768], + [-59.0009, -24.6442], + [-59.341, -24.4876], + [-59.4597, -24.3585], + [-60.0337, -24.007], + [-60.328, -24.018], + [-60.5936, -23.9122], + [-61.0063, -23.8055], + [-61.1099, -23.607], + [-61.297, -23.4814], + [-61.4918, -23.4132], + [-61.7443, -23.2348], + [-61.9564, -23.0344], + [-62.1708, -22.7173], + [-62.2872, -22.4839], + [-62.6327, -22.296], + [-62.6504, -22.2345], + [-62.2757, -21.0666], + [-62.2773, -20.5798], + [-61.9443, -20.1041], + [-61.7612, -19.6578], + [-60.8339, -19.4679], + [-60.0064, -19.2981], + [-59.0895, -19.2867], + [-58.1753, -19.8214], + [-58.1588, -20.1651] + ] + ] + }, + "properties": { + "NAME": "Paraguay", + "NAME_LONG": "Paraguay", + "ADM0_A3": "PRY", + "ISO_A2": "PY", + "ISO_A3": "PRY", + "WB_A2": "PY", + "WB_A3": "PRY" + }, + "id": 186 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [34.2484, 31.2114], + [34.2003, 31.3143], + [34.4812, 31.5831], + [34.2484, 31.2114] + ] + ], + [ + [ + [35.561, 32.3847], + [35.5228, 32.0578], + [35.5594, 31.7653], + [35.4581, 31.4919], + [35.2233, 31.381], + [34.9274, 31.3449], + [34.8672, 31.3964], + [34.9736, 31.6304], + [35.1814, 31.8041], + [34.9761, 31.9482], + [34.9461, 32.1773], + [35.0644, 32.4631], + [35.2086, 32.5426], + [35.561, 32.3847] + ] + ] + ] + }, + "properties": { + "NAME": "Palestine", + "NAME_LONG": "Palestine", + "ADM0_A3": "PSX", + "ISO_A2": "PS", + "ISO_A3": "PSE", + "WB_A2": "GZ", + "WB_A3": "WBG" + }, + "id": 187 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-149.3039, -17.7121], + [-149.5875, -17.7312], + [-149.6043, -17.5258], + [-149.3541, -17.5401], + [-149.3039, -17.7121] + ] + ] + }, + "properties": { + "NAME": "Fr. Polynesia", + "NAME_LONG": "French Polynesia", + "ADM0_A3": "PYF", + "ISO_A2": "PF", + "ISO_A3": "PYF", + "WB_A2": "PF", + "WB_A3": "PYF" + }, + "id": 188 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [51.2153, 24.6259], + [50.9789, 24.5677], + [50.8079, 24.7466], + [50.8511, 24.8908], + [50.7757, 25.0919], + [50.751, 25.4196], + [50.8761, 25.6318], + [50.9017, 25.7895], + [51.0474, 26.053], + [51.2512, 26.1601], + [51.3884, 25.967], + [51.5775, 25.8808], + [51.5529, 25.653], + [51.4719, 25.5214], + [51.5132, 25.3083], + [51.6165, 25.1372], + [51.5869, 24.9534], + [51.4436, 24.6798], + [51.2153, 24.6259] + ] + ] + }, + "properties": { + "NAME": "Qatar", + "NAME_LONG": "Qatar", + "ADM0_A3": "QAT", + "ISO_A2": "QA", + "ISO_A3": "QAT", + "WB_A2": "QA", + "WB_A3": "QAT" + }, + "id": 189 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [28.1995, 45.4618], + [28.3302, 45.3229], + [28.7101, 45.227], + [29.3221, 45.4438], + [29.6503, 45.3461], + [29.659, 45.2159], + [29.6112, 44.8493], + [29.0982, 44.7754], + [29.0452, 45.0048], + [28.8801, 44.9548], + [28.9238, 44.7578], + [28.7888, 44.7062], + [28.844, 44.4937], + [28.6409, 44.3286], + [28.6712, 44.0033], + [28.5784, 43.7413], + [28.2213, 43.762], + [27.981, 43.8493], + [27.9358, 43.9644], + [27.6563, 44.0239], + [27.3838, 44.0151], + [27.2511, 44.1224], + [27.0275, 44.177], + [26.1507, 44.0124], + [25.7811, 43.732], + [25.3596, 43.6543], + [24.9637, 43.7496], + [24.7056, 43.7438], + [24.5001, 43.7995], + [24.1594, 43.7529], + [23.3252, 43.8866], + [22.9196, 43.8342], + [22.8859, 43.9945], + [23.023, 44.0316], + [22.6916, 44.2284], + [22.4841, 44.4998], + [22.6212, 44.6374], + [22.4837, 44.724], + [22.3197, 44.6853], + [22.1851, 44.5151], + [22.0043, 44.6515], + [21.6563, 44.6877], + [21.3685, 44.8649], + [21.4933, 45.1451], + [20.9815, 45.3328], + [20.7607, 45.4933], + [20.7134, 45.7333], + [20.5721, 45.8877], + [20.3386, 45.9928], + [20.2428, 46.1081], + [20.664, 46.1378], + [20.8196, 46.2717], + [21.0515, 46.2361], + [21.1645, 46.3183], + [21.3162, 46.6166], + [21.4836, 46.6849], + [21.6328, 47.0227], + [22.0016, 47.3938], + [21.9889, 47.4929], + [22.2617, 47.7158], + [22.7458, 47.825], + [22.8776, 47.9467], + [23.2314, 48.0797], + [23.3601, 47.9931], + [23.9773, 47.9623], + [24.231, 47.897], + [24.5616, 47.9405], + [24.8966, 47.7101], + [25.1219, 47.7703], + [25.2617, 47.8986], + [26.1731, 47.9931], + [26.3035, 48.212], + [26.6179, 48.259], + [26.8049, 48.2583], + [27.048, 48.1222], + [27.272, 47.715], + [27.5632, 47.4683], + [27.8066, 47.1446], + [28.037, 47.0165], + [28.2341, 46.6624], + [28.2461, 46.4279], + [28.0861, 46.0006], + [28.1995, 45.4618] + ] + ] + }, + "properties": { + "NAME": "Romania", + "NAME_LONG": "Romania", + "ADM0_A3": "ROU", + "ISO_A2": "RO", + "ISO_A3": "ROU", + "WB_A2": "RO", + "WB_A3": "ROM" + }, + "id": 190 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [146.3338, 44.4285], + [146.3259, 44.2922], + [145.9749, 44.2923], + [146.1193, 44.506], + [146.3338, 44.4285] + ] + ], + [ + [ + [148.8167, 45.3335], + [148.5562, 45.307], + [148.2158, 45.1957], + [147.9903, 45.0058], + [147.7683, 44.9433], + [147.3884, 44.7367], + [147.2644, 44.8676], + [147.8862, 45.2187], + [148.3119, 45.2753], + [148.6211, 45.4982], + [148.7992, 45.5181], + [148.8167, 45.3335] + ] + ], + [ + [ + [150.5693, 46.2318], + [150.2454, 46.037], + [150.1423, 45.898], + [149.9476, 45.8224], + [149.6378, 45.6109], + [149.4823, 45.6694], + [149.6673, 45.8532], + [149.811, 45.8798], + [150.2111, 46.1792], + [150.5693, 46.2318] + ] + ], + [ + [ + [156.1195, 50.498], + [155.8849, 50.2537], + [155.5615, 50.1666], + [155.3845, 50.0375], + [155.2209, 50.1099], + [155.4102, 50.3602], + [155.7178, 50.4231], + [155.8895, 50.6909], + [156.0733, 50.7816], + [156.1195, 50.498] + ] + ], + [ + [ + [156.4058, 50.6542], + [156.1685, 50.7366], + [156.3955, 50.8685], + [156.511, 50.7658], + [156.4058, 50.6542] + ] + ], + [ + [ + [142.8428, 54.2807], + [143.0039, 54.1355], + [142.9059, 53.9119], + [142.9397, 53.7497], + [143.29, 53.1519], + [143.3379, 52.7038], + [143.1187, 52.3378], + [143.0977, 52.1042], + [143.1631, 51.874], + [143.3104, 51.7543], + [143.2212, 51.5316], + [143.4618, 51.4695], + [143.7903, 50.3092], + [144.0027, 50.0128], + [144.2222, 49.5326], + [144.2827, 49.2502], + [143.499, 49.3492], + [143.1742, 49.246], + [142.9746, 49.0459], + [142.9885, 48.9167], + [142.7927, 48.5626], + [142.5496, 48.0201], + [142.5453, 47.7667], + [142.7595, 47.4312], + [143.0164, 47.2536], + [143.0325, 47.0707], + [143.1729, 46.7078], + [143.4187, 46.7997], + [143.6257, 46.3747], + [143.4214, 46.2231], + [143.3428, 46.5628], + [142.7722, 46.6098], + [142.7246, 46.7408], + [142.4572, 46.6308], + [142.2819, 46.3275], + [142.2017, 46.0307], + [142.0398, 45.9243], + [141.9326, 46.0358], + [141.8223, 46.6023], + [142.0567, 47.0537], + [141.9751, 47.2976], + [141.9658, 47.6125], + [142.1911, 47.9667], + [142.1387, 48.3181], + [141.9196, 48.6091], + [141.8574, 48.7742], + [141.9673, 48.8624], + [142.0772, 49.1982], + [142.0628, 49.3149], + [142.1597, 49.678], + [142.125, 49.8977], + [142.1738, 50.0864], + [142.1501, 50.3457], + [142.0452, 50.5283], + [142.1284, 50.8945], + [142.2669, 51.0743], + [142.0789, 51.4714], + [141.8171, 51.6723], + [141.6755, 51.9124], + [141.661, 52.3825], + [141.8438, 52.5908], + [141.9284, 53.0207], + [141.7688, 53.3716], + [142.2297, 53.5208], + [142.3074, 53.3664], + [142.5767, 53.5001], + [142.7083, 53.9482], + [142.4095, 54.2316], + [142.6255, 54.3273], + [142.8428, 54.2807] + ] + ], + [ + [ + [137.7864, 55.1376], + [138.0249, 55.0557], + [137.9862, 54.7974], + [137.7061, 54.625], + [137.4854, 54.8793], + [137.4614, 55.0268], + [137.6061, 55.2001], + [137.7864, 55.1376] + ] + ], + [ + [ + [22.7672, 54.3563], + [22.6984, 54.3429], + [20.9296, 54.3978], + [19.6803, 54.4367], + [19.6095, 54.4567], + [19.8319, 54.5981], + [20.0337, 54.9482], + [20.3656, 54.9462], + [20.634, 55.0488], + [20.9246, 55.2827], + [20.9894, 55.2731], + [20.5309, 54.9647], + [21.0789, 54.8998], + [21.2302, 54.9389], + [21.1813, 55.1933], + [21.2676, 55.2487], + [22.0999, 55.0299], + [22.5807, 55.0576], + [22.8089, 54.8938], + [22.6804, 54.4532], + [22.7672, 54.3563] + ] + ], + [ + [ + [165.9556, 55.3642], + [166.2878, 55.3039], + [166.2503, 55.1523], + [166.6498, 54.8445], + [166.3565, 54.8395], + [166.0829, 55.0606], + [165.9556, 55.3642] + ] + ], + [ + [ + [164.5808, 59.1832], + [164.7341, 59.0233], + [164.6319, 58.8654], + [164.1212, 58.7807], + [163.5855, 58.5579], + [163.9667, 59.0286], + [164.5808, 59.1832] + ] + ], + [ + [ + [69.2798, 66.7945], + [70.0857, 66.6901], + [70.0436, 66.5013], + [69.5454, 66.591], + [69.2798, 66.7945] + ] + ], + [ + [ + [50.2759, 69.192], + [49.9549, 69.0747], + [49.7197, 68.89], + [49.2485, 68.78], + [48.5921, 68.7309], + [48.2188, 68.9092], + [48.3042, 69.2768], + [48.8063, 69.4932], + [49.2717, 69.508], + [50.1644, 69.2609], + [50.2759, 69.192] + ] + ], + [ + [ + [169.4123, 69.7702], + [169.1895, 69.5752], + [168.8745, 69.5679], + [168.1725, 69.6952], + [167.7909, 69.8083], + [168.2647, 70.0241], + [169.4238, 69.873], + [169.4123, 69.7702] + ] + ], + [ + [ + [59.3518, 70.3531], + [59.7829, 70.1315], + [60.4759, 69.9205], + [60.4759, 69.7225], + [60.201, 69.6851], + [59.5635, 69.715], + [59.4315, 69.8895], + [59.053, 69.9031], + [58.6956, 70.0028], + [58.453, 70.1955], + [58.5223, 70.3311], + [59.0236, 70.4798], + [59.3518, 70.3531] + ] + ], + [ + [ + [52.7411, 71.4058], + [53.061, 71.2382], + [52.7998, 71.093], + [52.2578, 71.3489], + [52.7411, 71.4058] + ] + ], + [ + [ + [178.8547, 71.2126], + [179.5635, 71.4515], + [180, 71.5364], + [180, 71.0526], + [180, 70.9924], + [179.667, 70.8748], + [179.131, 70.8787], + [178.832, 70.8085], + [178.6227, 71.0377], + [178.8547, 71.2126] + ] + ], + [ + [ + [137.8701, 71.5795], + [137.7674, 71.4307], + [137.3441, 71.4276], + [137.2183, 71.5762], + [137.8701, 71.5795] + ] + ], + [ + [ + [77.7708, 72.305], + [76.918, 72.293], + [77.6102, 72.6347], + [78.3945, 72.4914], + [77.7708, 72.305] + ] + ], + [ + [ + [129.3341, 72.7737], + [128.3171, 72.8123], + [128.419, 72.8693], + [128.9941, 72.9325], + [129.3341, 72.7737] + ] + ], + [ + [ + [79.5414, 72.9255], + [79.572, 72.7405], + [78.9099, 72.7413], + [78.5923, 72.8621], + [79.1404, 73.0954], + [79.5414, 72.9255] + ] + ], + [ + [ + [74.8452, 73.0937], + [74.465, 72.8996], + [74.0933, 73.0278], + [74.2117, 73.1146], + [74.8452, 73.0937] + ] + ], + [ + [ + [55.3042, 73.3393], + [56.4352, 73.2301], + [56.5484, 73.1216], + [56.2254, 73.009], + [56.2199, 72.8266], + [55.7385, 72.7842], + [55.6848, 72.5733], + [55.377, 72.3027], + [55.575, 72.1997], + [55.3428, 72.0656], + [55.6721, 71.611], + [56.1057, 71.259], + [57.0632, 70.8625], + [57.6387, 70.7299], + [57.1719, 70.6132], + [56.3618, 70.6472], + [55.8176, 70.6133], + [55.4446, 70.7436], + [55.2327, 70.6666], + [54.7606, 70.6806], + [54.4924, 70.7845], + [54.0065, 70.7578], + [53.4919, 71.0725], + [53.577, 71.1993], + [53.2517, 71.456], + [52.8684, 71.4022], + [52.5739, 71.5759], + [51.862, 71.4562], + [51.5324, 71.5659], + [51.4014, 71.8705], + [51.61, 72.0917], + [52.3323, 72.0706], + [52.6688, 72.3064], + [52.6974, 72.4976], + [52.9142, 72.597], + [52.3976, 72.7179], + [52.6167, 72.8632], + [53.1419, 72.9625], + [53.1556, 73.1506], + [53.7532, 73.2989], + [54.1908, 73.2722], + [54.9348, 73.4254], + [55.3042, 73.3393] + ] + ], + [ + [ + [70.9487, 73.5175], + [71.6691, 73.2275], + [71.4947, 73.1501], + [70.2566, 73.0383], + [69.9343, 73.1317], + [69.9827, 73.4081], + [70.9487, 73.5175] + ] + ], + [ + [ + [142.2738, 73.8657], + [142.5828, 73.8253], + [143.4072, 73.5428], + [143.5651, 73.2312], + [143.1749, 73.1766], + [141.5124, 73.2994], + [140.7886, 73.41], + [139.9651, 73.3266], + [139.9065, 73.471], + [140.4933, 73.485], + [140.8664, 73.7798], + [141.1272, 73.8817], + [142.0452, 73.9166], + [142.2738, 73.8657] + ] + ], + [ + [ + [140.5451, 73.9158], + [140.1647, 74.0706], + [140.2219, 74.2201], + [140.8914, 74.2765], + [141.1126, 74.1661], + [141.0378, 74.0039], + [140.5451, 73.9158] + ] + ], + [ + [ + [113.3664, 74.3512], + [112.7749, 74.0881], + [112.1629, 74.1386], + [111.5813, 74.2602], + [111.9868, 74.3957], + [112.1101, 74.5512], + [113.3145, 74.4798], + [113.3664, 74.3512] + ] + ], + [ + [ + [146.7295, 75.4882], + [148.4077, 75.4211], + [148.6104, 75.2155], + [149.1268, 75.2686], + [150.1294, 75.2255], + [150.6328, 75.1165], + [150.6092, 74.8935], + [149.209, 74.758], + [148.1721, 74.8035], + [147.6638, 74.9534], + [147.0879, 75.0052], + [146.0718, 75.2403], + [146.3892, 75.5852], + [146.7295, 75.4882] + ] + ], + [ + [ + [135.8445, 75.3826], + [135.45, 75.3757], + [135.6027, 75.7643], + [136.1602, 75.6296], + [135.8445, 75.3826] + ] + ], + [ + [ + [139.1096, 76.0969], + [139.9116, 75.9374], + [140.1504, 75.8005], + [140.8644, 75.7388], + [140.9089, 75.9841], + [141.3914, 76.1435], + [141.7022, 76.121], + [142.5469, 75.863], + [143.0588, 75.8068], + [143.9471, 75.8348], + [145.3662, 75.5402], + [144.7293, 75.4316], + [144.6882, 75.16], + [144.3312, 75.0468], + [143.4148, 75.0671], + [142.8722, 75.1566], + [142.4943, 75.3757], + [143.0135, 75.6024], + [143.0011, 75.708], + [142.324, 75.7119], + [142.0832, 75.5259], + [142.1999, 75.3488], + [142.6282, 75.097], + [143.448, 75.0058], + [143.4645, 74.9001], + [142.3556, 74.8245], + [141.8438, 74.999], + [140.0687, 74.8279], + [139.8496, 74.9648], + [139.3434, 74.6874], + [138.1657, 74.7762], + [137.7938, 74.9754], + [137.1491, 75.1342], + [136.8622, 75.362], + [137.4307, 75.3893], + [137.0676, 75.7258], + [137.5884, 75.7736], + [137.433, 75.9532], + [138.138, 76.1188], + [138.9608, 76.2069], + [139.1096, 76.0969] + ] + ], + [ + [ + [96.283, 76.3093], + [96.4006, 76.1552], + [95.3106, 76.2012], + [95.314, 76.2766], + [96.283, 76.3093] + ] + ], + [ + [ + [68.1585, 76.9676], + [68.4629, 76.9667], + [68.9307, 76.7194], + [68.7473, 76.5105], + [68.2879, 76.2813], + [66.1786, 75.962], + [63.3044, 75.5886], + [62.0482, 75.4503], + [60.8325, 75.1529], + [60.5606, 74.8663], + [59.8748, 74.6285], + [59.2214, 74.6154], + [59.0912, 74.4949], + [58.5705, 74.3889], + [58.5083, 74.2175], + [57.8784, 73.9343], + [57.946, 73.8066], + [57.3296, 73.5739], + [57.2539, 73.4572], + [56.5788, 73.2608], + [55.7723, 73.348], + [55.4349, 73.3321], + [55.0207, 73.4435], + [54.4739, 73.3908], + [53.8687, 73.7787], + [54.2528, 73.9158], + [54.7258, 73.9779], + [55.0189, 74.173], + [55.6227, 74.1902], + [55.5274, 74.3461], + [55.896, 74.6606], + [55.8084, 75.1566], + [56.8809, 75.2233], + [57.0462, 75.3981], + [57.7411, 75.3279], + [57.5636, 75.5197], + [58.1867, 75.5888], + [58.2591, 75.6929], + [59.3987, 75.9374], + [59.7488, 75.9306], + [60.2681, 76.1101], + [60.8384, 76.123], + [61.0769, 76.28], + [61.637, 76.312], + [62.9568, 76.2069], + [63.7192, 76.3497], + [64.0345, 76.3153], + [64.8259, 76.4842], + [65.169, 76.4753], + [65.7534, 76.6828], + [66.9435, 76.949], + [67.5881, 77.0134], + [68.1585, 76.9676] + ] + ], + [ + [ + [130.7, 42.2951], + [130.5308, 42.5305], + [130.4072, 42.7354], + [130.7695, 42.8658], + [130.9924, 42.8487], + [131.2809, 43.3802], + [131.1703, 43.7811], + [131.2645, 44.0542], + [131.0658, 44.682], + [130.9334, 44.8417], + [131.4195, 44.959], + [131.6091, 45.0897], + [131.818, 45.3328], + [131.9696, 45.2338], + [132.9534, 45.0244], + [133.1154, 45.123], + [133.0975, 45.2435], + [133.2021, 45.5113], + [133.4135, 45.5733], + [133.5144, 45.8793], + [133.6581, 45.9345], + [133.6874, 46.1418], + [133.9025, 46.259], + [133.8493, 46.4803], + [133.988, 46.6252], + [134.1541, 47.2579], + [134.2928, 47.4097], + [134.4846, 47.4302], + [134.7726, 47.7107], + [134.5672, 48.0404], + [134.7009, 48.2615], + [134.3863, 48.3813], + [133.7213, 48.2448], + [133.4637, 48.0895], + [133.092, 48.1068], + [132.6588, 47.8698], + [132.5247, 47.7075], + [131.5774, 47.6686], + [131.4184, 47.7426], + [131.0234, 47.6823], + [130.907, 47.8843], + [130.6634, 48.1164], + [130.8194, 48.2819], + [130.7159, 48.4991], + [130.5333, 48.6358], + [130.6743, 48.8708], + [130.2493, 48.8645], + [129.9134, 49.0395], + [129.7112, 49.2742], + [129.0506, 49.3767], + [128.6662, 49.6095], + [128.0925, 49.5416], + [127.8309, 49.5939], + [127.5081, 49.8223], + [127.4867, 50.0256], + [127.5784, 50.2206], + [127.3307, 50.3282], + [127.3648, 50.5547], + [127.2874, 50.751], + [126.9318, 51.0638], + [126.9546, 51.3296], + [126.4461, 51.9825], + [126.5312, 52.1527], + [126.2123, 52.533], + [125.9732, 52.6316], + [126.0351, 52.7271], + [125.6214, 53.0621], + [125.5213, 53.0424], + [125.1274, 53.2065], + [124.7202, 53.1488], + [124.4082, 53.2357], + [124.2327, 53.3817], + [123.6396, 53.5513], + [123.2526, 53.5678], + [122.8597, 53.4739], + [122.3378, 53.4913], + [121.889, 53.4306], + [121.2035, 53.2767], + [120.8743, 53.2802], + [120.2802, 52.8659], + [120.033, 52.7607], + [120.0564, 52.6005], + [120.4299, 52.6361], + [120.724, 52.5422], + [120.6262, 52.3468], + [120.7792, 52.1176], + [120.6476, 51.911], + [120.4931, 51.8757], + [120.1082, 51.6652], + [119.7483, 51.0834], + [119.518, 50.9048], + [119.4967, 50.7371], + [119.2936, 50.5992], + [119.2437, 50.4455], + [119.3529, 50.3455], + [119.3162, 50.0927], + [119.0917, 49.9866], + [118.6444, 49.9546], + [118.1686, 49.6715], + [117.7588, 49.5127], + [117.4729, 49.6143], + [117.0576, 49.6729], + [116.6843, 49.8233], + [116.5754, 49.9218], + [116.2176, 50.0138], + [115.7509, 49.885], + [115.3687, 49.8954], + [114.9974, 50.1443], + [114.7537, 50.2362], + [114.2863, 50.2769], + [113.8498, 50.0807], + [113.5797, 50.0199], + [113.2124, 49.822], + [113.0437, 49.5886], + [112.7337, 49.4928], + [112.4322, 49.5292], + [112.0302, 49.4119], + [111.3385, 49.3647], + [110.7314, 49.1377], + [110.3712, 49.2417], + [110.1814, 49.162], + [109.7285, 49.2665], + [109.5162, 49.2559], + [109.2867, 49.3385], + [108.5381, 49.3274], + [108.2505, 49.5224], + [108.0327, 49.5893], + [107.9465, 49.9335], + [107.2249, 49.9971], + [106.9737, 50.1964], + [106.6565, 50.327], + [106.2449, 50.2903], + [105.9849, 50.3998], + [105.3286, 50.4765], + [104.4058, 50.3005], + [104.1217, 50.1483], + [103.7853, 50.1861], + [103.6014, 50.1335], + [103.2531, 50.215], + [102.5866, 50.4153], + [102.3276, 50.5455], + [102.3294, 50.7188], + [102.2168, 50.7989], + [102.1465, 51.0976], + [102.1839, 51.3239], + [102.0512, 51.3836], + [101.4821, 51.4729], + [101.3878, 51.4506], + [100.5109, 51.7269], + [100.006, 51.7317], + [99.6793, 51.8887], + [99.3239, 51.9342], + [98.8556, 52.1067], + [98.7111, 51.8451], + [98.3322, 51.7183], + [98.2204, 51.4752], + [98.0509, 51.4664], + [97.8064, 51.0011], + [97.9902, 50.8356], + [98.0233, 50.642], + [98.2935, 50.5186], + [98.2625, 50.2838], + [98.1056, 50.0639], + [97.8474, 49.9301], + [97.5666, 49.9168], + [97.5427, 49.8227], + [97.3017, 49.7255], + [96.9692, 49.8867], + [96.3729, 49.8861], + [95.867, 50.015], + [95.4806, 49.8922], + [95.0764, 49.9455], + [94.9216, 50.0459], + [94.6245, 50.0152], + [94.3443, 50.2492], + [94.2376, 50.5652], + [93.5363, 50.5847], + [93.0114, 50.6233], + [92.9617, 50.7779], + [92.6498, 50.6741], + [92.3017, 50.8434], + [92.1588, 50.6891], + [91.7498, 50.6841], + [91.4157, 50.4614], + [91.012, 50.4253], + [90.6839, 50.2162], + [90.4752, 50.2146], + [90.0512, 50.0842], + [89.9694, 49.9671], + [89.6239, 49.9027], + [89.6823, 49.7083], + [89.2522, 49.6294], + [89.1607, 49.5027], + [88.8706, 49.436], + [88.3788, 49.4758], + [88.2, 49.4543], + [88.144, 49.2707], + [87.8163, 49.1658], + [87.3238, 49.0853], + [87.218, 49.2298], + [86.9051, 49.3519], + [86.8243, 49.5092], + [86.5918, 49.5872], + [86.7759, 49.695], + [86.6102, 49.7955], + [86.3918, 49.625], + [86.1115, 49.5202], + [85.384, 49.6157], + [85.2631, 49.5815], + [85.0326, 49.885], + [84.9758, 50.0752], + [84.642, 50.1849], + [84.25, 50.2599], + [84.1017, 50.6286], + [83.8205, 50.868], + [83.434, 50.9927], + [83.1076, 50.9927], + [82.9759, 50.8819], + [82.698, 50.811], + [82.0731, 50.7157], + [81.7635, 50.7843], + [81.4602, 50.7303], + [81.4008, 50.9591], + [81.0583, 50.9471], + [81.1472, 51.1359], + [80.6828, 51.302], + [80.4762, 51.2096], + [80.439, 50.9581], + [80.0493, 50.8523], + [79.9901, 50.7881], + [79.4698, 51.4926], + [78.4765, 52.6379], + [77.8668, 53.2723], + [77.6128, 53.4428], + [76.5257, 53.9613], + [76.3744, 54.1478], + [76.6646, 54.1341], + [76.8377, 54.2969], + [76.7661, 54.3646], + [76.4331, 54.3166], + [75.6404, 54.0989], + [75.0279, 53.8079], + [74.772, 53.8309], + [74.6165, 53.6807], + [74.2139, 53.597], + [73.8727, 53.6321], + [73.3912, 53.5202], + [73.2297, 53.6624], + [73.4853, 53.8749], + [73.6971, 53.9008], + [73.7406, 54.0579], + [73.3603, 53.9384], + [73.0628, 53.9791], + [72.9568, 54.1175], + [72.6562, 54.0425], + [72.4556, 53.9053], + [72.3569, 54.0818], + [72.4829, 54.1356], + [72.1518, 54.3683], + [72.0667, 54.2224], + [71.7625, 54.2476], + [71.7087, 54.1322], + [71.1823, 54.1016], + [71.1803, 54.7274], + [71.006, 54.7742], + [70.9771, 55.078], + [70.6657, 55.3092], + [70.4601, 55.2874], + [70.197, 55.1335], + [69.6739, 55.334], + [69.3346, 55.3851], + [69.1861, 55.3258], + [68.7225, 55.3528], + [68.6053, 55.1956], + [68.2624, 55.194], + [68.3082, 55.0728], + [68.1661, 54.9561], + [67.8173, 54.9522], + [67.6227, 54.8539], + [66.4465, 54.7109], + [65.9775, 54.6117], + [65.4774, 54.6327], + [65.2143, 54.5279], + [65.2129, 54.343], + [64.9106, 54.4027], + [64.5785, 54.3856], + [63.7086, 54.2504], + [63.0847, 54.0856], + [62.8121, 54.095], + [62.5506, 54.0268], + [61.4786, 54.0029], + [61.1935, 54.0183], + [61.202, 53.8196], + [61.0076, 53.6357], + [61.2807, 53.5424], + [61.1372, 53.3731], + [61.2029, 53.2764], + [62.0507, 53.1248], + [62.0942, 52.9925], + [61.5743, 52.9558], + [61.1903, 53.0131], + [60.8291, 52.7716], + [60.6962, 52.7349], + [60.8314, 52.5132], + [61.0399, 52.335], + [60.6722, 52.1443], + [60.5065, 52.1516], + [60.2028, 51.9927], + [60.1381, 51.8889], + [60.4521, 51.8055], + [60.5151, 51.6179], + [60.9374, 51.6112], + [61.0233, 51.4855], + [61.4738, 51.4258], + [61.5932, 51.2778], + [61.3721, 50.7825], + [60.7185, 50.6527], + [60.3004, 50.6847], + [60.0213, 50.8541], + [59.7747, 50.5337], + [59.5228, 50.4746], + [59.4376, 50.6311], + [58.9259, 50.6781], + [58.6644, 50.7899], + [58.595, 51.0234], + [57.7688, 51.1197], + [57.7373, 50.9382], + [57.3527, 50.886], + [57.1682, 51.0938], + [56.8651, 51.0518], + [56.508, 51.0663], + [56.3357, 50.8959], + [56.1749, 50.9087], + [56.0789, 50.7248], + [55.66, 50.53], + [55.4911, 50.6459], + [55.3054, 50.665], + [54.6382, 51.0277], + [54.6763, 50.6025], + [54.3798, 50.6194], + [54.4786, 50.8535], + [54.1766, 50.9679], + [53.9359, 51.1856], + [53.6739, 51.2199], + [53.6103, 51.3884], + [53.4073, 51.4842], + [53.1533, 51.5127], + [52.5058, 51.4789], + [52.3349, 51.7637], + [52.0918, 51.6587], + [51.8692, 51.6731], + [51.6205, 51.5187], + [51.3795, 51.4671], + [51.3719, 51.6296], + [51.2339, 51.6855], + [50.9254, 51.6797], + [50.7907, 51.5973], + [50.5817, 51.6353], + [50.5183, 51.4598], + [50.3254, 51.3035], + [49.9869, 51.2298], + [49.7791, 51.1022], + [49.4231, 51.102], + [49.3694, 50.8268], + [49.1441, 50.7817], + [48.8304, 50.596], + [48.6734, 50.5795], + [48.7013, 50.3346], + [48.8857, 50.0199], + [48.7846, 49.9334], + [48.4176, 49.8117], + [48.2393, 49.8648], + [47.9932, 50.1818], + [47.6247, 50.4408], + [47.2948, 50.2754], + [47.3087, 50.0448], + [46.8999, 49.8203], + [46.7751, 49.3325], + [47.0286, 49.2015], + [47.0209, 49.0968], + [46.7538, 48.9141], + [46.4793, 48.4102], + [47.0783, 48.2753], + [47.0512, 47.9746], + [47.1745, 47.7705], + [47.3597, 47.6833], + [47.4353, 47.8344], + [47.6497, 47.7656], + [48.0445, 47.7697], + [48.1744, 47.7129], + [48.3606, 47.4931], + [48.5251, 47.4102], + [48.6973, 47.101], + [49.0063, 46.7691], + [48.764, 46.6828], + [48.5567, 46.7617], + [48.4551, 46.6608], + [49.2271, 46.3279], + [48.8871, 46.1223], + [48.7141, 46.1296], + [48.7411, 45.923], + [48.4656, 45.9402], + [48.2698, 45.7795], + [47.6087, 45.6388], + [47.2971, 45.1874], + [47.0715, 44.7851], + [46.722, 44.6553], + [46.7009, 44.4462], + [47.0442, 44.3463], + [47.2459, 44.212], + [47.5028, 43.781], + [47.3799, 43.5597], + [47.4909, 43.4628], + [47.4619, 43.0208], + [47.6981, 42.8671], + [47.7156, 42.6967], + [47.8677, 42.5847], + [48.304, 42.1027], + [48.4164, 41.915], + [48.5789, 41.8453], + [48.3702, 41.5802], + [48.0535, 41.4613], + [47.8711, 41.2082], + [47.7437, 41.1927], + [47.2684, 41.3028], + [47.2315, 41.4275], + [47.027, 41.5569], + [46.745, 41.8401], + [46.5499, 41.7978], + [46.4309, 41.8904], + [46.2243, 41.9935], + [45.9476, 42.0229], + [45.6214, 42.2245], + [45.6987, 42.5076], + [45.356, 42.52], + [45.1842, 42.6748], + [44.8594, 42.7595], + [44.272, 42.7024], + [43.9397, 42.5522], + [43.7511, 42.5987], + [43.8006, 42.7465], + [43.5174, 42.8605], + [43.1943, 42.9268], + [42.7515, 43.177], + [42.5959, 43.14], + [42.4229, 43.229], + [42.0753, 43.1853], + [41.5506, 43.2263], + [41.3807, 43.3348], + [41.0118, 43.3754], + [40.6519, 43.539], + [40.4798, 43.5087], + [40.2331, 43.5758], + [40.0592, 43.5352], + [39.986, 43.389], + [39.7183, 43.5678], + [39.3294, 43.8962], + [38.9783, 44.1483], + [38.5951, 44.3319], + [38.1777, 44.406], + [37.9226, 44.6138], + [37.4783, 44.6772], + [37.1919, 44.991], + [36.8401, 45.1094], + [36.7816, 45.3876], + [36.8333, 45.443], + [37.1589, 45.3261], + [37.6351, 45.3338], + [37.7376, 45.3747], + [37.5951, 45.6353], + [37.8294, 45.7532], + [37.9401, 46.0203], + [38.2488, 46.1415], + [38.4458, 46.0342], + [38.5568, 46.1152], + [38.3001, 46.2187], + [38.1229, 46.3775], + [37.8273, 46.4765], + [37.8522, 46.6225], + [38.0368, 46.6295], + [38.403, 46.8209], + [38.8037, 46.8935], + [39.0752, 47.0327], + [39.2619, 47.0086], + [39.264, 47.2608], + [39.0881, 47.2864], + [38.9378, 47.1898], + [38.2166, 47.1033], + [38.201, 47.2906], + [38.3529, 47.6071], + [38.7345, 47.6771], + [38.8772, 47.8612], + [39.3916, 47.8226], + [39.7591, 47.8329], + [39.8431, 48.1198], + [39.9932, 48.2732], + [39.8092, 48.5838], + [39.6317, 48.5869], + [39.7587, 48.8954], + [39.6811, 49.0203], + [39.9187, 49.0478], + [40.1417, 49.2458], + [40.0409, 49.4555], + [39.8015, 49.5422], + [39.5704, 49.7133], + [39.238, 49.7651], + [39.1828, 49.8585], + [38.8522, 49.8658], + [38.3442, 49.9921], + [37.9953, 49.9213], + [37.7277, 50.0787], + [37.5992, 50.2909], + [37.4353, 50.4249], + [36.9141, 50.3391], + [36.6826, 50.2607], + [36.269, 50.2814], + [36.1058, 50.4211], + [35.8374, 50.4232], + [35.6969, 50.3451], + [35.4253, 50.5005], + [35.4454, 50.6875], + [35.3417, 50.9159], + [34.9618, 51.2153], + [34.7481, 51.1647], + [34.409, 51.2531], + [34.2803, 51.3613], + [34.128, 51.6807], + [34.3763, 51.7086], + [34.3857, 51.8177], + [34.0682, 52.031], + [34.0557, 52.1703], + [33.8041, 52.3546], + [33.1965, 52.3689], + [32.9269, 52.2469], + [32.5284, 52.3162], + [32.3395, 52.2872], + [32.3067, 52.1412], + [32.0956, 52.0407], + [31.7643, 52.1006], + [31.6081, 52.3725], + [31.5702, 52.7253], + [31.5051, 52.8489], + [31.2471, 53.0144], + [31.3785, 53.182], + [31.7386, 53.1925], + [31.9072, 53.0919], + [32.2059, 53.1004], + [32.4055, 53.1927], + [32.7195, 53.4395], + [32.4529, 53.5464], + [32.4806, 53.6624], + [32.0836, 53.8096], + [31.7538, 53.8196], + [31.8465, 53.9923], + [31.7481, 54.0863], + [31.3247, 54.2292], + [31.1679, 54.6216], + [30.7706, 54.786], + [30.8148, 54.928], + [31.0064, 55.0424], + [30.7943, 55.2855], + [30.9186, 55.4076], + [30.9128, 55.5716], + [30.5964, 55.6653], + [30.4688, 55.7935], + [30.2178, 55.8551], + [29.8695, 55.8305], + [29.461, 55.6873], + [29.3436, 55.787], + [29.3774, 55.954], + [29.0308, 56.0242], + [28.7064, 55.9598], + [28.6207, 56.083], + [28.2898, 56.0466], + [28.1489, 56.1424], + [28.2148, 56.2814], + [28.1261, 56.5478], + [27.9974, 56.6038], + [27.9189, 56.8059], + [27.6487, 56.8793], + [27.8403, 57.2906], + [27.3529, 57.5276], + [27.4077, 57.689], + [27.6731, 57.9128], + [27.4954, 58.2215], + [27.5549, 58.3952], + [27.4106, 58.7549], + [27.6944, 58.9759], + [27.9039, 59.2904], + [28.1865, 59.3749], + [28.0191, 59.4818], + [27.9934, 59.7033], + [28.3753, 59.6663], + [28.4275, 59.8134], + [28.846, 59.7902], + [29.1614, 60.0026], + [29.8042, 59.9401], + [29.9483, 60.0297], + [29.701, 60.2005], + [29.0923, 60.178], + [28.6067, 60.3895], + [28.7219, 60.7212], + [28.4006, 60.6653], + [28.2158, 60.5476], + [27.8079, 60.553], + [28.7976, 61.0968], + [29.2032, 61.2459], + [29.7791, 61.5931], + [30.635, 62.184], + [31.2222, 62.4917], + [31.5695, 62.9059], + [31.2257, 63.196], + [30.8209, 63.3757], + [30.4887, 63.4621], + [29.9808, 63.7415], + [30.2015, 63.7926], + [30.5093, 63.9914], + [30.5585, 64.2197], + [30.0931, 64.3612], + [29.9658, 64.5786], + [30.1705, 64.6817], + [29.7803, 64.7956], + [29.5881, 64.9914], + [29.8205, 65.0937], + [29.7201, 65.3291], + [29.7029, 65.6294], + [30.1117, 65.712], + [29.9002, 66.1081], + [29.5932, 66.3459], + [29.5245, 66.4912], + [29.0892, 66.8375], + [29.1001, 66.9912], + [29.5198, 67.2982], + [29.9162, 67.5081], + [30.0094, 67.6858], + [29.6512, 67.8236], + [29.2987, 68.0818], + [28.6638, 68.204], + [28.4474, 68.5149], + [28.8015, 68.8355], + [28.4562, 68.9001], + [28.9541, 69.0273], + [29.2405, 69.1151], + [29.3345, 69.2774], + [29.9007, 69.3582], + [30.5117, 69.5363], + [30.853, 69.5274], + [30.841, 69.8058], + [31.409, 69.7158], + [32.0545, 69.9638], + [32.5232, 69.8032], + [32.9196, 69.78], + [33.119, 69.6611], + [32.687, 69.5028], + [33.5237, 69.4283], + [33.8521, 69.3389], + [34.6618, 69.2495], + [35.3303, 69.2761], + [36.2495, 69.111], + [37.4639, 68.7424], + [37.6805, 68.7134], + [38.4346, 68.3559], + [38.6629, 68.3793], + [39.5208, 68.076], + [39.8594, 68.0576], + [40.8006, 67.7282], + [41.0166, 67.6979], + [40.9993, 67.4675], + [41.1089, 67.2538], + [41.3384, 67.1711], + [41.36, 67.0136], + [41.1781, 66.8096], + [40.4443, 66.4055], + [40.085, 66.2888], + [39.3436, 66.1347], + [38.5544, 66.055], + [37.9271, 66.0888], + [36.8874, 66.2852], + [36.4063, 66.2947], + [35.3806, 66.4179], + [34.8877, 66.5998], + [34.4343, 66.5473], + [34.284, 66.6724], + [33.4832, 66.7304], + [32.8433, 66.9763], + [32.8539, 67.0745], + [32.3826, 67.1597], + [32.4783, 66.91], + [32.891, 66.7816], + [33.0348, 66.5916], + [33.3548, 66.4802], + [33.7046, 66.4438], + [33.6199, 66.3093], + [34.4968, 66.1162], + [34.8662, 65.8779], + [34.7766, 65.5966], + [34.369, 65.3918], + [34.8161, 65.0434], + [34.9421, 64.8576], + [34.798, 64.7563], + [34.9776, 64.6119], + [34.9556, 64.4522], + [35.4105, 64.2868], + [35.8108, 64.342], + [36.2922, 64.0097], + [36.7035, 63.9246], + [37.1694, 63.8951], + [37.291, 63.8182], + [38.0018, 63.9555], + [38.0858, 64.059], + [37.9142, 64.2204], + [38.0029, 64.317], + [37.6871, 64.4309], + [37.3394, 64.3404], + [37.1215, 64.3947], + [36.7441, 64.681], + [36.5598, 64.7174], + [36.5686, 64.9025], + [36.8074, 64.9591], + [37.0077, 65.173], + [37.706, 65.0174], + [38.0464, 64.8537], + [39.3031, 64.6462], + [39.5665, 64.5453], + [40.0628, 64.6219], + [40.5285, 64.5779], + [40.3781, 64.9225], + [40.114, 65.0747], + [39.7121, 65.4018], + [39.8269, 65.607], + [40.2798, 65.73], + [40.7959, 65.9917], + [41.3425, 66.0629], + [41.8576, 66.2963], + [42.2009, 66.5322], + [42.7492, 66.3951], + [43.2522, 66.4368], + [44.0457, 66.081], + [44.1239, 66.3151], + [44.4878, 66.6762], + [44.364, 66.7823], + [44.4993, 66.9215], + [44.2063, 67.1247], + [43.7614, 67.2211], + [44.003, 67.576], + [44.2444, 68.2557], + [44.1602, 68.3362], + [43.3257, 68.6137], + [43.4773, 68.6691], + [43.9845, 68.5513], + [45.3064, 68.5453], + [45.9439, 68.4462], + [46.0293, 68.324], + [46.5349, 68.1326], + [46.722, 67.8449], + [45.3504, 67.7304], + [45.3146, 67.5921], + [45.0282, 67.5319], + [44.9517, 67.3207], + [45.5939, 67.1582], + [45.8532, 66.887], + [46.0415, 66.8309], + [46.489, 66.8785], + [46.9269, 66.845], + [47.7256, 67.0009], + [47.6951, 67.2047], + [47.9479, 67.4443], + [47.8247, 67.5603], + [48.2557, 67.6827], + [48.925, 67.6877], + [49.1333, 67.8626], + [49.6546, 67.981], + [50.4347, 68.2205], + [51.5606, 68.4831], + [52.0601, 68.5438], + [52.402, 68.3377], + [52.7313, 68.4742], + [52.4988, 68.6195], + [52.8065, 68.768], + [53.437, 68.9182], + [54.1038, 69.0007], + [53.7205, 68.6569], + [53.9319, 68.391], + [53.3191, 68.348], + [53.2389, 68.2535], + [54.2398, 68.2113], + [54.4651, 68.3042], + [54.864, 68.1851], + [54.9367, 68.3984], + [55.3929, 68.5643], + [56.6296, 68.642], + [56.8484, 68.5716], + [57.3298, 68.5648], + [57.604, 68.7424], + [57.9779, 68.853], + [58.8788, 69.0031], + [59.4155, 68.7667], + [59.0564, 68.6195], + [59.1095, 68.4047], + [59.6748, 68.3362], + [59.9639, 68.466], + [59.7736, 68.6682], + [60.4666, 68.7223], + [60.9383, 68.9633], + [60.8438, 69.1575], + [60.5823, 69.1496], + [60.5192, 69.3321], + [60.1388, 69.5779], + [60.6536, 69.6728], + [60.7703, 69.8491], + [62.1611, 69.7462], + [63.4105, 69.6713], + [64.548, 69.4517], + [64.8558, 69.2954], + [65.8172, 69.1426], + [67.0555, 68.7814], + [67.9046, 68.4704], + [68.1349, 68.4234], + [68.3828, 68.2285], + [68.9235, 68.6373], + [69.1091, 68.879], + [68.4872, 68.9702], + [68.1253, 69.2224], + [67.9691, 69.4913], + [67.6291, 69.5908], + [66.771, 69.7407], + [66.8742, 69.9959], + [67.3276, 70.106], + [67.0942, 70.2209], + [67.2765, 70.4812], + [67.3179, 70.7841], + [66.6082, 70.8807], + [66.6455, 71.0798], + [66.927, 71.2984], + [67.3093, 71.3512], + [67.9473, 71.5276], + [68.4789, 71.8362], + [68.6437, 72.0332], + [68.9891, 72.7059], + [69.2766, 72.8408], + [70.1721, 72.9001], + [71.5632, 72.916], + [72.4961, 72.7877], + [72.7307, 72.6174], + [72.8649, 72.2717], + [72.3508, 71.8642], + [72.2093, 71.6147], + [71.8381, 71.5324], + [72.1057, 71.2904], + [72.6707, 71.109], + [72.8274, 70.8876], + [72.6882, 70.6344], + [72.7713, 70.4252], + [72.4595, 70.3044], + [72.6216, 70.1617], + [72.492, 70.0412], + [72.6917, 69.8369], + [72.5017, 69.6467], + [72.6477, 69.2922], + [72.4893, 69.1992], + [72.5774, 68.9404], + [72.8518, 68.7978], + [73.5391, 68.581], + [73.6444, 68.5019], + [73.0908, 68.2143], + [73.2046, 67.8659], + [72.7909, 67.6257], + [72.4059, 67.48], + [72.2313, 67.1692], + [71.722, 66.9153], + [71.4956, 66.9268], + [71.5769, 66.6588], + [71.0835, 66.6321], + [70.9803, 66.5359], + [70.4133, 66.5632], + [69.9362, 66.863], + [69.598, 66.789], + [69.1307, 66.8307], + [69.1126, 66.6188], + [69.3865, 66.5134], + [70.3626, 66.3344], + [71.1455, 66.3656], + [71.6787, 66.3236], + [71.9901, 66.2308], + [72.3473, 66.3064], + [72.4937, 66.6188], + [72.9424, 66.6567], + [73.0031, 66.7394], + [73.4924, 66.8234], + [73.8713, 67.0063], + [73.8996, 67.2962], + [74.0983, 67.4319], + [74.7303, 67.6863], + [74.825, 67.9405], + [74.7014, 68.1807], + [74.3316, 68.3856], + [74.4544, 68.694], + [75.1907, 68.8748], + [76.3757, 68.994], + [76.6091, 68.966], + [76.6626, 68.7626], + [77.3159, 68.5306], + [77.167, 68.2818], + [77.3566, 68.2329], + [77.1203, 67.7685], + [78.047, 67.5435], + [78.1135, 67.657], + [77.4595, 67.7863], + [77.537, 68.1286], + [78.1033, 68.2484], + [77.9563, 68.4954], + [77.7151, 68.621], + [77.6826, 68.8858], + [76.929, 69.0093], + [76.7549, 69.1247], + [76.042, 69.2391], + [75.5086, 69.2614], + [74.7151, 69.085], + [73.7518, 69.1835], + [73.8996, 69.414], + [73.516, 69.7464], + [73.6599, 69.8597], + [73.7345, 70.1809], + [74.3162, 70.5203], + [74.3179, 70.6678], + [73.9522, 70.8368], + [73.5562, 71.2551], + [73.0374, 71.441], + [73.4818, 71.6527], + [73.5259, 71.8222], + [74.3316, 71.9557], + [74.9284, 72.0981], + [75.1111, 72.3464], + [74.9995, 72.6739], + [75.3189, 72.8192], + [75.702, 72.547], + [75.572, 72.4667], + [75.7212, 72.2496], + [75.2868, 71.9599], + [75.2632, 71.7435], + [75.5329, 71.5423], + [75.3426, 71.3349], + [76.0173, 71.237], + [77.7827, 71.1425], + [78.0017, 70.9636], + [78.6138, 70.9626], + [78.279, 71.2589], + [77.6709, 71.2861], + [76.3255, 71.5595], + [76.0267, 71.9238], + [76.9461, 72.0443], + [77.5846, 71.8311], + [78.1095, 71.8804], + [78.2036, 72.001], + [77.7414, 72.2162], + [78.0876, 72.3588], + [78.4976, 72.4082], + [79.3914, 72.3856], + [81.7367, 71.6999], + [82.8674, 71.7864], + [83.3205, 71.6833], + [82.8201, 71.3913], + [82.2966, 71.2873], + [82.2031, 71.0163], + [83.1338, 70.8824], + [83.0105, 70.4266], + [82.6641, 70.2602], + [82.8831, 70.089], + [83.183, 70.1389], + [82.9517, 70.3251], + [83.4839, 70.335], + [83.7747, 70.4766], + [83.3818, 71.0327], + [83.1476, 71.2448], + [83.6282, 71.6109], + [83.3605, 71.8406], + [82.787, 71.9055], + [82.1851, 72.0935], + [82.1981, 72.2816], + [81.2082, 72.3549], + [80.7041, 72.5454], + [80.6321, 72.7338], + [80.842, 72.9221], + [80.5062, 73.0784], + [80.5283, 73.2815], + [80.2727, 73.3098], + [80.8322, 73.5718], + [81.9569, 73.6627], + [83.4837, 73.6555], + [84.7932, 73.7647], + [85.427, 73.7119], + [85.6043, 73.8219], + [86.7832, 73.9022], + [87.0108, 73.7787], + [86.2036, 73.5578], + [87.1648, 73.6114], + [87.2401, 73.8608], + [86.803, 74.184], + [86.02, 74.2625], + [86.4753, 74.4582], + [86.6392, 74.6973], + [87.0817, 74.773], + [87.3543, 75.0439], + [88.3145, 75.1809], + [88.6117, 75.3442], + [89.1323, 75.4528], + [89.7227, 75.4515], + [89.9541, 75.5776], + [90.8635, 75.6683], + [91.2913, 75.629], + [92.0078, 75.7258], + [93.5498, 75.853], + [93.6858, 76.1323], + [94.7385, 76.1156], + [95.3898, 76.164], + [96.1105, 76.1107], + [96.8306, 75.9154], + [98.5762, 76.2316], + [99.2615, 76.1292], + [99.5558, 76.279], + [99.0662, 76.3531], + [99.5086, 76.4687], + [101.036, 76.5202], + [101.2346, 76.7673], + [100.8641, 76.838], + [100.9193, 76.9759], + [102.1577, 77.4023], + [104.0233, 77.7331], + [104.6782, 77.7095], + [105.9836, 77.4383], + [105.4558, 77.2405], + [105.797, 77.1126], + [106.5, 77.0216], + [107.2505, 77.007], + [107.0803, 76.8083], + [106.6123, 76.5596], + [107.5916, 76.505], + [107.9846, 76.6227], + [109.3325, 76.7585], + [110.0614, 76.6916], + [110.3586, 76.7557], + [111.5554, 76.6841], + [112.6709, 76.3631], + [113.2593, 76.2664], + [113.5212, 75.9306], + [113.8901, 75.854], + [113.3368, 75.5351], + [113.7082, 75.4634], + [113.6052, 75.285], + [112.8796, 74.9929], + [112.1468, 74.8784], + [111.7438, 74.6632], + [111.4658, 74.6973], + [110.9602, 74.5485], + [109.9995, 74.3737], + [109.8901, 74.197], + [108.9961, 74.0156], + [108.4917, 73.7725], + [107.7769, 73.6166], + [107.1336, 73.5302], + [106.648, 73.3067], + [106.2324, 73.3228], + [105.4826, 72.7681], + [106.2546, 72.9672], + [106.3599, 73.1943], + [107.7223, 73.1685], + [108.3933, 73.3173], + [109.7139, 73.4526], + [110.8986, 73.6859], + [109.5311, 73.7753], + [110.0215, 74.0145], + [110.5808, 73.9914], + [111.8037, 73.7442], + [112.3718, 73.7053], + [112.8215, 73.7468], + [113.3955, 73.6858], + [113.1314, 73.4497], + [114.6747, 73.5926], + [115.4131, 73.7104], + [116.6029, 73.6748], + [117.4439, 73.5888], + [118.4502, 73.5888], + [118.3533, 73.2824], + [118.9177, 73.1195], + [119.7834, 73.018], + [121.0547, 72.9318], + [121.9637, 72.9637], + [122.6138, 73.031], + [123.138, 72.918], + [123.5535, 73.2176], + [123.2461, 73.5459], + [124.3362, 73.8048], + [125.2124, 73.6489], + [125.6519, 73.5255], + [126.2266, 73.5546], + [126.3888, 73.4118], + [126.8967, 73.5393], + [127.9876, 73.4709], + [128.4393, 73.2363], + [128.8926, 73.217], + [129.4435, 73.0289], + [128.2908, 72.9086], + [128.228, 72.8195], + [128.3556, 72.7939], + [127.9606, 72.6621], + [128.6113, 72.4827], + [129.1174, 72.4815], + [129.5217, 72.2494], + [129.1458, 72.1003], + [128.1921, 72.2283], + [128.9266, 71.7388], + [128.8753, 71.5967], + [129.2487, 71.5499], + [129.3921, 71.3468], + [129.7627, 71.1476], + [130.3006, 70.9401], + [130.8794, 70.7739], + [131.2263, 70.7502], + [131.5462, 70.8871], + [131.9492, 71.293], + [132.2642, 71.682], + [132.5393, 71.8836], + [132.8131, 71.8315], + [133.1516, 71.5792], + [133.6501, 71.4365], + [134.1677, 71.3708], + [134.7785, 71.4288], + [135.033, 71.5391], + [135.9851, 71.6348], + [136.7746, 71.5234], + [137.3556, 71.3742], + [137.7664, 71.168], + [138.0095, 71.3393], + [138.0386, 71.5587], + [138.756, 71.643], + [139.7178, 71.4573], + [140.001, 71.525], + [139.7345, 71.6722], + [139.5739, 71.9329], + [139.8742, 72.1782], + [139.1358, 72.3041], + [139.5418, 72.4976], + [140.0728, 72.4792], + [140.8778, 72.5377], + [141.013, 72.6908], + [140.7258, 72.8986], + [141.5506, 72.7743], + [145.4095, 72.5559], + [146.1247, 72.4699], + [146.792, 72.3307], + [145.332, 72.3542], + [145.0687, 72.2643], + [146.9292, 72.3126], + [146.4954, 72.066], + [145.8494, 72.1622], + [145.7476, 71.9099], + [145.216, 71.8433], + [144.9063, 71.6989], + [145.3438, 71.6633], + [146.1565, 71.8207], + [147.1956, 72.3299], + [148.402, 72.3109], + [149.6113, 72.1484], + [150.0669, 71.9219], + [149.7095, 71.7729], + [149.408, 71.8967], + [149.0394, 71.7646], + [149.1829, 71.6888], + [149.7725, 71.6479], + [149.968, 71.5347], + [150.6702, 71.4664], + [150.8587, 71.3742], + [151.4924, 71.3332], + [152.1035, 71.0501], + [151.9691, 70.9448], + [152.613, 70.8346], + [153.9304, 70.8941], + [154.2388, 70.965], + [155.9364, 71.0994], + [157.5858, 71.0749], + [158.5236, 70.9688], + [159.2378, 70.8293], + [159.6895, 70.671], + [160.0249, 70.4194], + [160.1063, 70.2637], + [159.689, 69.8908], + [159.8011, 69.807], + [160.384, 69.6749], + [160.9255, 69.6421], + [161.0249, 69.2837], + [160.9629, 69.1055], + [161.5657, 69.0149], + [161.3993, 69.2213], + [161.4358, 69.3799], + [162.0256, 69.5512], + [162.2097, 69.6559], + [162.7688, 69.6542], + [163.165, 69.7209], + [163.773, 69.6944], + [164.027, 69.7738], + [164.4391, 69.6208], + [164.8343, 69.5674], + [165.6747, 69.596], + [166.0752, 69.5233], + [166.9387, 69.5021], + [167.6741, 69.7719], + [168.241, 69.5583], + [168.2883, 69.2427], + [168.8506, 69.1881], + [169.4198, 69.0236], + [169.6255, 68.7772], + [170.3511, 68.8281], + [171.0276, 69.0548], + [170.9131, 69.3041], + [170.5842, 69.5996], + [170.5227, 69.9385], + [170.6109, 70.1163], + [171.9945, 69.9931], + [172.7908, 69.9627], + [173.3684, 69.79], + [173.4608, 69.9486], + [174.0708, 69.8869], + [175.0884, 69.8457], + [175.5001, 69.8735], + [175.9262, 69.7757], + [176.5039, 69.7541], + [176.7345, 69.6748], + [177.3579, 69.6172], + [178.2122, 69.4434], + [178.7726, 69.4152], + [180, 68.9811], + [180, 68.5596], + [180, 68.0609], + [180, 67.5623], + [180, 67.0637], + [180, 66.5651], + [180, 66.0665], + [180, 65.5679], + [180, 65.0693], + [180, 65.0662], + [179.7796, 65.0182], + [179.4787, 64.8227], + [179.25, 64.8112], + [178.758, 64.6409], + [177.7442, 64.7064], + [177.2977, 64.8384], + [176.2101, 64.874], + [176.7274, 64.5792], + [176.9859, 64.7111], + [177.4919, 64.7675], + [177.3643, 64.5632], + [177.4536, 64.4206], + [178, 64.2104], + [178.3999, 64.2434], + [178.4683, 63.9926], + [178.6939, 63.9105], + [178.7629, 63.6428], + [178.5955, 63.4113], + [179.3348, 63.1965], + [179.2495, 62.9847], + [179.5407, 62.8489], + [179.6091, 62.7056], + [179.3836, 62.5208], + [179.1488, 62.496], + [179.1504, 62.3419], + [178.4894, 62.4368], + [178.061, 62.5411], + [177.3068, 62.5821], + [177.3342, 62.6882], + [176.931, 62.6944], + [177.0149, 62.5505], + [176.5942, 62.4858], + [176.2793, 62.3171], + [175.6335, 62.1913], + [175.1745, 62.0219], + [174.8151, 61.947], + [174.4898, 61.8146], + [174.138, 61.8446], + [173.991, 61.7145], + [173.5446, 61.7491], + [173.4971, 61.5713], + [172.9313, 61.3515], + [172.4761, 61.0557], + [172.2427, 61.0198], + [172.0068, 60.8552], + [171.4065, 60.7505], + [171.1795, 60.5589], + [170.5807, 60.4339], + [170.4006, 59.9656], + [170.2651, 59.9204], + [169.9558, 60.0592], + [169.7078, 60.3995], + [169.1665, 60.5673], + [168.0964, 60.5715], + [167.0481, 60.3284], + [166.2878, 59.8445], + [166.1095, 59.8275], + [166.2497, 60.3835], + [166.0523, 60.4538], + [165.7214, 60.2697], + [165.1296, 60.0842], + [165.1986, 60.0052], + [165.0135, 59.848], + [164.4885, 60.111], + [164.3391, 59.9915], + [163.6515, 60.0517], + [163.698, 59.904], + [163.3782, 59.8144], + [163.3901, 59.6315], + [163.1687, 59.5106], + [163.3125, 59.2875], + [163.0806, 59.2713], + [162.8866, 59.1135], + [163.0685, 58.9681], + [162.8162, 58.8872], + [162.4053, 58.6544], + [162.1699, 58.4059], + [161.9932, 58.0874], + [162.0256, 57.9288], + [162.4555, 57.7844], + [162.5298, 57.9365], + [162.7116, 57.9667], + [163.3295, 57.7089], + [163.0748, 57.461], + [162.8331, 57.3833], + [162.7859, 57.1455], + [162.8599, 57.0514], + [162.7835, 56.763], + [163.2806, 56.688], + [163.241, 56.5932], + [163.3661, 56.1807], + [162.8216, 56.0562], + [162.638, 56.2208], + [162.7402, 56.4798], + [162.4012, 56.3698], + [162.5925, 56.2685], + [162.1421, 56.1291], + [161.7771, 55.6083], + [161.7477, 55.376], + [161.813, 55.1792], + [162.1532, 54.8499], + [162.1301, 54.7724], + [161.7532, 54.5198], + [161.3119, 54.4901], + [161.0664, 54.5968], + [160.7412, 54.5352], + [160.053, 54.1757], + [159.8441, 53.7969], + [159.9692, 53.5703], + [159.9224, 53.2836], + [159.6325, 53.2571], + [159.0033, 53.0768], + [158.5156, 52.7463], + [158.5477, 52.296], + [158.2869, 51.9675], + [157.7592, 51.544], + [157.5369, 51.4861], + [157.4465, 51.3479], + [157.0459, 51.1236], + [156.7197, 50.8865], + [156.7219, 51.1955], + [156.5355, 51.2893], + [156.4802, 51.5165], + [156.5012, 51.7751], + [156.4392, 52.216], + [156.3728, 52.4046], + [156.4319, 52.5246], + [156.2657, 52.5982], + [156.1112, 52.9354], + [155.9358, 53.8652], + [155.728, 54.4268], + [155.61, 54.8949], + [155.5512, 55.2842], + [155.6862, 56.0391], + [155.756, 56.1067], + [155.9243, 56.5845], + [156.1253, 56.832], + [156.3856, 56.9118], + [156.8316, 57.2135], + [157.0013, 57.4255], + [156.9307, 57.6584], + [156.801, 57.7734], + [156.9815, 57.8571], + [157.2419, 57.7705], + [157.4699, 57.8039], + [157.7232, 58.0246], + [158.168, 58.0207], + [158.6548, 58.2694], + [159.0238, 58.4148], + [159.7507, 58.9256], + [159.8644, 59.1406], + [160.3103, 59.3461], + [160.4973, 59.5525], + [160.8049, 59.6054], + [161.2839, 59.8705], + [161.5328, 60.0676], + [161.8972, 60.203], + [161.9386, 60.4168], + [162.2062, 60.538], + [162.7537, 60.6459], + [162.889, 60.7525], + [163.3457, 60.7993], + [163.7743, 60.9185], + [163.4873, 61.0017], + [164.0288, 61.3466], + [163.7595, 61.479], + [163.8661, 61.6465], + [164.0448, 61.6834], + [164.1272, 62.2624], + [164.5383, 62.4511], + [164.9884, 62.403], + [164.5979, 62.6731], + [164.0551, 62.6561], + [163.2671, 62.522], + [163.2315, 62.3114], + [163.0915, 62.2266], + [163.1478, 62.0376], + [162.9784, 61.8095], + [163.3265, 61.6579], + [162.4172, 61.6758], + [161.9864, 61.3726], + [161.5956, 61.2552], + [161.1836, 60.9926], + [160.9151, 60.8996], + [160.8285, 60.7547], + [160.3818, 60.7016], + [160.1701, 60.8249], + [160.4249, 60.9837], + [160.0001, 61.1061], + [159.9652, 61.378], + [160.414, 61.7648], + [160.2952, 61.9399], + [159.9667, 61.7588], + [159.5772, 61.6528], + [159.3599, 61.893], + [158.9207, 61.903], + [158.853, 61.8263], + [158.2602, 61.8259], + [158.0802, 61.734], + [157.4645, 61.7821], + [156.6795, 61.524], + [156.5469, 61.2092], + [156.0076, 60.9496], + [155.9207, 60.7548], + [154.9524, 60.3674], + [154.5637, 60.0937], + [154.4878, 59.8963], + [154.2208, 59.8696], + [154.2762, 59.6501], + [154.4288, 59.547], + [154.9629, 59.4961], + [155.2097, 59.3439], + [155.1941, 59.1758], + [154.5016, 59.2179], + [154.3577, 59.1106], + [154.0487, 59.0528], + [153.802, 59.1723], + [153.3692, 59.2413], + [153.3373, 59.0899], + [153.0901, 59.0831], + [152.916, 58.9166], + [152.5567, 58.95], + [152.4048, 59.0234], + [152.0203, 58.875], + [151.3591, 58.856], + [151.2165, 59.0917], + [151.4377, 59.1703], + [152.1094, 59.1558], + [152.1367, 59.2962], + [151.7603, 59.2993], + [151.6376, 59.4825], + [151.3221, 59.5559], + [150.9371, 59.5559], + [150.8431, 59.4484], + [150.4568, 59.6126], + [149.5977, 59.7582], + [149.1329, 59.6407], + [148.9925, 59.3561], + [148.7879, 59.2365], + [148.4375, 59.2623], + [148.3937, 59.3793], + [147.9138, 59.3905], + [147.5911, 59.3041], + [146.7196, 59.3819], + [146.4396, 59.4604], + [146.3122, 59.2788], + [146.0503, 59.1389], + [145.6753, 59.4235], + [145.0008, 59.3696], + [143.8405, 59.4025], + [143.4936, 59.3185], + [143.1597, 59.3539], + [142.2624, 59.1246], + [141.9468, 58.943], + [141.5837, 58.6177], + [140.9043, 58.3828], + [140.6668, 58.1911], + [140.4957, 57.8448], + [139.9815, 57.6877], + [139.7897, 57.4827], + [139.5631, 57.4301], + [139.4185, 57.2972], + [139.1965, 57.2727], + [138.6616, 56.9779], + [138.1148, 56.5281], + [138.2235, 56.4242], + [137.9141, 56.3595], + [137.8344, 56.2255], + [137.572, 56.1165], + [136.7733, 55.6605], + [136.5655, 55.6232], + [136.319, 55.4866], + [136.2198, 55.3546], + [135.8689, 55.1739], + [135.5343, 55.0866], + [135.2196, 54.8941], + [135.2651, 54.7217], + [135.6541, 54.666], + [135.7502, 54.5709], + [136.2493, 54.6204], + [136.8833, 54.5914], + [136.7386, 54.4138], + [136.8206, 54.3161], + [136.6847, 53.8085], + [137.1857, 53.8511], + [137.2909, 54.0357], + [137.0614, 54.1457], + [137.4514, 54.3176], + [137.6846, 54.2766], + [137.4854, 54.1121], + [137.5969, 53.8242], + [137.3351, 53.5294], + [137.9182, 53.5866], + [138.2982, 53.7562], + [138.2468, 53.5328], + [138.5021, 53.5435], + [138.6558, 53.7318], + [138.7606, 53.9752], + [138.7385, 54.316], + [139.1619, 54.2047], + [139.3718, 54.1959], + [139.797, 54.2974], + [139.8159, 54.2152], + [140.2406, 54.057], + [140.252, 53.8906], + [140.5398, 53.6717], + [140.9497, 53.489], + [141.433, 53.1489], + [141.1888, 52.9875], + [141.2806, 52.5788], + [141.1672, 52.3649], + [141.5148, 52.1719], + [141.3089, 52.0371], + [141.4295, 51.942], + [141.2002, 51.8237], + [141.1092, 51.6788], + [140.9056, 51.6154], + [140.896, 51.4288], + [140.7057, 51.3348], + [140.6567, 50.9378], + [140.5422, 50.8771], + [140.4429, 50.5444], + [140.5454, 50.3441], + [140.523, 50.1511], + [140.6607, 50.058], + [140.4158, 49.8627], + [140.5422, 49.7568], + [140.5608, 49.5754], + [140.3438, 49.2184], + [140.3768, 49.1435], + [140.1858, 48.6501], + [140.165, 48.4494], + [139.3905, 47.9042], + [138.959, 47.3134], + [138.8907, 47.3052], + [138.5348, 46.9866], + [138.2024, 46.4543], + [138.1004, 46.228], + [137.7821, 45.946], + [137.6715, 45.7946], + [137.3967, 45.6239], + [137.1445, 45.3747], + [136.8255, 45.2041], + [136.5535, 44.895], + [136.3648, 44.7925], + [136.1226, 44.4755], + [135.8887, 44.4015], + [135.6559, 44.1687], + [135.4879, 43.8327], + [135.2268, 43.6822], + [135.1399, 43.5084], + [134.9747, 43.4595], + [134.5872, 43.229], + [134.1937, 43.0798], + [133.9268, 42.8827], + [133.605, 42.8463], + [133.1577, 42.6884], + [132.9963, 42.8044], + [132.7737, 42.8751], + [132.5779, 42.8404], + [132.4044, 42.9423], + [132.3562, 43.286], + [131.9522, 43.072], + [131.7505, 43.2253], + [131.5177, 43.0093], + [131.4717, 42.8732], + [131.1274, 42.6468], + [130.6567, 42.6641], + [130.8585, 42.5246], + [130.7, 42.2951] + ] + ], + [ + [ + [102.9299, 79.2757], + [103.3491, 79.1164], + [103.9891, 79.1308], + [104.4992, 78.8638], + [105.1751, 78.8093], + [105.4079, 78.5662], + [104.7874, 78.3364], + [102.8657, 78.2191], + [101.2098, 78.1935], + [100.0373, 77.9616], + [99.2683, 78.0416], + [100.0497, 78.3432], + [100.2546, 78.6654], + [101.0271, 79.0314], + [101.3099, 79.2388], + [101.9646, 79.2923], + [102.9299, 79.2757] + ] + ], + [ + [ + [90.9021, 80.0736], + [92.4243, 80.0307], + [93.7239, 79.9273], + [93.6699, 79.8317], + [92.6248, 79.6728], + [92.0995, 79.8099], + [91.2624, 79.903], + [90.9021, 80.0736] + ] + ], + [ + [ + [97.7743, 80.1314], + [98.5779, 79.9826], + [99.199, 80.05], + [100.0225, 79.8236], + [99.5706, 79.2722], + [99.9466, 78.9701], + [99.4056, 78.8225], + [97.7608, 78.8088], + [96.7985, 78.9892], + [95.0182, 79.0385], + [94.3645, 79.2369], + [94.3123, 79.4792], + [93.7489, 79.5439], + [94.2883, 79.8986], + [94.9356, 80.0713], + [97.7743, 80.1314] + ] + ], + [ + [ + [57.0977, 80.3452], + [56.9568, 80.0663], + [55.9486, 80.0784], + [55.9893, 80.3367], + [57.0977, 80.3452] + ] + ], + [ + [ + [53.3411, 80.399], + [53.4899, 80.1718], + [52.645, 80.1723], + [52.8595, 80.4055], + [53.3411, 80.399] + ] + ], + [ + [ + [59.2643, 80.3432], + [57.2197, 80.2413], + [57.2744, 80.3915], + [58.4524, 80.4681], + [59.2643, 80.3432] + ] + ], + [ + [ + [47.8655, 80.8121], + [46.9924, 80.5527], + [46.084, 80.4399], + [45.0947, 80.6492], + [47.8655, 80.8121] + ] + ], + [ + [ + [62.2556, 80.7923], + [62.0374, 80.6658], + [61.0446, 80.4052], + [60.3074, 80.4956], + [59.6364, 80.4312], + [59.2293, 80.6441], + [59.6939, 80.8371], + [60.564, 80.8228], + [62.0677, 80.8799], + [62.2556, 80.7923] + ] + ], + [ + [ + [49.9973, 80.8651], + [50.7243, 80.8955], + [51.7009, 80.6769], + [50.9496, 80.5368], + [49.7278, 80.4943], + [49.4904, 80.3635], + [48.6545, 80.317], + [49.1072, 80.1895], + [48.4439, 80.1008], + [47.6331, 80.1178], + [46.6595, 80.2742], + [47.428, 80.3227], + [48.8274, 80.4977], + [49.631, 80.6396], + [49.0037, 80.7757], + [49.9973, 80.8651] + ] + ], + [ + [ + [80.1219, 80.9572], + [80.3264, 80.8605], + [79.1276, 80.8067], + [79.2378, 80.9531], + [80.1219, 80.9572] + ] + ], + [ + [ + [56.1712, 81.1213], + [56.7029, 81.1131], + [58.2824, 80.9265], + [57.2316, 80.907], + [56.1712, 81.1213] + ] + ], + [ + [ + [55.5203, 81.0084], + [56.0192, 81.0436], + [57.6813, 80.8168], + [55.7988, 80.8544], + [55.5203, 81.0084] + ] + ], + [ + [ + [64.7048, 81.2053], + [65.2298, 81.1367], + [65.4458, 80.9196], + [64.4256, 80.7409], + [63.1307, 80.6831], + [62.5298, 80.8438], + [63.1423, 80.9714], + [64.0365, 80.9869], + [64.7048, 81.2053] + ] + ], + [ + [ + [91.3328, 81.0808], + [89.9963, 81.1053], + [90.0715, 81.2145], + [91.4548, 81.1926], + [91.3328, 81.0808] + ] + ], + [ + [ + [95.9675, 81.205], + [96.973, 80.9061], + [97.9729, 80.7211], + [97.1916, 80.6453], + [97.0208, 80.5259], + [97.188, 80.2336], + [95.0339, 80.1383], + [93.6941, 79.9981], + [92.5049, 80.1577], + [91.9185, 80.4684], + [92.7405, 80.513], + [92.7188, 80.888], + [93.0527, 80.9954], + [95.9675, 81.205] + ] + ], + [ + [ + [56.781, 81.3852], + [57.6887, 81.3311], + [56.4312, 81.1745], + [55.8347, 81.3248], + [56.781, 81.3852] + ] + ] + ] + }, + "properties": { + "NAME": "Russia", + "NAME_LONG": "Russian Federation", + "ADM0_A3": "RUS", + "ISO_A2": "RU", + "ISO_A3": "RUS", + "WB_A2": "RU", + "WB_A3": "RUS" + }, + "id": 191 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [30.4718, -1.0668], + [30.5553, -1.3184], + [30.7375, -1.4067], + [30.831, -1.5942], + [30.8299, -1.9606], + [30.8878, -2.0825], + [30.8344, -2.3453], + [30.5546, -2.4006], + [30.3786, -2.3031], + [30.2075, -2.3392], + [30.1391, -2.4308], + [29.9317, -2.3169], + [29.9033, -2.6491], + [29.6975, -2.8083], + [29.3397, -2.8264], + [29.3066, -2.6601], + [29.1297, -2.597], + [29.0154, -2.7207], + [28.8913, -2.6527], + [28.8588, -2.4182], + [29.1506, -2.1504], + [29.1493, -1.7993], + [29.3585, -1.5099], + [29.5779, -1.3884], + [29.8361, -1.3295], + [29.8979, -1.4696], + [30.1472, -1.3451], + [30.3528, -1.0608], + [30.4718, -1.0668] + ] + ] + }, + "properties": { + "NAME": "Rwanda", + "NAME_LONG": "Rwanda", + "ADM0_A3": "RWA", + "ISO_A2": "RW", + "ISO_A3": "RWA", + "WB_A2": "RW", + "WB_A3": "RWA" + }, + "id": 192 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-8.6824, 27.6614], + [-8.6824, 27.2854], + [-8.6808, 26.0131], + [-8.7072, 25.995], + [-10.5044, 25.995], + [-12.0153, 25.9949], + [-12.0153, 25.1633], + [-12.0153, 23.4952], + [-12.3539, 23.3225], + [-12.6194, 23.2708], + [-13.0152, 23.018], + [-13.1655, 22.7527], + [-13.0933, 22.4955], + [-13.0152, 21.3334], + [-14.0155, 21.3333], + [-15.0023, 21.3332], + [-16.2677, 21.3329], + [-16.9588, 21.3329], + [-17.0812, 20.8747], + [-17.0569, 20.7669], + [-17.1002, 20.8376], + [-17.0137, 21.42], + [-16.73, 21.4698], + [-15.75, 21.4903], + [-15.4599, 21.4503], + [-14.8398, 21.4503], + [-14.6699, 21.5997], + [-14.6299, 21.8604], + [-14.2202, 22.3096], + [-14.1699, 22.7599], + [-14.02, 23.4103], + [-13.8901, 23.6905], + [-13.77, 23.7901], + [-13.31, 23.9806], + [-13.06, 24.4005], + [-12.4301, 24.8302], + [-12.31, 25.1104], + [-12.1699, 25.6397], + [-12.0298, 26.0304], + [-11.7172, 26.1036], + [-11.6362, 26.295], + [-11.3369, 26.6329], + [-11.3916, 26.8829], + [-10.9218, 27.0098], + [-10.5503, 26.9903], + [-10.2505, 26.8604], + [-10.0317, 26.9102], + [-9.7344, 26.8604], + [-9.4121, 27.088], + [-9.0009, 27.0899], + [-8.7529, 27.1905], + [-8.817, 27.6615], + [-8.6824, 27.6614] + ] + ] + }, + "properties": { + "NAME": "W. Sahara", + "NAME_LONG": "Western Sahara", + "ADM0_A3": "SAH", + "ISO_A2": "EH", + "ISO_A3": "ESH", + "WB_A2": "-99", + "WB_A3": "-99" + }, + "id": 193 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [46.5324, 29.0957], + [47.4341, 28.9946], + [47.5968, 28.6088], + [47.6681, 28.5335], + [48.4328, 28.5405], + [48.4946, 28.5001], + [48.6065, 28.1265], + [48.8779, 27.8368], + [48.7852, 27.7447], + [48.8733, 27.6125], + [49.0889, 27.5511], + [49.3049, 27.3255], + [49.4071, 27.1327], + [49.5164, 27.1884], + [49.6995, 26.9582], + [49.9421, 26.8583], + [50.0306, 26.4946], + [50.1916, 26.4036], + [50.216, 26.2151], + [50.1013, 25.9895], + [50.2341, 25.6152], + [50.4629, 25.4469], + [50.5622, 25.0548], + [50.8079, 24.7466], + [50.9789, 24.5677], + [51.2153, 24.6259], + [51.3953, 24.4879], + [51.3064, 24.406], + [51.5693, 24.2562], + [51.5935, 24.0783], + [52.5385, 22.9547], + [52.5831, 22.9311], + [54.1343, 22.7403], + [55.1053, 22.6209], + [55.1868, 22.7036], + [55.6267, 22.0238], + [55.6376, 21.979], + [55.3029, 20.9715], + [54.9784, 19.9954], + [53.63, 19.546], + [52.7744, 19.2608], + [51.9786, 18.9956], + [51.0198, 18.8666], + [49.7384, 18.6942], + [49.1288, 18.6121], + [49.0358, 18.5797], + [48.1619, 18.1489], + [47.589, 17.4633], + [47.4276, 17.0918], + [47.1909, 16.9589], + [46.9703, 16.9568], + [46.7101, 17.2754], + [46.3226, 17.2241], + [45.4304, 17.312], + [45.1654, 17.4284], + [44.4041, 17.4187], + [44.1045, 17.352], + [43.7506, 17.3457], + [43.5034, 17.5135], + [43.391, 17.512], + [43.165, 17.3259], + [43.1087, 16.927], + [43.2086, 16.7734], + [43.0849, 16.6726], + [43.0363, 16.5363], + [42.7895, 16.371], + [42.7373, 16.6711], + [42.5418, 16.878], + [42.5442, 17.0043], + [42.3391, 17.1736], + [42.3015, 17.4536], + [42.0935, 17.6521], + [41.7192, 17.9092], + [41.4509, 18.356], + [41.4382, 18.4642], + [41.2102, 18.6979], + [41.249, 18.8342], + [41.1372, 18.9577], + [40.9559, 19.3433], + [40.9447, 19.5057], + [40.7847, 19.5963], + [40.7909, 19.7141], + [40.6287, 19.7921], + [40.5226, 19.9725], + [40.0676, 20.2865], + [39.9232, 20.2636], + [39.6465, 20.4616], + [39.506, 20.7464], + [39.2969, 20.928], + [39.0807, 21.315], + [39.1711, 21.4041], + [39.0794, 21.7064], + [38.9786, 21.8621], + [39.0404, 22.2358], + [39.1428, 22.3906], + [38.9577, 22.775], + [38.9647, 22.8704], + [38.8142, 22.9827], + [38.6002, 23.5682], + [38.4526, 23.784], + [38.0791, 24.0704], + [37.8656, 24.1499], + [37.6761, 24.2912], + [37.5227, 24.2677], + [37.4567, 24.4412], + [37.1486, 24.851], + [37.28, 24.9641], + [37.2305, 25.1937], + [37.1053, 25.3222], + [36.9363, 25.6461], + [36.6634, 25.8557], + [36.6961, 26.0223], + [36.5366, 26.0824], + [36.2298, 26.6256], + [35.8317, 27.0927], + [35.8128, 27.1911], + [35.5596, 27.4556], + [35.492, 27.6324], + [35.3228, 27.8763], + [35.0519, 28.1196], + [34.9009, 28.0823], + [34.6267, 28.1605], + [34.8038, 28.5271], + [34.7785, 28.6645], + [34.8525, 29.0451], + [34.9494, 29.3517], + [36.0164, 29.19], + [36.4771, 29.4946], + [36.7562, 29.8655], + [37.4702, 29.9946], + [37.6345, 30.3128], + [37.9811, 30.4995], + [37.48, 31.0073], + [36.9595, 31.491], + [38.9633, 31.9944], + [39.1464, 32.1181], + [40.0293, 31.9944], + [40.4241, 31.9205], + [42.0754, 31.0799], + [42.8587, 30.4947], + [43.8901, 29.7674], + [44.6918, 29.2018], + [45.4349, 29.1362], + [46.3575, 29.0631], + [46.5324, 29.0957] + ] + ] + }, + "properties": { + "NAME": "Saudi Arabia", + "NAME_LONG": "Saudi Arabia", + "ADM0_A3": "SAU", + "ISO_A2": "SA", + "ISO_A3": "SAU", + "WB_A2": "SA", + "WB_A3": "SAU" + }, + "id": 194 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [36.8836, 21.9957], + [36.8968, 21.6779], + [37.1486, 21.171], + [37.0867, 21.0571], + [37.1473, 20.9409], + [37.228, 20.565], + [37.1751, 20.3492], + [37.2249, 20.1195], + [37.1961, 19.9792], + [37.2595, 19.8207], + [37.2383, 19.6553], + [37.3335, 19.1597], + [37.4343, 18.8617], + [37.551, 18.7099], + [37.6747, 18.741], + [37.9255, 18.585], + [38.1517, 18.2493], + [38.5428, 18.1184], + [38.6016, 18.0048], + [38.4593, 17.8907], + [38.3437, 17.6559], + [38.1606, 17.5573], + [38.0154, 17.54], + [37.872, 17.4373], + [37.5068, 17.3185], + [37.4034, 17.0299], + [37.134, 17.0164], + [37.0005, 17.0726], + [36.985, 16.7657], + [36.8773, 16.5273], + [36.944, 16.2529], + [36.8859, 16.1849], + [36.7595, 15.8375], + [36.671, 15.7231], + [36.5249, 15.2479], + [36.4236, 15.1115], + [36.5264, 14.2635], + [36.4366, 13.9912], + [36.4582, 13.8201], + [36.3821, 13.571], + [36.2336, 13.3616], + [36.1144, 12.9339], + [36.1236, 12.7214], + [35.7284, 12.6744], + [35.6169, 12.5752], + [35.2156, 11.8966], + [35.0482, 11.7714], + [35.0731, 11.549], + [34.9471, 11.2749], + [34.9803, 11.1553], + [34.9143, 10.964], + [34.9338, 10.8453], + [34.8385, 10.7291], + [34.5871, 10.8793], + [34.4373, 10.7957], + [34.2795, 10.5655], + [34.3249, 10.2687], + [34.0982, 9.6797], + [34.0707, 9.4546], + [33.9009, 9.4553], + [33.9049, 9.7107], + [33.9691, 9.8383], + [33.9668, 10.0473], + [33.9021, 10.192], + [33.469, 10.5439], + [33.3706, 10.6509], + [33.1507, 10.731], + [33.1821, 10.8432], + [33.0829, 11.5846], + [33.1324, 11.6862], + [33.145, 11.9347], + [33.2092, 12.2104], + [32.7318, 12.2162], + [32.7467, 12.0027], + [32.0822, 11.9998], + [32.3452, 11.7091], + [32.3642, 11.24], + [32.4141, 11.0509], + [31.9429, 10.6556], + [31.8642, 10.4721], + [31.6648, 10.2142], + [31.2348, 9.7923], + [30.7493, 9.7358], + [30.4846, 9.972], + [30.013, 10.2705], + [29.6154, 10.0581], + [29.6139, 9.9145], + [29.4831, 9.7617], + [29.2524, 9.7112], + [29.0095, 9.6032], + [28.8287, 9.4275], + [28.8438, 9.3245], + [28.0451, 9.3314], + [27.8951, 9.5954], + [27.0804, 9.6068], + [26.6943, 9.4769], + [26.5569, 9.5205], + [26.1795, 9.959], + [25.9009, 10.1911], + [25.8431, 10.4178], + [25.4795, 10.3438], + [25.0841, 10.2932], + [24.9763, 9.9674], + [24.7927, 9.7984], + [24.7944, 9.5322], + [24.6802, 9.3734], + [24.661, 9.1823], + [24.5654, 9.0149], + [24.5584, 8.8867], + [24.3801, 8.8442], + [24.1703, 8.6893], + [23.7213, 8.702], + [23.4823, 8.7834], + [23.4577, 9.1462], + [23.6322, 9.2776], + [23.6061, 9.5372], + [23.674, 9.6903], + [23.624, 9.9078], + [23.2912, 10.4397], + [23.0056, 10.6868], + [22.8611, 10.9192], + [22.9565, 11.2088], + [22.9148, 11.3961], + [22.7818, 11.3989], + [22.6281, 11.5098], + [22.5371, 11.6809], + [22.5929, 11.9889], + [22.4814, 12.0443], + [22.4814, 12.1767], + [22.3728, 12.4631], + [22.4457, 12.6111], + [22.2049, 12.7434], + [22.0587, 12.6367], + [21.936, 12.6395], + [21.8094, 12.7937], + [21.9351, 13.0592], + [22.14, 13.1935], + [22.2676, 13.3346], + [22.1959, 13.5805], + [22.0737, 13.7714], + [22.2435, 13.9754], + [22.5315, 14.1226], + [22.441, 14.2499], + [22.4249, 14.4704], + [22.4654, 14.6293], + [22.6663, 14.6817], + [22.6508, 14.8162], + [22.7389, 14.9798], + [22.9657, 15.2239], + [22.9257, 15.5639], + [23.0946, 15.7043], + [23.3206, 15.6813], + [23.5927, 15.749], + [23.9844, 15.7212], + [23.9831, 17.4057], + [23.9821, 18.567], + [23.9813, 19.4961], + [23.9813, 19.9954], + [24.968, 19.995], + [24.9808, 20.5004], + [24.9812, 21.9954], + [26.3438, 21.9951], + [27.317, 21.9949], + [28.2903, 21.9948], + [29.4582, 21.9946], + [30.4315, 21.9945], + [31.2484, 21.9944], + [31.3595, 22.1881], + [31.4906, 22.1482], + [31.4355, 21.9954], + [33.1811, 21.9954], + [34.3231, 21.9955], + [35.4864, 21.9956], + [36.8836, 21.9957] + ] + ] + }, + "properties": { + "NAME": "Sudan", + "NAME_LONG": "Sudan", + "ADM0_A3": "SDN", + "ISO_A2": "SD", + "ISO_A3": "SDN", + "WB_A2": "SD", + "WB_A3": "SDN" + }, + "id": 196 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [34.0707, 9.4546], + [34.1119, 8.6266], + [33.9708, 8.4454], + [33.6955, 8.3729], + [33.6001, 8.464], + [33.1741, 8.4045], + [33.2069, 8.2407], + [32.9898, 7.9172], + [33.0513, 7.8011], + [33.4623, 7.7495], + [33.7161, 7.6572], + [34.0065, 7.4099], + [34.0311, 7.2554], + [34.1958, 7.129], + [34.2976, 6.9686], + [34.5037, 6.89], + [34.5247, 6.7529], + [34.7335, 6.6376], + [34.8447, 6.2487], + [34.9515, 6.0812], + [34.9844, 5.841], + [35.0987, 5.6225], + [35.262, 5.5119], + [35.3208, 5.3487], + [35.4302, 5.4272], + [35.8042, 5.318], + [35.7559, 5.0634], + [35.7845, 4.7642], + [35.9208, 4.6193], + [35.6106, 4.62], + [35.5222, 4.7805], + [35.5708, 4.9043], + [35.2457, 4.9817], + [34.6663, 4.765], + [34.3812, 4.6202], + [33.9771, 4.2197], + [33.5326, 3.7743], + [33.1954, 3.7571], + [33.0172, 3.8772], + [32.7564, 3.769], + [32.3718, 3.7311], + [32.1878, 3.6192], + [32.1746, 3.5209], + [31.9437, 3.5913], + [31.781, 3.8158], + [31.6685, 3.705], + [31.5054, 3.6599], + [31.295, 3.7742], + [31.1415, 3.7851], + [30.9444, 3.6793], + [30.8395, 3.4902], + [30.6934, 3.6319], + [30.5726, 3.601], + [30.5389, 3.8415], + [30.2059, 3.9504], + [30.1227, 4.1025], + [29.7762, 4.4056], + [29.7777, 4.5239], + [29.4941, 4.6683], + [29.3039, 4.3871], + [29.1735, 4.348], + [28.9862, 4.4959], + [28.8153, 4.4783], + [28.7554, 4.554], + [28.4041, 4.2778], + [28.1776, 4.3472], + [28.0089, 4.4991], + [27.7724, 4.5958], + [27.7669, 4.7354], + [27.641, 4.8909], + [27.5527, 4.9005], + [27.4413, 5.0707], + [27.3013, 5.2052], + [27.2201, 5.4409], + [27.2607, 5.5503], + [27.1704, 5.7203], + [26.9811, 5.8592], + [26.8189, 5.8946], + [26.705, 6.0098], + [26.528, 6.0432], + [26.452, 6.2803], + [26.2896, 6.3872], + [26.277, 6.4774], + [26.378, 6.6533], + [26.081, 6.8423], + [26.0261, 6.9967], + [25.36, 7.3356], + [25.1904, 7.5012], + [25.2794, 7.6595], + [25.2169, 7.8641], + [25.0896, 7.8849], + [24.8321, 8.1657], + [24.4311, 8.2714], + [24.3321, 8.2457], + [24.1314, 8.3431], + [24.2437, 8.5702], + [24.1703, 8.6893], + [24.3801, 8.8442], + [24.5584, 8.8867], + [24.5654, 9.0149], + [24.661, 9.1823], + [24.6802, 9.3734], + [24.7944, 9.5322], + [24.7927, 9.7984], + [24.9763, 9.9674], + [25.0841, 10.2932], + [25.4795, 10.3438], + [25.8431, 10.4178], + [25.9009, 10.1911], + [26.1795, 9.959], + [26.5569, 9.5205], + [26.6943, 9.4769], + [27.0804, 9.6068], + [27.8951, 9.5954], + [28.0451, 9.3314], + [28.8438, 9.3245], + [28.8287, 9.4275], + [29.0095, 9.6032], + [29.2524, 9.7112], + [29.4831, 9.7617], + [29.6139, 9.9145], + [29.6154, 10.0581], + [30.013, 10.2705], + [30.4846, 9.972], + [30.7493, 9.7358], + [31.2348, 9.7923], + [31.6648, 10.2142], + [31.8642, 10.4721], + [31.9429, 10.6556], + [32.4141, 11.0509], + [32.3642, 11.24], + [32.3452, 11.7091], + [32.0822, 11.9998], + [32.7467, 12.0027], + [32.7318, 12.2162], + [33.2092, 12.2104], + [33.145, 11.9347], + [33.1324, 11.6862], + [33.0829, 11.5846], + [33.1821, 10.8432], + [33.1507, 10.731], + [33.3706, 10.6509], + [33.469, 10.5439], + [33.9021, 10.192], + [33.9668, 10.0473], + [33.9691, 9.8383], + [33.9049, 9.7107], + [33.9009, 9.4553], + [34.0707, 9.4546] + ] + ] + }, + "properties": { + "NAME": "S. Sudan", + "NAME_LONG": "South Sudan", + "ADM0_A3": "SDS", + "ISO_A2": "SS", + "ISO_A3": "SSD", + "WB_A2": "SS", + "WB_A3": "SSD" + }, + "id": 197 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-12.2641, 14.7749], + [-12.1659, 14.6252], + [-12.2217, 14.3912], + [-12.1156, 14.3551], + [-11.9976, 14.1662], + [-12.0252, 14.0267], + [-11.9629, 13.9092], + [-12.0976, 13.7044], + [-11.9968, 13.5442], + [-11.7565, 13.3998], + [-11.6131, 13.3608], + [-11.5331, 13.1118], + [-11.4503, 13.0751], + [-11.4022, 12.7317], + [-11.461, 12.6584], + [-11.3884, 12.4039], + [-11.5154, 12.4316], + [-11.7578, 12.3833], + [-12.0792, 12.4081], + [-12.3609, 12.3056], + [-12.5051, 12.3903], + [-12.7733, 12.4351], + [-12.9131, 12.5363], + [-13.0827, 12.5157], + [-13.0765, 12.6359], + [-13.7283, 12.6734], + [-15.1951, 12.6794], + [-15.677, 12.4393], + [-16.2329, 12.4529], + [-16.382, 12.3738], + [-16.7284, 12.3325], + [-16.7987, 12.4309], + [-16.7612, 12.7132], + [-16.7537, 13.065], + [-16.6735, 13.1643], + [-15.8333, 13.1568], + [-15.8227, 13.3194], + [-15.5195, 13.3866], + [-15.3792, 13.3625], + [-15.2278, 13.4252], + [-15.1377, 13.59], + [-15.0151, 13.4957], + [-14.5922, 13.3531], + [-14.395, 13.243], + [-14.2017, 13.2296], + [-13.851, 13.3358], + [-13.8187, 13.4294], + [-13.9675, 13.5756], + [-14.3299, 13.4564], + [-14.4703, 13.5224], + [-14.5855, 13.6605], + [-14.7286, 13.6193], + [-14.9158, 13.7924], + [-15.0977, 13.82], + [-15.2673, 13.7418], + [-15.3941, 13.7715], + [-15.5182, 13.5831], + [-16.5614, 13.5869], + [-16.7102, 13.7736], + [-16.8026, 14.1079], + [-16.9396, 14.3559], + [-17.0595, 14.4539], + [-17.1782, 14.6531], + [-17.371, 14.8003], + [-17.1387, 14.9277], + [-16.8782, 15.2331], + [-16.5389, 15.7744], + [-16.5423, 15.8088], + [-16.466, 16.1741], + [-16.3811, 16.2467], + [-16.3274, 16.4746], + [-16.1323, 16.5548], + [-16.0538, 16.4954], + [-15.6722, 16.4814], + [-15.4909, 16.5645], + [-15.1251, 16.5827], + [-14.9309, 16.6434], + [-14.3433, 16.6367], + [-14.0156, 16.3559], + [-13.9641, 16.2301], + [-13.8113, 16.1221], + [-13.4849, 16.155], + [-13.3137, 15.9221], + [-13.2378, 15.6234], + [-13.0896, 15.497], + [-12.9643, 15.5092], + [-12.8568, 15.222], + [-12.6903, 15.0924], + [-12.4715, 14.998], + [-12.3825, 14.846], + [-12.2641, 14.7749] + ] + ] + }, + "properties": { + "NAME": "Senegal", + "NAME_LONG": "Senegal", + "ADM0_A3": "SEN", + "ISO_A2": "SN", + "ISO_A3": "SEN", + "WB_A2": "SN", + "WB_A3": "SEN" + }, + "id": 198 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [103.9608, 1.3911], + [103.8441, 1.2685], + [103.6476, 1.3084], + [103.8049, 1.4486], + [103.9608, 1.3911] + ] + ] + }, + "properties": { + "NAME": "Singapore", + "NAME_LONG": "Singapore", + "ADM0_A3": "SGP", + "ISO_A2": "SG", + "ISO_A3": "SGP", + "WB_A2": "SG", + "WB_A3": "SGP" + }, + "id": 200 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-37.6872, -53.9937], + [-36.6216, -54.1198], + [-36.042, -54.464], + [-35.8873, -54.7844], + [-36.1018, -54.8875], + [-36.4633, -54.5375], + [-36.8134, -54.445], + [-37.3881, -54.1477], + [-37.7245, -54.1335], + [-37.6872, -53.9937] + ] + ] + }, + "properties": { + "NAME": "S. Geo. and S. Sandw. Is.", + "NAME_LONG": "South Georgia and South Sandwich Islands", + "ADM0_A3": "SGS", + "ISO_A2": "GS", + "ISO_A3": "SGS", + "WB_A2": "-99", + "WB_A3": "-99" + }, + "id": 201 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [160.0524, -11.4952], + [160.3939, -11.6578], + [160.5645, -11.773], + [160.4832, -11.845], + [160.2305, -11.6262], + [160.0106, -11.5895], + [160.0524, -11.4952] + ] + ], + [ + [ + [166.0612, -10.654], + [165.862, -10.8685], + [165.7565, -10.8122], + [165.8781, -10.6568], + [166.0612, -10.654] + ] + ], + [ + [ + [161.3357, -10.2087], + [161.5022, -10.2507], + [161.8357, -10.447], + [162.1136, -10.4565], + [162.2775, -10.6796], + [162.2717, -10.8144], + [162.1011, -10.8215], + [161.7922, -10.735], + [161.5247, -10.5642], + [161.511, -10.3649], + [161.2808, -10.3089], + [161.3357, -10.2087] + ] + ], + [ + [ + [161.4263, -9.4117], + [161.5452, -9.6047], + [161.3948, -9.649], + [161.4263, -9.4117] + ] + ], + [ + [ + [159.9397, -9.4329], + [160.3664, -9.4128], + [160.7854, -9.7275], + [160.8247, -9.8673], + [160.6448, -9.9371], + [160.3203, -9.8151], + [159.8356, -9.7939], + [159.7234, -9.707], + [159.5991, -9.5124], + [159.616, -9.2953], + [159.709, -9.2477], + [159.9397, -9.4329] + ] + ], + [ + [ + [158.0134, -8.5455], + [158.1057, -8.6911], + [158.0134, -8.7652], + [157.8792, -8.6825], + [158.0134, -8.5455] + ] + ], + [ + [ + [160.8005, -8.3588], + [160.9968, -8.6038], + [160.9466, -8.8137], + [161.1511, -8.9496], + [161.3281, -9.4386], + [161.2372, -9.4475], + [160.8679, -9.1521], + [160.7643, -8.9467], + [160.6545, -8.6041], + [160.72, -8.5534], + [160.5935, -8.3849], + [160.8005, -8.3588] + ] + ], + [ + [ + [157.636, -8.1894], + [157.8384, -8.3372], + [157.8861, -8.5829], + [157.6748, -8.5092], + [157.5671, -8.2763], + [157.2282, -8.3167], + [157.3828, -8.0315], + [157.5789, -8.0055], + [157.636, -8.1894] + ] + ], + [ + [ + [157.1843, -8.1067], + [157.0542, -8.1291], + [156.947, -7.9797], + [157.0911, -7.8505], + [157.1913, -7.9529], + [157.1843, -8.1067] + ] + ], + [ + [ + [156.6112, -7.5694], + [156.7995, -7.7665], + [156.6597, -7.9392], + [156.5042, -7.6301], + [156.6112, -7.5694] + ] + ], + [ + [ + [158.596, -7.5859], + [158.654, -7.5613], + [158.9898, -7.8022], + [159.0857, -7.9036], + [159.4026, -7.9824], + [159.4317, -8.0315], + [159.8421, -8.3256], + [159.7966, -8.3918], + [159.3454, -8.2614], + [158.8457, -7.9734], + [158.5801, -7.7408], + [158.596, -7.5859] + ] + ], + [ + [ + [156.5816, -6.6497], + [157.0427, -6.8971], + [157.1525, -7.1243], + [157.4417, -7.4142], + [156.9277, -7.2088], + [156.687, -6.8971], + [156.4611, -6.7333], + [156.5816, -6.6497] + ] + ] + ] + }, + "properties": { + "NAME": "Solomon Is.", + "NAME_LONG": "Solomon Islands", + "ADM0_A3": "SLB", + "ISO_A2": "SB", + "ISO_A3": "SLB", + "WB_A2": "SB", + "WB_A3": "SLB" + }, + "id": 203 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-10.2822, 8.4846], + [-10.3649, 8.1482], + [-10.5292, 8.1243], + [-10.6177, 8.0108], + [-10.6152, 7.769], + [-10.7306, 7.7055], + [-10.8746, 7.5309], + [-11.1263, 7.368], + [-11.3732, 7.1388], + [-11.4762, 6.9194], + [-11.8396, 7.149], + [-12.5066, 7.3898], + [-12.4283, 7.5336], + [-12.5314, 7.6871], + [-12.7114, 7.712], + [-12.8759, 7.8287], + [-12.8952, 8.0796], + [-12.9787, 8.242], + [-13.1617, 8.1872], + [-13.1444, 8.4312], + [-13.2412, 8.6722], + [-13.3011, 9.0415], + [-13.0289, 9.096], + [-12.9579, 9.2724], + [-12.8358, 9.282], + [-12.7016, 9.4202], + [-12.5375, 9.7157], + [-12.5083, 9.8604], + [-12.2536, 9.9284], + [-12.1413, 9.8749], + [-11.9218, 9.9222], + [-11.9101, 9.9925], + [-11.2727, 9.996], + [-11.0101, 9.7427], + [-10.8549, 9.4553], + [-10.6751, 9.3065], + [-10.7463, 9.0838], + [-10.606, 9.0638], + [-10.6002, 8.819], + [-10.4819, 8.6725], + [-10.6389, 8.5199], + [-10.6691, 8.3991], + [-10.5193, 8.3348], + [-10.3898, 8.4891], + [-10.2822, 8.4846] + ] + ] + }, + "properties": { + "NAME": "Sierra Leone", + "NAME_LONG": "Sierra Leone", + "ADM0_A3": "SLE", + "ISO_A2": "SL", + "ISO_A3": "SLE", + "WB_A2": "SL", + "WB_A3": "SLE" + }, + "id": 204 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-89.3616, 14.4155], + [-89.0266, 14.3113], + [-88.9572, 14.1852], + [-88.7466, 14.0525], + [-88.4954, 13.9751], + [-88.488, 13.8653], + [-88.0875, 13.9805], + [-88.0236, 13.8912], + [-87.8329, 13.9152], + [-87.7126, 13.8005], + [-87.8172, 13.4066], + [-87.7981, 13.2657], + [-87.9282, 13.1586], + [-88.2083, 13.1604], + [-88.4692, 13.2231], + [-88.7857, 13.2453], + [-89.2515, 13.4723], + [-89.808, 13.5269], + [-89.8371, 13.5968], + [-90.093, 13.7289], + [-90.099, 13.8585], + [-89.8801, 14.0427], + [-89.5309, 14.2256], + [-89.5699, 14.412], + [-89.3616, 14.4155] + ] + ] + }, + "properties": { + "NAME": "El Salvador", + "NAME_LONG": "El Salvador", + "ADM0_A3": "SLV", + "ISO_A2": "SV", + "ISO_A3": "SLV", + "WB_A2": "SV", + "WB_A3": "SLV" + }, + "id": 205 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [48.9391, 11.2491], + [48.9391, 10.1254], + [48.9391, 9.4512], + [48.3391, 8.5421], + [47.9792, 7.9966], + [46.9792, 7.9966], + [46.9205, 8.0256], + [45.5144, 8.4965], + [44.0239, 8.9855], + [43.6215, 9.3369], + [43.419, 9.413], + [43.2353, 9.6918], + [43.1872, 9.8833], + [43.0677, 9.9225], + [42.9582, 10.1156], + [42.8363, 10.2081], + [42.6996, 10.6585], + [42.9237, 10.9988], + [43.2407, 11.4879], + [43.4597, 11.3511], + [43.4881, 11.2389], + [43.6589, 10.988], + [43.8296, 10.803], + [44.2743, 10.4567], + [44.5861, 10.3836], + [44.7507, 10.4279], + [44.962, 10.4158], + [45.3373, 10.6708], + [45.4871, 10.6847], + [45.8027, 10.8753], + [46.1022, 10.7707], + [46.2074, 10.7962], + [46.4478, 10.6931], + [46.6597, 10.7543], + [47.0081, 10.939], + [47.3669, 11.1728], + [47.5227, 11.187], + [47.6777, 11.108], + [48.1608, 11.1457], + [48.3428, 11.2755], + [48.6548, 11.3306], + [48.9391, 11.2491] + ] + ] + }, + "properties": { + "NAME": "Somaliland", + "NAME_LONG": "Somaliland", + "ADM0_A3": "SOL", + "ISO_A2": "-99", + "ISO_A3": "-99", + "WB_A2": "-99", + "WB_A3": "-99" + }, + "id": 207 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [41.5351, -1.6963], + [41.5229, -1.5728], + [40.9798, -0.8708], + [40.9685, -0.0027], + [40.9685, 0.8722], + [40.9685, 2.1036], + [40.9654, 2.8141], + [41.3427, 3.2011], + [41.885, 3.9772], + [41.9235, 4.0706], + [42.1353, 4.2001], + [42.2973, 4.2017], + [42.7898, 4.2856], + [42.8689, 4.3268], + [42.9604, 4.5174], + [43.1193, 4.6477], + [43.5285, 4.8416], + [43.969, 4.954], + [44.9126, 4.8994], + [44.9415, 4.9115], + [45.936, 5.9967], + [46.4239, 6.4967], + [47.3959, 7.4342], + [47.9792, 7.9966], + [48.3391, 8.5421], + [48.9391, 9.4512], + [48.9391, 10.1254], + [48.9391, 11.2491], + [49.2396, 11.3003], + [49.5217, 11.3938], + [49.5768, 11.46], + [49.8512, 11.4649], + [50.2683, 11.5893], + [50.5127, 11.7712], + [50.5759, 11.921], + [50.7979, 11.9891], + [51.0293, 11.8851], + [51.2927, 11.8331], + [51.2478, 11.6524], + [51.1209, 11.5053], + [51.0859, 11.188], + [51.1382, 10.6767], + [51.241, 10.4256], + [50.9274, 10.3278], + [50.9004, 10.0241], + [50.8062, 9.6245], + [50.8403, 9.4561], + [50.6768, 9.2592], + [50.6484, 9.1104], + [50.422, 8.8571], + [50.2902, 8.4868], + [50.0583, 8.1303], + [49.8421, 7.9627], + [49.8193, 7.7399], + [49.5866, 7.3148], + [49.367, 7.0257], + [49.0747, 6.4153], + [49.0361, 6.1442], + [48.6467, 5.48], + [48.2024, 4.9089], + [47.9485, 4.4571], + [47.578, 4.0599], + [47.4893, 3.9363], + [46.6257, 3.0239], + [46.2365, 2.6676], + [46.027, 2.4381], + [45.2322, 1.9677], + [45.0015, 1.8664], + [44.5501, 1.5591], + [44.1455, 1.2296], + [43.9326, 1.0098], + [43.7819, 0.9216], + [43.4676, 0.6206], + [42.7703, -0.1293], + [42.6478, -0.2289], + [42.0809, -0.8629], + [41.842, -1.2249], + [41.6521, -1.5651], + [41.5351, -1.6963] + ] + ] + }, + "properties": { + "NAME": "Somalia", + "NAME_LONG": "Somalia", + "ADM0_A3": "SOM", + "ISO_A2": "SO", + "ISO_A3": "SOM", + "WB_A2": "SO", + "WB_A3": "SOM" + }, + "id": 208 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [20.2428, 46.1081], + [20.3386, 45.9928], + [20.5721, 45.8877], + [20.7134, 45.7333], + [20.7607, 45.4933], + [20.9815, 45.3328], + [21.4933, 45.1451], + [21.3685, 44.8649], + [21.6563, 44.6877], + [22.0043, 44.6515], + [22.1851, 44.5151], + [22.3197, 44.6853], + [22.4837, 44.724], + [22.6212, 44.6374], + [22.4841, 44.4998], + [22.6916, 44.2284], + [22.6047, 44.0794], + [22.3996, 43.9933], + [22.3495, 43.8079], + [22.5189, 43.4742], + [22.8045, 43.329], + [22.9353, 43.0856], + [22.727, 42.8869], + [22.506, 42.8701], + [22.4297, 42.5714], + [22.5088, 42.4049], + [22.345, 42.3134], + [21.9415, 42.3331], + [21.5641, 42.2463], + [21.7387, 42.6822], + [21.3787, 42.7441], + [21.0926, 43.0907], + [20.8386, 43.1705], + [20.5975, 43.185], + [20.6438, 43.0523], + [20.3454, 42.8274], + [19.9292, 43.1139], + [19.6187, 43.1682], + [19.1953, 43.5328], + [19.3634, 43.6016], + [19.4617, 43.7621], + [19.2754, 43.9333], + [19.6189, 44.0357], + [19.1772, 44.287], + [19.1299, 44.5183], + [19.3284, 44.734], + [19.3687, 44.8871], + [19.1743, 44.9254], + [19.0158, 44.8656], + [19.1317, 44.9532], + [19.0823, 45.0849], + [19.1621, 45.285], + [18.9124, 45.6192], + [18.845, 45.8157], + [18.9013, 45.9312], + [19.2635, 45.9814], + [19.5499, 46.1642], + [19.9292, 46.1635], + [20.2428, 46.1081] + ] + ] + }, + "properties": { + "NAME": "Serbia", + "NAME_LONG": "Serbia", + "ADM0_A3": "SRB", + "ISO_A2": "RS", + "ISO_A3": "SRB", + "WB_A2": "YF", + "WB_A3": "SRB" + }, + "id": 210 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [6.6162, 0.0781], + [6.5164, 0.0336], + [6.4617, 0.2222], + [6.6419, 0.4108], + [6.7609, 0.2842], + [6.6162, 0.0781] + ] + ] + }, + "properties": { + "NAME": "São Tomé and Principe", + "NAME_LONG": "São Tomé and Principe", + "ADM0_A3": "STP", + "ISO_A2": "ST", + "ISO_A3": "STP", + "WB_A2": "ST", + "WB_A3": "STP" + }, + "id": 211 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-54.171, 5.3484], + [-54.4302, 5.0534], + [-54.4821, 4.9128], + [-54.4355, 4.7094], + [-54.4508, 4.4842], + [-54.3552, 4.0665], + [-54.1874, 3.8147], + [-53.9888, 3.611], + [-54.003, 3.4554], + [-54.1905, 3.1781], + [-54.1634, 2.9697], + [-54.2125, 2.7764], + [-54.3594, 2.508], + [-54.5203, 2.3489], + [-54.6153, 2.3263], + [-54.7032, 2.4458], + [-54.8803, 2.4473], + [-55.0177, 2.5906], + [-55.1125, 2.5278], + [-55.3545, 2.4949], + [-55.3996, 2.4302], + [-55.7243, 2.3969], + [-55.9892, 2.5208], + [-56.1168, 2.3331], + [-55.9258, 2.0617], + [-55.9168, 1.9222], + [-56.0197, 1.8335], + [-56.4818, 1.9416], + [-56.7052, 2.0296], + [-56.9941, 2.5049], + [-57.0272, 2.6482], + [-57.1746, 2.819], + [-57.2749, 3.1343], + [-57.2836, 3.3438], + [-57.5651, 3.3498], + [-57.644, 3.5167], + [-57.8298, 3.6624], + [-57.8539, 3.7667], + [-58.0321, 3.9877], + [-58.0677, 4.1511], + [-57.965, 4.282], + [-57.9527, 4.4097], + [-57.8374, 4.6509], + [-57.9185, 4.8298], + [-57.7205, 4.9898], + [-57.3152, 5.0261], + [-57.3241, 5.3386], + [-57.2477, 5.4849], + [-57.1637, 5.5571], + [-57.1258, 5.8181], + [-56.9565, 6.0116], + [-56.6595, 5.9797], + [-55.9992, 5.8107], + [-55.8444, 5.976], + [-55.336, 5.9627], + [-54.7736, 5.9853], + [-54.4718, 5.941], + [-54.0367, 5.8424], + [-53.9864, 5.7457], + [-54.0736, 5.4898], + [-54.171, 5.3484] + ] + ] + }, + "properties": { + "NAME": "Suriname", + "NAME_LONG": "Suriname", + "ADM0_A3": "SUR", + "ISO_A2": "SR", + "ISO_A3": "SUR", + "WB_A2": "SR", + "WB_A3": "SUR" + }, + "id": 212 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [22.5396, 49.0722], + [22.3225, 48.7003], + [22.1537, 48.5859], + [22.1328, 48.4048], + [21.7277, 48.3409], + [21.4246, 48.5613], + [21.1093, 48.4891], + [20.7841, 48.5691], + [20.4817, 48.5261], + [20.2724, 48.2525], + [19.8843, 48.1296], + [19.6232, 48.227], + [19.4282, 48.0859], + [18.8385, 48.04], + [18.7677, 47.8223], + [18.2359, 47.7539], + [17.8257, 47.75], + [17.472, 47.8888], + [17.3379, 47.9987], + [17.1483, 48.0054], + [16.8445, 48.3656], + [16.945, 48.6042], + [17.1675, 48.8598], + [17.5351, 48.813], + [17.8603, 48.9217], + [18.1029, 49.0923], + [18.19, 49.2769], + [18.5356, 49.4817], + [18.8332, 49.5103], + [18.9623, 49.3892], + [19.1725, 49.4023], + [19.4434, 49.6018], + [19.7518, 49.2191], + [20.07, 49.1831], + [20.1302, 49.3039], + [20.3295, 49.3918], + [20.6895, 49.4005], + [20.9424, 49.2959], + [21.0535, 49.4145], + [21.2744, 49.4473], + [21.8196, 49.3772], + [22.0124, 49.2111], + [22.5396, 49.0722] + ] + ] + }, + "properties": { + "NAME": "Slovakia", + "NAME_LONG": "Slovakia", + "ADM0_A3": "SVK", + "ISO_A2": "SK", + "ISO_A3": "SVK", + "WB_A2": "SK", + "WB_A3": "SVK" + }, + "id": 213 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [16.5153, 46.5017], + [16.3441, 46.547], + [16.1918, 46.3698], + [15.6613, 46.2153], + [15.6661, 45.8317], + [15.4513, 45.8151], + [15.2489, 45.7118], + [15.314, 45.4505], + [15.1393, 45.43], + [14.9226, 45.5149], + [14.6685, 45.534], + [14.5561, 45.6567], + [14.3728, 45.4778], + [14.2187, 45.4972], + [13.889, 45.4236], + [13.5895, 45.4888], + [13.7118, 45.5932], + [13.7787, 45.7434], + [13.5813, 45.8092], + [13.6228, 45.9664], + [13.3653, 46.2903], + [13.701, 46.5197], + [14.1499, 46.4401], + [14.5022, 46.4184], + [14.7886, 46.5066], + [15.062, 46.6496], + [15.4627, 46.6146], + [15.6521, 46.7108], + [15.9705, 46.743], + [16.094, 46.8628], + [16.272, 46.864], + [16.3764, 46.6291], + [16.5153, 46.5017] + ] + ] + }, + "properties": { + "NAME": "Slovenia", + "NAME_LONG": "Slovenia", + "ADM0_A3": "SVN", + "ISO_A2": "SI", + "ISO_A3": "SVN", + "WB_A2": "SI", + "WB_A3": "SVN" + }, + "id": 214 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [17.0735, 57.3432], + [17.0663, 57.2267], + [16.6432, 56.5684], + [16.3989, 56.5447], + [16.6209, 56.8723], + [16.7168, 56.8918], + [16.9665, 57.3046], + [17.0735, 57.3432] + ] + ], + [ + [ + [18.7844, 57.8396], + [18.7702, 57.3645], + [18.7141, 57.2429], + [18.4312, 57.1543], + [18.0994, 57.259], + [18.112, 57.5111], + [18.4631, 57.8032], + [18.7844, 57.8396] + ] + ], + [ + [ + [24.1631, 65.8227], + [23.957, 65.7891], + [23.3743, 65.8227], + [23.0868, 65.7277], + [22.8372, 65.8077], + [22.3606, 65.7612], + [22.1701, 65.553], + [21.7017, 65.2859], + [21.6188, 65.148], + [21.1813, 64.8358], + [21.4898, 64.487], + [20.9666, 64.1494], + [20.6875, 63.7987], + [20.5034, 63.822], + [19.7532, 63.5243], + [19.2761, 63.4427], + [19.0325, 63.182], + [18.6113, 63.1789], + [18.5125, 62.9041], + [17.9264, 62.8223], + [18.0425, 62.5921], + [17.8617, 62.5008], + [17.347, 62.4033], + [17.5695, 62.2047], + [17.3442, 61.9241], + [17.3992, 61.7224], + [17.0972, 61.6361], + [17.104, 61.3994], + [17.2127, 61.2353], + [17.1582, 60.9484], + [17.238, 60.6977], + [17.575, 60.6479], + [17.6382, 60.5154], + [17.9675, 60.5189], + [18.2775, 60.3494], + [18.4199, 60.1935], + [18.8245, 60.0683], + [18.8616, 59.803], + [18.6865, 59.6058], + [18.2769, 59.4226], + [18.0425, 59.3974], + [18.3926, 59.1758], + [17.093, 58.6608], + [16.6359, 58.6268], + [16.8213, 58.2071], + [16.679, 58.0051], + [16.4603, 57.8947], + [16.6755, 57.7645], + [16.689, 57.4717], + [16.5348, 57.3603], + [16.5525, 57.1101], + [16.3566, 56.7584], + [16.0952, 56.4194], + [16.0383, 56.2551], + [15.8517, 56.0864], + [15.4929, 56.1763], + [14.6858, 56.1474], + [14.3464, 55.9533], + [14.1958, 55.7257], + [14.363, 55.5236], + [14.1812, 55.3908], + [13.8823, 55.4331], + [13.3814, 55.346], + [13, 55.4001], + [12.9226, 55.7495], + [12.6095, 56.1165], + [12.8335, 56.2657], + [12.9344, 56.5471], + [12.7318, 56.647], + [12.5983, 56.821], + [12.375, 56.9121], + [12.2044, 57.1479], + [12.0593, 57.4588], + [11.9033, 57.5241], + [11.6936, 57.8812], + [11.8757, 58.1992], + [11.5671, 58.2492], + [11.2249, 58.3707], + [11.2317, 58.7996], + [11.1082, 58.9536], + [11.4375, 58.9917], + [11.6644, 58.9201], + [11.8117, 59.2497], + [11.6774, 59.5591], + [11.9035, 59.77], + [12.5109, 60.118], + [12.4873, 60.2959], + [12.5944, 60.5149], + [12.377, 60.7541], + [12.2561, 60.9813], + [12.6825, 61.0403], + [12.8771, 61.371], + [12.6138, 61.547], + [12.1617, 61.7248], + [12.3175, 62.234], + [12.0912, 62.5863], + [12.1044, 62.9233], + [12.2227, 63.0015], + [11.9924, 63.2889], + [12.2049, 63.4546], + [12.1703, 63.5981], + [12.6819, 63.9564], + [13.2341, 64.0909], + [13.9394, 64.0095], + [14.1614, 64.2054], + [14.1156, 64.4412], + [13.6428, 64.584], + [14.3107, 65.0841], + [14.5143, 65.3181], + [14.5607, 65.7011], + [14.6444, 65.8429], + [14.5405, 66.1254], + [15.0534, 66.1533], + [15.4819, 66.2749], + [15.4263, 66.4912], + [15.6695, 66.5994], + [16.0388, 66.8875], + [16.4156, 67.0527], + [16.4379, 67.2003], + [16.1271, 67.4228], + [16.483, 67.5578], + [16.808, 67.9106], + [17.3215, 68.1053], + [17.8954, 67.9697], + [18.1667, 68.1585], + [18.1718, 68.5359], + [19.0381, 68.5056], + [19.931, 68.3502], + [20.2459, 68.4774], + [20.3411, 68.9101], + [20.6232, 69.0364], + [20.9346, 68.967], + [21.4636, 68.6869], + [22.0722, 68.477], + [22.6076, 68.4249], + [23.0522, 68.2982], + [23.1517, 68.1303], + [23.6612, 67.9329], + [23.4989, 67.8822], + [23.5535, 67.587], + [23.7652, 67.4201], + [23.5813, 67.1531], + [24.0013, 66.8124], + [23.8819, 66.5635], + [23.6423, 66.4363], + [23.7242, 66.2066], + [24.0196, 66.0489], + [24.1631, 65.8227] + ] + ] + ] + }, + "properties": { + "NAME": "Sweden", + "NAME_LONG": "Sweden", + "ADM0_A3": "SWE", + "ISO_A2": "SE", + "ISO_A3": "SWE", + "WB_A2": "SE", + "WB_A3": "SWE" + }, + "id": 215 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [31.9492, -25.9581], + [32.0575, -26.0412], + [32.0399, -26.2837], + [32.1174, -26.5823], + [32.1139, -26.84], + [31.9922, -26.8383], + [31.9421, -27.1007], + [31.9683, -27.3163], + [31.5265, -27.3109], + [31.157, -27.2056], + [30.9761, -27.035], + [30.8802, -26.7722], + [30.7857, -26.7169], + [30.8046, -26.3975], + [30.9699, -26.2091], + [31.1198, -25.91], + [31.3093, -25.7574], + [31.4269, -25.7436], + [31.8346, -25.9821], + [31.9492, -25.9581] + ] + ] + }, + "properties": { + "NAME": "Swaziland", + "NAME_LONG": "Swaziland", + "ADM0_A3": "SWZ", + "ISO_A2": "SZ", + "ISO_A3": "SWZ", + "WB_A2": "SZ", + "WB_A3": "SWZ" + }, + "id": 216 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [42.3572, 37.11], + [42.2816, 36.994], + [41.8438, 36.6179], + [41.4149, 36.5274], + [41.277, 36.3548], + [41.2406, 36.043], + [41.3437, 35.8577], + [41.3635, 35.6552], + [41.2613, 35.4943], + [41.1915, 35.1821], + [41.1957, 34.7685], + [40.988, 34.4285], + [40.6905, 34.3315], + [39.8804, 33.9256], + [38.7745, 33.3717], + [38.0567, 32.9943], + [36.8194, 32.3168], + [36.3731, 32.3864], + [36.1774, 32.5273], + [36.0699, 32.5166], + [35.8957, 32.7133], + [35.7576, 32.7443], + [35.8881, 32.9449], + [35.8036, 33.2485], + [35.8211, 33.4067], + [36.0129, 33.608], + [36.0504, 33.8164], + [36.2672, 33.9104], + [36.6041, 34.1991], + [36.5306, 34.4142], + [36.2616, 34.6272], + [35.9699, 34.6498], + [35.8669, 34.9242], + [35.9624, 35.1979], + [35.9089, 35.4257], + [35.7781, 35.5412], + [35.8119, 35.8354], + [35.9113, 35.9178], + [36.1385, 35.8198], + [36.1969, 35.9517], + [36.3555, 36.0224], + [36.3605, 36.1817], + [36.5878, 36.3248], + [36.5355, 36.494], + [36.6586, 36.8275], + [36.9647, 36.7538], + [37.0145, 36.6423], + [37.4461, 36.6342], + [38.1901, 36.9055], + [38.5294, 36.8337], + [38.6641, 36.7195], + [39.2396, 36.6613], + [39.7653, 36.7422], + [40.1901, 36.8844], + [40.709, 37.1005], + [40.8964, 37.1227], + [41.2013, 37.065], + [41.4798, 37.0756], + [42.0092, 37.1756], + [42.1785, 37.3063], + [42.3532, 37.227], + [42.3572, 37.11] + ] + ] + }, + "properties": { + "NAME": "Syria", + "NAME_LONG": "Syria", + "ADM0_A3": "SYR", + "ISO_A2": "SY", + "ISO_A3": "SYR", + "WB_A2": "SY", + "WB_A3": "SYR" + }, + "id": 219 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [23.9813, 19.4961], + [23.9821, 18.567], + [23.9831, 17.4057], + [23.9844, 15.7212], + [23.5927, 15.749], + [23.3206, 15.6813], + [23.0946, 15.7043], + [22.9257, 15.5639], + [22.9657, 15.2239], + [22.7389, 14.9798], + [22.6508, 14.8162], + [22.6663, 14.6817], + [22.4654, 14.6293], + [22.4249, 14.4704], + [22.441, 14.2499], + [22.5315, 14.1226], + [22.2435, 13.9754], + [22.0737, 13.7714], + [22.1959, 13.5805], + [22.2676, 13.3346], + [22.14, 13.1935], + [21.9351, 13.0592], + [21.8094, 12.7937], + [21.936, 12.6395], + [22.0587, 12.6367], + [22.2049, 12.7434], + [22.4457, 12.6111], + [22.3728, 12.4631], + [22.4814, 12.1767], + [22.4814, 12.0443], + [22.5929, 11.9889], + [22.5371, 11.6809], + [22.6281, 11.5098], + [22.7818, 11.3989], + [22.9148, 11.3961], + [22.9565, 11.2088], + [22.8611, 10.9192], + [22.4605, 11.0008], + [22.253, 10.9153], + [22.1764, 10.8162], + [21.7226, 10.6367], + [21.7511, 10.4118], + [21.6563, 10.2337], + [21.4854, 10.1643], + [21.3743, 9.9731], + [21.2569, 9.9757], + [20.8261, 9.4181], + [20.4961, 9.2709], + [20.3594, 9.1164], + [20.0687, 9.1381], + [19.8895, 9.0464], + [19.3694, 9.0004], + [19.1006, 9.0153], + [18.8927, 8.8979], + [18.9291, 8.7965], + [19.1241, 8.6751], + [18.813, 8.2764], + [18.6726, 8.2075], + [18.5893, 8.0479], + [18.0705, 8.0192], + [17.8979, 7.9675], + [17.6798, 7.9852], + [17.2509, 7.8228], + [17.1019, 7.6777], + [16.8807, 7.6329], + [16.7686, 7.5502], + [16.6245, 7.6687], + [16.5487, 7.87], + [16.4074, 7.7961], + [16.3708, 7.6725], + [16.0652, 7.5912], + [15.7939, 7.458], + [15.481, 7.5233], + [15.5629, 7.7924], + [15.4407, 7.8394], + [15.3453, 8.136], + [15.1837, 8.4791], + [15.0313, 8.6587], + [14.7939, 8.8136], + [14.3495, 9.1684], + [14.3213, 9.2432], + [13.9476, 9.6378], + [14.1817, 9.9782], + [14.4405, 9.9953], + [14.7325, 9.9238], + [15.2149, 9.9841], + [15.383, 9.9302], + [15.5361, 10.0805], + [15.3014, 10.3117], + [15.0659, 10.7931], + [15.0212, 11.1825], + [15.0606, 11.4161], + [15.1356, 11.5308], + [15.0683, 11.7001], + [15.0406, 12.0556], + [14.9031, 12.1459], + [14.9083, 12.3269], + [14.8308, 12.6182], + [14.604, 12.7608], + [14.4906, 12.8863], + [14.4182, 13.0811], + [14.0649, 13.078], + [13.6073, 13.7041], + [13.4492, 14.3801], + [13.4823, 14.4836], + [13.6243, 14.5213], + [13.6483, 14.6494], + [13.7644, 14.7191], + [13.7605, 14.8664], + [13.8339, 15.0196], + [14.369, 15.7496], + [15.4524, 16.8762], + [15.472, 16.9167], + [15.5911, 18.2651], + [15.736, 19.9035], + [15.963, 20.3192], + [15.954, 20.3746], + [15.5442, 20.799], + [15.6093, 20.9507], + [15.301, 21.4013], + [15.1804, 21.5073], + [15.172, 21.9934], + [14.9799, 22.9957], + [15.9851, 23.4447], + [17.4348, 22.7288], + [18.176, 22.3628], + [19.1641, 21.8749], + [20.5228, 21.2039], + [21.6345, 20.655], + [22.2521, 20.3501], + [23.2402, 19.8621], + [23.9813, 19.4961] + ] + ] + }, + "properties": { + "NAME": "Chad", + "NAME_LONG": "Chad", + "ADM0_A3": "TCD", + "ISO_A2": "TD", + "ISO_A3": "TCD", + "WB_A2": "TD", + "WB_A3": "TCD" + }, + "id": 221 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [0.9015, 10.9927], + [0.8629, 10.7961], + [0.7813, 10.693], + [0.7688, 10.3671], + [1.331, 9.9965], + [1.3513, 9.5951], + [1.4253, 9.2845], + [1.6012, 9.0495], + [1.6213, 7.9966], + [1.6257, 6.9968], + [1.566, 6.6781], + [1.7441, 6.4257], + [1.7824, 6.2773], + [1.6196, 6.2139], + [1.1854, 6.1005], + [0.7668, 6.4194], + [0.7146, 6.5839], + [0.5193, 6.8322], + [0.4946, 6.9731], + [0.598, 7.0312], + [0.6457, 7.3236], + [0.5006, 7.455], + [0.4994, 7.5624], + [0.6123, 7.6994], + [0.5738, 8.2039], + [0.7052, 8.2828], + [0.6163, 8.4888], + [0.4435, 8.6069], + [0.3659, 8.7743], + [0.5056, 8.8663], + [0.4313, 9.0276], + [0.5376, 9.3776], + [0.4304, 9.4892], + [0.2314, 9.419], + [0.2302, 9.5757], + [0.3546, 9.5711], + [0.3224, 9.7607], + [0.3702, 9.947], + [0.3666, 10.3045], + [0.177, 10.3977], + [0.0203, 10.588], + [-0.0881, 10.6335], + [0.0162, 11.0626], + [-0.1661, 11.135], + [0.4866, 11.0032], + [0.9015, 10.9927] + ] + ] + }, + "properties": { + "NAME": "Togo", + "NAME_LONG": "Togo", + "ADM0_A3": "TGO", + "ISO_A2": "TG", + "ISO_A3": "TGO", + "WB_A2": "TG", + "WB_A3": "TGO" + }, + "id": 222 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [98.2891, 8.1897], + [98.4385, 8.0657], + [98.4398, 7.8866], + [98.2866, 7.7917], + [98.2891, 8.1897] + ] + ], + [ + [ + [100.0993, 20.3178], + [100.3644, 20.369], + [100.5434, 20.0666], + [100.4743, 19.8654], + [100.3835, 19.7639], + [100.462, 19.5371], + [100.7455, 19.485], + [100.8746, 19.6129], + [101.1247, 19.5651], + [101.1929, 19.4528], + [101.2291, 19.1436], + [101.3179, 19.0501], + [101.2329, 18.8927], + [101.2401, 18.6736], + [101.0303, 18.4278], + [101.1455, 18.3362], + [101.1652, 18.0534], + [101.0083, 17.8952], + [100.9019, 17.5619], + [101.1323, 17.4617], + [101.247, 17.5922], + [101.5776, 17.8681], + [101.7291, 17.9122], + [101.7904, 18.0736], + [101.9043, 18.0371], + [102.0785, 18.2138], + [102.3067, 18.0515], + [102.5675, 17.9708], + [102.5956, 17.8501], + [102.9386, 18.0089], + [103.0379, 17.9907], + [103.2608, 18.4002], + [103.3968, 18.4414], + [103.8321, 18.3207], + [104, 18.3184], + [104.1109, 18.1146], + [104.4812, 17.6404], + [104.7145, 17.5153], + [104.8164, 17.3728], + [104.8099, 17.1717], + [104.7453, 17.0248], + [104.7783, 16.7158], + [104.7545, 16.5289], + [105.0155, 16.2767], + [105.0425, 16.1414], + [105.4049, 16.0188], + [105.3726, 15.8821], + [105.448, 15.7649], + [105.6129, 15.7215], + [105.651, 15.6346], + [105.564, 15.2725], + [105.4438, 15.1338], + [105.5836, 14.9776], + [105.4891, 14.7863], + [105.5101, 14.5936], + [105.416, 14.4282], + [105.1843, 14.3457], + [105.1014, 14.2305], + [104.9738, 14.3806], + [104.7717, 14.4399], + [104.462, 14.3571], + [104.2475, 14.4011], + [103.8703, 14.3433], + [103.5502, 14.4219], + [103.085, 14.2958], + [102.9186, 14.1855], + [102.8698, 14.0206], + [102.6986, 13.7618], + [102.5744, 13.6939], + [102.5132, 13.5672], + [102.3322, 13.5646], + [102.3282, 13.2752], + [102.4732, 13.0061], + [102.5586, 12.6312], + [102.7651, 12.4163], + [102.7, 12.1387], + [102.9138, 11.7655], + [102.9136, 11.6459], + [102.9067, 11.7414], + [102.777, 11.9025], + [102.7497, 12.0403], + [102.2959, 12.19], + [102.072, 12.4885], + [101.8303, 12.6728], + [101.4429, 12.6248], + [101.0877, 12.6806], + [100.9261, 12.6191], + [100.8374, 12.7079], + [100.8783, 13.0983], + [100.9813, 13.359], + [100.9507, 13.4682], + [100.6497, 13.5202], + [100.2899, 13.505], + [100.0388, 13.4027], + [99.9671, 13.259], + [100.1043, 13.0573], + [99.9876, 12.7905], + [99.9609, 12.6254], + [100.02, 12.1927], + [99.8553, 11.9684], + [99.8171, 11.7414], + [99.7518, 11.7099], + [99.5693, 11.334], + [99.5862, 11.1951], + [99.4942, 11.1146], + [99.5116, 10.9024], + [99.2446, 10.5351], + [99.1516, 10.3574], + [99.1814, 9.6433], + [99.3236, 9.3915], + [99.2551, 9.2325], + [99.4748, 9.201], + [99.6895, 9.3159], + [99.8535, 9.2947], + [99.9163, 9.102], + [99.9592, 8.6376], + [100.1043, 8.4177], + [100.2205, 8.4487], + [100.4402, 7.477], + [100.3235, 7.6164], + [100.307, 7.7579], + [100.1429, 7.7], + [100.1854, 7.5142], + [100.3955, 7.2113], + [100.486, 7.1399], + [100.6111, 7.1926], + [100.7651, 6.9831], + [100.9976, 6.8567], + [101.3852, 6.9052], + [101.5663, 6.8322], + [101.7717, 6.5007], + [102.0731, 6.2575], + [102.06, 6.0948], + [101.9594, 6.0116], + [101.9129, 5.8593], + [101.8005, 5.7399], + [101.6504, 5.7826], + [101.5347, 5.906], + [101.249, 5.787], + [101.1054, 5.6376], + [100.9672, 5.781], + [101.0711, 5.9198], + [101.0817, 6.2465], + [100.8221, 6.2599], + [100.8056, 6.4148], + [100.3874, 6.5221], + [100.2808, 6.6889], + [100.1668, 6.6951], + [100.1273, 6.4423], + [99.7972, 6.8217], + [99.6858, 6.8773], + [99.6929, 7.1161], + [99.584, 7.1564], + [99.5247, 7.3113], + [99.3659, 7.3364], + [99.2927, 7.6207], + [99.1375, 7.7443], + [98.918, 8.0513], + [98.7474, 8.0683], + [98.7442, 8.2149], + [98.5989, 8.3749], + [98.4456, 8.3251], + [98.425, 8.1484], + [98.2776, 8.2407], + [98.1995, 8.5344], + [98.2241, 8.7353], + [98.382, 9.0719], + [98.3269, 9.2037], + [98.4717, 9.6212], + [98.5127, 9.8369], + [98.5999, 9.9481], + [98.7474, 10.3505], + [98.7913, 10.5204], + [98.7667, 10.6888], + [99.0015, 10.9576], + [99.213, 11.1083], + [99.2433, 11.1977], + [99.63, 11.8158], + [99.4663, 12.126], + [99.387, 12.4659], + [99.3938, 12.5898], + [99.2141, 12.7347], + [99.1021, 13.1713], + [99.1902, 13.2295], + [99.1525, 13.7149], + [98.9453, 14.0691], + [98.5477, 14.3777], + [98.4182, 14.6076], + [98.2433, 14.8051], + [98.165, 15.1258], + [98.283, 15.29], + [98.4034, 15.3601], + [98.5599, 15.3553], + [98.5431, 15.7354], + [98.5838, 15.977], + [98.6587, 16.1163], + [98.8072, 16.1105], + [98.9033, 16.3634], + [98.657, 16.3016], + [98.6316, 16.4631], + [98.4567, 16.7232], + [98.5246, 16.8504], + [98.4362, 17.0116], + [98.3133, 17.052], + [98.1006, 17.3026], + [97.9828, 17.5054], + [97.7689, 17.6792], + [97.6855, 17.8807], + [97.7541, 17.969], + [97.5606, 18.3283], + [97.4381, 18.4881], + [97.7518, 18.5825], + [97.7191, 18.8646], + [97.6578, 18.9257], + [97.8108, 19.1122], + [97.7671, 19.3975], + [97.8398, 19.5553], + [98.0083, 19.6391], + [98.0179, 19.7894], + [98.2179, 19.708], + [98.5326, 19.6759], + [98.8078, 19.8065], + [99.0088, 19.8459], + [99.0168, 20.041], + [99.1175, 20.1178], + [99.2957, 20.0625], + [99.5258, 20.1962], + [99.5029, 20.3452], + [99.7696, 20.3284], + [99.942, 20.444], + [100.0993, 20.3178] + ] + ] + ] + }, + "properties": { + "NAME": "Thailand", + "NAME_LONG": "Thailand", + "ADM0_A3": "THA", + "ISO_A2": "TH", + "ISO_A3": "THA", + "WB_A2": "TH", + "WB_A3": "THA" + }, + "id": 223 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [70.959, 40.2384], + [70.6394, 40.0849], + [70.6274, 39.9939], + [69.9696, 40.2116], + [69.5755, 40.1036], + [69.314, 39.9869], + [69.2263, 39.751], + [69.2862, 39.5397], + [69.6694, 39.5778], + [70.0197, 39.5686], + [70.206, 39.5241], + [70.46, 39.5995], + [70.6221, 39.5635], + [70.7397, 39.3862], + [71.0093, 39.4076], + [71.4595, 39.6121], + [71.4921, 39.4937], + [71.7403, 39.4483], + [71.7329, 39.2851], + [72.0498, 39.3689], + [72.2033, 39.2408], + [72.3163, 39.3288], + [72.6505, 39.3938], + [73.1679, 39.3554], + [73.3676, 39.4438], + [73.6326, 39.4483], + [73.6023, 39.2358], + [73.816, 38.9938], + [73.6837, 38.8549], + [73.7974, 38.6028], + [73.9329, 38.5297], + [74.1404, 38.6692], + [74.3342, 38.667], + [74.7763, 38.5107], + [74.7907, 38.0814], + [74.8928, 37.994], + [74.9652, 37.7675], + [74.8919, 37.5992], + [75.1641, 37.4006], + [74.8923, 37.2311], + [74.6604, 37.394], + [74.2239, 37.4034], + [74.1633, 37.3301], + [73.7982, 37.2285], + [73.7535, 37.4284], + [73.4853, 37.481], + [73.2761, 37.4595], + [73.0675, 37.3151], + [72.761, 37.1875], + [72.6577, 37.0288], + [72.2598, 36.9673], + [71.8366, 36.6992], + [71.6111, 36.7048], + [71.4311, 37.067], + [71.487, 37.2671], + [71.4972, 37.5665], + [71.5977, 37.8984], + [71.3412, 37.8933], + [71.2558, 37.9499], + [71.3645, 38.2068], + [71.3344, 38.2807], + [70.974, 38.4737], + [70.7611, 38.4435], + [70.5958, 38.3382], + [70.4826, 38.1374], + [70.1652, 37.8899], + [70.2831, 37.7048], + [70.1579, 37.5414], + [69.5287, 37.586], + [69.3784, 37.4374], + [69.4452, 37.2364], + [69.3239, 37.121], + [69.1236, 37.1692], + [69.0055, 37.3055], + [68.3073, 37.1142], + [68.0111, 36.9309], + [67.7805, 37.1889], + [67.8292, 37.5279], + [68.2487, 37.949], + [68.3607, 38.1741], + [68.1837, 38.3355], + [68.0552, 38.5363], + [68.0376, 38.6916], + [68.1726, 38.8453], + [68.0856, 38.9938], + [67.6905, 38.9896], + [67.6198, 39.1513], + [67.3782, 39.1995], + [67.4365, 39.4857], + [67.7645, 39.6226], + [68.3376, 39.5279], + [68.5175, 39.5484], + [68.6158, 39.8281], + [68.8774, 39.9006], + [68.602, 40.1754], + [69.0192, 40.2321], + [69.2853, 40.2186], + [69.3063, 40.365], + [69.198, 40.5458], + [69.4358, 40.8027], + [69.6601, 40.6387], + [70.2804, 40.8777], + [70.4457, 41.0259], + [70.6969, 40.8162], + [70.7562, 40.6951], + [70.3538, 40.4561], + [70.5818, 40.2217], + [70.959, 40.2384] + ] + ] + }, + "properties": { + "NAME": "Tajikistan", + "NAME_LONG": "Tajikistan", + "ADM0_A3": "TJK", + "ISO_A2": "TJ", + "ISO_A3": "TJK", + "WB_A2": "TJ", + "WB_A3": "TJK" + }, + "id": 224 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [66.5196, 37.3642], + [66.2944, 37.3312], + [66.0797, 37.4409], + [65.6688, 37.5206], + [65.6241, 37.3451], + [65.5014, 37.2423], + [65.0631, 37.2332], + [64.7602, 37.0926], + [64.7788, 36.9385], + [64.592, 36.6211], + [64.6059, 36.4611], + [64.4446, 36.25], + [64.2661, 36.1525], + [63.7659, 35.9773], + [63.6023, 35.9627], + [63.3429, 35.8563], + [63.1253, 35.8602], + [63.1839, 35.7123], + [63.0766, 35.6247], + [63.0802, 35.4371], + [62.6211, 35.2227], + [62.219, 35.3063], + [62.0338, 35.424], + [61.5387, 35.4523], + [61.2697, 35.6185], + [61.2474, 35.8762], + [61.174, 36.0065], + [61.2228, 36.1175], + [61.1525, 36.4063], + [61.186, 36.5777], + [61.0755, 36.6478], + [60.3423, 36.6371], + [60.0192, 37.0258], + [59.5095, 37.1898], + [59.3704, 37.3194], + [59.3517, 37.4938], + [58.861, 37.6681], + [58.5143, 37.6915], + [58.3718, 37.6304], + [58.1812, 37.7749], + [57.6912, 37.9203], + [57.3524, 37.9675], + [57.2183, 38.2651], + [57.0384, 38.1873], + [56.739, 38.2696], + [56.4365, 38.2551], + [56.2997, 38.0802], + [55.9784, 38.0659], + [55.7087, 38.1187], + [55.4231, 38.0759], + [55.1303, 37.9523], + [54.8566, 37.7611], + [54.7837, 37.5175], + [54.6169, 37.433], + [54.1866, 37.3237], + [53.9137, 37.3428], + [53.8249, 37.7449], + [53.8071, 38.032], + [53.8589, 38.2065], + [53.827, 38.5255], + [53.9775, 38.9018], + [53.7478, 39.0544], + [53.5813, 39.3305], + [53.3943, 39.317], + [53.0887, 39.3832], + [53.1782, 39.5157], + [53.3635, 39.5381], + [53.5772, 39.4678], + [53.4299, 39.7625], + [53.5671, 39.9495], + [53.4373, 40.0027], + [52.8841, 39.9449], + [52.7385, 40.0536], + [52.699, 40.2739], + [52.7366, 40.4846], + [52.9582, 41.0163], + [53.1074, 40.7739], + [53.5417, 40.7616], + [53.721, 40.6257], + [54.0108, 40.6579], + [54.6399, 40.8388], + [54.76, 40.965], + [54.6004, 41.1923], + [54.3118, 41.3383], + [54.0414, 41.5346], + [54.0197, 41.7315], + [53.8967, 42.0788], + [53.6818, 42.1439], + [53.2967, 42.0788], + [53.1219, 42.09], + [52.9603, 41.9844], + [52.8215, 41.7649], + [52.9038, 41.6898], + [52.8157, 41.3887], + [52.5622, 41.5195], + [52.5952, 41.6337], + [52.4377, 41.7489], + [52.9787, 42.1266], + [53.4123, 42.2582], + [54.0472, 42.3454], + [54.1953, 42.3181], + [54.7383, 42.0482], + [54.9071, 41.9321], + [54.9507, 41.7956], + [55.2284, 41.4728], + [55.4295, 41.2908], + [55.6355, 41.2644], + [55.9784, 41.3217], + [56.7935, 41.2883], + [57.0102, 41.2541], + [57.1538, 41.3724], + [57.0196, 41.4659], + [56.9501, 41.8661], + [57.3823, 42.1636], + [57.8505, 42.1914], + [57.9977, 42.4934], + [58.2827, 42.6889], + [58.4932, 42.6455], + [58.6123, 42.7809], + [58.8944, 42.5478], + [59.122, 42.538], + [59.2452, 42.3653], + [59.4782, 42.2856], + [59.8664, 42.3042], + [60.0282, 42.1995], + [59.9837, 41.949], + [60.2411, 41.8081], + [60.0492, 41.7535], + [60.1556, 41.6033], + [60.0942, 41.3895], + [60.4145, 41.2353], + [60.8603, 41.253], + [61.2814, 41.1573], + [61.4701, 41.2972], + [61.8779, 41.125], + [61.9708, 41.0154], + [62.0448, 40.715], + [62.1918, 40.499], + [62.3533, 40.4304], + [62.4528, 40.0092], + [62.5932, 39.8902], + [63.4776, 39.4029], + [63.7093, 39.1909], + [64.1206, 38.9617], + [64.3373, 38.971], + [64.6349, 38.7441], + [64.9777, 38.6123], + [65.2053, 38.4496], + [65.6041, 38.2374], + [65.8767, 38.273], + [66.5542, 38.0269], + [66.6458, 37.9459], + [66.5188, 37.7827], + [66.5196, 37.3642] + ] + ] + }, + "properties": { + "NAME": "Turkmenistan", + "NAME_LONG": "Turkmenistan", + "ADM0_A3": "TKM", + "ISO_A2": "TM", + "ISO_A3": "TKM", + "WB_A2": "TM", + "WB_A3": "TKM" + }, + "id": 225 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [124.03, -9.342], + [124.1908, -9.2551], + [124.4505, -9.1802], + [124.3101, -9.4887], + [124.1975, -9.3732], + [124.03, -9.342] + ] + ], + [ + [ + [125.0616, -9.4858], + [124.9745, -9.1919], + [125.1425, -9.1891], + [125.1624, -9.0606], + [124.9479, -9.0785], + [124.9195, -8.962], + [125.1004, -8.7783], + [125.1443, -8.6314], + [125.8977, -8.4811], + [126.0691, -8.5216], + [126.4116, -8.4191], + [126.5488, -8.4867], + [126.8421, -8.391], + [126.9671, -8.309], + [127.1863, -8.3325], + [127.3032, -8.4323], + [127.0093, -8.6767], + [126.8462, -8.7525], + [126.5833, -8.8058], + [126.4302, -8.9547], + [126.1659, -8.9884], + [125.9471, -9.1257], + [125.6094, -9.1862], + [125.3788, -9.281], + [125.0616, -9.4858] + ] + ] + ] + }, + "properties": { + "NAME": "Timor-Leste", + "NAME_LONG": "Timor-Leste", + "ADM0_A3": "TLS", + "ISO_A2": "TL", + "ISO_A3": "TLS", + "WB_A2": "TP", + "WB_A3": "TMP" + }, + "id": 226 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-60.9073, 10.8371], + [-61.0327, 10.6835], + [-60.996, 10.1383], + [-61.1916, 10.0738], + [-61.637, 10.0578], + [-61.7121, 10.1636], + [-61.4584, 10.3022], + [-61.4723, 10.5949], + [-61.6021, 10.7477], + [-61.3666, 10.803], + [-60.9073, 10.8371] + ] + ] + }, + "properties": { + "NAME": "Trinidad and Tobago", + "NAME_LONG": "Trinidad and Tobago", + "ADM0_A3": "TTO", + "ISO_A2": "TT", + "ISO_A3": "TTO", + "WB_A2": "TT", + "WB_A3": "TTO" + }, + "id": 228 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [10.9299, 33.8963], + [11.0603, 33.8007], + [10.8937, 33.6582], + [10.7402, 33.7155], + [10.736, 33.8848], + [10.9299, 33.8963] + ] + ], + [ + [ + [11.5051, 33.1812], + [11.4499, 32.638], + [11.5641, 32.4655], + [11.444, 32.3685], + [10.8732, 32.1367], + [10.8056, 32.0324], + [10.6059, 31.9536], + [10.5135, 31.757], + [10.264, 31.6805], + [10.1081, 31.4118], + [10.2448, 31.0782], + [10.2702, 30.9156], + [10.1922, 30.7313], + [9.8713, 30.3552], + [9.5197, 30.2289], + [9.2644, 31.2193], + [9.045, 32.0718], + [8.4827, 32.4348], + [8.3196, 32.5606], + [8.2829, 32.8364], + [8.0868, 33.0943], + [7.7507, 33.2077], + [7.6932, 33.4541], + [7.553, 33.6587], + [7.4798, 33.8939], + [7.5175, 34.095], + [7.7743, 34.261], + [7.8315, 34.4144], + [8.0941, 34.5301], + [8.2365, 34.6477], + [8.2489, 34.902], + [8.3137, 35.1031], + [8.3236, 35.6522], + [8.2414, 35.8277], + [8.3171, 36.1459], + [8.3492, 36.4488], + [8.1699, 36.5258], + [8.4079, 36.6426], + [8.444, 36.7962], + [8.6238, 36.8261], + [8.6025, 36.9395], + [8.802, 36.9731], + [9.2107, 37.2338], + [9.6663, 37.3354], + [9.8589, 37.3288], + [10.1463, 37.2365], + [10.2201, 36.9766], + [10.3472, 36.8803], + [10.3201, 36.7488], + [10.5382, 36.772], + [11.0127, 37.0848], + [11.1168, 36.8384], + [11.0221, 36.7883], + [10.7999, 36.4519], + [10.5191, 36.3375], + [10.4795, 36.0793], + [10.6086, 35.8559], + [10.8412, 35.6988], + [11.012, 35.6579], + [11.0422, 35.3344], + [11.1116, 35.2056], + [10.9177, 34.9574], + [10.9163, 34.8736], + [10.597, 34.5447], + [10.1267, 34.3256], + [10.0052, 34.1706], + [10.0488, 33.9835], + [10.3303, 33.7028], + [10.4893, 33.6471], + [10.7166, 33.7069], + [10.7171, 33.4835], + [11.1082, 33.5496], + [11.0899, 33.4541], + [11.1795, 33.2111], + [11.5051, 33.1812] + ] + ] + ] + }, + "properties": { + "NAME": "Tunisia", + "NAME_LONG": "Tunisia", + "ADM0_A3": "TUN", + "ISO_A2": "TN", + "ISO_A3": "TUN", + "WB_A2": "TN", + "WB_A3": "TUN" + }, + "id": 229 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [28.0168, 41.9726], + [27.972, 41.8223], + [28.1133, 41.6116], + [28.3843, 41.4475], + [28.9085, 41.2665], + [29.1092, 41.2353], + [28.9819, 41.0017], + [28.6253, 40.9684], + [28.2367, 41.0852], + [27.9413, 40.9711], + [27.5242, 40.9892], + [27.4248, 40.8313], + [27.1777, 40.6326], + [26.6834, 40.4555], + [26.3758, 40.1535], + [26.2191, 40.3314], + [26.8289, 40.602], + [26.7904, 40.6606], + [26.3026, 40.6011], + [26.0769, 40.6118], + [26.044, 40.7385], + [26.3591, 40.9647], + [26.3317, 41.2541], + [26.6366, 41.3785], + [26.5963, 41.5975], + [26.3334, 41.713], + [26.5261, 41.8242], + [26.6236, 41.969], + [26.9389, 41.9962], + [27.0226, 42.0739], + [27.2734, 42.0917], + [27.5332, 41.9081], + [27.808, 41.9935], + [28.0168, 41.9726] + ] + ], + [ + [ + [41.5208, 41.5142], + [41.8008, 41.4257], + [41.948, 41.5056], + [42.4379, 41.4309], + [42.5652, 41.5671], + [42.9577, 41.437], + [43.2306, 41.1726], + [43.4404, 41.1066], + [43.6049, 40.9633], + [43.7294, 40.6771], + [43.5942, 40.3454], + [43.7214, 40.1694], + [44.0324, 40.0086], + [44.2553, 40.0434], + [44.4643, 39.9723], + [44.7746, 39.7028], + [44.807, 39.6399], + [44.5657, 39.7659], + [44.4595, 39.6985], + [44.4048, 39.4344], + [44.0614, 39.4003], + [44.0777, 39.2001], + [44.1866, 39.1451], + [44.1392, 38.994], + [44.275, 38.8436], + [44.2895, 38.3823], + [44.4247, 38.377], + [44.2196, 37.8753], + [44.3779, 37.8541], + [44.5961, 37.7164], + [44.5659, 37.4472], + [44.8016, 37.2927], + [44.7661, 37.1419], + [44.5782, 37.1664], + [44.2343, 36.9837], + [44.2232, 37.2541], + [43.9904, 37.3125], + [43.8936, 37.2249], + [43.4796, 37.2434], + [43.0837, 37.3688], + [42.937, 37.3202], + [42.7716, 37.3749], + [42.5613, 37.1466], + [42.3572, 37.11], + [42.3532, 37.227], + [42.1785, 37.3063], + [42.0092, 37.1756], + [41.4798, 37.0756], + [41.2013, 37.065], + [40.8964, 37.1227], + [40.709, 37.1005], + [40.1901, 36.8844], + [39.7653, 36.7422], + [39.2396, 36.6613], + [38.6641, 36.7195], + [38.5294, 36.8337], + [38.1901, 36.9055], + [37.4461, 36.6342], + [37.0145, 36.6423], + [36.9647, 36.7538], + [36.6586, 36.8275], + [36.5355, 36.494], + [36.5878, 36.3248], + [36.3605, 36.1817], + [36.3555, 36.0224], + [36.1969, 35.9517], + [36.1385, 35.8198], + [35.9113, 35.9178], + [35.9754, 36.0185], + [35.7887, 36.3203], + [36.1891, 36.604], + [36.189, 36.8017], + [36.0203, 36.9263], + [35.8054, 36.7751], + [35.6067, 36.7404], + [35.5134, 36.613], + [35.348, 36.5444], + [34.7708, 36.8161], + [34.5547, 36.7676], + [34.0773, 36.4139], + [34.0779, 36.3288], + [33.5442, 36.1445], + [32.9409, 36.1035], + [32.6707, 36.0467], + [32.3655, 36.178], + [32.0261, 36.5434], + [31.4076, 36.7634], + [31.3408, 36.8086], + [30.6865, 36.8912], + [30.5698, 36.7813], + [30.5698, 36.528], + [30.4408, 36.2393], + [30.2546, 36.3083], + [29.9116, 36.217], + [29.7953, 36.1452], + [29.3223, 36.2469], + [29.1243, 36.4182], + [29.0964, 36.6652], + [28.6035, 36.7335], + [28.4248, 36.8291], + [28.1115, 36.6042], + [28.0418, 36.7199], + [27.9866, 37.0351], + [27.7804, 36.9936], + [27.2632, 36.9634], + [27.303, 37.1196], + [27.5545, 37.1301], + [27.5532, 37.2729], + [27.1908, 37.3573], + [27.2495, 37.7443], + [27.2391, 37.9879], + [26.9492, 38.0674], + [26.7603, 38.2167], + [26.6071, 38.1083], + [26.2654, 38.2867], + [26.4759, 38.3669], + [26.3486, 38.6213], + [26.5056, 38.6527], + [26.7669, 38.3641], + [26.9386, 38.4342], + [26.7191, 38.7209], + [27.0134, 38.8712], + [26.8065, 38.9501], + [26.8831, 39.0716], + [26.6703, 39.306], + [26.926, 39.4858], + [26.8934, 39.5844], + [26.1528, 39.4592], + [26.1526, 39.9426], + [26.311, 40.0195], + [26.7356, 40.4036], + [27.0134, 40.3925], + [27.3034, 40.4584], + [27.4523, 40.322], + [27.7898, 40.3205], + [27.9699, 40.503], + [28.112, 40.3961], + [28.6377, 40.3652], + [28.772, 40.4025], + [28.7927, 40.5533], + [28.9863, 40.6448], + [29.2816, 40.6659], + [29.2639, 40.8698], + [29.0281, 40.9821], + [29.1301, 41.2119], + [29.2318, 41.2407], + [29.8846, 41.149], + [30.1369, 41.1438], + [30.2713, 41.2112], + [30.8333, 41.0799], + [31.2489, 41.1057], + [31.4011, 41.2021], + [31.4036, 41.3165], + [32.1341, 41.5994], + [32.2634, 41.7202], + [32.6126, 41.8395], + [32.9261, 41.8818], + [33.3245, 42.019], + [34.3313, 41.9479], + [34.6942, 41.9459], + [35.1045, 42.0219], + [35.2248, 41.7619], + [35.5301, 41.6343], + [35.8938, 41.7075], + [36.1205, 41.6278], + [36.1345, 41.4619], + [36.451, 41.2404], + [36.6199, 41.3751], + [36.9849, 41.2945], + [37.0397, 41.1815], + [37.2634, 41.1479], + [37.5047, 41.0429], + [37.655, 41.1176], + [37.8958, 40.9821], + [38.3309, 40.9179], + [38.7176, 40.9548], + [38.9275, 41.0426], + [39.2732, 41.0504], + [39.4302, 41.1125], + [39.5921, 41.0251], + [40.1428, 40.9228], + [40.4649, 41.0504], + [40.6983, 41.0981], + [40.8275, 41.1979], + [41.0203, 41.2237], + [41.3904, 41.3793], + [41.5208, 41.5142] + ] + ] + ] + }, + "properties": { + "NAME": "Turkey", + "NAME_LONG": "Turkey", + "ADM0_A3": "TUR", + "ISO_A2": "TR", + "ISO_A3": "TUR", + "WB_A2": "TR", + "WB_A3": "TUR" + }, + "id": 230 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [121.636, 25.2228], + [121.8928, 25.1137], + [121.9058, 24.9501], + [121.8235, 24.8549], + [121.856, 24.5505], + [121.7727, 24.3092], + [121.6629, 24.1931], + [121.4001, 23.1455], + [121.1414, 22.7418], + [120.9483, 22.5268], + [120.875, 22.2893], + [120.8416, 21.9255], + [120.7044, 21.9814], + [120.6213, 22.2951], + [120.512, 22.4248], + [120.3312, 22.5197], + [120.1755, 22.8841], + [120.1703, 23.0134], + [120.0594, 23.151], + [120.1301, 23.361], + [120.1243, 23.52], + [120.1892, 23.7748], + [120.4932, 24.2307], + [120.7022, 24.607], + [120.8475, 24.7108], + [121.0593, 25.0502], + [121.3788, 25.1579], + [121.5397, 25.2874], + [121.636, 25.2228] + ] + ] + }, + "properties": { + "NAME": "Taiwan", + "NAME_LONG": "Taiwan", + "ADM0_A3": "TWN", + "ISO_A2": "TW", + "ISO_A3": "TWN", + "WB_A2": "TW", + "WB_A3": "TWN" + }, + "id": 232 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [39.3574, -5.912], + [39.5695, -6.4208], + [39.5085, -6.4628], + [39.2642, -6.3024], + [39.1904, -5.9142], + [39.3574, -5.912] + ] + ], + [ + [ + [39.7111, -4.927], + [39.8059, -4.9609], + [39.8556, -5.2294], + [39.7961, -5.4068], + [39.6758, -5.0017], + [39.7111, -4.927] + ] + ], + [ + [ + [33.9042, -1.0026], + [34.0525, -1.0404], + [35.4156, -1.8013], + [36.7035, -2.5204], + [37.6449, -3.046], + [37.7001, -3.3144], + [37.5903, -3.4041], + [37.771, -3.6554], + [38.5083, -4.1862], + [39.1906, -4.6775], + [39.207, -4.8723], + [39.1304, -4.9181], + [39.1387, -5.1032], + [39.0742, -5.1863], + [38.9988, -5.4653], + [38.8325, -5.8156], + [38.778, -6.0307], + [38.8568, -6.1637], + [38.8522, -6.3487], + [39.0409, -6.4701], + [39.2127, -6.6418], + [39.2937, -6.8152], + [39.4645, -6.8577], + [39.5505, -6.9938], + [39.5475, -7.1183], + [39.4268, -7.1923], + [39.304, -7.4485], + [39.2962, -7.6884], + [39.4435, -7.8326], + [39.4544, -8.0104], + [39.28, -8.3093], + [39.4089, -8.8702], + [39.4933, -9.0795], + [39.6438, -9.1891], + [39.6507, -9.4448], + [39.7795, -9.9301], + [39.9866, -10.1397], + [40.2321, -10.2005], + [40.4369, -10.4748], + [40.0081, -10.8111], + [39.7605, -10.9431], + [39.4827, -10.9992], + [39.2866, -11.1542], + [38.8963, -11.1677], + [38.6542, -11.2758], + [38.4923, -11.4135], + [38.2566, -11.2771], + [38.0708, -11.2558], + [37.8752, -11.3191], + [37.7837, -11.5589], + [37.4278, -11.7226], + [37.2266, -11.6938], + [37.0444, -11.5957], + [36.8201, -11.5736], + [36.747, -11.6665], + [36.563, -11.7313], + [36.4949, -11.6809], + [36.1997, -11.7015], + [36.1681, -11.5787], + [35.9397, -11.4341], + [35.8264, -11.4135], + [35.6548, -11.5783], + [34.9646, -11.5736], + [34.8866, -11.3754], + [34.7591, -11.3375], + [34.593, -11.0162], + [34.6724, -10.7395], + [34.5811, -10.5397], + [34.5853, -10.3007], + [34.4833, -9.9462], + [34.2881, -9.7085], + [34.0127, -9.4775], + [33.8653, -9.6696], + [33.7346, -9.5841], + [33.4042, -9.6049], + [33.3003, -9.4922], + [33.1729, -9.511], + [32.9209, -9.4079], + [32.7132, -9.2858], + [32.518, -9.2582], + [32.383, -9.1339], + [31.9177, -9.0225], + [31.9366, -8.9326], + [31.6727, -8.913], + [31.539, -8.7036], + [31.3533, -8.5872], + [31.1198, -8.6166], + [30.9595, -8.5505], + [30.8283, -8.3881], + [30.7521, -8.1941], + [30.655, -7.9274], + [30.4416, -7.5963], + [30.3696, -7.3103], + [30.2347, -7.0571], + [30.0909, -6.89], + [29.7386, -6.6524], + [29.5255, -6.2731], + [29.4761, -6.0021], + [29.603, -5.7817], + [29.5935, -5.6203], + [29.4556, -5.23], + [29.3778, -5.0875], + [29.321, -4.8363], + [29.4042, -4.4498], + [29.7283, -4.4616], + [29.8003, -4.3639], + [30.003, -4.2719], + [30.1498, -4.0868], + [30.2088, -3.9305], + [30.4689, -3.513], + [30.6129, -3.4449], + [30.6405, -3.3329], + [30.7998, -3.2746], + [30.8322, -3.1728], + [30.7189, -2.9895], + [30.4158, -2.8517], + [30.416, -2.6456], + [30.5546, -2.4006], + [30.8344, -2.3453], + [30.8878, -2.0825], + [30.8299, -1.9606], + [30.831, -1.5942], + [30.7375, -1.4067], + [30.5553, -1.3184], + [30.4718, -1.0668], + [30.6386, -1.0734], + [30.8284, -1.0026], + [32.3576, -1.0026], + [33.9042, -1.0026] + ] + ] + ] + }, + "properties": { + "NAME": "Tanzania", + "NAME_LONG": "Tanzania", + "ADM0_A3": "TZA", + "ISO_A2": "TZ", + "ISO_A3": "TZA", + "WB_A2": "TZ", + "WB_A3": "TZA" + }, + "id": 233 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [33.9042, -1.0026], + [32.3576, -1.0026], + [30.8284, -1.0026], + [30.6386, -1.0734], + [30.4718, -1.0668], + [30.3528, -1.0608], + [30.1472, -1.3451], + [29.8979, -1.4696], + [29.8361, -1.3295], + [29.5779, -1.3884], + [29.556, -0.9195], + [29.6108, -0.864], + [29.6294, -0.4424], + [29.7118, 0.0996], + [29.8006, 0.1724], + [29.8326, 0.337], + [29.9405, 0.4983], + [29.9283, 0.785], + [30.1451, 0.9032], + [30.2389, 1.136], + [30.4783, 1.2386], + [30.6817, 1.5003], + [31.0258, 1.7782], + [31.2428, 2.0512], + [31.2675, 2.1733], + [31.1776, 2.3029], + [30.8718, 2.3321], + [30.7249, 2.4408], + [30.7394, 2.6033], + [30.8548, 2.8932], + [30.7451, 3.0363], + [30.8042, 3.246], + [30.91, 3.3934], + [30.8395, 3.4902], + [30.9444, 3.6793], + [31.1415, 3.7851], + [31.295, 3.7742], + [31.5054, 3.6599], + [31.6685, 3.705], + [31.781, 3.8158], + [31.9437, 3.5913], + [32.1746, 3.5209], + [32.1878, 3.6192], + [32.3718, 3.7311], + [32.7564, 3.769], + [33.0172, 3.8772], + [33.1954, 3.7571], + [33.5326, 3.7743], + [33.9771, 4.2197], + [34.0611, 4.0078], + [34.2789, 3.7097], + [34.4397, 3.6677], + [34.3821, 3.466], + [34.434, 3.182], + [34.5456, 3.0974], + [34.5747, 2.9461], + [34.7301, 2.8529], + [34.8187, 2.598], + [34.9236, 2.4773], + [34.8656, 2.3475], + [34.9675, 2.1019], + [34.9787, 1.6759], + [34.779, 1.3885], + [34.7979, 1.2319], + [34.5075, 1.1025], + [34.388, 0.8158], + [34.1324, 0.5728], + [34.088, 0.3674], + [33.8936, 0.1098], + [33.9535, -0.1544], + [33.8948, -0.6627], + [33.9042, -1.0026] + ] + ] + }, + "properties": { + "NAME": "Uganda", + "NAME_LONG": "Uganda", + "ADM0_A3": "UGA", + "ISO_A2": "UG", + "ISO_A3": "UGA", + "WB_A2": "UG", + "WB_A3": "UGA" + }, + "id": 234 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [38.2166, 47.1033], + [37.5807, 47.0904], + [37.3352, 46.8825], + [37.2082, 46.9336], + [36.8862, 46.804], + [36.1895, 46.669], + [35.9016, 46.6527], + [35.5105, 46.4572], + [35.2914, 46.2934], + [35.075, 46.2711], + [34.8113, 46.1662], + [34.8744, 45.9261], + [35.0444, 45.6701], + [35.3322, 45.3712], + [35.4807, 45.2978], + [35.7918, 45.4123], + [36.0223, 45.3681], + [36.3, 45.4733], + [36.6135, 45.4089], + [36.418, 45.2299], + [36.4401, 45.0675], + [36.2246, 45.0075], + [36.0479, 45.0488], + [35.848, 44.9924], + [35.5474, 45.1197], + [35.3894, 45.0019], + [35.0057, 44.8352], + [34.757, 44.8205], + [34.469, 44.7298], + [34.3412, 44.5585], + [33.9579, 44.383], + [33.721, 44.3996], + [33.4774, 44.6066], + [33.6196, 44.9315], + [33.5625, 45.0939], + [33.4134, 45.1845], + [33.2596, 45.1561], + [32.8993, 45.3542], + [32.5129, 45.3406], + [32.5252, 45.4582], + [32.9368, 45.6625], + [33.7087, 45.9097], + [33.6135, 46.1452], + [33.4238, 46.0533], + [33.2935, 46.1357], + [32.7898, 46.1343], + [32.5034, 46.0761], + [32.2625, 46.1282], + [31.9683, 46.3511], + [32.1117, 46.5124], + [31.8584, 46.6291], + [31.481, 46.6464], + [31.3377, 46.6013], + [30.9914, 46.6013], + [30.7549, 46.5159], + [30.7725, 46.3964], + [30.4942, 46.0805], + [30.1384, 45.8198], + [29.9685, 45.8389], + [29.865, 45.6723], + [29.5897, 45.5591], + [29.7474, 45.4634], + [29.659, 45.2159], + [29.6503, 45.3461], + [29.3221, 45.4438], + [28.7101, 45.227], + [28.3302, 45.3229], + [28.1995, 45.4618], + [28.4809, 45.502], + [28.474, 45.6579], + [28.7383, 45.8376], + [28.7576, 45.9612], + [28.932, 45.9932], + [29.0154, 46.1826], + [28.9335, 46.259], + [28.9458, 46.4548], + [29.1627, 46.5381], + [29.2007, 46.3571], + [29.7269, 46.4558], + [29.8478, 46.3415], + [30.0811, 46.3742], + [29.9161, 46.5188], + [29.9526, 46.7247], + [29.8436, 46.8541], + [29.5587, 46.9457], + [29.5566, 47.324], + [29.3589, 47.3527], + [29.1174, 47.5333], + [29.2386, 47.756], + [29.124, 47.976], + [28.9504, 47.9348], + [28.7993, 48.1118], + [28.1999, 48.2117], + [27.7518, 48.452], + [27.5038, 48.4724], + [27.1758, 48.3618], + [26.8428, 48.3937], + [26.6179, 48.259], + [26.3035, 48.212], + [26.1731, 47.9931], + [25.2617, 47.8986], + [25.1219, 47.7703], + [24.8966, 47.7101], + [24.5616, 47.9405], + [24.231, 47.897], + [23.9773, 47.9623], + [23.3601, 47.9931], + [23.2314, 48.0797], + [22.8776, 47.9467], + [22.831, 48.0724], + [22.6001, 48.1011], + [22.3571, 48.2431], + [22.2718, 48.4035], + [22.1328, 48.4048], + [22.1537, 48.5859], + [22.3225, 48.7003], + [22.5396, 49.0722], + [22.7445, 49.0455], + [22.7242, 49.3671], + [22.6409, 49.5288], + [23.1015, 49.9571], + [23.7475, 50.3894], + [23.9813, 50.4048], + [24.1065, 50.5386], + [23.8747, 51.1361], + [23.634, 51.3393], + [23.6062, 51.5174], + [23.7497, 51.6445], + [23.9813, 51.586], + [24.2441, 51.7182], + [24.3908, 51.88], + [24.7218, 51.8823], + [25.1833, 51.9498], + [25.7679, 51.9285], + [26.4078, 51.8506], + [26.8548, 51.7493], + [27.1779, 51.7471], + [27.254, 51.5954], + [27.4773, 51.6237], + [28.3469, 51.5252], + [28.7999, 51.5326], + [29.1604, 51.6033], + [29.297, 51.3737], + [29.618, 51.4856], + [29.8286, 51.43], + [30.1486, 51.4844], + [30.3551, 51.3053], + [30.6383, 51.3359], + [30.5341, 51.5533], + [30.662, 51.8194], + [30.9405, 52.0201], + [31.4749, 52.1178], + [31.7643, 52.1006], + [32.0956, 52.0407], + [32.3067, 52.1412], + [32.3395, 52.2872], + [32.5284, 52.3162], + [32.9269, 52.2469], + [33.1965, 52.3689], + [33.8041, 52.3546], + [34.0557, 52.1703], + [34.0682, 52.031], + [34.3857, 51.8177], + [34.3763, 51.7086], + [34.128, 51.6807], + [34.2803, 51.3613], + [34.409, 51.2531], + [34.7481, 51.1647], + [34.9618, 51.2153], + [35.3417, 50.9159], + [35.4454, 50.6875], + [35.4253, 50.5005], + [35.6969, 50.3451], + [35.8374, 50.4232], + [36.1058, 50.4211], + [36.269, 50.2814], + [36.6826, 50.2607], + [36.9141, 50.3391], + [37.4353, 50.4249], + [37.5992, 50.2909], + [37.7277, 50.0787], + [37.9953, 49.9213], + [38.3442, 49.9921], + [38.8522, 49.8658], + [39.1828, 49.8585], + [39.238, 49.7651], + [39.5704, 49.7133], + [39.8015, 49.5422], + [40.0409, 49.4555], + [40.1417, 49.2458], + [39.9187, 49.0478], + [39.6811, 49.0203], + [39.7587, 48.8954], + [39.6317, 48.5869], + [39.8092, 48.5838], + [39.9932, 48.2732], + [39.8431, 48.1198], + [39.7591, 47.8329], + [39.3916, 47.8226], + [38.8772, 47.8612], + [38.7345, 47.6771], + [38.3529, 47.6071], + [38.201, 47.2906], + [38.2166, 47.1033] + ] + ] + }, + "properties": { + "NAME": "Ukraine", + "NAME_LONG": "Ukraine", + "ADM0_A3": "UKR", + "ISO_A2": "UA", + "ISO_A3": "UKR", + "WB_A2": "UA", + "WB_A3": "UKR" + }, + "id": 235 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [-53.3791, -33.7407], + [-53.4731, -33.8346], + [-53.5395, -34.0624], + [-53.711, -34.1988], + [-53.7649, -34.3904], + [-53.9722, -34.4872], + [-54.1459, -34.6676], + [-54.3065, -34.7077], + [-54.9393, -34.9699], + [-55.0821, -34.884], + [-55.2602, -34.8976], + [-55.3769, -34.8014], + [-55.7921, -34.7741], + [-56.0696, -34.901], + [-56.3113, -34.9062], + [-56.4484, -34.7583], + [-56.7953, -34.6985], + [-57.12, -34.463], + [-57.8225, -34.4751], + [-58.077, -34.192], + [-58.1962, -34.1594], + [-58.3888, -33.9421], + [-58.4346, -33.7849], + [-58.4126, -33.3717], + [-58.3669, -33.1537], + [-58.1744, -33.1104], + [-58.0485, -32.9117], + [-58.1205, -32.8193], + [-58.2001, -32.4471], + [-58.1016, -32.3114], + [-58.1865, -32.1529], + [-58.1686, -31.846], + [-58.0593, -31.8115], + [-57.9868, -31.5541], + [-58.0752, -31.4752], + [-57.9051, -31.241], + [-57.8072, -30.9076], + [-57.8496, -30.4853], + [-57.6527, -30.3291], + [-57.6117, -30.183], + [-57.536, -30.2744], + [-57.2126, -30.2873], + [-57.1023, -30.1212], + [-56.8313, -30.102], + [-56.3726, -30.4859], + [-56.2351, -30.5654], + [-56.0114, -30.7982], + [-56.0114, -31.0821], + [-55.8643, -31.0768], + [-55.5919, -30.8483], + [-55.3539, -31.0563], + [-55.26, -31.2287], + [-54.8198, -31.4353], + [-54.5915, -31.471], + [-54.4637, -31.6719], + [-54.1351, -31.909], + [-54.0688, -31.8799], + [-53.7718, -32.0471], + [-53.6487, -32.3386], + [-53.4156, -32.5642], + [-53.1861, -32.6467], + [-53.1269, -32.7548], + [-53.3273, -32.9736], + [-53.5115, -33.0992], + [-53.5396, -33.6493], + [-53.3791, -33.7407] + ] + ] + }, + "properties": { + "NAME": "Uruguay", + "NAME_LONG": "Uruguay", + "ADM0_A3": "URY", + "ISO_A2": "UY", + "ISO_A3": "URY", + "WB_A2": "UY", + "WB_A3": "URY" + }, + "id": 237 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-155.6065, 20.138], + [-155.3323, 20.0467], + [-155.0871, 19.8604], + [-155.0854, 19.7274], + [-154.8172, 19.4797], + [-154.9823, 19.3392], + [-155.2911, 19.2595], + [-155.5028, 19.1377], + [-155.6829, 18.9329], + [-155.8781, 19.0291], + [-155.9199, 19.1386], + [-155.8855, 19.3342], + [-156.0602, 19.7312], + [-155.8241, 20.0201], + [-155.8672, 20.2631], + [-155.6065, 20.138] + ] + ], + [ + [ + [-156.5896, 21.0277], + [-156.4817, 20.9044], + [-156.2983, 20.9527], + [-156.0017, 20.8004], + [-156.0031, 20.6859], + [-156.3026, 20.5812], + [-156.4077, 20.5872], + [-156.4643, 20.7814], + [-156.6202, 20.8071], + [-156.696, 20.9158], + [-156.5896, 21.0277] + ] + ], + [ + [ + [-157.8938, 21.5984], + [-157.8421, 21.461], + [-157.6472, 21.3064], + [-157.795, 21.2547], + [-158.0943, 21.2936], + [-158.2276, 21.483], + [-158.0144, 21.7015], + [-157.8938, 21.5984] + ] + ], + [ + [ + [-159.3882, 22.2288], + [-159.2928, 22.1464], + [-159.3341, 21.9581], + [-159.4373, 21.8688], + [-159.7598, 21.9785], + [-159.7165, 22.1575], + [-159.5484, 22.231], + [-159.3882, 22.2288] + ] + ], + [ + [ + [-72.2469, 41.1354], + [-72.109, 41.0014], + [-72.4067, 40.8621], + [-72.9468, 40.7419], + [-73.2333, 40.7145], + [-73.7073, 40.5828], + [-73.8296, 40.6488], + [-73.9086, 40.7887], + [-73.4857, 40.9456], + [-73.2246, 40.9083], + [-73.1131, 40.9735], + [-72.6061, 40.9899], + [-72.3434, 41.1407], + [-72.2469, 41.1354] + ] + ], + [ + [ + [-74.713, 44.9993], + [-73.3992, 45.0044], + [-71.5041, 45.0137], + [-71.3949, 45.2415], + [-71.1417, 45.2523], + [-70.8338, 45.3931], + [-70.6868, 45.5727], + [-70.4074, 45.7315], + [-70.2625, 45.923], + [-70.3114, 46.0719], + [-70.1884, 46.3584], + [-70.0743, 46.4195], + [-70.0078, 46.7041], + [-69.2676, 47.4398], + [-69.0697, 47.4319], + [-69.0402, 47.2491], + [-68.9062, 47.1902], + [-68.5397, 47.2999], + [-68.197, 47.3414], + [-67.8052, 47.0356], + [-67.7728, 45.8281], + [-67.8001, 45.6998], + [-67.45, 45.6108], + [-67.475, 45.2824], + [-67.3563, 45.1659], + [-67.176, 45.1787], + [-66.9773, 44.8155], + [-67.2244, 44.6442], + [-67.575, 44.5535], + [-67.8066, 44.5754], + [-67.8996, 44.4221], + [-68.0975, 44.3857], + [-68.2698, 44.4861], + [-68.7562, 44.3345], + [-68.8276, 44.4791], + [-68.9866, 44.4212], + [-69.1188, 44.0409], + [-69.2634, 43.9299], + [-69.6494, 43.8976], + [-69.7873, 43.7375], + [-69.9858, 43.8628], + [-70.2391, 43.7001], + [-70.2049, 43.5611], + [-70.3564, 43.527], + [-70.3824, 43.3937], + [-70.5195, 43.3395], + [-70.8153, 42.8703], + [-70.8614, 42.5469], + [-71.0384, 42.3079], + [-70.7838, 42.2597], + [-70.631, 42.0925], + [-70.5331, 41.8162], + [-70.2747, 41.7152], + [-70.0702, 41.7735], + [-69.9389, 41.6742], + [-70.4284, 41.6319], + [-70.6587, 41.5213], + [-70.6583, 41.722], + [-71.1859, 41.4687], + [-71.2069, 41.6462], + [-71.3556, 41.7463], + [-71.4977, 41.3663], + [-71.8981, 41.3465], + [-72.288, 41.2829], + [-72.7794, 41.2702], + [-73.1701, 41.1696], + [-73.6346, 41.0071], + [-73.8199, 40.8391], + [-73.9268, 40.8048], + [-74.096, 40.6548], + [-74.2096, 40.6342], + [-74.2827, 40.4973], + [-74.0323, 40.4216], + [-73.9724, 40.3277], + [-74.1676, 39.6994], + [-74.3588, 39.5502], + [-74.7457, 39.0545], + [-75.0267, 39.2107], + [-75.1593, 39.1986], + [-75.3594, 39.3379], + [-75.3938, 39.0556], + [-75.1663, 38.7944], + [-75.0577, 38.5527], + [-75.1543, 38.2409], + [-75.4343, 37.9618], + [-75.4923, 37.8311], + [-75.8873, 37.357], + [-75.9217, 37.6105], + [-75.7081, 37.8332], + [-75.8144, 38.1352], + [-76.2211, 38.3439], + [-76.319, 38.4739], + [-76.1454, 38.665], + [-76.3403, 38.7284], + [-76.1544, 38.8953], + [-76.1305, 39.1178], + [-76.2727, 39.1516], + [-76.175, 39.3162], + [-76.4245, 39.3237], + [-76.3985, 39.0144], + [-76.5517, 38.7756], + [-76.512, 38.5277], + [-76.3205, 38.1388], + [-76.6146, 38.1504], + [-76.5306, 38.0251], + [-76.2479, 37.9035], + [-76.3565, 37.5218], + [-76.2445, 37.4495], + [-76.3785, 37.2723], + [-76.2689, 36.9614], + [-75.9889, 36.912], + [-75.9279, 36.7062], + [-75.9164, 36.4027], + [-75.8597, 36.1616], + [-76.0204, 36.1915], + [-76.1954, 36.1035], + [-76.4117, 36.083], + [-76.3873, 35.9384], + [-76.1954, 35.9936], + [-75.8529, 35.98], + [-75.7218, 35.8292], + [-75.7538, 35.6118], + [-75.8972, 35.579], + [-76.1504, 35.3472], + [-76.4425, 35.404], + [-76.5605, 35.1244], + [-76.5482, 34.9993], + [-76.3357, 34.8995], + [-76.5039, 34.7665], + [-76.6582, 34.7219], + [-76.8961, 34.7392], + [-77.2015, 34.6507], + [-77.5359, 34.4686], + [-77.8327, 34.207], + [-77.9111, 33.9582], + [-78.0323, 33.8923], + [-78.2525, 33.9251], + [-78.559, 33.869], + [-78.938, 33.6421], + [-79.1331, 33.4174], + [-79.203, 33.1929], + [-79.387, 33.0173], + [-79.5848, 33.0138], + [-79.6074, 32.9162], + [-80.0051, 32.6116], + [-80.4093, 32.4811], + [-80.4411, 32.3661], + [-80.8876, 32.0694], + [-80.8357, 32.0029], + [-81.0609, 31.7882], + [-81.1963, 31.7176], + [-81.3639, 31.4158], + [-81.2699, 31.2748], + [-81.4993, 30.9682], + [-81.4993, 30.7043], + [-81.2558, 29.7895], + [-81.1783, 29.5855], + [-80.9221, 29.0683], + [-80.6094, 28.6102], + [-80.7659, 28.6123], + [-80.7383, 28.3735], + [-80.381, 27.6661], + [-80.3454, 27.5146], + [-80.0756, 26.9732], + [-80.0382, 26.8112], + [-80.1293, 25.8879], + [-80.3069, 25.6182], + [-80.3143, 25.3712], + [-80.4269, 25.2217], + [-80.5806, 25.2414], + [-80.7109, 25.1452], + [-80.855, 25.1862], + [-81.0865, 25.1214], + [-81.1771, 25.2278], + [-81.1492, 25.3954], + [-81.3217, 25.7827], + [-81.6644, 25.9814], + [-81.8009, 26.0986], + [-81.8559, 26.4489], + [-82.0391, 26.5279], + [-82.0821, 26.6802], + [-82.3138, 26.8494], + [-82.5618, 27.2763], + [-82.6608, 27.5203], + [-82.3982, 27.796], + [-82.596, 27.9831], + [-82.6378, 27.7011], + [-82.8424, 27.8285], + [-82.7673, 28.1059], + [-82.7873, 28.1938], + [-82.6642, 28.4479], + [-82.6444, 28.9004], + [-82.8492, 29.1822], + [-83.0239, 29.1748], + [-83.2157, 29.4106], + [-83.4048, 29.5317], + [-83.4089, 29.6673], + [-83.5277, 29.716], + [-83.6806, 29.9213], + [-84.024, 30.1066], + [-84.2696, 30.0927], + [-84.5084, 29.9221], + [-84.8866, 29.73], + [-85.3079, 29.6934], + [-85.3565, 29.8887], + [-85.6709, 30.123], + [-85.7086, 30.247], + [-85.8645, 30.2163], + [-86.3648, 30.3808], + [-86.4846, 30.48], + [-86.6801, 30.4223], + [-87.1568, 30.4745], + [-87.3288, 30.3197], + [-87.7865, 30.2368], + [-87.9166, 30.4233], + [-87.9425, 30.6597], + [-88.0526, 30.6544], + [-88.1201, 30.3383], + [-88.3553, 30.4038], + [-88.4706, 30.3239], + [-88.7421, 30.3541], + [-88.9276, 30.4422], + [-89.0134, 30.3774], + [-89.3302, 30.3029], + [-89.4425, 30.1898], + [-89.7084, 30.1753], + [-89.9691, 30.2647], + [-90.0585, 30.3603], + [-90.2224, 30.3876], + [-90.405, 30.2202], + [-90.3391, 30.0661], + [-90.037, 30.0403], + [-89.8804, 30.1549], + [-89.8389, 29.9953], + [-89.6865, 29.8826], + [-89.4273, 30.0587], + [-89.4568, 29.8293], + [-89.6684, 29.5218], + [-89.3423, 29.3461], + [-89.202, 29.3529], + [-89.0232, 29.1474], + [-89.1881, 29.0305], + [-89.3837, 29.0878], + [-89.4825, 29.2431], + [-89.7577, 29.3432], + [-89.9077, 29.477], + [-90.0363, 29.3659], + [-90.0802, 29.1747], + [-90.2511, 29.2474], + [-90.562, 29.3007], + [-90.7059, 29.1195], + [-91.2286, 29.2386], + [-91.2198, 29.4044], + [-91.3209, 29.4966], + [-91.5343, 29.534], + [-91.6847, 29.7531], + [-91.8779, 29.7593], + [-91.9844, 29.832], + [-92.1341, 29.7568], + [-92.1074, 29.6204], + [-92.2765, 29.5338], + [-92.6831, 29.6041], + [-93.1996, 29.7728], + [-93.7394, 29.7372], + [-93.8541, 29.9866], + [-93.9327, 29.7762], + [-94.0601, 29.6818], + [-94.6543, 29.4519], + [-94.8761, 29.6658], + [-95.0239, 29.5422], + [-94.8888, 29.376], + [-95.1592, 29.1524], + [-95.1589, 29.0457], + [-95.6019, 28.7639], + [-95.8174, 28.7325], + [-96.2049, 28.5867], + [-96.5595, 28.6543], + [-96.5819, 28.5789], + [-96.4038, 28.4349], + [-96.6537, 28.3195], + [-97.025, 28.0414], + [-97.1841, 27.8366], + [-97.4224, 27.3278], + [-97.5211, 27.2322], + [-97.446, 27.1327], + [-97.5502, 27.0092], + [-97.3519, 26.3538], + [-97.3105, 26.1233], + [-97.1393, 25.9658], + [-97.4254, 25.8549], + [-97.6796, 26.0346], + [-98.2227, 26.0754], + [-98.3693, 26.194], + [-98.6406, 26.2418], + [-98.7959, 26.3683], + [-99.0855, 26.4076], + [-99.1649, 26.5404], + [-99.2483, 26.8271], + [-99.4617, 27.057], + [-99.432, 27.2076], + [-99.4976, 27.3388], + [-99.5072, 27.5738], + [-99.7004, 27.6592], + [-99.8634, 27.8047], + [-99.8788, 27.9018], + [-100.0749, 28.1544], + [-100.2843, 28.2965], + [-100.3971, 28.5927], + [-100.6243, 28.9247], + [-100.669, 29.1162], + [-100.8161, 29.2708], + [-101.1636, 29.5013], + [-101.4093, 29.7658], + [-101.9722, 29.8182], + [-102.1093, 29.8021], + [-102.3022, 29.8894], + [-102.4061, 29.7773], + [-102.6835, 29.7437], + [-102.8831, 29.3438], + [-103.148, 28.9851], + [-103.3015, 29.0024], + [-103.6731, 29.1736], + [-103.7942, 29.2776], + [-104.0573, 29.339], + [-104.2672, 29.5266], + [-104.5308, 29.6679], + [-104.6805, 29.9423], + [-104.6816, 30.1929], + [-105.0085, 30.677], + [-105.3638, 30.8504], + [-105.5909, 31.0714], + [-105.7682, 31.18], + [-106.0047, 31.3969], + [-106.1643, 31.4478], + [-106.3585, 31.7175], + [-106.5172, 31.7738], + [-108.2151, 31.7778], + [-108.2148, 31.3274], + [-109.9663, 31.3272], + [-111.0671, 31.3336], + [-112.3247, 31.728], + [-113.9617, 32.2341], + [-114.8221, 32.5002], + [-114.7243, 32.7128], + [-115.7941, 32.632], + [-117.1251, 32.5317], + [-117.2575, 32.7017], + [-117.2536, 32.8851], + [-117.3222, 33.1085], + [-117.5088, 33.3352], + [-118.0905, 33.731], + [-118.3914, 33.8359], + [-118.5441, 34.0389], + [-118.9368, 34.0432], + [-119.2171, 34.1455], + [-119.2693, 34.255], + [-119.6172, 34.4205], + [-119.8786, 34.4066], + [-120.1334, 34.4727], + [-120.4727, 34.4503], + [-120.6478, 34.5857], + [-120.6031, 34.7048], + [-120.6728, 34.9075], + [-120.6449, 35.1394], + [-120.8977, 35.2498], + [-120.8711, 35.4053], + [-121.0054, 35.4607], + [-121.2691, 35.6642], + [-121.49, 35.9822], + [-121.8956, 36.3139], + [-121.9463, 36.4919], + [-121.7898, 36.8062], + [-121.9372, 36.9783], + [-122.1536, 36.9771], + [-122.4045, 37.1945], + [-122.4003, 37.3597], + [-122.5205, 37.5314], + [-122.3585, 37.5928], + [-122.1463, 37.579], + [-122.4874, 38.1048], + [-122.5284, 37.8164], + [-122.9211, 38.0349], + [-122.9745, 38.2662], + [-123.6483, 38.8495], + [-123.8249, 39.3473], + [-123.7698, 39.5446], + [-123.854, 39.8335], + [-124.1158, 40.1071], + [-124.3635, 40.2615], + [-124.4092, 40.4438], + [-124.2138, 40.7014], + [-124.1104, 41.0153], + [-124.1243, 41.1818], + [-124.0622, 41.4359], + [-124.2188, 41.85], + [-124.217, 42.0062], + [-124.3596, 42.113], + [-124.4328, 42.3293], + [-124.4145, 42.6624], + [-124.5477, 42.8454], + [-124.4449, 43.03], + [-124.3765, 43.3402], + [-124.277, 43.4215], + [-124.151, 43.8817], + [-124.0632, 44.6095], + [-124.0652, 44.8233], + [-123.9711, 45.1537], + [-123.9711, 45.452], + [-123.9207, 45.6627], + [-123.9811, 45.7603], + [-123.9368, 46.0818], + [-123.8669, 46.1599], + [-123.6141, 46.1865], + [-123.693, 46.3052], + [-123.9252, 46.2515], + [-124.0638, 46.3563], + [-123.8981, 46.4416], + [-123.913, 46.7278], + [-124.0934, 46.7432], + [-124.0129, 46.9837], + [-124.1719, 47.0419], + [-124.3178, 47.3574], + [-124.4228, 47.7419], + [-124.6381, 47.9079], + [-124.7346, 48.1704], + [-124.5749, 48.3704], + [-124.0502, 48.1773], + [-123.7003, 48.1649], + [-122.792, 48.0829], + [-122.4684, 47.7565], + [-122.6284, 47.6929], + [-122.5079, 47.5203], + [-122.5859, 47.3364], + [-122.7987, 47.205], + [-122.7225, 47.0893], + [-122.3236, 47.3725], + [-122.4135, 47.6417], + [-122.3204, 47.9421], + [-122.3918, 48.3098], + [-122.5338, 48.3747], + [-122.4403, 48.5807], + [-122.5299, 48.7686], + [-122.7725, 48.8865], + [-122.753, 48.9925], + [-121.1145, 48.9925], + [-119.356, 48.9925], + [-117.8174, 48.9925], + [-116.2788, 48.9925], + [-115.1797, 48.9925], + [-113.641, 48.9925], + [-111.6627, 48.9926], + [-110.5637, 48.9926], + [-108.3656, 48.9926], + [-106.6072, 48.9926], + [-104.409, 48.9926], + [-102.4307, 48.9926], + [-100.4525, 48.9927], + [-99.3535, 48.9927], + [-97.8148, 48.9927], + [-96.7158, 48.9927], + [-95.1771, 48.9927], + [-95.1606, 49.3695], + [-94.8273, 49.2929], + [-94.7112, 48.9146], + [-94.5929, 48.7264], + [-94.2322, 48.652], + [-93.8749, 48.6362], + [-93.7568, 48.5165], + [-93.4918, 48.5423], + [-93.2577, 48.6303], + [-92.9797, 48.6177], + [-92.6486, 48.5363], + [-92.3031, 48.3109], + [-92.0434, 48.3346], + [-91.9573, 48.2283], + [-91.6925, 48.0979], + [-91.4279, 48.0364], + [-90.9232, 48.2271], + [-90.7865, 48.1005], + [-90.1786, 48.1164], + [-89.9803, 48.0101], + [-89.3404, 47.9842], + [-88.6427, 48.2566], + [-88.3473, 48.2987], + [-86.6371, 47.6241], + [-84.8787, 46.8979], + [-84.7733, 46.6334], + [-84.5894, 46.4751], + [-84.1104, 46.5265], + [-84.1588, 46.4333], + [-84.0868, 46.2012], + [-83.9473, 46.0606], + [-83.6139, 46.1156], + [-83.4659, 45.9931], + [-83.5953, 45.8164], + [-82.5888, 45.3718], + [-82.5321, 45.2935], + [-82.2918, 44.2422], + [-82.1536, 43.5496], + [-82.4111, 43.0513], + [-82.5113, 42.6467], + [-82.8001, 42.418], + [-83.1285, 42.24], + [-83.157, 42.0004], + [-83.0684, 41.8477], + [-82.7111, 41.6802], + [-82.4249, 41.6768], + [-81.2767, 42.2087], + [-80.2466, 42.3655], + [-79.0194, 42.8027], + [-78.9153, 42.9476], + [-79.032, 43.0134], + [-79.0538, 43.2604], + [-79.1743, 43.4645], + [-78.6881, 43.6318], + [-76.8415, 43.6255], + [-76.4546, 44.0842], + [-76.0673, 44.348], + [-75.8703, 44.4086], + [-75.6997, 44.5817], + [-75.2702, 44.8638], + [-74.8685, 45.0101], + [-74.713, 44.9993] + ] + ], + [ + [ + [172.9041, 53.0012], + [173.3013, 52.9256], + [173.1886, 52.7957], + [172.9443, 52.7498], + [172.6404, 52.8688], + [172.6604, 53.0086], + [172.9041, 53.0012] + ] + ], + [ + [ + [-168.0083, 53.5703], + [-167.7948, 53.502], + [-167.85, 53.3854], + [-168.2876, 53.243], + [-168.4899, 53.0421], + [-168.7513, 52.9602], + [-168.7595, 53.1867], + [-168.1998, 53.5402], + [-168.0083, 53.5703] + ] + ], + [ + [ + [-166.7464, 53.975], + [-166.4558, 53.8961], + [-166.2735, 53.687], + [-166.5472, 53.6259], + [-166.6564, 53.5024], + [-166.8768, 53.4815], + [-167.6651, 53.2419], + [-167.85, 53.3096], + [-167.4746, 53.434], + [-167.1586, 53.4771], + [-167.1554, 53.6226], + [-166.9465, 53.7158], + [-167.1634, 53.8574], + [-167.0216, 53.9612], + [-166.7464, 53.975] + ] + ], + [ + [ + [-163.7565, 55.0604], + [-163.5716, 55.057], + [-163.3695, 54.7646], + [-163.6225, 54.6118], + [-164.1327, 54.6232], + [-164.4056, 54.436], + [-164.8453, 54.4235], + [-164.9582, 54.5852], + [-164.7007, 54.6783], + [-164.5474, 54.8828], + [-164.314, 54.893], + [-163.7565, 55.0604] + ] + ], + [ + [ + [-131.2089, 55.9449], + [-130.9687, 55.7011], + [-130.9672, 55.4238], + [-131.192, 55.1857], + [-131.6615, 55.3432], + [-131.8103, 55.4766], + [-131.5788, 55.9072], + [-131.2089, 55.9449] + ] + ], + [ + [ + [-132.4838, 56.1946], + [-132.0922, 56.1064], + [-132.1226, 55.9455], + [-132.3034, 55.9154], + [-132.4838, 56.1946] + ] + ], + [ + [ + [-133.5868, 56.3529], + [-133.1821, 56.3323], + [-133.0539, 56.2344], + [-133.0628, 56.0523], + [-132.7364, 55.9966], + [-132.3467, 55.6431], + [-132.4013, 55.5168], + [-132.0907, 55.2768], + [-131.9943, 55.2681], + [-131.9488, 54.79], + [-132.004, 54.6938], + [-132.2976, 54.7445], + [-132.2648, 54.8445], + [-132.5794, 54.9544], + [-132.6086, 55.1192], + [-132.9596, 55.2766], + [-133.213, 55.2792], + [-133.0631, 55.6235], + [-133.2513, 55.5848], + [-133.3852, 55.7093], + [-133.1479, 55.8184], + [-133.2367, 55.9003], + [-133.2855, 56.1674], + [-133.6122, 56.2123], + [-133.5868, 56.3529] + ] + ], + [ + [ + [-132.6409, 56.4422], + [-132.6472, 56.2824], + [-132.8689, 56.2435], + [-133.0489, 56.3628], + [-132.9242, 56.452], + [-132.6409, 56.4422] + ] + ], + [ + [ + [-132.1515, 56.352], + [-131.9283, 56.1946], + [-132.0723, 56.1195], + [-132.3529, 56.2778], + [-132.1515, 56.352] + ] + ], + [ + [ + [-132.8822, 56.8012], + [-132.5334, 56.6003], + [-132.9375, 56.5176], + [-132.8822, 56.8012] + ] + ], + [ + [ + [-133.9867, 56.8656], + [-133.8012, 56.777], + [-133.8452, 56.4344], + [-134.2001, 56.1505], + [-134.282, 56.3628], + [-134.0674, 56.4776], + [-134.3576, 56.6766], + [-134.4086, 56.8429], + [-134.1759, 56.922], + [-133.9867, 56.8656] + ] + ], + [ + [ + [-133.7646, 57.0768], + [-132.9804, 56.935], + [-132.9339, 56.6416], + [-133.1479, 56.4621], + [-133.6594, 56.4642], + [-133.6966, 56.832], + [-134.0182, 57.0176], + [-133.7646, 57.0768] + ] + ], + [ + [ + [-135.4098, 57.449], + [-135.1422, 57.4694], + [-134.9095, 57.3398], + [-134.6161, 56.7285], + [-134.6488, 56.3392], + [-134.75, 56.2174], + [-135.0528, 56.5378], + [-135.1547, 56.7459], + [-135.3675, 56.8289], + [-135.3103, 57.0473], + [-135.6732, 57.3497], + [-135.4098, 57.449] + ] + ], + [ + [ + [-153.0128, 57.9291], + [-152.4863, 57.9107], + [-152.4678, 57.6572], + [-152.1609, 57.6271], + [-152.3303, 57.4459], + [-152.591, 57.4509], + [-152.6922, 57.2833], + [-153.2533, 57.2367], + [-153.5598, 56.9865], + [-153.9625, 56.7482], + [-154.5286, 56.9916], + [-154.535, 57.1746], + [-154.81, 57.3466], + [-154.6147, 57.5266], + [-154.2393, 57.6733], + [-153.754, 57.562], + [-153.9246, 57.8105], + [-153.5744, 57.8395], + [-153.1919, 57.8052], + [-153.0128, 57.9291] + ] + ], + [ + [ + [-135.715, 58.2297], + [-134.9248, 58.0275], + [-134.9425, 57.8066], + [-134.8139, 57.4975], + [-135.0569, 57.4666], + [-135.628, 57.706], + [-135.5463, 57.4661], + [-135.7074, 57.3665], + [-135.9491, 57.4619], + [-136.3948, 57.8857], + [-136.2969, 58.0106], + [-136.4053, 58.1339], + [-135.715, 58.2297] + ] + ], + [ + [ + [-134.9171, 58.3735], + [-134.6932, 58.1684], + [-134.1864, 58.1684], + [-134.1693, 58.0778], + [-134.3122, 57.9794], + [-133.9379, 57.6186], + [-133.865, 57.3551], + [-134.1274, 57.2646], + [-134.5018, 57.029], + [-134.6215, 57.2299], + [-134.4639, 57.3944], + [-134.6536, 57.5982], + [-134.7978, 58.1128], + [-134.9171, 58.3735] + ] + ], + [ + [ + [-152.6068, 58.4685], + [-152.4769, 58.3615], + [-152.0951, 58.3676], + [-151.9722, 58.2373], + [-152.3311, 58.165], + [-152.8049, 57.9915], + [-153.2296, 58.1689], + [-153.0417, 58.3056], + [-152.7933, 58.2868], + [-152.6068, 58.4685] + ] + ], + [ + [ + [-147.1142, 60.3567], + [-146.9223, 60.3135], + [-147.4903, 59.9392], + [-147.7031, 59.9975], + [-147.2012, 60.2422], + [-147.1142, 60.3567] + ] + ], + [ + [ + [-166.1027, 60.392], + [-165.6844, 60.2998], + [-165.7329, 60.1763], + [-165.5549, 59.9346], + [-166.244, 59.8078], + [-166.6134, 59.8564], + [-167.1898, 60.0278], + [-167.2881, 60.2387], + [-166.874, 60.2106], + [-166.4592, 60.3872], + [-166.1027, 60.392] + ] + ], + [ + [ + [-146.5416, 60.4686], + [-146.3336, 60.3522], + [-146.6002, 60.2452], + [-146.7226, 60.3862], + [-146.5416, 60.4686] + ] + ], + [ + [ + [-169, 63.3294], + [-168.7152, 63.312], + [-168.8118, 63.1701], + [-169, 63.1793], + [-169, 63.3294] + ] + ], + [ + [ + [-141.0056, 69.6509], + [-141.005, 68.4847], + [-141.0042, 66.8811], + [-141.0036, 65.5692], + [-141.0031, 64.5487], + [-141.0026, 63.3825], + [-141.0023, 62.6536], + [-141.0018, 61.6331], + [-141.0012, 60.3211], + [-140.5337, 60.2185], + [-140.4241, 60.2932], + [-140.0158, 60.1874], + [-139.6283, 60.3341], + [-139.1016, 60.3466], + [-139.1821, 60.0734], + [-138.6921, 59.8869], + [-138.5992, 59.7538], + [-137.6114, 59.2393], + [-137.4231, 58.9077], + [-136.8408, 59.1482], + [-136.6135, 59.1542], + [-136.4665, 59.2878], + [-136.4676, 59.4616], + [-136.2585, 59.6216], + [-135.9238, 59.6667], + [-135.4828, 59.7925], + [-135.0162, 59.5434], + [-135.0958, 59.4189], + [-134.9324, 59.2706], + [-134.7055, 59.2401], + [-134.398, 59.052], + [-134.2222, 58.8427], + [-133.8712, 58.7359], + [-133.4631, 58.4622], + [-133.3746, 58.291], + [-133.1656, 58.1473], + [-132.5524, 57.4991], + [-132.231, 57.1968], + [-132.3412, 57.0804], + [-132.0319, 57.0284], + [-132.1074, 56.8588], + [-131.8716, 56.7935], + [-131.7991, 56.5877], + [-131.5859, 56.595], + [-131.1005, 56.4077], + [-130.8391, 56.3725], + [-130.4955, 56.2324], + [-130.404, 56.1219], + [-130.0715, 56.0841], + [-130.0196, 55.908], + [-130.1737, 55.7495], + [-130.147, 55.5472], + [-129.9892, 55.284], + [-130.3654, 54.9073], + [-130.5803, 54.8064], + [-130.9342, 54.8244], + [-130.9497, 55.0738], + [-131.0576, 55.1987], + [-130.8732, 55.342], + [-130.8899, 55.7153], + [-131.1652, 55.9406], + [-131.4144, 56.0102], + [-131.7359, 55.8867], + [-131.9614, 55.501], + [-132.1716, 55.5885], + [-132.2615, 55.7397], + [-131.9435, 56.0069], + [-131.963, 56.1574], + [-131.8138, 56.196], + [-131.9713, 56.3564], + [-132.4769, 56.6045], + [-132.4795, 56.7428], + [-132.8604, 56.9189], + [-133.093, 57.0865], + [-133.552, 57.1815], + [-133.3915, 57.3352], + [-133.5729, 57.7161], + [-133.8612, 57.9567], + [-134.0597, 58.0722], + [-134.0677, 58.2789], + [-134.2416, 58.2143], + [-134.498, 58.3539], + [-134.7673, 58.4003], + [-135.1436, 58.8339], + [-135.2262, 58.6123], + [-135.0528, 58.3093], + [-135.3096, 58.2521], + [-135.4159, 58.395], + [-135.8411, 58.5284], + [-136.0603, 58.8259], + [-136.2691, 58.7641], + [-136.0267, 58.3881], + [-136.5984, 58.223], + [-136.9794, 58.4069], + [-137.1314, 58.4013], + [-137.5185, 58.5648], + [-137.931, 58.803], + [-138.1849, 59.0256], + [-139.2059, 59.3198], + [-139.857, 59.5463], + [-139.6576, 59.5755], + [-139.4734, 59.7176], + [-139.6211, 59.8903], + [-140.3227, 59.7012], + [-140.8631, 59.7456], + [-141.2742, 59.8492], + [-141.3859, 60.0348], + [-141.7327, 59.9631], + [-141.9691, 60.0281], + [-142.7985, 60.1124], + [-143.6096, 60.0495], + [-143.9186, 59.997], + [-144.3476, 60.2011], + [-144.5711, 60.1906], + [-144.9145, 60.3812], + [-145.2359, 60.3681], + [-145.5726, 60.4511], + [-145.9388, 60.4561], + [-145.6918, 60.6567], + [-146.5115, 60.8186], + [-146.8155, 61.0318], + [-147.1007, 61.0153], + [-147.3646, 60.8913], + [-148.3065, 60.8957], + [-148.2646, 60.7608], + [-147.9419, 60.4431], + [-148.402, 59.9914], + [-148.5618, 59.9571], + [-149.3411, 60.0224], + [-149.7386, 59.8909], + [-149.9165, 59.7176], + [-150.3262, 59.476], + [-150.6531, 59.4239], + [-151.0925, 59.2851], + [-151.7415, 59.1671], + [-151.9772, 59.2794], + [-151.894, 59.4128], + [-151.2733, 59.56], + [-151.7469, 59.6828], + [-151.8829, 59.7865], + [-151.706, 60.0417], + [-151.4654, 60.1877], + [-151.2828, 60.5371], + [-151.4173, 60.7182], + [-151.0715, 60.7853], + [-150.4525, 61.0342], + [-150.0438, 60.9168], + [-149.618, 60.9946], + [-150.0673, 61.1557], + [-150.6336, 61.2987], + [-151.0609, 61.1633], + [-151.1548, 61.0644], + [-151.7469, 60.9168], + [-151.8407, 60.7511], + [-152.3401, 60.4761], + [-152.416, 60.2978], + [-152.6984, 60.1701], + [-152.5903, 60.0922], + [-152.7379, 59.9084], + [-153.0212, 59.8889], + [-153.0553, 59.7102], + [-153.5732, 59.6422], + [-153.7247, 59.4661], + [-154.0764, 59.3812], + [-154.1984, 59.077], + [-153.7115, 59.0707], + [-153.3316, 58.9338], + [-153.4388, 58.7336], + [-153.6907, 58.6216], + [-153.8994, 58.6167], + [-154.0002, 58.3856], + [-154.3001, 58.3204], + [-154.1657, 58.2168], + [-154.4432, 58.1445], + [-154.5831, 58.025], + [-155.0231, 58.0256], + [-155.0687, 57.8974], + [-155.3347, 57.8265], + [-155.3944, 57.7257], + [-156.3389, 57.4154], + [-156.346, 57.1778], + [-156.5742, 56.9832], + [-156.7675, 57.0118], + [-157.1894, 56.7763], + [-157.4042, 56.7737], + [-157.9134, 56.6539], + [-158.068, 56.5119], + [-158.3551, 56.4711], + [-158.3183, 56.1747], + [-158.4836, 56.0324], + [-158.8594, 56.0129], + [-159.6252, 55.8127], + [-159.8304, 55.8527], + [-160.4775, 55.4946], + [-161.025, 55.4274], + [-161.2792, 55.3549], + [-161.5184, 55.3834], + [-161.3887, 55.5722], + [-161.6208, 55.613], + [-161.7164, 55.3933], + [-161.9566, 55.1257], + [-162.2748, 55.0196], + [-162.4165, 55.0979], + [-162.8776, 54.939], + [-163.0411, 55.0994], + [-162.6533, 55.3615], + [-162.227, 55.6979], + [-161.8263, 55.8799], + [-161.4577, 55.9539], + [-161.1242, 55.9612], + [-160.8204, 55.7392], + [-160.5207, 55.9352], + [-160.5681, 56.0076], + [-160.3687, 56.2768], + [-159.7457, 56.5793], + [-159.4564, 56.6293], + [-158.945, 56.8429], + [-158.6815, 56.7866], + [-158.6821, 57.022], + [-158.3124, 57.3149], + [-157.7097, 57.5687], + [-157.7088, 57.7299], + [-157.5027, 58.4637], + [-157.0619, 58.7262], + [-157.0845, 58.8867], + [-158.1537, 58.614], + [-158.4083, 58.7701], + [-158.7939, 58.8164], + [-158.8894, 58.7063], + [-158.77, 58.5185], + [-159.0513, 58.4247], + [-159.385, 58.7558], + [-159.7252, 58.9104], + [-159.9115, 58.7758], + [-160.2572, 58.9119], + [-160.3522, 59.0707], + [-161.3575, 58.7262], + [-161.5624, 58.602], + [-161.7174, 58.7548], + [-161.7995, 58.984], + [-161.9741, 59.1314], + [-161.9466, 59.3878], + [-161.7139, 59.5014], + [-162.3749, 60.1763], + [-162.5258, 59.9975], + [-163.0876, 59.8591], + [-163.6149, 59.8008], + [-164.0983, 59.8337], + [-164.2006, 60.0343], + [-164.4853, 60.1837], + [-164.989, 60.3414], + [-165.3143, 60.5809], + [-164.6691, 60.8258], + [-163.9556, 60.7799], + [-163.7944, 60.5842], + [-163.4643, 60.6766], + [-163.4243, 60.7647], + [-163.7659, 60.8895], + [-164.5644, 60.8547], + [-164.628, 60.9323], + [-165.129, 60.9235], + [-165.0587, 61.0629], + [-165.6217, 61.1435], + [-165.6237, 61.2805], + [-165.9213, 61.3994], + [-165.777, 61.5158], + [-166.1999, 61.5945], + [-165.9112, 61.7042], + [-166.1028, 61.8211], + [-165.6091, 61.8513], + [-165.7391, 61.9651], + [-165.7056, 62.1166], + [-165.133, 62.5157], + [-164.8132, 62.6202], + [-164.8832, 62.8415], + [-164.5791, 63.1406], + [-164.1454, 63.2622], + [-163.7673, 63.2248], + [-163.3505, 63.0308], + [-163.094, 63.0574], + [-162.5965, 63.2767], + [-162.2373, 63.5463], + [-162.087, 63.4523], + [-161.5734, 63.4554], + [-161.1863, 63.5056], + [-160.7916, 63.7465], + [-160.9735, 64.2505], + [-161.457, 64.5211], + [-161.035, 64.5078], + [-160.8032, 64.6434], + [-160.8847, 64.8101], + [-161.1826, 64.9395], + [-161.4222, 64.7744], + [-161.7164, 64.7949], + [-162.0809, 64.7211], + [-162.6072, 64.5068], + [-164.3419, 64.59], + [-165.0355, 64.4483], + [-166.1897, 64.5852], + [-166.4835, 64.7296], + [-166.3902, 64.8985], + [-166.7495, 65.062], + [-166.2516, 65.2581], + [-166.3101, 65.3122], + [-167.3986, 65.4011], + [-168.081, 65.5915], + [-167.3459, 65.8986], + [-167.0599, 65.8776], + [-166.725, 66.0613], + [-165.89, 66.241], + [-165.3057, 66.437], + [-164.9506, 66.4602], + [-164.7181, 66.5563], + [-163.9864, 66.6123], + [-163.7591, 66.5048], + [-163.8956, 66.3993], + [-163.8905, 66.1676], + [-163.6805, 66.0786], + [-162.6547, 66.0385], + [-161.9156, 66.0424], + [-161.5712, 66.258], + [-161.1143, 66.2069], + [-161.1357, 66.3432], + [-161.7446, 66.4055], + [-162.6387, 66.8996], + [-162.3271, 66.9604], + [-162.015, 66.7724], + [-162.0808, 66.6662], + [-161.6072, 66.4539], + [-161.061, 66.4862], + [-160.7848, 66.3745], + [-160.2491, 66.4023], + [-160.2192, 66.532], + [-160.881, 66.6724], + [-161.3137, 66.5353], + [-161.8683, 66.7063], + [-161.7307, 66.9536], + [-161.8352, 67.055], + [-162.4355, 66.991], + [-163.6883, 67.1032], + [-163.81, 67.3352], + [-164.1515, 67.6196], + [-165.4372, 68.0602], + [-165.9281, 68.1369], + [-166.5482, 68.3588], + [-166.24, 68.5643], + [-166.2368, 68.8748], + [-165.6647, 68.8616], + [-164.3464, 68.9294], + [-163.6225, 69.1192], + [-163.1558, 69.3594], + [-162.9498, 69.7905], + [-162.5378, 69.9567], + [-162.015, 70.2773], + [-161.3422, 70.2588], + [-160.8607, 70.3473], + [-159.9479, 70.6364], + [-159.6682, 70.805], + [-159.3568, 70.7602], + [-158.043, 70.8369], + [-157.2312, 71.0714], + [-156.8172, 71.3063], + [-155.9993, 71.1945], + [-155.5937, 71.0697], + [-156.0872, 70.927], + [-155.5424, 70.8664], + [-155.1093, 71.1504], + [-154.5971, 71.0005], + [-154.5388, 70.8262], + [-154.131, 70.7913], + [-153.8935, 70.8984], + [-153.3024, 70.9287], + [-152.5458, 70.8875], + [-152.2192, 70.818], + [-152.5141, 70.6889], + [-152.4562, 70.5559], + [-151.9797, 70.4487], + [-151.1777, 70.4487], + [-150.5131, 70.5039], + [-150.1191, 70.4429], + [-149.8897, 70.5128], + [-149.3445, 70.5101], + [-148.3814, 70.3125], + [-147.1237, 70.1675], + [-145.8802, 70.175], + [-145.5997, 70.0808], + [-144.9416, 69.978], + [-144.3861, 70.044], + [-143.2357, 70.1182], + [-142.6008, 70.0131], + [-142.2709, 69.856], + [-141.6533, 69.7622], + [-141.4129, 69.6504], + [-141.0056, 69.6509] + ] + ] + ] + }, + "properties": { + "NAME": "United States", + "NAME_LONG": "United States", + "ADM0_A3": "USA", + "ISO_A2": "US", + "ISO_A3": "USA", + "WB_A2": "US", + "WB_A3": "USA" + }, + "id": 238 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [71.0086, 40.1578], + [71.2211, 39.9317], + [71.1137, 39.8745], + [70.953, 40.0792], + [71.0086, 40.1578] + ] + ], + [ + [ + [70.9478, 42.2481], + [71.2179, 42.2064], + [70.8251, 41.9363], + [70.5501, 41.8241], + [70.4537, 41.7121], + [70.1693, 41.5783], + [70.4772, 41.4047], + [70.6338, 41.4675], + [70.7563, 41.2696], + [70.9142, 41.193], + [71.2761, 41.1132], + [71.4215, 41.1621], + [71.4126, 41.3347], + [71.5855, 41.3235], + [71.6841, 41.5341], + [71.863, 41.3122], + [71.8716, 41.1945], + [72.1699, 41.1687], + [72.1856, 41.0411], + [72.4767, 41.0118], + [72.6195, 40.8801], + [73.0034, 40.8702], + [73.118, 40.7829], + [72.7839, 40.6697], + [72.5858, 40.5087], + [72.4479, 40.5605], + [72.3705, 40.3856], + [72.0993, 40.4264], + [71.6731, 40.1479], + [71.3651, 40.2941], + [70.959, 40.2384], + [70.5818, 40.2217], + [70.3538, 40.4561], + [70.7562, 40.6951], + [70.6969, 40.8162], + [70.4457, 41.0259], + [70.2804, 40.8777], + [69.6601, 40.6387], + [69.4358, 40.8027], + [69.198, 40.5458], + [69.3063, 40.365], + [69.2853, 40.2186], + [69.0192, 40.2321], + [68.602, 40.1754], + [68.8774, 39.9006], + [68.6158, 39.8281], + [68.5175, 39.5484], + [68.3376, 39.5279], + [67.7645, 39.6226], + [67.4365, 39.4857], + [67.3782, 39.1995], + [67.6198, 39.1513], + [67.6905, 38.9896], + [68.0856, 38.9938], + [68.1726, 38.8453], + [68.0376, 38.6916], + [68.0552, 38.5363], + [68.1837, 38.3355], + [68.3607, 38.1741], + [68.2487, 37.949], + [67.8292, 37.5279], + [67.7805, 37.1889], + [67.4824, 37.2774], + [67.2368, 37.1924], + [67.0059, 37.3844], + [66.5196, 37.3642], + [66.5188, 37.7827], + [66.6458, 37.9459], + [66.5542, 38.0269], + [65.8767, 38.273], + [65.6041, 38.2374], + [65.2053, 38.4496], + [64.9777, 38.6123], + [64.6349, 38.7441], + [64.3373, 38.971], + [64.1206, 38.9617], + [63.7093, 39.1909], + [63.4776, 39.4029], + [62.5932, 39.8902], + [62.4528, 40.0092], + [62.3533, 40.4304], + [62.1918, 40.499], + [62.0448, 40.715], + [61.9708, 41.0154], + [61.8779, 41.125], + [61.4701, 41.2972], + [61.2814, 41.1573], + [60.8603, 41.253], + [60.4145, 41.2353], + [60.0942, 41.3895], + [60.1556, 41.6033], + [60.0492, 41.7535], + [60.2411, 41.8081], + [59.9837, 41.949], + [60.0282, 42.1995], + [59.8664, 42.3042], + [59.4782, 42.2856], + [59.2452, 42.3653], + [59.122, 42.538], + [58.8944, 42.5478], + [58.6123, 42.7809], + [58.4932, 42.6455], + [58.2827, 42.6889], + [57.9977, 42.4934], + [57.8505, 42.1914], + [57.3823, 42.1636], + [56.9501, 41.8661], + [57.0196, 41.4659], + [57.1538, 41.3724], + [57.0102, 41.2541], + [56.7935, 41.2883], + [55.9784, 41.3217], + [55.9774, 42.6985], + [55.9768, 43.6164], + [55.9784, 44.9962], + [57.4783, 45.3369], + [58.5314, 45.5587], + [58.5822, 45.5487], + [59.6758, 45.0291], + [61.0363, 44.3828], + [61.1617, 44.1681], + [61.9857, 43.4933], + [62.0261, 43.4806], + [63.208, 43.6275], + [64.4267, 43.547], + [64.855, 43.7129], + [64.9565, 43.6974], + [65.2714, 43.417], + [65.5169, 43.2972], + [65.7952, 42.8772], + [66.1013, 42.9903], + [66.0532, 42.4409], + [66.0137, 42.403], + [66.0172, 41.9976], + [66.5041, 41.9935], + [66.5389, 41.7408], + [66.6882, 41.1992], + [66.8153, 41.1419], + [67.9374, 41.2004], + [68.1313, 41.0296], + [68.0675, 40.788], + [68.4617, 40.5847], + [68.6274, 40.6671], + [68.5497, 40.835], + [68.7463, 41.0638], + [69.0392, 41.2203], + [69.0444, 41.3792], + [69.6246, 41.6683], + [69.8709, 41.6996], + [70.1364, 41.8481], + [70.3151, 42.0346], + [70.4554, 42.0937], + [70.6102, 42.0274], + [70.7343, 42.1973], + [70.9478, 42.2481] + ] + ] + ] + }, + "properties": { + "NAME": "Uzbekistan", + "NAME_LONG": "Uzbekistan", + "ADM0_A3": "UZB", + "ISO_A2": "UZ", + "ISO_A3": "UZB", + "WB_A2": "UZ", + "WB_A3": "UZB" + }, + "id": 240 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [-60.7281, 8.8785], + [-60.686, 8.789], + [-60.8466, 8.6377], + [-61.0939, 8.6337], + [-61.1264, 8.7565], + [-60.8617, 8.8702], + [-60.7281, 8.8785] + ] + ], + [ + [ + [-63.7934, 11.0011], + [-63.8981, 10.885], + [-64.0426, 10.8685], + [-63.9858, 11.1093], + [-63.8529, 11.1448], + [-63.7934, 11.0011] + ] + ], + [ + [ + [-60.021, 8.558], + [-59.8156, 8.2878], + [-59.9933, 8.1685], + [-60.0195, 8.0603], + [-60.2311, 7.9641], + [-60.3748, 7.8236], + [-60.5033, 7.8209], + [-60.6013, 7.6339], + [-60.7306, 7.5254], + [-60.6018, 7.3301], + [-60.6431, 7.2209], + [-60.2923, 7.1053], + [-60.421, 6.9422], + [-60.9338, 6.7317], + [-61.1298, 6.7158], + [-61.2048, 6.5958], + [-61.139, 6.4248], + [-61.1216, 6.1867], + [-61.2694, 6.1072], + [-61.3796, 5.9053], + [-60.7399, 5.2021], + [-60.6643, 5.1703], + [-60.6126, 4.9006], + [-60.7637, 4.7551], + [-60.9034, 4.6996], + [-61.012, 4.5183], + [-61.2973, 4.5237], + [-61.4582, 4.4191], + [-61.5421, 4.263], + [-61.7189, 4.2547], + [-61.9315, 4.1464], + [-62.1927, 4.0947], + [-62.3842, 4.1735], + [-62.561, 4.0378], + [-62.7662, 4.0207], + [-62.7496, 3.6604], + [-62.8894, 3.5608], + [-62.9971, 3.5991], + [-63.286, 3.9208], + [-63.4254, 3.9684], + [-63.5107, 3.8545], + [-63.6228, 3.9352], + [-63.8751, 3.9498], + [-64.0638, 3.9116], + [-64.1251, 4.0885], + [-64.365, 4.1519], + [-64.5897, 4.1189], + [-64.6629, 3.997], + [-64.5314, 3.8535], + [-64.3242, 3.7241], + [-64.203, 3.5947], + [-64.2456, 3.4189], + [-64.2229, 3.124], + [-63.9979, 2.706], + [-64.048, 2.4713], + [-63.8313, 2.4286], + [-63.3848, 2.4206], + [-63.4118, 2.1494], + [-63.6175, 2.1012], + [-63.7626, 1.9857], + [-63.995, 1.958], + [-64.0536, 1.8937], + [-64.0809, 1.6474], + [-64.3015, 1.4467], + [-64.409, 1.5075], + [-64.7309, 1.2476], + [-64.8393, 1.2708], + [-65.0225, 1.14], + [-65.1368, 1.1269], + [-65.203, 0.9238], + [-65.3272, 0.9103], + [-65.4512, 0.6901], + [-65.5873, 0.7391], + [-65.517, 0.8628], + [-65.5829, 0.9777], + [-65.7454, 0.9742], + [-65.9741, 0.807], + [-66.1563, 0.733], + [-66.3462, 0.7594], + [-66.8751, 1.2225], + [-66.8825, 1.326], + [-67.0668, 1.8941], + [-67.2177, 2.2845], + [-67.1976, 2.402], + [-67.3254, 2.4746], + [-67.6266, 2.8134], + [-67.8386, 2.8861], + [-67.4522, 3.2437], + [-67.3046, 3.4257], + [-67.4039, 3.5045], + [-67.4714, 3.6801], + [-67.6318, 3.7619], + [-67.8049, 4.2685], + [-67.8537, 4.5758], + [-67.7931, 5.0633], + [-67.8437, 5.2972], + [-67.647, 5.4834], + [-67.6012, 5.8206], + [-67.4286, 6.0385], + [-67.574, 6.2662], + [-67.8391, 6.3075], + [-67.9241, 6.2346], + [-68.3042, 6.177], + [-68.449, 6.195], + [-68.6353, 6.1359], + [-69.0611, 6.2178], + [-69.2461, 6.0807], + [-69.4436, 6.1222], + [-70.0966, 6.9444], + [-70.3191, 6.9383], + [-70.7033, 7.0999], + [-71.184, 6.9626], + [-71.2835, 7.0188], + [-71.6543, 7.0534], + [-71.8326, 6.9864], + [-72.081, 7.0666], + [-72.2062, 7.3819], + [-72.4513, 7.4402], + [-72.4878, 7.9492], + [-72.3358, 8.1039], + [-72.3868, 8.3386], + [-72.6754, 8.6515], + [-72.7831, 9.0599], + [-72.9364, 9.0992], + [-73.0097, 9.2954], + [-73.1762, 9.1909], + [-73.3778, 9.1647], + [-72.9776, 9.8381], + [-72.9877, 9.9994], + [-72.9076, 10.4525], + [-72.7061, 10.8113], + [-72.4815, 11.1325], + [-72.2566, 11.1678], + [-71.9711, 11.6619], + [-71.4495, 11.7955], + [-71.3275, 11.85], + [-71.3782, 11.7584], + [-71.9605, 11.5913], + [-71.9393, 11.3808], + [-71.7698, 11.1064], + [-71.6936, 10.8371], + [-71.5763, 10.7211], + [-71.6295, 10.454], + [-71.779, 10.3417], + [-71.8977, 10.1392], + [-71.9825, 10.0883], + [-72.1244, 9.8261], + [-71.9989, 9.6547], + [-71.9675, 9.4982], + [-71.7304, 9.3554], + [-71.7589, 9.1201], + [-71.5148, 9.049], + [-71.2735, 9.1351], + [-71.0561, 9.3636], + [-71.0902, 9.5554], + [-71.0419, 9.7609], + [-71.2069, 9.9806], + [-71.2678, 10.1519], + [-71.3639, 10.22], + [-71.5265, 10.5447], + [-71.5314, 10.7527], + [-71.4459, 10.7962], + [-71.4583, 10.9749], + [-71.2939, 10.9866], + [-70.8697, 11.1963], + [-70.5139, 11.2532], + [-70.18, 11.3764], + [-70.0505, 11.5211], + [-69.8141, 11.4256], + [-69.7471, 11.4808], + [-69.8495, 11.6937], + [-70.1865, 11.6027], + [-70.2968, 11.8719], + [-70.2058, 12.112], + [-70.0177, 12.1989], + [-69.8353, 12.0152], + [-69.8086, 11.8036], + [-69.7003, 11.5402], + [-69.6236, 11.4678], + [-69.2704, 11.536], + [-69.0619, 11.4535], + [-68.8632, 11.4529], + [-68.4176, 11.1791], + [-68.2627, 10.9031], + [-68.3315, 10.8068], + [-68.2423, 10.5784], + [-68.1295, 10.4877], + [-67.9412, 10.4665], + [-67.5602, 10.5283], + [-67.17, 10.556], + [-67.0124, 10.6112], + [-66.5416, 10.6327], + [-66.1246, 10.602], + [-66.1183, 10.498], + [-65.8685, 10.3096], + [-65.5804, 10.1855], + [-65.1695, 10.0973], + [-64.7481, 10.1069], + [-64.6314, 10.2481], + [-64.4905, 10.2407], + [-64.3392, 10.3907], + [-64.1435, 10.4801], + [-63.8204, 10.4476], + [-63.8468, 10.556], + [-63.7569, 10.6656], + [-63.5316, 10.631], + [-63.1713, 10.7316], + [-62.9043, 10.7022], + [-62.7196, 10.76], + [-62.1542, 10.6863], + [-62.335, 10.5302], + [-62.6623, 10.567], + [-62.857, 10.5316], + [-62.8311, 10.4068], + [-62.5176, 10.1841], + [-62.4089, 9.924], + [-62.1965, 10.0197], + [-62.0254, 9.9574], + [-61.8768, 9.8237], + [-61.5925, 9.782], + [-61.4392, 9.8184], + [-61.1301, 9.5725], + [-60.8623, 9.4561], + [-60.7838, 9.3386], + [-60.984, 9.1674], + [-61.0997, 8.9604], + [-61.2095, 8.609], + [-61.5231, 8.5966], + [-61.284, 8.3972], + [-61.181, 8.4934], + [-60.9848, 8.5705], + [-60.6925, 8.6047], + [-60.4616, 8.5344], + [-60.3719, 8.6354], + [-60.021, 8.558] + ] + ] + ] + }, + "properties": { + "NAME": "Venezuela", + "NAME_LONG": "Venezuela", + "ADM0_A3": "VEN", + "ISO_A2": "VE", + "ISO_A3": "VEN", + "WB_A2": "VE", + "WB_A3": "VEN" + }, + "id": 243 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [104.0047, 10.451], + [104.0855, 10.2481], + [103.8574, 10.3209], + [104.0047, 10.451] + ] + ], + [ + [ + [107.9912, 21.4857], + [107.8819, 21.5341], + [107.5992, 21.2988], + [107.3916, 21.2804], + [107.3338, 21.0058], + [107.1609, 20.9324], + [106.7551, 20.9385], + [106.7041, 20.6911], + [106.5677, 20.5249], + [106.5696, 20.232], + [106.395, 20.2046], + [106.2593, 20.0613], + [105.9556, 19.9255], + [105.9234, 19.7668], + [105.8106, 19.5996], + [105.7371, 19.1085], + [105.6438, 19.0654], + [105.6483, 18.8927], + [105.7835, 18.7473], + [105.8259, 18.5939], + [106.0982, 18.29], + [106.4035, 18.1062], + [106.5248, 17.9496], + [106.4701, 17.7482], + [106.6346, 17.4704], + [106.7639, 17.3355], + [107.1118, 17.0883], + [107.2165, 16.9079], + [107.7588, 16.4631], + [107.8123, 16.3132], + [107.9452, 16.3568], + [108.1512, 16.217], + [108.3059, 15.9552], + [108.7039, 15.4451], + [108.8828, 15.3362], + [108.9426, 14.9796], + [109.0808, 14.7295], + [109.0745, 14.5786], + [109.1814, 14.3048], + [109.304, 13.7593], + [109.2322, 13.3931], + [109.3088, 13.3415], + [109.3074, 13.133], + [109.465, 12.9133], + [109.2049, 12.6464], + [109.1987, 11.9481], + [109.1258, 11.8636], + [109.2429, 11.7357], + [109.136, 11.5702], + [109.0278, 11.5175], + [109.0181, 11.3559], + [108.8213, 11.3237], + [108.7293, 11.1815], + [108.5774, 11.1791], + [108.345, 10.9538], + [108.1065, 10.9182], + [107.9983, 10.6994], + [107.8823, 10.717], + [107.326, 10.4425], + [106.9636, 10.5014], + [106.8816, 10.6522], + [106.7334, 10.5224], + [106.7881, 10.3931], + [106.6687, 10.0324], + [106.5755, 9.6486], + [106.3982, 9.5421], + [106.197, 9.5412], + [106.1934, 9.3693], + [105.5387, 9.1293], + [105.334, 8.8397], + [105.1015, 8.6343], + [104.8562, 8.5656], + [104.8528, 8.7292], + [104.7746, 8.8179], + [104.8356, 9.5562], + [104.8928, 9.8511], + [105.0877, 9.9967], + [104.9011, 10.0973], + [104.8049, 10.2071], + [104.5889, 10.2609], + [104.4513, 10.4197], + [104.554, 10.5183], + [104.8544, 10.5313], + [105.0662, 10.7464], + [105.0291, 10.9141], + [105.3275, 10.8483], + [105.4739, 10.9409], + [105.7529, 11.0156], + [105.861, 10.8393], + [106.155, 10.7848], + [106.0631, 11.0933], + [105.8434, 11.3041], + [105.8532, 11.5469], + [106.0154, 11.7705], + [106.2873, 11.6746], + [106.3989, 11.7463], + [106.394, 11.9698], + [106.7016, 11.9708], + [106.7492, 12.0523], + [106.9777, 12.0972], + [107.1525, 12.277], + [107.5143, 12.3438], + [107.5651, 12.6064], + [107.4604, 13.0216], + [107.607, 13.3698], + [107.5969, 13.5351], + [107.4432, 13.7835], + [107.4307, 13.9845], + [107.3199, 14.1198], + [107.3869, 14.4219], + [107.5053, 14.541], + [107.5204, 14.7046], + [107.578, 15.0472], + [107.6576, 15.2824], + [107.5732, 15.4112], + [107.3693, 15.4961], + [107.1603, 15.7587], + [107.1752, 15.8485], + [107.3906, 15.9358], + [107.1169, 16.2546], + [106.9673, 16.2999], + [106.8599, 16.4118], + [106.6552, 16.4708], + [106.5351, 16.6835], + [106.5334, 16.9727], + [106.4203, 16.9887], + [106.26, 17.2892], + [106.1854, 17.2574], + [105.846, 17.598], + [105.7353, 17.664], + [105.476, 18.1273], + [105.3683, 18.15], + [105.1567, 18.3198], + [105.08, 18.4544], + [105.1695, 18.6306], + [105.1127, 18.6983], + [104.722, 18.792], + [104.4809, 18.9777], + [104.1477, 19.1829], + [103.8567, 19.3172], + [104.09, 19.4837], + [104.0887, 19.6519], + [104.229, 19.706], + [104.5058, 19.6028], + [104.805, 19.7909], + [104.7807, 19.9081], + [104.9532, 20.0093], + [104.908, 20.1753], + [104.6571, 20.2127], + [104.6809, 20.341], + [104.5426, 20.5357], + [104.6007, 20.6605], + [104.3891, 20.771], + [104.2953, 20.8798], + [104.0567, 20.9588], + [103.7756, 20.8349], + [103.6654, 20.6583], + [103.4266, 20.8207], + [103.3638, 20.7876], + [103.1153, 20.8684], + [102.8879, 21.2269], + [102.895, 21.4953], + [102.9741, 21.5753], + [102.9478, 21.7371], + [102.7867, 21.7399], + [102.6507, 21.6578], + [102.591, 21.9014], + [102.2262, 22.2284], + [102.1187, 22.3975], + [102.218, 22.4107], + [102.4427, 22.7652], + [102.8452, 22.5852], + [102.9891, 22.4376], + [103.142, 22.5378], + [103.3096, 22.7879], + [103.4731, 22.5916], + [103.6469, 22.799], + [103.8668, 22.5754], + [103.9854, 22.5272], + [104.0238, 22.7192], + [104.2133, 22.825], + [104.3402, 22.6864], + [104.5535, 22.836], + [104.7282, 22.8391], + [104.827, 22.9543], + [104.7979, 23.0856], + [105.0611, 23.2325], + [105.3323, 23.318], + [105.8539, 22.9046], + [105.9992, 22.9754], + [106.2024, 22.947], + [106.3157, 22.8538], + [106.4878, 22.9254], + [106.6675, 22.8675], + [106.7355, 22.6954], + [106.5688, 22.5746], + [106.5269, 22.4278], + [106.6629, 22.2233], + [106.7224, 22.007], + [107.0211, 21.8923], + [107.1724, 21.7151], + [107.3482, 21.5994], + [107.6132, 21.6056], + [107.7448, 21.6575], + [107.9912, 21.4857] + ] + ] + ] + }, + "properties": { + "NAME": "Vietnam", + "NAME_LONG": "Vietnam", + "ADM0_A3": "VNM", + "ISO_A2": "VN", + "ISO_A3": "VNM", + "WB_A2": "VN", + "WB_A3": "VNM" + }, + "id": 246 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [169.1868, -18.735], + [169.3324, -18.9049], + [169.2549, -18.9848], + [168.9873, -18.8766], + [168.9888, -18.6906], + [169.1868, -18.735] + ] + ], + [ + [ + [168.3317, -17.5492], + [168.4534, -17.5463], + [168.5855, -17.7013], + [168.396, -17.8235], + [168.179, -17.6562], + [168.3317, -17.5492] + ] + ], + [ + [ + [168.1851, -16.5754], + [168.3333, -16.7867], + [168.1794, -16.8063], + [168.1204, -16.7092], + [168.1851, -16.5754] + ] + ], + [ + [ + [168.3223, -16.3183], + [168.14, -16.3619], + [167.9209, -16.2589], + [168.1716, -16.0803], + [168.3223, -16.3183] + ] + ], + [ + [ + [167.4245, -16.1116], + [167.7861, -16.3586], + [167.7996, -16.487], + [167.6219, -16.4942], + [167.4588, -16.568], + [167.3845, -16.3683], + [167.3771, -16.2006], + [167.1475, -16.0829], + [167.1853, -15.8907], + [167.3361, -15.9089], + [167.4245, -16.1116] + ] + ], + [ + [ + [166.8132, -15.1604], + [166.9198, -15.1559], + [167.0568, -15.002], + [167.1917, -15.3056], + [167.2334, -15.5236], + [166.9463, -15.5768], + [166.7931, -15.6563], + [166.6161, -15.385], + [166.6501, -15.2647], + [166.5226, -14.8321], + [166.6099, -14.6347], + [166.7373, -14.8295], + [166.8132, -15.1604] + ] + ] + ] + }, + "properties": { + "NAME": "Vanuatu", + "NAME_LONG": "Vanuatu", + "ADM0_A3": "VUT", + "ISO_A2": "VU", + "ISO_A3": "VUT", + "WB_A2": "VU", + "WB_A3": "VUT" + }, + "id": 247 + }, + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [53.5738, 12.7038], + [53.7629, 12.6197], + [54.1194, 12.7011], + [54.4707, 12.5436], + [54.1405, 12.3513], + [53.7764, 12.305], + [53.5721, 12.3346], + [53.3342, 12.5155], + [53.396, 12.6565], + [53.5738, 12.7038] + ] + ], + [ + [ + [53.0903, 16.6424], + [52.5977, 16.4767], + [52.2927, 16.2638], + [52.1555, 15.9839], + [52.2244, 15.8467], + [52.2284, 15.6161], + [52.0471, 15.57], + [51.6799, 15.4035], + [51.3678, 15.2297], + [51.0698, 15.1496], + [50.554, 15.0486], + [50.1795, 14.8433], + [49.9421, 14.8388], + [49.5781, 14.7373], + [49.078, 14.5061], + [49.0037, 14.3248], + [48.6815, 14.0436], + [48.3382, 14.0163], + [48.1887, 13.9691], + [48.0169, 14.0573], + [47.6672, 13.8872], + [47.3982, 13.6549], + [46.9119, 13.5333], + [46.7007, 13.4303], + [46.2345, 13.4363], + [45.6658, 13.342], + [45.403, 13.0701], + [45.1935, 13.0127], + [44.8683, 12.7321], + [44.6936, 12.8035], + [44.5428, 12.7973], + [44.433, 12.6936], + [44.1912, 12.6191], + [43.9094, 12.6453], + [43.5877, 12.7514], + [43.4732, 12.8466], + [43.2489, 13.2127], + [43.2809, 13.7221], + [43.2332, 13.8764], + [43.0955, 14.084], + [42.9935, 14.4483], + [43.0287, 14.538], + [42.9422, 14.7889], + [42.9373, 14.9485], + [42.8031, 15.2452], + [42.7743, 15.491], + [42.6992, 15.7174], + [42.82, 15.8749], + [42.8433, 16.0522], + [42.7895, 16.371], + [43.0363, 16.5363], + [43.0849, 16.6726], + [43.2086, 16.7734], + [43.1087, 16.927], + [43.165, 17.3259], + [43.391, 17.512], + [43.5034, 17.5135], + [43.7506, 17.3457], + [44.1045, 17.352], + [44.4041, 17.4187], + [45.1654, 17.4284], + [45.4304, 17.312], + [46.3226, 17.2241], + [46.7101, 17.2754], + [46.9703, 16.9568], + [47.1909, 16.9589], + [47.4276, 17.0918], + [47.589, 17.4633], + [48.1619, 18.1489], + [49.0358, 18.5797], + [49.1288, 18.6121], + [49.7384, 18.6942], + [51.0198, 18.8666], + [51.9786, 18.9956], + [52.4845, 17.8542], + [52.7301, 17.2999], + [52.8016, 17.2674], + [53.0903, 16.6424] + ] + ] + ] + }, + "properties": { + "NAME": "Yemen", + "NAME_LONG": "Yemen", + "ADM0_A3": "YEM", + "ISO_A2": "YE", + "ISO_A3": "YEM", + "WB_A2": "RY", + "WB_A3": "YEM" + }, + "id": 251 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [31.2889, -22.3973], + [31.5363, -23.157], + [31.5215, -23.4156], + [31.6423, -23.5879], + [31.7412, -23.8368], + [31.8558, -23.9465], + [31.8695, -24.1638], + [31.9866, -24.4231], + [31.9916, -25.6502], + [31.9119, -25.7853], + [31.9492, -25.9581], + [31.8346, -25.9821], + [31.4269, -25.7436], + [31.3093, -25.7574], + [31.1198, -25.91], + [30.9699, -26.2091], + [30.8046, -26.3975], + [30.7857, -26.7169], + [30.8802, -26.7722], + [30.9761, -27.035], + [31.157, -27.2056], + [31.5265, -27.3109], + [31.9683, -27.3163], + [31.9421, -27.1007], + [31.9922, -26.8383], + [32.1139, -26.84], + [32.3522, -26.8603], + [32.8931, -26.8461], + [32.8394, -27.1236], + [32.6765, -27.5207], + [32.544, -28.1901], + [32.422, -28.3819], + [32.3794, -28.5528], + [32.0121, -28.8665], + [31.7521, -28.9662], + [31.4885, -29.2096], + [31.1869, -29.5603], + [31.0158, -29.8681], + [30.3923, -30.8471], + [30.0099, -31.2923], + [29.7845, -31.4347], + [29.3919, -31.7355], + [29.1476, -31.9698], + [28.8704, -32.287], + [28.5486, -32.5624], + [28.2108, -32.7747], + [27.8971, -33.04], + [27.7327, -33.1088], + [27.3802, -33.3574], + [26.5151, -33.7553], + [26.2866, -33.7664], + [25.9553, -33.7109], + [25.679, -33.7952], + [25.5982, -34.0485], + [25.1011, -33.9605], + [24.9529, -33.9851], + [24.8411, -34.1325], + [24.584, -34.1783], + [24.1631, -34.0548], + [23.6355, -33.9797], + [23.4276, -34.0124], + [23.4084, -34.11], + [22.936, -34.0827], + [22.6299, -33.9958], + [22.2752, -34.0577], + [22.1141, -34.1939], + [21.9217, -34.2467], + [21.8945, -34.336], + [21.7026, -34.3906], + [21.5159, -34.3522], + [21.2625, -34.4216], + [20.9613, -34.3561], + [20.5244, -34.4543], + [20.2117, -34.6721], + [19.9535, -34.8087], + [19.8584, -34.7497], + [19.6424, -34.7721], + [19.3987, -34.6018], + [19.3044, -34.4179], + [19.0884, -34.3427], + [18.8083, -34.3647], + [18.8582, -34.1503], + [18.555, -34.0738], + [18.4417, -34.1442], + [18.3148, -34.0291], + [18.4754, -33.8998], + [18.4318, -33.6967], + [18.3074, -33.4793], + [18.1462, -33.3559], + [18.0752, -33.2022], + [17.9128, -33.0475], + [17.8524, -32.8297], + [17.9675, -32.7035], + [18.0806, -32.7813], + [18.2731, -32.6476], + [18.3494, -32.2603], + [18.2769, -31.8927], + [18.1729, -31.6633], + [17.8937, -31.3448], + [17.5617, -30.8381], + [17.282, -30.3478], + [17.1037, -29.8849], + [17.0563, -29.6764], + [16.8088, -29.0783], + [16.6004, -28.8575], + [16.4871, -28.5729], + [16.7693, -28.4426], + [16.7644, -28.2832], + [16.893, -28.0826], + [17.0978, -28.0312], + [17.192, -28.2088], + [17.3457, -28.2276], + [17.4021, -28.3678], + [17.3282, -28.4561], + [17.4036, -28.7043], + [17.9133, -28.7813], + [18.1665, -28.9019], + [18.3976, -28.8989], + [18.7457, -28.8399], + [18.9545, -28.8667], + [19.0817, -28.9594], + [19.2889, -28.871], + [19.2486, -28.7716], + [19.4829, -28.6782], + [19.5688, -28.5312], + [19.9817, -28.4223], + [19.9827, -26.8955], + [19.9823, -25.9424], + [19.9814, -24.7525], + [20.1189, -24.8874], + [20.3649, -25.0332], + [20.7941, -25.8939], + [20.8414, -26.1313], + [20.6225, -26.4275], + [20.6089, -26.6861], + [20.6935, -26.889], + [20.8519, -26.8065], + [21.1225, -26.8653], + [21.3808, -26.824], + [21.6872, -26.8552], + [21.7675, -26.7043], + [22.0577, -26.6176], + [22.2573, -26.3409], + [22.5451, -26.2074], + [22.7194, -25.9843], + [22.7464, -25.7553], + [22.8446, -25.4811], + [23.007, -25.3108], + [23.2657, -25.264], + [23.4593, -25.2822], + [23.9248, -25.6292], + [24.2277, -25.649], + [24.2967, -25.7235], + [24.7986, -25.8292], + [25.0517, -25.7379], + [25.3865, -25.7435], + [25.5873, -25.6195], + [25.8767, -24.886], + [25.8684, -24.7482], + [26.2788, -24.6285], + [26.4044, -24.6328], + [26.5312, -24.4587], + [26.8497, -24.2481], + [27.0042, -23.6458], + [27.35, -23.3915], + [27.5489, -23.3608], + [27.608, -23.2167], + [27.8955, -23.0795], + [27.9375, -22.9638], + [28.3386, -22.5846], + [28.6239, -22.5628], + [28.9125, -22.4537], + [29.0478, -22.2203], + [29.3501, -22.1867], + [29.7589, -22.1309], + [30.3008, -22.337], + [30.6324, -22.3307], + [30.8379, -22.2823], + [31.2889, -22.3973] + ], + [ + [28.9808, -28.909], + [28.6995, -28.6885], + [28.6665, -28.5972], + [28.4034, -28.6189], + [28.155, -28.7023], + [28.0187, -28.8568], + [27.7474, -28.9086], + [27.665, -29.0657], + [27.4533, -29.2916], + [27.4176, -29.3966], + [27.2418, -29.549], + [27.0149, -29.6256], + [27.1988, -29.9785], + [27.2659, -30.0333], + [27.3662, -30.311], + [27.4594, -30.3166], + [27.7436, -30.6003], + [28.0547, -30.6497], + [28.2182, -30.3874], + [28.216, -30.2674], + [28.3641, -30.1593], + [28.86, -30.0664], + [29.1442, -29.9197], + [29.1613, -29.6669], + [29.2786, -29.6136], + [29.3038, -29.4668], + [29.4359, -29.3424], + [29.3118, -29.0898], + [28.9808, -28.909] + ] + ] + }, + "properties": { + "NAME": "South Africa", + "NAME_LONG": "South Africa", + "ADM0_A3": "ZAF", + "ISO_A2": "ZA", + "ISO_A3": "ZAF", + "WB_A2": "ZA", + "WB_A3": "ZAF" + }, + "id": 252 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [32.9209, -9.4079], + [32.9747, -9.6013], + [33.2167, -9.7271], + [33.3656, -9.8988], + [33.31, -10.0127], + [33.5333, -10.2312], + [33.5293, -10.3186], + [33.6742, -10.577], + [33.501, -10.7692], + [33.3191, -10.8181], + [33.3037, -11.0346], + [33.3909, -11.1648], + [33.2303, -11.4166], + [33.3026, -11.6097], + [33.3127, -11.8987], + [33.2549, -12.0726], + [33.3301, -12.2983], + [33.5181, -12.3718], + [33.3732, -12.5185], + [33.0248, -12.6127], + [32.9411, -12.7699], + [33.005, -12.893], + [32.9951, -13.1909], + [32.8743, -13.4432], + [32.7228, -13.5734], + [32.8594, -13.8081], + [33.0494, -13.9966], + [33.2027, -14.0139], + [32.2274, -14.339], + [31.6584, -14.5196], + [31.4109, -14.6336], + [30.8158, -14.7682], + [30.2145, -14.9815], + [30.2879, -15.2789], + [30.3692, -15.3747], + [30.3963, -15.636], + [30.0107, -15.6462], + [29.8373, -15.6148], + [29.407, -15.7142], + [29.1863, -15.8128], + [28.871, -16.0872], + [28.8225, -16.4708], + [28.6433, -16.5688], + [28.2801, -16.7065], + [28.1139, -16.8276], + [27.7773, -17.0012], + [27.5773, -17.3631], + [27.1571, -17.7693], + [27.0485, -17.9443], + [26.7119, -18.0658], + [26.203, -17.8872], + [25.9785, -17.999], + [25.6814, -17.8115], + [25.4956, -17.8549], + [25.2598, -17.7941], + [24.958, -17.5517], + [24.6844, -17.4924], + [24.2205, -17.4795], + [23.3817, -17.6411], + [23.2908, -17.5354], + [23.073, -17.4051], + [22.9986, -17.2938], + [22.7559, -17.1549], + [22.7105, -17.0554], + [22.5229, -16.9147], + [22.3337, -16.6737], + [22.1517, -16.5977], + [21.9838, -16.1659], + [21.9813, -15.1112], + [21.9808, -14.3576], + [21.9799, -13.0015], + [23.2227, -13.0015], + [24.0006, -13.0015], + [23.8657, -12.7897], + [23.9287, -12.5616], + [24.0308, -12.3851], + [23.9596, -12.1967], + [23.9599, -11.6172], + [24.0611, -11.395], + [24.0112, -11.2729], + [23.9675, -10.8723], + [24.1142, -10.9192], + [24.1242, -11.0433], + [24.3818, -11.1206], + [24.3922, -11.2791], + [24.3101, -11.4066], + [24.5647, -11.4447], + [24.6741, -11.3416], + [25.2788, -11.1999], + [25.279, -11.3963], + [25.352, -11.6461], + [25.8507, -11.7938], + [25.9941, -11.9048], + [26.298, -11.9412], + [26.4146, -11.9118], + [26.6435, -11.9855], + [26.8742, -11.9643], + [26.9673, -11.8704], + [27.0103, -11.6098], + [27.1801, -11.5696], + [27.2342, -11.8091], + [27.4207, -11.922], + [27.5205, -12.1796], + [27.6382, -12.2936], + [27.9339, -12.3033], + [28.1313, -12.4292], + [28.3397, -12.4505], + [28.4227, -12.5213], + [28.584, -12.8887], + [28.6679, -12.8493], + [28.9034, -13.1623], + [28.994, -13.3959], + [29.1689, -13.4339], + [29.5744, -13.2254], + [29.6017, -13.3744], + [29.7976, -13.4242], + [29.7993, -12.1541], + [29.4743, -12.2427], + [29.4466, -12.3351], + [29.0304, -12.3762], + [28.835, -12.0922], + [28.4972, -11.8574], + [28.357, -11.4469], + [28.4396, -11.3482], + [28.4768, -11.078], + [28.5635, -10.8119], + [28.6996, -10.6432], + [28.6349, -10.5195], + [28.6239, -9.951], + [28.6685, -9.8216], + [28.516, -9.3783], + [28.3723, -9.2351], + [28.5991, -9.0964], + [28.7654, -8.934], + [28.9305, -8.6799], + [28.9153, -8.4729], + [29.8581, -8.3298], + [30.7521, -8.1941], + [30.8283, -8.3881], + [30.9595, -8.5505], + [31.1198, -8.6166], + [31.3533, -8.5872], + [31.539, -8.7036], + [31.6727, -8.913], + [31.9366, -8.9326], + [31.9177, -9.0225], + [32.383, -9.1339], + [32.518, -9.2582], + [32.7132, -9.2858], + [32.9209, -9.4079] + ] + ] + }, + "properties": { + "NAME": "Zambia", + "NAME_LONG": "Zambia", + "ADM0_A3": "ZMB", + "ISO_A2": "ZM", + "ISO_A3": "ZMB", + "WB_A2": "ZM", + "WB_A3": "ZMB" + }, + "id": 253 + }, + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [30.3963, -15.636], + [30.4026, -16.0012], + [30.8574, -15.9981], + [30.9731, -16.062], + [31.1141, -15.9969], + [31.26, -16.0235], + [31.4046, -16.1623], + [31.6861, -16.2072], + [31.9103, -16.4289], + [32.2905, -16.4518], + [32.6718, -16.5998], + [32.6987, -16.6868], + [32.8934, -16.7124], + [32.9334, -16.8158], + [32.8288, -16.9351], + [33.0225, -17.3615], + [32.9371, -18.0471], + [32.9523, -18.233], + [33.035, -18.3329], + [32.9964, -18.4671], + [32.8707, -18.5358], + [32.8852, -18.7878], + [32.6914, -18.8342], + [32.6911, -19.0143], + [32.8623, -19.1181], + [32.7688, -19.3636], + [32.8163, -19.6521], + [33.0328, -19.7842], + [33.002, -19.927], + [32.8853, -20.103], + [32.8452, -20.2867], + [32.6465, -20.558], + [32.5131, -20.5646], + [32.4691, -20.6868], + [32.4972, -20.8981], + [32.3398, -21.1341], + [32.4085, -21.2903], + [31.4338, -22.302], + [31.2889, -22.3973], + [30.8379, -22.2823], + [30.6324, -22.3307], + [30.3008, -22.337], + [29.7589, -22.1309], + [29.3501, -22.1867], + [29.2393, -22.0726], + [29.0216, -21.9828], + [29.0387, -21.7979], + [28.6297, -21.6513], + [28.4646, -21.6603], + [27.9904, -21.5519], + [27.885, -21.3102], + [27.6748, -21.0901], + [27.6981, -20.5091], + [27.3407, -20.473], + [27.2149, -20.1105], + [27.0266, -20.0101], + [26.731, -19.9359], + [26.3122, -19.6514], + [26.1303, -19.5011], + [25.9565, -19.1221], + [25.9407, -18.9213], + [25.8153, -18.814], + [25.7619, -18.6303], + [25.5085, -18.3991], + [25.3875, -18.139], + [25.2261, -17.9319], + [25.2598, -17.7941], + [25.4956, -17.8549], + [25.6814, -17.8115], + [25.9785, -17.999], + [26.203, -17.8872], + [26.7119, -18.0658], + [27.0485, -17.9443], + [27.1571, -17.7693], + [27.5773, -17.3631], + [27.7773, -17.0012], + [28.1139, -16.8276], + [28.2801, -16.7065], + [28.6433, -16.5688], + [28.8225, -16.4708], + [28.871, -16.0872], + [29.1863, -15.8128], + [29.407, -15.7142], + [29.8373, -15.6148], + [30.0107, -15.6462], + [30.3963, -15.636] + ] + ] + }, + "properties": { + "NAME": "Zimbabwe", + "NAME_LONG": "Zimbabwe", + "ADM0_A3": "ZWE", + "ISO_A2": "ZW", + "ISO_A3": "ZWE", + "WB_A2": "ZW", + "WB_A3": "ZWE" + }, + "id": 254 + } + ] +} diff --git a/Vagrant/resources/malcolm/kibana/maps/world.rds b/Vagrant/resources/malcolm/kibana/maps/world.rds new file mode 100644 index 0000000..2ae1315 Binary files /dev/null and b/Vagrant/resources/malcolm/kibana/maps/world.rds differ diff --git a/Vagrant/resources/malcolm/kibana/scripts/elastic_index_policy_create.py b/Vagrant/resources/malcolm/kibana/scripts/elastic_index_policy_create.py new file mode 100755 index 0000000..36797b0 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/scripts/elastic_index_policy_create.py @@ -0,0 +1,149 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import argparse +import json +import re +import os +import sys +import time + +TEMPLATE_POLICY_ID_DEFAULT = 'session_index_policy' +INDEX_PATTERN_DEFAULT = 'sessions2-*' +TEMPLATE_SCHEMA_VERSION_DEFAULT = 1 +POLICY_STATE_HOT = 'hot' +POLICY_STATE_SNAPSHOT = 'recent' +POLICY_STATE_COLD = 'cold' +POLICY_STATE_CLOSED = 'closed' +POLICY_STATE_DELETE = 'delete' +POLICY_STATE_HOT_REPLICAS = 0 +POLICY_SNAPSHOT_NAME = 'session_snapshot' + +################################################################################################### +debug = False +scriptName = os.path.basename(__file__) +scriptPath = os.path.dirname(os.path.realpath(__file__)) +origPath = os.getcwd() + +################################################################################################### +# print to stderr +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + +################################################################################################### +# convenient boolean argument parsing +def str2bool(v): + if v.lower() in ('yes', 'true', 't', 'y', '1'): + return True + elif v.lower() in ('no', 'false', 'f', 'n', '0'): + return False + else: + raise argparse.ArgumentTypeError('Boolean value expected.') + +################################################################################################### +# main +def main(): + global debug + + parser = argparse.ArgumentParser(description=scriptName, add_help=False, usage='{} '.format(scriptName)) + parser.add_argument('-v', '--verbose', dest='debug', type=str2bool, nargs='?', const=True, default=False, help="Verbose output") + parser.add_argument('--policy', dest='policyId', metavar='', type=str, default=TEMPLATE_POLICY_ID_DEFAULT, help='Index management policy ID') + parser.add_argument('--index-pattern', dest='indexPattern', metavar='', type=str, default=os.getenv('ARKIME_INDEX_PATTERN', INDEX_PATTERN_DEFAULT), help='Index management policy index pattern (comma-separated)') + parser.add_argument('--priority', dest='templatePriority', metavar='', type=int, default=100, help='Template priority') + parser.add_argument('--version', dest='schemaVersion', metavar='', type=int, default=TEMPLATE_SCHEMA_VERSION_DEFAULT, help='Index management policy template schema version') + parser.add_argument('--replicas', dest='hotReplicaCount', metavar='', type=int, default=POLICY_STATE_HOT_REPLICAS, help='Replica count for hot state') + parser.add_argument('--snapshot', dest='snapshotAge', metavar='', type=str, default='1d', help='Snapshot index age (e.g., 1d); 0 to disable') + parser.add_argument('--snapshot-repo', dest='snapshotRepo', metavar='', type=str, default=os.getenv('ISM_SNAPSHOT_REPO', 'logs'), help='Snapshot repository') + parser.add_argument('--snapshot-name', dest='snapshotName', metavar='', type=str, default=POLICY_SNAPSHOT_NAME, help='Snapshot name') + parser.add_argument('--cold', dest='coldAge', metavar='', type=str, default='30d', help='Cold state index age (e.g., 30d); 0 to disable') + parser.add_argument('--close', dest='closeAge', metavar='', type=str, default='60d', help='Close state index age (e.g., 60d); 0 to disable') + parser.add_argument('--delete', dest='deleteAge', metavar='', type=str, default='365d', help='Delete state index age (e.g., 365d); 0 to disable') + + try: + parser.error = parser.exit + args = parser.parse_args() + except SystemExit: + parser.print_help() + exit(2) + + debug = args.debug + if debug: + eprint(os.path.join(scriptPath, scriptName)) + eprint("Arguments: {}".format(sys.argv[1:])) + eprint("Arguments: {}".format(args)) + else: + sys.tracebacklimit = 0 + + # verify that age parameters are in the right format (number and units) + for ageParam in (args.snapshotAge, args.coldAge, args.closeAge, args.deleteAge): + if not ((ageParam == '0') or re.match(r'^\d+[dhms]$', ageParam)): + raise argparse.ArgumentTypeError(f'Invalid age parameter {ageParam}') + + # store policy information + policyDict = dict() + policyDict['policy_id'] = args.policyId + policyDict['description'] = f'Index state management policy to snapshot indices after {args.snapshotAge}, move them into a cold state after {args.coldAge} and delete them after {args.deleteAge}' + policyDict['last_updated_time'] = time.time_ns() // 1000000 + policyDict['schema_version'] = args.schemaVersion + policyDict['error_notification'] = None + + # list of states and their transitions + states = list() + + # hot -> snapshot -> cold -> closed -> deleted + + # hot state is default and always exists + policyDict['default_state'] = POLICY_STATE_HOT + hotState = dict() + hotState['name'] = POLICY_STATE_HOT + hotState['actions'] = [{ 'replica_count' : { 'number_of_replicas' : args.hotReplicaCount}}] + states.append(hotState) + + # create a "snapshot" state for backup and set the previous state's transition to it + if (args.snapshotAge != '0'): + snapshotState = dict() + snapshotState['name'] = POLICY_STATE_SNAPSHOT + snapshotState['actions'] = [{ 'snapshot' : { 'repository' : args.snapshotRepo, 'snapshot' : args.snapshotName}}] + states[len(states)-1]['transitions'] = [{'state_name' : POLICY_STATE_SNAPSHOT, + 'conditions' : { 'min_index_age' : args.snapshotAge}}] + states.append(snapshotState) + + # create a "cold" state for read-only indices and set the previous state's transition to it + if (args.coldAge != '0'): + coldState = dict() + coldState['name'] = POLICY_STATE_COLD + coldState['actions'] = [{ 'read_only' : {}}] + states[len(states)-1]['transitions'] = [{'state_name' : POLICY_STATE_COLD, + 'conditions' : { 'min_index_age' : args.coldAge}}] + states.append(coldState) + + # create a "closed" state for closed indices and set the previous state's transition to it + if (args.closeAge != '0'): + closedState = dict() + closedState['name'] = POLICY_STATE_CLOSED + closedState['actions'] = [{ 'close' : {}}] + states[len(states)-1]['transitions'] = [{'state_name' : POLICY_STATE_CLOSED, + 'conditions' : { 'min_index_age' : args.closeAge}}] + states.append(closedState) + + # create a "deleted" state for deleted indices and set the previous state's transition to it + if (args.deleteAge != '0'): + deleteState = dict() + deleteState['name'] = POLICY_STATE_DELETE + deleteState['actions'] = [{ 'delete' : {}}] + states[len(states)-1]['transitions'] = [{'state_name' : POLICY_STATE_DELETE, + 'conditions' : { 'min_index_age' : args.deleteAge}}] + states.append(deleteState) + + # the final state doesn't transition + states[len(states)-1]['transitions'] = [] + + policyDict['states'] = states + policyDict['ism_template'] = { 'index_patterns' : [x.strip() for x in args.indexPattern.split(',')], + 'priority' : args.templatePriority } + policy = dict() + policy['policy'] = policyDict + print(json.dumps(policy)) + +if __name__ == '__main__': + main() diff --git a/Vagrant/resources/malcolm/kibana/scripts/kibana-create-moloch-sessions-index.sh b/Vagrant/resources/malcolm/kibana/scripts/kibana-create-moloch-sessions-index.sh new file mode 100755 index 0000000..b9a0537 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/scripts/kibana-create-moloch-sessions-index.sh @@ -0,0 +1,130 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +set -euo pipefail +shopt -s nocasematch + +if [[ -n $ELASTICSEARCH_URL ]]; then + ES_URL="$ELASTICSEARCH_URL" +elif [[ -n $ES_HOST ]] && [[ -n $ES_PORT ]]; then + ES_URL="http://$ES_HOST:$ES_PORT" +else + ES_URL="http://elasticsearch:9200" +fi + +if [[ -n $KIBANA_URL ]]; then + KIB_URL="$KIBANA_URL" +elif [[ -n $KIBANA_HOST ]] && [[ -n $KIBANA_PORT ]]; then + KIB_URL="http://$KIBANA_HOST:$KIBANA_PORT" +else + KIB_URL="http://kibana:5601/kibana" +fi + +INDEX_PATTERN=${ARKIME_INDEX_PATTERN:-"sessions2-*"} +INDEX_PATTERN_ID=${ARKIME_INDEX_PATTERN_ID:-"sessions2-*"} +INDEX_TIME_FIELD=${ARKIME_INDEX_TIME_FIELD:-"firstPacket"} + +INDEX_POLICY_FILE="/data/init/index-management-policy.json" +INDEX_POLICY_FILE_HOST="/data/index-management-policy.json" +ZEEK_TEMPLATE_FILE="/data/init/zeek_template.json" +ZEEK_TEMPLATE_FILE_ORIG="/data/zeek_template.json" +INDEX_POLICY_NAME=${ISM_POLICY_NAME:-"session_index_policy"} + +# is the argument to automatically create this index enabled? +if [[ "$CREATE_ES_ARKIME_SESSION_INDEX" = "true" ]] ; then + + # give Elasticsearch time to start before configuring Kibana + /data/elastic_search_status.sh >/dev/null 2>&1 + + # is the kibana process server up and responding to requests? + if curl -L --silent --output /dev/null --fail -XGET "$KIB_URL/api/status" ; then + + # have we not not already created the index pattern? + if ! curl -L --silent --output /dev/null --fail -XGET "$KIB_URL/api/saved_objects/index-pattern/$INDEX_PATTERN_ID" ; then + + echo "Elasticsearch is running! Setting up index management policies..." + + # register the repo location for elasticsearch snapshots + /data/register-elasticsearch-snapshot-repo.sh + + # tweak the sessions template (sessions2-* zeek template file) to use the index management policy + if [[ -f "$INDEX_POLICY_FILE_HOST" ]] && (( $(jq length "$INDEX_POLICY_FILE_HOST") > 0 )); then + # user has provided a file for index management, use it + cp "$INDEX_POLICY_FILE_HOST" "$INDEX_POLICY_FILE" + INDEX_POLICY_NAME="$(cat "$INDEX_POLICY_FILE" | jq '..|objects|.policy_id//empty' | tr -d '"')" + + else + # need to generate index management file based on environment variables + /data/elastic_index_policy_create.py \ + --policy "$INDEX_POLICY_NAME" \ + --index-pattern "$INDEX_PATTERN" \ + --priority 100 \ + --snapshot ${ISM_SNAPSHOT_AGE:-"0"} \ + --cold ${ISM_COLD_AGE:-"0"} \ + --close ${ISM_CLOSE_AGE:-"0"} \ + --delete ${ISM_DELETE_AGE:-"0"} \ + > "$INDEX_POLICY_FILE" + fi + + if [[ -f "$INDEX_POLICY_FILE" ]]; then + # make API call to define index management policy + # https://opendistro.github.io/for-elasticsearch-docs/docs/ism/api/#create-policy + curl -w "\n" -L --silent --output /dev/null --show-error -XPUT -H "Content-Type: application/json" "$ES_URL/_opendistro/_ism/policies/$INDEX_POLICY_NAME" -d "@$INDEX_POLICY_FILE" + + if [[ -f "$ZEEK_TEMPLATE_FILE_ORIG" ]]; then + # insert opendistro.index_state_management.policy_id into index template settings: will be + # imported by kibana-create-moloch-sessions-index.sh + cat "$ZEEK_TEMPLATE_FILE_ORIG" | jq ".settings += {\"opendistro.index_state_management.policy_id\": \"$INDEX_POLICY_NAME\"}" > "$ZEEK_TEMPLATE_FILE" + fi + fi + + echo "Importing zeek_template..." + + if [[ -f "$ZEEK_TEMPLATE_FILE_ORIG" ]] && [[ ! -f "$ZEEK_TEMPLATE_FILE" ]]; then + cp "$ZEEK_TEMPLATE_FILE_ORIG" "$ZEEK_TEMPLATE_FILE" + fi + + # load zeek_template containing zeek field type mappings (merged from /data/zeek_template.json to /data/init/zeek_template.json in kibana_helpers.sh on startup) + curl -w "\n" -sSL --fail -XPOST -H "Content-Type: application/json" \ + "$ES_URL/_template/zeek_template?include_type_name=true" -d "@$ZEEK_TEMPLATE_FILE" 2>&1 + + echo "Importing index pattern..." + + # From https://github.com/elastic/kibana/issues/3709 + # Create index pattern + curl -w "\n" -sSL --fail -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "$KIB_URL/api/saved_objects/index-pattern/$INDEX_PATTERN_ID" \ + -d"{\"attributes\":{\"title\":\"$INDEX_PATTERN\",\"timeFieldName\":\"$INDEX_TIME_FIELD\"}}" 2>&1 + + echo "Setting default index pattern..." + + # Make it the default index + curl -w "\n" -sSL -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: anything" \ + "$KIB_URL/api/kibana/settings/defaultIndex" \ + -d"{\"value\":\"$INDEX_PATTERN_ID\"}" + + echo "Importing Kibana saved objects..." + + # install default dashboards, index patterns, etc. + for i in /opt/kibana/dashboards/*.json; do + curl -L --silent --output /dev/null --show-error -XPOST "$KIB_URL/api/kibana/dashboards/import?force=true" -H 'kbn-xsrf:true' -H 'Content-type:application/json' -d "@$i" + done + + # set dark theme + curl -L --silent --output /dev/null --show-error -XPOST "$KIB_URL/api/kibana/settings/theme:darkMode" -H 'kbn-xsrf:true' -H 'Content-type:application/json' -d '{"value":true}' + + # set default query time range + curl -L --silent --output /dev/null --show-error -XPOST "$KIB_URL/api/kibana/settings" -H 'kbn-xsrf:true' -H 'Content-type:application/json' -d \ + '{"changes":{"timepicker:timeDefaults":"{\n \"from\": \"now-24h\",\n \"to\": \"now\",\n \"mode\": \"quick\"}"}}' + + # turn off telemetry + curl -L --silent --output /dev/null --show-error -XPOST "$KIB_URL/api/telemetry/v2/optIn" -H 'kbn-xsrf:true' -H 'Content-type:application/json' -d '{"enabled":false}' + + # pin filters by default + curl -L --silent --output /dev/null --show-error -XPOST "$KIB_URL/api/kibana/settings/filters:pinnedByDefault" -H 'kbn-xsrf:true' -H 'Content-type:application/json' -d '{"value":true}' + + echo "Kibana saved objects import complete!" + fi + fi +fi diff --git a/Vagrant/resources/malcolm/kibana/scripts/kibana_index_refresh.py b/Vagrant/resources/malcolm/kibana/scripts/kibana_index_refresh.py new file mode 100755 index 0000000..aea9600 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/scripts/kibana_index_refresh.py @@ -0,0 +1,291 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import argparse +import json +import re +import requests +import os +import sys + +GET_STATUS_API = 'api/status' +GET_INDEX_PATTERN_INFO_URI = 'api/saved_objects/_find' +GET_FIELDS_URI = 'api/index_patterns/_fields_for_wildcard' +PUT_INDEX_PATTERN_URI = 'api/saved_objects/index-pattern' +ES_GET_TEMPLATE_URI = '_template' + +################################################################################################### +debug = False +scriptName = os.path.basename(__file__) +scriptPath = os.path.dirname(os.path.realpath(__file__)) +origPath = os.getcwd() + +################################################################################################### +# print to stderr +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + +################################################################################################### +# convenient boolean argument parsing +def str2bool(v): + if v.lower() in ('yes', 'true', 't', 'y', '1'): + return True + elif v.lower() in ('no', 'false', 'f', 'n', '0'): + return False + else: + raise argparse.ArgumentTypeError('Boolean value expected.') + +################################################################################################### +# main +def main(): + global debug + + parser = argparse.ArgumentParser(description=scriptName, add_help=False, usage='{} '.format(scriptName)) + parser.add_argument('-v', '--verbose', dest='debug', type=str2bool, nargs='?', const=True, default=False, help="Verbose output") + parser.add_argument('-i', '--index', dest='index', metavar='', type=str, default='sessions2-*', help='Index Pattern Name') + parser.add_argument('-k', '--kibana', dest='kibanaUrl', metavar='', type=str, default=os.getenv('KIBANA_URL', 'http://kibana:5601/kibana'), help='Kibana URL') + parser.add_argument('-e', '--elastic', dest='elasticUrl', metavar='', type=str, default=os.getenv('ELASTICSEARCH_URL', 'http://elasticsearch:9200'), help='Elasticsearch URL') + parser.add_argument('-t', '--template', dest='template', metavar='', type=str, default=None, help='Elasticsearch template to merge') + parser.add_argument('-n', '--dry-run', dest='dryrun', type=str2bool, nargs='?', const=True, default=False, help="Dry run (no PUT)") + try: + parser.error = parser.exit + args = parser.parse_args() + except SystemExit: + parser.print_help() + exit(2) + + debug = args.debug + if debug: + eprint(os.path.join(scriptPath, scriptName)) + eprint("Arguments: {}".format(sys.argv[1:])) + eprint("Arguments: {}".format(args)) + else: + sys.tracebacklimit = 0 + + # get version number so kibana doesn't think we're doing a XSRF when we do the PUT + statusInfoResponse = requests.get('{}/{}'.format(args.kibanaUrl, GET_STATUS_API)) + statusInfoResponse.raise_for_status() + statusInfo = statusInfoResponse.json() + kibanaVersion = statusInfo['version']['number'] + if debug: + eprint('Kibana version is {}'.format(kibanaVersion)) + + esInfoResponse = requests.get(args.elasticUrl) + esInfo = statusInfoResponse.json() + elasticVersion = statusInfo['version']['number'] + if debug: + eprint('Elasticsearch version is {}'.format(elasticVersion)) + + # find the ID of the index name (probably will be the same as the name) + getIndexInfoResponse = requests.get( + '{}/{}'.format(args.kibanaUrl, GET_INDEX_PATTERN_INFO_URI), + params={ + 'type': 'index-pattern', + 'fields': 'id', + 'search': '"{}"'.format(args.index) + } + ) + getIndexInfoResponse.raise_for_status() + getIndexInfo = getIndexInfoResponse.json() + indexId = getIndexInfo['saved_objects'][0]['id'] if (len(getIndexInfo['saved_objects']) > 0) else None + if debug: + eprint('Index ID for {} is {}'.format(args.index, indexId)) + + if indexId is not None: + + # get the current fields list + getFieldsResponse = requests.get('{}/{}'.format(args.kibanaUrl, GET_FIELDS_URI), + params={ 'pattern': args.index, + 'meta_fields': ["_source","_id","_type","_index","_score"] }) + getFieldsResponse.raise_for_status() + getFieldsList = getFieldsResponse.json()['fields'] + fieldsNames = [field['name'] for field in getFieldsList if 'name' in field] + + # get the fields from the template, if specified, and merge those into the fields list + if args.template is not None: + try: + + # request template from elasticsearch and pull the mappings/properties (field list) out + getTemplateResponse = requests.get('{}/{}/{}'.format(args.elasticUrl, ES_GET_TEMPLATE_URI, args.template)) + getTemplateResponse.raise_for_status() + getTemplateInfo = getTemplateResponse.json()[args.template]['mappings']['properties'] + + # a field should be merged if it's not already in the list we have from kibana, and it's + # in the list of types we're merging (leave more complex types like nested and geolocation + # to be handled naturally as the data shows up) + for field in getTemplateInfo: + mergeFieldTypes = ("date", "float", "integer", "ip", "keyword", "long", "short", "text") + if ((field not in fieldsNames) and + ('type' in getTemplateInfo[field]) and + (getTemplateInfo[field]['type'] in mergeFieldTypes)): + + # create field dict in same format as those returned by GET_FIELDS_URI above + mergedFieldInfo = {} + mergedFieldInfo['name'] = field + mergedFieldInfo['esTypes'] = [ getTemplateInfo[field]['type'] ] + if ((getTemplateInfo[field]['type'] == 'float') or + (getTemplateInfo[field]['type'] == 'integer') or + (getTemplateInfo[field]['type'] == 'long') or + (getTemplateInfo[field]['type'] == 'short')): + mergedFieldInfo['type'] = 'number' + elif ((getTemplateInfo[field]['type'] == 'keyword') or + (getTemplateInfo[field]['type'] == 'text')): + mergedFieldInfo['type'] = 'string' + else: + mergedFieldInfo['type'] = getTemplateInfo[field]['type'] + mergedFieldInfo['searchable'] = True + mergedFieldInfo['aggregatable'] = ("text" not in mergedFieldInfo['esTypes']) + mergedFieldInfo['readFromDocValues'] = mergedFieldInfo['aggregatable'] + fieldsNames.append(field) + getFieldsList.append(mergedFieldInfo) + + # elif debug: + # eprint('Not merging {}: {}'.format(field, json.dumps(getTemplateInfo[field]))) + + except Exception as e: + eprint('"{}" raised for "{}", skipping template merge'.format(str(e), args.template)) + + if debug: + eprint('{} would have {} fields'.format(args.index, len(getFieldsList))) + + # define field formatting map for Kibana -> Arkime drilldown and other URL drilldowns + # + # see: https://github.com/cisagov/Malcolm/issues/133 + # https://github.com/mmguero-dev/kibana-plugin-drilldownmenu + # + # fieldFormatMap is + # { + # "zeek.orig_h": { + # "id": "drilldown", + # "params": { + # "parsedUrl": { + # "origin": "https://malcolm.local.lan", + # "pathname": "/kibana/app/kibana", + # "basePath": "/kibana" + # }, + # "urlTemplates": [ + # null, + # { + # "url": "/idkib2mol/zeek.orig_h == {{value}}", + # "label": "Arkime: zeek.orig_h == {{value}}" + # } + # ] + # } + # }, + # ... + # } + fieldFormatMap = {} + for field in getFieldsList: + if field['name'][:1].isalpha(): + + # for Arkime to query by database field name, see moloch issue/PR 1461/1463 + valQuote = '"' if field['type'] == 'string' else '' + valDbPrefix = '' if field['name'].startswith('zeek') else 'db:' + drilldownInfoParamsUrlTemplateValues = {} + drilldownInfoParamsUrlTemplateValues['url'] = '/idkib2mol/{}{} == {}{{{{value}}}}{}'.format(valDbPrefix, field['name'], valQuote, valQuote) + drilldownInfoParamsUrlTemplateValues['label'] = 'Arkime {}: {}{{{{value}}}}{}'.format(field['name'], valQuote, valQuote) + drilldownInfoParamsUrlTemplates = [None, drilldownInfoParamsUrlTemplateValues] + + if (field['type'] == 'ip') or (re.search(r'[_\.-](h|ip)$', field['name'], re.IGNORECASE) is not None): + # add drilldown for searching IANA for IP addresses + drilldownInfoParamsUrlTemplateValues = {} + drilldownInfoParamsUrlTemplateValues['url'] = 'https://www.virustotal.com/en/ip-address/{{value}}/information/' + drilldownInfoParamsUrlTemplateValues['label'] = 'VirusTotal IP: {{value}}' + drilldownInfoParamsUrlTemplates.append(drilldownInfoParamsUrlTemplateValues) + + elif re.search(r'(^|[\b_\.-])(md5|sha(1|256|384|512))\b', field['name'], re.IGNORECASE) is not None: + # add drilldown for searching VirusTotal for hash signatures + drilldownInfoParamsUrlTemplateValues = {} + drilldownInfoParamsUrlTemplateValues['url'] = 'https://www.virustotal.com/gui/file/{{value}}/detection' + drilldownInfoParamsUrlTemplateValues['label'] = 'VirusTotal Hash: {{value}}' + drilldownInfoParamsUrlTemplates.append(drilldownInfoParamsUrlTemplateValues) + + elif re.search(r'(^|[\b_\.-])(hit|signature(_?id))?s?$', field['name'], re.IGNORECASE) is not None: + # add drilldown for searching the web for signature IDs + drilldownInfoParamsUrlTemplateValues = {} + drilldownInfoParamsUrlTemplateValues['url'] = 'https://duckduckgo.com/?q="{{value}}"' + drilldownInfoParamsUrlTemplateValues['label'] = 'Web Search: {{value}}' + drilldownInfoParamsUrlTemplates.append(drilldownInfoParamsUrlTemplateValues) + + elif re.search(r'(^|src|dst|source|dest|destination|[\b_\.-])p(ort)?s?$', field['name'], re.IGNORECASE) is not None: + # add drilldown for searching IANA for ports + drilldownInfoParamsUrlTemplateValues = {} + drilldownInfoParamsUrlTemplateValues['url'] = 'https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search={{value}}' + drilldownInfoParamsUrlTemplateValues['label'] = 'Port Registry: {{value}}' + drilldownInfoParamsUrlTemplates.append(drilldownInfoParamsUrlTemplateValues) + + elif re.search(r'^(zeek\.service|protocol?|network\.protocol)$', field['name'], re.IGNORECASE) is not None: + # add drilldown for searching IANA for services + drilldownInfoParamsUrlTemplateValues = {} + drilldownInfoParamsUrlTemplateValues['url'] = 'https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search={{value}}' + drilldownInfoParamsUrlTemplateValues['label'] = 'Service Registry: {{value}}' + drilldownInfoParamsUrlTemplates.append(drilldownInfoParamsUrlTemplateValues) + + elif re.search(r'^(network\.transport|zeek\.proto|ipProtocol)$', field['name'], re.IGNORECASE) is not None: + # add URL link for assigned transport protocol numbers + drilldownInfoParamsUrlTemplateValues = {} + drilldownInfoParamsUrlTemplateValues['url'] = 'https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml' + drilldownInfoParamsUrlTemplateValues['label'] = 'Protocol Registry' + drilldownInfoParamsUrlTemplates.append(drilldownInfoParamsUrlTemplateValues) + + elif re.search(r'(as\.number|(src|dst)ASN|asn\.(src|dst))$', field['name'], re.IGNORECASE) is not None: + # add drilldown for searching ARIN for ASN + drilldownInfoParamsUrlTemplateValues = {} + drilldownInfoParamsUrlTemplateValues['url'] = 'https://search.arin.net/rdap/?query={{value}}&searchFilter=asn' + drilldownInfoParamsUrlTemplateValues['label'] = 'ARIN ASN: {{value}}' + drilldownInfoParamsUrlTemplates.append(drilldownInfoParamsUrlTemplateValues) + + elif re.search(r'(^zeek\.filetype$|mime[_\.-]?type)', field['name'], re.IGNORECASE) is not None: + # add drilldown for searching mime/media/content types + # TODO: '/' in URL is getting messed up somehow, maybe we need to url encode it manually? not sure... + drilldownInfoParamsUrlTemplateValues = {} + drilldownInfoParamsUrlTemplateValues['url'] = 'https://www.iana.org/assignments/media-types/{{value}}' + drilldownInfoParamsUrlTemplateValues['label'] = 'Media Type Registry: {{value}}' + drilldownInfoParamsUrlTemplates.append(drilldownInfoParamsUrlTemplateValues) + + elif re.search(r'(^zeek_files\.extracted$)', field['name'], re.IGNORECASE) is not None: + # add download for extracted/quarantined zeek files + drilldownInfoParamsUrlTemplateValues = {} + drilldownInfoParamsUrlTemplateValues['url'] = '/dl-extracted-files/quarantine/{{value}}' + drilldownInfoParamsUrlTemplateValues['label'] = 'Download (if quarantined)' + drilldownInfoParamsUrlTemplates.append(drilldownInfoParamsUrlTemplateValues) + drilldownInfoParamsUrlTemplateValues = {} + drilldownInfoParamsUrlTemplateValues['url'] = '/dl-extracted-files/preserved/{{value}}' + drilldownInfoParamsUrlTemplateValues['label'] = 'Download (if preserved)' + drilldownInfoParamsUrlTemplates.append(drilldownInfoParamsUrlTemplateValues) + + drilldownInfoParams = {} + drilldownInfoParams['urlTemplates'] = drilldownInfoParamsUrlTemplates + + drilldownInfo = {} + drilldownInfo['id'] = 'drilldown' + drilldownInfo['params'] = drilldownInfoParams + + fieldFormatMap[field['name']] = drilldownInfo + + # set the index pattern with our complete list of fields + putIndexInfo = {} + putIndexInfo['attributes'] = {} + putIndexInfo['attributes']['title'] = args.index + putIndexInfo['attributes']['fields'] = json.dumps(getFieldsList) + putIndexInfo['attributes']['fieldFormatMap'] = json.dumps(fieldFormatMap) + + if not args.dryrun: + putResponse = requests.put('{}/{}/{}'.format(args.kibanaUrl, PUT_INDEX_PATTERN_URI, indexId), + headers={ 'Content-Type': 'application/json', + 'kbn-xsrf': 'true', + 'kbn-version': kibanaVersion, }, + data=json.dumps(putIndexInfo)) + putResponse.raise_for_status() + + # if we got this far, it probably worked! + if args.dryrun: + print("success (dry run only, no write performed)") + else: + print("success") + + else: + print("failure (could not find Index ID for {})".format(args.index)) + +if __name__ == '__main__': + main() diff --git a/Vagrant/resources/malcolm/kibana/scripts/register-elasticsearch-snapshot-repo.sh b/Vagrant/resources/malcolm/kibana/scripts/register-elasticsearch-snapshot-repo.sh new file mode 100755 index 0000000..4b63fb4 --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/scripts/register-elasticsearch-snapshot-repo.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +if [ $# -gt 0 ]; then + ES_URL="$1" +elif [[ -n $ELASTICSEARCH_URL ]]; then + ES_URL="$ELASTICSEARCH_URL" +elif [[ -n $ES_HOST ]] && [[ -n $ES_PORT ]]; then + ES_URL="http://$ES_HOST:$ES_PORT" +else + ES_URL="http://elasticsearch:9200" +fi + +[[ -n $ISM_SNAPSHOT_REPO ]] && \ + curl -w "\n" -H "Accept: application/json" \ + -H "Content-type: application/json" \ + -XPUT -fsSL "$ES_URL/_snapshot/$ISM_SNAPSHOT_REPO" \ + -d "{ \"type\": \"fs\", \"settings\": { \"location\": \"$ISM_SNAPSHOT_REPO\", \"compress\": ${ISM_SNAPSHOT_COMPRESSED:-false} } }" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/kibana/supervisord.conf b/Vagrant/resources/malcolm/kibana/supervisord.conf new file mode 100644 index 0000000..3f6a1ed --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/supervisord.conf @@ -0,0 +1,53 @@ +; Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +[unix_http_server] +file=/tmp/supervisor.sock ; (the path to the socket file) +chmod=0700 + +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisord.pid + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[program:idxinit] +command=bash -c "sleep 180 && /data/elastic_search_status.sh -w && /data/kibana_index_refresh.py -v --kibana \"%(ENV_KIBANA_URL)s\" --elastic \"%(ENV_ELASTICSEARCH_URL)s\" --template zeek_template" +autostart=true +autorestart=false +startsecs=0 +startretries=0 +stopasgroup=true +killasgroup=true +directory=/data +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:maps] +command=/usr/local/bin/http-server /opt/maps --cors='*' -d false -i false --no-dotfiles -p %(ENV_KIBANA_OFFLINE_REGION_MAPS_PORT)s +autostart=true +autorestart=true +startsecs=0 +startretries=0 +stopasgroup=true +killasgroup=true +directory=/opt/maps +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:cron] +autostart=true +autorestart=true +command=/usr/local/bin/supercronic -json "%(ENV_SUPERCRONIC_CRONTAB)s" +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true diff --git a/Vagrant/resources/malcolm/kibana/zeek_template.json b/Vagrant/resources/malcolm/kibana/zeek_template.json new file mode 100644 index 0000000..9c50bdc --- /dev/null +++ b/Vagrant/resources/malcolm/kibana/zeek_template.json @@ -0,0 +1,992 @@ +{ + "index_patterns" : ["sessions2-*"], + "order" : 0, + "settings" : { + "index" : { + "mapping.total_fields.limit" : "2000" + } + }, + "mappings": { + "session": { + "properties": { + + "client.address": { "type": "keyword" }, + "client.bytes": { "type": "long" }, + "client.domain": { "type": "keyword" }, + "client.ip": { "type": "ip" }, + "client.mac": { "type": "keyword" }, + "client.packets": { "type": "integer" }, + "client.port": { "type": "integer" }, + "destination.domain": { "type": "keyword" }, + "dns.answers": { "type": "nested" }, + "dns.header_flags": { "type": "keyword" }, + "dns.id": { "type": "keyword" }, + "dns.op_code": { "type": "keyword" }, + "dns.question.class": { "type": "keyword" }, + "dns.question.name": { "type": "keyword" }, + "dns.question.type": { "type": "keyword" }, + "dns.resolved_ip": { "type": "ip" }, + "dns.response_code": { "type": "keyword" }, + "dns.type": { "type": "keyword" }, + "ecs.version": { "type": "keyword" }, + "event.action": { "type": "keyword" }, + "event.category": { "type": "keyword" }, + "event.dataset": { "type": "keyword" }, + "event.duration": { "type": "long" }, + "event.end": { "type": "date" }, + "event.id": { "type": "keyword" }, + "event.ingested": { "type": "date" }, + "event.kind": { "type": "keyword" }, + "event.outcome": { "type": "keyword" }, + "event.provider": { "type": "keyword" }, + "event.start": { "type": "date" }, + "event.type": { "type": "keyword" }, + "file.accessed": { "type": "date" }, + "file.created": { "type": "date" }, + "file.ctime": { "type": "date" }, + "file.directory": { "type": "keyword" }, + "file.extension": { "type": "keyword" }, + "file.hash.md5": { "type": "keyword" }, + "file.hash.sha1": { "type": "keyword" }, + "file.hash.sha256": { "type": "keyword" }, + "file.mime_type": { "type": "keyword" }, + "file.mtime": { "type": "date" }, + "file.name": { "type": "keyword" }, + "file.path": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "file.size": { "type": "long" }, + "file.type": { "type": "keyword" }, + "host.name": { "type": "keyword" }, + "http.request.body.bytes": { "type": "long" }, + "http.request.method": { "type": "keyword" }, + "http.request.referrer": { "type": "keyword" }, + "http.response.body.bytes": { "type": "long" }, + "http.response.status_cocde": { "type": "short" }, + "http.version": { "type": "keyword" }, + "log.file.path": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "network.application": { "type": "keyword" }, + "network.bytes": { "type": "long" }, + "network.community_id": { "type": "keyword" }, + "network.iana_number": { "type": "keyword" }, + "network.packets": { "type": "long" }, + "network.protocol": { "type": "keyword" }, + "network.transport": { "type": "keyword" }, + "network.type": { "type": "keyword" }, + "related.hash": { "type": "keyword" }, + "related.ip": { "type": "ip" }, + "related.user": { "type": "keyword" }, + "rule.author": { "type": "keyword" }, + "rule.category": { "type": "keyword" }, + "rule.description": { "type": "keyword" }, + "rule.license": { "type": "keyword" }, + "rule.name": { "type": "keyword" }, + "rule.reference": { "type": "keyword" }, + "rule.ruleset": { "type": "keyword" }, + "server.address": { "type": "keyword" }, + "server.bytes": { "type": "long" }, + "server.domain": { "type": "keyword" }, + "server.ip": { "type": "ip" }, + "server.mac": { "type": "keyword" }, + "server.packets": { "type": "integer" }, + "server.port": { "type": "integer" }, + "threat.framework": { "type": "keyword" }, + "threat.tactic.id": { "type": "keyword" }, + "threat.tactic.name": { "type": "keyword" }, + "threat.tactic.reference": { "type": "keyword" }, + "threat.technique.id": { "type": "keyword" }, + "threat.technique.name": { "type": "keyword" }, + "threat.technique.reference": { "type": "keyword" }, + "tls.cipher": { "type": "keyword" }, + "tls.client.issuer": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "tls.client.ja3": { "type": "keyword" }, + "tls.client.server_name": { "type": "keyword" }, + "tls.client.subject": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "tls.curve": { "type": "keyword" }, + "tls.established": { "type": "keyword" }, + "tls.next_protocol": { "type": "keyword" }, + "tls.resumed": { "type": "keyword" }, + "tls.server.issuer": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "tls.server.ja3s": { "type": "keyword" }, + "tls.server.subject": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "tls.version": { "type": "keyword" }, + "tls.version_protocol": { "type": "keyword" }, + "url.domain": { "type": "keyword" }, + "url.extension": { "type": "keyword" }, + "url.fragment": { "type": "keyword" }, + "url.full": { "type": "keyword" }, + "url.original": { "type": "keyword" }, + "url.password": { "type": "keyword" }, + "url.path": { "type": "keyword" }, + "url.port": { "type": "integer" }, + "url.query": { "type": "keyword" }, + "url.scheme": { "type": "keyword" }, + "url.username": { "type": "keyword" }, + "user_agent.original": { "type": "keyword" }, + + "zeekLogDocId": { "type": "keyword" }, + "zeek.action": { "type": "keyword" }, + "zeek.community_id": { "type": "keyword" }, + "zeek.destination_geo.city_name": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek.destination_geo.continent_code": { "type": "keyword" }, + "zeek.destination_geo.country_code2": { "type": "keyword" }, + "zeek.destination_geo.country_code3": { "type": "keyword" }, + "zeek.destination_geo.country_name": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek.destination_geo.dma_code": { "type": "short" }, + "zeek.destination_geo.ip": { "type": "ip" }, + "zeek.destination_geo.latitude": { "type": "float" }, + "zeek.destination_geo.location": { "type": "geo_point" }, + "zeek.destination_geo.longitude": { "type": "float" }, + "zeek.destination_geo.postal_code": { "type": "keyword" }, + "zeek.destination_geo.region_code": { "type": "keyword" }, + "zeek.destination_geo.region_name": { "type": "keyword" }, + "zeek.destination_geo.timezone": { "type": "keyword" }, + "zeek.destination_ip_reverse_dns": { "type": "keyword" }, + "zeek.filename": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek.filetype": { "type": "keyword" }, + "zeek.freq_score_v1": { "type": "float" }, + "zeek.freq_score_v2": { "type": "float" }, + "zeek.fuid": { "type": "keyword" }, + "zeek.logType": { "type": "keyword" }, + "zeek.orig_h": { "type": "ip" }, + "zeek.orig_hostname": { "type": "keyword" }, + "zeek.orig_l2_addr": { "type": "keyword" }, + "zeek.orig_l2_oui": { "type": "keyword" }, + "zeek.orig_p": { "type": "integer" }, + "zeek.orig_segment": { "type": "keyword" }, + "zeek.password": { "type": "keyword", "ignore_above": 256, "fields": { "text": { "type": "text" } } }, + "zeek.proto": { "type": "keyword" }, + "zeek.resp_h": { "type": "ip" }, + "zeek.resp_hostname": { "type": "keyword" }, + "zeek.resp_l2_addr": { "type": "keyword" }, + "zeek.resp_l2_oui": { "type": "keyword" }, + "zeek.resp_p": { "type": "integer" }, + "zeek.resp_segment": { "type": "keyword" }, + "zeek.result": { "type": "keyword" }, + "zeek.service": { "type": "keyword" }, + "zeek.service_version": { "type": "keyword" }, + "zeek.source_geo.city_name": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek.source_geo.continent_code": { "type": "keyword" }, + "zeek.source_geo.country_code2": { "type": "keyword" }, + "zeek.source_geo.country_code3": { "type": "keyword" }, + "zeek.source_geo.country_name": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek.source_geo.dma_code": { "type": "short" }, + "zeek.source_geo.ip": { "type": "ip" }, + "zeek.source_geo.latitude": { "type": "float" }, + "zeek.source_geo.location": { "type": "geo_point" }, + "zeek.source_geo.longitude": { "type": "float" }, + "zeek.source_geo.postal_code": { "type": "keyword" }, + "zeek.source_geo.region_code": { "type": "keyword" }, + "zeek.source_geo.region_name": { "type": "keyword" }, + "zeek.source_geo.timezone": { "type": "keyword" }, + "zeek.source_ip_reverse_dns": { "type": "keyword" }, + "zeek.ts": { "type": "date" }, + "zeek.uid": { "type": "keyword" }, + "zeek.user": { "type": "keyword", "ignore_above": 256, "fields": { "text": { "type": "text" } } }, + "zeek_bacnet.bvlc_function": { "type": "keyword" }, + "zeek_bacnet.pdu_type": { "type": "keyword" }, + "zeek_bacnet.pdu_service": { "type": "keyword" }, + "zeek_bacnet.invoke_id": { "type": "integer" }, + "zeek_bacnet.result_code": { "type": "keyword" }, + "zeek_bacnet_discovery.pdu_service": { "type": "keyword" }, + "zeek_bacnet_discovery.object_type": { "type": "keyword" }, + "zeek_bacnet_discovery.instance_number": { "type": "integer" }, + "zeek_bacnet_discovery.vendor": { "type": "keyword" }, + "zeek_bacnet_discovery.range": { "type": "keyword" }, + "zeek_bacnet_discovery.range_low": { "type": "integer" }, + "zeek_bacnet_discovery.range_high": { "type": "integer" }, + "zeek_bacnet_discovery.object_name": { "type": "keyword" }, + "zeek_bacnet_property.pdu_service": { "type": "keyword" }, + "zeek_bacnet_property.object_type": { "type": "keyword" }, + "zeek_bacnet_property.instance_number": { "type": "integer" }, + "zeek_bacnet_property.property": { "type": "keyword" }, + "zeek_bacnet_property.array_index": { "type": "integer" }, + "zeek_bacnet_property.value": { "type": "keyword" }, + "zeek_bestguess.name": { "type": "keyword" }, + "zeek_bestguess.category": { "type": "keyword" }, + "zeek_bsap_ip_header.num_msg": { "type": "keyword" }, + "zeek_bsap_ip_header.type_name": { "type": "integer" }, + "zeek_bsap_ip_rdb.app_func_code": { "type": "keyword" }, + "zeek_bsap_ip_rdb.data": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_bsap_ip_rdb.data_len": { "type": "integer" }, + "zeek_bsap_ip_rdb.func_code": { "type": "keyword" }, + "zeek_bsap_ip_rdb.header_size": { "type": "integer" }, + "zeek_bsap_ip_rdb.mes_seq": { "type": "integer" }, + "zeek_bsap_ip_rdb.node_status": { "type": "integer" }, + "zeek_bsap_ip_rdb.res_seq": { "type": "integer" }, + "zeek_bsap_ip_rdb.sequence": { "type": "integer" }, + "zeek_bsap_ip_unknown.data": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_bsap_serial_header.ctl": { "type": "integer" }, + "zeek_bsap_serial_header.dadd": { "type": "integer" }, + "zeek_bsap_serial_header.dfun": { "type": "keyword" }, + "zeek_bsap_serial_header.nsb": { "type": "integer" }, + "zeek_bsap_serial_header.sadd": { "type": "integer" }, + "zeek_bsap_serial_header.seq": { "type": "integer" }, + "zeek_bsap_serial_header.ser": { "type": "keyword" }, + "zeek_bsap_serial_header.sfun": { "type": "keyword" }, + "zeek_bsap_serial_header.type_name": { "type": "keyword" }, + "zeek_bsap_serial_rdb.data": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_bsap_serial_rdb.func_code": { "type": "keyword" }, + "zeek_bsap_serial_rdb_ext.data": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_bsap_serial_rdb_ext.dfun": { "type": "keyword" }, + "zeek_bsap_serial_rdb_ext.extfun": { "type": "keyword" }, + "zeek_bsap_serial_rdb_ext.nsb": { "type": "integer" }, + "zeek_bsap_serial_rdb_ext.seq": { "type": "integer" }, + "zeek_bsap_serial_rdb_ext.sfun": { "type": "keyword" }, + "zeek_bsap_serial_unknown.data": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_cip.cip_sequence_count": { "type": "integer" }, + "zeek_cip.direction": { "type": "keyword" }, + "zeek_cip.cip_service": { "type": "keyword" }, + "zeek_cip.cip_status": { "type": "keyword" }, + "zeek_cip.class_id": { "type": "keyword" }, + "zeek_cip.class_name": { "type": "keyword" }, + "zeek_cip.instance_id": { "type": "keyword" }, + "zeek_cip.attribute_id": { "type": "keyword" }, + "zeek_cip.data_id": { "type": "keyword" }, + "zeek_cip.other_id": { "type": "keyword" }, + "zeek_cip_identity.encapsulation_version": { "type": "integer" }, + "zeek_cip_identity.socket_address": { "type": "ip" }, + "zeek_cip_identity.socket_address_asn": { "type": "keyword" }, + "zeek_cip_identity.socket_address_geo.city_name": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_cip_identity.socket_address_geo.continent_code": { "type": "keyword" }, + "zeek_cip_identity.socket_address_geo.country_code2": { "type": "keyword" }, + "zeek_cip_identity.socket_address_geo.country_code3": { "type": "keyword" }, + "zeek_cip_identity.socket_address_geo.country_name": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_cip_identity.socket_address_geo.dma_code": { "type": "short" }, + "zeek_cip_identity.socket_address_geo.ip": { "type": "ip" }, + "zeek_cip_identity.socket_address_geo.latitude": { "type": "float" }, + "zeek_cip_identity.socket_address_geo.location": { "type": "geo_point" }, + "zeek_cip_identity.socket_address_geo.longitude": { "type": "float" }, + "zeek_cip_identity.socket_address_geo.postal_code": { "type": "keyword" }, + "zeek_cip_identity.socket_address_geo.region_code": { "type": "keyword" }, + "zeek_cip_identity.socket_address_geo.region_name": { "type": "keyword" }, + "zeek_cip_identity.socket_address_geo.timezone": { "type": "keyword" }, + "zeek_cip_identity.socket_port": { "type": "integer" }, + "zeek_cip_identity.vendor_id": { "type": "integer" }, + "zeek_cip_identity.vendor_name": { "type": "keyword" }, + "zeek_cip_identity.device_type_id": { "type": "integer" }, + "zeek_cip_identity.device_type_name": { "type": "keyword" }, + "zeek_cip_identity.product_code": { "type": "integer" }, + "zeek_cip_identity.revision": { "type": "keyword" }, + "zeek_cip_identity.device_status": { "type": "keyword" }, + "zeek_cip_identity.serial_number": { "type": "keyword" }, + "zeek_cip_identity.product_name": { "type": "keyword" }, + "zeek_cip_identity.device_state": { "type": "keyword" }, + "zeek_cip_io.connection_id": { "type": "keyword" }, + "zeek_cip_io.sequence_number": { "type": "integer" }, + "zeek_cip_io.data_length": { "type": "integer" }, + "zeek_cip_io.io_data": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_conn.conn_state": { "type": "keyword" }, + "zeek_conn.conn_state_description": { "type": "keyword" }, + "zeek_conn.duration": { "type": "float" }, + "zeek_conn.history": { "type": "keyword" }, + "zeek_conn.inner_vlan": { "type": "integer" }, + "zeek_conn.local_orig": { "type": "keyword" }, + "zeek_conn.local_resp": { "type": "keyword" }, + "zeek_conn.missed_bytes": { "type": "long" }, + "zeek_conn.orig_bytes": { "type": "long" }, + "zeek_conn.orig_ip_bytes": { "type": "long" }, + "zeek_conn.orig_pkts": { "type": "integer" }, + "zeek_conn.resp_bytes": { "type": "long" }, + "zeek_conn.resp_ip_bytes": { "type": "long" }, + "zeek_conn.resp_pkts": { "type": "integer" }, + "zeek_conn.tunnel_parents": { "type": "keyword" }, + "zeek_conn.vlan": { "type": "integer" }, + "zeek_dce_rpc.endpoint": { "type": "keyword" }, + "zeek_dce_rpc.named_pipe": { "type": "keyword" }, + "zeek_dce_rpc.operation": { "type": "keyword" }, + "zeek_dce_rpc.rtt": { "type": "float" }, + "zeek_dhcp.assigned_ip": { "type": "ip" }, + "zeek_dhcp.client_fqdn": { "type": "keyword" }, + "zeek_dhcp.client_message": { "type": "keyword" }, + "zeek_dhcp.client_software": { "type": "keyword" }, + "zeek_dhcp.domain": { "type": "keyword" }, + "zeek_dhcp.duration": { "type": "float" }, + "zeek_dhcp.host_name": { "type": "keyword" }, + "zeek_dhcp.lease_time": { "type": "float" }, + "zeek_dhcp.mac": { "type": "keyword" }, + "zeek_dhcp.msg_types": { "type": "keyword" }, + "zeek_dhcp.requested_ip": { "type": "ip" }, + "zeek_dhcp.server_message": { "type": "keyword" }, + "zeek_dhcp.server_software": { "type": "keyword" }, + "zeek_dhcp.trans_id": { "type": "keyword" }, + "zeek_dnp3.fc_reply": { "type": "keyword" }, + "zeek_dnp3.fc_request": { "type": "keyword" }, + "zeek_dnp3.iin": { "type": "keyword" }, + "zeek_dnp3.iin_flags": { "type": "keyword" }, + "zeek_dnp3_control.block_type": { "type": "keyword" }, + "zeek_dnp3_control.function_code": { "type": "keyword" }, + "zeek_dnp3_control.index_number": { "type": "integer" }, + "zeek_dnp3_control.trip_control_code": { "type": "keyword" }, + "zeek_dnp3_control.operation_type": { "type": "keyword" }, + "zeek_dnp3_control.execute_count": { "type": "integer" }, + "zeek_dnp3_control.on_time": { "type": "integer" }, + "zeek_dnp3_control.off_time": { "type": "integer" }, + "zeek_dnp3_control.status_code": { "type": "keyword" }, + "zeek_dnp3_objects.function_code": { "type": "keyword" }, + "zeek_dnp3_objects.object_type": { "type": "keyword" }, + "zeek_dnp3_objects.object_count": { "type": "integer" }, + "zeek_dnp3_objects.range_low": { "type": "integer" }, + "zeek_dnp3_objects.range_high": { "type": "integer" }, + "zeek_dns.AA": { "type": "keyword" }, + "zeek_dns.answers": { "type": "keyword" }, + "zeek_dns.qclass": { "type": "keyword" }, + "zeek_dns.qclass_name": { "type": "keyword" }, + "zeek_dns.qtype": { "type": "keyword" }, + "zeek_dns.qtype_name": { "type": "keyword" }, + "zeek_dns.query": { "type": "keyword" }, + "zeek_dns.RA": { "type": "keyword" }, + "zeek_dns.rcode": { "type": "short" }, + "zeek_dns.rcode_name": { "type": "keyword" }, + "zeek_dns.RD": { "type": "keyword" }, + "zeek_dns.rejected": { "type": "keyword" }, + "zeek_dns.rtt": { "type": "float" }, + "zeek_dns.TC": { "type": "keyword" }, + "zeek_dns.trans_id": { "type": "keyword" }, + "zeek_dns.TTLs": { "type": "float" }, + "zeek_dns.Z": { "type": "keyword" }, + "zeek_dpd.failure_reason": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_dpd.service": { "type": "keyword" }, + "zeek_ecat_aoe_info.command": { "type": "keyword" }, + "zeek_ecat_aoe_info.data": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_ecat_aoe_info.orig_port": { "type": "keyword" }, + "zeek_ecat_aoe_info.resp_port": { "type": "keyword" }, + "zeek_ecat_aoe_info.state": { "type": "keyword" }, + "zeek_ecat_arp_info.arp_type": { "type": "keyword" }, + "zeek_ecat_arp_info.orig_hw_addr": { "type": "keyword" }, + "zeek_ecat_arp_info.orig_proto_addr": { "type": "keyword" }, + "zeek_ecat_arp_info.resp_hw_addr": { "type": "keyword" }, + "zeek_ecat_arp_info.resp_proto_addr": { "type": "keyword" }, + "zeek_ecat_coe_info.dataoffset": { "type": "keyword" }, + "zeek_ecat_coe_info.index": { "type": "keyword" }, + "zeek_ecat_coe_info.number": { "type": "keyword" }, + "zeek_ecat_coe_info.req_resp": { "type": "keyword" }, + "zeek_ecat_coe_info.subindex": { "type": "keyword" }, + "zeek_ecat_coe_info.type": { "type": "keyword" }, + "zeek_ecat_dev_info.build": { "type": "keyword" }, + "zeek_ecat_dev_info.dev_type": { "type": "keyword" }, + "zeek_ecat_dev_info.dpram": { "type": "keyword" }, + "zeek_ecat_dev_info.features": { "type": "keyword" }, + "zeek_ecat_dev_info.fmmucnt": { "type": "keyword" }, + "zeek_ecat_dev_info.ports": { "type": "keyword" }, + "zeek_ecat_dev_info.revision": { "type": "keyword" }, + "zeek_ecat_dev_info.slave_id": { "type": "keyword" }, + "zeek_ecat_dev_info.smcount": { "type": "keyword" }, + "zeek_ecat_foe_info.data": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_ecat_foe_info.error_code": { "type": "keyword" }, + "zeek_ecat_foe_info.filename": { "type": "keyword" }, + "zeek_ecat_foe_info.opcode": { "type": "keyword" }, + "zeek_ecat_foe_info.packet_num": { "type": "keyword" }, + "zeek_ecat_foe_info.reserved": { "type": "keyword" }, + "zeek_ecat_log_address.command": { "type": "keyword" }, + "zeek_ecat_log_address.data": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_ecat_log_address.length": { "type": "integer" }, + "zeek_ecat_log_address.log_addr": { "type": "keyword" }, + "zeek_ecat_registers.command": { "type": "keyword" }, + "zeek_ecat_registers.data": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_ecat_registers.register_addr": { "type": "keyword" }, + "zeek_ecat_registers.register_type": { "type": "keyword" }, + "zeek_ecat_registers.slave_addr": { "type": "keyword" }, + "zeek_ecat_soe_info.drive_num": { "type": "keyword" }, + "zeek_ecat_soe_info.element": { "type": "keyword" }, + "zeek_ecat_soe_info.error": { "type": "keyword" }, + "zeek_ecat_soe_info.incomplete": { "type": "keyword" }, + "zeek_ecat_soe_info.index": { "type": "keyword" }, + "zeek_ecat_soe_info.opcode": { "type": "keyword" }, + "zeek_enip.enip_command": { "type": "keyword" }, + "zeek_enip.length": { "type": "integer" }, + "zeek_enip.session_handle": { "type": "keyword" }, + "zeek_enip.enip_status": { "type": "keyword" }, + "zeek_enip.sender_context": { "type": "keyword" }, + "zeek_enip.options": { "type": "keyword" }, + "zeek_files.analyzers": { "type": "keyword" }, + "zeek_files.conn_uids": { "type": "keyword" }, + "zeek_files.depth": { "type": "integer" }, + "zeek_files.duration": { "type": "float" }, + "zeek_files.extracted": { "type": "keyword" }, + "zeek_files.extracted_cutoff": { "type": "keyword" }, + "zeek_files.extracted_size": { "type": "integer" }, + "zeek_files.filename": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_files.is_orig": { "type": "keyword" }, + "zeek_files.local_orig": { "type": "keyword" }, + "zeek_files.md5": { "type": "keyword" }, + "zeek_files.mime_type": { "type": "keyword" }, + "zeek_files.missing_bytes": { "type": "long" }, + "zeek_files.overflow_bytes": { "type": "long" }, + "zeek_files.parent_fuid": { "type": "keyword" }, + "zeek_files.rx_hosts": { "type": "ip" }, + "zeek_files.seen_bytes": { "type": "long" }, + "zeek_files.sha1": { "type": "keyword" }, + "zeek_files.sha256": { "type": "keyword" }, + "zeek_files.source": { "type": "keyword" }, + "zeek_files.timedout": { "type": "keyword" }, + "zeek_files.total_bytes": { "type": "long" }, + "zeek_files.tx_hosts": { "type": "ip" }, + "zeek_ftp.arg": { "type": "keyword" }, + "zeek_ftp.command": { "type": "keyword" }, + "zeek_ftp.data_channel_orig_h": { "type": "ip" }, + "zeek_ftp.data_channel_passive": { "type": "keyword" }, + "zeek_ftp.data_channel_resp_h": { "type": "ip" }, + "zeek_ftp.data_channel_resp_p": { "type": "integer" }, + "zeek_ftp.file_size": { "type": "long" }, + "zeek_ftp.mime_type": { "type": "keyword" }, + "zeek_ftp.reply_code": { "type": "short" }, + "zeek_ftp.reply_msg": { "type": "keyword" }, + "zeek_gquic.cyu": { "type": "keyword" }, + "zeek_gquic.cyutags": { "type": "keyword" }, + "zeek_gquic.server_name": { "type": "keyword" }, + "zeek_gquic.tag_count": { "type": "integer" }, + "zeek_gquic.user_agent": { "type": "keyword", "ignore_above": 256, "fields": { "text": { "type": "text" } } }, + "zeek_gquic.version": { "type": "keyword" }, + "zeek_http.host": { "type": "keyword" }, + "zeek_http.info_code": { "type": "short" }, + "zeek_http.info_msg": { "type": "keyword" }, + "zeek_http.method": { "type": "keyword" }, + "zeek_http.orig_filenames": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_http.orig_fuids": { "type": "keyword" }, + "zeek_http.orig_mime_types": { "type": "keyword" }, + "zeek_http.origin": { "type": "keyword" }, + "zeek_http.post_password_plain": { "type": "keyword", "ignore_above": 256, "fields": { "text": { "type": "text" } } }, + "zeek_http.post_username": { "type": "keyword", "ignore_above": 256, "fields": { "text": { "type": "text" } } }, + "zeek_http.proxied": { "type": "keyword" }, + "zeek_http.referrer": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_http.request_body_len": { "type": "long" }, + "zeek_http.resp_filenames": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_http.resp_fuids": { "type": "keyword" }, + "zeek_http.resp_mime_types": { "type": "keyword" }, + "zeek_http.response_body_len": { "type": "long" }, + "zeek_http.status_code": { "type": "short" }, + "zeek_http.status_msg": { "type": "keyword", "ignore_above": 1024 }, + "zeek_http.tags": { "type": "keyword" }, + "zeek_http.trans_depth": { "type": "integer" }, + "zeek_http.uri": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_http.user_agent": { "type": "keyword", "ignore_above": 256, "fields": { "text": { "type": "text" } } }, + "zeek_http.version": { "type": "keyword" }, + "zeek_intel.file_description": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_intel.file_mime_type": { "type": "keyword" }, + "zeek_intel.indicator": { "type": "keyword" }, + "zeek_intel.indicator_type": { "type": "keyword" }, + "zeek_intel.matched": { "type": "keyword" }, + "zeek_intel.seen_node": { "type": "keyword" }, + "zeek_intel.seen_where": { "type": "keyword" }, + "zeek_intel.sources": { "type": "keyword" }, + "zeek_ipsec.is_orig": { "type": "keyword" }, + "zeek_ipsec.initiator_spi": { "type": "keyword" }, + "zeek_ipsec.responder_spi": { "type": "keyword" }, + "zeek_ipsec.maj_ver": { "type": "integer" }, + "zeek_ipsec.min_ver": { "type": "integer" }, + "zeek_ipsec.exchange_type": { "type": "integer" }, + "zeek_ipsec.flag_e": { "type": "keyword" }, + "zeek_ipsec.flag_c": { "type": "keyword" }, + "zeek_ipsec.flag_a": { "type": "keyword" }, + "zeek_ipsec.flag_i": { "type": "keyword" }, + "zeek_ipsec.flag_v": { "type": "keyword" }, + "zeek_ipsec.flag_r": { "type": "keyword" }, + "zeek_ipsec.flags": { "type": "keyword" }, + "zeek_ipsec.message_id": { "type": "keyword" }, + "zeek_ipsec.vendor_ids": { "type": "keyword" }, + "zeek_ipsec.notify_messages": { "type": "keyword" }, + "zeek_ipsec.transforms": { "type": "keyword" }, + "zeek_ipsec.ke_dh_groups": { "type": "integer" }, + "zeek_ipsec.proposals": { "type": "integer" }, + "zeek_ipsec.certificates": { "type": "keyword" }, + "zeek_ipsec.transform_attributes": { "type": "keyword" }, + "zeek_ipsec.length": { "type": "integer" }, + "zeek_ipsec.hash": { "type": "keyword" }, + "zeek_irc.addl": { "type": "keyword" }, + "zeek_irc.command": { "type": "keyword" }, + "zeek_irc.dcc_file_name": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_irc.dcc_file_size": { "type": "long" }, + "zeek_irc.dcc_mime_type": { "type": "keyword" }, + "zeek_irc.nick": { "type": "keyword" }, + "zeek_irc.value": { "type": "keyword" }, + "zeek_iso_cotp.pdu_type": { "type": "keyword" }, + "zeek_kerberos.cipher": { "type": "keyword" }, + "zeek_kerberos.client_cert_fuid": { "type": "keyword" }, + "zeek_kerberos.client_cert_subject": { "type": "keyword" }, + "zeek_kerberos.cname": { "type": "keyword" }, + "zeek_kerberos.error_msg": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_kerberos.forwardable": { "type": "keyword" }, + "zeek_kerberos.from": { "type": "date" }, + "zeek_kerberos.renewable": { "type": "keyword" }, + "zeek_kerberos.request_type": { "type": "keyword" }, + "zeek_kerberos.server_cert_fuid": { "type": "keyword" }, + "zeek_kerberos.server_cert_subject": { "type": "keyword" }, + "zeek_kerberos.sname": { "type": "keyword" }, + "zeek_kerberos.success": { "type": "keyword" }, + "zeek_kerberos.till": { "type": "date" }, + "zeek_known_certs.issuer_subject": { "type": "keyword" }, + "zeek_known_certs.serial": { "type": "keyword" }, + "zeek_known_certs.subject": { "type": "keyword" }, + "zeek_known_modbus.device_type": { "type": "keyword" }, + "zeek_ldap.message_id": { "type": "keyword" }, + "zeek_ldap.version": { "type": "integer" }, + "zeek_ldap.operation": { "type": "keyword" }, + "zeek_ldap.result_code": { "type": "keyword" }, + "zeek_ldap.result_message": { "type": "keyword" }, + "zeek_ldap.object": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_ldap.argument": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_ldap_search.message_id": { "type": "keyword" }, + "zeek_ldap_search.scope": { "type": "keyword" }, + "zeek_ldap_search.deref": { "type": "keyword" }, + "zeek_ldap_search.base_object": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_ldap_search.result_count": { "type": "integer" }, + "zeek_ldap_search.result_code": { "type": "keyword" }, + "zeek_ldap_search.result_message": { "type": "keyword" }, + "zeek_login.client_user": { "type": "keyword", "ignore_above": 256, "fields": { "text": { "type": "text" } } }, + "zeek_login.confused": { "type": "keyword" }, + "zeek_login.success": { "type": "keyword" }, + "zeek_modbus.exception": { "type": "keyword" }, + "zeek_modbus.func": { "type": "keyword" }, + "zeek_modbus_detailed.unit_id": { "type": "integer" }, + "zeek_modbus_detailed.func": { "type": "keyword" }, + "zeek_modbus_detailed.network_direction": { "type": "keyword" }, + "zeek_modbus_detailed.address": { "type": "integer" }, + "zeek_modbus_detailed.quantity": { "type": "integer" }, + "zeek_modbus_detailed.values": { "type": "keyword" }, + "zeek_modbus_mask_write_register.unit_id": { "type": "integer" }, + "zeek_modbus_mask_write_register.func": { "type": "keyword" }, + "zeek_modbus_mask_write_register.network_direction": { "type": "keyword" }, + "zeek_modbus_mask_write_register.address": { "type": "integer" }, + "zeek_modbus_mask_write_register.and_mask": { "type": "integer" }, + "zeek_modbus_mask_write_register.or_mask": { "type": "integer" }, + "zeek_modbus_read_write_multiple_registers.unit_id": { "type": "integer" }, + "zeek_modbus_read_write_multiple_registers.func": { "type": "keyword" }, + "zeek_modbus_read_write_multiple_registers.network_direction": { "type": "keyword" }, + "zeek_modbus_read_write_multiple_registers.write_start_address": { "type": "integer" }, + "zeek_modbus_read_write_multiple_registers.write_registers": { "type": "keyword" }, + "zeek_modbus_read_write_multiple_registers.read_start_address": { "type": "integer" }, + "zeek_modbus_read_write_multiple_registers.read_quantity": { "type": "integer" }, + "zeek_modbus_read_write_multiple_registers.read_registers": { "type": "keyword" }, + "zeek_modbus_register_change.delta": { "type": "float" }, + "zeek_modbus_register_change.new_val": { "type": "integer" }, + "zeek_modbus_register_change.old_val": { "type": "integer" }, + "zeek_modbus_register_change.register": { "type": "integer" }, + "zeek_mqtt_connect.client_id": { "type": "keyword" }, + "zeek_mqtt_connect.connect_status": { "type": "keyword" }, + "zeek_mqtt_connect.proto_name": { "type": "keyword" }, + "zeek_mqtt_connect.proto_version": { "type": "keyword" }, + "zeek_mqtt_connect.will_payload": { "type": "keyword" }, + "zeek_mqtt_connect.will_topic": { "type": "keyword" }, + "zeek_mqtt_publish.from_client": { "type": "keyword" }, + "zeek_mqtt_publish.payload": { "type": "keyword" }, + "zeek_mqtt_publish.payload_len": { "type": "integer" }, + "zeek_mqtt_publish.qos": { "type": "keyword" }, + "zeek_mqtt_publish.retain": { "type": "keyword" }, + "zeek_mqtt_publish.status": { "type": "keyword" }, + "zeek_mqtt_publish.topic": { "type": "keyword" }, + "zeek_mqtt_subscribe.ack": { "type": "keyword" }, + "zeek_mqtt_subscribe.action": { "type": "keyword" }, + "zeek_mqtt_subscribe.granted_qos_level": { "type": "integer" }, + "zeek_mqtt_subscribe.qos_levels": { "type": "integer" }, + "zeek_mqtt_subscribe.topics": { "type": "keyword" }, + "zeek_mysql.arg": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_mysql.cmd": { "type": "keyword" }, + "zeek_mysql.response": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_mysql.rows": { "type": "integer" }, + "zeek_mysql.success": { "type": "keyword" }, + "zeek_noise.msg_type": { "type": "keyword" }, + "zeek_noise.sender": { "type": "keyword" }, + "zeek_noise.receiver": { "type": "keyword" }, + "zeek_noise.unenc_ephemeral": { "type": "keyword" }, + "zeek_noise.enc_static": { "type": "keyword" }, + "zeek_noise.enc_timestamp": { "type": "keyword" }, + "zeek_noise.enc_nothing": { "type": "keyword" }, + "zeek_noise.nonce": { "type": "keyword" }, + "zeek_noise.enc_cookie": { "type": "keyword" }, + "zeek_noise.mac1": { "type": "keyword" }, + "zeek_noise.mac2": { "type": "keyword" }, + "zeek_noise.enc_payload_len": { "type": "integer" }, + "zeek_noise.enc_payload": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_notice.actions": { "type": "keyword" }, + "zeek_notice.category": { "type": "keyword" }, + "zeek_notice.dropped": { "type": "keyword" }, + "zeek_notice.dst": { "type": "ip" }, + "zeek_notice.file_desc": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_notice.file_mime_type": { "type": "keyword" }, + "zeek_notice.msg": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_notice.n": { "type": "integer" }, + "zeek_notice.note": { "type": "keyword" }, + "zeek_notice.p": { "type": "integer" }, + "zeek_notice.peer_descr": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_notice.remote_location_city": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_notice.remote_location_country_code": { "type": "keyword" }, + "zeek_notice.remote_location_latitude": { "type": "float" }, + "zeek_notice.remote_location_longitude": { "type": "float" }, + "zeek_notice.remote_location_region": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_notice.src": { "type": "ip" }, + "zeek_notice.sub": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_notice.sub_category": { "type": "keyword" }, + "zeek_notice.suppress_for": { "type": "float" }, + "zeek_ntlm.domain": { "type": "keyword" }, + "zeek_ntlm.host": { "type": "keyword" }, + "zeek_ntlm.server_dns_computer": { "type": "keyword" }, + "zeek_ntlm.server_nb_computer": { "type": "keyword" }, + "zeek_ntlm.server_tree": { "type": "keyword" }, + "zeek_ntlm.status": { "type": "keyword" }, + "zeek_ntlm.success": { "type": "keyword" }, + "zeek_ntp.mode": { "type": "keyword" }, + "zeek_ntp.mode_str": { "type": "keyword" }, + "zeek_ntp.num_exts": { "type": "integer" }, + "zeek_ntp.org_time": { "type": "date" }, + "zeek_ntp.poll": { "type": "float" }, + "zeek_ntp.precision": { "type": "float" }, + "zeek_ntp.rec_time": { "type": "date" }, + "zeek_ntp.ref_id": { "type": "keyword" }, + "zeek_ntp.ref_time": { "type": "date" }, + "zeek_ntp.root_delay": { "type": "float" }, + "zeek_ntp.root_disp": { "type": "float" }, + "zeek_ntp.stratum": { "type": "keyword" }, + "zeek_ntp.version": { "type": "integer" }, + "zeek_ntp.xmt_time": { "type": "date" }, + "zeek_pe.compile_ts": { "type": "date" }, + "zeek_pe.has_cert_table": { "type": "keyword" }, + "zeek_pe.has_debug_data": { "type": "keyword" }, + "zeek_pe.has_export_table": { "type": "keyword" }, + "zeek_pe.has_import_table": { "type": "keyword" }, + "zeek_pe.is_64bit": { "type": "keyword" }, + "zeek_pe.is_exe": { "type": "keyword" }, + "zeek_pe.machine": { "type": "keyword" }, + "zeek_pe.os": { "type": "keyword" }, + "zeek_pe.section_names": { "type": "keyword" }, + "zeek_pe.subsystem": { "type": "keyword" }, + "zeek_pe.uses_aslr": { "type": "keyword" }, + "zeek_pe.uses_code_integrity": { "type": "keyword" }, + "zeek_pe.uses_dep": { "type": "keyword" }, + "zeek_pe.uses_seh": { "type": "keyword" }, + "zeek_profinet.block_version": { "type": "keyword" }, + "zeek_profinet.index": { "type": "keyword" }, + "zeek_profinet.operation_type": { "type": "keyword" }, + "zeek_profinet.slot_number": { "type": "integer" }, + "zeek_profinet.subslot_number": { "type": "integer" }, + "zeek_profinet_dce_rpc.activity_uuid": { "type": "keyword" }, + "zeek_profinet_dce_rpc.interface_uuid": { "type": "keyword" }, + "zeek_profinet_dce_rpc.object_uuid": { "type": "keyword" }, + "zeek_profinet_dce_rpc.operation": { "type": "keyword" }, + "zeek_profinet_dce_rpc.packet_type": { "type": "keyword" }, + "zeek_profinet_dce_rpc.server_boot_time": { "type": "integer" }, + "zeek_profinet_dce_rpc.version": { "type": "integer" }, + "zeek_radius.connect_info": { "type": "keyword" }, + "zeek_radius.framed_addr": { "type": "ip" }, + "zeek_radius.mac": { "type": "keyword" }, + "zeek_radius.reply_msg": { "type": "keyword" }, + "zeek_radius.result": { "type": "keyword" }, + "zeek_radius.ttl": { "type": "float" }, + "zeek_radius.tunnel_client": { "type": "keyword" }, + "zeek_rdp.cert_count": { "type": "integer" }, + "zeek_rdp.cert_permanent": { "type": "keyword" }, + "zeek_rdp.cert_type": { "type": "keyword" }, + "zeek_rdp.client_build": { "type": "keyword" }, + "zeek_rdp.client_channels": { "type": "keyword" }, + "zeek_rdp.client_dig_product_id": { "type": "keyword" }, + "zeek_rdp.client_name": { "type": "keyword" }, + "zeek_rdp.cookie": { "type": "keyword" }, + "zeek_rdp.desktop_height": { "type": "integer" }, + "zeek_rdp.desktop_width": { "type": "integer" }, + "zeek_rdp.encryption_level": { "type": "keyword" }, + "zeek_rdp.encryption_method": { "type": "keyword" }, + "zeek_rdp.keyboard_layout": { "type": "keyword" }, + "zeek_rdp.requested_color_depth": { "type": "keyword" }, + "zeek_rdp.result": { "type": "keyword" }, + "zeek_rdp.security_protocol": { "type": "keyword" }, + "zeek_rfb.auth": { "type": "keyword" }, + "zeek_rfb.authentication_method": { "type": "keyword" }, + "zeek_rfb.client_major_version": { "type": "keyword" }, + "zeek_rfb.client_minor_version": { "type": "keyword" }, + "zeek_rfb.desktop_name": { "type": "keyword" }, + "zeek_rfb.height": { "type": "integer" }, + "zeek_rfb.server_major_version": { "type": "keyword" }, + "zeek_rfb.server_minor_version": { "type": "keyword" }, + "zeek_rfb.share_flag": { "type": "keyword" }, + "zeek_rfb.width": { "type": "integer" }, + "zeek_s7comm.data_info": { "type": "keyword" }, + "zeek_s7comm.item_count": { "type": "integer" }, + "zeek_s7comm.parameter": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_s7comm.parameters.class": { "type": "keyword" }, + "zeek_s7comm.parameters.code": { "type": "keyword" }, + "zeek_s7comm.parameters.group": { "type": "keyword" }, + "zeek_s7comm.parameters.mode": { "type": "keyword" }, + "zeek_s7comm.parameters.sub": { "type": "keyword" }, + "zeek_s7comm.parameters.type": { "type": "keyword" }, + "zeek_s7comm.rosctr": { "type": "keyword" }, + "zeek_signatures.engine": { "type": "keyword" }, + "zeek_signatures.event_message": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_signatures.hits": { "type": "nested" }, + "zeek_signatures.host_count": { "type": "integer" }, + "zeek_signatures.note": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_signatures.signature_count": { "type": "integer" }, + "zeek_signatures.signature_id": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_signatures.sub_message": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_sip.call_id": { "type": "keyword" }, + "zeek_sip.content_type": { "type": "keyword" }, + "zeek_sip.date": { "type": "keyword" }, + "zeek_sip.method": { "type": "keyword" }, + "zeek_sip.reply_to": { "type": "keyword" }, + "zeek_sip.request_body_len": { "type": "integer" }, + "zeek_sip.request_from": { "type": "keyword" }, + "zeek_sip.request_path": { "type": "keyword" }, + "zeek_sip.request_to": { "type": "keyword" }, + "zeek_sip.response_body_len": { "type": "integer" }, + "zeek_sip.response_from": { "type": "keyword" }, + "zeek_sip.response_path": { "type": "keyword" }, + "zeek_sip.response_to": { "type": "keyword" }, + "zeek_sip.seq": { "type": "keyword" }, + "zeek_sip.status_code": { "type": "short" }, + "zeek_sip.status_msg": { "type": "keyword" }, + "zeek_sip.subject": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_sip.trans_depth": { "type": "integer" }, + "zeek_sip.uri": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_sip.user_agent": { "type": "keyword", "ignore_above": 256, "fields": { "text": { "type": "text" } } }, + "zeek_sip.version": { "type": "keyword" }, + "zeek_sip.warning": { "type": "keyword" }, + "zeek_smb_cmd.argument": { "type": "keyword" }, + "zeek_smb_cmd.command": { "type": "keyword" }, + "zeek_smb_cmd.rtt": { "type": "float" }, + "zeek_smb_cmd.status": { "type": "keyword" }, + "zeek_smb_cmd.sub_command": { "type": "keyword" }, + "zeek_smb_cmd.tree": { "type": "keyword" }, + "zeek_smb_cmd.tree_service": { "type": "keyword" }, + "zeek_smb_cmd.user": { "type": "keyword", "ignore_above": 256, "fields": { "text": { "type": "text" } } }, + "zeek_smb_cmd.version": { "type": "keyword" }, + "zeek_smb_files.action": { "type": "keyword" }, + "zeek_smb_files.data_len_req": { "type": "long" }, + "zeek_smb_files.data_len_rsp": { "type": "long" }, + "zeek_smb_files.data_offset_req": { "type": "long" }, + "zeek_smb_files.name": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_smb_files.path": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_smb_files.prev_name": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_smb_files.size": { "type": "long" }, + "zeek_smb_files.times_accessed": { "type": "date" }, + "zeek_smb_files.times_changed": { "type": "date" }, + "zeek_smb_files.times_created": { "type": "date" }, + "zeek_smb_files.times_modified": { "type": "date" }, + "zeek_smb_files.ts": { "type": "date" }, + "zeek_smb_mapping.native_file_system": { "type": "keyword" }, + "zeek_smb_mapping.path": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_smb_mapping.resource_type": { "type": "keyword" }, + "zeek_smb_mapping.share_type": { "type": "keyword" }, + "zeek_smtp.cc": { "type": "keyword" }, + "zeek_smtp.date": { "type": "keyword" }, + "zeek_smtp.first_received": { "type": "keyword" }, + "zeek_smtp.from": { "type": "keyword" }, + "zeek_smtp.helo": { "type": "keyword" }, + "zeek_smtp.in_reply_to": { "type": "keyword" }, + "zeek_smtp.is_webmail": { "type": "keyword" }, + "zeek_smtp.last_reply": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_smtp.last_reply_code": { "type": "keyword" }, + "zeek_smtp.last_reply_msg": { "type": "keyword" }, + "zeek_smtp.mailfrom": { "type": "keyword" }, + "zeek_smtp.msg_id": { "type": "keyword" }, + "zeek_smtp.path": { "type": "ip" }, + "zeek_smtp.rcptto": { "type": "keyword" }, + "zeek_smtp.reply_to": { "type": "keyword" }, + "zeek_smtp.second_received": { "type": "keyword" }, + "zeek_smtp.subject": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_smtp.tls": { "type": "keyword" }, + "zeek_smtp.to": { "type": "keyword" }, + "zeek_smtp.trans_depth": { "type": "integer" }, + "zeek_smtp.user_agent": { "type": "keyword", "ignore_above": 256, "fields": { "text": { "type": "text" } } }, + "zeek_smtp.x_originating_ip": { "type": "ip" }, + "zeek_snmp.community": { "type": "keyword" }, + "zeek_snmp.display_string": { "type": "keyword" }, + "zeek_snmp.duration": { "type": "float" }, + "zeek_snmp.get_bulk_requests": { "type": "integer" }, + "zeek_snmp.get_requests": { "type": "integer" }, + "zeek_snmp.get_responses": { "type": "integer" }, + "zeek_snmp.set_requests": { "type": "integer" }, + "zeek_snmp.up_since": { "type": "date" }, + "zeek_snmp.version": { "type": "keyword" }, + "zeek_socks.bound_host": { "type": "ip" }, + "zeek_socks.bound_name": { "type": "keyword" }, + "zeek_socks.bound_port": { "type": "integer" }, + "zeek_socks.request_host": { "type": "ip" }, + "zeek_socks.request_name": { "type": "keyword" }, + "zeek_socks.request_port": { "type": "integer" }, + "zeek_socks.server_status": { "type": "keyword" }, + "zeek_socks.version": { "type": "integer" }, + "zeek_software.name": { "type": "keyword", "ignore_above": 256, "fields": { "text": { "type": "text" } } }, + "zeek_software.software_type": { "type": "keyword" }, + "zeek_software.unparsed_version": { "type": "keyword", "ignore_above": 1024 }, + "zeek_software.version_addl": { "type": "keyword", "ignore_above": 1024 }, + "zeek_software.version_major": { "type": "integer" }, + "zeek_software.version_minor": { "type": "integer" }, + "zeek_software.version_minor2": { "type": "integer" }, + "zeek_software.version_minor3": { "type": "integer" }, + "zeek_ssh.auth_attempts": { "type": "integer" }, + "zeek_ssh.auth_success": { "type": "keyword" }, + "zeek_ssh.cipher_alg": { "type": "keyword" }, + "zeek_ssh.client": { "type": "keyword" }, + "zeek_ssh.compression_alg": { "type": "keyword" }, + "zeek_ssh.cshka": { "type": "keyword" }, + "zeek_ssh.direction": { "type": "keyword" }, + "zeek_ssh.hassh": { "type": "keyword" }, + "zeek_ssh.hasshAlgorithms": { "type": "keyword" }, + "zeek_ssh.hasshServer": { "type": "keyword" }, + "zeek_ssh.hasshServerAlgorithms": { "type": "keyword" }, + "zeek_ssh.hasshVersion": { "type": "keyword" }, + "zeek_ssh.host_key": { "type": "keyword" }, + "zeek_ssh.host_key_alg": { "type": "keyword" }, + "zeek_ssh.kex_alg": { "type": "keyword" }, + "zeek_ssh.mac_alg": { "type": "keyword" }, + "zeek_ssh.remote_location_city": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_ssh.remote_location_country_code": { "type": "keyword" }, + "zeek_ssh.remote_location_latitude": { "type": "float" }, + "zeek_ssh.remote_location_longitude": { "type": "float" }, + "zeek_ssh.remote_location_region": { "type": "keyword", "ignore_above": 128, "fields": { "text": { "type": "text" } } }, + "zeek_ssh.server": { "type": "keyword" }, + "zeek_ssh.sshka": { "type": "keyword" }, + "zeek_ssh.version": { "type": "integer" }, + "zeek_ssl.cert_chain_fuids": { "type": "keyword" }, + "zeek_ssl.cipher": { "type": "keyword" }, + "zeek_ssl.client_cert_chain_fuids": { "type": "keyword" }, + "zeek_ssl.client_issuer.C": { "type": "keyword" }, + "zeek_ssl.client_issuer.CN": { "type": "keyword" }, + "zeek_ssl.client_issuer.DC": { "type": "keyword" }, + "zeek_ssl.client_issuer.emailAddress": { "type": "keyword" }, + "zeek_ssl.client_issuer.GN": { "type": "keyword" }, + "zeek_ssl.client_issuer.initials": { "type": "keyword" }, + "zeek_ssl.client_issuer.L": { "type": "keyword" }, + "zeek_ssl.client_issuer.O": { "type": "keyword" }, + "zeek_ssl.client_issuer.OU": { "type": "keyword" }, + "zeek_ssl.client_issuer.pseudonym": { "type": "keyword" }, + "zeek_ssl.client_issuer.serialNumber": { "type": "keyword" }, + "zeek_ssl.client_issuer.SN": { "type": "keyword" }, + "zeek_ssl.client_issuer.ST": { "type": "keyword" }, + "zeek_ssl.client_issuer.title": { "type": "keyword" }, + "zeek_ssl.client_issuer_full": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_ssl.client_subject.C": { "type": "keyword" }, + "zeek_ssl.client_subject.CN": { "type": "keyword" }, + "zeek_ssl.client_subject.emailAddress": { "type": "keyword" }, + "zeek_ssl.client_subject.GN": { "type": "keyword" }, + "zeek_ssl.client_subject.initials": { "type": "keyword" }, + "zeek_ssl.client_subject.L": { "type": "keyword" }, + "zeek_ssl.client_subject.O": { "type": "keyword" }, + "zeek_ssl.client_subject.OU": { "type": "keyword" }, + "zeek_ssl.client_subject.pseudonym": { "type": "keyword" }, + "zeek_ssl.client_subject.serialNumber": { "type": "keyword" }, + "zeek_ssl.client_subject.SN": { "type": "keyword" }, + "zeek_ssl.client_subject.ST": { "type": "keyword" }, + "zeek_ssl.client_subject.title": { "type": "keyword" }, + "zeek_ssl.client_subject_full": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_ssl.curve": { "type": "keyword" }, + "zeek_ssl.established": { "type": "keyword" }, + "zeek_ssl.issuer.C": { "type": "keyword" }, + "zeek_ssl.issuer.CN": { "type": "keyword" }, + "zeek_ssl.issuer.DC": { "type": "keyword" }, + "zeek_ssl.issuer.emailAddress": { "type": "keyword" }, + "zeek_ssl.issuer.GN": { "type": "keyword" }, + "zeek_ssl.issuer.initials": { "type": "keyword" }, + "zeek_ssl.issuer.L": { "type": "keyword" }, + "zeek_ssl.issuer.O": { "type": "keyword" }, + "zeek_ssl.issuer.OU": { "type": "keyword" }, + "zeek_ssl.issuer.pseudonym": { "type": "keyword" }, + "zeek_ssl.issuer.serialNumber": { "type": "keyword" }, + "zeek_ssl.issuer.SN": { "type": "keyword" }, + "zeek_ssl.issuer.ST": { "type": "keyword" }, + "zeek_ssl.issuer.title": { "type": "keyword" }, + "zeek_ssl.issuer_full": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_ssl.ja3": { "type": "keyword" }, + "zeek_ssl.ja3_desc": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_ssl.ja3s": { "type": "keyword" }, + "zeek_ssl.ja3s_desc": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_ssl.last_alert": { "type": "keyword" }, + "zeek_ssl.next_protocol": { "type": "keyword" }, + "zeek_ssl.resumed": { "type": "keyword" }, + "zeek_ssl.server_name": { "type": "keyword" }, + "zeek_ssl.ssl_version": { "type": "keyword" }, + "zeek_ssl.subject.C": { "type": "keyword" }, + "zeek_ssl.subject.CN": { "type": "keyword" }, + "zeek_ssl.subject.description": { "type": "keyword" }, + "zeek_ssl.subject.emailAddress": { "type": "keyword" }, + "zeek_ssl.subject.GN": { "type": "keyword" }, + "zeek_ssl.subject.initials": { "type": "keyword" }, + "zeek_ssl.subject.L": { "type": "keyword" }, + "zeek_ssl.subject.O": { "type": "keyword" }, + "zeek_ssl.subject.OU": { "type": "keyword" }, + "zeek_ssl.subject.postalCode": { "type": "keyword" }, + "zeek_ssl.subject.pseudonym": { "type": "keyword" }, + "zeek_ssl.subject.serialNumber": { "type": "keyword" }, + "zeek_ssl.subject.SN": { "type": "keyword" }, + "zeek_ssl.subject.ST": { "type": "keyword" }, + "zeek_ssl.subject.street": { "type": "keyword" }, + "zeek_ssl.subject.title": { "type": "keyword" }, + "zeek_ssl.subject_full": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_ssl.validation_status": { "type": "keyword" }, + "zeek_syslog.facility": { "type": "keyword" }, + "zeek_syslog.message": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_syslog.severity": { "type": "keyword" }, + "zeek_tds.command": { "type": "keyword" }, + "zeek_tds_rpc.parameter": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_tds_rpc.parameters": { "type": "nested" }, + "zeek_tds_rpc.procedure_name": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_tds_sql_batch.header_type": { "type": "keyword" }, + "zeek_tds_sql_batch.query": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_tftp.wrq": { "type": "keyword" }, + "zeek_tftp.fname": { "type": "keyword" }, + "zeek_tftp.mode": { "type": "keyword" }, + "zeek_tftp.uid_data": { "type": "keyword" }, + "zeek_tftp.size": { "type": "integer" }, + "zeek_tftp.block_sent": { "type": "integer" }, + "zeek_tftp.block_acked": { "type": "integer" }, + "zeek_tftp.error_code": { "type": "integer" }, + "zeek_tftp.error_msg": { "type": "keyword" }, + "zeek_tunnel.action": { "type": "keyword" }, + "zeek_tunnel.tunnel_type": { "type": "keyword" }, + "zeek_weird.addl": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } }, + "zeek_weird.name": { "type": "keyword" }, + "zeek_weird.notice": { "type": "keyword" }, + "zeek_weird.peer": { "type": "keyword" }, + "zeek_wireguard.established": { "type": "keyword" }, + "zeek_wireguard.initiations": { "type": "integer" }, + "zeek_wireguard.responses": { "type": "integer" }, + "zeek_x509.basic_constraints_ca": { "type": "keyword" }, + "zeek_x509.basic_constraints_path_len": { "type": "integer" }, + "zeek_x509.certificate_curve": { "type": "keyword" }, + "zeek_x509.certificate_exponent": { "type": "keyword" }, + "zeek_x509.certificate_issuer.C": { "type": "keyword" }, + "zeek_x509.certificate_issuer.CN": { "type": "keyword" }, + "zeek_x509.certificate_issuer.DC": { "type": "keyword" }, + "zeek_x509.certificate_issuer.emailAddress": { "type": "keyword" }, + "zeek_x509.certificate_issuer.GN": { "type": "keyword" }, + "zeek_x509.certificate_issuer.initials": { "type": "keyword" }, + "zeek_x509.certificate_issuer.L": { "type": "keyword" }, + "zeek_x509.certificate_issuer.O": { "type": "keyword" }, + "zeek_x509.certificate_issuer.OU": { "type": "keyword" }, + "zeek_x509.certificate_issuer.pseudonym": { "type": "keyword" }, + "zeek_x509.certificate_issuer.serialNumber": { "type": "keyword" }, + "zeek_x509.certificate_issuer.SN": { "type": "keyword" }, + "zeek_x509.certificate_issuer.ST": { "type": "keyword" }, + "zeek_x509.certificate_issuer.title": { "type": "keyword" }, + "zeek_x509.certificate_issuer_full": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_x509.certificate_key_alg": { "type": "keyword" }, + "zeek_x509.certificate_key_length": { "type": "integer" }, + "zeek_x509.certificate_key_type": { "type": "keyword" }, + "zeek_x509.certificate_not_valid_after": { "type": "date" }, + "zeek_x509.certificate_not_valid_before": { "type": "date" }, + "zeek_x509.certificate_serial": { "type": "keyword" }, + "zeek_x509.certificate_sig_alg": { "type": "keyword" }, + "zeek_x509.certificate_subject.C": { "type": "keyword" }, + "zeek_x509.certificate_subject.CN": { "type": "keyword" }, + "zeek_x509.certificate_subject.DC": { "type": "keyword" }, + "zeek_x509.certificate_subject.description": { "type": "keyword" }, + "zeek_x509.certificate_subject.emailAddress": { "type": "keyword" }, + "zeek_x509.certificate_subject.GN": { "type": "keyword" }, + "zeek_x509.certificate_subject.initials": { "type": "keyword" }, + "zeek_x509.certificate_subject.L": { "type": "keyword" }, + "zeek_x509.certificate_subject.O": { "type": "keyword" }, + "zeek_x509.certificate_subject.OU": { "type": "keyword" }, + "zeek_x509.certificate_subject.postalCode": { "type": "keyword" }, + "zeek_x509.certificate_subject.pseudonym": { "type": "keyword" }, + "zeek_x509.certificate_subject.serialNumber": { "type": "keyword" }, + "zeek_x509.certificate_subject.SN": { "type": "keyword" }, + "zeek_x509.certificate_subject.ST": { "type": "keyword" }, + "zeek_x509.certificate_subject.street": { "type": "keyword" }, + "zeek_x509.certificate_subject.title": { "type": "keyword" }, + "zeek_x509.certificate_subject_full": { "type": "keyword", "ignore_above": 1024, "fields": { "text": { "type": "text" } } }, + "zeek_x509.certificate_version": { "type": "integer" }, + "zeek_x509.san_dns": { "type": "keyword" }, + "zeek_x509.san_email": { "type": "keyword" }, + "zeek_x509.san_ip": { "type": "ip" }, + "zeek_x509.san_uri": { "type": "keyword", "ignore_above": 16384, "fields": { "text": { "type": "text" } } } + } + } + } +} diff --git a/Vagrant/resources/malcolm/logstash/certs/ca.crt b/Vagrant/resources/malcolm/logstash/certs/ca.crt new file mode 100644 index 0000000..4ccaa3a --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/certs/ca.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDUTCCAjmgAwIBAgIURx/1ZsLxqAK+T1Oa61Q1h3oCHeIwDQYJKoZIhvcNAQEL +BQAwODELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAklEMQ8wDQYDVQQKDAZzZW5zb3Ix +CzAJBgNVBAsMAmNhMB4XDTIxMDgwNTE0MTc0MloXDTQ4MTIyMDE0MTc0MlowODEL +MAkGA1UEBhMCVVMxCzAJBgNVBAgMAklEMQ8wDQYDVQQKDAZzZW5zb3IxCzAJBgNV +BAsMAmNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnUhTAcT8/FIf +s0EyJSkF+R334psztsY62lbj7Oh9l4EtQRk6xWebk2kl256mPfBd4Dj7FozjbGui +4otMd6tzmrw1BEhE1qRB4/tdGl/KANnGMdaWwr7qDmu5jPFrXDawRMfce8ruaQy7 +n78kfw289XvaDPYZ/FB02AIgNjK/XgtvgnGZs/Fo7PGUOccHLK9FxoAXAdrVO9we +3IRys/beaFiOMWaVDyqO/hlrwAprQi+sESWcmbXU5KA3pOlcU7KdtlzgQpxw1zVf +CocQ8hialGL+U1ypz6vzAPS49kg3/VAUTojvQioUsnPPhm1CRS8DTL4o0/kk63BT +i0kBg7S9KwIDAQABo1MwUTAdBgNVHQ4EFgQUAz1iXD+iAOMmCT2SzZfiF1GqKccw +HwYDVR0jBBgwFoAUAz1iXD+iAOMmCT2SzZfiF1GqKccwDwYDVR0TAQH/BAUwAwEB +/zANBgkqhkiG9w0BAQsFAAOCAQEAJ84aTY+0M9C7gYoEr6fklTLaiVIkSFSJZeam ++JJ0DfI2Fyc4Qu53mr9ZaWZ6qUAyun1/i590WcG8h00dQCNKy27NvI9it8o/HSNS +jnuDaXZ8Uv/u+r3vhma/BCuR5J0DQJ5t3mlJmy3VjIRDzAUhrAZFvqcO8xQDX/4l +CmCST4ACv6x/9pyzQcVTO0JjFiOaDpybC+nwuhSgr00lTdi0Hk0yHcIPlO2gXouY +uO4FLfFWkiPULN9HhW5g/bWNGIdKQDrV5Tr7b5q0lC5gnyevTV86Bl7AEfU7Rbfe +yJvG/0Wt+JC25Zrn7/bqYjj4yv+sppE5WcyCFJzC+7yTkg7wcQ== +-----END CERTIFICATE----- diff --git a/Vagrant/resources/malcolm/logstash/certs/ca.key b/Vagrant/resources/malcolm/logstash/certs/ca.key new file mode 100644 index 0000000..f10de8d --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/certs/ca.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAnUhTAcT8/FIfs0EyJSkF+R334psztsY62lbj7Oh9l4EtQRk6 +xWebk2kl256mPfBd4Dj7FozjbGui4otMd6tzmrw1BEhE1qRB4/tdGl/KANnGMdaW +wr7qDmu5jPFrXDawRMfce8ruaQy7n78kfw289XvaDPYZ/FB02AIgNjK/XgtvgnGZ +s/Fo7PGUOccHLK9FxoAXAdrVO9we3IRys/beaFiOMWaVDyqO/hlrwAprQi+sESWc +mbXU5KA3pOlcU7KdtlzgQpxw1zVfCocQ8hialGL+U1ypz6vzAPS49kg3/VAUTojv +QioUsnPPhm1CRS8DTL4o0/kk63BTi0kBg7S9KwIDAQABAoIBACbyFbvGb257V2Yn +qqcQ9W2uQgdWrwN/KmuOQHoVR6QQVIheGvNuqFNkIf+z1S5ZKqWu9l2rHVVngbnf +DFxFlCaom+gnjQQpQDeXsoIpXfe/9Re6LzKh24semZ+Q2CjJUfR2GN5+bXKNuJfh +2MOtPzD6LhAvkFeuBIDIZfmFr2U1xEMvPQ4XJd+nKupXEoaCnhIil3HSMmQ8mXSI +kJULaxhnzrDqlozxjy0//aWXlJzfPrY4gnK3H/vtkv+5oniXN3Erid/3KU+wkhdk +Ym7QmaktH10oOPGllcemJdyXKuDmg/f0r2DQ6AOMpuWW20tpxF/dSKEqdYbZMuTo +PruZo4ECgYEAz9yZzses30amdoOm9hm1/84/wftFQBdpWOkZezzwLyTQ1MZvkATQ +QcvFNGMuoAIahT9l6unCuDZpvaOHgOPt600+IiRceoxB9yAdrgRHnYhbL5lc3fQx +IJczoM+JFijHUGI6NWmVOESwP2Tr+r0GaUklaGWXEr6PhmIVKMWi2bECgYEAwbUO +4DrjXO4V8dUjtn/eIXxPk94cXNFsb7y9nHK8OTR3ZTrcpubDHC+g9tlGJaqpghpj +3zH5whUrMs6jov1G35WvcqhMT0h1zqT2MtvZDtA66SE9GN+7EU4eBJwpNoa1fXat +Yz9+ksht5Yi11BWtTlSXi4OZblhPxKwWUjbGn5sCgYA1oggVsLPMUKB3B/U2nt+1 +B3SwCrONm/zUsiCfCdQ3ddpkbGcw0+0gbQGPSOAo7SIGq5sSiAp0GaYjBmTaPvWO +tzmG+bba8AG9UA4YboZEAYD1wS6THoTmkd0Ca0pF63OyLAY07e9Qu3h2gwXYhpl2 +5Sa/zyax8XV7CSfIg2ZHoQKBgQCT7fKjWTWDJauKmKwCVlpMFkQrd4cPdzuphWkE +TjbiNOgtXatepoJARztU6I8CeveijQbST7cd+c6YqWgcM/JpE0X+ePp13a9iFWaT +ZoO4JVun6CNhmJKi35ZbDOsIYg299+DoF3hRHlGW5jV99uP4Gu/0spZ8x2J7nrQZ +Kw26mwKBgAZFdJUgIYYGvjdelUUfOhoQXccr3zsWqpl9iJt7+jCs/p/hVMQtgMPS +9wxw7Ilb9s8Q6n44E8Yc4pcnN3n5QeEwjCEO7ZOsiDy75iOIsIJdADdORUypiIPT +E1VHvilTWV/UyA1HuDGWC78rhDY1zWq0tfossy9mO8XkwTtFKROf +-----END RSA PRIVATE KEY----- diff --git a/Vagrant/resources/malcolm/logstash/certs/client.conf b/Vagrant/resources/malcolm/logstash/certs/client.conf new file mode 100644 index 0000000..90179bf --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/certs/client.conf @@ -0,0 +1,28 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# one may wish to consider not using self-signed certificates in production + +[req] +distinguished_name = req_distinguished_name +req_extensions = v3_req +prompt = no + +[req_distinguished_name] +countryName = US +stateOrProvinceName = ID +organizationName = sensor +organizationalUnitName = beats + +[ usr_cert ] +# Extensions for server certificates (`man x509v3_config`). +basicConstraints = CA:FALSE +nsCertType = client, server +nsComment = "OpenSSL Beats Server / Client Certificate" +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid,issuer:always +keyUsage = critical, digitalSignature, keyEncipherment, keyAgreement, nonRepudiation +extendedKeyUsage = serverAuth, clientAuth + +[v3_req] +keyUsage = keyEncipherment, dataEncipherment +extendedKeyUsage = serverAuth, clientAuth diff --git a/Vagrant/resources/malcolm/logstash/certs/server.conf b/Vagrant/resources/malcolm/logstash/certs/server.conf new file mode 100644 index 0000000..ad479fa --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/certs/server.conf @@ -0,0 +1,18 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# one may wish to consider not using self-signed certificates in production + +[req] +distinguished_name = req_distinguished_name +req_extensions = v3_req +prompt = no + +[req_distinguished_name] +countryName = US +stateOrProvinceName = ID +organizationName = sensor +organizationalUnitName = logstash + +[v3_req] +keyUsage = keyEncipherment, dataEncipherment +extendedKeyUsage = serverAuth diff --git a/Vagrant/resources/malcolm/logstash/certs/server.crt b/Vagrant/resources/malcolm/logstash/certs/server.crt new file mode 100644 index 0000000..67f3ec2 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/certs/server.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDKDCCAhCgAwIBAgIUc//014VwkY4+XcAFLYTsPuuNQT8wDQYJKoZIhvcNAQEN +BQAwODELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAklEMQ8wDQYDVQQKDAZzZW5zb3Ix +CzAJBgNVBAsMAmNhMB4XDTIxMDgwNTE0MTc0MloXDTMxMDgwMzE0MTc0MlowPjEL +MAkGA1UEBhMCVVMxCzAJBgNVBAgMAklEMQ8wDQYDVQQKDAZzZW5zb3IxETAPBgNV +BAsMCGxvZ3N0YXNoMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyLwm +H/ygtAReGswYMMXvjbJ/bZAt9rhv3NH8IZe8UNFtdj5BZCyW7ELhFYij4WdPBrKu +8/JjGY4baJRfWfymycxgMc+vLnu+LYGrCgMGEbPKeL1mwtCPBkL0YdA98rmjxOu1 +33VT3h4FMJjpnUUlOYwvXv7f956QaQRoV/j8dBV4fy0BWFARlg0/m15bZjJXCnEv +cmXc9snVJSP+qCrq9al7/lhWD3fkIWTvZUHl9d9HvGxtjhzKon/fxArNBBinMzjt +SYq8BkB4M1Ufa5Ak2WG8vJCmx8moJVTwpvdHa0tdNTdT49sM/bFif1N9VXeru2+C +POoNOvYDUCvkBOYC+wIDAQABoyQwIjALBgNVHQ8EBAMCBDAwEwYDVR0lBAwwCgYI +KwYBBQUHAwEwDQYJKoZIhvcNAQENBQADggEBACH8MIi0lm3pS+fXPqICTXPt6EOy +qCO0otxTcxyYWlsZn/2790BZkX1rQTDGqa3GyMEV1MCAofeh/8IHm2CLT9VqY6hq +OXQ2W6XPdnWBXmqetjfi5ZOzUGNtxlIBBnFBF8c+DoQ7jkjfs5rDBrpAbKfULWxr +MNQLeDaYzVNMiLH3Dlkb9alqTbIBeqG9s0z4iyc2n1O4GH/i1o3RilUJ8tWoR/qp +Cfx9+u2+fYrFnXNuSAf4NlfqFrt+6gQGN6kc5tP/6hsjDSuiTREmGNljBwkW9Wle +DFHXXjHubP8SMPOsZF/g49TmpNdQ3ZZCgAJU3JPAGIsUZp8FdiHtFRMfE0s= +-----END CERTIFICATE----- diff --git a/Vagrant/resources/malcolm/logstash/certs/server.key b/Vagrant/resources/malcolm/logstash/certs/server.key new file mode 100644 index 0000000..02276f7 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/certs/server.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDIvCYf/KC0BF4a +zBgwxe+Nsn9tkC32uG/c0fwhl7xQ0W12PkFkLJbsQuEViKPhZ08Gsq7z8mMZjhto +lF9Z/KbJzGAxz68ue74tgasKAwYRs8p4vWbC0I8GQvRh0D3yuaPE67XfdVPeHgUw +mOmdRSU5jC9e/t/3npBpBGhX+Px0FXh/LQFYUBGWDT+bXltmMlcKcS9yZdz2ydUl +I/6oKur1qXv+WFYPd+QhZO9lQeX130e8bG2OHMqif9/ECs0EGKczOO1JirwGQHgz +VR9rkCTZYby8kKbHyaglVPCm90drS101N1Pj2wz9sWJ/U31Vd6u7b4I86g069gNQ +K+QE5gL7AgMBAAECggEBAMI91oKTWgp4Q3uYzTu8/W7XMBmcL+4TUSOUCm+TPcXS +siJ+YZaG01Ax8058F2DRMBZiJ4ulnCGpcnpDQPV51wdk/hyVRIYtdbzhQdoBTQkq +Oh2V4W9Yk13Swlo4QQm0e3XdRPPDu/EuiYUaIs1tkHTcYyaAacdaJ5GHk1S1ecz1 +FxLWYYye0JLYqfIxucYMAYQPGY0cBKu0x9dyqgqd1VdwpfoSJSUA8JComcBa5jUW +PkL68jd7wKD8rUEQHPq7oemSo240YtDOxTxjosQdbGCb/UwUVnJCVC4ZqRUvRgvb +I2EIdAtiHnisIIZdgjXI4TWZC66KZm1WMro8IylALTkCgYEA5ShISldKUdF8yNC2 +Kau9aQxvooqe6SOBZz0hweGVyTVQitnd+DDeaRXJSWw+KRBJr67WyaFmHOghnPCm +ianE7J0eeX8wwmdkF2+sITg0Rh2t1y6Hsoi2UbADNm1B2QNVTYGRnsS/JCekmG49 +MPI2kvMQZnfWKMtUrFZVb3Qtf4UCgYEA4D+RLixtq8ViAGnyAbtm+e7G4KOpkt4A +tbYi69I2hrW+LKlrp+Me0SW0fz59Jk0QsJykk1obMJS+h21+dBj1BxDyuv7mHI7b +UfcAFOiRniDqTPf1Eyx5mXmcaTljbF30Cbfzf/U4AYvKhmBL6I+plrQvxrRgkzJz +TuR+777wwH8CgYEA4w8z+f1eFY32D+DF7qpN5o28+5hQ9v8IVGw9S6ejTBg4syxH +BYoeho9gwBCx0uxhpuMdzfHPhSr5S1EkItmF11GjhY1ime3qPlKXgt725Na5jrJ7 +IIrX5D78H+zIRyhHWKHe0StvnXpuW983YI1PR/HxuSZanFdEkfKFewbpoiUCgYA7 +yZbqiZvf3StI0vZb8dv9rOTHRbtTVe84g0wCNbSl69S9UZpLU6mGt5fNCRsS2B8o +B0t1oeN362B0+QNq7rB9Zs5gfs9ZM9lTnBggevVABKSTStTDfOsauSqzf0J7xPzo +jmvUZMu+1cd0Vj5Gze64KGhIgRTyidPmZ9NUFkNX/wKBgQDRw1AZuhPNlt8fkhiL +czoXzczpqjUIe0yQ3OfZbKZz1IH55qR0KTRgAU0woy0XVwArssUwdOkgspZZ35mp +jHFsU7y1hcZNm80l1gmkHWZVoxPTf6P869JFJa1k6gw8kYZ2a4F1D2LY11MU3Jpy +w4wWKuqPzZLcYtkpBljyONfLsg== +-----END PRIVATE KEY----- diff --git a/Vagrant/resources/malcolm/logstash/config/log4j2.properties b/Vagrant/resources/malcolm/logstash/config/log4j2.properties new file mode 100644 index 0000000..01fa1cf --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/config/log4j2.properties @@ -0,0 +1,20 @@ +status = error +name = LogstashPropertiesConfig + +appender.console.type = Console +appender.console.name = plain_console +appender.console.layout.type = PatternLayout +appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n + +appender.json_console.type = Console +appender.json_console.name = json_console +appender.json_console.layout.type = JSONLayout +appender.json_console.layout.compact = true +appender.json_console.layout.eventEol = true + +rootLogger.level = ${sys:ls.log.level} +rootLogger.appenderRef.console.ref = ${sys:ls.log.format}_console + +# Dissector is crazy +logger.ShutUpDissector.name = org.logstash.dissect.Dissector +logger.ShutUpDissector.level = error diff --git a/Vagrant/resources/malcolm/logstash/config/logstash.yml b/Vagrant/resources/malcolm/logstash/config/logstash.yml new file mode 100644 index 0000000..9356a89 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/config/logstash.yml @@ -0,0 +1,2 @@ +http.host: "0.0.0.0" + diff --git a/Vagrant/resources/malcolm/logstash/maps/conn_states.yaml b/Vagrant/resources/malcolm/logstash/maps/conn_states.yaml new file mode 100644 index 0000000..3174e43 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/conn_states.yaml @@ -0,0 +1,13 @@ +"S0": "Connection attempt seen, no reply" +"S1": "Connection established, not terminated" +"S2": "Connection established and close attempt by originator seen (but no reply from responder)" +"S3": "Connection established and close attempt by responder seen (but no reply from originator)" +"SF": "Normal SYN/FIN completion" +"REJ": "Connection attempt rejected" +"RSTO": "Connection established, originator aborted (sent a RST)" +"RSTR": "Established, responder aborted" +"RSTOS0": "Originator sent a SYN followed by a RST, we never saw a SYN-ACK from the responder" +"RSTRH": "Responder sent a SYN ACK followed by a RST, we never saw a SYN from the (purported) originator" +"SH": "Originator sent a SYN followed by a FIN, we never saw a SYN ACK from the responder (hence the connection was 'half' open)" +"SHR": "Responder sent a SYN ACK followed by a FIN, we never saw a SYN from the originator" +"OTH": "No SYN seen, just midstream traffic (a 'partial connection' that was not later closed)" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/ftp_result_codes.yaml b/Vagrant/resources/malcolm/logstash/maps/ftp_result_codes.yaml new file mode 100644 index 0000000..f8327b7 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/ftp_result_codes.yaml @@ -0,0 +1,49 @@ +"110": "Restart marker replay" +"120": "Service ready in n minutes" +"125": "Data connection already open; transfer starting" +"150": "Opening data connection" +"200": "Success" +"202": "Command not implemented" +"211": "System status or help reply" +"212": "Directory status" +"213": "File status" +"214": "Help message" +"215": "System type" +"220": "Service ready for new user" +"221": "Service closing control connection" +"225": "Data connection open; no transfer in progress" +"226": "Closing data connection" +"227": "Entering Passive Mode" +"228": "Entering Long Passive Mode" +"229": "Entering Extended Passive Mode" +"230": "User logged in" +"231": "User logged out" +"232": "Logout command noted" +"234": "Authentication method accepted" +"250": "Successful file action" +"257": "Successful directory creation" +"331": "Username okay, need password" +"332": "Need account for login" +"350": "Requested file action pending further information" +"421": "Service not available" +"425": "Can't open data connection" +"426": "Connection closed; transfer aborted" +"430": "Invalid username or password" +"434": "Requested host unavailable" +"450": "Requested file action not taken" +"451": "Requested action aborted; local error in processing" +"452": "Requested action not taken; file system error" +"501": "Syntax error" +"502": "Command not implemented" +"503": "Bad command sequence" +"504": "Command not implemented for that parameter" +"530": "Not logged in" +"532": "Need account for storing files" +"534": "Could not connect; policy requires SSL" +"550": "Requested action not taken; file unavailable" +"551": "Requested action aborted; page type unknown" +"552": "Requested file action aborted; exceeded storage allocation" +"553": "Requested action not taken; file name not allowed" +"631": "Integrity protected" +"632": "Confidentiality and integrity protected" +"633": "Confidentiality protected" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/http_result_codes.yaml b/Vagrant/resources/malcolm/logstash/maps/http_result_codes.yaml new file mode 100644 index 0000000..9e5f7b7 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/http_result_codes.yaml @@ -0,0 +1,97 @@ +"100": "Continue" +"101": "Switching Protocols" +"102": "Processing" +"103": "Early Hints" +"110": "Response is Stale" +"111": "Revalidation Failed" +"112": "Disconnected Operation" +"113": "Heuristic Expiration" +"199": "Miscellaneous Warning" +"200": "Success" +"201": "Created" +"202": "Accepted" +"203": "Non-authoritative Information" +"204": "No Content" +"205": "Reset Content" +"206": "Partial Content" +"207": "Multi-status" +"208": "Already Reported" +"214": "Transformation Applied" +"218": "This Is Fine" +"226": "IM Used" +"299": "Miscellaneous Persistent Warning" +"300": "Multiple Choices" +"301": "Moved Permanently" +"302": "Redirect" +"303": "See Other" +"304": "Not Modified" +"305": "Use Proxy" +"306": "Switch Proxy" +"307": "Temporary Redirect" +"308": "Permanent Redirect" +"400": "Bad Request" +"401": "Not Authorized" +"402": "Payment Required" +"403": "Forbidden" +"404": "Error On Wikipedia" +"404": "Not Found" +"405": "Method Not Allowed" +"406": "Not Acceptable" +"407": "Proxy Authentication Required" +"408": "Request Timeout" +"409": "Conflict" +"410": "Gone" +"411": "Length Required" +"412": "Precondition Failed" +"413": "Payload Too Large" +"414": "URI Too Long" +"415": "Unsupported Media Type" +"416": "Range Not Satisfiable" +"417": "Expectation Failed" +"418": "I'm A Teapot" +"419": "Page Expired" +"420": "Method Failure / Enhance Your Calm" +"421": "Misdirected Request" +"422": "Unprocessable Entity" +"423": "Locked" +"424": "Failed Dependency" +"425": "Too Early" +"426": "Upgrade Required" +"427": "Unassigned" +"428": "Precondition Required" +"429": "Too Many Requests" +"430": "Unassigned" +"431": "Request Header Fields Too Large" +"440": "Login Timeout" +"444": "No Response" +"449": "Retry With" +"450": "Blocked By Windows Parental Controls" +"451": "Unavailable For Legal Reasons" +"494": "Request Header Too Large" +"495": "SSL Certificate Error" +"496": "SSL Certificate Required" +"497": "HTTP Request Sent To HTTPS Port" +"498": "Invalid Token" +"499": "Client Closed Request" +"500": "Internal Server Error" +"501": "Unsupported Method" +"502": "Bad Gateway" +"503": "Service Unavailable" +"504": "Gateway Timeout" +"505": "HTTP Version Not Supported" +"506": "Variant Also Negotiates" +"507": "Insufficient Storage" +"508": "Loop Detected" +"509": "Bandwidth Limit Exceeded" +"510": "Not Extended" +"511": "Network Authentication Required" +"520": "Web Server Returned An Unknown Error" +"521": "Web Server Is Down" +"522": "Connection Timed Out" +"523": "Origin Is Unreachable" +"524": "A Timeout Occurred" +"525": "SSL Handshake Failed" +"526": "Invalid SSL Certificate" +"527": "Railgun Error" +"529": "Site Is Overloaded" +"530": "Site Is Frozen" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/ip_protocol_numbers.yaml b/Vagrant/resources/malcolm/logstash/maps/ip_protocol_numbers.yaml new file mode 100644 index 0000000..cc39f57 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/ip_protocol_numbers.yaml @@ -0,0 +1,56 @@ +"ip": "0" +"hopopt": "0" +"icmp": "1" +"igmp": "2" +"ggp": "3" +"ipencap": "4" +"st": "5" +"tcp": "6" +"egp": "8" +"igp": "9" +"pup": "12" +"udp": "17" +"hmp": "20" +"xns-idp": "22" +"rdp": "27" +"iso-tp4": "29" +"dccp": "33" +"xtp": "36" +"ddp": "37" +"idpr-cmtp": "38" +"ipv6": "41" +"ipv6-route": "43" +"ipv6-frag": "44" +"idrp": "45" +"rsvp": "46" +"gre": "47" +"esp": "50" +"ah": "51" +"skip": "57" +"ipv6-icmp": "58" +"ipv6-nonxt": "59" +"ipv6-opts": "60" +"rspf": "73" +"vmtp": "81" +"eigrp": "88" +"ospf": "89" +"ax.25": "93" +"ipip": "94" +"etherip": "97" +"encap": "98" +"#": "99" +"pim": "103" +"ipcomp": "108" +"vrrp": "112" +"l2tp": "115" +"isis": "124" +"sctp": "132" +"fc": "133" +"mobility-header": "135" +"udplite": "136" +"mpls-in-ip": "137" +"manet": "138" +"hip": "139" +"shim6": "140" +"wesp": "141" +"rohc": "142" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/mitre_attack_tactic_ids.yaml b/Vagrant/resources/malcolm/logstash/maps/mitre_attack_tactic_ids.yaml new file mode 100644 index 0000000..5800533 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/mitre_attack_tactic_ids.yaml @@ -0,0 +1,15 @@ +"Collection": "TA0009" +"Command_and_Control": "TA0011" +"Credential_Access": "TA0006" +"Defense_Evasion": "TA0005" +"Discovery": "TA0007" +"Execution": "TA0002" +"Exfiltration": "TA0010" +"Impact": "TA0040" +"Initial_Access": "TA0001" +"Lateral_Movement": "TA0008" +"Lateral_Movement_and_Execution": [ "TA0002", "TA0008" ] +"Lateral_Movement_Extracted_File": "TA0008" +"Lateral_Movement_Multiple_Attempts": "TA0008" +"Persistence": "TA0003" +"Privilege_Escalation": "TA0004" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/mitre_attack_tactic_reference.yaml b/Vagrant/resources/malcolm/logstash/maps/mitre_attack_tactic_reference.yaml new file mode 100644 index 0000000..8f9573b --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/mitre_attack_tactic_reference.yaml @@ -0,0 +1,15 @@ +"Collection": "https://attack.mitre.org/tactics/TA0009/" +"Command_and_Control": "https://attack.mitre.org/tactics/TA0011/" +"Credential_Access": "https://attack.mitre.org/tactics/TA0006/" +"Defense_Evasion": "https://attack.mitre.org/tactics/TA0005/" +"Discovery": "https://attack.mitre.org/tactics/TA0007/" +"Execution": "https://attack.mitre.org/tactics/TA0002/" +"Exfiltration": "https://attack.mitre.org/tactics/TA0010/" +"Impact": "https://attack.mitre.org/tactics/TA0040/" +"Initial_Access": "https://attack.mitre.org/tactics/TA0001/" +"Lateral_Movement": "https://attack.mitre.org/tactics/TA0008/" +"Lateral_Movement_and_Execution": [ "https://attack.mitre.org/tactics/TA0002/", "https://attack.mitre.org/tactics/TA0008/" ] +"Lateral_Movement_Extracted_File": "https://attack.mitre.org/tactics/TA0008/" +"Lateral_Movement_Multiple_Attempts": "https://attack.mitre.org/tactics/TA0008/" +"Persistence": "https://attack.mitre.org/tactics/TA0003/" +"Privilege_Escalation": "https://attack.mitre.org/tactics/TA0004/" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/notice_authors.yaml b/Vagrant/resources/malcolm/logstash/maps/notice_authors.yaml new file mode 100644 index 0000000..f9d074e --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/notice_authors.yaml @@ -0,0 +1,7 @@ +"EternalSafety": "Lexi Brent" +"ATTACK": "MITRE" +"HTTPATTACKS": "Andrew Klaus" +"Corelight": "Corelight" +"SNIFFPASS": "Andrew Klaus" +"CVE_2020_0601": "Johanna Amann" +"CVE_2020_13777": "Johanna Amann" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/notice_license.yaml b/Vagrant/resources/malcolm/logstash/maps/notice_license.yaml new file mode 100644 index 0000000..5f7b6f6 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/notice_license.yaml @@ -0,0 +1,7 @@ +"EternalSafety": "BSD-3-Clause License" +"ATTACK": " BSD-3-Clause License" +"HTTPATTACKS": "BSD-2-Clause License" +"SNIFFPASS": "BSD-3-Clause License" +"Corelight": "https://github.com/corelight" +"CVE_2020_0601": "https://raw.githubusercontent.com/0xxon/cve-2020-0601/master/COPYING" +"CVE_2020_13777": "https://raw.githubusercontent.com/0xxon/cve-2020-13777/master/COPYING" diff --git a/Vagrant/resources/malcolm/logstash/maps/notice_reference.yaml b/Vagrant/resources/malcolm/logstash/maps/notice_reference.yaml new file mode 100644 index 0000000..2e4f215 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/notice_reference.yaml @@ -0,0 +1,7 @@ +"EternalSafety": "https://github.com/0xl3x1/zeek-EternalSafety" +"ATTACK": "https://github.com/mitre-attack/bzar" +"HTTPATTACKS": "https://github.com/precurse/zeek-httpattacks" +"Corelight": "https://github.com/corelight" +"SNIFFPASS": "https://github.com/cybera/zeek-sniffpass" +"CVE_2020_0601": "https://github.com/0xxon/cve-2020-0601" +"CVE_2020_13777": "https://github.com/0xxon/cve-2020-13777" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/ntp_modes.yaml b/Vagrant/resources/malcolm/logstash/maps/ntp_modes.yaml new file mode 100644 index 0000000..110d049 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/ntp_modes.yaml @@ -0,0 +1,4 @@ +"1": "client" +"2": "server" +"3": "peer" +"4": "broadcast/multicast" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/s7comm_result_codes.yaml b/Vagrant/resources/malcolm/logstash/maps/s7comm_result_codes.yaml new file mode 100644 index 0000000..45bd2b6 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/s7comm_result_codes.yaml @@ -0,0 +1,206 @@ +"0": "Success" +"272": "Invalid block number" +"273": "Invalid request length" +"274": "Invalid parameter" +"275": "Invalid block type" +"276": "Block not found" +"277": "Block already exists" +"278": "Block is write-protected" +"279": "The block/operating system update is too large" +"280": "Invalid block number" +"281": "Incorrect password entered" +"282": "PG resource error" +"283": "PLC resource error" +"284": "Protocol error" +"285": "Too many blocks (module-related restriction)" +"286": "There is no longer a connection to the database, or S7DOS handle is invalid" +"287": "Result buffer too small" +"288": "End of block list" +"320": "Insufficient memory available" +"321": "Job cannot be processed because of a lack of resources" +"32769": "The requested service cannot be performed while the block is in the current status" +"32771": "S7 protocol error: Error occurred while transferring the block" +"33024": "Application, general error: Service unknown to remote module" +"33028": "This service is not implemented on the module or a frame error was reported" +"33284": "The type specification for the object is inconsistent" +"33285": "A copied block already exists and is not linked" +"33537": "Insufficient memory space or work memory on the module, or specified storage medium not accessible" +"33538": "Too few resources available or the processor resources are not available" +"33540": "No further parallel upload possible. There is a resource bottleneck" +"33541": "Function not available" +"33542": "Insufficient work memory (for copying, linking, loading AWP)" +"33543": "Not enough retentive work memory (for copying, linking, loading AWP)" +"33793": "S7 protocol error: Invalid service sequence (for example, loading or uploading a block)" +"33794": "Service cannot execute owing to status of the addressed object" +"33796": "S7 protocol: The function cannot be performed" +"33797": "Remote block is in DISABLE state (CFB). The function cannot be performed" +"34048": "S7 protocol error: Wrong frames" +"34051": "Alarm from the module: Service canceled prematurely" +"34561": "Error addressing the object on the communications partner (for example, area length error)" +"34562": "The requested service is not supported by the module" +"34563": "Access to object refused" +"34564": "Access error: Object damaged" +"53249": "Protocol error: Illegal job number" +"53250": "Parameter error: Illegal job variant" +"53251": "Parameter error: Debugging function not supported by module" +"53252": "Parameter error: Illegal job status" +"53253": "Parameter error: Illegal job termination" +"53254": "Parameter error: Illegal link disconnection ID" +"53255": "Parameter error: Illegal number of buffer elements" +"53256": "Parameter error: Illegal scan rate" +"53257": "Parameter error: Illegal number of executions" +"53258": "Parameter error: Illegal trigger event" +"53259": "Parameter error: Illegal trigger condition" +"53265": "Parameter error in path of the call environment: Block does not exist" +"53266": "Parameter error: Wrong address in block" +"53268": "Parameter error: Block being deleted/overwritten" +"53269": "Parameter error: Illegal tag address" +"53270": "Parameter error: Test jobs not possible, because of errors in user program" +"53271": "Parameter error: Illegal trigger number" +"53285": "Parameter error: Invalid path" +"53286": "Parameter error: Illegal access type" +"53287": "Parameter error: This number of data blocks is not permitted" +"53297": "Internal protocol error" +"53298": "Parameter error: Wrong result buffer length" +"53299": "Protocol error: Wrong job length" +"53311": "Coding error: Error in parameter section (for example, reserve bytes not equal to 0)" +"53313": "Data error: Illegal status list ID" +"53314": "Data error: Illegal tag address" +"53315": "Data error: Referenced job not found, check job data" +"53316": "Data error: Illegal tag value, check job data" +"53317": "Data error: Exiting the ODIS control is not allowed in HOLD" +"53318": "Data error: Illegal measuring stage during run-time measurement" +"53319": "Data error: Illegal hierarchy in 'Read job list'" +"53320": "Data error: Illegal deletion ID in 'Delete job'" +"53321": "Invalid substitute ID in 'Replace job'" +"53322": "Error executing 'program status'" +"53343": "Coding error: Error in data section (for example, reserve bytes not equal to 0, ...)" +"53345": "Resource error: No memory space for job" +"53346": "Resource error: Job list full" +"53347": "Resource error: Trigger event occupied" +"53348": "Resource error: Not enough memory space for one result buffer element" +"53349": "Resource error: Not enough memory space for several result buffer elements" +"53350": "Resource error: The timer available for run-time measurement is occupied by another job" +"53351": "Resource error: Too many 'modify tag' jobs active (in particular multi-processor operation)" +"53377": "Function not permitted in current mode" +"53378": "Mode error: Cannot exit HOLD mode" +"53409": "Function not permitted in current protection level" +"53410": "Function not possible at present, because a function is running that modifies memory" +"53411": "Too many 'modify tag' jobs active on the I/O (in particular multi-processor operation)" +"53412": "'Forcing' has already been established" +"53413": "Referenced job not found" +"53414": "Job cannot be disabled/enabled" +"53415": "Job cannot be deleted, for example because it is currently being read" +"53416": "Job cannot be replaced, for example because it is currently being read or deleted" +"53417": "Job cannot be read, for example because it is currently being deleted" +"53418": "Time limit exceeded in processing operation" +"53419": "Invalid job parameters in process operation" +"53420": "Invalid job data in process operation" +"53421": "Operating mode already set" +"53422": "The job was set up over a different connection and can only be handled over this connection" +"53441": "At least one error has been detected while accessing the tag(s)" +"53442": "Change to STOP/HOLD mode" +"53443": "At least one error was detected while accessing the tag(s). Mode change to STOP/HOLD" +"53444": "Timeout during run-time measurement" +"53445": "Display of block stack inconsistent, because blocks were deleted/reloaded" +"53446": "Job was automatically deleted as the jobs it referenced have been deleted" +"53447": "The job was automatically deleted because STOP mode was exited" +"53448": "'Block status' aborted because of inconsistencies between test job and running program" +"53449": "Exit the status area by resetting OB90" +"53450": "Exiting the status range by resetting OB90 and access error reading tags before exiting" +"53451": "The output disable for the peripheral outputs has been activated again" +"53452": "The amount of data for the debugging functions is restricted by the time limit" +"53761": "Syntax error in block name" +"53762": "Syntax error in function parameters" +"53765": "Linked block already exists in RAM: Conditional copying is not possible" +"53766": "Linked block already exists in EPROM: Conditional copying is not possible" +"53768": "Maximum number of copied (not linked) blocks on module exceeded" +"53769": "(At least) one of the given blocks not found on the module" +"53770": "The maximum number of blocks that can be linked with one job was exceeded" +"53771": "The maximum number of blocks that can be deleted with one job was exceeded" +"53772": "OB cannot be copied because the associated priority class does not exist" +"53773": "SDB cannot be interpreted (for example, unknown number)" +"53774": "No (further) block available" +"53775": "Module-specific maximum block size exceeded" +"53776": "Invalid block number" +"53778": "Incorrect header attribute (run-time relevant)" +"53779": "Too many SDBs. Note the restrictions on the module being used" +"53782": "Invalid user program - reset module" +"53783": "Protection level specified in module properties not permitted" +"53784": "Incorrect attribute (active/passive)" +"53785": "Incorrect block lengths (for example, incorrect length of first section or of the whole block)" +"53786": "Incorrect local data length or write-protection code faulty" +"53787": "Module cannot compress or compression was interrupted early" +"53789": "The volume of dynamic project data transferred is illegal" +"53790": "Unable to assign parameters to a module (such as FM, CP). The system data could not be linked" +"53792": "Invalid programming language. Note the restrictions on the module being used" +"53793": "The system data for connections or routing are not valid" +"53794": "The system data of the global data definition contain invalid parameters" +"53795": "Error in instance data block for communication function block or maximum number of instance DBs exceeded" +"53796": "The SCAN system data block contains invalid parameters" +"53797": "The DP system data block contains invalid parameters" +"53798": "A structural error occurred in a block" +"53808": "A structural error occurred in a block" +"53809": "At least one loaded OB cannot be copied because the associated priority class does not exist" +"53810": "At least one block number of a loaded block is illegal" +"53812": "Block exists twice in the specified memory medium or in the job" +"53813": "The block contains an incorrect checksum" +"53814": "The block does not contain a checksum" +"53815": "You are about to load the block twice, i.e. a block with the same time stamp already exists on the CPU" +"53816": "At least one of the blocks specified is not a DB" +"53817": "At least one of the DBs specified is not available as a linked variant in the load memory" +"53818": "At least one of the specified DBs is considerably different from the copied and linked variant" +"53824": "Coordination rules violated" +"53825": "The function is not permitted in the current protection level" +"53826": "Protection violation while processing F blocks" +"53840": "Update and module ID or version do not match" +"53841": "Incorrect sequence of operating system components" +"53842": "Checksum error" +"53843": "No executable loader available; update only possible using a memory card" +"53844": "Storage error in operating system" +"53888": "Error compiling block in S7-300 CPU" +"53921": "Another block function or a trigger on a block is active" +"53922": "A trigger is active on a block. Complete the debugging function first" +"53923": "The block is not active (linked), the block is occupied or the block is currently marked for deletion" +"53924": "The block is already being processed by another block function" +"53926": "It is not possible to save and change the user program simultaneously" +"53927": "The block has the attribute 'unlinked' or is not processed" +"53928": "An active debugging function is preventing parameters from being assigned to the CPU" +"53929": "New parameters are being assigned to the CPU" +"53930": "New parameters are currently being assigned to the modules" +"53931": "The dynamic configuration limits are currently being changed" +"53932": "A running active or deactivate assignment (SFC 12) is temporarily preventing R-KiR process" +"53936": "An error occurred while configuring in RUN (CiR)" +"53952": "The maximum number of technological objects has been exceeded" +"53953": "The same technology data block already exists on the module" +"53954": "Downloading the user program or downloading the hardware configuration is not possible" +"54273": "Information function unavailable" +"54274": "Information function unavailable" +"54275": "Service has already been logged on/off (Diagnostics/PMC)" +"54276": "Maximum number of nodes reached. No more logons possible for diagnostics/PMC" +"54277": "Service not supported or syntax error in function parameters" +"54278": "Required information currently unavailable" +"54279": "Diagnostics error occurred" +"54280": "Update aborted" +"54281": "Error on DP bus" +"54785": "Syntax error in function parameter" +"54786": "Incorrect password entered" +"54787": "The connection has already been legitimized" +"54788": "The connection has already been enabled" +"54789": "Legitimization not possible because password does not exist" +"55297": "At least one tag address is invalid" +"55298": "Specified job does not exist" +"55299": "Illegal job status" +"55300": "Illegal cycle time (illegal time base or multiple)" +"55301": "No more cyclic read jobs can be set up" +"55302": "The referenced job is in a state in which the requested function cannot be performed" +"55303": "Function aborted due to overload, meaning executing the read cycle takes longer than the set scan cycle time" +"56321": "Date and/or time invalid" +"57857": "CPU is already the master" +"57858": "Connect and update not possible due to different user program in flash module" +"57859": "Connect and update not possible due to different firmware" +"57860": "Connect and update not possible due to different memory configuration" +"57861": "Connect/update aborted due to synchronization error" +"57862": "Connect/update denied due to coordination violation" +"61185": "S7 protocol error: Error at ID2; only 00H permitted in job" +"61186": "S7 protocol error: Error at ID2; set of resources does not exist" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/sip_result_codes.yaml b/Vagrant/resources/malcolm/logstash/maps/sip_result_codes.yaml new file mode 100644 index 0000000..8e09639 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/sip_result_codes.yaml @@ -0,0 +1,76 @@ +"100": "Trying" +"180": "Ringing" +"181": "Call Is Being Forwarded" +"182": "Queued" +"183": "Session Progress" +"199": "Early Dialog Terminated" +"200": "Success" +"202": "Accepted" +"204": "No Notification" +"300": "Multiple Choices" +"301": "Moved Permanently" +"302": "Moved Temporarily" +"305": "Use Proxy" +"380": "Alternative Service" +"400": "Bad Request" +"401": "Unauthorized" +"402": "Payment Required" +"403": "Forbidden" +"404": "Not Found" +"405": "Method Not Allowed" +"406": "Not Acceptable" +"407": "Proxy Authentication Required" +"408": "Request Timeout" +"409": "Conflict" +"410": "Gone" +"411": "Length Required" +"412": "Conditional Request Failed" +"413": "Request Entity Too Large" +"414": "Request URI Too Long" +"415": "Unsupported Media Type" +"416": "Unsupported URI Scheme" +"417": "Unknown Resource-priority" +"420": "Bad Extension" +"421": "Extension Required" +"422": "Session Interval Too Small" +"423": "Interval Too Brief" +"424": "Bad Location Information" +"428": "Use Identity Header" +"429": "Provide Referrer Identity" +"430": "Flow Failed" +"433": "Anonymity Disallowed" +"436": "Bad Identity Info" +"437": "Unsupported Certificate" +"438": "Invalid Identity Header" +"439": "First Hop Lacks Outbound Support" +"440": "Max-breadth Exceeded" +"469": "Bad Info Package" +"470": "Consent Needed" +"480": "Temporarily Unavailable" +"481": "Call/transaction Does Not Exist" +"482": "Loop Detected" +"483": "Too Many Hops" +"484": "Address Incomplete" +"485": "Ambiguous" +"486": "Busy Here" +"487": "Request Terminated" +"488": "Not Acceptable Here" +"489": "Bad Event" +"491": "Request Pending" +"493": "Undecipherable" +"494": "Security Agreement Required" +"500": "Internal Server Error" +"501": "Not Implemented" +"502": "Bad Gateway" +"503": "Service Unavailable" +"504": "Server Time-out" +"505": "Version Not Supported" +"513": "Message Too Large" +"555": "Push Notification Service Not Supported" +"580": "Precondition Failure" +"600": "Busy Everywhere" +"603": "Decline" +"604": "Does Not Exist Anywhere" +"606": "Not Acceptable" +"607": "Unwanted" +"608": "Rejected" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/smtp_result_codes.yaml b/Vagrant/resources/malcolm/logstash/maps/smtp_result_codes.yaml new file mode 100644 index 0000000..f97533e --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/smtp_result_codes.yaml @@ -0,0 +1,40 @@ +"101": "The server is unable to connect" +"111": "Connection refused or inability to open an SMTP stream" +"200": "System status message or help reply" +"214": "A response to the HELP command" +"220": "The server is ready" +"221": "The server is closing its transmission channel" +"250": "Success" +"251": "User not local will forward" +"252": "Cannot verify the user, but it will try to deliver the message anyway" +"354": "Start mail input" +"420": "Timeout connection problem" +"421": "Service is unavailable due to a connection problem" +"422": "The recipient's mailbox has exceeded its storage limit" +"431": "Not enough space on the disk" +"432": "Recipient's incoming mail queue has been stopped" +"441": "The recipient's server is not responding" +"442": "The connection was dropped during the transmission" +"446": "The maximum hop count was exceeded for the message" +"447": "Message timed out because of issues concerning the incoming server" +"449": "Routing error" +"450": "User's mailbox is unavailable" +"451": "Aborted – Local error in processing" +"452": "Too many emails sent or too many recipients" +"471": "An error of your mail server" +"500": "Syntax error" +"501": "Syntax error in parameters or arguments" +"503": "Bad sequence of commands, or requires authentication" +"504": "Command parameter is not implemented" +"510": "Bad email address" +"511": "Bad email address" +"512": "Host server for the recipient's domain name cannot be found in DNS" +"513": "Address type is incorrect" +"523": "associated with encryption in RFC 5248" +"530": "Authentication problem" +"541": "The recipient address rejected your message" +"550": "Non-existent email address" +"551": "User not local or invalid address – relay denied" +"552": "Exceeded storage allocation" +"553": "Mailbox name invalid" +"554": "Transaction has failed" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/tftp_result_codes.yaml b/Vagrant/resources/malcolm/logstash/maps/tftp_result_codes.yaml new file mode 100644 index 0000000..5b03b4c --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/tftp_result_codes.yaml @@ -0,0 +1,7 @@ +"1": "File not found" +"2": "Access violation" +"3": "Disk full or allocation exceeded" +"4": "Illegal operation" +"5": "Unknown transfer ID" +"6": "File already exists" +"7": "No such user" \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/maps/zeek_log_ecs_categories.yaml b/Vagrant/resources/malcolm/logstash/maps/zeek_log_ecs_categories.yaml new file mode 100644 index 0000000..15cc936 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/maps/zeek_log_ecs_categories.yaml @@ -0,0 +1,84 @@ +"bacnet": ["ot", "network"] +"bacnet_discovery": ["ot", "network"] +"bacnet_property": ["ot", "network"] +"bsap_ip_header": ["ot", "network"] +"bsap_ip_rdb": ["ot", "network"] +"bsap_ip_unknown": ["ot", "network"] +"bsap_serial_header": ["ot", "network"] +"bsap_serial_rdb": ["ot", "network"] +"bsap_serial_rdb_ext": ["ot", "network"] +"bsap_serial_unknown": ["ot", "network"] +"cip": ["ot", "network"] +"cip_identity": ["ot", "network"] +"cip_io": ["ot", "network"] +"conn": ["network"] +"dce_rpc": ["network"] +"dhcp": ["network"] +"dnp3": ["ot", "network"] +"dnp3_control": ["ot", "network"] +"dnp3_objects": ["ot", "network"] +"dns": ["network"] +"dpd": ["network"] +"enip": ["ot", "network"] +"ecat_registers": ["ot", "network"] +"ecat_log_address": ["ot", "network"] +"ecat_dev_info": ["ot", "network"] +"ecat_aoe_info": ["ot", "network"] +"ecat_coe_info": ["ot", "network"] +"ecat_foe_info": ["ot", "network"] +"ecat_soe_info": ["ot", "network"] +"ecat_arp_info": ["ot", "network"] +"files": ["file"] +"ftp": ["file", "network"] +"gquic": ["network"] +"http": ["web", "network"] +"intel": ["intrusion_detection", "network"] +"ipsec": ["network"] +"irc": ["network"] +"iso_cotp": ["ot", "network"] +"kerberos": ["authentication", "iam", "network"] +"known_certs": ["file"] +"known_hosts": ["network"] +"known_modbus": ["ot", "network"] +"known_services": ["network"] +"ldap": ["authentication", "iam", "network"] +"login": ["authentication", "network"] +"modbus": ["ot", "network"] +"modbus_detailed": ["ot", "network"] +"modbus_mask_write_register": ["ot", "network"] +"modbus_read_write_multiple_registers": ["ot", "network"] +"modbus_register_change": ["ot", "network"] +"mqtt_connect": ["network"] +"mqtt_publish": ["network"] +"mqtt_subscribe": ["network"] +"mysql": ["database", "network"] +"notice": ["intrusion_detection", "network"] +"ntlm": ["authentication", "iam", "network"] +"ntp": ["network"] +"openvpn": ["network"] +"pe": ["file"] +"profinet": ["ot", "network"] +"profinet_dce_rpc": ["ot", "network"] +"radius": ["authentication", "iam", "network"] +"rdp": ["network"] +"rfb": ["network"] +"s7comm": ["ot", "network"] +"signatures": ["malware", "intrusion_detection", "network"] +"sip": ["network"] +"smb_cmd": ["network"] +"smb_files": ["file", "network"] +"smb_mapping": ["file", "network"] +"smtp": ["network"] +"snmp": ["network"] +"socks": ["network"] +"software": ["network"] +"ssh": ["authentication", "network"] +"ssl": ["network"] +"syslog": ["network"] +"tds": ["database", "network"] +"tds_rpc": ["database", "network"] +"tds_sql_batch": ["database", "network"] +"tunnel": ["network"] +"weird": ["intrusion_detection", "network"] +"wireguard": ["network"] +"x509": ["file"] \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/pipelines/enrichment/01_input_log_enrichment.conf b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/01_input_log_enrichment.conf new file mode 100644 index 0000000..06200b4 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/01_input_log_enrichment.conf @@ -0,0 +1,6 @@ +input { + pipeline { + address => "log-enrichment" + } +} + diff --git a/Vagrant/resources/malcolm/logstash/pipelines/enrichment/11_lookups.conf b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/11_lookups.conf new file mode 100644 index 0000000..6615289 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/11_lookups.conf @@ -0,0 +1,444 @@ +filter { + + # todo: make added fields not zeek-specific? (see ECS topic branch) + # all the lookups are done here, but some of them are still zeek-specific which + # IMO isn't the cleanest. could be refactored/split. + + ######## MAC address OUI (manufacturer) lookup ################################################# + + # if OUI lookup is requested, enable it + mutate { + id => "mutate_add_field_env_logstash_oui_lookup" + add_field => { "[@metadata][ENV_LOGSTASH_OUI_LOOKUP]" => "${LOGSTASH_OUI_LOOKUP:false}" } + } + if ([@metadata][ENV_LOGSTASH_OUI_LOOKUP] == "true") { + + # srcMac/dstMac are arrays at this point, as Arkime expects them to be + + if ([srcMac]) and ([srcMac][0]) { + + # attempt lookup of srcMac oui + ieee_oui { + id => "ieee_oui_srcMac" + source => "[srcMac][0]" + target => "[zeek][orig_l2_oui]" + ouifile => "/usr/share/logstash/config/oui-logstash.txt" + refresh_interval => 0 + } + + if ([zeek][orig_l2_oui]) { + + # merge orig_l2_oui into srcOui array (with a count of 1) + mutate { id => "mutate_merge_field_srcOui" + merge => { "[srcOui]" => "[zeek][orig_l2_oui]" } } + mutate { id => "mutate_add_field_srcOuiCnt" + add_field => { "[srcOuiCnt]" => "1" } } + + # if this is a DHCP log type, copy srcOui to dhcp.oui + if ([dhcp][mac]) { + mutate { + id => "mutate_add_fields_dhcp_oui" + add_field => { "[dhcp][oui]" => "%{[srcOui]}" } + } + mutate { + id => "mutate_add_fields_dhcp_ouiCnt" + add_field => { "[dhcp][ouiCnt]" => "%{[srcOuiCnt]}" } + } + } + } + + } # end if [srcMac] + + if ([dstMac]) and ([dstMac][0]) { + + # attempt lookup of dstMac oui + ieee_oui { + id => "ieee_oui_dstMac" + source => "[dstMac][0]" + target => "[zeek][resp_l2_oui]" + ouifile => "/usr/share/logstash/config/oui-logstash.txt" + refresh_interval => 0 + } + + if ([zeek][resp_l2_oui]) { + + # merge resp_l2_oui into dstOui array (with a count of 1) + mutate { id => "mutate_merge_field_dstOui" + merge => { "[dstOui]" => "[zeek][resp_l2_oui]" } } + mutate { id => "mutate_add_field_dstOuiCnt" + add_field => { "[dstOuiCnt]" => "1" } } + } + + } # end if [dstMac] + + } # end if ENV_LOGSTASH_OUI_LOOKUP + ################################################################################################ + + ######## IP address class tagging, GeoIP/ASN lookups, and reverse DNS ########################### + if ([srcIp]) { + cidr { + id => "cidr_add_tag_internal_source" + add_tag => [ "internal_source" ] + address => [ "%{srcIp}" ] + network => [ "0.0.0.0/8", "10.0.0.0/8", "100.64.0.0/10", "127.0.0.0/8", "169.254.0.0/16", "172.16.0.0/12", "192.0.0.0/24", "192.0.2.0/24", + "192.88.99.0/24", "192.168.0.0/16", "198.18.0.0/15", "198.51.100.0/24", "203.0.113.0/24", "224.0.0.0/4", "240.0.0.0/4", + "255.255.255.255/32", "::/0", "::/128", "::1/128", "fc00::/7", "fe80::/10", "ff00::/8"] + } + if (!("internal_source" in [tags])) { + mutate { id => "mutate_add_tag_external_source" + add_tag => [ "external_source" ] } + # map srcIp to GEO countries + geoip { + id => "geoip_srcIp_geo" + source => "[srcIp]" + target => "[zeek][source_geo]" + } + geoip { + id => "geoip_srcIp_asn" + default_database_type => "ASN" + source => "[srcIp]" + target => "[@metadata][orig_asn]" + } + if ([zeek][source_geo] and [zeek][source_geo][country_code2]) { + mutate { id => "mutate_add_field_srcGEO" + add_field => { "[srcGEO]" => "%{[zeek][source_geo][country_code2]}" } } + } + if ([@metadata][orig_asn] and [@metadata][orig_asn][as_org] and [@metadata][orig_asn][asn]) { + mutate { id => "mutate_add_field_srcASN" + add_field => { "[srcASN]" => "AS%{[@metadata][orig_asn][asn]} %{[@metadata][orig_asn][as_org]}" } } + } + + # if reverse DNS for public IP addresses is enabled (via environment variable) do it + mutate { + add_field => { "[@metadata][ENV_LOGSTASH_REVERSE_DNS]" => "${LOGSTASH_REVERSE_DNS:false}" } + } + if ([@metadata][ENV_LOGSTASH_REVERSE_DNS] == "true") { + mutate { + id => "mutate_add_field_srcip_for_dns" + add_field => { + "[zeek][source_ip_reverse_dns]" => "%{[srcIp]}" + } + } + dns { + id => "dns_source_ip_reverse_dns" + reverse => [ "[zeek][source_ip_reverse_dns]" ] + action => "replace" + hit_cache_size => 8000 + hit_cache_ttl => 300 + failed_cache_size => 8000 + failed_cache_ttl => 60 + } + if ([srcIp] == [zeek][source_ip_reverse_dns]) { + mutate { + id => "mutate_remove_field_source_ip_reverse_dns" + remove_field => [ "[zeek][source_ip_reverse_dns]" ] + } + } + } + } + cidr { + id => "cidr_detect_network_type_ipv4_source" + add_field => { "[network][type]" => "ipv4" } + address => [ "%{srcIp}" ] + network => [ "0.0.0.0/0" ] + } + if (![network][type]) { + mutate { id => "mutate_add_network_type_ipv4_source" + add_field => { "[network][type]" => "ipv6" } } + } + } # if ([srcIp]) + + if ([dstIp]) { + cidr { + id => "cidr_add_tag_internal_destination" + add_tag => [ "internal_destination" ] + address => [ "%{dstIp}" ] + network => [ "0.0.0.0/8", "10.0.0.0/8", "100.64.0.0/10", "127.0.0.0/8", "169.254.0.0/16", "172.16.0.0/12", "192.0.0.0/24", "192.0.2.0/24", + "192.88.99.0/24", "192.168.0.0/16", "198.18.0.0/15", "198.51.100.0/24", "203.0.113.0/24", "224.0.0.0/4", "240.0.0.0/4", + "255.255.255.255/32", "::/0", "::/128", "::1/128", "fc00::/7", "fe80::/10", "ff00::/8"] + } + if (!("internal_destination" in [tags])) { + mutate { id => "mutate_add_tag_external_destination" + add_tag => [ "external_destination" ] } + # map dstIp to GEO countries + geoip { + id => "geoip_dstIp_geo" + source => "[dstIp]" + target => "[zeek][destination_geo]" + } + geoip { + id => "geoip_dstIp_asn" + default_database_type => "ASN" + source => "[dstIp]" + target => "[@metadata][resp_asn]" + } + if ([zeek][destination_geo] and [zeek][destination_geo][country_code2]) { + mutate { id => "mutate_add_field_dstGEO" + add_field => { "[dstGEO]" => "%{[zeek][destination_geo][country_code2]}" } } + } + if ([@metadata][resp_asn] and [@metadata][resp_asn][as_org] and [@metadata][resp_asn][asn]) { + mutate { id => "mutate_add_field_dstASN" + add_field => { "[dstASN]" => "AS%{[@metadata][resp_asn][asn]} %{[@metadata][resp_asn][as_org]}" } } + } + + # if reverse DNS for public IP addresses is enabled (via environment variable) do it + if (![@metadata][ENV_LOGSTASH_REVERSE_DNS]) { + mutate { + add_field => { "[@metadata][ENV_LOGSTASH_REVERSE_DNS]" => "${LOGSTASH_REVERSE_DNS:false}" } + } + } + if ([@metadata][ENV_LOGSTASH_REVERSE_DNS] == "true") { + mutate { + id => "mutate_add_field_dstip_for_dns" + add_field => { + "[zeek][destination_ip_reverse_dns]" => "%{[dstIp]}" + } + } + dns { + id => "dns_destination_ip_reverse_dns" + reverse => [ "[zeek][destination_ip_reverse_dns]" ] + action => "replace" + hit_cache_size => 8000 + hit_cache_ttl => 300 + failed_cache_size => 8000 + failed_cache_ttl => 60 + } + if ([dstIp] == [zeek][destination_ip_reverse_dns]) { + mutate { + id => "mutate_remove_field_destination_ip_reverse_dns" + remove_field => [ "[zeek][destination_ip_reverse_dns]" ] + } + } + } + } + if (![network][type]) { + cidr { + id => "cidr_detect_network_type_ipv4_dest" + add_field => { "[network][type]" => "ipv4" } + address => [ "%{dstIp}" ] + network => [ "0.0.0.0/0" ] + } + if (![network][type]) { + mutate { id => "mutate_add_network_type_ipv4_dest" + add_field => { "[network][type]" => "ipv6" } } + } + } + } # if ([dstIp]) + + if ([dns][host]) { + # if requested, look up DNS queries using freq_server.py to get entropy scores + + ruby { + id => "ruby_dns_freq_lookup" + init => " + require 'net/http' + require 'cgi' + $freqLookupEnabled = ENV['FREQ_LOOKUP'] || 'false' + " + # freq_server.py returns a string like: (2.9333, 3.6353) + code => " + if ($freqLookupEnabled == 'true') then + scoresv1 = Array.new + scoresv2 = Array.new + scoresTmp = Array.new + begin + event.get('[dns][host]').each { |query| + if (query.length >= 4) and (query !~ /(ip6\.int|ip6\.arpa|in-addr\.arpa|b32\.i2p)$/i) then + scoresTmp.clear + scoresTmp.concat(Net::HTTP.get_response(URI.parse('http://freq:10004/measure/' + CGI.escape(query))).body.gsub(/(^\(|\)$|\s+)/, '').split(',').map(&:to_f)) + if (scoresTmp.length == 2) then + scoresv1 << scoresTmp[0] + scoresv2 << scoresTmp[1] + end + end + } + rescue Exception => e + event.set('ruby_exception', 'ruby_dns_freq_lookup: ' + e.message) + end + event.set('[zeek][freq_score_v1]', scoresv1) unless (scoresv1.length == 0) + event.set('[zeek][freq_score_v2]', scoresv2) unless (scoresv2.length == 0) + end" + } + } # end if dns.ip + + if ([dns][ip]) and ([dns][ip][0]) { + # if this is a DNS record with an IP, GeoIP it as well + geoip { + id => "geoip_dns_ip_asn" + default_database_type => "ASN" + source => "[dns][ip][0]" + target => "[@metadata][dns_asn]" + } + if ([@metadata][dns_asn] and [@metadata][dns_asn][as_org] and [@metadata][dns_asn][asn]) { + # this is stupid, the %{} doesn't seem to be liked by mutate.merge + mutate { id => "mutate_add_field_dns_asn" + add_field => { "[@metadata][asn_str]" => "AS%{[@metadata][dns_asn][asn]} %{[@metadata][dns_asn][as_org]}" } } + mutate { id => "mutate_merge_dns_asn" + merge => { "[dns][ASN]" => "[@metadata][asn_str]" } } + } + + geoip { + id => "geoip_dns_ip_geo" + source => "[dns][ip][0]" + target => "[@metadata][dns_geo]" + } + if ([@metadata][dns_geo] and [@metadata][dns_geo][country_code2]) { + mutate { id => "mutate_merge_dns_geo" + merge => { "[dns][GEO]" => "[@metadata][dns_geo][country_code2]" } } + } + } # end if dns.ip + + if ([radius]) { + + # if this is a Radius record with IP addresses, GeoIP them as well + if ([radius][framedIp]) and ([radius][framedIp][0]) { + geoip { + id => "geoip_radius_framedIp_asn" + default_database_type => "ASN" + source => "[radius][framedIp][0]" + target => "[@metadata][radius_asn]" + } + if ([@metadata][radius_asn] and [@metadata][radius_asn][as_org] and [@metadata][radius_asn][asn]) { + # this is stupid, the %{} doesn't seem to be liked by mutate.merge + mutate { id => "mutate_add_field_radius_asn" + add_field => { "[@metadata][asn_str]" => "AS%{[@metadata][radius_asn][asn]} %{[@metadata][radius_asn][as_org]}" } } + mutate { id => "mutate_merge_radius_asn" + merge => { "[radius][framedASN]" => "[@metadata][asn_str]" } } + } + geoip { + id => "geoip_radius_framedIp_geo" + source => "[radius][framedIp][0]" + target => "[@metadata][radius_geo]" + } + if ([@metadata][radius_geo] and [@metadata][radius_geo][country_code2]) { + mutate { id => "mutate_merge_radius_geo" + merge => { "[radius][framedGEO]" => "[@metadata][radius_geo][country_code2]" } } + } + } # end if radius.framedIp + + if ([radius][endpointIp]) and ([radius][endpointIp][0]) { + geoip { + id => "geoip_radius_endpointIp_asn" + default_database_type => "ASN" + source => "[radius][endpointIp][0]" + target => "[@metadata][radius_asn]" + } + if ([@metadata][radius_asn] and [@metadata][radius_asn][as_org] and [@metadata][radius_asn][asn]) { + # this is stupid, the %{} doesn't seem to be liked by mutate.merge + mutate { id => "mutate_add_field_radius_endpoint_asn" + add_field => { "[@metadata][asn_str]" => "AS%{[@metadata][radius_asn][asn]} %{[@metadata][radius_asn][as_org]}" } } + mutate { id => "mutate_merge_radius_endpoint_asn" + merge => { "[radius][endpointASN]" => "[@metadata][asn_str]" } } + } + + geoip { + id => "geoip_radius_endpointIp_geo" + source => "[radius][endpointIp][0]" + target => "[@metadata][radius_geo]" + } + if ([@metadata][radius_geo] and [@metadata][radius_geo][country_code2]) { + mutate { id => "mutate_merge_radius_endpoint_geo" + merge => { "[radius][endpointGEO]" => "[@metadata][radius_geo][country_code2]" } } + } + } # end if radius.endpointIp + + } # end if radius + + if ([zeek_cip_identity][socket_address]) { + + # if this is a zeek_cip_identity record with socket_address, ASN/GeoIP it as well + geoip { + id => "geoip_zeek_cip_identity_socket_address" + default_database_type => "ASN" + source => "[zeek_cip_identity][socket_address]" + target => "[@metadata][zeek_cip_identity_asn]" + } + if ([@metadata][zeek_cip_identity_asn] and [@metadata][zeek_cip_identity_asn][as_org] and [@metadata][zeek_cip_identity_asn][asn]) { + # this is stupid, the %{} doesn't seem to be liked by mutate.merge + mutate { id => "mutate_add_field_zeek_cip_identity_asn" + add_field => { "[@metadata][cip_asn_str]" => "AS%{[@metadata][zeek_cip_identity_asn][asn]} %{[@metadata][zeek_cip_identity_asn][as_org]}" } } + mutate { id => "mutate_merge_zeek_cip_identity_asn" + merge => { "[zeek_cip_identity][socket_address_asn]" => "[@metadata][cip_asn_str]" } } + } + geoip { + id => "geoip_zeek_cip_identity_socket_address_geo" + source => "[zeek_cip_identity][socket_address]" + target => "[zeek_cip_identity][socket_address_geo]" + } + + } # end if zeek_cip_identity.socket_address + + if ([zeek_ssl][server_name]) { + mutate { + add_field => { "[@metadata][ENV_FREQ_LOOKUP]" => "${FREQ_LOOKUP:false}" } + } + if ([@metadata][ENV_FREQ_LOOKUP] == "true") { + # if requested, look up zeek_ssl.server_name queries using freq_server.py to get entropy scores + http { + id => "rest_zeek_ssl_server_name_freq_lookup" + url => "http://freq:10004/measure/%{[zeek_ssl][server_name]}" + target_body => "[@metadata][zeek_ssl_server_name_freq]" + } + if ([@metadata][zeek_ssl_server_name_freq]) { + grok { + id => "grok_zeek_ssl_server_name_freq_parse" + match => { "[@metadata][zeek_ssl_server_name_freq]" => [ "^\(%{NUMBER:[zeek][freq_score_v1]}, %{NUMBER:[zeek][freq_score_v2]}\)$" ] } + } + } + } + } # end if zeek_ssl.server_name + + ################################################################################################ + + ######## JA3 community hashes lookup ########################################################### + # ja3/ja3s are arrays at this point, as Arkime expects them to be + + if ([tls][ja3]) and ([tls][ja3][0]) { + translate { + id => "translate_ssl_ja3" + field => "[tls][ja3][0]" + destination => "[zeek_ssl][ja3_desc]" + dictionary_path => "/etc/ja3.yaml" + } + } + + if ([tls][ja3s]) and ([tls][ja3s][0]) { + translate { + id => "translate_ssl_ja3s" + field => "[tls][ja3s][0]" + destination => "[zeek_ssl][ja3s_desc]" + dictionary_path => "/etc/ja3.yaml" + } + } + + ################################################################################################ + + # this identifies which node the log came from + if ([host][name]) { + mutate { id => "mutate_add_field_host_name_node" + add_field => { "[node]" => "%{[host][name]}" } } + } else { + mutate { id => "mutate_add_field_logstash_node" + add_field => { "[node]" => "logs" } } + } + + if ([log][file][path]) { + # trim path portion of log.file.path + mutate { id => "mutate_gsub_field_zeek_log_file_path" + gsub => [ "[log][file][path]", "^.*/", "" ] } + } + + # remove some useless beats-related fields + mutate { + id => "mutate_remove_field_beats_useless" + remove_field => [ + "[beat]", + "[agent][ephemeral_id]", + "[log][offset]", + "[input][type]", + "[prospector]", + "[message]" + ] + } + +} # end Filter diff --git a/Vagrant/resources/malcolm/logstash/pipelines/enrichment/12_type_conv.conf b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/12_type_conv.conf new file mode 100644 index 0000000..7a8861a --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/12_type_conv.conf @@ -0,0 +1,79 @@ +filter { + + # set data types for fields that belong to multiple types of logs + # _dataconversion tag (for missing fields) will be removed in 18_tags_finalize.conf + mutate { + id => "mutate_convert_misc" + convert => { + "[certCnt]" => "integer" + "[dhcp][hostCnt]" => "integer" + "[dhcp][idCnt]" => "integer" + "[dhcp][macCnt]" => "integer" + "[dhcp][ouiCnt]" => "integer" + "[dns][hostCnt]" => "integer" + "[dns][ipCnt]" => "integer" + "[dns][opcodeCnt]" => "integer" + "[dns][qcCnt]" => "integer" + "[dns][qtCnt]" => "integer" + "[dstBytes]" => "integer" + "[dstDataBytes]" => "integer" + "[dstMacCnt]" => "integer" + "[dstOuiCnt]" => "integer" + "[dstPackets]" => "integer" + "[dstPort]" => "integer" + "[email][dstCnt]" => "integer" + "[email][idCnt]" => "integer" + "[email][srcCnt]" => "integer" + "[email][subjectCnt]" => "integer" + "[email][useragentCnt]" => "integer" + "[email][smtpHelloCnt]" => "integer" + "[firstPacket]" => "integer" + "[http][bodyMagicCnt]" => "integer" + "[http][clientVersionCnt]" => "integer" + "[http][hostCnt]" => "integer" + "[http][methodCnt]" => "integer" + "[http][statuscodeCnt]" => "integer" + "[http][uriCnt]" => "integer" + "[http][useragentCnt]" => "integer" + "[ipProtocol]" => "integer" + "[irc][channelCnt]" => "integer" + "[irc][nickCnt]" => "integer" + "[krb5][cnameCnt]" => "integer" + "[krb5][snameCnt]" => "integer" + "[lastPacket]" => "integer" + "[length]" => "integer" + "[protocolCnt]" => "integer" + "[quic][hostCnt]" => "integer" + "[quic][useragentCnt]" => "integer" + "[quic][versionCnt]" => "integer" + "[radius][endpointegerIpCnt]" => "integer" + "[radius][framedIpCnt]" => "integer" + "[radius][macCnt]" => "integer" + "[segmentCnt]" => "integer" + "[srcBytes]" => "integer" + "[srcDataBytes]" => "integer" + "[srcMacCnt]" => "integer" + "[srcOuiCnt]" => "integer" + "[srcPackets]" => "integer" + "[srcPort]" => "integer" + "[ssh][hasshCnt]" => "integer" + "[ssh][hasshServerCnt]" => "integer" + "[ssh][keyCnt]" => "integer" + "[ssh][versionCnt]" => "integer" + "[timestamp]" => "integer" + "[tls][cipherCnt]" => "integer" + "[tls][ja3Cnt]" => "integer" + "[tls][ja3sCnt]" => "integer" + "[tls][versionCnt]" => "integer" + "[totBytes]" => "integer" + "[totDataBytes]" => "integer" + "[totPackets]" => "integer" + "[userCnt]" => "integer" + "[vlan]" => "integer" + "[vlanCnt]" => "integer" + "[zeek][freq_score_v1]" => "float" + "[zeek][freq_score_v2]" => "float" + } + } + +} # end Filter diff --git a/Vagrant/resources/malcolm/logstash/pipelines/enrichment/17_segment_comparison.conf b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/17_segment_comparison.conf new file mode 100644 index 0000000..83df0d0 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/17_segment_comparison.conf @@ -0,0 +1,12 @@ +filter { + + if ([zeek][resp_segment] and [zeek][orig_segment]) and + ([zeek][resp_segment] != [zeek][orig_segment]) { + mutate { + id => "mutate_add_tag_cross_segment" + add_tag => [ "cross_segment" ] + } + } + +} # filter + diff --git a/Vagrant/resources/malcolm/logstash/pipelines/enrichment/18_tags_finalize.conf b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/18_tags_finalize.conf new file mode 100644 index 0000000..910ebaa --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/18_tags_finalize.conf @@ -0,0 +1,33 @@ +filter { + + # remove tags we'd rather not see + + mutate { id => "mutate_enrichment_tags_remove" + remove_tag => [ "beats_input_codec_plain_applied", + "_dateparsefailure", + "_grokparsefailure", + "_jsonparsefailure", + "_dissectfailure", + "_ouilookupfailure", + "_geoip_lookup_failure" ] } + + # deduplicate tags + + ruby { + id => "ruby_zeek_tags_deduplicate" + code => "event.set('[tags]', event.get('[tags]').uniq)" + } + + # count tags (for moloch) + + ruby { + id => "ruby_enrichment_tagsCnt" + code => "event.set('[tagsCnt]', event.get('[tags]').length)" + } + mutate { + id => "mutate_convert_enrichment_tagsCnt" + convert => { "[tagsCnt]" => "integer" } + } + +} # filter + diff --git a/Vagrant/resources/malcolm/logstash/pipelines/enrichment/20_enriched_to_ecs.conf b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/20_enriched_to_ecs.conf new file mode 100644 index 0000000..8eb1b0d --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/20_enriched_to_ecs.conf @@ -0,0 +1,69 @@ +filter { + + # Map enriched fields to ECS where possible (see https://github.com/idaholab/Malcolm/issues/16) + # For now I will add fields rather than rename them. This will preserve backwards compatibility + # but the records will be somewhat bigger. I'll have to address what (if anything) to do with upgrades. + + # for now don't do anything unles an env explicitly enables it + mutate { + id => "mutate_add_field_env_logstash_enriched_to_ecs" + add_field => { "[@metadata][ENV_LOGSTASH_ENRICHED_TO_ECS]" => "${LOGSTASH_TO_ECS:false}" } + } + if ([@metadata][ENV_LOGSTASH_ENRICHED_TO_ECS] == "true") { + + # 🗹 Network - Fields describing the communication path over which the event happened. - https://www.elastic.co/guide/en/ecs/current/ecs-network.html + + # network.direction (from tags assigned during 11_lookups.conf) + if ("internal_source" in [tags]) and ("internal_destination" in [tags]) { + mutate { id => "mutate_add_field_metadata_network_direction_internal" + add_field => { "[@metadata][network_direction]" => "internal" } } + } else if ("external_source" in [tags]) and ("external_destination" in [tags]) { + mutate { id => "mutate_add_field_metadata_network_direction_external" + add_field => { "[@metadata][network_direction]" => "external" } } + } else if ("internal_source" in [tags]) and ("external_destination" in [tags]) { + mutate { id => "mutate_add_field_metadata_network_direction_outbound" + add_field => { "[@metadata][network_direction]" => "outbound" } } + } else if ("external_source" in [tags]) and ("internal_destination" in [tags]) { + mutate { id => "mutate_add_field_metadata_network_direction_inbound" + add_field => { "[@metadata][network_direction]" => "inbound" } } + } + if ([@metadata][network_direction]) { + mutate { id => "mutate_add_field_ecs_network_direction" + add_field => { "[network][direction]" => "%{[@metadata][network_direction]}" } } + } + + # network.name (based on info from [zeek][resp_segment] and [zeek][orig_segment]) + if ([zeek][resp_segment]) { mutate { id => "mutate_add_field_ecs_network_name_resp" + merge => { "[network][name]" => "[zeek][resp_segment]" } } } + if ([zeek][orig_segment]) { mutate { id => "mutate_add_field_ecs_network_name_orig" + merge => { "[network][name]" => "[zeek][orig_segment]" } } } + + # Autonomous System and Geo are handled after enrichment in 20_enriched_to_ecs.conf + # ☐ Autonomous System - Fields describing an Autonomous System (Internet routing prefix). - https://www.elastic.co/guide/en/ecs/current/ecs-as.html + # ☐ Geo - Fields describing a location. - https://www.elastic.co/guide/en/ecs/current/ecs-geo.html + + # ecs.version is required in all events - https://www.elastic.co/guide/en/ecs/current/ecs-ecs.html + if (![ecs][version]) { mutate { id => "mutate_add_field_ecs_version" + add_field => { "[ecs][version]" => "1.5.0" } } } + + # event.ingested + if (![event][ingested]) { + ruby { + id => "ruby_event_ingested_now_zeek" + init => "require 'time'" + code => "event.set('[event][ingested]', Time.now.to_f)" + } + date { + id => "date_event_ingested_conv" + match => [ "[event][ingested]", "UNIX" ] + target => "[event][ingested]" + } + } + + # event.provider + if (![event][provider]) { mutate { id => "mutate_add_field_event_provider_enrichment" + add_field => { "[event][provider]" => "malcolm" } } } + + } # end if ENV_LOGSTASH_ENRICHED_TO_ECS + +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/pipelines/enrichment/99_elastic_forward.conf b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/99_elastic_forward.conf new file mode 100644 index 0000000..11b3e53 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/enrichment/99_elastic_forward.conf @@ -0,0 +1,5 @@ +output { + pipeline { + send_to => [_MALCOLM_ELASTICSEARCH_OUTPUT_PIPELINES_] + } +} diff --git a/Vagrant/resources/malcolm/logstash/pipelines/external/00_config.conf b/Vagrant/resources/malcolm/logstash/pipelines/external/00_config.conf new file mode 100644 index 0000000..9203838 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/external/00_config.conf @@ -0,0 +1,3 @@ + queue.type: persisted + queue.max_bytes: 4gb + path.queue: "/logstash-persistent-queue" diff --git a/Vagrant/resources/malcolm/logstash/pipelines/external/01_input_external_es.conf b/Vagrant/resources/malcolm/logstash/pipelines/external/01_input_external_es.conf new file mode 100644 index 0000000..563d830 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/external/01_input_external_es.conf @@ -0,0 +1,6 @@ +input { + pipeline { + address => "${ELASTICSEARCH_PIPELINE_ADDRESS_EXTERNAL:external-es}" + } +} + diff --git a/Vagrant/resources/malcolm/logstash/pipelines/external/99_elastic_output.conf b/Vagrant/resources/malcolm/logstash/pipelines/external/99_elastic_output.conf new file mode 100644 index 0000000..17050ec --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/external/99_elastic_output.conf @@ -0,0 +1,13 @@ +output { + elasticsearch { + id => "output_external_elasticsearch_moloch" + hosts => "${ES_EXTERNAL_HOSTS}" + ssl => "${ES_EXTERNAL_SSL:true}" + ssl_certificate_verification => "${ES_EXTERNAL_SSL_CERTIFICATE_VERIFICATION:false}" + user => "${ES_EXTERNAL_USER:}" + password => "${ES_EXTERNAL_PASSWORD:}" + manage_template => false + index => "sessions2-%{+YYMMdd}" + document_id => "%{+YYMMdd}-%{zeekLogDocId}" + } +} diff --git a/Vagrant/resources/malcolm/logstash/pipelines/input/01_beats_input.conf b/Vagrant/resources/malcolm/logstash/pipelines/input/01_beats_input.conf new file mode 100644 index 0000000..38721b8 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/input/01_beats_input.conf @@ -0,0 +1,13 @@ +input { + beats { + id => "input_beats" + host => "0.0.0.0" + port => 5044 + ssl => "${BEATS_SSL:false}" + ssl_certificate_authorities => ["/certs/ca.crt"] + ssl_certificate => "/certs/server.crt" + ssl_key => "/certs/server.key" + ssl_verify_mode => "none" + } +} + diff --git a/Vagrant/resources/malcolm/logstash/pipelines/input/99_input_forward.conf b/Vagrant/resources/malcolm/logstash/pipelines/input/99_input_forward.conf new file mode 100644 index 0000000..dd8691d --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/input/99_input_forward.conf @@ -0,0 +1,5 @@ +output { + pipeline { + send_to => [_MALCOLM_PARSE_PIPELINE_ADDRESSES_] + } +} diff --git a/Vagrant/resources/malcolm/logstash/pipelines/output/01_input_internal_es.conf b/Vagrant/resources/malcolm/logstash/pipelines/output/01_input_internal_es.conf new file mode 100644 index 0000000..e202c80 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/output/01_input_internal_es.conf @@ -0,0 +1,6 @@ +input { + pipeline { + address => "${ELASTICSEARCH_PIPELINE_ADDRESS_INTERNAL:internal-es}" + } +} + diff --git a/Vagrant/resources/malcolm/logstash/pipelines/output/99_elastic_output.conf b/Vagrant/resources/malcolm/logstash/pipelines/output/99_elastic_output.conf new file mode 100644 index 0000000..ca4d9a4 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/output/99_elastic_output.conf @@ -0,0 +1,9 @@ +output { + elasticsearch { + id => "output_elasticsearch_moloch" + hosts => "${ES_HOSTS:elasticsearch:9200}" + manage_template => false + index => "sessions2-%{+YYMMdd}" + document_id => "%{+YYMMdd}-%{zeekLogDocId}" + } +} diff --git a/Vagrant/resources/malcolm/logstash/pipelines/zeek/01_input_zeek.conf b/Vagrant/resources/malcolm/logstash/pipelines/zeek/01_input_zeek.conf new file mode 100644 index 0000000..9a06504 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/zeek/01_input_zeek.conf @@ -0,0 +1,6 @@ +input { + pipeline { + address => "zeek-parse" + } +} + diff --git a/Vagrant/resources/malcolm/logstash/pipelines/zeek/11_zeek_logs.conf b/Vagrant/resources/malcolm/logstash/pipelines/zeek/11_zeek_logs.conf new file mode 100644 index 0000000..5cfe029 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/zeek/11_zeek_logs.conf @@ -0,0 +1,5050 @@ +######################## +# zeek -> moloch session creation and enrichment +# +# see https://docs.zeek.org/en/stable/script-reference/log-files.html for Zeek logfile documentation +# +# see source.zeeklogs.js for the Arkime code that turns these into UI fields +# +# this monstrosity can be used to profile: +# $ curl -XGET http://localhost:9600/_node/stats/pipelines | python -mjson.tool | grep -P '"(id|duration_in_millis)":' | sed "s/.*: //" | sed ':a;N;$!ba;s/",\n/ /g' | sed "s/[\",]//g" | awk -F " " '{printf("%s %s\n", $2, $1)}' | sort -n +# +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. +####################### + +filter { + + if (([message] =~ /^\s*#/) or (![log][file][path])) { + drop { id => "drop_zeek_invalid_logs" } + } + + # tags may have been specified, like: conn(tagA,tagB,tagC).log, extract the log type (conn) and the tags (tagA,tagB,tagC) + ruby { + id => "ruby_zeek_source_extract" + #↓Type ↓Tags + code => " + if fileParts = event.get('[log][file][path]').split('/').last.match(/^(.*?)(?:\((.*)\))?\.log/i) then + logType, tags = fileParts.captures + event.set('[source]', logType) unless logType.nil? + event.set('[@metadata][zeek_log_tags]', tags) unless tags.nil? + end" + } + + # report types we're going to ignore + if (([source] == "bsap_ip_unknown") or + ([source] == "bsap_serial_unknown") or + ([source] == "ecat_arp_info") or + ([source] == "reporter") or + ([source] == "broker") or + ([source] == "cluster") or + ([source] == "capture_loss") or + ([source] == "communication") or + ([source] == "packet_filter") or + ([source] == "png") or + ([source] == "stats") or + ([source] == "stderr") or + ([source] == "stdout") or + ([source] == "loaded_scripts")) { + drop { id => "drop_zeek_ignored_source" } + } + + # remove some tags pulled from the filename we might not want + if ([@metadata][zeek_log_tags]) { + ruby { + id => "ruby_zeek_prune_tags" + code => " + filenameTags = event.get('[@metadata][zeek_log_tags]').split(',') + zeekFieldsTag = filenameTags.select { |str| str.start_with?('ZEEKFLDx') } + if (zeekFieldsTag.size > 0) then + zeekFieldsTags = zeekFieldsTag.first.split('x', 3) + if (zeekFieldsTags.size == 3) then + event.set('[@metadata][zeek_fields_bitmap_version]', zeekFieldsTags[1].to_i(16)) + event.set('[@metadata][zeek_fields_bitmap]', zeekFieldsTags[2].to_i(16)) + end + end + filenameTags.delete_if{|v| ((v == nil) or (v == '') or (v !~ /\D/) or (v =~ /\A\s*(ZEEKFLDx|autocarve)/i) or (v =~ /\A\s*(pcap|dmp|log|bro|zeek|tcpdump|netsniff|autozeek)s?\s*\z/i) or (v == event.get('[source]')))} + event.set('[@metadata][zeek_log_tags]', filenameTags.uniq) + " + # + # ZEEKFLDx00x01FFFFFF + # | | └ bitmap of included fields within field list + # | └ index into zeek-log-field-bitmap.py:ZEEK_LOG_FIELDS list indicating field configuration within differing Zeek versions + # └ indicates that the field list has been pre-processed by zeek-process-pcap.py + # + # when logstash-filter-dissect gets this implemented, we *may* not have to do this + # - see zeek-process-pcap.py for the format of the bitmap number + # - https://github.com/logstash-plugins/logstash-filter-dissect/issues/56 + # - https://github.com/logstash-plugins/logstash-filter-dissect/issues/62 + # + # todo: right now rather than using the bitmap intelligently to build the field list, I'm just looking for + # known preconfigurations. look into doing it "smart". + # + } + if ([@metadata][zeek_log_tags]) { mutate { id => "mutate_merge_zeek_log_tags" + merge => { "[tags]" => "[@metadata][zeek_log_tags]" } } } + } + + # The Dissect is WAY faster than CSV, and quite a bit faster than mutate.split. However, it + # is not as flexible when it comes to missing or extra columns + # (See https://github.com/logstash-plugins/logstash-filter-dissect/issues/62) + # + # So, if the dissect filter fails, we're going to fall back to split-then-zip solution. + # This should be a good tradeoff between performance (in the case where the Zeek logs + # match what we think they should look like) and flexibility (when they don't). + # + # The one drawback is that if you make a change to the fields in dissect, make sure + # you make the corresponding change in the ruby init code. + + if ([source] == "conn") { + ############################################################################################################################# + # conn.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/conn/main.zeek.html#type-Conn::Info + + if ([@metadata][zeek_fields_bitmap] and [@metadata][zeek_fields_bitmap_version]) { + + # bitmap conn.log field configuration version 0 + # + # Todo: I need to just bite the bullet and code this up in a Ruby block rather than hardcoding values. + # + # vlan + mac + community_id: 0x3ffffff / 67108863 + # vlan + mac: 0x1ffffff / 33554431 + # mac + community_id: 0x39fffff / 60817407 + # mac only: 0x19fffff / 27262975 + # vlan + community_id: 0x27fffff / 41943039 + # vlan only: 0x7fffff / 8388607 + # community_id only: 0x1fffff / 2097151 + # no custom fields: + + if ([@metadata][zeek_fields_bitmap_version] == 0) { + + if ([@metadata][zeek_fields_bitmap] == 67108863) { + # conn.log has vlans + macs + community_id + dissect { + id => "dissect_zeek_conn_with_all_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][service]} %{[zeek_cols][duration]} %{[zeek_cols][orig_bytes]} %{[zeek_cols][resp_bytes]} %{[zeek_cols][conn_state]} %{[zeek_cols][local_orig]} %{[zeek_cols][local_resp]} %{[zeek_cols][missed_bytes]} %{[zeek_cols][history]} %{[zeek_cols][orig_pkts]} %{[zeek_cols][orig_ip_bytes]} %{[zeek_cols][resp_pkts]} %{[zeek_cols][resp_ip_bytes]} %{[zeek_cols][tunnel_parents]} %{[zeek_cols][vlan]} %{[zeek_cols][inner_vlan]} %{[zeek_cols][orig_l2_addr]} %{[zeek_cols][resp_l2_addr]} %{[zeek_cols][community_id]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 33554431) { + # conn.log has vlans + macs + dissect { + id => "dissect_zeek_conn_with_vlan_and_mac_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][service]} %{[zeek_cols][duration]} %{[zeek_cols][orig_bytes]} %{[zeek_cols][resp_bytes]} %{[zeek_cols][conn_state]} %{[zeek_cols][local_orig]} %{[zeek_cols][local_resp]} %{[zeek_cols][missed_bytes]} %{[zeek_cols][history]} %{[zeek_cols][orig_pkts]} %{[zeek_cols][orig_ip_bytes]} %{[zeek_cols][resp_pkts]} %{[zeek_cols][resp_ip_bytes]} %{[zeek_cols][tunnel_parents]} %{[zeek_cols][vlan]} %{[zeek_cols][inner_vlan]} %{[zeek_cols][orig_l2_addr]} %{[zeek_cols][resp_l2_addr]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 60817407) { + # conn.log has macs + community_id + dissect { + id => "dissect_zeek_conn_with_mac_and_community_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][service]} %{[zeek_cols][duration]} %{[zeek_cols][orig_bytes]} %{[zeek_cols][resp_bytes]} %{[zeek_cols][conn_state]} %{[zeek_cols][local_orig]} %{[zeek_cols][local_resp]} %{[zeek_cols][missed_bytes]} %{[zeek_cols][history]} %{[zeek_cols][orig_pkts]} %{[zeek_cols][orig_ip_bytes]} %{[zeek_cols][resp_pkts]} %{[zeek_cols][resp_ip_bytes]} %{[zeek_cols][tunnel_parents]} %{[zeek_cols][orig_l2_addr]} %{[zeek_cols][resp_l2_addr]} %{[zeek_cols][community_id]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 27262975) { + # conn.log has macs + dissect { + id => "dissect_zeek_conn_with_mac_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][service]} %{[zeek_cols][duration]} %{[zeek_cols][orig_bytes]} %{[zeek_cols][resp_bytes]} %{[zeek_cols][conn_state]} %{[zeek_cols][local_orig]} %{[zeek_cols][local_resp]} %{[zeek_cols][missed_bytes]} %{[zeek_cols][history]} %{[zeek_cols][orig_pkts]} %{[zeek_cols][orig_ip_bytes]} %{[zeek_cols][resp_pkts]} %{[zeek_cols][resp_ip_bytes]} %{[zeek_cols][tunnel_parents]} %{[zeek_cols][orig_l2_addr]} %{[zeek_cols][resp_l2_addr]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 41943039) { + # conn.log has vlans + community_id + dissect { + id => "dissect_zeek_conn_with_vlan_and_community_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][service]} %{[zeek_cols][duration]} %{[zeek_cols][orig_bytes]} %{[zeek_cols][resp_bytes]} %{[zeek_cols][conn_state]} %{[zeek_cols][local_orig]} %{[zeek_cols][local_resp]} %{[zeek_cols][missed_bytes]} %{[zeek_cols][history]} %{[zeek_cols][orig_pkts]} %{[zeek_cols][orig_ip_bytes]} %{[zeek_cols][resp_pkts]} %{[zeek_cols][resp_ip_bytes]} %{[zeek_cols][tunnel_parents]} %{[zeek_cols][vlan]} %{[zeek_cols][inner_vlan]} %{[zeek_cols][community_id]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 8388607) { + # conn.log has vlans + dissect { + id => "dissect_zeek_conn_with_vlan_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][service]} %{[zeek_cols][duration]} %{[zeek_cols][orig_bytes]} %{[zeek_cols][resp_bytes]} %{[zeek_cols][conn_state]} %{[zeek_cols][local_orig]} %{[zeek_cols][local_resp]} %{[zeek_cols][missed_bytes]} %{[zeek_cols][history]} %{[zeek_cols][orig_pkts]} %{[zeek_cols][orig_ip_bytes]} %{[zeek_cols][resp_pkts]} %{[zeek_cols][resp_ip_bytes]} %{[zeek_cols][tunnel_parents]} %{[zeek_cols][vlan]} %{[zeek_cols][inner_vlan]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 2097151) { + # conn.log has community_id + dissect { + id => "dissect_zeek_conn_with_community_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][service]} %{[zeek_cols][duration]} %{[zeek_cols][orig_bytes]} %{[zeek_cols][resp_bytes]} %{[zeek_cols][conn_state]} %{[zeek_cols][local_orig]} %{[zeek_cols][local_resp]} %{[zeek_cols][missed_bytes]} %{[zeek_cols][history]} %{[zeek_cols][orig_pkts]} %{[zeek_cols][orig_ip_bytes]} %{[zeek_cols][resp_pkts]} %{[zeek_cols][resp_ip_bytes]} %{[zeek_cols][tunnel_parents]} %{[zeek_cols][community_id]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 2097151) { + # conn.log has no custom fields + dissect { + id => "dissect_zeek_conn_with_minimal_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][service]} %{[zeek_cols][duration]} %{[zeek_cols][orig_bytes]} %{[zeek_cols][resp_bytes]} %{[zeek_cols][conn_state]} %{[zeek_cols][local_orig]} %{[zeek_cols][local_resp]} %{[zeek_cols][missed_bytes]} %{[zeek_cols][history]} %{[zeek_cols][orig_pkts]} %{[zeek_cols][orig_ip_bytes]} %{[zeek_cols][resp_pkts]} %{[zeek_cols][resp_ip_bytes]} %{[zeek_cols][tunnel_parents]}" + } + } + + } else { + # who knows? the conn.log preprocessed bitmap is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_conn_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the conn.log preprocessed bitmap field list version is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_bitmap_conn_version" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the conn.log was not preprocessed to determine fields, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_missing_conn_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_conn" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_conn" + init => "$zeek_conn_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'proto', 'service', 'duration', 'orig_bytes', 'resp_bytes', 'conn_state', 'local_orig', 'local_resp', 'missed_bytes', 'history', 'orig_pkts', 'orig_ip_bytes', 'resp_pkts', 'resp_ip_bytes', 'tunnel_parents', 'vlan', 'inner_vlan', 'orig_l2_addr', 'resp_l2_addr', 'community_id' ]" + code => "event.set('[zeek_cols]', $zeek_conn_field_names.zip(event.get('[message]')).to_h)" + } + } + + # normalize service string(s) + if ([zeek_cols][service] =~ /^spicy_/) { + # if it's coming from spicy, we don't care to have that in the service name + mutate { id => "mutate_gsub_field_zeek_conn_service_spicy_prefix" + gsub => [ "[zeek_cols][service]", "^spicy_", "" ] } + + # some spicy services are named like blah_udp or blah_tcp, + # and we don't care about the _udp/_tcp suffix + mutate { id => "mutate_gsub_field_zeek_conn_service_spicy_suffix" + gsub => [ "[zeek_cols][service]", "_(tcp|udp)(_hmac)?$", "" ] } + + if ([zeek_cols][service] == "tftp_data") { + mutate { id => "mutate_replace_zeek_conn_service_tftp_data" + replace => { "[zeek_cols][service]" => "tftp" } } + } + } + if ([zeek_cols][service] == "ftp_data") { + mutate { id => "mutate_replace_zeek_conn_service_ftp_data" + replace => { "[zeek_cols][service]" => "ftp" } } + } + if ([zeek_cols][service] == "ipsec_ike") { + mutate { id => "mutate_replace_zeek_conn_service_ipsec_ike" + replace => { "[zeek_cols][service]" => "ipsec" } } + } + + mutate { id => "mutate_add_field_zeek_conn_segmentCnt" + add_field => { "[segmentCnt]" => "1" } } + + if ([zeek_cols][orig_ip_bytes]) and ([zeek_cols][orig_ip_bytes] != '-') and ([zeek_cols][orig_ip_bytes] != '(empty)') and ([zeek_cols][orig_ip_bytes] != '') { + mutate { id => "mutate_add_field_zeek_srcBytes" + add_field => { "[srcBytes]" => "%{[zeek_cols][orig_ip_bytes]}" } } + } + if ([zeek_cols][resp_ip_bytes]) and ([zeek_cols][resp_ip_bytes] != '-') and ([zeek_cols][resp_ip_bytes] != '(empty)') and ([zeek_cols][resp_ip_bytes] != '') { + mutate { id => "mutate_add_field_zeek_dstBytes" + add_field => { "[dstBytes]" => "%{[zeek_cols][resp_ip_bytes]}" } } + } + if ([zeek_cols][orig_pkts]) and ([zeek_cols][orig_pkts] != '-') and ([zeek_cols][orig_pkts] != '(empty)') and ([zeek_cols][orig_pkts] != '') { + mutate { id => "mutate_add_field_zeek_srcPackets" + add_field => { "[srcPackets]" => "%{[zeek_cols][orig_pkts]}" } } + } + if ([zeek_cols][orig_bytes]) and ([zeek_cols][orig_bytes] != '-') and ([zeek_cols][orig_bytes] != '(empty)') and ([zeek_cols][orig_bytes] != '') { + mutate { id => "mutate_add_field_zeek_srcDataBytes" + add_field => { "[srcDataBytes]" => "%{[zeek_cols][orig_bytes]}" } } + } + if ([zeek_cols][resp_pkts]) and ([zeek_cols][resp_pkts] != '-') and ([zeek_cols][resp_pkts] != '(empty)') and ([zeek_cols][resp_pkts] != '') { + mutate { id => "mutate_add_field_zeek_dstPackets" + add_field => { "[dstPackets]" => "%{[zeek_cols][resp_pkts]}" } } + } + if ([zeek_cols][resp_bytes]) and ([zeek_cols][resp_bytes] != '-') and ([zeek_cols][resp_bytes] != '(empty)') and ([zeek_cols][resp_bytes] != '') { + mutate { id => "mutate_add_field_zeek_dstDataBytes" + add_field => { "[dstDataBytes]" => "%{[zeek_cols][resp_bytes]}" } } + } + if ([zeek_cols][tunnel_parents]) and ([zeek_cols][tunnel_parents] != '(empty)') and ([zeek_cols][tunnel_parents] != '-') and ([zeek_cols][tunnel_parents] != '') { + mutate { id => "mutate_split_zeek_tunnel_parents" + split => { "[zeek_cols][tunnel_parents]" => "," } } + mutate { id => "mutate_add_field_zeek_conn_rootId" + add_field => { "[rootId]" => "%{[zeek_cols][tunnel_parents][0]}" } } + } + + } else if ([source] == "bacnet") { + ############################################################################################################################# + # bacnet.log + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_bacnet" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][bvlc_function]} %{[zeek_cols][pdu_type]} %{[zeek_cols][pdu_service]} %{[zeek_cols][invoke_id]} %{[zeek_cols][result_code]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_bacnet" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_bacnet" + init => "$zeek_bacnet_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'bvlc_function', 'pdu_type', 'pdu_service', 'invoke_id', 'result_code' ]" + code => "event.set('[zeek_cols]', $zeek_bacnet_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_bacnet" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "bacnet" + } + } + + } else if ([source] == "bestguess") { + ############################################################################################################################# + # bestguess.log + + dissect { + id => "dissect_zeek_bestguess" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][name]} %{[zeek_cols][category]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_bestguess" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_bestguess" + init => "$zeek_bestguess_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'proto', 'name', 'category' ]" + code => "event.set('[zeek_cols]', $zeek_bestguess_field_names.zip(event.get('[message]')).to_h)" + } + } + + } else if ([source] == "bsap_ip_header") { + ############################################################################################################################# + # bsap_ip_header.log + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_bsap_ip_header" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][num_msg]} %{[zeek_cols][type_name]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_bsap_ip_header" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_bsap_ip_header" + init => "$zeek_bsap_ip_header_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'num_msg', 'type_name' ]" + code => "event.set('[zeek_cols]', $zeek_bsap_ip_header_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_bsap_ip_header" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "bsap" + } + } + + } else if ([source] == "bsap_ip_rdb") { + ############################################################################################################################# + # bsap_ip_rdb.log + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_bsap_ip_rdb" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][header_size]} %{[zeek_cols][mes_seq]} %{[zeek_cols][res_seq]} %{[zeek_cols][data_len]} %{[zeek_cols][sequence]} %{[zeek_cols][app_func_code]} %{[zeek_cols][node_status]} %{[zeek_cols][func_code]} %{[zeek_cols][data]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_bsap_ip_rdb" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_bsap_ip_rdb" + init => "$zeek_bsap_ip_rdb_field_names = [ 'ts', 'uid', 'header_size', 'mes_seq', 'res_seq', 'data_len', 'sequence', 'app_func_code', 'node_status', 'func_code', 'data' ]" + code => "event.set('[zeek_cols]', $zeek_bsap_ip_rdb_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_bsap_ip_rdb" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "bsap" + } + } + + # for now, drop hex-encoded binary data for size + if ([zeek_cols][data]) { + mutate { id => "mutate_remove_field_zeek_bsap_ip_rdb_data" + remove_field => [ "[zeek_cols][data]" ] } + } + + } else if ([source] == "bsap_ip_unknown") { + ############################################################################################################################# + # bsap_ip_unknown.log (dropped for now, see above) + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_bsap_ip_unknown" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][data]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_bsap_ip_unknown" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_bsap_ip_unknown" + init => "$zeek_bsap_ip_unknown_field_names = [ 'ts', 'uid', 'data' ]" + code => "event.set('[zeek_cols]', $zeek_bsap_ip_unknown_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_bsap_ip_unknown" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "bsap" + } + } + + } else if ([source] == "bsap_serial_header") { + ############################################################################################################################# + # bsap_serial_header.log + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_bsap_serial_header" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][ser]} %{[zeek_cols][dadd]} %{[zeek_cols][sadd]} %{[zeek_cols][ctl]} %{[zeek_cols][dfun]} %{[zeek_cols][seq]} %{[zeek_cols][sfun]} %{[zeek_cols][nsb]} %{[zeek_cols][type_name]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_bsap_serial_header" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_bsap_serial_header" + init => "$zeek_bsap_serial_header_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'ser', 'dadd', 'sadd', 'ctl', 'dfun', 'seq', 'sfun', 'nsb', 'type_name' ]" + code => "event.set('[zeek_cols]', $zeek_bsap_serial_header_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_bsap_serial_header" + add_field => { + "[zeek_cols][proto]" => "serial" + "[zeek_cols][service]" => "bsap" + } + } + + } else if ([source] == "bsap_serial_rdb") { + ############################################################################################################################# + # bsap_serial_rdb.log + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_bsap_serial_rdb" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][func_code]} %{[zeek_cols][data]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_bsap_serial_rdb" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_bsap_serial_rdb" + init => "$zeek_bsap_serial_rdb_field_names = [ 'ts', 'uid', 'func_code', 'data' ]" + code => "event.set('[zeek_cols]', $zeek_bsap_serial_rdb_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_bsap_serial_rdb" + add_field => { + "[zeek_cols][proto]" => "serial" + "[zeek_cols][service]" => "bsap" + } + } + + # for now, drop hex-encoded binary data for size + if ([zeek_cols][data]) { + mutate { id => "mutate_remove_field_zeek_bsap_serial_rdb_data" + remove_field => [ "[zeek_cols][data]" ] } + } + + } else if ([source] == "bsap_serial_rdb_ext") { + ############################################################################################################################# + # bsap_serial_rdb_ext.log + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_bsap_serial_rdb_ext" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][dfun]} %{[zeek_cols][seq]} %{[zeek_cols][sfun]} %{[zeek_cols][nsb]} %{[zeek_cols][extfun]} %{[zeek_cols][data]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_bsap_serial_rdb_ext" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_bsap_serial_rdb_ext" + init => "$zeek_bsap_serial_rdb_ext_field_names = [ 'ts', 'uid', 'dfun', 'seq', 'sfun', 'nsb', 'extfun', 'data' ]" + code => "event.set('[zeek_cols]', $zeek_bsap_serial_rdb_ext_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_bsap_serial_rdb_ext" + add_field => { + "[zeek_cols][proto]" => "serial" + "[zeek_cols][service]" => "bsap" + } + } + + # for now, drop hex-encoded binary data for size + if ([zeek_cols][data]) { + mutate { id => "mutate_remove_field_zeek_bsap_serial_rdb_ext_data" + remove_field => [ "[zeek_cols][data]" ] } + } + + } else if ([source] == "bsap_serial_unknown") { + ############################################################################################################################# + # bsap_serial_unknown.log (dropped for now, see above) + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_bsap_serial_unknown" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][data]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_bsap_serial_unknown" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_bsap_serial_unknown" + init => "$zeek_bsap_serial_unknown_field_names = [ 'ts', 'uid', 'data' ]" + code => "event.set('[zeek_cols]', $zeek_bsap_serial_unknown_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_bsap_serial_unknown" + add_field => { + "[zeek_cols][proto]" => "serial" + "[zeek_cols][service]" => "bsap" + } + } + + } else if ([source] == "bacnet_discovery") { + ############################################################################################################################# + # bacnet_discovery.log + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_bacnet_discovery" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][pdu_service]} %{[zeek_cols][object_type]} %{[zeek_cols][instance_number]} %{[zeek_cols][vendor]} %{[zeek_cols][range]} %{[zeek_cols][object_name]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_bacnet_discovery" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_bacnet_discovery" + init => "$zeek_bacnet_discovery_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'pdu_service', 'object_type', 'instance_number', 'vendor', 'range', 'object_name' ]" + code => "event.set('[zeek_cols]', $zeek_bacnet_discovery_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_bacnet_discovery" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "bacnet" + } + } + + } else if ([source] == "bacnet_property") { + ############################################################################################################################# + # bacnet_property.log + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_bacnet_property" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][pdu_service]} %{[zeek_cols][object_type]} %{[zeek_cols][instance_number]} %{[zeek_cols][property]} %{[zeek_cols][array_index]} %{[zeek_cols][value]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_bacnet_property" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_bacnet_property" + init => "$zeek_bacnet_property_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'pdu_service', 'object_type', 'instance_number', 'property', 'array_index', 'value' ]" + code => "event.set('[zeek_cols]', $zeek_bacnet_property_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_bacnet_property" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "bacnet" + } + } + + } else if ([source] == "cip") { + ############################################################################################################################# + # cip.log + # https://github.com/cisagov/ICSNPP + # + # todo: class_id, instance_id is a hex integer, should it be converted to an integer? + + dissect { + id => "dissect_zeek_cip" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][cip_sequence_count]} %{[zeek_cols][direction]} %{[zeek_cols][cip_service]} %{[zeek_cols][cip_status]} %{[zeek_cols][class_id]} %{[zeek_cols][class_name]} %{[zeek_cols][instance_id]} %{[zeek_cols][attribute_id]} %{[zeek_cols][data_id]} %{[zeek_cols][other_id]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_cip" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_cip" + init => "$zeek_cip_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'cip_sequence_count', 'direction', 'cip_service', 'cip_status', 'class_id', 'class_name', 'instance_id', 'attribute_id', 'data_id', 'other_id' ]" + code => "event.set('[zeek_cols]', $zeek_cip_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_cip" + add_field => { "[zeek_cols][service]" => "cip" } + } + + } else if ([source] == "cip_identity") { + ############################################################################################################################# + # cip_identity.log + # https://github.com/cisagov/ICSNPP + # + # TODO: device_status and device_state are a hex int string, convert to int? + + dissect { + id => "dissect_zeek_cip_identity" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][encapsulation_version]} %{[zeek_cols][socket_address]} %{[zeek_cols][socket_port]} %{[zeek_cols][vendor_id]} %{[zeek_cols][vendor_name]} %{[zeek_cols][device_type_id]} %{[zeek_cols][device_type_name]} %{[zeek_cols][product_code]} %{[zeek_cols][revision]} %{[zeek_cols][device_status]} %{[zeek_cols][serial_number]} %{[zeek_cols][product_name]} %{[zeek_cols][device_state]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_cip_identity" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_cip_identity" + init => "$zeek_cip_identity_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'encapsulation_version', 'socket_address', 'socket_port', 'vendor_id', 'vendor_name', 'device_type_id', 'device_type_name', 'product_code', 'device_status', 'serial_number', 'product_name', 'device_state' ]" + code => "event.set('[zeek_cols]', $zeek_cip_identity_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_cip_identity" + add_field => { "[zeek_cols][service]" => "cip" } + } + + } else if ([source] == "cip_io") { + ############################################################################################################################# + # cip_io.log + # https://github.com/cisagov/ICSNPP + # + + dissect { + id => "dissect_zeek_cip_io" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][connection_id]} %{[zeek_cols][sequence_number]} %{[zeek_cols][data_length]} %{[zeek_cols][io_data]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_cip_io" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_cip_io" + init => "$zeek_cip_io_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'connection_id', 'sequence_number', 'data_length', 'io_data' ]" + code => "event.set('[zeek_cols]', $zeek_cip_io_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_cip_io" + add_field => { "[zeek_cols][service]" => "cip" } + } + + # for now, drop hex-encoded binary io_data for size + if ([zeek_cols][io_data]) { + mutate { id => "mutate_remove_field_zeek_cip_io_io_data" + remove_field => [ "[zeek_cols][io_data]" ] } + } + + } else if ([source] == "dce_rpc") { + ############################################################################################################################# + # dce_rpc.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/dce-rpc/main.zeek.html#type-DCE_RPC::Info + + dissect { + id => "dissect_zeek_dce_rpc" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][rtt]} %{[zeek_cols][named_pipe]} %{[zeek_cols][endpoint]} %{[zeek_cols][operation]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_dce_rpc" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_dce_rpc" + init => "$zeek_dce_rpc_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'rtt', 'named_pipe', 'endpoint', 'operation' ]" + code => "event.set('[zeek_cols]', $zeek_dce_rpc_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_dce_rpc" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "dce_rpc" + } + } + + } else if ([source] == "dhcp") { + ############################################################################################################################# + # dhcp.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/dhcp/main.zeek.html#type-DHCP::Info + + if ([@metadata][zeek_fields_bitmap] and [@metadata][zeek_fields_bitmap_version]) { + + # bitmap dhcp.log field configuration version 0 + # + # all fields: 0x000003FF / 1023 + # + # bitmap dhcp.log field configuration version 1 + # + # all fields : 0x0001FFFF / 131071 + # all fields minus software: 0x00007FFF / 32767 + + if ([@metadata][zeek_fields_bitmap_version] == 0) { + + if ([@metadata][zeek_fields_bitmap] == 1023) { + dissect { + id => "dissect_zeek_dhcp_0_with_all_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][orig_l2_addr]} %{[zeek_cols][assigned_ip]} %{[zeek_cols][lease_time]} %{[zeek_cols][trans_id]}" + } + } + + } else { + # who knows? the dhcp.log preprocessed bitmap is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_dhcp_0_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + } else if ([@metadata][zeek_fields_bitmap_version] == 1) { + + if ([@metadata][zeek_fields_bitmap] == 131071) { + dissect { + id => "dissect_zeek_dhcp_1_with_all_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][resp_h]} %{[zeek_cols][orig_l2_addr]} %{[zeek_cols][host_name]} %{[zeek_cols][client_fqdn]} %{[zeek_cols][domain]} %{[zeek_cols][requested_ip]} %{[zeek_cols][assigned_ip]} %{[zeek_cols][lease_time]} %{[zeek_cols][client_message]} %{[zeek_cols][server_message]} %{[zeek_cols][msg_types]} %{[zeek_cols][duration]} %{[zeek_cols][client_software]} %{[zeek_cols][server_software]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 32767) { + dissect { + id => "dissect_zeek_dhcp_1_with_all_fields_minus_software" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][resp_h]} %{[zeek_cols][orig_l2_addr]} %{[zeek_cols][host_name]} %{[zeek_cols][client_fqdn]} %{[zeek_cols][domain]} %{[zeek_cols][requested_ip]} %{[zeek_cols][assigned_ip]} %{[zeek_cols][lease_time]} %{[zeek_cols][client_message]} %{[zeek_cols][server_message]} %{[zeek_cols][msg_types]} %{[zeek_cols][duration]}" + } + } + + } else { + # who knows? the dhcp.log preprocessed bitmap is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_dhcp_1_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the dhcp.log preprocessed bitmap field list version is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_bitmap_dhcp_version" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the dhcp.log was not preprocessed to determine fields, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_missing_dhcp_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_dhcp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_dhcp" + init => "$zeek_dhcp_field_names = [ 'ts', 'uid', 'orig_h', 'resp_h', 'orig_l2_addr', 'host_name', 'client_fqdn', 'domain', 'requested_ip', 'assigned_ip', 'lease_time', 'client_message', 'server_message', 'msg_types', 'duration', 'client_software', 'server_software' ]" + code => "event.set('[zeek_cols]', $zeek_dhcp_field_names.zip(event.get('[message]')).to_h)" + } + } + + if ([zeek_cols][uid]) and ([zeek_cols][uid] != '(empty)') and ([zeek_cols][uid] != '') { + mutate { id => "mutate_split_zeek_dhcp_uids" + split => { "[zeek_cols][uid]" => "," } } + } + if ([zeek_cols][uid] and [zeek_cols][uid][0]) { + mutate { id => "mutate_add_field_zeek_dhcp_uids" + add_field => { "[rootId]" => "%{[zeek_cols][uid][0]}" } } + } + + if ((![zeek_cols][orig_p]) and (![zeek_cols][resp_p])) { + mutate { + id => "mutate_add_field_zeek_dhcp_ports" + add_field => { + "[zeek_cols][orig_p]" => 68 + "[zeek_cols][resp_p]" => 67 + } + } + } + + mutate { + id => "mutate_add_fields_zeek_dhcp" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "dhcp" + } + } + + } else if ([source] == "dnp3") { + ############################################################################################################################# + # dnp3.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/dnp3/main.zeek.html#type-DNP3::Info + + dissect { + id => "dissect_zeek_dnp3" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][fc_request]} %{[zeek_cols][fc_reply]} %{[zeek_cols][iin]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_dnp3" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_dnp3" + init => "$zeek_dnp3_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'fc_request', 'fc_reply', 'iin' ]" + code => "event.set('[zeek_cols]', $zeek_dnp3_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_dnp3" + add_field => { "[zeek_cols][service]" => "dnp3" } + } + + } else if ([source] == "dnp3_control") { + ############################################################################################################################# + # dnp3_control.log + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_dnp3_control" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][block_type]} %{[zeek_cols][function_code]} %{[zeek_cols][index_number]} %{[zeek_cols][trip_control_code]} %{[zeek_cols][operation_type]} %{[zeek_cols][execute_count]} %{[zeek_cols][on_time]} %{[zeek_cols][off_time]} %{[zeek_cols][status_code]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_dnp3_control" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_dnp3_control" + init => "$zeek_dnp3_control_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'block_type', 'function_code', 'index_number', 'trip_control_code', 'operation_type', 'execute_count', 'on_time', 'off_time', 'status_code' ]" + code => "event.set('[zeek_cols]', $zeek_dnp3_control_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_dnp3_control" + add_field => { "[zeek_cols][service]" => "dnp3" } + } + + } else if ([source] == "dnp3_objects") { + ############################################################################################################################# + # dnp3_objects.log + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_dnp3_objects" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][function_code]} %{[zeek_cols][object_type]} %{[zeek_cols][object_count]} %{[zeek_cols][range_low]} %{[zeek_cols][range_high]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_dnp3_objects" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_dnp3_objects" + init => "$zeek_dnp3_objects_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'function_code', 'object_type', 'object_count', 'range_low', 'range_high' ]" + code => "event.set('[zeek_cols]', $zeek_dnp3_objects_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_dnp3_objects" + add_field => { "[zeek_cols][service]" => "dnp3" } + } + + } else if ([source] == "dns") { + ############################################################################################################################# + # dns.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/dns/main.zeek.html#type-DNS::Info + + dissect { + id => "dissect_zeek_dns" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][trans_id]} %{[zeek_cols][rtt]} %{[zeek_cols][query]} %{[zeek_cols][qclass]} %{[zeek_cols][qclass_name]} %{[zeek_cols][qtype]} %{[zeek_cols][qtype_name]} %{[zeek_cols][rcode]} %{[zeek_cols][rcode_name]} %{[zeek_cols][AA]} %{[zeek_cols][TC]} %{[zeek_cols][RD]} %{[zeek_cols][RA]} %{[zeek_cols][Z]} %{[zeek_cols][answers]} %{[zeek_cols][TTLs]} %{[zeek_cols][rejected]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_dns" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_dns" + init => "$zeek_dns_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'proto', 'trans_id', 'rtt', 'query', 'qclass', 'qclass_name', 'qtype', 'qtype_name', 'rcode', 'rcode_name', 'AA', 'TC', 'RD', 'RA', 'Z', 'answers', 'TTLs', 'rejected' ]" + code => "event.set('[zeek_cols]', $zeek_dns_field_names.zip(event.get('[message]')).to_h)" + } + } + + # remove C_ prefix from qclass_name + mutate { id => "mutate_gsub_field_zeek_dns_qclass_name" + gsub => [ "[zeek_cols][qclass_name]", "^C_", "" ] } + + mutate { + id => "mutate_add_fields_zeek_dns" + add_field => { "[zeek_cols][service]" => "dns" } + } + + } else if ([source] == "dpd") { + ############################################################################################################################# + # dpd.log + # https://docs.zeek.org/en/stable/scripts/base/frameworks/dpd/main.zeek.html#type-DPD::Info + + dissect { + id => "dissect_zeek_dpd" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][service]} %{[zeek_cols][failure_reason]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_dpd" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_dpd" + init => "$zeek_dpd_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'proto', 'service', 'failure_reason' ]" + code => "event.set('[zeek_cols]', $zeek_dpd_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { id => "mutate_lowercase_zeek_dpd_service" + lowercase => [ "[zeek_cols][service]" ] } + + # normalize service string(s) + if ([zeek_cols][service] =~ /^spicy_/) { + # if it's coming from spicy, we don't care to have that in the service name + mutate { id => "mutate_gsub_field_zeek_dpd_service_spicy_prefix" + gsub => [ "[zeek_cols][service]", "^spicy_", "" ] } + + # some spicy services are named like blah_udp or blah_tcp, + # and we don't care about the _udp/_tcp suffix + mutate { id => "mutate_gsub_field_zeek_dpd_service_spicy_suffix" + gsub => [ "[zeek_cols][service]", "_(tcp|udp)(_hmac)?$", "" ] } + + if ([zeek_cols][service] == "tftp_data") { + mutate { id => "mutate_replace_zeek_dpd_service_tftp_data" + replace => { "[zeek_cols][service]" => "tftp" } } + } + } + if ([zeek_cols][service] == "ftp_data") { + mutate { id => "mutate_replace_zeek_dpd_service_ftp_data" + replace => { "[zeek_cols][service]" => "ftp" } } + } + + } else if ([source] == "enip") { + ############################################################################################################################# + # enip.log + # https://github.com/cisagov/ICSNPP + # + + dissect { + id => "dissect_zeek_enip" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][enip_command]} %{[zeek_cols][length]} %{[zeek_cols][session_handle]} %{[zeek_cols][enip_status]} %{[zeek_cols][sender_context]} %{[zeek_cols][options]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_enip" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_enip" + init => "$zeek_enip_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'enip_command', 'length', 'session_handle', 'enip_status', 'sender_context', 'options' ]" + code => "event.set('[zeek_cols]', $zeek_enip_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_enip" + add_field => { "[zeek_cols][service]" => "enip" } + } + + } else if ([source] == "ecat_registers") { + ############################################################################################################################# + # ecat_registers.log + # https://github.com/cisagov/icsnpp-ethercat + + dissect { + id => "dissect_zeek_ecat_registers" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][orig_l2_addr]} %{[zeek_cols][resp_l2_addr]} %{[zeek_cols][command]} %{[zeek_cols][slave_addr]} %{[zeek_cols][register_type]} %{[zeek_cols][register_addr]} %{[zeek_cols][data]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ecat_registers" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ecat_registers" + init => "$zeek_ecat_registers_field_names = [ 'ts', 'orig_l2_addr', 'resp_l2_addr', 'command', 'slave_addr', 'register_type', 'register_addr', 'data' ]" + code => "event.set('[zeek_cols]', $zeek_ecat_registers_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ecat_registers" + add_field => { + "[zeek_cols][service]" => "ethercat" + } + } + + } else if ([source] == "ecat_log_address") { + ############################################################################################################################# + # ecat_log_address.log + # https://github.com/cisagov/icsnpp-ethercat + + dissect { + id => "dissect_zeek_ecat_log_address" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][orig_l2_addr]} %{[zeek_cols][resp_l2_addr]} %{[zeek_cols][log_addr]} %{[zeek_cols][length]} %{[zeek_cols][command]} %{[zeek_cols][data]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ecat_log_address" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ecat_log_address" + init => "$zeek_ecat_log_address_field_names = [ 'ts', 'orig_l2_addr', 'resp_l2_addr', 'log_addr', 'length', 'command', 'data' ]" + code => "event.set('[zeek_cols]', $zeek_ecat_log_address_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ecat_log_address" + add_field => { + "[zeek_cols][service]" => "ethercat" + } + } + + } else if ([source] == "ecat_dev_info") { + ############################################################################################################################# + # ecat_dev_info.log + # https://github.com/cisagov/icsnpp-ethercat + + dissect { + id => "dissect_zeek_ecat_dev_info" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][slave_id]} %{[zeek_cols][revision]} %{[zeek_cols][dev_type]} %{[zeek_cols][build]} %{[zeek_cols][fmmucnt]} %{[zeek_cols][smcount]} %{[zeek_cols][ports]} %{[zeek_cols][dpram]} %{[zeek_cols][features]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ecat_dev_info" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ecat_dev_info" + init => "$zeek_ecat_dev_info_field_names = [ 'ts', 'slave_id', 'revision', 'dev_type', 'build', 'fmmucnt', 'smcount', 'ports', 'dpram', 'features' ]" + code => "event.set('[zeek_cols]', $zeek_ecat_dev_info_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ecat_dev_info" + add_field => { + "[zeek_cols][service]" => "ethercat" + } + } + + } else if ([source] == "ecat_aoe_info") { + ############################################################################################################################# + # ecat_aoe_info.log + # https://github.com/cisagov/icsnpp-ethercat + + dissect { + id => "dissect_zeek_ecat_aoe_info" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][resp_l2_addr]} %{[zeek_cols][resp_port]} %{[zeek_cols][orig_l2_addr]} %{[zeek_cols][orig_port]} %{[zeek_cols][command]} %{[zeek_cols][state]} %{[zeek_cols][data]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ecat_aoe_info" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ecat_aoe_info" + init => "$zeek_ecat_aoe_info_field_names = [ 'ts', 'resp_l2_addr', 'resp_port', 'orig_l2_addr', 'orig_port', 'command', 'state', 'data' ]" + code => "event.set('[zeek_cols]', $zeek_ecat_aoe_info_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ecat_aoe_info" + add_field => { + "[zeek_cols][service]" => "ethercat" + } + } + + } else if ([source] == "ecat_coe_info") { + ############################################################################################################################# + # ecat_coe_info.log + # https://github.com/cisagov/icsnpp-ethercat + + dissect { + id => "dissect_zeek_ecat_coe_info" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][number]} %{[zeek_cols][type]} %{[zeek_cols][req_resp]} %{[zeek_cols][index]} %{[zeek_cols][subindex]} %{[zeek_cols][dataoffset]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ecat_coe_info" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ecat_coe_info" + init => "$zeek_ecat_coe_info_field_names = [ 'ts', 'number', 'type', 'req_resp', 'index', 'subindex', 'dataoffset' ]" + code => "event.set('[zeek_cols]', $zeek_ecat_coe_info_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ecat_coe_info" + add_field => { + "[zeek_cols][service]" => "ethercat" + } + } + + } else if ([source] == "ecat_foe_info") { + ############################################################################################################################# + # ecat_foe_info.log + # https://github.com/cisagov/icsnpp-ethercat + + dissect { + id => "dissect_zeek_ecat_foe_info" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][opcode]} %{[zeek_cols][reserved]} %{[zeek_cols][packet_num]} %{[zeek_cols][error_code]} %{[zeek_cols][filename]} %{[zeek_cols][data]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ecat_foe_info" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ecat_foe_info" + init => "$zeek_ecat_foe_info_field_names = [ 'ts', 'opcode', 'reserved', 'packet_num', 'error_code', 'filename', 'data' ]" + code => "event.set('[zeek_cols]', $zeek_ecat_foe_info_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ecat_foe_info" + add_field => { + "[zeek_cols][service]" => "ethercat" + } + } + + } else if ([source] == "ecat_soe_info") { + ############################################################################################################################# + # ecat_soe_info.log + # https://github.com/cisagov/icsnpp-ethercat + + dissect { + id => "dissect_zeek_ecat_soe_info" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][opcode]} %{[zeek_cols][incomplete]} %{[zeek_cols][error]} %{[zeek_cols][drive_num]} %{[zeek_cols][element]} %{[zeek_cols][index]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ecat_soe_info" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ecat_soe_info" + init => "$zeek_ecat_soe_info_field_names = [ 'ts', 'opcode', 'incomplete', 'error', 'drive_num', 'element', 'index' ]" + code => "event.set('[zeek_cols]', $zeek_ecat_soe_info_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ecat_soe_info" + add_field => { + "[zeek_cols][service]" => "ethercat" + } + } + + } else if ([source] == "ecat_arp_info") { + ############################################################################################################################# + # ecat_arp_info.log + # https://github.com/cisagov/icsnpp-ethercat + # + # NOTE: I currently have this disabled by including ecat_arp_info in drop_zeek_ignored_source + # above, as it is including ALL arps and not just those from ethercat traffic which can + # be misleading (i.e., indicating ecat traffic where there is none) + + dissect { + id => "dissect_zeek_ecat_arp_info" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][arp_type]} %{[zeek_cols][orig_l2_addr]} %{[zeek_cols][resp_l2_addr]} %{[zeek_cols][orig_proto_addr]} %{[zeek_cols][orig_hw_addr]} %{[zeek_cols][resp_proto_addr]} %{[zeek_cols][resp_hw_addr]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ecat_arp_info" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ecat_arp_info" + init => "$zeek_ecat_arp_info_field_names = [ 'ts', 'arp_type', 'orig_l2_addr', 'resp_l2_addr', 'orig_proto_addr', 'orig_hw_addr', 'resp_proto_addr', 'resp_hw_addr' ]" + code => "event.set('[zeek_cols]', $zeek_ecat_arp_info_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ecat_arp_info" + add_field => { + "[zeek_cols][service]" => "ethercat" + } + } + + # TODO: check orig_proto_addr/orig_hw_addr resp_proto_addr/resp_hw_addr and convert to ip, etc. if necessary? + + } else if ([source] == "files") { + ############################################################################################################################# + # files.log + # https://docs.zeek.org/en/stable/scripts/base/frameworks/files/main.zeek.html#type-Files::Info + + if ([@metadata][zeek_fields_bitmap] and [@metadata][zeek_fields_bitmap_version]) { + + # bitmap files.log field configuration version 0 + # + # all fields (with extracted file size info) : 0x01FFFFFF / 33554431 + # all fields (without extracted file size info) : 0x007FFFFF / 8388607 + + if ([@metadata][zeek_fields_bitmap_version] == 0) { + + if ([@metadata][zeek_fields_bitmap] == 33554431) { + + dissect { + id => "dissect_zeek_files_with_all_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][fuid]} %{[zeek_cols][tx_hosts]} %{[zeek_cols][rx_hosts]} %{[zeek_cols][conn_uids]} %{[zeek_cols][source]} %{[zeek_cols][depth]} %{[zeek_cols][analyzers]} %{[zeek_cols][mime_type]} %{[zeek_cols][filename]} %{[zeek_cols][duration]} %{[zeek_cols][local_orig]} %{[zeek_cols][is_orig]} %{[zeek_cols][seen_bytes]} %{[zeek_cols][total_bytes]} %{[zeek_cols][missing_bytes]} %{[zeek_cols][overflow_bytes]} %{[zeek_cols][timedout]} %{[zeek_cols][parent_fuid]} %{[zeek_cols][md5]} %{[zeek_cols][sha1]} %{[zeek_cols][sha256]} %{[zeek_cols][extracted]} %{[zeek_cols][extracted_cutoff]} %{[zeek_cols][extracted_size]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 8388607) { + + dissect { + id => "dissect_zeek_files_with_all_fields_minus_extract_size" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][fuid]} %{[zeek_cols][tx_hosts]} %{[zeek_cols][rx_hosts]} %{[zeek_cols][conn_uids]} %{[zeek_cols][source]} %{[zeek_cols][depth]} %{[zeek_cols][analyzers]} %{[zeek_cols][mime_type]} %{[zeek_cols][filename]} %{[zeek_cols][duration]} %{[zeek_cols][local_orig]} %{[zeek_cols][is_orig]} %{[zeek_cols][seen_bytes]} %{[zeek_cols][total_bytes]} %{[zeek_cols][missing_bytes]} %{[zeek_cols][overflow_bytes]} %{[zeek_cols][timedout]} %{[zeek_cols][parent_fuid]} %{[zeek_cols][md5]} %{[zeek_cols][sha1]} %{[zeek_cols][sha256]} %{[zeek_cols][extracted]}" + } + } + + } else { + # who knows? the files.log preprocessed bitmap is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_files_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the files.log preprocessed bitmap field list version is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_bitmap_files_version" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the files.log was not preprocessed to determine fields, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_missing_files_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_files" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_files" + init => "$zeek_files_field_names = [ 'ts', 'fuid', 'tx_hosts', 'rx_hosts', 'conn_uids', 'source', 'depth', 'analyzers', 'mime_type', 'filename', 'duration', 'local_orig', 'is_orig', 'seen_bytes', 'total_bytes', 'missing_bytes', 'overflow_bytes', 'timedout', 'parent_fuid', 'md5', 'sha1', 'sha256', 'extracted', 'extracted_cutoff', 'extracted_size' ]" + code => "event.set('[zeek_cols]', $zeek_files_field_names.zip(event.get('[message]')).to_h)" + } + } + + if ([zeek_cols][conn_uids]) and ([zeek_cols][conn_uids] != '(empty)') and ([zeek_cols][conn_uids] != '') { + mutate { id => "mutate_split_zeek_files_conn_uids" + split => { "[zeek_cols][conn_uids]" => "," } } + } + if ([zeek_cols][tx_hosts]) and ([zeek_cols][tx_hosts] != '(empty)') and ([zeek_cols][tx_hosts] != '') { + mutate { id => "mutate_split_zeek_files_tx_hosts" + split => { "[zeek_cols][tx_hosts]" => "," } } + } + if ([zeek_cols][rx_hosts]) and ([zeek_cols][rx_hosts] != '(empty)') and ([zeek_cols][rx_hosts] != '') { + mutate { id => "mutate_split_zeek_files_rx_hosts" + split => { "[zeek_cols][rx_hosts]" => "," } } + } + + if ([zeek_cols][conn_uids] and [zeek_cols][conn_uids][0]) { + mutate { + id => "mutate_add_field_zeek_files_conn_uids_to_uid" + add_field => { "[rootId]" => "%{[zeek_cols][conn_uids][0]}" + "[zeek_cols][uid]" => "%{[zeek_cols][conn_uids][0]}" } + } + } else { + mutate { + id => "mutate_add_fields_zeek_files_fuid_to_uid" + add_field => { "[zeek_cols][uid]" => "%{[zeek_cols][fuid]}" } + } + } + + if ([zeek_cols][tx_hosts] and [zeek_cols][tx_hosts][0]) { + mutate { id => "mutate_add_field_zeek_tx_hosts" + add_field => { "[srcIp]" => "%{[zeek_cols][tx_hosts][0]}" } } + } + + if ([zeek_cols][rx_hosts] and [zeek_cols][rx_hosts][0]) { + mutate { id => "mutate_add_field_zeek_rx_hosts" + add_field => { "[dstIp]" => "%{[zeek_cols][rx_hosts][0]}" } } + } + + } else if ([source] == "ftp") { + ############################################################################################################################# + # ftp.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/ftp/info.zeek.html#type-FTP::Info + + dissect { + id => "dissect_zeek_ftp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][user]} %{[zeek_cols][password]} %{[zeek_cols][command]} %{[zeek_cols][arg]} %{[zeek_cols][mime_type]} %{[zeek_cols][file_size]} %{[zeek_cols][reply_code]} %{[zeek_cols][reply_msg]} %{[zeek_cols][data_channel_passive]} %{[zeek_cols][data_channel_orig_h]} %{[zeek_cols][data_channel_resp_h]} %{[zeek_cols][data_channel_resp_p]} %{[zeek_cols][fuid]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ftp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ftp" + init => "$zeek_ftp_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'user', 'password', 'command', 'arg', 'mime_type', 'file_size', 'reply_code', 'reply_msg', 'data_channel_passive', 'data_channel_orig_h', 'data_channel_resp_h', 'data_channel_resp_p', 'fuid' ]" + code => "event.set('[zeek_cols]', $zeek_ftp_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ftp" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "ftp" + } + } + + } else if ([source] == "gquic") { + ############################################################################################################################# + # gquic.log + # https://github.com/salesforce/GQUIC_Protocol_Analyzer/blob/master/scripts/Salesforce/GQUIC/main.bro + + dissect { + id => "dissect_zeek_gquic" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][version]} %{[zeek_cols][server_name]} %{[zeek_cols][user_agent]} %{[zeek_cols][tag_count]} %{[zeek_cols][cyu]} %{[zeek_cols][cyutags]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_gquic" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_gquic" + init => "$zeek_gquic_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'version', 'server_name', 'user_agent', 'tag_count', 'cyu', 'cyutags' ]" + code => "event.set('[zeek_cols]', $zeek_gquic_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_gquic" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "quic" + } + } + + } else if ([source] == "http") { + ############################################################################################################################# + # http.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/http/main.zeek.html#type-HTTP::Info + + if ([@metadata][zeek_fields_bitmap] and [@metadata][zeek_fields_bitmap_version]) { + + # bitmap http.log field configuration version 0 + # all fields: 0x7FFFFFFFF / 34359738367 + # minus fields added by zeek-sniffpass: 0x03FFFFFFF / 1073741823 + # minus origin and fields added by zeek-sniffpass: 0x03FFFDFFF / 1073733631 + + if ([@metadata][zeek_fields_bitmap_version] == 0) { + + if ([@metadata][zeek_fields_bitmap] == 34359738367) { + dissect { + id => "dissect_zeek_http_0_with_all_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][trans_depth]} %{[zeek_cols][method]} %{[zeek_cols][host]} %{[zeek_cols][uri]} %{[zeek_cols][referrer]} %{[zeek_cols][version]} %{[zeek_cols][user_agent]} %{[zeek_cols][origin]} %{[zeek_cols][request_body_len]} %{[zeek_cols][response_body_len]} %{[zeek_cols][status_code]} %{[zeek_cols][status_msg]} %{[zeek_cols][info_code]} %{[zeek_cols][info_msg]} %{[zeek_cols][tags]} %{[zeek_cols][user]} %{[zeek_cols][password]} %{[zeek_cols][proxied]} %{[zeek_cols][orig_fuids]} %{[zeek_cols][orig_filenames]} %{[zeek_cols][orig_mime_types]} %{[zeek_cols][resp_fuids]} %{[zeek_cols][resp_filenames]} %{[zeek_cols][resp_mime_types]} %{[zeek_cols][post_username]} %{[zeek_cols][post_password_plain]} %{[zeek_cols][post_password_md5]} %{[zeek_cols][post_password_sha1]} %{[zeek_cols][post_password_sha256]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 1073741823) { + dissect { + id => "dissect_zeek_http_0_with_all_fields_minus_sniffpass" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][trans_depth]} %{[zeek_cols][method]} %{[zeek_cols][host]} %{[zeek_cols][uri]} %{[zeek_cols][referrer]} %{[zeek_cols][version]} %{[zeek_cols][user_agent]} %{[zeek_cols][origin]} %{[zeek_cols][request_body_len]} %{[zeek_cols][response_body_len]} %{[zeek_cols][status_code]} %{[zeek_cols][status_msg]} %{[zeek_cols][info_code]} %{[zeek_cols][info_msg]} %{[zeek_cols][tags]} %{[zeek_cols][user]} %{[zeek_cols][password]} %{[zeek_cols][proxied]} %{[zeek_cols][orig_fuids]} %{[zeek_cols][orig_filenames]} %{[zeek_cols][orig_mime_types]} %{[zeek_cols][resp_fuids]} %{[zeek_cols][resp_filenames]} %{[zeek_cols][resp_mime_types]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 1073733631) { + dissect { + id => "dissect_zeek_http_0_with_all_fields_minus_origin" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][trans_depth]} %{[zeek_cols][method]} %{[zeek_cols][host]} %{[zeek_cols][uri]} %{[zeek_cols][referrer]} %{[zeek_cols][version]} %{[zeek_cols][user_agent]} %{[zeek_cols][request_body_len]} %{[zeek_cols][response_body_len]} %{[zeek_cols][status_code]} %{[zeek_cols][status_msg]} %{[zeek_cols][info_code]} %{[zeek_cols][info_msg]} %{[zeek_cols][tags]} %{[zeek_cols][user]} %{[zeek_cols][password]} %{[zeek_cols][proxied]} %{[zeek_cols][orig_fuids]} %{[zeek_cols][orig_filenames]} %{[zeek_cols][orig_mime_types]} %{[zeek_cols][resp_fuids]} %{[zeek_cols][resp_filenames]} %{[zeek_cols][resp_mime_types]}" + } + } + + } else { + # who knows? the http.log preprocessed bitmap is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_http_1_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the http.log preprocessed bitmap field list version is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_bitmap_http_version" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the http.log was not preprocessed to determine fields, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_missing_http_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_http" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_http" + init => "$zeek_http_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'trans_depth', 'method', 'host', 'uri', 'referrer', 'version', 'user_agent', 'origin', 'request_body_len', 'response_body_len', 'status_code', 'status_msg', 'info_code', 'info_msg', 'tags', 'user', 'password', 'proxied', 'orig_fuids', 'orig_filenames', 'orig_mime_types', 'resp_fuids', 'resp_filenames', 'resp_mime_types', 'post_username', 'post_password_plain', 'post_password_md5', 'post_password_sha1', 'post_password_sha256' ]" + code => "event.set('[zeek_cols]', $zeek_http_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_http" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "http" + } + } + + } else if ([source] == "intel") { + ############################################################################################################################# + # intel.log + # https://docs.zeek.org/en/stable/scripts/base/frameworks/intel/main.zeek.html#type-Intel::Info + + dissect { + id => "dissect_zeek_intel" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][indicator]} %{[zeek_cols][indicator_type]} %{[zeek_cols][seen_where]} %{[zeek_cols][seen_node]} %{[zeek_cols][matched]} %{[zeek_cols][sources]} %{[zeek_cols][fuid]} %{[zeek_cols][file_mime_type]} %{[zeek_cols][file_desc]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_intel" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_intel" + init => "$zeek_intel_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'indicator', 'indicator_type', 'seen_where', 'seen_node', 'matched', 'sources', 'fuid', 'file_mime_type', 'file_desc' ]" + code => "event.set('[zeek_cols]', $zeek_intel_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_intel" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "intel" + } + } + + } else if ([source] == "ipsec") { + ############################################################################################################################# + # ipsec.log + # https://github.com/zeek/spicy-analyzers/blob/main/analyzer/protocol/ipsec/main.zeek + + dissect { + id => "dissect_zeek_ipsec" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][is_orig]} %{[zeek_cols][initiator_spi]} %{[zeek_cols][responder_spi]} %{[zeek_cols][maj_ver]} %{[zeek_cols][min_ver]} %{[zeek_cols][exchange_type]} %{[zeek_cols][flag_e]} %{[zeek_cols][flag_c]} %{[zeek_cols][flag_a]} %{[zeek_cols][flag_i]} %{[zeek_cols][flag_v]} %{[zeek_cols][flag_r]} %{[zeek_cols][message_id]} %{[zeek_cols][vendor_ids]} %{[zeek_cols][notify_messages]} %{[zeek_cols][transforms]} %{[zeek_cols][ke_dh_groups]} %{[zeek_cols][proposals]} %{[zeek_cols][certificates]} %{[zeek_cols][transform_attributes]} %{[zeek_cols][length]} %{[zeek_cols][hash]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ipsec" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ipsec" + init => "$zeek_ipsec_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'is_orig', 'initiator_spi', 'responder_spi', 'maj_ver', 'min_ver', 'exchange_type', 'flag_e', 'flag_c', 'flag_a', 'flag_i', 'flag_v', 'flag_r', 'message_id', 'vendor_ids', 'notify_messages', 'transforms', 'ke_dh_groups', 'proposals', 'certificates', 'transform_attributes', 'length', 'hash' ]" + code => "event.set('[zeek_cols]', $zeek_ipsec_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ipsec" + add_field => { + "[zeek_cols][service]" => "ipsec" + } + } + + } else if ([source] == "irc") { + ############################################################################################################################# + # irc.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/irc/main.zeek.html#type-IRC::Info + + dissect { + id => "dissect_zeek_irc" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][nick]} %{[zeek_cols][user]} %{[zeek_cols][command]} %{[zeek_cols][value]} %{[zeek_cols][addl]} %{[zeek_cols][dcc_file_name]} %{[zeek_cols][dcc_file_size]} %{[zeek_cols][dcc_mime_type]} %{[zeek_cols][fuid]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_irc" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_irc" + init => "$zeek_irc_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'nick', 'user', 'command', 'value', 'addl', 'dcc_file_name', 'dcc_file_size', 'dcc_mime_type', 'fuid' ]" + code => "event.set('[zeek_cols]', $zeek_irc_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_irc" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "irc" + } + } + + } else if ([source] == "iso_cotp") { + ############################################################################################################################# + # iso_cotp.log + # https://github.com/amzn/zeek-plugin-s7comm/blob/master/scripts/main.zeek + + dissect { + id => "dissect_zeek_iso_cotp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][pdu_type]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_iso_cotp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_iso_cotp" + init => "$zeek_iso_cotp_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'pdu_type' ]" + code => "event.set('[zeek_cols]', $zeek_iso_cotp_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_iso_cotp" + add_field => { "[zeek_cols][service]" => "cotp" } + } + + } else if ([source] == "kerberos") { + ############################################################################################################################# + # kerberos.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/krb/main.zeek.html#type-KRB::Info + + dissect { + id => "dissect_zeek_kerberos" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][request_type]} %{[zeek_cols][cname]} %{[zeek_cols][sname]} %{[zeek_cols][success]} %{[zeek_cols][error_msg]} %{[zeek_cols][from]} %{[zeek_cols][till]} %{[zeek_cols][cipher]} %{[zeek_cols][forwardable]} %{[zeek_cols][renewable]} %{[zeek_cols][client_cert_subject]} %{[zeek_cols][client_cert_fuid]} %{[zeek_cols][server_cert_subject]} %{[zeek_cols][server_cert_fuid]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_kerberos" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_kerberos" + init => "$zeek_kerberos_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'request_type', 'cname', 'sname', 'success', 'error_msg', 'from', 'till', 'cipher', 'forwardable', 'renewable', 'client_cert_subject', 'client_cert_fuid', 'server_cert_subject', 'server_cert_fuid' ]" + code => "event.set('[zeek_cols]', $zeek_kerberos_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_krb5" + add_field => { "[zeek_cols][service]" => "krb5" } + } + + } else if ([source] == "known_certs") { + ############################################################################################################################# + # known_certs.log + # https://docs.zeek.org/en/stable/scripts/policy/protocols/ssl/known-certs.zeek.html#type-Known::CertsInfo + + dissect { + id => "dissect_zeek_known_certs" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][subject]} %{[zeek_cols][issuer_subject]} %{[zeek_cols][serial]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_known_certs" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_known_certs" + init => "$zeek_known_certs_field_names = [ 'ts', 'orig_h', 'orig_p', 'subject', 'resp_h', 'issuer_subject', 'serial' ]" + code => "event.set('[zeek_cols]', $zeek_known_certs_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_known_certs" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "tls" + } + } + + } else if ([source] == "known_hosts") { + ############################################################################################################################# + # known_hosts.log + # https://docs.zeek.org/en/stable/scripts/policy/protocols/conn/known-hosts.zeek.html#type-Known::HostsInfo + + dissect { + id => "dissect_zeek_known_hosts" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][orig_h]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_known_hosts" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_known_hosts" + init => "$zeek_known_hosts_field_names = [ 'ts', 'orig_h' ]" + code => "event.set('[zeek_cols]', $zeek_known_hosts_field_names.zip(event.get('[message]')).to_h)" + } + } + + } else if ([source] == "known_modbus") { + ############################################################################################################################# + # known_modbus.log + # https://docs.zeek.org/en/stable/scripts/policy/protocols/modbus/known-masters-slaves.zeek.html#type-Known::ModbusInfo + + dissect { + id => "dissect_zeek_known_modbus" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][orig_h]} %{[zeek_cols][device_type]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_known_modbus" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_known_modbus" + init => "$zeek_known_modbus_field_names = [ 'ts', 'orig_h', 'device_type' ]" + code => "event.set('[zeek_cols]', $zeek_known_modbus_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { id => "mutate_gsub_zeek_known_modbus_device_type" + gsub => [ "[zeek_cols][device_type]", "Known::", "" ] } + + } else if ([source] == "known_services") { + ############################################################################################################################# + # known_services.log + # https://docs.zeek.org/en/stable/scripts/policy/protocols/conn/known-services.zeek.html#type-Known::ServicesInfo + + dissect { + id => "dissect_zeek_known_services" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][service]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_known_services" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_known_services" + init => "$zeek_known_services_field_names = [ 'ts', 'resp_h', 'resp_p', 'proto', 'service' ]" + code => "event.set('[zeek_cols]', $zeek_known_services_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { id => "mutate_lowercase_zeek_known_services_service" + lowercase => [ "[zeek_cols][service]" ] } + + # normalize service string(s) + if ([zeek_cols][service] =~ /^spicy_/) { + # if it's coming from spicy, we don't care to have that in the service name + mutate { id => "mutate_gsub_field_zeek_known_service_spicy_prefix" + gsub => [ "[zeek_cols][service]", "^spicy_", "" ] } + + # some spicy services are named like blah_udp or blah_tcp, + # and we don't care about the _udp/_tcp suffix + mutate { id => "mutate_gsub_field_zeek_known_service_spicy_suffix" + gsub => [ "[zeek_cols][service]", "_(tcp|udp)(_hmac)?$", "" ] } + + if ([zeek_cols][service] == "tftp_data") { + mutate { id => "mutate_replace_zeek_known_service_tftp_data" + replace => { "[zeek_cols][service]" => "tftp" } } + } + } + if ([zeek_cols][service] == "ftp_data") { + mutate { id => "mutate_replace_zeek_known_service_ftp_data" + replace => { "[zeek_cols][service]" => "ftp" } } + } + if ([zeek_cols][service] == "ipsec_ike") { + mutate { id => "mutate_replace_zeek_known_service_ipsec_ike" + replace => { "[zeek_cols][service]" => "ipsec" } } + } + + } else if ([source] == "ldap") { + ############################################################################################################################# + # ldap.log + # https://github.com/mmguero-dev/spicy-analyzers/blob/main/analyzer/protocol/ldap/ldap.zeek + + dissect { + id => "dissect_zeek_ldap" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][message_id]} %{[zeek_cols][version]} %{[zeek_cols][operation]} %{[zeek_cols][result_code]} %{[zeek_cols][result_message]} %{[zeek_cols][object]} %{[zeek_cols][argument]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ldap" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ldap" + init => "$zeek_ldap_field_names = [ 'ts', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'proto', 'message_id', 'version', 'operation', 'result_code', 'result_message', 'object', 'argument' ]" + code => "event.set('[zeek_cols]', $zeek_ldap_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ldap" + add_field => { "[zeek_cols][service]" => "ldap" } + } + + } else if ([source] == "ldap_search") { + ############################################################################################################################# + # ldap_search.log + # https://github.com/mmguero-dev/spicy-analyzers/blob/main/analyzer/protocol/ldap/ldap.zeek + + dissect { + id => "dissect_zeek_ldap_search" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][message_id]} %{[zeek_cols][scope]} %{[zeek_cols][deref]} %{[zeek_cols][base_object]} %{[zeek_cols][result_count]} %{[zeek_cols][result_code]} %{[zeek_cols][result_message]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ldap_search" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ldap_search" + init => "$zeek_ldap_search_field_names = [ 'ts', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'proto', 'message_id', 'scope', 'deref', 'base_object', 'result_count', 'result_code', 'result_message' ]" + code => "event.set('[zeek_cols]', $zeek_ldap_search_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ldap_search" + add_field => { "[zeek_cols][service]" => "ldap" } + } + + } else if ([source] == "login") { + ############################################################################################################################# + # login.log + # custom login.log module (rudimentary, telnet/rlogin/rsh analyzers are old and not the greatest) + + dissect { + id => "dissect_zeek_login" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][success]} %{[zeek_cols][confused]} %{[zeek_cols][user]} %{[zeek_cols][client_user]} %{[zeek_cols][password]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_login" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_login" + init => "$zeek_login_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'proto', 'success', 'confused', 'user', 'client_user', 'password' ]" + code => "event.set('[zeek_cols]', $zeek_login_field_names.zip(event.get('[message]')).to_h)" + } + } + + if ([zeek_cols][proto]) and ([zeek_cols][proto] != '-') and ([zeek_cols][proto] != '(empty)') and ([zeek_cols][proto] != '') { + mutate { id => "mutate_add_field_zeek_login_service" + add_field => { "[zeek_cols][service]" => "%{[zeek_cols][proto]}" } } + } + + } else if ([source] == "modbus") { + ############################################################################################################################# + # modbus.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/modbus/main.zeek.html#type-Modbus::Info + + dissect { + id => "dissect_zeek_modbus" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][func]} %{[zeek_cols][exception]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_modbus" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_modbus" + init => "$zeek_modbus_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'func', 'exception' ]" + code => "event.set('[zeek_cols]', $zeek_modbus_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_modbus" + add_field => { "[zeek_cols][service]" => "modbus" } + } + + } else if ([source] == "modbus_detailed") { + ############################################################################################################################# + # modbus_detailed.log + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_modbus_detailed" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][unit_id]} %{[zeek_cols][func]} %{[zeek_cols][network_direction]} %{[zeek_cols][address]} %{[zeek_cols][quantity]} %{[zeek_cols][values]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_modbus_detailed" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_modbus_detailed" + init => "$zeek_modbus_detailed_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'unit_id', 'func', 'network_direction', 'address', 'quantity', 'values' ]" + code => "event.set('[zeek_cols]', $zeek_modbus_detailed_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_modbus_detailed" + add_field => { "[zeek_cols][service]" => "modbus" } + } + + } else if ([source] == "modbus_mask_write_register") { + ############################################################################################################################# + # modbus_mask_write_register.log + # https://github.com/cisagov/ICSNPP + + dissect { + id => "dissect_zeek_modbus_mask_write_register" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][unit_id]} %{[zeek_cols][func]} %{[zeek_cols][network_direction]} %{[zeek_cols][address]} %{[zeek_cols][and_mask]} %{[zeek_cols][or_mask]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_modbus_mask_write_register" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_modbus_mask_write_register" + init => "$zeek_modbus_mask_write_register_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'unit_id', 'func', 'network_direction', 'address', 'and_mask', 'or_mask' ]" + code => "event.set('[zeek_cols]', $zeek_modbus_modbus_mask_write_register_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_modbus_mask_write_register" + add_field => { "[zeek_cols][service]" => "modbus" } + } + + } else if ([source] == "modbus_read_write_multiple_registers") { + ############################################################################################################################# + # modbus_read_write_multiple_registers.log + # https://github.com/cisagov/ICSNPP + dissect { + id => "dissect_zeek_modbus_read_write_multiple_registers" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][unit_id]} %{[zeek_cols][func]} %{[zeek_cols][network_direction]} %{[zeek_cols][write_start_address]} %{[zeek_cols][write_registers]} %{[zeek_cols][read_start_address]} %{[zeek_cols][read_quantity]} %{[zeek_cols][read_registers]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_modbus_read_write_multiple_registers" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_modbus_read_write_multiple_registers" + init => "$zeek_modbus_read_write_multiple_registers_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'unit_id', 'func', 'network_direction', 'write_start_address', 'write_registers', 'read_start_address', 'read_quantity', 'read_registers' ]" + code => "event.set('[zeek_cols]', $zeek_modbus_read_write_multiple_registers_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_modbus_read_write_multiple_registers" + add_field => { "[zeek_cols][service]" => "modbus" } + } + + } else if ([source] == "modbus_register_change") { + ############################################################################################################################# + # modbus_register_change.log + # https://docs.zeek.org/en/stable/scripts/policy/protocols/modbus/track-memmap.zeek.html#type-Modbus::MemmapInfo + + dissect { + id => "dissect_zeek_modbus_register_change" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][register]} %{[zeek_cols][old_val]} %{[zeek_cols][new_val]} %{[zeek_cols][delta]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_modbus_register_change" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_modbus_register_change" + init => "$zeek_modbus_register_change_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'register', 'old_val', 'new_val', 'delta' ]" + code => "event.set('[zeek_cols]', $zeek_modbus_register_change_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_modbus_register_change" + add_field => { "[zeek_cols][service]" => "modbus" } + } + + } else if ([source] == "mqtt_connect") { + ############################################################################################################################# + # mqtt_connect.log + # https://docs.zeek.org/en/stable/scripts/policy/protocols/mqtt/main.zeek.html#type-MQTT::ConnectInfo + + dissect { + id => "dissect_zeek_mqtt_connect" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto_name]} %{[zeek_cols][proto_version]} %{[zeek_cols][client_id]} %{[zeek_cols][connect_status]} %{[zeek_cols][will_topic]} %{[zeek_cols][will_payload]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_mqtt_connect" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_mqtt_connect" + init => "$zeek_mqtt_connect_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'proto_name', 'proto_version', 'client_id', 'connect_status', 'will_topic', 'will_payload' ]" + code => "event.set('[zeek_cols]', $zeek_mqtt_connect_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_mqtt_connect" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "mqtt" + } + } + + } else if ([source] == "mqtt_publish") { + ############################################################################################################################# + # mqtt_publish.log + # https://docs.zeek.org/en/stable/scripts/policy/protocols/mqtt/main.zeek.html#type-MQTT::PublishInfo + + dissect { + id => "dissect_zeek_mqtt_publish" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][from_client]} %{[zeek_cols][retain]} %{[zeek_cols][qos]} %{[zeek_cols][status]} %{[zeek_cols][topic]} %{[zeek_cols][payload]} %{[zeek_cols][payload_len]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_mqtt_publish" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_mqtt_publish" + init => "$zeek_mqtt_publish_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'from_client', 'retain', 'qos', 'status', 'topic', 'payload', 'payload_len' ]" + code => "event.set('[zeek_cols]', $zeek_mqtt_publish_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_mqtt_publish" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "mqtt" + } + } + + } else if ([source] == "mqtt_subscribe") { + ############################################################################################################################# + # mqtt_subscribe.log + # https://docs.zeek.org/en/stable/scripts/policy/protocols/mqtt/main.zeek.html#type-MQTT::SubscribeInfo + + dissect { + id => "dissect_zeek_mqtt_subscribe" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][action]} %{[zeek_cols][topics]} %{[zeek_cols][qos_levels]} %{[zeek_cols][granted_qos_level]} %{[zeek_cols][ack]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_mqtt_subscribe" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_mqtt_subscribe" + init => "$zeek_mqtt_subscribe_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'action', 'topics', 'qos_levels', 'granted_qos_level', 'ack' ]" + code => "event.set('[zeek_cols]', $zeek_mqtt_subscribe_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_mqtt_subscribe" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "mqtt" + } + } + + mutate { id => "mutate_gsub_zeek_mqtt_subscribe_action" + gsub => [ "[zeek_cols][action]", "MQTT::", "" ] } + + } else if ([source] == "mysql") { + ############################################################################################################################# + # mysql.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/mysql/main.zeek.html#type-MySQL::Info + + dissect { + id => "dissect_zeek_mysql" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][cmd]} %{[zeek_cols][arg]} %{[zeek_cols][success]} %{[zeek_cols][rows]} %{[zeek_cols][response]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_mysql" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_mysql" + init => "$zeek_mysql_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'cmd', 'arg', 'success', 'rows', 'response' ]" + code => "event.set('[zeek_cols]', $zeek_mysql_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_mysql" + add_field => { "[zeek_cols][service]" => "mysql" } + } + + } else if ([source] == "notice") { + ############################################################################################################################# + # notice.log + # https://docs.zeek.org/en/stable/scripts/base/frameworks/notice/main.zeek.html#type-Notice::Info + + dissect { + id => "dissect_zeek_notice" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][fuid]} %{[zeek_cols][file_mime_type]} %{[zeek_cols][file_desc]} %{[zeek_cols][proto]} %{[zeek_cols][note]} %{[zeek_cols][msg]} %{[zeek_cols][sub]} %{[zeek_cols][src]} %{[zeek_cols][dst]} %{[zeek_cols][p]} %{[zeek_cols][n]} %{[zeek_cols][peer_descr]} %{[zeek_cols][actions]} %{[zeek_cols][suppress_for]} %{[zeek_cols][remote_location_country_code]} %{[zeek_cols][remote_location_region]} %{[zeek_cols][remote_location_city]} %{[zeek_cols][remote_location_latitude]} %{[zeek_cols][remote_location_longitude]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_notice" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_notice" + init => "$zeek_notice_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'fuid', 'file_mime_type', 'file_desc', 'proto', 'note', 'msg', 'sub', 'src', 'dst', 'p', 'n', 'peer_descr', 'actions', 'suppress_for', 'remote_location_country_code', 'remote_location_region', 'remote_location_city', 'remote_location_latitude', 'remote_location_longitude' ]" + code => "event.set('[zeek_cols]', $zeek_notice_field_names.zip(event.get('[message]')).to_h)" + } + } + + if (![zeek_cols][orig_h]) or ([zeek_cols][orig_h] == '(empty)') or + ([zeek_cols][orig_h] == '-') or ([zeek_cols][orig_h] == '') { + mutate { id => "mutate_replace_zeek_notice_orig_h" + replace => { "[zeek_cols][orig_h]" => "%{[zeek_cols][src]}" } } + } + if (![zeek_cols][resp_h]) or ([zeek_cols][resp_h] == '(empty)') or + ([zeek_cols][resp_h] == '-') or ([zeek_cols][resp_h] == '') { + mutate { id => "mutate_replace_zeek_notice_resp_h" + replace => { "[zeek_cols][resp_h]" => "%{[zeek_cols][dst]}" } } + } + if (![zeek_cols][resp_p]) or ([zeek_cols][resp_p] == '(empty)') or + ([zeek_cols][resp_p] == '-') or ([zeek_cols][resp_p] == '') { + mutate { id => "mutate_replace_zeek_resp_p" + replace => { "[zeek_cols][resp_p]" => "%{[zeek_cols][p]}" } } + } + + } else if ([source] == "ntlm") { + ############################################################################################################################# + # ntlm.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/ntlm/main.zeek.html#type-NTLM::Info + + if ([@metadata][zeek_fields_bitmap] and [@metadata][zeek_fields_bitmap_version]) { + + # bitmap ntlm.log field configuration version 0 + # + # all fields: 0x000007FF / 2047 + # + # bitmap ntlm.log field configuration version 1 + # + # all fields: 0x00001FFF / 8191 + + if ([@metadata][zeek_fields_bitmap_version] == 0) { + + if ([@metadata][zeek_fields_bitmap] == 2047) { + dissect { + id => "dissect_zeek_ntlm_0_with_all_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][user]} %{[zeek_cols][host]} %{[zeek_cols][domain]} %{[zeek_cols][success]} %{[zeek_cols][status]}" + } + } + + } else { + # who knows? the ntlm.log preprocessed bitmap is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_ntlm_0_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + } else if ([@metadata][zeek_fields_bitmap_version] == 1) { + + if ([@metadata][zeek_fields_bitmap] == 8191) { + dissect { + id => "dissect_zeek_ntlm_1_with_all_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][user]} %{[zeek_cols][host]} %{[zeek_cols][domain]} %{[zeek_cols][server_nb_computer]} %{[zeek_cols][server_dns_computer]} %{[zeek_cols][server_tree]} %{[zeek_cols][success]}" + } + } + + } else { + # who knows? the ntlm.log preprocessed bitmap is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_ntlm_1_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the ntlm.log preprocessed bitmap field list version is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_bitmap_ntlm_version" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the ntlm.log was not preprocessed to determine fields, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_missing_ntlm_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ntlm" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ntlm" + init => "$zeek_ntlm_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'user', 'host', 'domain', 'server_nb_computer', 'server_dns_computer', 'server_tree', 'success' ]" + code => "event.set('[zeek_cols]', $zeek_ntlm_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ntlm" + add_field => { "[zeek_cols][service]" => "ntlm" } + } + + } else if ([source] == "ntp") { + ############################################################################################################################# + # ntp.log + # https://docs.zeek.org/en/latest/scripts/base/protocols/ntp/main.zeek.html#type-NTP::Info + + dissect { + id => "dissect_zeek_ntp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][version]} %{[zeek_cols][mode]} %{[zeek_cols][stratum]} %{[zeek_cols][poll]} %{[zeek_cols][precision]} %{[zeek_cols][root_delay]} %{[zeek_cols][root_disp]} %{[zeek_cols][ref_id]} %{[zeek_cols][ref_time]} %{[zeek_cols][org_time]} %{[zeek_cols][rec_time]} %{[zeek_cols][xmt_time]} %{[zeek_cols][num_exts]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ntp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ntp" + init => "$zeek_ntp_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'version', 'mode', 'stratum', 'poll', 'precision', 'root_delay', 'root_disp', 'ref_id', 'ref_time', 'org_time', 'rec_time', 'xmt_time', 'num_exts' ]" + code => "event.set('[zeek_cols]', $zeek_ntp_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ntp" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "ntp" + } + } + + } else if ([source] == "pe") { + ############################################################################################################################# + # pe.log + # https://docs.zeek.org/en/stable/scripts/base/files/pe/main.zeek.html#type-PE::Info + + dissect { + id => "dissect_zeek_pe" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][fuid]} %{[zeek_cols][machine]} %{[zeek_cols][compile_ts]} %{[zeek_cols][os]} %{[zeek_cols][subsystem]} %{[zeek_cols][is_exe]} %{[zeek_cols][is_64bit]} %{[zeek_cols][uses_aslr]} %{[zeek_cols][uses_dep]} %{[zeek_cols][uses_code_integrity]} %{[zeek_cols][uses_seh]} %{[zeek_cols][has_import_table]} %{[zeek_cols][has_export_table]} %{[zeek_cols][has_cert_table]} %{[zeek_cols][has_debug_data]} %{[zeek_cols][section_names]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_pe" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_pe" + init => "$zeek_pe_field_names = [ 'ts', 'fuid', 'machine', 'compile_ts', 'os', 'subsystem', 'is_exe', 'is_64bit', 'uses_aslr', 'uses_dep', 'uses_code_integrity', 'uses_seh', 'has_import_table', 'has_export_table', 'has_cert_table', 'has_debug_data', 'section_names' ]" + code => "event.set('[zeek_cols]', $zeek_pe_field_names.zip(event.get('[message]')).to_h)" + } + } + + } else if ([source] == "profinet") { + ############################################################################################################################# + # profinet.log + # https://github.com/amzn/zeek-plugin-profinet/blob/master/scripts/main.zeek + + dissect { + id => "dissect_zeek_profinet" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][operation_type]} %{[zeek_cols][block_version]} %{[zeek_cols][slot_number]} %{[zeek_cols][subslot_number]} %{[zeek_cols][index]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_profinet" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_profinet" + init => "$zeek_profinet_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'operation_type', 'block_version', 'slot_number', 'subslot_number', 'index' ]" + code => "event.set('[zeek_cols]', $zeek_profinet_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_profinet" + add_field => { "[zeek_cols][service]" => "profinet" } + } + + } else if ([source] == "profinet_dce_rpc") { + ############################################################################################################################# + # profinet_dce_rpc.log + # https://github.com/amzn/zeek-plugin-profinet/blob/master/scripts/main.zeek + + dissect { + id => "dissect_zeek_profinet_dce_rpc" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][version]} %{[zeek_cols][packet_type]} %{[zeek_cols][object_uuid]} %{[zeek_cols][interface_uuid]} %{[zeek_cols][activity_uuid]} %{[zeek_cols][server_boot_time]} %{[zeek_cols][operation]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_profinet_dce_rpc" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_profinet_dce_rpc" + init => "$zeek_profinet_dce_rpc_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'version', 'packet_type', 'object_uuid', 'interface_uuid', 'activity_uuid', 'server_boot_time', 'operation' ]" + code => "event.set('[zeek_cols]', $zeek_profinet_dce_rpc_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_profinet_dce_rpc" + add_field => { "[zeek_cols][service]" => "profinet_dce_rpc" } + } + + } else if ([source] == "radius") { + ############################################################################################################################# + # radius.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/radius/main.zeek.html#type-RADIUS::Info + + dissect { + id => "dissect_zeek_radius" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][user]} %{[zeek_cols][mac]} %{[zeek_cols][framed_addr]} %{[zeek_cols][tunnel_client]} %{[zeek_cols][connect_info]} %{[zeek_cols][reply_msg]} %{[zeek_cols][result]} %{[zeek_cols][ttl]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_radius" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_radius" + init => "$zeek_radius_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'user', 'mac', 'framed_addr', 'tunnel_client', 'connect_info', 'reply_msg', 'result', 'ttl' ]" + code => "event.set('[zeek_cols]', $zeek_radius_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_radius" + add_field => { "[zeek_cols][service]" => "radius" } + } + + } else if ([source] == "rdp") { + ############################################################################################################################# + # rdp.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/rdp/main.zeek.html#type-RDP::Info + + if ([@metadata][zeek_fields_bitmap] and [@metadata][zeek_fields_bitmap_version]) { + + # bitmap rdp.log field configuration version 0 + # all fields: 0x03FFFFF / 4194303 + # minus client_channels: 0x03FFDFF / 4193791 + + if ([@metadata][zeek_fields_bitmap_version] == 0) { + + if ([@metadata][zeek_fields_bitmap] == 4194303) { + dissect { + id => "dissect_zeek_rdp_0_with_all_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][cookie]} %{[zeek_cols][result]} %{[zeek_cols][security_protocol]} %{[zeek_cols][client_channels]} %{[zeek_cols][keyboard_layout]} %{[zeek_cols][client_build]} %{[zeek_cols][client_name]} %{[zeek_cols][client_dig_product_id]} %{[zeek_cols][desktop_width]} %{[zeek_cols][desktop_height]} %{[zeek_cols][requested_color_depth]} %{[zeek_cols][cert_type]} %{[zeek_cols][cert_count]} %{[zeek_cols][cert_permanent]} %{[zeek_cols][encryption_level]} %{[zeek_cols][encryption_method]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 4193791) { + dissect { + id => "dissect_zeek_rdp_0_with_all_fields_minus_client_channels" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][cookie]} %{[zeek_cols][result]} %{[zeek_cols][security_protocol]} %{[zeek_cols][keyboard_layout]} %{[zeek_cols][client_build]} %{[zeek_cols][client_name]} %{[zeek_cols][client_dig_product_id]} %{[zeek_cols][desktop_width]} %{[zeek_cols][desktop_height]} %{[zeek_cols][requested_color_depth]} %{[zeek_cols][cert_type]} %{[zeek_cols][cert_count]} %{[zeek_cols][cert_permanent]} %{[zeek_cols][encryption_level]} %{[zeek_cols][encryption_method]}" + } + } + + } else { + # who knows? the rdp.log preprocessed bitmap is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_rdp_1_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the rdp.log preprocessed bitmap field list version is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_bitmap_rdp_version" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the rdp.log was not preprocessed to determine fields, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_missing_rdp_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_rdp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_rdp" + init => "$zeek_rdp_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'cookie', 'result', 'security_protocol', 'client_channels', 'keyboard_layout', 'client_build', 'client_name', 'client_dig_product_id', 'desktop_width', 'desktop_height', 'requested_color_depth', 'cert_type', 'cert_count', 'cert_permanent', 'encryption_level', 'encryption_method' ]" + code => "event.set('[zeek_cols]', $zeek_rdp_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_rdp" + add_field => { "[zeek_cols][service]" => "rdp" } + } + + # remove RDP prefix from client_build (version) + mutate { id => "mutate_gsub_field_zeek_rdp_client_build" + gsub => [ "[zeek_cols][client_build]", "^RDP ", "" ] } + + } else if ([source] == "rfb") { + ############################################################################################################################# + # rfb.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/rfb/main.zeek.html#type-RFB::Info + + dissect { + id => "dissect_zeek_rfb" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][client_major_version]} %{[zeek_cols][client_minor_version]} %{[zeek_cols][server_major_version]} %{[zeek_cols][server_minor_version]} %{[zeek_cols][authentication_method]} %{[zeek_cols][auth]} %{[zeek_cols][share_flag]} %{[zeek_cols][desktop_name]} %{[zeek_cols][width]} %{[zeek_cols][height]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_rfb" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_rfb" + init => "$zeek_rfb_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'client_major_version', 'client_minor_version', 'server_major_version', 'server_minor_version', 'authentication_method', 'auth', 'share_flag', 'desktop_name', 'width', 'height' ]" + code => "event.set('[zeek_cols]', $zeek_rfb_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_rfb" + add_field => { "[zeek_cols][service]" => "rfb" } + } + + } else if ([source] == "s7comm") { + ############################################################################################################################# + # s7comm.log + # https://github.com/amzn/zeek-plugin-s7comm/blob/master/scripts/main.zeek + + dissect { + id => "dissect_zeek_s7comm" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][rosctr]} %{[zeek_cols][parameter]} %{[zeek_cols][item_count]} %{[zeek_cols][data_info]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_s7comm" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_s7comm" + init => "$zeek_s7comm_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'rosctr', 'parameter', 'item_count', 'data_info' ]" + code => "event.set('[zeek_cols]', $zeek_s7comm_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_s7comm" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "s7comm" + } + } + + } else if ([source] == "signatures") { + ############################################################################################################################# + # signatures.log + + dissect { + id => "dissect_zeek_signatures" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][note]} %{[zeek_cols][signature_id]} %{[zeek_cols][event_message]} %{[zeek_cols][sub_message]} %{[zeek_cols][signature_count]} %{[zeek_cols][host_count]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_signatures" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_signatures" + init => "$zeek_signatures_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'note', 'signature_id', 'event_message', 'sub_message', 'signature_count', 'host_count' ]" + code => "event.set('[zeek_cols]', $zeek_signatures_field_names.zip(event.get('[message]')).to_h)" + } + } + + } else if ([source] == "sip") { + ############################################################################################################################# + # sip.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/sip/main.zeek.html#type-SIP::Info + + dissect { + id => "dissect_zeek_sip" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][trans_depth]} %{[zeek_cols][method]} %{[zeek_cols][uri]} %{[zeek_cols][date]} %{[zeek_cols][request_from]} %{[zeek_cols][request_to]} %{[zeek_cols][response_from]} %{[zeek_cols][response_to]} %{[zeek_cols][reply_to]} %{[zeek_cols][call_id]} %{[zeek_cols][seq]} %{[zeek_cols][subject]} %{[zeek_cols][request_path]} %{[zeek_cols][response_path]} %{[zeek_cols][user_agent]} %{[zeek_cols][status_code]} %{[zeek_cols][status_msg]} %{[zeek_cols][warning]} %{[zeek_cols][request_body_len]} %{[zeek_cols][response_body_len]} %{[zeek_cols][content_type]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_sip" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_sip" + init => "$zeek_sip_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'trans_depth', 'method', 'uri', 'date', 'request_from', 'request_to', 'response_from', 'response_to', 'reply_to', 'call_id', 'seq', 'subject', 'request_path', 'response_path', 'user_agent', 'status_code', 'status_msg', 'warning', 'request_body_len', 'response_body_len', 'content_type' ]" + code => "event.set('[zeek_cols]', $zeek_sip_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_sip" + add_field => { "[zeek_cols][service]" => "sip" } + } + + } else if ([source] == "smb_cmd") { + ############################################################################################################################# + # smb_cmd.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/smb/main.zeek.html#type-SMB::CmdInfo + # + # note that smb_cmd.referenced_file is exactly the same structure as the log line for smb_files. later on it will be + # merged up as its own top-level entity so I don't have to duplicate the parsing effort below + + dissect { + id => "dissect_zeek_smb_cmd" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][command]} %{[zeek_cols][sub_command]} %{[zeek_cols][argument]} %{[zeek_cols][status]} %{[zeek_cols][rtt]} %{[zeek_cols][version]} %{[zeek_cols][user]} %{[zeek_cols][tree]} %{[zeek_cols][tree_service]} %{[zeek_cols][referenced_file][ts]} %{[zeek_cols][referenced_file][uid]} %{[zeek_cols][referenced_file][orig_h]} %{[zeek_cols][referenced_file][orig_p]} %{[zeek_cols][referenced_file][resp_h]} %{[zeek_cols][referenced_file][resp_p]} %{[zeek_cols][referenced_file][fuid]} %{[zeek_cols][referenced_file][action]} %{[zeek_cols][referenced_file][path]} %{[zeek_cols][referenced_file][name]} %{[zeek_cols][referenced_file][size]} %{[zeek_cols][referenced_file][prev_name]} %{[zeek_cols][referenced_file][times_modified]} %{[zeek_cols][referenced_file][times_accessed]} %{[zeek_cols][referenced_file][times_created]} %{[zeek_cols][referenced_file][times_changed]} %{[zeek_cols][referenced_file][data_offset_req]} %{[zeek_cols][referenced_file][data_len_req]} %{[zeek_cols][referenced_file][data_len_rsp]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_smb_cmd" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_smb_cmd" + init => "$zeek_smb_cmd_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'command', 'sub_command', 'argument', 'status', 'rtt', 'version', 'user', 'tree', 'tree_service', 'referenced_file.ts', 'referenced_file.uid', 'referenced_file.orig_h', 'referenced_file.orig_p', 'referenced_file.resp_h', 'referenced_file.resp_p', 'referenced_file.fuid', 'referenced_file.action', 'referenced_file.path', 'referenced_file.name', 'referenced_file.size', 'referenced_file.prev_name', 'referenced_file.times_modified', 'referenced_file.times_accessed', 'referenced_file.times_created', 'referenced_file.times_changed', 'referenced_file.data_offset_req', 'referenced_file.data_len_req', 'referenced_file.data_len_rsp' ]" + code => "event.set('[zeek_cols]', $zeek_smb_cmd_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_smb_cmd" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "smb" + } + } + + # remove SMB prefix from version + mutate { id => "mutate_gsub_field_zeek_smb_cmd_version" + gsub => [ "[zeek_cols][version]", "^SMB", "" ] } + + mutate { id => "mutate_gsub_zeek_smb_cmd_command" + gsub => [ "[zeek_cols][command]", "^SMB::", "" ] } + + } else if ([source] == "smb_files") { + ############################################################################################################################# + # smb_files.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/smb/main.zeek.html#type-SMB::FileInfo + + if ([@metadata][zeek_fields_bitmap] and [@metadata][zeek_fields_bitmap_version]) { + + # bitmap smb_files.log field configuration version 0 + # + # smb_files.log without data_offset_req, data_len_req, data_len_rsp : 0x0000FFFF / 65535 + # smb_files.log with data_offset_req, data_len_req, data_len_rsp : 0x0007FFFF / 524287 + + # smb_files.log with data_offset_req, data_len_req, data_len_rsp + + if ([@metadata][zeek_fields_bitmap_version] == 0) { + + if ([@metadata][zeek_fields_bitmap] == 524287) { + + dissect { + id => "dissect_zeek_smb_files_with_all_fields" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][fuid]} %{[zeek_cols][action]} %{[zeek_cols][path]} %{[zeek_cols][name]} %{[zeek_cols][size]} %{[zeek_cols][prev_name]} %{[zeek_cols][times_modified]} %{[zeek_cols][times_accessed]} %{[zeek_cols][times_created]} %{[zeek_cols][times_changed]} %{[zeek_cols][data_offset_req]} %{[zeek_cols][data_len_req]} %{[zeek_cols][data_len_rsp]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 65535) { + + dissect { + id => "dissect_zeek_smb_files_without_data_lens" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][fuid]} %{[zeek_cols][action]} %{[zeek_cols][path]} %{[zeek_cols][name]} %{[zeek_cols][size]} %{[zeek_cols][prev_name]} %{[zeek_cols][times_modified]} %{[zeek_cols][times_accessed]} %{[zeek_cols][times_created]} %{[zeek_cols][times_changed]}" + } + } + + } else { + # who knows? the smb_files.log preprocessed bitmap is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_smb_files_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the smb_files.log preprocessed bitmap field list version is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_bitmap_smb_files_version" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the smb_files.log was not preprocessed to determine fields, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_missing_smb_files_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_smb_files" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_smb_files" + init => "$zeek_smb_files_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'fuid', 'action', 'path', 'name', 'size', 'prev_name', 'times_modified', 'times_accessed', 'times_created', 'times_changed', 'data_offset_req', 'data_len_req', 'data_len_rsp' ]" + code => "event.set('[zeek_cols]', $zeek_smb_files_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_smb_files" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "smb" + } + } + + mutate { id => "mutate_gsub_zeek_smb_files_action" + gsub => [ "[zeek_cols][action]", "^SMB::", "" ] } + + } else if ([source] == "smb_mapping") { + ############################################################################################################################# + # smb_mapping.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/smb/main.zeek.html#type-SMB::TreeInfo + + dissect { + id => "dissect_zeek_smb_mapping" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][path]} %{[zeek_cols][resource_type]} %{[zeek_cols][native_file_system]} %{[zeek_cols][share_type]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_smb_mapping" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_smb_mapping" + init => "$zeek_smb_mapping_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'path', 'resource_type', 'native_file_system', 'share_type' ]" + code => "event.set('[zeek_cols]', $zeek_smb_mapping_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_smb_mapping" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "smb" + } + } + + } else if ([source] == "smtp") { + ############################################################################################################################# + # smtp.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/smtp/main.zeek.html#type-SMTP::Info + + dissect { + id => "dissect_zeek_smtp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][trans_depth]} %{[zeek_cols][helo]} %{[zeek_cols][mailfrom]} %{[zeek_cols][rcptto]} %{[zeek_cols][date]} %{[zeek_cols][from]} %{[zeek_cols][to]} %{[zeek_cols][cc]} %{[zeek_cols][reply_to]} %{[zeek_cols][msg_id]} %{[zeek_cols][in_reply_to]} %{[zeek_cols][subject]} %{[zeek_cols][x_originating_ip]} %{[zeek_cols][first_received]} %{[zeek_cols][second_received]} %{[zeek_cols][last_reply]} %{[zeek_cols][path]} %{[zeek_cols][user_agent]} %{[zeek_cols][tls]} %{[zeek_cols][fuid]} %{[zeek_cols][is_webmail]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_smtp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_smtp" + init => "$zeek_smtp_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'trans_depth', 'helo', 'mailfrom', 'rcptto', 'date', 'from', 'to', 'cc', 'reply_to', 'msg_id', 'in_reply_to', 'subject', 'x_originating_ip', 'first_received', 'second_received', 'last_reply', 'path', 'user_agent', 'tls', 'fuid', 'is_webmail' ]" + code => "event.set('[zeek_cols]', $zeek_smtp_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_smtp" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "smtp" + } + } + + } else if ([source] == "snmp") { + ############################################################################################################################# + # snmp.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/snmp/main.zeek.html#type-SNMP::Info + + dissect { + id => "dissect_zeek_snmp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][duration]} %{[zeek_cols][version]} %{[zeek_cols][community]} %{[zeek_cols][get_requests]} %{[zeek_cols][get_bulk_requests]} %{[zeek_cols][get_responses]} %{[zeek_cols][set_requests]} %{[zeek_cols][display_string]} %{[zeek_cols][up_since]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_snmp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_snmp" + init => "$zeek_snmp_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'duration', 'version', 'community', 'get_requests', 'get_bulk_requests', 'get_responses', 'set_requests', 'display_string', 'up_since' ]" + code => "event.set('[zeek_cols]', $zeek_snmp_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_snmp" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "snmp" + } + } + + } else if ([source] == "socks") { + ############################################################################################################################# + # socks.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/socks/main.zeek.html#type-SOCKS::Info + + dissect { + id => "dissect_zeek_socks" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][version]} %{[zeek_cols][user]} %{[zeek_cols][password]} %{[zeek_cols][server_status]} %{[zeek_cols][request_host]} %{[zeek_cols][request_name]} %{[zeek_cols][request_port]} %{[zeek_cols][bound_host]} %{[zeek_cols][bound_name]} %{[zeek_cols][bound_port]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_socks" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_socks" + init => "$zeek_socks_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'version', 'user', 'password', 'server_status', 'request_host', 'request_name', 'request_port', 'bound_host', 'bound_name', 'bound_port' ]" + code => "event.set('[zeek_cols]', $zeek_socks_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_socks" + add_field => { "[zeek_cols][service]" => "socks" } + } + + } else if ([source] == "software") { + ############################################################################################################################# + # software.log + # https://docs.zeek.org/en/stable/scripts/base/frameworks/software/main.zeek.html#type-Software::Info + + dissect { + id => "dissect_zeek_software" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][software_type]} %{[zeek_cols][name]} %{[zeek_cols][version_major]} %{[zeek_cols][version_minor]} %{[zeek_cols][version_minor2]} %{[zeek_cols][version_minor3]} %{[zeek_cols][version_addl]} %{[zeek_cols][unparsed_version]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_software" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_software" + init => "$zeek_software_field_names = [ 'ts', 'orig_h', 'orig_p', 'software_type', 'name', 'version_major', 'version_minor', 'version_minor2', 'version_minor3', 'version_addl', 'unparsed_version' ]" + code => "event.set('[zeek_cols]', $zeek_software_field_names.zip(event.get('[message]')).to_h)" + } + } + + } else if ([source] == "wireguard") { + ############################################################################################################################# + # wireguard.log + # https://github.com/zeek/spicy-analyzers/tree/main/analyzer/protocol/wireguard + + dissect { + id => "dissect_zeek_wireguard" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][established]} %{[zeek_cols][initiations]} %{[zeek_cols][responses]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_wireguard" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_wireguard" + init => "$zeek_wireguard_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'established', 'initiations', 'responses' ]" + code => "event.set('[zeek_cols]', $zeek_wireguard_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { id => "mutate_gsub_zeek_wireguard_packet_type" + gsub => [ "[zeek_cols][packet_type]", "Wireguard::WG_", "" ] } + + mutate { + id => "mutate_add_field_zeek_service_wireguard" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "wireguard" + } + } + + } else if ([source] == "ssh") { + ############################################################################################################################# + # ssh.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/ssh/main.zeek.html#type-SSH::Info + + if ([@metadata][zeek_fields_bitmap] and [@metadata][zeek_fields_bitmap_version]) { + + # bitmap ssh.log field configuration version 0 + # + # standard ssh.log without HASSH fingerprinting add-on script : 0x007FFFFF / 8388607 + # ssh.log with HASSH fingerprinting add-on script : 0x3FFFFFFF / 1073741823 + + if ([@metadata][zeek_fields_bitmap_version] == 0) { + + if ([@metadata][zeek_fields_bitmap] == 1073741823) { + + dissect { + id => "dissect_zeek_ssh_with_all_fields_with_hassh" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][version]} %{[zeek_cols][auth_success]} %{[zeek_cols][auth_attempts]} %{[zeek_cols][direction]} %{[zeek_cols][client]} %{[zeek_cols][server]} %{[zeek_cols][cipher_alg]} %{[zeek_cols][mac_alg]} %{[zeek_cols][compression_alg]} %{[zeek_cols][kex_alg]} %{[zeek_cols][host_key_alg]} %{[zeek_cols][host_key]} %{[zeek_cols][remote_location_country_code]} %{[zeek_cols][remote_location_region]} %{[zeek_cols][remote_location_city]} %{[zeek_cols][remote_location_latitude]} %{[zeek_cols][remote_location_longitude]} %{[zeek_cols][hasshVersion]} %{[zeek_cols][hassh]} %{[zeek_cols][hasshServer]} %{[zeek_cols][cshka]} %{[zeek_cols][hasshAlgorithms]} %{[zeek_cols][sshka]} %{[zeek_cols][hasshServerAlgorithms]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 8388607) { + + dissect { + id => "dissect_zeek_ssh_with_all_fields_no_hassh" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][version]} %{[zeek_cols][auth_success]} %{[zeek_cols][auth_attempts]} %{[zeek_cols][direction]} %{[zeek_cols][client]} %{[zeek_cols][server]} %{[zeek_cols][cipher_alg]} %{[zeek_cols][mac_alg]} %{[zeek_cols][compression_alg]} %{[zeek_cols][kex_alg]} %{[zeek_cols][host_key_alg]} %{[zeek_cols][host_key]} %{[zeek_cols][remote_location_country_code]} %{[zeek_cols][remote_location_region]} %{[zeek_cols][remote_location_city]} %{[zeek_cols][remote_location_latitude]} %{[zeek_cols][remote_location_longitude]}" + } + } + + } else { + # who knows? the ssh.log preprocessed bitmap is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_ssh_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the ssh.log preprocessed bitmap field list version is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_bitmap_ssh_version" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the ssh.log was not preprocessed to determine fields, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_missing_ssh_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ssh" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ssh" + init => "$zeek_ssh_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'version', 'auth_success', 'auth_attempts', 'direction', 'client', 'server', 'cipher_alg', 'mac_alg', 'compression_alg', 'kex_alg', 'host_key_alg', 'host_key', 'remote_location_country_code', 'remote_location_region', 'remote_location_city', 'remote_location_latitude', 'remote_location_longitude', 'hasshVersion', 'hassh', 'hasshServer', 'cshka', 'hasshAlgorithms', 'sshka', 'hasshServerAlgorithms' ]" + code => "event.set('[zeek_cols]', $zeek_ssh_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ssh" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "ssh" + } + } + + } else if ([source] == "ssl") { + ############################################################################################################################# + # ssl.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/ssl/main.zeek.html#type-SSL::Info + + if ([@metadata][zeek_fields_bitmap] and [@metadata][zeek_fields_bitmap_version]) { + + # bitmap ssl.log field configuration version 0 + # + # standard ssl.log fields without add-on JA3 fingerprinting script : 0x001FFFFF / 2097151 + # ssl.log fields with add-on JA3 fingerprinting script : 0x007FFFFF / 8388607 + + if ([@metadata][zeek_fields_bitmap_version] == 0) { + + if ([@metadata][zeek_fields_bitmap] == 8388607) { + + dissect { + id => "dissect_zeek_ssl_with_ja3" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][ssl_version]} %{[zeek_cols][cipher]} %{[zeek_cols][curve]} %{[zeek_cols][server_name]} %{[zeek_cols][resumed]} %{[zeek_cols][last_alert]} %{[zeek_cols][next_protocol]} %{[zeek_cols][established]} %{[zeek_cols][cert_chain_fuids]} %{[zeek_cols][client_cert_chain_fuids]} %{[zeek_cols][subject]} %{[zeek_cols][issuer]} %{[zeek_cols][client_subject]} %{[zeek_cols][client_issuer]} %{[zeek_cols][validation_status]} %{[zeek_cols][ja3]} %{[zeek_cols][ja3s]}" + } + } + + } else if ([@metadata][zeek_fields_bitmap] == 2097151) { + + dissect { + id => "dissect_zeek_ssl_without_ja3" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][ssl_version]} %{[zeek_cols][cipher]} %{[zeek_cols][curve]} %{[zeek_cols][server_name]} %{[zeek_cols][resumed]} %{[zeek_cols][last_alert]} %{[zeek_cols][next_protocol]} %{[zeek_cols][established]} %{[zeek_cols][cert_chain_fuids]} %{[zeek_cols][client_cert_chain_fuids]} %{[zeek_cols][subject]} %{[zeek_cols][issuer]} %{[zeek_cols][client_subject]} %{[zeek_cols][client_issuer]} %{[zeek_cols][validation_status]}" + } + } + + } else { + # who knows? the ssl.log preprocessed bitmap is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_ssl_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the ssl.log preprocessed bitmap field list version is not one we're expecting, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_unknown_bitmap_ssl_version" + add_tag => [ "_dissectfailure" ] } + } + + } else { + # who knows? the ssl.log was not preprocessed to determine fields, we've got to guess and cannot use dissect + mutate { id => "mutate_add_tag_dissect_failure_missing_ssl_bitmap" + add_tag => [ "_dissectfailure" ] } + } + + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_ssl" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_ssl" + init => "$zeek_ssl_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'ssl_version', 'cipher', 'curve', 'server_name', 'resumed', 'last_alert', 'next_protocol', 'established', 'cert_chain_fuids', 'client_cert_chain_fuids', 'subject', 'issuer', 'client_subject', 'client_issuer', 'validation_status', 'ja3', 'ja3s' ]" + code => "event.set('[zeek_cols]', $zeek_ssl_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_ssl" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "tls" + } + } + + } else if ([source] == "syslog") { + ############################################################################################################################# + # syslog.log + # https://docs.zeek.org/en/stable/scripts/base/protocols/syslog/main.zeek.html#type-Syslog::Info + + dissect { + id => "dissect_zeek_syslog" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][proto]} %{[zeek_cols][facility]} %{[zeek_cols][severity]} %{[zeek_cols][message]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_syslog" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_syslog" + init => "$zeek_syslog_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'proto', 'facility', 'severity', 'message' ]" + code => "event.set('[zeek_cols]', $zeek_syslog_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_syslog" + add_field => { "[zeek_cols][service]" => "syslog" } + } + + } else if ([source] == "tds") { + ############################################################################################################################# + # tds.log + # https://github.com/amzn/zeek-plugin-tds/blob/master/scripts/main.zeek + + dissect { + id => "dissect_zeek_tds" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][command]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_tds" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_tds" + init => "$zeek_tds_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'command' ]" + code => "event.set('[zeek_cols]', $zeek_tds_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_tds" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "tds" + } + } + + } else if ([source] == "tds_rpc") { + ############################################################################################################################# + # tds_rpc.log + # https://github.com/amzn/zeek-plugin-tds/blob/master/scripts/main.zeek + + dissect { + id => "dissect_zeek_tds_rpc" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][procedure_name]} %{[zeek_cols][parameter]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_tds_rpc" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_tds_rpc" + init => "$zeek_tds_rpc_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'procedure_name', 'parameter' ]" + code => "event.set('[zeek_cols]', $zeek_tds_rpc_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_tds_rpc" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "tds" + } + } + + } else if ([source] == "tds_sql_batch") { + ############################################################################################################################# + # tds_sql_batch.log + # https://github.com/amzn/zeek-plugin-tds/blob/master/scripts/main.zeek + + dissect { + id => "dissect_zeek_tds_sql_batch" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][header_type]} %{[zeek_cols][query]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_tds_sql_batch" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_tds_sql_batch" + init => "$zeek_tds_sql_batch_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'header_type', 'query' ]" + code => "event.set('[zeek_cols]', $zeek_tds_sql_batch_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_tds_sql_batch" + add_field => { + "[zeek_cols][proto]" => "tcp" + "[zeek_cols][service]" => "tds" + } + } + + } else if ([source] == "tftp") { + ############################################################################################################################# + # tftp.log + # https://github.com/zeek/spicy-tftp + + dissect { + id => "dissect_zeek_tftp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][wrq]} %{[zeek_cols][fname]} %{[zeek_cols][mode]} %{[zeek_cols][uid_data]} %{[zeek_cols][size]} %{[zeek_cols][block_sent]} %{[zeek_cols][block_acked]} %{[zeek_cols][error_code]} %{[zeek_cols][error_msg]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_tftp" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_tftp" + init => "$zeek_tftp_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'wrq', 'fname', 'mode', 'uid_data', 'size', 'block_sent', 'block_acked', 'error_code', 'error_msg' ]" + code => "event.set('[zeek_cols]', $zeek_tftp_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { + id => "mutate_add_fields_zeek_tftp" + add_field => { + "[zeek_cols][proto]" => "udp" + "[zeek_cols][service]" => "tftp" + } + } + + } else if ([source] == "tunnel") { + ############################################################################################################################# + # tunnel.log + # https://docs.zeek.org/en/stable/scripts/base/frameworks/tunnels/main.zeek.html#type-Tunnel::Info + + dissect { + id => "dissect_zeek_tunnel" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][tunnel_type]} %{[zeek_cols][action]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_tunnel" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_tunnel" + init => "$zeek_tunnel_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'tunnel_type', 'action' ]" + code => "event.set('[zeek_cols]', $zeek_tunnel_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { id => "mutate_gsub_zeek_tunnel_action" + gsub => [ "[zeek_cols][action]", "Tunnel::", "" ] } + + mutate { id => "mutate_gsub_zeek_tunnel_type" + gsub => [ "[zeek_cols][tunnel_type]", "Tunnel::", "" ] } + + mutate { + id => "mutate_add_fields_zeek_tunnel" + add_field => { "[zeek_cols][service]" => "%{[zeek_cols][tunnel_type]}" } + } + + mutate { id => "mutate_lowercase_zeek_tunnel_service" + lowercase => [ "[zeek_cols][service]" ] } + + } else if ([source] == "weird") { + ############################################################################################################################# + # weird.log + # https://docs.zeek.org/en/stable/scripts/base/frameworks/notice/weird.zeek.html#type-Weird::Info + + dissect { + id => "dissect_zeek_weird" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][uid]} %{[zeek_cols][orig_h]} %{[zeek_cols][orig_p]} %{[zeek_cols][resp_h]} %{[zeek_cols][resp_p]} %{[zeek_cols][name]} %{[zeek_cols][addl]} %{[zeek_cols][notice]} %{[zeek_cols][peer]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_weird" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_weird" + init => "$zeek_weird_field_names = [ 'ts', 'uid', 'orig_h', 'orig_p', 'resp_h', 'resp_p', 'name', 'addl', 'notice', 'peer' ]" + code => "event.set('[zeek_cols]', $zeek_weird_field_names.zip(event.get('[message]')).to_h)" + } + } + + } else if ([source] == "x509") { + ############################################################################################################################# + # x509.log + # https://docs.zeek.org/en/stable/scripts/base/files/x509/main.zeek.html#type-X509::Info + + dissect { + id => "dissect_zeek_x509" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + mapping => { + "[message]" => "%{[zeek_cols][ts]} %{[zeek_cols][fuid]} %{[zeek_cols][certificate_version]} %{[zeek_cols][certificate_serial]} %{[zeek_cols][certificate_subject]} %{[zeek_cols][certificate_issuer]} %{[zeek_cols][certificate_not_valid_before]} %{[zeek_cols][certificate_not_valid_after]} %{[zeek_cols][certificate_key_alg]} %{[zeek_cols][certificate_sig_alg]} %{[zeek_cols][certificate_key_type]} %{[zeek_cols][certificate_key_length]} %{[zeek_cols][certificate_exponent]} %{[zeek_cols][certificate_curve]} %{[zeek_cols][san_dns]} %{[zeek_cols][san_uri]} %{[zeek_cols][san_email]} %{[zeek_cols][san_ip]} %{[zeek_cols][basic_constraints_ca]} %{[zeek_cols][basic_constraints_path_len]}" + } + } + if ("_dissectfailure" in [tags]) { + mutate { + id => "mutate_split_zeek_x509" + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + split => { "[message]" => " " } + } + ruby { + id => "ruby_zip_zeek_x509" + init => "$zeek_x509_field_names = [ 'ts', 'fuid', 'certificate_version', 'certificate_serial', 'certificate_subject', 'certificate_issuer', 'certificate_not_valid_before', 'certificate_not_valid_after', 'certificate_key_alg', 'certificate_sig_alg', 'certificate_key_type', 'certificate_key_length', 'certificate_exponent', 'certificate_curve', 'san_dns', 'san_uri', 'san_email', 'san_ip', 'basic_constraints_ca', 'basic_constraints_path_len' ]" + code => "event.set('[zeek_cols]', $zeek_x509_field_names.zip(event.get('[message]')).to_h)" + } + } + + mutate { id => "mutate_add_fields_zeek_x509" + add_field => { "[zeek_cols][service]" => "X.509" + "[certCnt]" => "1" } } + + } else { + + if ([source] =~ /\.\d{4}-\d{2}-\d{2}-\d{2}-\d{2}-\d{2}$/) { + # filebeat caught a file right in the middle of being renamed/moved (ie., renamed from conn.log to + # conn.2020-01-16-14-00-00.log). this has actually already been processed, so ignore this event. + drop { id => "drop_renamed_logfile" } + + } else { + # some other unknown zeek log file. should start with ts at least! + csv { + id => "csv_zeek_unknown" + columns => [ + "ts"] + + # zeek's default delimiter is a literal tab, MAKE SURE YOUR EDITOR DOESN'T SCREW IT UP + separator => " " + # there's no way to *disable* the csv quote char, so set it to something we'll never see + quote_char => " " + + target => "[zeek_cols]" + } + + mutate { id => "mutate_add_tag_zeek_unknown" + add_tag => [ "_unknown_log_type" ] } + } + + } # if / else if for source type (conn.log, dns.log, etc.) + + if ([zeek_cols]) { + # remove unset (-) or "(empty)" top-level field values + ruby { + id => "ruby_zeek_remove_empty_values" + code => " + fieldsHash = event.get('[zeek_cols]').to_hash + fieldsHash.delete_if{|_,v| ((v == nil) or (v == '') or (v == '-') or (v == '(empty)'))} + event.set('[zeek_cols]', fieldsHash) + " + } + } else { + drop { id => "drop_dissect_error" } + } + + # rename the zeek child array to match the log type + mutate { id => "mutate_rename_zeek_log_type" + rename => { "[zeek_cols]" => "[zeek_%{[source]}]" } } + + # move "up" some fields that are considered to be "multi-log" fields (eg., they + # show up in many types of logs) + mutate { + id => "mutate_rename_zeek_common_fields" + rename => { "[zeek_%{[source]}][ts]" => "[zeek][ts]" } + rename => { "[zeek_%{[source]}][uid]" => "[zeek][uid]" } + rename => { "[zeek_%{[source]}][fuid]" => "[zeek][fuid]" } + rename => { "[zeek_%{[source]}][orig_h]" => "[zeek][orig_h]" } + rename => { "[zeek_%{[source]}][orig_p]" => "[zeek][orig_p]" } + rename => { "[zeek_%{[source]}][orig_l2_addr]" => "[zeek][orig_l2_addr]" } + rename => { "[zeek_%{[source]}][resp_h]" => "[zeek][resp_h]" } + rename => { "[zeek_%{[source]}][resp_p]" => "[zeek][resp_p]" } + rename => { "[zeek_%{[source]}][resp_l2_addr]" => "[zeek][resp_l2_addr]" } + rename => { "[zeek_%{[source]}][proto]" => "[zeek][proto]" } + rename => { "[zeek_%{[source]}][service]" => "[zeek][service]" } + rename => { "[zeek_%{[source]}][user]" => "[zeek][user]" } + rename => { "[zeek_%{[source]}][password]" => "[zeek][password]" } + rename => { "[zeek_%{[source]}][community_id]" => "[zeek][community_id]" } + } + + if ([zeek][orig_h]) { mutate { id => "mutate_add_field_zeek_srcIp" + add_field => { "[srcIp]" => "%{[zeek][orig_h]}" } } } + if ([zeek][orig_p]) { mutate { id => "mutate_add_field_zeek_srcPort" + add_field => { "[srcPort]" => "%{[zeek][orig_p]}" } } } + if ([zeek][resp_h]) { mutate { id => "mutate_add_field_zeek_dstIp" + add_field => { "[dstIp]" => "%{[zeek][resp_h]}" } } } + if ([zeek][resp_p]) { mutate { id => "mutate_add_field_zeek_dstPort" + add_field => { "[dstPort]" => "%{[zeek][resp_p]}" } } } + if ([zeek][community_id]) { mutate { id => "mutate_add_field_zeek_communityId" + add_field => { "[communityId]" => "%{[zeek][community_id]}" } } } + + if ([zeek][orig_l2_addr]) { + # copy orig_l2_addr into srcMac array (with a count of 1) + mutate { id => "mutate_merge_field_zeek_srcMac" + merge => { "[srcMac]" => "[zeek][orig_l2_addr]" } } + mutate { id => "mutate_add_field_zeek_srcMacCnt" + add_field => { "[srcMacCnt]" => "1" } } + } + + if ([zeek][resp_l2_addr]) { + # copy resp_l2_addr into dstMac array (with a count of 1) + mutate { id => "mutate_merge_field_zeek_dstMac" + merge => { "[dstMac]" => "[zeek][resp_l2_addr]" } } + mutate { id => "mutate_add_field_zeek_dstMacCnt" + add_field => { "[dstMacCnt]" => "1" } } + } + + if ([zeek][uid]) { + # set zeek connection UID as "rootId" (see logstash.conf output section) + if (![rootId]) { mutate { id => "mutate_add_field_zeek_rootId" + add_field => { "[rootId]" => "%{[zeek][uid]}" } } } + + } else { + # create something random for zeek connection UID + uuid { + id => "uuid_zeek_random_conn" + target => "[@metadata][uuid]" + overwrite => true + } + mutate { id => "mutate_add_field_zeek_uid" + add_field => { "[zeek][uid]" => "%{[@metadata][uuid]}" } } + } + + # if present, FUIDs are always a vector (comma-separated) + if ([zeek][fuid]) { mutate { id => "mutate_split_zeek_fuids" + split => { "[zeek][fuid]" => "," } } } + + if ([source] == "conn") { + mutate { id => "mutate_add_field_zeek_conn_zeekLogDocId" + add_field => { "[zeekLogDocId]" => "%{[zeek][uid]}" } } + + } else { + if ([log][offset]) { + mutate { id => "mutate_add_field_zeek_not_conn_offset_zeekLogDocId" + add_field => { "[zeekLogDocId]" => "%{[zeek][uid]}-%{source}-%{[log][offset]}" } } + } else { + uuid { + id => "uuid_zeek_random_not_conn" + target => "[@metadata][uuid]" + overwrite => true + } + mutate { id => "mutate_add_field_zeek_not_conn_zeekLogDocId" + add_field => { "[zeekLogDocId]" => "%{[zeek][uid]}-%{source}:%{[@metadata][uuid]}" } } + } + } # if/else for defining logOffset field used in document ID for elasticsearch + + if ([zeek][ts]) { + + if ([zeek][ts] == "0.000000") { + # missing packet timestamp, set to "now." not sure what a better option would be + ruby { + id => "ruby_zeek_empty_timestamp_set" + init => "require 'time'" + code => "event.set('[zeek][ts]', Time.now.to_f)" + } + mutate { id => "tag_zeek_empty_timestamp_set" + add_tag => [ "_missing_timestamp" ] } + } + + # convert @timestamp to UNIX to use native kibana features + date { + id => "date_zeek_ts" + match => [ "[zeek][ts]", "UNIX" ] + target => "[@timestamp]" + } + + # set firstPacket to timestamp, lastPacket to timestamp + duration + # @timestamp is date type, + # timestamp, firstPacket, lastPacket are UNIX epoch milliseconds + ruby { + id => "ruby_zeek_timestamp_calc" + code => "event.set('[timestamp]', (1000*event.get('[zeek][ts]').to_f).round(0)) + event.set('[firstPacket]', event.get('[timestamp]'))" + } + if ([zeek_conn]) and ([zeek_conn][duration]) { + # convert duration (floating-point seconds) to milliseconds + ruby { + id => "ruby_zeek_duration_calc" + code => "event.set('[length]', (1000*event.get('[zeek_conn][duration]').to_f).round(0)) + event.set('[lastPacket]', event.get('[timestamp]').to_i + event.get('[length]').to_i)" + } + } else { + mutate { id => "mutate_add_field_zeek_lastPacket" + add_field => { "[lastPacket]" => "%{timestamp}" } } + mutate { id => "mutate_add_field_zeek_length" + add_field => { "[length]" => "0" } } + } + + # set the ts back as something more readable + mutate { id => "mutate_replace_zeek_ts" + replace => { "[zeek][ts]" => "%{[@timestamp]}" } } + } # if ([zeek][ts]) + + # set user and transport- and application-level protocols if specified + if ([zeek][user]) { + mutate { id => "mutate_split_zeek_user" + split => { "[zeek][user]" => "," } } + mutate { id => "mutate_merge_zeek_user" + merge => { "[user]" => "[zeek][user]" } } + } + if ([zeek][proto]) { + translate { + id => "translate_zeek_proto" + field => "[zeek][proto]" + destination => "[ipProtocol]" + dictionary_path => "/etc/ip_protocol_numbers.yaml" + } + mutate { id => "mutate_split_zeek_proto" + split => { "[zeek][proto]" => "," } } + mutate { id => "mutate_merge_zeek_proto" + merge => { "[protocol]" => "[zeek][proto]" } } + } + if ([zeek][service]) { + mutate { id => "mutate_split_zeek_service" + split => { "[zeek][service]" => "," } } + mutate { id => "mutate_merge_zeek_service" + merge => { "[protocol]" => "[zeek][service]" } } + } + + if ([source] == "conn") { + ############################################################################################################################# + # conn.log specific logic + + translate { + id => "translate_zeek_conn_state" + field => "[zeek_conn][conn_state]" + destination => "[zeek_conn][conn_state_description]" + dictionary_path => "/etc/conn_states.yaml" + } + + mutate { id => "mutate_split_zeek_conn_tunnel_parents" + split => { "[zeek_conn][tunnel_parents]" => "," } } + + if ([zeek_conn][vlan] or [zeek_conn][vlan]) { + if ([zeek_conn][vlan]) { + mutate { id => "mutate_merge_zeek_conn_vlan" + merge => { "[vlan]" => "[zeek_conn][vlan]" } } + } + if ([zeek_conn][inner_vlan]) { + mutate { id => "mutate_merge_zeek_conn_inner_vlan" + merge => { "[vlan]" => "[zeek_conn][inner_vlan]" } } + } + ruby { + id => "ruby_zeek_conn_vlanCnt" + code => "event.set('[vlanCnt]', event.get('[vlan]').length)" + } + } + + # aggregate total bytes and packets + ruby { + id => "ruby_zeek_bytes_and_packets_calc" + code => "event.set('[totDataBytes]', event.get('[srcDataBytes]').to_i + event.get('[dstDataBytes]').to_i) + event.set('[totBytes]', event.get('[srcBytes]').to_i + event.get('[dstBytes]').to_i) + event.set('[totPackets]', event.get('[srcPackets]').to_i + event.get('[dstPackets]').to_i)" + } + + if ([zeek_conn][history]) { + ruby { + id => "ruby_zeek_conn_history" + # see https://www.zeek.org/sphinx/scripts/base/protocols/conn/main.bro.html#type-Conn::Info + code => "historyStr = event.get('[zeek_conn][history]').upcase + sCnt = historyStr.count('S') + hCnt = historyStr.count('H') + aCnt = historyStr.count('A') + fCnt = historyStr.count('F') + rCnt = historyStr.count('R') + event.set('[tcpflags][syn]', 10**(sCnt-1)) if sCnt > 0 + event.set('[tcpflags][syn-ack]', 10**(hCnt-1)) if hCnt > 0 + event.set('[tcpflags][ack]', 10**(aCnt-1)) if aCnt > 0 + event.set('[tcpflags][fin]', 10**(fCnt-1)) if fCnt > 0 + event.set('[tcpflags][rst]', 10**(rCnt-1)) if rCnt > 0" + } + } + + } else if ([source] == "bacnet_discovery") { + ############################################################################################################################# + # bacnet_discovery.log specific logic + + # bacnet_discovery.range ccan be split into a min/max (All, 12345-12350, etc.) + if ([zeek_bacnet_discovery][range]) { + if ([zeek_bacnet_discovery][range] == "All") { + mutate { id => "mutate_add_field_zeek_bacnet_discovery_range_low" + add_field => { "[zeek_bacnet_discovery][range_low]" => "0" } } + mutate { id => "mutate_add_field_zeek_bacnet_discovery_range_high" + add_field => { "[zeek_bacnet_discovery][range_high]" => "4194300" } } + } else if ([zeek_bacnet_discovery][range] =~ "^\d+-\d+$") { + ruby { + id => "ruby_bacnet_discovery_range_split" + code => " + if (bacnetRange = event.get('[zeek_bacnet_discovery][range]').split('-')) and (bacnetRange.length == 2) then + event.set('[zeek_bacnet_discovery][range_low]', bacnetRange[0]) + event.set('[zeek_bacnet_discovery][range_high]', bacnetRange[1]) + end" + } + } + } + + } else if ([source] == "dhcp") { + ############################################################################################################################# + # dhcp.log specific logic + + if ([zeek][orig_l2_addr]) { + mutate { + id => "mutate_add_fields_zeek_dhcp_mac" + add_field => { "[zeek_dhcp][mac]" => "%{[zeek][orig_l2_addr]}" } + } + mutate { id => "mutate_merge_zeek_dhcp_mac" + merge => { "[dhcp][mac]" => "[zeek][orig_l2_addr]" } } + mutate { id => "mutate_add_field_dhcp_macCnt" + add_field => { "[dhcp][macCnt]" => "1" } } + } + + if ([zeek_dhcp][msg_types]) { + mutate { id => "mutate_split_zeek_dhcp_msg_types" + split => { "[zeek_dhcp][msg_types]" => "," } } + ruby { + id => "ruby_zeek_dhcp_msg_types" + code => "event.set('[zeek_dhcp][msg_types]', event.get('[zeek_dhcp][msg_types]').uniq)" + } + mutate { id => "mutate_split_zeek_dhcp_type" + merge => { "[dhcp][type]" => "[zeek_dhcp][msg_types]" } } + } + + if ([zeek_dhcp][trans_id]) { + mutate { id => "mutate_merge_zeek_dhcp_id" + merge => { "[dhcp][id]" => "[zeek_dhcp][trans_id]" } } + mutate { id => "mutate_add_field_dhcp_idCnt" + add_field => { "[dhcp][idCnt]" => "1" } } + } + + if ([zeek_dhcp][host_name]) { + mutate { id => "mutate_merge_zeek_dhcp_host_name" + merge => { "[dhcp][host]" => "[zeek_dhcp][host_name]" } } + } + + if ([zeek_dhcp][assigned_ip]) { + mutate { id => "mutate_merge_zeek_dhcp_host" + merge => { "[dhcp][host]" => "[zeek_dhcp][assigned_ip]" } } + } + + if ([dhcp][host]) { + ruby { + id => "ruby_zeek_dhcp_hostCnt" + code => "event.set('[dhcp][hostCnt]', event.get('[dhcp][host]').length)" + } + } + + } else if ([source] == "dnp3") { + ############################################################################################################################# + # dnp3.log specific logic + + # translate IIN bitmap (least significant bit = zeek_dnp3_iin_flags[0], etc.) + # reference: https://raw.githubusercontent.com/wireshark/wireshark/master/epan/dissectors/packet-dnp.c (search IIN) + ruby { + id => "ruby_parse_dnp3_iin" + init => "$zeek_dnp3_iin_flags = [ 'Function Code not Implemented', 'Requested Objects Unknown', 'Parameters Invalid or Out of Range', 'Event Buffer Overflow', 'Operation Already Executing', 'Configuration Corrupt', 'Reserved', 'Reserved', 'Broadcast Msg Rx', 'Class 1 Data Available', 'Class 2 Data Available', 'Class 3 Data Available', 'Time Sync Required', 'Digital Outputs in Local', 'Device Trouble', 'Device Restart' ]" + code => " + iinNum = event.get('[zeek_dnp3][iin]').to_i + if (iinNum > 0) then + iinFlags = Array.new + $zeek_dnp3_iin_flags.each_with_index do |val, idx| + iinFlags.push(val) if (iinNum[idx] == 1) + end + event.set('[zeek_dnp3][iin_flags]', iinFlags) + end" + } + + } else if ([source] == "dns") { + ############################################################################################################################# + # dns.log specific logic + + # this must be done because [dns][ip] only handles IPv4 or IPv6 addresses + # but [answers] can contain hostnames as well + if ([zeek_dns][answers]) { + ruby { + id => "ruby_zeek_dns_answers_ip_extract" + # todo: adjust this regex so it at least sort of catches IPv6 as well + code => "event.set('[@metadata][answers_ip]', event.get('[zeek_dns][answers]').scan(/\d+\.\d+\.\d+\.\d+/).join(','))" + } + mutate { id => "mutate_split_zeek_dns_answers" + split => { "[zeek_dns][answers]" => "," } } + mutate { id => "mutate_split_zeek_dns_answers_ip" + split => { "[@metadata][answers_ip]" => "," } } + } + mutate { id => "mutate_split_zeek_dns_TTLs" + split => { "[zeek_dns][TTLs]" => "," } } + + if ([zeek_dns][query]) { + mutate { id => "mutate_merge_zeek_query" + merge => { "[dns][host]" => "[zeek_dns][query]" } } + # seriously I do not get how merge works + mutate { id => "mutate_add_field_zeek_opcode" + add_field => { "[@metadata][opcode]" => "QUERY" } } + mutate { id => "mutate_merge_zeek_opcode" + merge => { "[dns][opcode]" => "[@metadata][opcode]" } } + mutate { id => "mutate_add_field_dns_hostCnt" + add_field => { "[dns][hostCnt]" => "1" } } + mutate { id => "mutate_add_field_dns_opcodeCnt" + add_field => { "[dns][opcodeCnt]" => "1" } } + } + + if ([@metadata][answers_ip]) { + mutate { id => "mutate_merge_zeek_dns_ip" + merge => { "[dns][ip]" => "[@metadata][answers_ip]" } } + ruby { + id => "ruby_zeek_dns_ipCnt" + code => "event.set('[dns][ipCnt]', event.get('[dns][ip]').length)" + } + } + + if ([zeek_dns][qclass_name]) { + mutate { id => "mutate_merge_zeek_dns_qc" + merge => { "[dns][qc]" => "[zeek_dns][qclass_name]" } } + mutate { id => "mutate_add_field_dns_qcCnt" + add_field => { "[dns][qcCnt]" => "1" } } + } + + if ([zeek_dns][qtype_name]) { + mutate { id => "mutate_merge_zeek_dns_qt" + merge => { "[dns][qt]" => "[zeek_dns][qtype_name]" } } + mutate { id => "mutate_add_field_dns_qtCnt" + add_field => { "[dns][qtCnt]" => "1" } } + } + + } else if ([source] == "files") { + ############################################################################################################################# + # files.log specific logic + + if ([zeek_files][total_bytes]) { + ruby { + id => "ruby_zeek_files_totBytes" + code => "event.set('[totBytes]', event.get('[zeek_files][total_bytes]').to_i)" + } + } + if ([zeek_files][seen_bytes]) { + ruby { + id => "ruby_zeek_files_totDataBytes" + code => "event.set('[totDataBytes]', event.get('[zeek_files][seen_bytes]').to_i)" + } + } + + if ([zeek_files][parent_fuid]) { mutate { id => "mutate_split_zeek_files_parent_fuid" + split => { "[zeek_files][parent_fuid]" => "," } } } + + if ([zeek_files][analyzers]) { mutate { id => "mutate_split_zeek_files_analyzers" + split => { "[zeek_files][analyzers]" => "," } } } + + if ([zeek_files][source]) { + + # do some normalization on files source + mutate { id => "mutate_gsub_field_zeek_files_source_spicy_suffix" + gsub => [ "[zeek_files][source]", "_(TCP|UDP|DATA)$", "" ] } + mutate { id => "mutate_gsub_field_zeek_files_source_spicy_prefix" + gsub => [ "[zeek_files][source]", "^SPICY_", "" ] } + + if ([zeek_files][source] =~ /^XOR decrypted from /) { + # PE_XOR plugin writes source as "XOR decrypted from FM7Tr545kxt3ofR7x2-"..., let's + # standardize that to just "XOR decrypted" and put the source fuid in parent_fuid + grok { + id => "grok_zeek_files_source_xor" + match => { "[zeek_files][source]" => [ "decrypted%{SPACE}from%{SPACE}%{WORD:[@metadata][source_xor_fuid]}" ] } + } + if ([@metadata][source_xor_fuid]) { mutate { id => "mutate_merge_zeek_files_source_xor_parent_fuid" + merge => { "[zeek_files][parent_fuid]" => "[@metadata][source_xor_fuid]" } } } + mutate { id => "mutate_replace_zeek_files_source_xor" + replace => { "[zeek_files][source]" => "XOR decrypted" } } + } + } + + } else if ([source] == "ftp") { + ############################################################################################################################# + # ftp.log specific logic + + if ([zeek_ftp][file_size]) { + ruby { + id => "ruby_zeek_ftp_totDataBytes" + code => "event.set('[totDataBytes]', event.get('[zeek_ftp][file_size]').to_i)" + } + } + + } else if ([source] == "gquic") { + ############################################################################################################################# + # gquic.log specific logic + + if ([zeek_gquic][user_agent]) { + mutate { id => "mutate_merge_zeek_quic_useragent" + merge => { "[quic][useragent]" => "[zeek_gquic][user_agent]" } } + mutate { id => "mutate_add_field_zeek_quic_useragentCnt" + add_field => { "[quic][useragentCnt]" => "1" } } + } + + if ([zeek_gquic][server_name]) { + mutate { id => "mutate_merge_zeek_quic_host" + merge => { "[quic][host]" => "[zeek_gquic][server_name]" } } + mutate { id => "mutate_add_field_zeek_quic_hostCnt" + add_field => { "[quic][hostCnt]" => "1" } } + } + + if ([zeek_gquic][version]) { + ruby { + id => "ruby_zeek_set_quic_version" + code => "event.set('[quic][version]', 'Q' + event.get('[zeek_gquic][version]').rjust(3, '0'))" + } + mutate { id => "mutate_add_field_zeek_quic_versionCnt" + add_field => { "[quic][versionCnt]" => "1" } } + } + + + } else if ([source] == "http") { + ############################################################################################################################# + # http.log specific logic + + mutate { id => "mutate_split_zeek_http_orig_fuids" + split => { "[zeek_http][orig_fuids]" => "," } } + mutate { id => "mutate_split_zeek_http_orig_filenames" + split => { "[zeek_http][orig_filenames]" => "," } } + mutate { id => "mutate_split_zeek_http_orig_mime_types" + split => { "[zeek_http][orig_mime_types]" => "," } } + mutate { id => "mutate_split_zeek_http_resp_fuids" + split => { "[zeek_http][resp_fuids]" => "," } } + mutate { id => "mutate_split_zeek_http_resp_filenames" + split => { "[zeek_http][resp_filenames]" => "," } } + mutate { id => "mutate_split_zeek_http_resp_mime_types" + split => { "[zeek_http][resp_mime_types]" => "," } } + mutate { id => "mutate_split_zeek_http_tags" + split => { "[zeek_http][tags]" => "," } } + mutate { id => "mutate_split_zeek_http_proxied" + split => { "[zeek_http][proxied]" => "," } } + + if ([zeek_http][host]) { + mutate { id => "mutate_merge_zeek_http_host" + merge => { "[http][host]" => "[zeek_http][host]" } } + mutate { id => "mutate_add_field_http_hostCnt" + add_field => { "[http][hostCnt]" => "1" } } + } + + if ([zeek_http][uri]) { + if ([zeek_http][host]) { + mutate { id => "mutate_add_field_metadata_http_host_and_uri" + add_field => { "[@metadata][http_uri]" => "%{[zeek_http][host]}%{[zeek_http][uri]}" } } + mutate { id => "mutate_merge_zeek_http_host_and_uri" + merge => { "[http][uri]" => "[@metadata][http_uri]" } } + } else { + mutate { id => "mutate_merge_zeek_http_uri" + merge => { "[http][uri]" => "[zeek_http][uri]" } } + } + } else if ([zeek_http][referrer]) { + mutate { id => "mutate_merge_zeek_http_referrer" + merge => { "[http][uri]" => "[zeek_http][referrer]" } } + } + + if ([http][uri]) { mutate { id => "mutate_add_field_http_uriCnt" + add_field => { "[http][uriCnt]" => "1" } } } + + if ([zeek_http][user_agent]) { + mutate { id => "mutate_merge_zeek_http_user_agent" + merge => { "[http][useragent]" => "[zeek_http][user_agent]" } } + mutate { id => "mutate_add_field_http_useragentCnt" + add_field => { "[http][useragentCnt]" => "1" } } + } + + if ([zeek_http][orig_mime_types]) { + mutate { id => "mutate_merge_zeek_http_orig_mime_types" + merge => { "[http][bodyMagic]" => "[zeek_http][orig_mime_types]" } } + } + + if ([zeek_http][resp_mime_types]) { + mutate { id => "mutate_merge_zeek_http_resp_mime_types" + merge => { "[http][bodyMagic]" => "[zeek_http][resp_mime_types]" } } + } + + if ([http][bodyMagic]) { + ruby { + id => "ruby_zeek_http_bodyMagicCnt" + code => "event.set('[http][bodyMagicCnt]', event.get('[http][bodyMagic]').length)" + } + } + + if ([zeek_http][version]) { + mutate { id => "mutate_merge_zeek_http_clientVersion" + merge => { "[http][clientVersion]" => "[zeek_http][version]" } } + mutate { id => "mutate_add_field_http_clientVersion" + add_field => { "[http][clientVersionCnt]" => "1" } } + } + + if ([zeek_http][status_code]) { + mutate { id => "mutate_merge_zeek_http_statuscode" + merge => { "[http][statuscode]" => "[zeek_http][status_code]" } } + mutate { id => "mutate_add_field_http_statuscodeCnt" + add_field => { "[http][statuscodeCnt]" => "1" } } + } + + if ([zeek_http][method]) { + mutate { id => "mutate_merge_zeek_http_method" + merge => { "[http][method]" => "[zeek_http][method]" } } + mutate { id => "mutate_add_field_http_methodCnt" + add_field => { "[http][methodCnt]" => "1" } } + } + + if ([zeek_http][post_username]) { + mutate { id => "mutate_merge_zeek_http_post_username_1" + merge => { "[zeek][user]" => "[zeek_http][post_username]" } } + mutate { id => "mutate_merge_zeek_http_post_username_2" + merge => { "[user]" => "[zeek_http][post_username]" } } + } + if (![zeek][password]) and ([zeek_http][post_password_plain]) { + mutate { id => "mutate_add_field_zeek_http_post_password_plain" + add_field => { "[zeek][password]" => "%{[zeek_http][post_password_plain]}" } } + } + + ruby { + id => "ruby_zeek_http_totDataBytes" + code => "event.set('[totDataBytes]', event.get('[zeek_http][response_body_len]').to_i + event.get('[zeek_http][request_body_len]').to_i)" + } + + } else if ([source] == "ipsec") { + ############################################################################################################################# + # ipsec.log specific logic + + mutate { id => "mutate_split_zeek_ipsec_vendor_ids" + split => { "[zeek_ipsec][vendor_ids]" => "," } } + mutate { id => "mutate_split_zeek_ipsec_notify_messages" + split => { "[zeek_ipsec][notify_messages]" => "," } } + mutate { id => "mutate_split_zeek_ipsec_transforms" + split => { "[zeek_ipsec][transforms]" => "," } } + mutate { id => "mutate_split_zeek_ipsec_ke_dh_groups" + split => { "[zeek_ipsec][ke_dh_groups]" => "," } } + mutate { id => "mutate_split_zeek_ipsec_proposals" + split => { "[zeek_ipsec][proposals]" => "," } } + mutate { id => "mutate_split_zeek_ipsec_certificates" + split => { "[zeek_ipsec][certificates]" => "," } } + mutate { id => "mutate_split_zeek_ipsec_transform_attributes" + split => { "[zeek_ipsec][transform_attributes]" => "," } } + + ruby { + id => "ruby_zeek_field_ipsec_flags" + code => ' + flags = Array.new + if (event.get("[zeek_ipsec][flag_e]") == "T") then + flags << "E" + end + if (event.get("[zeek_ipsec][flag_c]") == "T") then + flags << "C" + end + if (event.get("[zeek_ipsec][flag_a]") == "T") then + flags << "A" + end + if (event.get("[zeek_ipsec][flag_i]") == "T") then + flags << "I" + end + if (event.get("[zeek_ipsec][flag_v]") == "T") then + flags << "V" + end + if (event.get("[zeek_ipsec][flag_r]") == "T") then + flags << "R" + end + if !flags.empty? then + event.set("[zeek_ipsec][flags]", flags) + end' + } + + } else if ([source] == "irc") { + ############################################################################################################################# + # irc.log specific logic + + if ([zeek_irc][nick]) { + mutate { id => "mutate_merge_zeek_irc_nick" + merge => { "[irc][nick]" => "[zeek_irc][nick]" } } + mutate { id => "mutate_add_field_irc_nickCnt" + add_field => { "[irc][nickCnt]" => "1" } } + # store "nick" alongside "user" + mutate { id => "mutate_merge_irc_nick_user_1" + merge => { "[zeek][user]" => "[zeek_irc][nick]" } } + mutate { id => "mutate_merge_irc_nick_user_2" + merge => { "[user]" => "[zeek_irc][nick]" } } + } + + if ([zeek_irc][command]) and ([zeek_irc][value]) and (([zeek_irc][command] == "JOIN") or ([zeek_irc][command] == "PART")) { + mutate { id => "mutate_merge_zeek_irc_channel" + merge => { "[irc][channel]" => "[zeek_irc][value]" } } + mutate { id => "mutate_add_field_irc_channelCnt" + add_field => { "[irc][channelCnt]" => "1" } } + } + + } else if ([source] == "intel") { + ############################################################################################################################# + # intel.log specific logic + + if ([zeek_intel][sources]) { mutate { id => "mutate_split_zeek_intel_sources" + split => { "[zeek_intel][sources]" => "," } } } + + + } else if ([source] == "kerberos") { + ############################################################################################################################# + # kerberos.log specific logic + + if ([zeek_kerberos][cname]) { + mutate { id => "mutate_merge_zeek_kerberos_cname" + merge => { "[krb5][cname]" => "[zeek_kerberos][cname]" } } + mutate { id => "mutate_add_field_kerberos_cnameCnt" + add_field => { "[krb5][cnameCnt]" => "1" } } + } + + if ([zeek_kerberos][sname]) { + mutate { id => "mutate_merge_zeek_kerberos_sname" + merge => { "[krb5][sname]" => "[zeek_kerberos][sname]" } } + mutate { id => "mutate_add_field_kerberos_snameCnt" + add_field => { "[krb5][snameCnt]" => "1" } } + } + + if ([zeek_kerberos][client_cert_fuid]) { mutate { id => "mutate_split_zeek_kerberos_client_cert_fuid" + split => { "[zeek_kerberos][client_cert_fuid]" => "," } } } + + if ([zeek_kerberos][server_cert_fuid]) { mutate { id => "mutate_split_zeek_kerberos_server_cert_fuid" + split => { "[zeek_kerberos][server_cert_fuid]" => "," } } } + + } else if ([source] == "ldap") { + ############################################################################################################################# + # ldap.log specific logic + + mutate { id => "mutate_split_zeek_ldap_fields" + split => { "[zeek_ldap][operation]" => "," + "[zeek_ldap][result_code]" => "," + "[zeek_ldap][result_message]" => "," + "[zeek_ldap][object]" => "," + "[zeek_ldap][argument]" => "," } } + + if ([zeek_ldap][object]) or ([zeek_ldap][argument]) { + ruby { + id => "ruby_zeek_ldap_object_and_arguments_adjustment" + code => " + if (objects = event.get('[zeek_ldap][object]')) and (objects.length > 0) then + objectsAdj = Array.new + objects.each do |val| + objectsAdj.push(val.gsub('\\x2c', ',')) + end + event.set('[zeek_ldap][object]', objectsAdj) + end + if (arguments = event.get('[zeek_ldap][argument]')) and (arguments.length > 0) then + argsAdj = Array.new + arguments.each do |val| + argsAdj.push(val.gsub('\\x2c', ',')) + end + event.set('[zeek_ldap][argument]', argsAdj) + end" + } + } + + # map simple bind "object" and "argument" to username and password + # and map to Arkime types + if ("bind simple" in [zeek_ldap][operation]) { + if ([zeek_ldap][object]) { + mutate { id => "mutate_merge_zeek_ldap_bind_object_user" + merge => { "[zeek][user]" => "[zeek_ldap][object]" } } + mutate { id => "mutate_merge_ldap_bind_name" + merge => { "[ldap][bindname]" => "[zeek_ldap][object]" } } + mutate { id => "mutate_add_field_ldap_bindnameCnt" + add_field => { "[ldap][bindnameCnt]" => "1" } } + } + if ([zeek_ldap][argument]) { + mutate { id => "mutate_merge_zeek_ldap_bind_argument_password" + merge => { "[zeek][password]" => "[zeek_ldap][argument]" } } + } + mutate { id => "mutate_add_field_ldap_authtype_simple" + add_field => { "[@metadata][ldapAuthType]" => "simple" } } + } else if ("bind SASL" in [zeek_ldap][operation]) { + mutate { id => "mutate_add_field_ldap_authtype_sasl" + add_field => { "[@metadata][ldapAuthType]" => "sasl" } } + } + if ([@metadata][ldapAuthType]) { + mutate { id => "mutate_merge_ldap_authtype" + merge => { "[ldap][authtype]" => "[@metadata][ldapAuthType]" } } + mutate { id => "mutate_add_field_ldap_authtypeCnt" + add_field => { "[ldap][authtypeCnt]" => "1" } } + } + + } else if ([source] == "ldap_search") { + ############################################################################################################################# + # ldap_search.log specific logic + + mutate { id => "mutate_split_zeek_ldap_search_fields" + split => { "[zeek_ldap_search][scope]" => "," + "[zeek_ldap_search][deref]" => "," + "[zeek_ldap_search][base_object]" => "," + "[zeek_ldap_search][result_code]" => "," + "[zeek_ldap_search][result_message]" => "," } } + + if ([zeek_ldap_search][base_object]) { + ruby { + id => "ruby_zeek_ldap_search_base_object_adjustment" + code => " + if (objects = event.get('[zeek_ldap_search][base_object]')) and (objects.length > 0) then + objectsAdj = Array.new + objects.each do |val| + objectsAdj.push(val.gsub('\\x2c', ',')) + end + event.set('[zeek_ldap_search][base_object]', objectsAdj) + end" + } + } + + } else if ([source] == "modbus_detailed") { + ############################################################################################################################# + # modbus_detailed.log specific logic + + if ([zeek_modbus_detailed][values]) { + mutate { id => "mutate_split_zeek_modbus_detailed_values" + split => { "[zeek_modbus_detailed][values]" => "," } } + } + + } else if ([source] == "modbus_read_write_multiple_registers") { + ############################################################################################################################# + # modbus_read_write_multiple_registers.log specific logic + + if ([zeek_modbus_read_write_multiple_registers][read_registers]) { + mutate { id => "mutate_split_zeek_modbus_read_write_multiple_registers_read_registers" + split => { "[zeek_modbus_read_write_multiple_registers][read_registers]" => "," } } + } + + if ([zeek_modbus_read_write_multiple_registers][write_registers]) { + mutate { id => "mutate_split_zeek_modbus_read_write_multiple_registers_write_registers" + split => { "[zeek_modbus_read_write_multiple_registers][write_registers]" => "," } } + } + + } else if ([source] == "mqtt_publish") { + ############################################################################################################################# + # mqtt_publish.log specific logic + + # MQTT payload *may* be JSON, or it may not + json { + skip_on_invalid_json => true + source => "[zeek_mqtt_publish][payload]" + target => "[zeek_mqtt_publish][payload_dict]" + } + + + } else if ([source] == "mqtt_subscribe") { + ############################################################################################################################# + # mqtt_subscribe.log specific logic + + mutate { id => "mutate_split_zeek_mqtt_subscribe_fields" + split => { "[zeek_mqtt_subscribe][topics]" => "," + "[zeek_mqtt_subscribe][qos_levels]" => "," } } + + } else if ([source] == "mysql") { + ############################################################################################################################# + # mysql.log specific logic + + if ([zeek_mysql][rows] == 0) { + mutate { id => "mutate_remove_field_zeek_mysql_zero_rows" + remove_field => [ "[zeek_mysql][rows]" ] } + } + + } else if ([source] == "notice") { + ############################################################################################################################# + # notice.log specific logic + + mutate { id => "mutate_split_zeek_notice_actions" + split => { "[zeek_notice][actions]" => "," } } + + # split "Category::Subcategory" into two different fields + ruby { + id => "ruby_zeek_notice_category_extract" + code => " + if (noticeNote = event.get('[zeek_notice][note]')) and (noticeParts = noticeNote.split('::')) then + if (noticeParts.length >= 2) then + event.set('[zeek_notice][category]', noticeParts[0]) + event.set('[zeek_notice][sub_category]', noticeParts[1]) + elsif (noticeParts.length == 1) then + event.set('[zeek_notice][category]', noticeParts[0]) + end + end" + } + + if ([zeek_notice][category] == "ATTACK") and ([zeek_notice][msg] =~ /(from|against|to)\s+host/) { + # ATTACK::Discovery - Detected activity from host 192.168.199.133, total attempts 5 within timeframe 5.0 mins + # but no IP addresses set :( + if (![srcIp]) { + grok { + id => "grok_zeek_notice_attack_src_hosts" + match => { "[zeek_notice][msg]" => [ "from%{SPACE}host%{SPACE}%{DATA:[srcIp]}%{SPACE}($|[^\d:\.\w-]+)" ] } + } + if ([srcIp]) { mutate { id => "mutate_add_field_zeek_orig_h_attack" + add_field => { "[zeek][orig_h]" => "%{[srcIp]}" } } } + } + if (![dstIp]) { + grok { + id => "grok_zeek_notice_attack_dst_hosts" + match => { "[zeek_notice][msg]" => [ "(against|to)%{SPACE}host%{SPACE}%{DATA:[dstIp]}%{SPACE}($|[^\d:\.\w-]+)" ] } + } + if ([dstIp]) { mutate { id => "mutate_add_field_zeek_resp_h_attack" + add_field => { "[zeek][resp_h]" => "%{[dstIp]}" } } } + } + } + + if ([zeek_notice][note] == "Corelight::XOR_Encrypted_PE_File_Seen") and ([zeek_notice][sub] =~ /Decrypted File ID/) { + # zeek_notice.note Corelight::XOR_Encrypted_PE_File_Seen + # + # zeek.fuid F7QoY740DvrZF2lrsa + # + zeek_notice.sub Decrypted File ID: FqNQ8i3LbG2ZY5EO3k + # ----------------- + # = zeek.fuid F7QoY740DvrZF2lrsa, FqNQ8i3LbG2ZY5EO3k + grok { + id => "grok_zeek_notice_xor_fuid" + match => { "[zeek_notice][sub]" => [ "Decrypted%{SPACE}File%{SPACE}ID:%{SPACE}%{WORD:[@metadata][decrypted_xor_fuid]}" ] } + } + if ([@metadata][decrypted_xor_fuid]) { mutate { id => "mutate_merge_zeek_notice_decrypted_xor_fuid" + merge => { "[zeek][fuid]" => "[@metadata][decrypted_xor_fuid]" } } } + } + + } else if ([source] == "ntp") { + ############################################################################################################################# + # ntp.log specific logic + + # map mode to string for readability + if ([zeek_ntp][mode]) { + translate { + id => "translate_zeek_ntp_mode_str" + field => "[zeek_ntp][mode]" + destination => "[zeek_ntp][mode_str]" + dictionary_path => "/etc/ntp_modes.yaml" + } + } + + } else if ([source] == "pe") { + ############################################################################################################################# + # pe.log specific logic + + mutate { id => "mutate_split_zeek_pe_section_names" + split => { "[zeek_pe][section_names]" => "," } } + + } else if ([source] == "radius") { + ############################################################################################################################# + # radius.log specific logic + + if ([zeek][user]) { mutate { id => "mutate_merge_zeek_radius_user" + merge => { "[radius][user]" => "[zeek][user]" } } } + + if ([zeek_radius][framed_addr]) { + mutate { id => "mutate_merge_zeek_radius_framed_addr" + merge => { "[radius][framedIp]" => "[zeek_radius][framed_addr]" } } + mutate { id => "mutate_add_field_radius_framedIpCnt" + add_field => { "[radius][framedIpCnt]" => "1" } } + } + + if ([zeek_radius][tunnel_client]) { + mutate { id => "mutate_merge_zeek_radius_tunnel_client" + merge => { "[radius][endpointIp]" => "[zeek_radius][tunnel_client]" } } + mutate { id => "mutate_add_field_radius_endpointIpCnt" + add_field => { "[radius][endpointIpCnt]" => "1" } } + } + + if ([zeek_radius][mac]) { + mutate { id => "mutate_merge_zeek_radius_mac" + merge => { "[radius][mac]" => "[zeek_radius][mac]" } } + mutate { id => "mutate_add_field_radius_macCnt" + add_field => { "[radius][macCnt]" => "1" } } + if (![zeek][orig_l2_addr]) { + mutate { id => "mutate_merge_zeek_radius_zeek_mac" + merge => { "[zeek][orig_l2_addr]" => "[zeek_radius][mac]" } } + } + } + + } else if ([source] == "rdp") { + ############################################################################################################################# + # rdp.log specific logic + + mutate { id => "mutate_split_zeek_rdp_client_channels" + split => { "[zeek_rdp][client_channels]" => "," } } + + + } else if ([source] == "s7comm") { + ############################################################################################################################# + # s7comm.log specific logic + + if ([zeek_s7comm][parameter]) { + ruby { + id => "ruby_zeek_s7comm_parse_parameter" + code => " + parameterHash = event.get('[zeek_s7comm][parameter]').split(',').each_with_object({}) do |a, hash| + key,value = a.split(/\s*=\s*/) + hash[key] = value + end + event.set('[zeek_s7comm][parameters]', parameterHash)" + } + mutate { id => "mutate_split_field_s7comm_parameter" + split => { "[zeek_s7comm][parameter]" => "," } } + } + + if ([zeek_s7comm][data_info] == "Null") { + mutate { id => "mutate_remove_field_s7comm_data_info_null" + remove_field => [ "[zeek_s7comm][data_info]" ] } + } else if ([zeek_s7comm][data_info]) { + mutate { id => "mutate_split_field_s7comm_data_info" + split => { "[zeek_s7comm][data_info]" => "," } } + } + + } else if ([source] == "signatures") { + ############################################################################################################################# + # signatures.log specific logic + + if ("_carved" in [tags]) { + # Malcolm does some "special" stuff in zeek_carve_logger.py for file carving, sort of hijacking signatures.log for it + + # sub_message contains fuid(s) comma-separated + if ([zeek_signatures][sub_message]) { + mutate { id => "mutate_split_zeek_signatures_sub_message" + split => { "[zeek_signatures][sub_message]" => "," } } + mutate { id => "mutate_rename_zeek_signatures_sub_message" + rename => { "[zeek_signatures][sub_message]" => "[zeek][fuid]" } } + } + + if ([zeek_signatures][event_message]) { + # sub_message contains "Signature [Engine]" list semi-colon separated + ruby { + id => "ruby_zeek_signatures_event_message_parse" + code => " + matchesHash = Hash.new + idArray = Array.new + event.get('[zeek_signatures][event_message]').split(';').each { |hit| + nameAndEngines = hit.split(/(.+?)\s*<(.+)>/) + nameAndEngines[2].split(',').each { |engine| + unless matchesHash.key?(engine) + matchesHash[engine] = Array.new + end + matchesHash[engine].push(nameAndEngines[1]) + idArray.push(nameAndEngines[1]) + } + } + event.set('[zeek_signatures][signature_id]', idArray.uniq) + event.set('[zeek_signatures][engine]', matchesHash.keys) + event.set('[zeek_signatures][hits]', matchesHash)" + } + mutate { + id => "mutate_remove_field_zeek_signatures_event_message" + remove_field => [ "[zeek_signatures][event_message]" ] + } + } + + } else { + if ([zeek_signatures][signature_id] =~ /^dpd_/) { + # I don't care about DPD matching signatures + drop { id => "drop_zeek_ignored_signatures_dpd" } + } + } + + } else if ([source] == "sip") { + ############################################################################################################################# + # sip.log specific logic + + ruby { + id => "ruby_zeek_field_zeek_sip_version" + code => ' + versions = Array.new + paths = [event.get("[zeek_sip][request_path]"), event.get("[zeek_sip][response_path]")].compact.join(",") + paths.scan(/\bSIP:?\/([\d\.]+)/i) { |match| versions << match[0] } + event.set("[zeek_sip][version]", versions.uniq)' + } + + mutate { id => "mutate_split_zeek_sip_request_path" + split => { "[zeek_sip][request_path]" => "," } } + + mutate { id => "mutate_split_zeek_sip_response_path" + split => { "[zeek_sip][response_path]" => "," } } + + + } else if ([source] == "smb_cmd") or ([source] == "smb_files") { + ############################################################################################################################# + # smb_cmd.log and smb_files.log specific logic + # note that smb_cmd.referenced_file is exactly the same structure as the log line for smb_files, which is why I've combined + # the logic here to avoid duplication + + if ([zeek_smb_cmd]) { + + if ([zeek_smb_cmd][referenced_file]) { + + # move "up" referenced_file to its own smb_files top-level entity + mutate { + id => "mutate_rename_zeek_zeek_smb_cmd_referenced_file" + rename => { "[zeek_smb_cmd][referenced_file]" => "[zeek_smb_files]" } + } + + # remove unset (-) or "(empty)" referenced_file (now zeek_smb_files) subfield values + ruby { + id => "ruby_zeek_remove_empty_smb_cmd_referenced_file_values" + code => " + fieldsHash = event.get('[zeek_smb_files]').to_hash + fieldsHash.delete_if{|_,v| ((v == nil) or (v == '') or (v == '-') or (v == '(empty)'))} + event.set('[zeek_smb_files]', fieldsHash) + " + } + + # collect referenced file FUID(s) at parent level (here rather than in 12_zeek_normalize.conf because + # this would have already been done as a root-level fuid array in the main "rename" above if we + # had not had to move it up a level just now) + if ([zeek_smb_files][fuid]) { + mutate { id => "mutate_merge_zeek_smb_files_fuid" + merge => { "[zeek][fuid]" => "[zeek_smb_files][fuid]" } } + mutate { id => "mutate_remove_zeek_smb_files_fuid" + remove_field => [ "[zeek_smb_files][fuid]" ] } + } + + if ([zeek_smb_files][action]) { mutate { id => "mutate_gsub_zeek_smb_cmd_referenced_file_action" + gsub => [ "[zeek_smb_files][action]", "^SMB::", "" ] } } + + } # if ([zeek_smb_cmd][referenced_file]) + + } # if ([zeek_smb_cmd]) + + # this should now apply to either lines from smb_files.log or smb_cmd.referenced_file + if ([zeek_smb_files]) { + + if ([zeek_smb_files][name]) { mutate { id => "mutate_merge_zeek_smb_files_name_to_filename" + merge => { "[smb][filename]" => "[zeek_smb_files][name]" } } } + if ([zeek_smb_files][prev_name]) { mutate { id => "mutate_merge_zeek_smb_files_prev_name_to_filename" + merge => { "[smb][filename]" => "[zeek_smb_files][prev_name]" } } } + if ([smb][filename]) { + ruby { + id => "ruby_zeek_smb_files_filenameCnt" + code => "event.set('[smb][filenameCnt]', event.get('[smb][filename]').length)" + } + } + + if ([zeek_smb_files][path]) { + grok { + id => "grok_zeek_smb_files_path" + match => { "[zeek_smb_files][path]" => [ "^%{SPACE}[\\\/]+%{DATA:[@metadata][smb_host]}[\\\/]+%{DATA:[@metadata][smb_share]}(?:[\\\/]+%{GREEDYDATA:[@metadata][smb_path]})?$" ] } + } + if ([@metadata][smb_host]) { + mutate { id => "mutate_merge_zeek_smb_files_host" + merge => { "[smb][host]" => "[@metadata][smb_host]" } } + mutate { id => "mutate_add_field_smb_hostCnt" + add_field => { "[smb][hostCnt]" => "1" } } + } + if ([@metadata][smb_share]) { + mutate { id => "mutate_merge_zeek_smb_files_share" + merge => { "[smb][share]" => "[@metadata][smb_share]" } } + ruby { + id => "ruby_zeek_smb_files_shareCnt" + code => "event.set('[smb][shareCnt]', event.get('[smb][share]').length)" + } + } + } + + } # if ([zeek_smb_files]) + + } else if ([source] == "smb_mapping") { + ############################################################################################################################# + # smb_mapping.log specific logic + + if ([zeek_smb_mapping][path]) { + # todo: figure out how to replace \\ -> \ + mutate { id => "mutate_merge_zeek_smb_mapping_share" + merge => { "[smb][share]" => "[zeek_smb_mapping][path]" } } + } + + if ([zeek_smb_mapping][path]) { + grok { + id => "grok_zeek_smb_mapping_path" + match => { "[zeek_smb_mapping][path]" => [ "^%{SPACE}[\\\/]+%{DATA:[@metadata][smb_host]}[\\\/]+%{DATA:[@metadata][smb_share]}(?:[\\\/]+%{GREEDYDATA:[@metadata][smb_path]})?$" ] } + } + if ([@metadata][smb_host]) { + mutate { id => "mutate_merge_zeek_smb_mapping_host" + merge => { "[smb][host]" => "[@metadata][smb_host]" } } + mutate { id => "mutate_add_field_smb_mapping_hostCnt" + add_field => { "[smb][hostCnt]" => "1" } } + } + if ([@metadata][smb_share]) { + mutate { id => "mutate_merge_zeek_smb_mapping_share_from_path" + merge => { "[smb][share]" => "[@metadata][smb_share]" } } + } + } + + if ([smb][share]) { + ruby { + id => "ruby_zeek_smb_mapping_shareCnt" + code => "event.set('[smb][shareCnt]', event.get('[smb][share]').length)" + } + } + + } else if ([source] == "smtp") { + ############################################################################################################################# + # smtp.log specific logic + + mutate { id => "mutate_split_zeek_smtp_rcptto" + split => { "[zeek_smtp][rcptto]" => "," } } + mutate { id => "mutate_split_zeek_smtp_to" + split => { "[zeek_smtp][to]" => "," } } + mutate { id => "mutate_split_zeek_smtp_cc" + split => { "[zeek_smtp][cc]" => "," } } + mutate { id => "mutate_split_zeek_smtp_path" + split => { "[zeek_smtp][path]" => "," } } + + if ([zeek_smtp][user_agent]) { + mutate { id => "mutate_merge_zeek_smtp_user_agent" + merge => { "[email][useragent]" => "[zeek_smtp][user_agent]" } } + mutate { id => "mutate_add_field_email_useragentCnt" + add_field => { "[email][useragentCnt]" => "1" } } + } + + if ([zeek_smtp][from]) { mutate { id => "mutate_merge_zeek_smtp_from" + merge => { "[email][src]" => "[zeek_smtp][from]" } } } + if ([zeek_smtp][mailfrom]) { mutate { id => "mutate_merge_zeek_smtp_mailfrom" + merge => { "[email][src]" => "[zeek_smtp][mailfrom]" } } } + if ([zeek_smtp][reply_to]) { mutate { id => "mutate_merge_zeek_smtp_reply_to" + merge => { "[email][src]" => "[zeek_smtp][reply_to]" } } } + if ([email][src]) { + ruby { + id => "ruby_zeek_smtp_src" + code => "event.set('[email][src]', event.get('[email][src]').uniq) + event.set('[email][srcCnt]', event.get('[email][src]').length)" + } + } + + if ([zeek_smtp][to]) { mutate { id => "mutate_merge_zeek_smtp_dst_from_to" + merge => { "[email][dst]" => "[zeek_smtp][to]" } } } + if ([zeek_smtp][cc]) { mutate { id => "mutate_merge_zeek_smtp_dst_from_cc" + merge => { "[email][dst]" => "[zeek_smtp][cc]" } } } + if ([zeek_smtp][rcptto]) { mutate { id => "mutate_merge_zeek_dst_from_rcptto" + merge => { "[email][dst]" => "[zeek_smtp][rcptto]" } } } + if ([zeek_smtp][helo]) { + mutate { id => "mutate_merge_zeek_smtp_helo" + merge => { "[email][smtpHello]" => "[zeek_smtp][helo]" } } + mutate { id => "mutate_merge_add_field_zeek_smtp_helo_cnt" + add_field => { "[email][smtpHelloCnt]" => "1" } } + } + if ([email][dst]) { + ruby { + id => "ruby_zeek_smtp_dst" + code => "event.set('[email][dst]', event.get('[email][dst]').uniq) + event.set('[email][dstCnt]', event.get('[email][dst]').length)" + } + } + + if ([zeek_smtp][subject]) { + mutate { id => "mutate_merge_zeek_smtp_subject" + merge => { "[email][subject]" => "[zeek_smtp][subject]" } } + mutate { id => "mutate_add_field_email_subjectCnt" + add_field => { "[email][subjectCnt]" => "1" } } + } + + if ([zeek_smtp][msg_id]) { + mutate { id => "mutate_gsub_zeek_smtp_msg_id" + gsub => [ "[zeek_smtp][msg_id]", "(^<|>$)", "" ] } + mutate { id => "mutate_merge_zeek_smtp_msg_id" + merge => { "[email][id]" => "[zeek_smtp][msg_id]" } } + } + if ([zeek_smtp][in_reply_to]) { + mutate { id => "mutate_gsub_zeek_smtp_in_reply_to" + gsub => [ "[zeek_smtp][in_reply_to]", "(^<|>$)", "" ] } + mutate { id => "mutate_merge_zeek_smtp_in_reply_to" + merge => { "[email][id]" => "[zeek_smtp][in_reply_to]" } } + } + if ([zeek_smtp][id]) { + ruby { + id => "ruby_zeek_smtp_idCnt" + code => "event.set('[email][idCnt]', event.get('[email][id]').length)" + } + } + + if ([zeek_smtp][last_reply]) { + # will be mapped to a "result" later in normalization + grok { + id => "grok_zeek_zeek_smtp_last_reply" + match => { "[zeek_smtp][last_reply]" => [ "^%{SPACE}%{NUMBER:[zeek_smtp][last_reply_code]}" ] } + } + } + + } else if ([source] == "ssh") { + ############################################################################################################################# + # ssh.log specific logic + + if ([zeek_ssh][server]) { mutate { id => "mutate_merge_zeek_ssh_server_version" + merge => { "[ssh][version]" => "[zeek_ssh][server]" } } } + + if ([zeek_ssh][client]) { mutate { id => "mutate_merge_zeek_client_version" + merge => { "[ssh][version]" => "[zeek_ssh][client]" } } } + + if (![ssh][version]) and ([zeek_ssh][version]) { mutate { id => "mutate_merge_zeek_ssh_version" + merge => { "[ssh][version]" => "[zeek_ssh][version]" } } } + + if ([ssh][version]) { mutate { id => "mutate_add_field_ssh_versionCnt" + add_field => { "[ssh][versionCnt]" => "1" } } } + + if ([zeek_ssh][host_key] and [zeek_ssh][host_key_alg]) { + # this is stupid, the %{} doesn't seem to be liked by mutate.merge + mutate { id => "mutate_add_field_zeek_ssh_host_key" + add_field => { "[@metadata][ssh_key_str]" => "%{[zeek_ssh][host_key_alg]} %{[zeek_ssh][host_key]}" } } + mutate { id => "mutate_merge_zeek_ssh_key" + merge => { "[ssh][key]" => "[@metadata][ssh_key_str]" } } + mutate { id => "mutate_add_field_ssh_keyCnt" + add_field => { "[ssh][keyCnt]" => "1" } } + } + + # HASSH stuff (see https://github.com/salesforce/hassh/tree/master/bro) + + if ([zeek_ssh][hassh]) { + mutate { id => "mutate_merge_zeek_ssh_hassh" + merge => { "[ssh][hassh]" => "[zeek_ssh][hassh]" } } + mutate { id => "mutate_add_field_zeek_ssh_hasshCnt" + add_field => { "[ssh][hasshCnt]" => "1" } } + } + + if ([zeek_ssh][hasshServer]) { + mutate { id => "mutate_merge_zeek_ssh_hasshServer" + merge => { "[ssh][hasshServer]" => "[zeek_ssh][hasshServer]" } } + mutate { id => "mutate_add_field_zeek_ssh_hasshServerCnt" + add_field => { "[ssh][hasshServerCnt]" => "1" } } + } + + if ([zeek_ssh][hasshAlgorithms]) { mutate { id => "mutate_split_zeek_ssh_hasshAlgorithms" + split => { "[zeek_ssh][hasshAlgorithms]" => "," } } } + + if ([zeek_ssh][hasshServerAlgorithms]) { mutate { id => "mutate_split_zeek_ssh_hasshServerAlgorithms" + split => { "[zeek_ssh][hasshServerAlgorithms]" => "," } } } + + if ([zeek_ssh][cshka]) { mutate { id => "mutate_split_zeek_ssh_cshka" + split => { "[zeek_ssh][cshka]" => "," } } } + + if ([zeek_ssh][sshka]) { mutate { id => "mutate_split_zeek_ssh_sshka" + split => { "[zeek_ssh][sshka]" => "," } } } + + + } else if ([source] == "ssl") { + ############################################################################################################################# + # ssl.log specific logic + + # split subjects/issuers out into hashes + # 1. handle escaped commans (urlencode) + # 2. rename source hashes into metadata for splitting + # 3. split fields by comma into destination hashes + # 4. urldecode any commas we might have had + + if ([zeek_ssl][subject]) { + mutate { id => "mutate_gsub_zeek_ssl_subject" + gsub => [ "[zeek_ssl][subject]", "\\\\,", "%2C" ] } + mutate { id => "mutate_rename_zeek_ssl_subject" + rename => { "[zeek_ssl][subject]" => "[zeek_ssl][subject_full]" } } + kv { + id => "mutate_kv_zeek_ssl_subject" + field_split => "," + source => "[zeek_ssl][subject_full]" + target => "[zeek_ssl][subject]" + } + urldecode { + id => "mutate_urldecode_zeek_ssl_subject" + field => "[zeek_ssl][subject]" + } + urldecode { + id => "mutate_urldecode_zeek_ssl_subject_full" + field => "[zeek_ssl][subject_full]" + } + } + + if ([zeek_ssl][client_subject]) { + mutate { id => "mutate_gsub_zeek_ssl_client_subject" + gsub => [ "[zeek_ssl][client_subject]", "\\\\,", "%2C" ] } + mutate { id => "mutate_rename_zeek_ssl_client_subject" + rename => { "[zeek_ssl][client_subject]" => "[zeek_ssl][client_subject_full]" } } + kv { + id => "mutate_kv_zeek_ssl_client_subject" + field_split => "," + source => "[zeek_ssl][client_subject_full]" + target => "[zeek_ssl][client_subject]" + } + urldecode { + id => "mutate_urldecode_zeek_ssl_client_subject" + field => "[zeek_ssl][client_subject]" + } + urldecode { + id => "mutate_urldecode_zeek_ssl_client_subject_full" + field => "[zeek_ssl][client_subject_full]" + } + } + + if ([zeek_ssl][issuer]) { + mutate { id => "mutate_gsub_zeek_ssl_issuer" + gsub => [ "[zeek_ssl][issuer]", "\\\\,", "%2C" ] } + mutate { id => "mutate_rename_zeek_ssl_issuer" + rename => { "[zeek_ssl][issuer]" => "[zeek_ssl][issuer_full]" } } + kv { + id => "mutate_kv_zeek_ssl_issuer" + field_split => "," + source => "[zeek_ssl][issuer_full]" + target => "[zeek_ssl][issuer]" + } + urldecode { + id => "mutate_urldecode_zeek_ssl_issuer" + field => "[zeek_ssl][issuer]" + } + urldecode { + id => "mutate_urldecode_zeek_ssl_issuer_full" + field => "[zeek_ssl][issuer_full]" + } + } + + if ([zeek_ssl][client_issuer]) { + mutate { id => "mutate_gsub_zeek_ssl_client_issuer" + gsub => [ "[zeek_ssl][client_issuer]", "\\\\,", "%2C" ] } + mutate { id => "mutate_rename_zeek_ssl_client_issuer" + rename => { "[zeek_ssl][client_issuer]" => "[zeek_ssl][client_issuer_full]" } } + kv { + id => "mutate_kv_zeek_ssl_client_issuer" + field_split => "," + source => "[zeek_ssl][client_issuer_full]" + target => "[zeek_ssl][client_issuer]" + } + urldecode { + id => "mutate_urldecode_zeek_ssl_client_issuer" + field => "[zeek_ssl][client_issuer]" + } + urldecode { + id => "mutate_urldecode_zeek_ssl_client_issuer_full" + field => "[zeek_ssl][client_issuer_full]" + } + } + + if ([zeek_ssl][ssl_version]) { + mutate { id => "mutate_merge_zeek_ssl_version" + merge => { "[tls][version]" => "[zeek_ssl][ssl_version]" } } + mutate { id => "mutate_add_field_ssl_versionCnt" + add_field => { "[tls][versionCnt]" => "1" } } + } + + if ([zeek_ssl][cipher]) { + mutate { id => "mutate_merge_zeek_ssl_cipher" + merge => { "[tls][cipher]" => "[zeek_ssl][cipher]" } } + mutate { id => "mutate_add_field_ssl_cipherCnt" + add_field => { "[tls][cipherCnt]" => "1" } } + } + + if ([zeek_ssl][ja3]) { + mutate { id => "mutate_merge_zeek_ssl_ja3" + merge => { "[tls][ja3]" => "[zeek_ssl][ja3]" } } + mutate { id => "mutate_add_field_zeek_ssl_ja3Cnt" + add_field => { "[tls][ja3Cnt]" => "1" } } + } + + if ([zeek_ssl][ja3s]) { + mutate { id => "mutate_merge_zeek_ssl_ja3s" + merge => { "[tls][ja3s]" => "[zeek_ssl][ja3s]" } } + mutate { id => "mutate_add_field_zeek_ssl_ja3sCnt" + add_field => { "[tls][ja3sCnt]" => "1" } } + } + + if ([zeek_ssl][cert_chain_fuids]) { mutate { id => "mutate_split_zeek_ssl_cert_chain_fuids" + split => { "[zeek_ssl][cert_chain_fuids]" => "," } } } + + if ([zeek_ssl][client_cert_chain_fuids]) { mutate { id => "mutate_split_zeek_ssl_client_cert_chain_fuids" + split => { "[zeek_ssl][client_cert_chain_fuids]" => "," } } } + + } else if ([source] == "tds_rpc") { + ############################################################################################################################# + # tds_rpc.log specific logic + + if ([zeek_tds_rpc][parameter]) { + ruby { + id => "ruby_zeek_tds_rpc_parse_parameter" + code => " + parameterHash = event.get('[zeek_tds_rpc][parameter]').split(',').each_with_object({}) do |a, hash| + key,value = a.split(/\s*=\s*/) + hash[key.delete_prefix('@')] = value + end + event.set('[zeek_tds_rpc][parameters]', parameterHash)" + } + + mutate { id => "mutate_split_field_tds_rpc_parameter" + split => { "[zeek_tds_rpc][parameter]" => "," } } + } + + } else if ([source] == "x509") { + ############################################################################################################################# + # x509.log specific logic + + # split subject/issuer out into hashes + # 1. handle escaped commans (urlencode) + # 2. rename source hashes into metadata for splitting + # 3. split fields by comma into destination hashes + # 4. urldecode any commas we might have had + + if ([zeek_x509][certificate_subject]) { + mutate { id => "mutate_gsub_zeek_x509_certificate_subject" + gsub => [ "[zeek_x509][certificate_subject]", "\\\\,", "%2C" ] } + mutate { id => "mutate_rename_zeek_x509_certificate_subject" + rename => { "[zeek_x509][certificate_subject]" => "[zeek_x509][certificate_subject_full]" } } + kv { + id => "mutate_kv_zeek_x509_certificate_subject" + field_split => "," + source => "[zeek_x509][certificate_subject_full]" + target => "[zeek_x509][certificate_subject]" + } + urldecode { + id => "mutate_urldecode_zeek_x509_certificate_subject" + field => "[zeek_x509][certificate_subject]" + } + urldecode { + id => "mutate_urldecode_zeek_x509_certificate_subject_full" + field => "[zeek_x509][certificate_subject_full]" + } + if ([zeek_x509][certificate_subject][CN]) { + mutate { id => "mutate_merge_zeek_x509_certificate_subject_CN" + merge => { "[@metadata][cert][subjectCN]" => "[zeek_x509][certificate_subject][CN]" } } + } + if ([zeek_x509][certificate_subject][O]) { + mutate { id => "mutate_add_zeek_x509_certificate_subject_O" + add_field => { "[@metadata][cert][subjectON]" => "%{[zeek_x509][certificate_subject][O]}" } } + } + } + + if ([zeek_x509][certificate_issuer]) { + mutate { id => "mutate_gsub_zeek_x509_certificate_issuer" + gsub => [ "[zeek_x509][certificate_issuer]", "\\\\,", "%2C" ] } + mutate { id => "mutate_rename_zeek_x509_certificate_issuer" + rename => { "[zeek_x509][certificate_issuer]" => "[zeek_x509][certificate_issuer_full]" } } + kv { + id => "mutate_kv_zeek_x509_certificate_issuer" + field_split => "," + source => "[zeek_x509][certificate_issuer_full]" + target => "[zeek_x509][certificate_issuer]" + } + urldecode { + id => "mutate_urldecode_zeek_x509_certificate_issuer" + field => "[zeek_x509][certificate_issuer]" + } + urldecode { + id => "mutate_urldecode_zeek_x509_certificate_issuer_full" + field => "[zeek_x509][certificate_issuer_full]" + } + if ([zeek_x509][certificate_issuer][CN]) { + mutate { id => "mutate_merge_zeek_x509_certificate_issuer_CN" + merge => { "[@metadata][cert][issuerCN]" => "[zeek_x509][certificate_issuer][CN]" } } + } + if ([zeek_x509][certificate_issuer][O]) { + mutate { id => "mutate_add_zeek_x509_certificate_issuer_O" + add_field => { "[@metadata][cert][issuerON]" => "%{[zeek_x509][certificate_issuer][O]}" } } + } + } + + if ([zeek_x509][certificate_not_valid_before]) and ([zeek_x509][certificate_not_valid_after]) { + ruby { + id => "ruby_zeek_x509_valid_range" + code => "event.set('[@metadata][cert][notBefore]', (1000*event.get('[zeek_x509][certificate_not_valid_before]').to_f).round(0)) + event.set('[@metadata][cert][notAfter]', (1000*event.get('[zeek_x509][certificate_not_valid_after]').to_f).round(0)) + event.set('[@metadata][cert][validDays]', ((event.get('[zeek_x509][certificate_not_valid_after]').to_f - event.get('[zeek_x509][certificate_not_valid_before]').to_f)/(24.0*60.0*60.0)).round(0))" + } + mutate { + id => "mutate_convert_zeek_x509_time_range" + convert => { + "[@metadata][cert][notBefore]" => "integer" + "[@metadata][cert][notAfter]" => "integer" + "[@metadata][cert][validDays]" => "float" + } + } + } + + if ([zeek_x509][certificate_serial]) { + # todo: serial not showing up right... + # ruby { + # id => "ruby_zeek_x509_serial" + # code => "event.set('[@metadata][cert][serial]', event.get('[certificate_serial]').unpack('C*').map {|e| e.to_s 16}.join(':'))" + # } + mutate { id => "mutate_add_field_zeek_x509_serial" + add_field => { "[@metadata][cert][serial]" => "%{[zeek_x509][certificate_serial]}" } } + } + + if ([@metadata][cert]) { + ruby { + id => "ruby_zeek_x509_cert_array_set" + code => " + certArray = Array.new + certArray.push(event.get('[@metadata][cert]')) + event.set('[cert]', certArray)" + } + } + + if ([zeek_x509][san_ip]) { mutate { id => "mutate_split_zeek_x509_san_ip" + split => { "[zeek_x509][san_ip]" => "," } } } + + + } # end if/else if/else for specific log type logic + ####################################################################################################### + + # rename source (eg., conn, ssh, etc.) to zeek.logType + mutate { id => "mutate_rename_zeek_logType" + rename => { "[source]" => "[zeek][logType]" } } + + # kind of a unique case, smb_cmd can also be smb_files + if ([zeek][logType] == "smb_cmd") and ([zeek_smb_files]) { + # seriously I do not get how merge works, why can't I just merge the string literal? + mutate { id => "mutate_add_field_zeek_tmp_logtype" + add_field => { "[@metadata][tmpLogType]" => "smb_files" } } + mutate { id => "mutate_merge_zeek_smb_cmd_and_smb_files_logType" + merge => { "[zeek][logType]" => "[@metadata][tmpLogType]" } } + } + + # get counts for some arrays that each log type may contribute to individually + if ([protocol]) { + ruby { + id => "ruby_zeek_protocolCnt" + code => "event.set('[protocolCnt]', event.get('[protocol]').length)" + } + } + if ([user]) { + ruby { + id => "ruby_zeek_userCnt" + code => "event.set('[userCnt]', event.get('[user]').length)" + } + } + +} # end Filter diff --git a/Vagrant/resources/malcolm/logstash/pipelines/zeek/12_zeek_normalize.conf b/Vagrant/resources/malcolm/logstash/pipelines/zeek/12_zeek_normalize.conf new file mode 100644 index 0000000..94c9b52 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/zeek/12_zeek_normalize.conf @@ -0,0 +1,967 @@ +filter { + + # Protocol/service version ########################################################################################## + # collect protocol version under the parent zeek.service_version array + + if ([zeek_gquic][version]) { mutate { id => "mutate_merge_normalize_zeek_gquic_version" + merge => { "[zeek][service_version]" => "[zeek_gquic][version]" } } } + + if ([zeek_http][version]) { mutate { id => "mutate_merge_normalize_zeek_http_version" + merge => { "[zeek][service_version]" => "[zeek_http][version]" } } } + + if ([zeek_ipsec]) { + ruby { + id => "ruby_zeek_field_zeek_service_version_ipsec" + code => " + versions = Array.new + versions << [event.get('[zeek_ipsec][maj_ver]'), + event.get('[zeek_ipsec][min_ver]')].compact.join('.') + event.set('[zeek][service_version]', versions)" + } + } + + if ([zeek_ldap][version]) { mutate { id => "mutate_merge_normalize_zeek_ldap_version" + merge => { "[zeek][service_version]" => "[zeek_ldap][version]" } } } + + if ([zeek_ntp][version]) { mutate { id => "mutate_merge_normalize_zeek_ntp_version" + merge => { "[zeek][service_version]" => "[zeek_ntp][version]" } } } + + if ([zeek_profinet][block_version]) { mutate { id => "mutate_merge_normalize_zeek_profinet_block_version" + merge => { "[zeek][service_version]" => "[zeek_profinet][block_version]" } } } + + if ([zeek_profinet_dce_rpc][version]) { mutate { id => "mutate_merge_normalize_zeek_profinet_dce_rpc_version" + merge => { "[zeek][service_version]" => "[zeek_profinet_dce_rpc][version]" } } } + + if ([zeek_rfb]) { + ruby { + id => "ruby_zeek_field_zeek_service_version_rfb" + code => ' + versions = Array.new + clientMajorVersion = event.get("[zeek_rfb][client_major_version]").sub!(/^0*/, "") + clientMinorVersion = event.get("[zeek_rfb][client_minor_version]").sub!(/^0*/, "") + serverMajorVersion = event.get("[zeek_rfb][server_major_version]").sub!(/^0*/, "") + serverMinorVersion = event.get("[zeek_rfb][server_minor_version]").sub!(/^0*/, "") + if clientMajorVersion then + versions << [clientMajorVersion, clientMinorVersion].join(".") + end + if serverMajorVersion then + versions << [serverMajorVersion, serverMinorVersion].join(".") + end + event.set("[zeek][service_version]", versions.uniq)' + } + } + + if ([zeek_rdp][client_build]) { mutate { id => "mutate_merge_normalize_zeek_rdp_client_build" + merge => { "[zeek][service_version]" => "[zeek_rdp][client_build]" } } } + + if ([zeek_smtp][version]) { mutate { id => "mutate_merge_normalize_zeek_smtp_version" + merge => { "[zeek][service_version]" => "[zeek_smtp][version]" } } } + + if ([zeek_smb_cmd][version]) { mutate { id => "mutate_merge_normalize_zeek_smb_cmd_version" + merge => { "[zeek][service_version]" => "[zeek_smb_cmd][version]" } } } + + if ([zeek_snmp][version]) { mutate { id => "mutate_merge_normalize_zeek_snmp_version" + merge => { "[zeek][service_version]" => "[zeek_snmp][version]" } } } + + if ([zeek_socks][version]) { mutate { id => "mutate_merge_normalize_zeek_socks_version" + merge => { "[zeek][service_version]" => "[zeek_socks][version]" } } } + + if ([zeek_ssh][version]) { mutate { id => "mutate_merge_normalize_zeek_ssh_version" + merge => { "[zeek][service_version]" => "[zeek_ssh][version]" } } } + + if ([zeek_ssl][ssl_version]) { mutate { id => "mutate_merge_normalize_zeek_ssl_ssl_version" + merge => { "[zeek][service_version]" => "[zeek_ssl][ssl_version]" } } } + + if ([zeek][service_version]) { + ruby { + id => "ruby_zeek_service_version_uniq" + code => "event.set('[zeek][service_version]', event.get('[zeek][service_version]').uniq)" + } + } + + # Action ############################################################################################################ + # collect all actions/operations/commands under the parent [zeek][action] array + + if ([zeek_bacnet][pdu_service]) { mutate { id => "mutate_merge_normalize_zeek_bacnet_pdu_service" + merge => { "[zeek][action]" => "[zeek_bacnet][pdu_service]" } } } + + if ([zeek_bacnet_discovery][pdu_service]) { mutate { id => "mutate_merge_normalize_zeek_bacnet_discovery_pdu_service" + merge => { "[zeek][action]" => "[zeek_bacnet_discovery][pdu_service]" } } } + + if ([zeek_bacnet_property][pdu_service]) { mutate { id => "mutate_merge_normalize_zeek_bacnet_property_pdu_service" + merge => { "[zeek][action]" => "[zeek_bacnet_property][pdu_service]" } } } + + if ([zeek_bsap_ip_rdb]) { + ruby { + # action = zeek_bsap_ip_rdb.app_func_code:zeek_bsap_ip_rdb.func_code + id => "ruby_zeek_bsap_ip_rdb_generate_action" + code => " + actions = Array.new unless (actions = event.get('[zeek][action]')) + actions.append([event.get('[zeek_bsap_ip_rdb][app_func_code]'), + event.get('[zeek_bsap_ip_rdb][func_code]')].compact.join(':')) + event.set('[zeek][action]', actions)" + } + } + + if ([zeek_bsap_serial_header][sfun]) { mutate { id => "mutate_merge_normalize_zeek_bsap_serial_header_sfun" + merge => { "[zeek][action]" => "[zeek_bsap_serial_header][sfun]" } } } + + if ([zeek_bsap_serial_header][dfun]) { mutate { id => "mutate_merge_normalize_zeek_bsap_serial_header_dfun" + merge => { "[zeek][action]" => "[zeek_bsap_serial_header][dfun]" } } } + + if ([zeek_bsap_serial_rdb][func_code]) { mutate { id => "mutate_merge_normalize_zeek_bsap_serial_rdb_func_code" + merge => { "[zeek][action]" => "[zeek_bsap_serial_rdb][func_code]" } } } + + if ([zeek_bsap_serial_rdb_ext][sfun]) { mutate { id => "mutate_merge_normalize_zeek_bsap_serial_rdb_ext_sfun" + merge => { "[zeek][action]" => "[zeek_bsap_serial_rdb_ext][sfun]" } } } + + if ([zeek_bsap_serial_rdb_ext][dfun]) { mutate { id => "mutate_merge_normalize_zeek_bsap_serial_rdb_ext_dfun" + merge => { "[zeek][action]" => "[zeek_bsap_serial_rdb_ext][dfun]" } } } + + if ([zeek_bsap_serial_rdb_ext][extfun]) { mutate { id => "mutate_merge_normalize_zeek_bsap_serial_rdb_ext_extfun" + merge => { "[zeek][action]" => "[zeek_bsap_serial_rdb_ext][extfun]" } } } + + if ([zeek_cip][cip_service]) { mutate { id => "mutate_merge_normalize_zeek_cip_cip_service" + merge => { "[zeek][action]" => "[zeek_cip][cip_service]" } } } + + if ([zeek_dce_rpc][operation]) { mutate { id => "mutate_merge_normalize_zeek_dce_rpc_operation" + merge => { "[zeek][action]" => "[zeek_dce_rpc][operation]" } } } + + if ([zeek_dhcp][msg_types]) { mutate { id => "mutate_merge_normalize_zeek_dhcp_msg_types" + merge => { "[zeek][action]" => "[zeek_dhcp][msg_types]" } } } + + if ([zeek_dnp3][fc_request]) { mutate { id => "mutate_merge_normalize_zeek_dnp3_fc_request" + merge => { "[zeek][action]" => "[zeek_dnp3][fc_request]" } } } + + if ([zeek_dnp3_control]) { + ruby { + # action = function_code:operation_type:trip_control_code + id => "ruby_zeek_dnp3_control_generate_action" + code => " + actions = Array.new unless (actions = event.get('[zeek][action]')) + actions.append([event.get('[zeek_dnp3_control][function_code]'), + event.get('[zeek_dnp3_control][operation_type]'), + event.get('[zeek_dnp3_control][trip_control_code]')].compact.join(':')) + event.set('[zeek][action]', actions)" + } + } + + if ([zeek_dnp3_read_objects][function_code]) { mutate { id => "mutate_merge_normalize_zeek_dnp3_read_objects" + merge => { "[zeek][action]" => "[zeek_dnp3_read_objects][function_code]" } } } + + if ([zeek_dns]) { + # action: query class and type + if ([zeek_dns][qclass_name]) and ([zeek_dns][qtype_name]) { + mutate { id => "mutate_add_field_metadata_dns_class_and_type" + add_field => { "[@metadata][dns_action]" => "%{[zeek_dns][qclass_name]} %{[zeek_dns][qtype_name]}" } } + } else if ([zeek_dns][qclass_name]) { + mutate { id => "mutate_add_field_metadata_dns_class" + add_field => { "[@metadata][dns_action]" => "%{[zeek_dns][qclass_name]}" } } + } else if ([zeek_dns][qtype_name]) { + mutate { id => "mutate_add_field_metadata_dns_type" + add_field => { "[@metadata][dns_action]" => "%{[zeek_dns][qtype_name]}" } } + } else { + mutate { id => "mutate_add_field_metadata_dns_query" + add_field => { "[@metadata][dns_action]" => "Query" } } + } + mutate { id => "mutate_merge_zeek_dns_action" + merge => { "[zeek][action]" => "[@metadata][dns_action]" } } + } + + # TODO: convert zeek_ecat_foe_info.opcode and zeek_ecat_soe_info.opcode to operations + # zeek EtherCAT commands/operations + if ([zeek_ecat_aoe_info][command]) { mutate { id => "mutate_merge_normalize_zeek_ecat_aoe_info_command" + merge => { "[zeek][action]" => "[zeek_ecat_aoe_info][command]" } } } + if ([zeek_ecat_foe_info][opcode]) { mutate { id => "mutate_merge_normalize_zeek_ecat_foe_info_opcode" + merge => { "[zeek][action]" => "[zeek_ecat_foe_info][opcode]" } } } + if ([zeek_ecat_log_address][command]) { mutate { id => "mutate_merge_normalize_zeek_ecat_log_address" + merge => { "[zeek][action]" => "[zeek_ecat_log_address][command]" } } } + if ([zeek_ecat_registers][command]) { mutate { id => "mutate_merge_normalize_zeek_ecat_registers_command" + merge => { "[zeek][action]" => "[zeek_ecat_registers][command]" } } } + if ([zeek_ecat_soe_info][opcode]) { mutate { id => "mutate_merge_normalize_zeek_ecat_soe_info_opcode" + merge => { "[zeek][action]" => "[zeek_ecat_soe_info][opcode]" } } } + if ([zeek_ecat_arp_info][arp_type]) { mutate { id => "mutate_merge_normalize_zeek_ecat_arp_info_arp_type" + merge => { "[zeek][action]" => "[zeek_ecat_arp_info][arp_type]" } } } + + if ([zeek_enip][enip_command]) { mutate { id => "mutate_merge_normalize_zeek_enip_enip_command" + merge => { "[zeek][action]" => "[zeek_enip][enip_command]" } } } + + if ([zeek_ftp][command]) { mutate { id => "mutate_merge_normalize_zeek_ftp_command" + merge => { "[zeek][action]" => "[zeek_ftp][command]" } } } + + if ([zeek_http]) { + if ([zeek_http][method]) { + mutate { id => "mutate_merge_normalize_zeek_http_method" + merge => { "[zeek][action]" => "[zeek_http][method]" } } + } else { + mutate { id => "mutate_add_field_zeek_http_request_action" + add_field => { "[@metadata][http_request_action]" => "Request" } } + mutate { id => "mutate_merge_field_zeek_http_request_action" + merge => { "[zeek][action]" => "[@metadata][http_request_action]" } } + } + } + + if ([zeek_irc][command]) { mutate { id => "mutate_merge_normalize_zeek_irc_command" + merge => { "[zeek][action]" => "[zeek_irc][command]" } } } + + if ([zeek_iso_cotp][pdu_type]) { mutate { id => "mutate_merge_normalize_zeek_iso_cotp_pdu_type" + merge => { "[zeek][action]" => "[zeek_iso_cotp][pdu_type]" } } } + + if ([zeek_kerberos][request_type]) { mutate { id => "mutate_merge_normalize_zeek_kerberos_request_type" + merge => { "[zeek][action]" => "[zeek_kerberos][request_type]" } } } + + if ([zeek_ldap][operation]) { mutate { id => "mutate_merge_normalize_zeek_ldap_operation" + merge => { "[zeek][action]" => "[zeek_ldap][operation]" } } } + + if ([zeek_ldap_search]) { + if ([zeek_ldap_search][scope]) { + mutate { id => "mutate_add_field_zeek_ldap_search_scope_action" + add_field => { "[@metadata][zeek_ldap_search_action]" => "search %{[zeek_ldap_search][scope]}" } } + } else { + mutate { id => "mutate_add_field_zeek_ldap_search_action" + add_field => { "[@metadata][zeek_ldap_search_action]" => "search" } } + } + mutate { id => "mutate_merge_field_zeek_ldap_search_action" + merge => { "[zeek][action]" => "[@metadata][zeek_ldap_search_action]" } } + } + + if ([zeek_modbus][func]) { mutate { id => "mutate_merge_normalize_zeek_modbus_func" + merge => { "[zeek][action]" => "[zeek_modbus][func]" } } } + + if ([zeek_modbus_mask_write_register][func]) { mutate { id => "mutate_merge_normalize_zeek_modbus_mask_write_register_func" + merge => { "[zeek][action]" => "[zeek_modbus_mask_write_register][func]" } } } + + if ([zeek_modbus_read_write_multiple_registers][func]) { mutate { id => "mutate_merge_normalize_zeek_modbus_read_write_multiple_registers" + merge => { "[zeek][action]" => "[zeek_modbus_read_write_multiple_registers][func]" } } } + + if ([zeek_mqtt_connect][connect_status]) { + # this log entry implicitly means "connect" + mutate { id => "mutate_add_field_zeek_mqtt_connect_action" + add_field => { "[@metadata][zeek_mqtt_connect_action]" => "Connect" } } + mutate { id => "mutate_merge_zeek_mqtt_connect_action" + merge => { "[zeek][action]" => "[@metadata][zeek_mqtt_connect_action]" } } + } + + if ([zeek_mqtt_publish]) { + if ([zeek_mqtt_publish][payload_dict][messageType]) { + # not sure if this is a standard or just the PCAPs I found :/ + mutate { id => "mutate_merge_normalize_zeek_mqtt_publish_payload_dict_messageType" + merge => { "[zeek][action]" => "[zeek_mqtt_publish][payload_dict][messageType]" } } + } else { + mutate { id => "mutate_add_field_zeek_mqtt_publish_action" + add_field => { "[@metadata][zeek_mqtt_publish_action]" => "Publish" } } + mutate { id => "mutate_merge_zeek_mqtt_publish_action" + merge => { "[zeek][action]" => "[@metadata][zeek_mqtt_publish_action]" } } + } + } + + if ([zeek_mqtt_subscribe][action]) { mutate { id => "mutate_merge_normalize_zeek_mqtt_subscribe_action" + merge => { "[zeek][action]" => "[zeek_mqtt_subscribe][action]" } } } + + if ([zeek_mysql][cmd]) { mutate { id => "mutate_merge_normalize_zeek_mysql_cmd" + merge => { "[zeek][action]" => "[zeek_mysql][cmd]" } } } + + if ([zeek_ntlm][success]) { + # this log entry implicitly means a login attempt + mutate { id => "mutate_add_field_zeek_ntlm_action" + add_field => { "[@metadata][zeek_ntlm_action]" => "Authenticate" } } + mutate { id => "mutate_merge_zeek_ntlm_action" + merge => { "[zeek][action]" => "[@metadata][zeek_ntlm_action]" } } + } + + if ([zeek_ntp][mode_str]) { mutate { id => "mutate_merge_normalize_zeek_ntp_mode_str" + merge => { "[zeek][action]" => "[zeek_ntp][mode_str]" } } } + + if ([zeek_profinet][operation_type]) { mutate { id => "mutate_merge_normalize_zeek_profinet_operation_type" + merge => { "[zeek][action]" => "[zeek_profinet][operation_type]" } } } + + if ([zeek_profinet_dce_rpc][operation]) { mutate { id => "mutate_merge_normalize_zeek_profinet_dce_rpc_operation" + merge => { "[zeek][action]" => "[zeek_profinet_dce_rpc][operation]" } } } + + if ([zeek_rfb][auth]) and ([zeek_rfb][authentication_method]) { + # if authentication was attempted, assign an "authenticate" action + mutate { id => "mutate_add_field_zeek_rfb_auth_action" + add_field => { "[@metadata][zeek_rfb_auth_action]" => "Authenticate" } } + mutate { id => "mutate_merge_zeek_rfb_auth_action" + merge => { "[zeek][action]" => "[@metadata][zeek_rfb_auth_action]" } } + } + + if ([zeek_s7comm]) { + ruby { + # action = rosctr:mode:type:sub + id => "ruby_zeek_s7comm_generate_action" + code => " + actions = Array.new unless (actions = event.get('[zeek][action]')) + actions.append([event.get('[zeek_s7comm][rosctr]'), + event.get('[zeek_s7comm][parameters][mode]'), + event.get('[zeek_s7comm][parameters][type]'), + event.get('[zeek_s7comm][parameters][sub]')].compact.join(':')) + event.set('[zeek][action]', actions)" + } + } + + if ([zeek_sip][method]) { mutate { id => "mutate_merge_normalize_zeek_sip_method" + merge => { "[zeek][action]" => "[zeek_sip][method]" } } } + + if ([zeek_smtp]) { + # action depends on varios smtp headers' presence + if ([zeek_smtp][last_reply]) { + if ([zeek_smtp][msg_id]) { + mutate { id => "mutate_add_field_zeek_smtp_action_deliver" + add_field => { "[@metadata][zeek_smtp_action]" => "Deliver message" } } + } else if ([zeek_smtp][mailfrom]) { + mutate { id => "mutate_add_field_zeek_smtp_action_queue" + add_field => { "[@metadata][zeek_smtp_action]" => "Queue message" } } + } else { + mutate { id => "mutate_add_field_zeek_smtp_action_connect_reply" + add_field => { "[@metadata][zeek_smtp_action]" => "Connect" } } + } + } else { + mutate { id => "mutate_add_field_zeek_smtp_action_connect_no_reply" + add_field => { "[@metadata][zeek_smtp_action]" => "Connect" } } + } + if ([@metadata][zeek_smtp_action]) { + mutate { id => "mutate_merge_zeek_smtp_action" + merge => { "[zeek][action]" => "[@metadata][zeek_smtp_action]" } } + } + } + + if ([zeek_socks]) { + # socks action is "Authenticate" or "Connect" based on user/password or not + if ([zeek_socks][user]) or ([zeek_socks][password]) { + mutate { id => "mutate_add_field_zeek_socks_action_authenticate" + add_field => { "[@metadata][zeek_socks_action]" => "Authenticate" } } + } else { + mutate { id => "mutate_add_field_zeek_socks_action_connect" + add_field => { "[@metadata][zeek_socks_action]" => "Connect" } } + } + if ([@metadata][zeek_socks_action]) { + mutate { id => "mutate_merge_zeek_socks_action" + merge => { "[zeek][action]" => "[@metadata][zeek_socks_action]" } } + } + } + + if ([zeek_smb_cmd]) { + ruby { + # action = command:sub_command + id => "ruby_zeek_smb_cmd_generate_action" + code => " + cmd = event.get('[zeek_smb_cmd][command]') + subCmd = event.get('[zeek_smb_cmd][sub_command]') + actions = Array.new unless (actions = event.get('[zeek][action]')) + actions.append((cmd =~ /^\s*transaction\d*\s*$/i) ? subCmd : [cmd, subCmd].compact.join(':')) + event.set('[zeek][action]', actions)" + } + } + + if ([zeek_smb_files][action]) { mutate { id => "mutate_merge_normalize_zeek_smb_files_action" + merge => { "[zeek][action]" => "[zeek_smb_files][action]" } } } + + if ([zeek_smtp][method]) { mutate { id => "mutate_merge_normalize_zeek_smtp_method" + merge => { "[zeek][action]" => "[zeek_smtp][method]" } } } + + if ([zeek_snmp]) { + # action based on > 0 values for variou get/set PDUs + if ([zeek_snmp][get_bulk_requests]) and ([zeek_snmp][get_bulk_requests] != "0") { + mutate { id => "mutate_add_field_zeek_snmp_get_bulk_requests_action" + add_field => { "[@metadata][snmp_get_bulk_requests_action]" => "GetBulkRequest" } } + mutate { id => "mutate_merge_zeek_snmp_action_get_bulk_requests" + merge => { "[zeek][action]" => "[@metadata][snmp_get_bulk_requests_action]" } } + } + if ([zeek_snmp][get_requests]) and ([zeek_snmp][get_requests] != "0") { + mutate { id => "mutate_add_field_zeek_snmp_get_requests_action" + add_field => { "[@metadata][snmp_get_requests_action]" => "GetRequest" } } + mutate { id => "mutate_merge_zeek_snmp_action_get_requests" + merge => { "[zeek][action]" => "[@metadata][snmp_get_requests_action]" } } + } + if ([zeek_snmp][get_responses]) and ([zeek_snmp][get_responses] != "0") { + mutate { id => "mutate_add_field_zeek_snmp_get_responses_action" + add_field => { "[@metadata][snmp_get_responses_action]" => "GetResponse" } } + mutate { id => "mutate_merge_zeek_snmp_action_get_responses" + merge => { "[zeek][action]" => "[@metadata][snmp_get_responses_action]" } } + } + if ([zeek_snmp][set_requests]) and ([zeek_snmp][set_requests] != "0") { + mutate { id => "mutate_add_field_zeek_snmp_set_requests_action" + add_field => { "[@metadata][snmp_set_requests_action]" => "SetRequest" } } + mutate { id => "mutate_merge_zeek_snmp_action_set_requests" + merge => { "[zeek][action]" => "[@metadata][snmp_set_requests_action]" } } + } + } + + if ([zeek_ssh]) { + # ssh action is "Authenticate" or "Connect" based on auth_attempts + if ([zeek_ssh][auth_attempts]) { + mutate { id => "mutate_add_field_zeek_ssh_action_authenticate" + add_field => { "[@metadata][zeek_ssh_action]" => "Authenticate" } } + } else { + mutate { id => "mutate_add_field_zeek_ssh_action_connect" + add_field => { "[@metadata][zeek_ssh_action]" => "Connect" } } + } + if ([@metadata][zeek_ssh_action]) { + mutate { id => "mutate_merge_zeek_ssh_action" + merge => { "[zeek][action]" => "[@metadata][zeek_ssh_action]" } } + } + } + + if ([zeek_ssl]) { + # SSL action will be either "connect", "validate", "resume" + if ([zeek_ssl][resumed] == "T") { + mutate { id => "mutate_add_field_zeek_ssl_resume" + add_field => { "[@metadata][zeek_ssl_action]" => "Resume" } } + } else if ([zeek_ssl][established] != "T") and ([zeek_ssl][validation_status]) and ([zeek_ssl][validation_status] != "ok") { + mutate { id => "mutate_add_field_zeek_ssl_validate" + add_field => { "[@metadata][zeek_ssl_action]" => "Validate Certificate" } } + } else { + mutate { id => "mutate_add_field_zeek_ssl_connect" + add_field => { "[@metadata][zeek_ssl_action]" => "Connect" } } + } + mutate { id => "mutate_merge_zeek_ssl_action" + merge => { "[zeek][action]" => "[@metadata][zeek_ssl_action]" } } + } + + if ([zeek_tds][command]) { mutate { id => "mutate_merge_normalize_zeek_tds_command" + merge => { "[zeek][action]" => "[zeek_tds][command]" } } } + + if ([zeek_tds_rpc][procedure_name]) { + mutate { id => "mutate_add_field_zeek_tds_rpc_procedure_name_tmp" + add_field => { "[@metadata][zeek_tds_rpc_procedure_name_tmp]" => "%{[zeek_tds_rpc][procedure_name]}" } } + + # remove everything after the first $ + mutate { id => "mutate_gsub_field_zeek_tds_rpc_procedure_name_tmp" + gsub => [ "[@metadata][zeek_tds_rpc_procedure_name_tmp]", "\$.*", "" ] } + + mutate { id => "mutate_merge_normalize_zeek_tds_rpc_procedure_name" + merge => { "[zeek][action]" => "[@metadata][zeek_tds_rpc_procedure_name_tmp]" } } + } + + if ([zeek_tftp][wrq]) { + if ([zeek_tftp][wrq] == "T") { + mutate { id => "mutate_add_field_zeek_tftp_wrq" + add_field => { "[@metadata][zeek_tftp_action]" => "Write" } } + } else { + mutate { id => "mutate_add_field_zeek_tftp_connect" + add_field => { "[@metadata][zeek_tftp_action]" => "Read" } } + } + mutate { id => "mutate_merge_zeek_tftp_action" + merge => { "[zeek][action]" => "[@metadata][zeek_tftp_action]" } } + } + + if ([zeek_tunnel][action]) { mutate { id => "mutate_merge_normalize_zeek_tunnel_action" + merge => { "[zeek][action]" => "[zeek_tunnel][action]" } } } + + # Result ############################################################################################################ + # collect all result/status/response/errors under the parent [zeek][result] array + + if ([zeek_bacnet]) { + if ([zeek_bacnet][result_code]) { + mutate { id => "mutate_merge_normalize_zeek_bacnet_result_code" + merge => { "[zeek][result]" => "[zeek_bacnet][result_code]" } } + } else if ([zeek_bacnet][pdu_service]) { + mutate { id => "mutate_add_field_zeek_bacnet_success" + add_field => { "[@metadata][zeek_bacnet_result]" => "Success" } } + mutate { id => "mutate_merge_field_zeek_bacnet_success" + merge => { "[zeek][result]" => "[@metadata][zeek_bacnet_result]" } } + } + } + + if ([zeek_cip][cip_status]) { mutate { id => "mutate_merge_normalize_zeek_cip_status_result" + merge => { "[zeek][result]" => "[zeek_cip][cip_status]" } } } + + if ([zeek_dhcp]) { + # dhcp server_message and client_message populate result, as do ACK and NAK message types + if ([zeek_dhcp][server_message]) { mutate { id => "mutate_merge_normalize_zeek_dhcp_server_message" + merge => { "[zeek][result]" => "[zeek_dhcp][server_message]" } } } + if ([zeek_dhcp][client_message]) { mutate { id => "mutate_merge_normalize_zeek_dhcp_client_message" + merge => { "[zeek][result]" => "[zeek_dhcp][client_message]" } } } + if ("ACK" in [zeek_dhcp][msg_types]) { + mutate { id => "mutate_add_field_zeek_dhcp_ack_result" + add_field => { "[@metadata][zeek_dhcp_result]" => "Success" } } + } else if ("NAK" in [zeek_dhcp][msg_types]) { + mutate { id => "mutate_add_field_zeek_dhcp_nak_result" + add_field => { "[@metadata][zeek_dhcp_result]" => "Failure" } } + } + if ([@metadata][zeek_dhcp_result]) { + mutate { id => "mutate_merge_zeek_dhcp_result" + merge => { "[zeek][result]" => "[@metadata][zeek_dhcp_result]" } } + } + } + + # dnp3: fc_reply and iin_flags + if ([zeek_dnp3][fc_reply]) { mutate { id => "mutate_merge_zeek_dnp3_fc_reply" + merge => { "[zeek][result]" => "[zeek_dnp3][fc_reply]" } } } + if ([zeek_dnp3][iin_flags]) { mutate { id => "mutate_merge_zeek_dnp3_iin_flags" + merge => { "[zeek][result]" => "[zeek_dnp3][iin_flags]" } } } + + # dnp3_control.status_code + if ([zeek_dnp3_control][status_code]) { mutate { id => "mutate_merge_zeek_dnp3_control_status_code" + merge => { "[zeek][result]" => "[zeek_dnp3_control][status_code]" } } } + + if ([zeek_dns]) { + # DNS result is populated by rcode_name (with NOERROR being translated to Success), and rejected + if ([zeek_dns][rcode_name]) { + if ([zeek_dns][rcode_name] == 'NOERROR') { + mutate { id => "mutate_add_field_zeek_dns_noerror" + add_field => { "[@metadata][zeek_dns_result]" => "Success" } } + mutate { id => "mutate_merge_field_zeek_dns_noerror" + merge => { "[zeek][result]" => "[@metadata][zeek_dns_result]" } } + } else { + mutate { id => "mutate_merge_normalize_zeek_dns_rcode_name" + merge => { "[zeek][result]" => "[zeek_dns][rcode_name]" } } + } + } + if ([zeek_dns][rejected] == 'T') { + mutate { id => "mutate_add_field_zeek_dns_rejected" + add_field => { "[@metadata][zeek_dns_rejected_result]" => "Rejected" } } + mutate { id => "mutate_merge_field_zeek_dns_rejected" + merge => { "[zeek][result]" => "[@metadata][zeek_dns_rejected_result]" } } + } + } + + # TODO: convert zeek_ecat_foe_info.error_code and zeek_ecat_soe_info.error to strings? + # zeek_ecat_foe_info.error_code and zeek_ecat_soe_info.error + if ([zeek_ecat_foe_info][error_code]) { mutate { id => "mutate_merge_normalize_zeek_ecat_foe_info_error_code" + merge => { "[zeek][result]" => "[zeek_ecat_foe_info][error_code]" } } } + if ([zeek_ecat_soe_info][error]) { mutate { id => "mutate_merge_normalize_zeek_ecat_soe_info_error" + merge => { "[zeek][result]" => "[zeek_ecat_soe_info][error]" } } } + + # zeek_enip.enip_status + if ([zeek_enip][enip_status]) { mutate { id => "mutate_merge_normalize_zeek_enip_enip_status" + merge => { "[zeek][result]" => "[zeek_enip][enip_status]" } } } + + if ([zeek_ftp][reply_code]) { + # normalized version of reply code (reply_msg is too unpredictable) + translate { + id => "translate_zeek_ftp_reply_code" + field => "[zeek_ftp][reply_code]" + destination => "[@metadata][zeek_ftp_mapped_result]" + dictionary_path => "/etc/ftp_result_codes.yaml" + } + if ([@metadata][zeek_ftp_mapped_result]) { + mutate { id => "mutate_merge_zeek_ftp_mapped_result" + merge => { "[zeek][result]" => "[@metadata][zeek_ftp_mapped_result]" } } + } else if ([zeek_ftp][reply_msg]) { + mutate { id => "mutate_merge_zeek_ftp_reply_msg_result" + merge => { "[zeek][result]" => "[zeek_ftp][reply_msg]" } } + } else { + mutate { id => "mutate_merge_zeek_ftp_reply_code_result" + merge => { "[zeek][result]" => "[zeek_ftp][reply_code]" } } + } + } + + if ([zeek_http][status_code]) { + # normalized version of http reply code (status_msg is too unpredictable) + translate { + id => "translate_zeek_http_reply_code" + field => "[zeek_http][status_code]" + destination => "[@metadata][zeek_http_mapped_result]" + dictionary_path => "/etc/http_result_codes.yaml" + } + if ([@metadata][zeek_http_mapped_result]) { + mutate { id => "mutate_merge_zeek_http_mapped_result" + merge => { "[zeek][result]" => "[@metadata][zeek_http_mapped_result]" } } + } else if ([zeek_http][status_msg]) { + mutate { id => "mutate_merge_zeek_http_status_msg_result" + merge => { "[zeek][result]" => "[zeek_http][status_msg]" } } + } else { + mutate { id => "mutate_merge_zeek_http_status_code_result" + merge => { "[zeek][result]" => "[zeek_http][status_code]" } } + } + } + + if ([zeek_kerberos]) { + # result populated from success and error_msg + if ([zeek_kerberos][success] == 'T') { + mutate { id => "mutate_add_field_zeek_zeek_kerberos_success" + add_field => { "[@metadata][zeek_kerberos_result]" => "Success" } } + } else if ([zeek_kerberos][error_msg]) { + mutate { id => "mutate_add_field_zeek_zeek_kerberos_error_msg" + add_field => { "[@metadata][zeek_kerberos_result]" => "%{[zeek_kerberos][error_msg]}" } } + } else { + mutate { id => "mutate_add_field_zeek_zeek_kerberos_failure" + add_field => { "[@metadata][zeek_kerberos_result]" => "Failure" } } + } + mutate { id => "mutate_merge_zeek_kerberos_result" + merge => { "[zeek][result]" => "[@metadata][zeek_kerberos_result]" } } + } + + # (zeek_ldap|zeek_ldap_search).(result_code) + if ([zeek_ldap][result_code]) { mutate { id => "mutate_merge_normalize_zeek_ldap_result_code" + merge => { "[zeek][result]" => "[zeek_ldap][result_code]" } } } + if ([zeek_ldap_search][result_code]) { mutate { id => "mutate_merge_normalize_zeek_ldap_search_result_code" + merge => { "[zeek][result]" => "[zeek_ldap_search][result_code]" } } } + + if ([zeek_modbus]) { + # result comes from exception, but if exception is missing and we have a func, then assume success + if ([zeek_modbus][exception]) { + mutate { id => "mutate_merge_normalize_zeek_modbus_exception" + merge => { "[zeek][result]" => "[zeek_modbus][exception]" } } + } else if ([zeek_modbus][func]) { + mutate { id => "mutate_add_field_zeek_modbus_success" + add_field => { "[@metadata][zeek_modbus_result]" => "Success" } } + mutate { id => "mutate_merge_field_zeek_modbus_success" + merge => { "[zeek][result]" => "[@metadata][zeek_modbus_result]" } } + } + } + + # result for zeek_mqtt_connect: connect_status.'Connection Accepted' -> 'Success', else connect_status + if ([zeek_mqtt_connect][connect_status] == 'Connection Accepted') { + mutate { id => "mutate_add_field_zeek_mqtt_connect_success" + add_field => { "[@metadata][zeek_mqtt_connect_success]" => "Success" } } + mutate { id => "mutate_merge_field_zeek_mqtt_connect_success" + merge => { "[zeek][result]" => "[@metadata][zeek_mqtt_connect_success]" } } + } else if ([zeek_mqtt_connect][connect_status]) { + mutate { id => "mutate_merge_zeek_mqtt_connect_connect_status" + merge => { "[zeek][result]" => "[zeek_mqtt_connect][connect_status]" } } + } + + # result for zeek_mqtt_publish: status.'ok' -> 'Success', else status + if ([zeek_mqtt_publish][status] == 'ok') { + mutate { id => "mutate_add_field_zeek_mqtt_publish_success" + add_field => { "[@metadata][zeek_mqtt_publish_success]" => "Success" } } + mutate { id => "mutate_merge_field_zeek_mqtt_publish_success" + merge => { "[zeek][result]" => "[@metadata][zeek_mqtt_publish_success]" } } + } else if ([zeek_mqtt_publish][status]) { + mutate { id => "mutate_merge_zeek_mqtt_publish_publish_status" + merge => { "[zeek][result]" => "[zeek_mqtt_publish][status]" } } + } + + # zeek_mqtt_subscribe.ack.'T' -> 'Acknowledged' + if ([zeek_mqtt_subscribe][ack] == 'T') { + mutate { id => "mutate_add_field_zeek_mqtt_subscribe_ack" + add_field => { "[@metadata][zeek_mqtt_subscribe_acknowledged]" => "Acknowledged" } } + mutate { id => "mutate_merge_field_zeek_mqtt_subscribe_ack" + merge => { "[zeek][result]" => "[@metadata][zeek_mqtt_subscribe_acknowledged]" } } + } + + if ([zeek_mysql]) { + # mysql result comes from success and response + if ([zeek_mysql][success] == "T") { + mutate { id => "mutate_add_field_zeek_mysql_success" + add_field => { "[@metadata][zeek_mysql_result]" => "Success" } } + } else if ([zeek_mysql][response] =~ /^Access denied/) { + mutate { id => "mutate_add_field_zeek_mysql_access" + add_field => { "[@metadata][zeek_mysql_result]" => "Access denied" } } + } else { + mutate { id => "mutate_add_field_zeek_mysql_failure" + add_field => { "[@metadata][zeek_mysql_result]" => "Failure" } } + } + mutate { id => "mutate_merge_zeek_mysql_result" + merge => { "[zeek][result]" => "[@metadata][zeek_mysql_result]" } } + } + + if ([zeek_ntlm]) { + # ntlm result comes from .success + if ([zeek_ntlm][success] == "T") { + mutate { id => "mutate_add_field_zeek_ntlm_success" + add_field => { "[@metadata][zeek_ntlm_result]" => "Success" } } + } else { + mutate { id => "mutate_add_field_zeek_ntlm_failure" + add_field => { "[@metadata][zeek_ntlm_result]" => "Failure" } } + } + mutate { id => "mutate_merge_zeek_ntlm_result" + merge => { "[zeek][result]" => "[@metadata][zeek_ntlm_result]" } } + } + + if ([zeek_radius][result]) { + if ([zeek_radius][result] =~ /^(?i)succ/) { + mutate { id => "mutate_add_field_zeek_radius_success" + add_field => { "[@metadata][zeek_radius_result]" => "Success" } } + } else if ([zeek_radius][result] =~ /^(?i)fail/) { + mutate { id => "mutate_add_field_zeek_radius_failure" + add_field => { "[@metadata][zeek_radius_result]" => "Failure" } } + } else { + mutate { id => "mutate_add_field_zeek_radius_result_fallback" + add_field => { "[@metadata][zeek_radius_result]" => "%{[zeek_radius][result]}" } } + } + mutate { id => "mutate_merge_zeek_radius_result" + merge => { "[zeek][result]" => "[@metadata][zeek_radius_result]" } } + # if authentication was attempted, also assign an "authenticate" action + mutate { id => "mutate_add_field_zeek_radius_auth_action" + add_field => { "[@metadata][zeek_radius_auth_action]" => "Authenticate" } } + mutate { id => "mutate_merge_zeek_radius_auth_action" + merge => { "[zeek][action]" => "[@metadata][zeek_radius_auth_action]" } } + } + + if ([zeek_rdp][result]) { mutate { id => "mutate_merge_normalize_zeek_rdp_result" + merge => { "[zeek][result]" => "[zeek_rdp][result]" } } } + + if ([zeek_s7comm][parameters][code]) { + # reference: https://github.com/wireshark/wireshark/blob/master/epan/dissectors/packet-s7comm.c + translate { + id => "translate_zeek_s7comm_parameters_code" + field => "[zeek_s7comm][parameters][code]" + destination => "[@metadata][zeek_s7comm_mapped_result]" + dictionary_path => "/etc/s7comm_result_codes.yaml" + fallback => "%{[zeek_s7comm][parameters][code]}" + } + if ([@metadata][zeek_s7comm_mapped_result]) { + mutate { id => "mutate_merge_zeek_s7comm_mapped_result" + merge => { "[zeek][result]" => "[@metadata][zeek_s7comm_mapped_result]" } } + } + } + + if ([zeek_sip][status_code]) { + # normalized version of sip reply code (status_msg may be unpredictable) + translate { + id => "translate_zeek_sip_reply_code" + field => "[zeek_sip][status_code]" + destination => "[@metadata][zeek_sip_mapped_result]" + dictionary_path => "/etc/sip_result_codes.yaml" + } + if ([@metadata][zeek_sip_mapped_result]) { + mutate { id => "mutate_merge_zeek_sip_mapped_result" + merge => { "[zeek][result]" => "[@metadata][zeek_sip_mapped_result]" } } + } else if ([zeek_sip][status_msg]) { + mutate { id => "mutate_merge_zeek_sip_status_msg_result" + merge => { "[zeek][result]" => "[zeek_sip][status_msg]" } } + } else { + mutate { id => "mutate_merge_zeek_sip_status_code_result" + merge => { "[zeek][result]" => "[zeek_sip][status_code]" } } + } + } + + if ([zeek_smb_cmd][status]) { + # zeek_smb_cmd.status (SUCCESS, NO_SUCH_FILE, ACCESS_DENIED, OBJECT_NAME_COLLISION, etc.) + translate { + id => "translate_zeek_smb_cmd_status" + field => "[zeek_smb_cmd][status]" + destination => "[@metadata][zeek_smb_cmd_mapped_result]" + dictionary => { + "SUCCESS" => "Success" + # TODO... normalize other codes? or maybe just case-normalize and remove underscores/dashes? + # e.g., "ACCESS_DENIED".split(/[_-]/).collect(&:capitalize).join(' ') + } + fallback => "%{[zeek_smb_cmd][status]}" + } + if ([@metadata][zeek_smb_cmd_mapped_result]) { + mutate { id => "mutate_merge_zeek_smb_cmd_mapped_result" + merge => { "[zeek][result]" => "[@metadata][zeek_smb_cmd_mapped_result]" } } + } + } + + if ([zeek_smtp]) { + if ([zeek_smtp][last_reply_code]) { + # normalized version of smtp reply code (last_reply may be unpredictable) + translate { + id => "translate_zeek_smtp_last_reply_code" + field => "[zeek_smtp][last_reply_code]" + destination => "[@metadata][zeek_smtp_mapped_result]" + dictionary_path => "/etc/smtp_result_codes.yaml" + } + } + if ([@metadata][zeek_smtp_mapped_result]) { + mutate { id => "mutate_merge_zeek_smtp_mapped_result" + merge => { "[zeek][result]" => "[@metadata][zeek_smtp_mapped_result]" } } + } else if ([zeek_smtp][last_reply]) { + mutate { id => "mutate_merge_zeek_smtp_last_reply_result" + merge => { "[zeek][result]" => "[zeek_smtp][last_reply]" } } + } + } + + if ([zeek_socks][server_status]) { + translate { + id => "translate_zeek_socks_server_status" + field => "[zeek_socks][server_status]" + destination => "[@metadata][zeek_socks_mapped_result]" + dictionary => { + "succeeded" => "Success" + # TODO... normalize other codes (figure out what they are) + } + } + if ([@metadata][zeek_socks_mapped_result]) { + mutate { id => "mutate_merge_zeek_socks_mapped_result" + merge => { "[zeek][result]" => "[@metadata][zeek_socks_mapped_result]" } } + } else if ([zeek_socks][server_status]) { + mutate { id => "mutate_merge_zeek_socks_server_status_result" + merge => { "[zeek][result]" => "[zeek_socks][server_status]" } } + } + } + + if ([zeek_ssh][auth_success]) { + translate { + id => "translate_zeek_ssh_auth_success" + field => "[zeek_ssh][auth_success]" + destination => "[@metadata][zeek_ssh_mapped_result]" + dictionary => { + "T" => "Success" + "F" => "Failure" + } + } + if ([@metadata][zeek_ssh_mapped_result]) { + mutate { id => "mutate_merge_zeek_ssh_mapped_result" + merge => { "[zeek][result]" => "[@metadata][zeek_ssh_mapped_result]" } } + } + } + + if ([zeek_ssl]) { + if ([zeek_ssl][established] == "T") { + mutate { id => "mutate_add_field_zeek_ssl_result_success" + add_field => { "[@metadata][zeek_ssl_mapped_success_result]" => "Success" } } + } else if (![zeek_ssl][last_alert]) { + mutate { id => "mutate_add_field_zeek_ssl_result_failure" + add_field => { "[@metadata][zeek_ssl_mapped_success_result]" => "Failure" } } + } + if ([@metadata][zeek_ssl_mapped_success_result]) { + mutate { id => "mutate_merge_zeek_ssl_mapped_success_result" + merge => { "[zeek][result]" => "[@metadata][zeek_ssl_mapped_success_result]" } } + } + if ([zeek_ssl][last_alert]) { + mutate { id => "mutate_merge_field_zeek_ssl_result_last_alert" + merge => { "[zeek][result]" => "[zeek_ssl][last_alert]" } } + } + if ([zeek_ssl][validation_status]) and ([zeek_ssl][validation_status] != 'ok') { + mutate { id => "mutate_merge_field_zeek_ssl_result_validation_status" + merge => { "[zeek][result]" => "[zeek_ssl][validation_status]" } } + } + } + + if ([zeek_tftp]) { + + if (![zeek_tftp][error_code]) and (![zeek_tftp][error_msg]) { + # no error, set as "success" + mutate { id => "mutate_add_field_zeek_tftp_result_success" + add_field => { "[@metadata][zeek_tftp_result_success]" => "Success" } } + mutate { id => "mutate_merge_zeek_tftp_result_success" + merge => { "[zeek][result]" => "[@metadata][zeek_tftp_result_success]" } } + + } else { + # normalized version of reply code + translate { + id => "translate_zeek_tftp_error_code" + field => "[zeek_tftp][error_code]" + destination => "[@metadata][zeek_tftp_mapped_result]" + dictionary_path => "/etc/tftp_result_codes.yaml" + } + if ([@metadata][zeek_tftp_mapped_result]) { + mutate { id => "mutate_merge_zeek_tftp_mapped_result" + merge => { "[zeek][result]" => "[@metadata][zeek_tftp_mapped_result]" } } + } else if ([zeek_tftp][error_msg]) { + mutate { id => "mutate_merge_zeek_tftp_error_msg_result" + merge => { "[zeek][result]" => "[zeek_tftp][error_msg]" } } + } else { + mutate { id => "mutate_merge_zeek_tftp_error_code_result" + merge => { "[zeek][result]" => "[zeek_tftp][error_code]" } } + } + } + } + + ##################################################################################################################### + # remove any duplicates from action and result + if ([zeek][action]) { + ruby { + id => "ruby_zeek_action_uniq" + code => "event.set('[zeek][action]', event.get('[zeek][action]').uniq)" + } + } + + if ([zeek][result]) { + ruby { + id => "ruby_zeek_result_uniq" + code => "event.set('[zeek][result]', event.get('[zeek][result]').uniq)" + } + } + + # FUIDs ############################################################################################################# + # collect all other FUIDs under parent [zeek][fuid] array (some were already done at the root level in + # the "rename" in 11_zeek_logs.conf) + + if ([zeek_files][parent_fuid]) { mutate { id => "mutate_merge_normalize_zeek_files_parent_fuid" + merge => { "[zeek][fuid]" => "[zeek_files][parent_fuid]" } } } + + if ([zeek_http][orig_fuids]) { mutate { id => "mutate_merge_normalize_zeek_http_orig_fuids" + merge => { "[zeek][fuid]" => "[zeek_http][orig_fuids]" } } } + + if ([zeek_http][resp_fuids]) { mutate { id => "mutate_merge_normalize_zeek_http_resp_fuids" + merge => { "[zeek][fuid]" => "[zeek_http][resp_fuids]" } } } + + if ([zeek_kerberos][client_cert_fuid]) { mutate { id => "mutate_merge_normalize_zeek_kerberos_client_cert_fuid" + merge => { "[zeek][fuid]" => "[zeek_kerberos][client_cert_fuid]" } } } + + if ([zeek_kerberos][server_cert_fuid]) { mutate { id => "mutate_merge_normalize_zeek_kerberos_server_cert_fuid" + merge => { "[zeek][fuid]" => "[zeek_kerberos][server_cert_fuid]" } } } + + if ([zeek_ssl][cert_chain_fuids]) { mutate { id => "mutate_merge_normalize_zeek_ssl_cert_chain_fuids" + merge => { "[zeek][fuid]" => "[zeek_ssl][cert_chain_fuids]" } } } + + if ([zeek_ssl][client_cert_chain_fuids]) { mutate { id => "mutate_merge_normalize_zeek_ssl_client_cert_chain_fuids" + merge => { "[zeek][fuid]" => "[zeek_ssl][client_cert_chain_fuids]" } } } + + if ([zeek][fuid]) { + ruby { + id => "ruby_zeek_fuid_uniq" + code => "event.set('[zeek][fuid]', event.get('[zeek][fuid]').uniq)" + } + } + + # File/MIME types ################################################################################################### + # collect all file/MIME types under the parent [zeek][filetype] array + + if ([zeek_files][mime_type]) { mutate { id => "mutate_merge_normalize_zeek_files_mime_type" + merge => { "[zeek][filetype]" => "[zeek_files][mime_type]" } } } + + if ([zeek_ftp][mime_type]) { mutate { id => "mutate_merge_normalize_zeek_ftp_mime_type" + merge => { "[zeek][filetype]" => "[zeek_ftp][mime_type]" } } } + + if ([zeek_http][orig_mime_types]) { mutate { id => "mutate_merge_normalize_zeek_http_orig_mime_types" + merge => { "[zeek][filetype]" => "[zeek_http][orig_mime_types]" } } } + + if ([zeek_http][resp_mime_types]) { mutate { id => "mutate_merge_normalize_zeek_http_resp_mime_types" + merge => { "[zeek][filetype]" => "[zeek_http][resp_mime_types]" } } } + + if ([zeek_irc][dcc_mime_type]) { mutate { id => "mutate_merge_normalize_zeek_irc_dcc_mime_type" + merge => { "[zeek][filetype]" => "[zeek_irc][dcc_mime_type]" } } } + + if ([zeek_intel][file_mime_type]) { mutate { id => "mutate_merge_normalize_zeek_intel_file_mime_type" + merge => { "[zeek][filetype]" => "[zeek_intel][file_mime_type]" } } } + + if ([zeek_notice][file_mime_type]) { mutate { id => "mutate_merge_normalize_zeek_notice_file_mime_type" + merge => { "[zeek][filetype]" => "[zeek_notice][file_mime_type]" } } } + + if ([zeek_sip][content_type]) { mutate { id => "mutate_merge_normalize_zeek_sip_content_type" + merge => { "[zeek][filetype]" => "[zeek_sip][content_type]" } } } + + if ([zeek][filetype]) { + ruby { + id => "ruby_zeek_filetype_uniq" + code => "event.set('[zeek][filetype]', event.get('[zeek][filetype]').uniq)" + } + } + + # Filenames ######################################################################################################### + # collect all filenames under the parent [zeek][filename] array + + if ([zeek_ecat_foe_info][filename]) { mutate { id => "mutate_merge_normalize_zeek_ecat_foe_info_filename" + merge => { "[zeek][filename]" => "[zeek_ecat_foe_info][filename]" } } } + + if ([zeek_files][filename]) { mutate { id => "mutate_merge_normalize_zeek_files_filename" + merge => { "[zeek][filename]" => "[zeek_files][filename]" } } } + + if ([zeek_files][extracted]) { mutate { id => "mutate_merge_normalize_zeek_files_extracted" + merge => { "[zeek][filename]" => "[zeek_files][extracted]" } } } + + if ([zeek_http][orig_filenames]) { mutate { id => "mutate_merge_normalize_zeek_http_orig_filenames" + merge => { "[zeek][filename]" => "[zeek_http][orig_filenames]" } } } + + if ([zeek_http][resp_filenames]) { mutate { id => "mutate_merge_normalize_zeek_http_resp_filenames" + merge => { "[zeek][filename]" => "[zeek_http][resp_filenames]" } } } + + if ([zeek_irc][dcc_file_name]) { mutate { id => "mutate_merge_normalize_zeek_irc_dcc_file_name" + merge => { "[zeek][filename]" => "[zeek_irc][dcc_file_name]" } } } + + if ([zeek_smb_files][name]) { mutate { id => "mutate_merge_normalize_zeek_smb_files_name" + merge => { "[zeek][filename]" => "[zeek_smb_files][name]" } } } + + if ([zeek_smb_files][prev_name]) { mutate { id => "mutate_merge_normalize_zeek_smb_files_prev_name" + merge => { "[zeek][filename]" => "[zeek_smb_files][prev_name]" } } } + + if ([zeek_tftp][fname]) { mutate { id => "mutate_merge_normalize_zeek_tftp_fname" + merge => { "[zeek][filename]" => "[zeek_tftp][fname]" } } } + + if ([zeek][filename]) { + ruby { + id => "ruby_zeek_filename_uniq" + code => "event.set('[zeek][filename]', event.get('[zeek][filename]').uniq)" + } + } + +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/pipelines/zeek/13_zeek_convert.conf b/Vagrant/resources/malcolm/logstash/pipelines/zeek/13_zeek_convert.conf new file mode 100644 index 0000000..d8262fb --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/zeek/13_zeek_convert.conf @@ -0,0 +1,299 @@ +filter { + + # set data types for fields that belong to various zeek logs + + # todo + # "[zeek_ecat_dev_info][fmmucnt]" => "integer" + # "[zeek_ecat_dev_info][smcount]" => "integer" + + mutate { + id => "mutate_convert_zeek_bulk" + convert => { + "[zeek_bacnet][invoke_id]" => "integer" + "[zeek_bacnet_discovery][instance_number]" => "integer" + "[zeek_bacnet_discovery][range_low]" => "integer" + "[zeek_bacnet_discovery][range_high]" => "integer" + "[zeek_bacnet_property][instance_number]" => "integer" + "[zeek_bacnet_property][array_index]" => "integer" + "[zeek_bsap_ip_header][type_name]" => "integer" + "[zeek_bsap_ip_rdb][data_len]" => "integer" + "[zeek_bsap_ip_rdb][header_size]" => "integer" + "[zeek_bsap_ip_rdb][mes_seq]" => "integer" + "[zeek_bsap_ip_rdb][node_status]" => "integer" + "[zeek_bsap_ip_rdb][res_seq]" => "integer" + "[zeek_bsap_ip_rdb][sequence]" => "integer" + "[zeek_bsap_serial_header][ctl]" => "integer" + "[zeek_bsap_serial_header][dadd]" => "integer" + "[zeek_bsap_serial_header][nsb]" => "integer" + "[zeek_bsap_serial_header][sadd]" => "integer" + "[zeek_bsap_serial_header][seq]" => "integer" + "[zeek_bsap_serial_rdb_ext][nsb]" => "integer" + "[zeek_bsap_serial_rdb_ext][seq]" => "integer" + "[zeek_cip][cip_sequence_count]" => "integer" + "[zeek_cip_identity][device_type_id]" => "integer" + "[zeek_cip_identity][encapsulation_version]" => "integer" + "[zeek_cip_identity][product_code]" => "integer" + "[zeek_cip_identity][socket_port]" => "integer" + "[zeek_cip_identity][vendor_id]" => "integer" + "[zeek_cip_io][data_length]" => "integer" + "[zeek_cip_io][sequence_number]" => "integer" + "[zeek_conn][duration]" => "float" + "[zeek_dce_rpc][rtt]" => "float" + "[zeek_dhcp][duration]" => "float" + "[zeek_dnp3_control][index_number]" => "integer" + "[zeek_dnp3_control][execute_count]" => "integer" + "[zeek_dnp3_control][on_time]" => "integer" + "[zeek_dnp3_control][off_time]" => "integer" + "[zeek_dnp3_objects][object_count]" => "integer" + "[zeek_dnp3_objects][range_high]" => "integer" + "[zeek_dnp3_objects][range_low]" => "integer" + "[zeek_dns][rtt]" => "float" + "[zeek_ecat_log_address][length]" => "integer" + "[zeek_enip][length]" => "integer" + "[zeek_ipsec][maj_ver]" => "integer" + "[zeek_ipsec][min_ver]" => "integer" + "[zeek_ipsec][exchange_type]" => "integer" + "[zeek_ipsec][ke_dh_groups]" => "integer" + "[zeek_ipsec][proposals]" => "integer" + "[zeek_ipsec][length]" => "integer" + "[zeek_ldap][version]" => "integer" + "[zeek_ldap_search][result_count]" => "integer" + "[zeek_modbus_detailed][unit_id]" => "integer" + "[zeek_modbus_detailed][address]" => "integer" + "[zeek_modbus_detailed][quantity]" => "integer" + "[zeek_modbus_mask_write_register][unit_id]" => "integer" + "[zeek_modbus_mask_write_register][address]" => "integer" + "[zeek_modbus_mask_write_register][and_mask]" => "integer" + "[zeek_modbus_mask_write_register][or_mask]" => "integer" + "[zeek_modbus_read_write_multiple_registers][unit_id]" => "integer" + "[zeek_modbus_read_write_multiple_registers][write_start_address]" => "integer" + "[zeek_modbus_read_write_multiple_registers][read_start_address]" => "integer" + "[zeek_modbus_read_write_multiple_registers][read_quantity]" => "integer" + "[zeek_modbus_register][delta]" => "float" + "[zeek_modbus_register][new_val]" => "integer" + "[zeek_modbus_register][old_val]" => "integer" + "[zeek_modbus_register][register]" => "integer" + "[zeek_mqtt_publish][payload_len]" => "integer" + "[zeek_mqtt_subscribe][granted_qos_level]" => "integer" + "[zeek_mqtt_subscribe][qos_levels]" => "integer" + "[zeek_ntp][num_exts]" => "integer" + "[zeek_ntp][poll]" => "float" + "[zeek_ntp][precision]" => "float" + "[zeek_ntp][root_delay]" => "float" + "[zeek_ntp][root_disp]" => "float" + "[zeek_ntp][version]" => "integer" + "[zeek_s7comm][item_count]" => "integer" + "[zeek_signatures][host_count]" => "integer" + "[zeek_signatures][signature_count]" => "integer" + "[zeek_smb_cmd][rtt]" => "float" + "[zeek_smb_files][data_len_req]" => "integer" + "[zeek_smb_files][data_len_rsp]" => "integer" + "[zeek_smb_files][data_offset_req]" => "integer" + "[zeek_tftp][size]" => "integer" + "[zeek_tftp][block_sent]" => "integer" + "[zeek_tftp][block_acked]" => "integer" + "[zeek_tftp][error_code]" => "integer" + "[zeek_wireguard][sender_index]" => "integer" + "[zeek_wireguard][receiver_index]" => "integer" + } + } + + # convert all zeek "time" types (minus zeek.ts, which was done earlier) + # https://docs.zeek.org/en/current/script-reference/types.html#type-time + + if ([zeek_kerberos][from]) { + if ([zeek_kerberos][from] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_kerberos_from_zero" + remove_field => [ "[zeek_kerberos][from]" ] } + } else { + date { + id => "date_zeek_kerberos_from" + match => [ "[zeek_kerberos][from]", "UNIX" ] + target => "[zeek_kerberos][from]" + } + } + } + + if ([zeek_kerberos][till]) { + if ([zeek_kerberos][till] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_kerberos_till_zero" + remove_field => [ "[zeek_kerberos][till]" ] } + } else { + date { + id => "date_zeek_kerberos_till" + match => [ "[zeek_kerberos][till]", "UNIX" ] + target => "[zeek_kerberos][till]" + } + } + } + + if ([zeek_ntp][org_time]) { + if ([zeek_ntp][org_time] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_ntp_org_time_zero" + remove_field => [ "[zeek_ntp][org_time]" ] } + } else { + date { + id => "date_zeek_ntp_org_time" + match => [ "[zeek_ntp][org_time]", "UNIX" ] + target => "[zeek_ntp][org_time]" + } + } + } + + if ([zeek_ntp][rec_time]) { + if ([zeek_ntp][rec_time] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_ntp_rec_time_zero" + remove_field => [ "[zeek_ntp][rec_time]" ] } + } else { + date { + id => "date_zeek_ntp_rec_time" + match => [ "[zeek_ntp][rec_time]", "UNIX" ] + target => "[zeek_ntp][rec_time]" + } + } + } + + if ([zeek_ntp][ref_time]) { + if ([zeek_ntp][ref_time] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_ntp_ref_time_zero" + remove_field => [ "[zeek_ntp][ref_time]" ] } + } else { + date { + id => "date_zeek_ntp_ref_time" + match => [ "[zeek_ntp][ref_time]", "UNIX" ] + target => "[zeek_ntp][ref_time]" + } + } + } + + if ([zeek_ntp][xmt_time]) { + if ([zeek_ntp][xmt_time] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_ntp_xmt_time_zero" + remove_field => [ "[zeek_ntp][xmt_time]" ] } + } else { + date { + id => "date_zeek_ntp_xmt_time" + match => [ "[zeek_ntp][xmt_time]", "UNIX" ] + target => "[zeek_ntp][xmt_time]" + } + } + } + + if ([zeek_pe][compile_ts]) { + if ([zeek_pe][compile_ts] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_pe_compile_ts_zero" + remove_field => [ "[zeek_pe][compile_ts]" ] } + } else { + date { + id => "date_zeek_pe_compile_ts" + match => [ "[zeek_pe][compile_ts]", "UNIX" ] + target => "[zeek_pe][compile_ts]" + } + } + } + + if ([zeek_smb_files][times_accessed]) { + if ([zeek_smb_files][times_accessed] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_smb_files_times_accessed_zero" + remove_field => [ "[zeek_smb_files][times_accessed]" ] } + } else { + date { + id => "date_zeek_smb_files_times_accessed" + match => [ "[zeek_smb_files][times_accessed]", "UNIX" ] + target => "[zeek_smb_files][times_accessed]" + } + } + } + + if ([zeek_smb_files][times_changed]) { + if ([zeek_smb_files][times_changed] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_smb_files_times_changed_zero" + remove_field => [ "[zeek_smb_files][times_changed]" ] } + } else { + date { + id => "date_zeek_smb_files_times_changed" + match => [ "[zeek_smb_files][times_changed]", "UNIX" ] + target => "[zeek_smb_files][times_changed]" + } + } + } + + if ([zeek_smb_files][times_created]) { + if ([zeek_smb_files][times_created] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_smb_files_times_created_zero" + remove_field => [ "[zeek_smb_files][times_created]" ] } + } else { + date { + id => "date_zeek_smb_files_times_created" + match => [ "[zeek_smb_files][times_created]", "UNIX" ] + target => "[zeek_smb_files][times_created]" + } + } + } + + if ([zeek_smb_files][times_modified]) { + if ([zeek_smb_files][times_modified] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_smb_files_times_modified_zero" + remove_field => [ "[zeek_smb_files][times_modified]" ] } + } else { + date { + id => "date_zeek_smb_files_times_modified" + match => [ "[zeek_smb_files][times_modified]", "UNIX" ] + target => "[zeek_smb_files][times_modified]" + } + } + } + + if ([zeek_smb_files][ts]) { + if ([zeek_smb_files][ts] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_smb_files_ts_zero" + remove_field => [ "[zeek_smb_files][ts]" ] } + } else { + date { + id => "date_zeek_smb_files_ts" + match => [ "[zeek_smb_files][ts]", "UNIX" ] + target => "[zeek_smb_files][ts]" + } + } + } + + if ([zeek_snmp][up_since]) { + if ([zeek_snmp][up_since] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_snmp_up_since_zero" + remove_field => [ "[zeek_snmp][up_since]" ] } + } else { + date { + id => "date_zeek_snmp_up_since" + match => [ "[zeek_snmp][up_since]", "UNIX" ] + target => "[zeek_snmp][up_since]" + } + } + } + + if ([zeek_x509][certificate_not_valid_after]) { + if ([zeek_x509][certificate_not_valid_after] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_x509_certificate_not_valid_after_zero" + remove_field => [ "[zeek_x509][certificate_not_valid_after]" ] } + } else { + date { + id => "date_zeek_x509_certificate_not_valid_after" + match => [ "[zeek_x509][certificate_not_valid_after]", "UNIX" ] + target => "[zeek_x509][certificate_not_valid_after]" + } + } + } + + if ([zeek_x509][certificate_not_valid_before]) { + if ([zeek_x509][certificate_not_valid_before] == "0.000000") { + mutate { id => "mutate_remove_field_zeek_x509_certificate_not_valid_before_zero" + remove_field => [ "[zeek_x509][certificate_not_valid_before]" ] } + } else { + date { + id => "date_zeek_x509_certificate_not_valid_before" + match => [ "[zeek_x509][certificate_not_valid_before]", "UNIX" ] + target => "[zeek_x509][certificate_not_valid_before]" + } + } + } + +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/pipelines/zeek/20_zeek_to_ecs.conf b/Vagrant/resources/malcolm/logstash/pipelines/zeek/20_zeek_to_ecs.conf new file mode 100644 index 0000000..22d92fe --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/zeek/20_zeek_to_ecs.conf @@ -0,0 +1,773 @@ +filter { + + # Map zeek fields to ECS where possible (see https://github.com/idaholab/Malcolm/issues/16) + # For now I will add fields rather than rename them. This will preserve backwards compatibility + # but the records will be somewhat bigger. I'll have to address what (if anything) to do with upgrades. + + # + # Some fields (particularly AS and GEO fields) don't exist at this point in the pipeline, as they + # are added during enrichment. In that case, I will make a note of it here and handle it in + # ./pipelines/enrichment/20_enriched_to_ecs.conf: + # + # Autonomous System and Geo are handled after enrichment in 20_enriched_to_ecs.conf + # 🗹 Autonomous System - Fields describing an Autonomous System (Internet routing prefix). - https://www.elastic.co/guide/en/ecs/current/ecs-as.html + # 🗹 Geo - Fields describing a location. - https://www.elastic.co/guide/en/ecs/current/ecs-geo.html + # + # Risk/severity/priority/whatever will be done *after* enrichment based on normalized fields + # - event.severity, event.risk_score and event.risk_score_norm + # + # TODO: certain other fields that I'm already normalizing for moloch could maybe be moved out of + # here into enriched_to_ecs in the enrichment pipeline, but that kind of depends on what things + # look like when we add more data sources in the future, or if moloch tackles ECS, etc. + # + + # for now don't do anything unles an env explicitly enables it + mutate { + id => "mutate_add_field_env_logstash_zeek_to_ecs" + add_field => { "[@metadata][ENV_LOGSTASH_ZEEK_TO_ECS]" => "${LOGSTASH_TO_ECS:false}" } + } + if ([@metadata][ENV_LOGSTASH_ZEEK_TO_ECS] == "true") { + + # I will mark these ☐ off with a 🗹 or 🗷 as I address them or decide they don't need adressing + + # 🗹 Network - Fields describing the communication path over which the event happened. - https://www.elastic.co/guide/en/ecs/current/ecs-network.html + + # network.direction handled during enrichment pipeline + # network.name handled during enrichment pipeline + # network.type handled during enrichment pipeline + # TODO: some of these done here should probably be done after enrichment, too + + # network.application and network.protocol (TODO: what's the difference as far as my logs go) + if ([zeek][service]) { + mutate { id => "mutate_add_field_ecs_network_application" + add_field => { "[network][application]" => "%{[zeek][service]}" } } + mutate { id => "mutate_add_field_ecs_network_protocol" + add_field => { "[network][protocol]" => "%{[zeek][service]}" } } + } + + # network.packets + if ([totPackets]) { mutate { id => "mutate_add_field_ecs_network_packets" + add_field => { "[network][packets]" => "%{[totPackets]}" } } } + + # network.bytes + if ([totBytes]) { mutate { id => "mutate_add_field_ecs_network_bytes" + add_field => { "[network][bytes]" => "%{[totBytes]}" } } } + + # network.community_id + if ([zeek][community_id]) { mutate { id => "mutate_add_field_ecs_network_community_id" + add_field => { "[network][community_id]" => "%{[zeek][community_id]}" } } } + + # network.iana_number + if ([ipProtocol]) { mutate { id => "mutate_add_field_ecs_network_iana_number" + add_field => { "[network][iana_number]" => "%{[ipProtocol]}" } } } + + # network.transport + if ([zeek][proto]) { mutate { id => "mutate_add_field_ecs_network_transport" + add_field => { "[network][transport]" => "%{[zeek][proto]}" } } } + + # 🗹 Client - Fields about the client side of a network connection, used with server. - https://www.elastic.co/guide/en/ecs/current/ecs-client.html + + # client.ip / client.address + if ([zeek][orig_h]) { + mutate { id => "mutate_add_field_ecs_client_address" + add_field => { "[client][address]" => "%{[zeek][orig_h]}" } } + mutate { id => "mutate_add_field_ecs_client_ip" + add_field => { "[client][ip]" => "%{[zeek][orig_h]}" } } + } + + # client.port + if ([zeek][orig_p]) { mutate { id => "mutate_add_field_ecs_client_port_orig_p" + add_field => { "[client][port]" => "%{[zeek][orig_p]}" } } } + + # client.domain + if ([zeek][orig_hostname]) { mutate { id => "mutate_add_field_ecs_client_domain_orig_hostname" + add_field => { "[client][domain]" => "%{[zeek][orig_hostname]}" } } } + else if ([zeek_dhcp][host_name]) { mutate { id => "mutate_add_field_ecs_client_domain_dhcp_host_name" + add_field => { "[client][domain]" => "%{[zeek_dhcp][host_name]}" } } } + else if ([zeek_dhcp][domain]) { mutate { id => "mutate_add_field_ecs_client_domain_dhcp_domain" + add_field => { "[client][domain]" => "%{[zeek_dhcp][domain]}" } } } + else if ([zeek_ntlm][host]) { mutate { id => "mutate_add_field_ecs_client_domain_ntlm_host_name" + add_field => { "[client][domain]" => "%{[zeek_ntlm][host]}" } } } + else if ([zeek_ntlm][domain]) { mutate { id => "mutate_add_field_ecs_client_domain_ntlm_domain" + add_field => { "[client][domain]" => "%{[zeek_ntlm][domain]}" } } } + + # client.mac + if ([zeek][orig_l2_addr]) { mutate { id => "mutate_add_field_ecs_client_mac_orig_l2_addr" + add_field => { "[client][mac]" => "%{[zeek][orig_l2_addr]}" } } } + else if ([zeek_dhcp][mac]) { mutate { id => "mutate_add_field_ecs_client_mac_dhcp_mac" + add_field => { "[client][mac]" => "%{[zeek_dhcp][mac]}" } } } + else if ([zeek_radius][mac]) { mutate { id => "mutate_add_field_ecs_client_mac_radius_mac" + add_field => { "[client][mac]" => "%{[zeek_radius][mac]}" } } } + + # client.bytes + if ([zeek_conn][orig_ip_bytes]) { mutate { id => "mutate_add_field_ecs_client_bytes_conn_orig_ip_bytes" + add_field => { "[client][bytes]" => "%{[zeek_conn][orig_ip_bytes]}" } } } + else if ([zeek_conn][orig_bytes]) { mutate { id => "mutate_add_field_ecs_client_bytes_conn_orig_bytes" + add_field => { "[client][bytes]" => "%{[zeek_conn][orig_bytes]}" } } } + else if ([zeek_http][request_body_len]) { mutate { id => "mutate_add_field_ecs_client_bytes_http_request_body_len" + add_field => { "[client][bytes]" => "%{[zeek_http][request_body_len]}" } } } + else if ([zeek_mqtt_publish][payload_len]) { mutate { id => "mutate_add_field_ecs_client_bytes_mqtt_publish_payload_len" + add_field => { "[client][bytes]" => "%{[zeek_mqtt_publish][payload_len]}" } } } + else if ([zeek_sip][request_body_len]) { mutate { id => "mutate_add_field_ecs_client_bytes_sip_request_body_len" + add_field => { "[client][bytes]" => "%{[zeek_sip][request_body_len]}" } } } + + # client.packets + if ([zeek_conn][orig_pkts]) { mutate { id => "mutate_add_field_ecs_client_packets_conn_orig_pkts" + add_field => { "[client][packets]" => "%{[zeek_conn][orig_pkts]}" } } } + + # 🗹 Server - Fields about the server side of a network connection, used with client. - https://www.elastic.co/guide/en/ecs/current/ecs-server.html + + # server.ip / server.address + if ([zeek][resp_h]) { + mutate { id => "mutate_add_field_ecs_server_address" + add_field => { "[server][address]" => "%{[zeek][resp_h]}" } } + mutate { id => "mutate_add_field_ecs_server_ip" + add_field => { "[server][ip]" => "%{[zeek][resp_h]}" } } + } + + # server.port + if ([zeek][resp_p]) { mutate { id => "mutate_add_field_ecs_server_port_resp_p" + add_field => { "[server][port]" => "%{[zeek][resp_p]}" } } } + + # server.domain + if ([zeek][resp_hostname]) { mutate { id => "mutate_add_field_ecs_server_domain_resp_hostname" + add_field => { "[server][domain]" => "%{[zeek][resp_hostname]}" } } } + + # server.mac + if ([zeek][resp_l2_addr]) { mutate { id => "mutate_add_field_ecs_server_mac_resp_l2_addr" + add_field => { "[server][mac]" => "%{[zeek][resp_l2_addr]}" } } } + + # server.bytes + if ([zeek_conn][resp_ip_bytes]) { mutate { id => "mutate_add_field_ecs_server_bytes_conn_resp_ip_bytes" + add_field => { "[server][bytes]" => "%{[zeek_conn][resp_ip_bytes]}" } } } + else if ([zeek_conn][resp_bytes]) { mutate { id => "mutate_add_field_ecs_server_bytes_conn_resp_bytes" + add_field => { "[server][bytes]" => "%{[zeek_conn][resp_bytes]}" } } } + else if ([zeek_http][response_body_len]) { mutate { id => "mutate_add_field_ecs_server_bytes_http_response_body_len" + add_field => { "[server][bytes]" => "%{[zeek_http][response_body_len]}" } } } + else if ([zeek_sip][response_body_len]) { mutate { id => "mutate_add_field_ecs_server_bytes_sip_response_body_len" + add_field => { "[server][bytes]" => "%{[zeek_sip][response_body_len]}" } } } + + # server.packets + if ([zeek_conn][resp_pkts]) { mutate { id => "mutate_add_field_ecs_server_packets_conn_resp_pkts" + add_field => { "[server][packets]" => "%{[zeek_conn][resp_pkts]}" } } } + + # ☐ Event - Fields breaking down the event details. - https://www.elastic.co/guide/en/ecs/current/ecs-event.html + + # event.action from zeek.action + if ([zeek][action]) { mutate { id => "mutate_add_field_ecs_event_action" + add_field => { "[event][action]" => "%{[zeek][action]}" } } } + + # event.dataset from zeek.logtype + mutate { id => "mutate_add_field_ecs_event_dataset" + add_field => { "[event][dataset]" => "zeek.%{[zeek][logType]}" } } + + # event.duration + if ([zeek_conn][duration]) { + # convert duration (floating-point seconds) to nanoseconds + ruby { + id => "ruby_zeek_duration_to_ecs_event_duration" + code => "event.set('[event][duration]', (1000000000 * event.get('[zeek_conn][duration]').to_f).round(0))" + } + } + + # for event.start/event.end, we'll the moloch firstPacket/lastPacket field as we already did the math + if ([firstPacket]) { mutate { id => "mutate_add_field_ecs_event_start" + add_field => { "[event][start]" => "%{[firstPacket]}" } } } + if ([lastPacket]) { mutate { id => "mutate_add_field_ecs_event_end" + add_field => { "[event][end]" => "%{[lastPacket]}" } } } + + # UIDs and FUIDs constitude unique IDs + if ([zeek][uid]) { mutate { id => "mutate_add_field_ecs_id_uid" + merge => { "[event][id]" => "[zeek][uid]" } } } + if ([zeek][fuid]) { mutate { id => "mutate_add_field_ecs_id_fuid" + merge => { "[event][id]" => "[zeek][fuid]" } } } + + # event.provider + if (![event][provider]) { mutate { id => "mutate_add_field_event_provider_zeek" + add_field => { "[event][provider]" => "zeek" } } } + + # event.kind - https://www.elastic.co/guide/en/ecs/current/ecs-allowed-values-event-kind.html + if ([zeek_notice]) or ([zeek_signatures]) or ([zeek_weird]) { + mutate { id => "mutate_add_field_ecs_event_kind_alert" + add_field => { "[event][kind]" => "alert" } } + } else { + mutate { id => "mutate_add_field_ecs_event_kind_event" + add_field => { "[event][kind]" => "event" } } + } + + # event.category - https://www.elastic.co/guide/en/ecs/current/ecs-allowed-values-event-category.html + translate { + id => "translate_zeek_ecs_event_category" + field => "[zeek][logType]" + destination => "[event][category]" + dictionary_path => "/etc/zeek_log_ecs_categories.yaml" + } + + # TODO: this gets very granular and varies wildly per protocol, not sure I can translate these 100% from zeek.action and zeek.result + # event.type - https://www.elastic.co/guide/en/ecs/current/ecs-allowed-values-event-type.html + # event.outcome - https://www.elastic.co/guide/en/ecs/current/ecs-allowed-values-event-outcome.html + # Eeesh, this is a swag... + # if ([zeek][result]) { + # ruby { + # id => "ruby_ecs_event_outcome_zeek_result" + # code => " + # event.get('[zeek][result]').each { |zeekResult| + # zeekResult.downcase! + # if zeekResult =~ /(abo?rt|bad|busy|close|conflict|crit|declin|denied|deny|disabl|discon|down|err|exceed|exhaust|expir|fail|forbid|illeg|imposs|inappr|incorr|insuff|interrupt|misdirected|nak|no[ _-]*such|overload|problem|refus|reject|terminat|timeout|violat|wrong|(im|dis|mis|un|un|not)[ _-]*(avail|allow|assign|auth|deciph|process|permit|found|support|exist|enough|implem|known|ok|okay|reach|respond|consist|access|satis|succes|valid|want)|too[ _-]*(large|long|small|short|early|late|many|few))/ + # event.set('[event][outcome]', 'failure') + # break + # elsif zeekResult =~ /(ok|okay|success|ack|complet|correct|good|ready|finish|valid)/ + # event.set('[event][outcome]', 'success') + # break + # end + # } + # " + # } + # } + + # ☐ DNS - Fields describing DNS queries and answers. - https://www.elastic.co/guide/en/ecs/current/ecs-dns.html + if ([zeek_dns]) { + + # dns.resolved_ip + if ([dns][ip]) { mutate { id => "mutate_merge_ecs_dhs_resolved_ip" + merge => { "[dns][resolved_ip]" => "[dns][ip]" } } } + + # dns.answers and dns.type:answer + if ([zeek_dns][answers]) { + ruby { + id => "ruby_zeek_dns_answers_to_ecs" + code => ' + event.set("[dns][answers]", [Array(event.get("[zeek_dns][answers]")), Array(event.get("[zeek_dns][TTLs]"))].transpose.map{ |d| Hash[[:data, :ttl].zip(d)] }) + '} + mutate { id => "mutate_add_field_ecs_dns_type_answer" + add_field => { "[dns][type]" => "answer" } } + } + + # dns.op_code + if ([dns][opcode]) { mutate { id => "mutate_add_field_ecs_dns_opcode" + add_field => { "[dns][op_code]" => "%{[dns][opcode]}" } } } + + # dns.question.class + if ([zeek_dns][qclass_name]) { mutate { id => "mutate_add_field_ecs_dns_qclass" + add_field => { "[dns][question][class]" => "%{[zeek_dns][qclass_name]}" } } } + + # dns.question.type + if ([zeek_dns][qtype_name]) { mutate { id => "mutate_add_field_ecs_dns_qtype" + add_field => { "[dns][question][type]" => "%{[zeek_dns][qtype_name]}" } } } + + # dns.question.name and dns.type:query + if ([zeek_dns][query]) { + mutate { id => "mutate_add_field_ecs_dns_query" + add_field => { "[dns][question][name]" => "%{[zeek_dns][query]}" } } + if (![dns][type]) { mutate { id => "mutate_add_field_ecs_dns_type_query" + add_field => { "[dns][type]" => "query" } } } + } + + if ([dns][type]) { + # dns.header_flags + if ([zeek][AA] == "T") { mutate { id => "mutate_add_field_ecs_dns_header_flag_aa" + add_field => { "[dns][header_flags]" => "AA" } } } + if ([zeek][TC] == "T") { mutate { id => "mutate_add_field_ecs_dns_header_flag_tc" + add_field => { "[dns][header_flags]" => "TC" } } } + if ([zeek][RD] == "T") { mutate { id => "mutate_add_field_ecs_dns_header_flag_rd" + add_field => { "[dns][header_flags]" => "RD" } } } + if ([zeek][RA] == "T") { mutate { id => "mutate_add_field_ecs_dns_header_flag_ra" + add_field => { "[dns][header_flags]" => "RA" } } } + } + + # dns.response_code + if ([zeek_dns][rcode_name]) { mutate { id => "mutate_add_field_ecs_dns_response_code" + add_field => { "[dns][response_code]" => "%{[zeek_dns][rcode_name]}" } } } + + # dns.id + if ([zeek_dns][trans_id]) { mutate { id => "mutate_add_field_ecs_dns_id" + add_field => { "[dns][id]" => "%{[zeek_dns][trans_id]}" } } } + + # TODO: domain stuff (dns.question.registered_domain, dns.question.subdomain, dns.question.top_level_domain) + # perhaps use something like https://github.com/plutonbacon/logstash-filter-publicsuffix + } + + # 🗹 File - Fields describing files. - https://www.elastic.co/guide/en/ecs/current/ecs-file.html + + if ([zeek_files]) { + + # file.type + mutate { id => "mutate_add_field_ecs_file_type" + add_field => { "[file][type]" => "file" } } + + # file.directory, file.name, file.path + if ([zeek_files][filename]) { + mutate { id => "mutate_add_field_ecs_file_path" + add_field => { "[file][path]" => "%{[zeek_files][filename]}" } } + grok { + id => "grok_zeek_files_filename_ecs" + match => { "[zeek_files][filename]" => [ "%{GREEDYDATA:[file][directory]}[\\\/]%{DATA:[file][name]}" ] } + } + } + + # file.mime_type + if ([zeek_files][mime_type]) { mutate { id => "mutate_add_field_ecs_files_mime_type" + add_field => { "[file][mime_type]" => "%{[zeek_files][mime_type]}" } } } + + # file.size + if ([zeek_files][total_bytes]) { mutate { id => "mutate_add_field_ecs_files_size" + add_field => { "[file][size]" => "%{[zeek_files][total_bytes]}" } } } + + # 🗹 Hash - Hashes, usually file hashes. - https://www.elastic.co/guide/en/ecs/current/ecs-hash.html + # file.hash.md5,sha1,sha256 + if ([zeek_files][md5]) { mutate { id => "mutate_add_field_ecs_files_hash_md5" + add_field => { "[file][hash][md5]" => "%{[zeek_files][md5]}" } } } + if ([zeek_files][sha1]) { mutate { id => "mutate_add_field_ecs_files_hash_sha1" + add_field => { "[file][hash][sha1]" => "%{[zeek_files][sha1]}" } } } + if ([zeek_files][sha256]) { mutate { id => "mutate_add_field_ecs_files_hash_sha256" + add_field => { "[file][hash][sha256]" => "%{[zeek_files][sha256]}" } } } + } + + if ([zeek_smb_files]) { + + # from smb_files, file.created,accessed,ctime,mtime,size + if ([zeek_smb_files][times_created]) { mutate { id => "mutate_add_field_ecs_smb_created" + add_field => { "[file][created]" => "%{[zeek_smb_files][times_created]}" } } } + + if ([zeek_smb_files][times_accessed]) { mutate { id => "mutate_add_field_ecs_smb_accessed" + add_field => { "[file][accessed]" => "%{[zeek_smb_files][times_accessed]}" } } } + + if ([zeek_smb_files][times_changed]) { mutate { id => "mutate_add_field_ecs_smb_changed" + add_field => { "[file][ctime]" => "%{[zeek_smb_files][times_changed]}" } } } + + if ([zeek_smb_files][times_modified]) { mutate { id => "mutate_add_field_ecs_smb_modified" + add_field => { "[file][mtime]" => "%{[zeek_smb_files][times_modified]}" } } } + + if ([zeek_smb_files][size]) { mutate { id => "mutate_add_field_ecs_smb_size" + add_field => { "[file][size]" => "%{[zeek_smb_files][size]}" } } } + + # file.name from smb_files.name + if (![file][name]) and ([zeek_smb_files][name]) { + mutate { id => "mutate_add_field_ecs_file_smb_files_name" + add_field => { "[file][name]" => "%{[zeek_smb_files][name]}" } } + } + } + + # file.directory from zeek_smb_files.smb_path + if ([@metadata][smb_path]) { + if (![file][type]) { mutate { id => "mutate_add_field_ecs_file_type_smb_path" + add_field => { "[file][type]" => "file" } } } + + mutate { id => "mutate_add_field_ecs_file_directory_from_smb" + add_field => { "[file][directory]" => "%{[@metadata][smb_path]}" } } + } + + # file.path from file.directory and file.name, if present and not already populated + if ([file][directory]) and (![file][path]) { + if ([file][name]) { + mutate { id => "mutate_add_field_ecs_path_from_dir_and_name" + add_field => { "[file][path]" => "%{[file][directory]}/%{[file][name]}" } } + } else { + mutate { id => "mutate_add_field_ecs_path_from_dir_only" + add_field => { "[file][path]" => "%{[file][directory]}" } } + } + } + + if ([file][name]) { + if (![file][type]) { mutate { id => "mutate_add_field_ecs_file_type_name" + add_field => { "[file][type]" => "file" } } } + + # file.extension + grok { + id => "grok_zeek_files_fileext_ecs" + match => { "[file][name]" => [ "%{GREEDYDATA}\.%{DATA:[file][extension]}" ] } + } + } + + # 🗹 HTTP - Fields describing an HTTP request. - https://www.elastic.co/guide/en/ecs/current/ecs-http.html + if ([zeek_http]) { + + if ([zeek_http][request_body_len]) { mutate { id => "mutate_add_field_ecs_http_request_body_bytes" + add_field => { "[http][request][body][bytes]" => "%{[zeek_http][request_body_len]}" } } } + + if ([zeek_http][method]) { mutate { id => "mutate_add_field_ecs_http_request_method" + add_field => { "[http][request][method]" => "%{[zeek_http][method]}" } } } + + if ([zeek_http][referrer]) { mutate { id => "mutate_add_field_ecs_http_request_referrer" + add_field => { "[http][request][referrer]" => "%{[zeek_http][referrer]}" } } } + + if ([zeek_http][response_body_len]) { mutate { id => "mutate_add_field_ecs_http_response_body_bytes" + add_field => { "[http][response][body][bytes]" => "%{[zeek_http][response_body_len]}" } } } + + if ([zeek_http][status_code]) { mutate { id => "mutate_add_field_ecs_http_response_status_cocde" + add_field => { "[http][response][status_cocde]" => "%{[zeek_http][status_code]}" } } } + + if ([zeek_http][version]) { mutate { id => "mutate_add_field_ecs_http_version" + add_field => { "[http][version]" => "%{[zeek_http][version]}" } } } + + # ☐ URL - Fields that let you store URLs in various forms. - https://www.elastic.co/guide/en/ecs/current/ecs-url.html + # todo: handle URIs from other protocols (SIP, FTP, ...) + if ([zeek_http][uri]) or ([zeek_http][host]) { + ruby { + id => "ruby_ecs_uri_parse_from_zeek_http" + init => "require 'uri'" + code => " + scheme = 'http' + user = event.get('[zeek][user]') + password = event.get('[zeek][password]') + host = event.get('[zeek_http][host]') + port = event.get('[zeek][resp_p]') + uri = event.get('[zeek_http][uri]') + ext = (uri.nil? || !(uri.include? '/')) ? nil : File.extname(uri).partition('.').last.split(/[\?#]/)[0] + fragment = uri.nil? ? nil : uri.partition('#').last + query = uri.nil? ? nil : uri.partition('?').last + event.set('[url][scheme]', scheme) + event.set('[url][original]', scheme + '://' + (host.nil? ? '' : host) + (uri.nil? ? '' : uri)) + event.set('[url][full]', scheme + '://' + (user.nil? ? '' : Array(user).first) + (password.nil? ? '' : ':' + password) + ((user.nil? && password.nil?) ? '' : '@') + (host.nil? ? '' : host) + (port.nil? ? '' : ':' + port) + (uri.nil? ? '' : uri)) + event.set('[url][domain]', host) unless host.nil? + event.set('[url][extension]', ext) unless ext.nil? || ext.empty? + event.set('[url][fragment]', fragment) unless fragment.nil? || fragment.empty? + event.set('[url][password]', password) unless password.nil? + event.set('[url][path]', uri) unless uri.nil? + event.set('[url][port]', port) unless port.nil? + event.set('[url][query]', query) unless query.nil? || query.empty? + event.set('[url][user]', Array(user).first) unless user.nil? + " + # TODO: domain stuff (url.registered_domain, url.top_level_domain) + # perhaps use something like https://github.com/plutonbacon/logstash-filter-publicsuffix + } + } + } + + # 🗹 Related - Fields meant to facilitate pivoting around a piece of data. - https://www.elastic.co/guide/en/ecs/current/ecs-related.html + + # related.user (zeek.user is already the array we want) + if ([zeek][user]) { mutate { id => "mutate_merge_field_related_zeek_user" + merge => { "[related][user]" => "[zeek][user]" } } } + + # related.hash (accumulate all hash/fingerprint fields into related.hash) + if ([zeek_files][md5]) { mutate { id => "mutate_merge_field_related_hash_files_md5" + merge => { "[related][hash]" => "[zeek_files][md5]" } } } + if ([zeek_files][sha1]) { mutate { id => "mutate_merge_field_related_hash_files_sha1" + merge => { "[related][hash]" => "[zeek_files][sha1]" } } } + if ([zeek_files][sha256]) { mutate { id => "mutate_merge_field_related_hash_files_sha256" + merge => { "[related][hash]" => "[zeek_files][sha256]" } } } + if ([zeek_ssh][hassh]) { mutate { id => "mutate_merge_field_related_hash_ssh_hassh" + merge => { "[related][hash]" => "[zeek_ssh][hassh]" } } } + if ([zeek_ssh][hasshServer]) { mutate { id => "mutate_merge_field_related_hash_ssh_hasshServer" + merge => { "[related][hash]" => "[zeek_ssh][hasshServer]" } } } + if ([zeek_ssl][ja3]) { mutate { id => "mutate_merge_field_related_hash_ssl_ja3" + merge => { "[related][hash]" => "[zeek_ssl][ja3]" } } } + if ([zeek_ssl][ja3s]) { mutate { id => "mutate_merge_field_related_hash_zeek_ssl_ja3s" + merge => { "[related][hash]" => "[zeek_ssl][ja3s]" } } } + + # related.ip (all IP-type fields get rolled up into related.ip) + if ([zeek][destination_geo][ip]) { mutate { id => "mutate_merge_field_related_ip_zeek_destination_geo_ip" + merge => { "[related][ip]" => "[zeek][destination_geo][ip]" } } } + if ([zeek][orig_h]) { mutate { id => "mutate_merge_field_related_ip_zeek_orig_h" + merge => { "[related][ip]" => "[zeek][orig_h]" } } } + if ([zeek][resp_h]) { mutate { id => "mutate_merge_field_related_ip_zeek_resp_h" + merge => { "[related][ip]" => "[zeek][resp_h]" } } } + if ([zeek][source_geo][ip]) { mutate { id => "mutate_merge_field_related_ip_zeek_source_geo_ip" + merge => { "[related][ip]" => "[zeek][source_geo][ip]" } } } + if ([zeek_dhcp][assigned_ip]) { mutate { id => "mutate_merge_field_related_ip_zeek_dhcp_assigned_ip" + merge => { "[related][ip]" => "[zeek_dhcp][assigned_ip]" } } } + if ([zeek_dhcp][requested_ip]) { mutate { id => "mutate_merge_field_related_ip_zeek_dhcp_requested_ip" + merge => { "[related][ip]" => "[zeek_dhcp][requested_ip]" } } } + if ([zeek_enip_list_identity][device_ip]) { mutate { id => "mutate_merge_field_related_ip_zeek_enip_list_identity_device_ip" + merge => { "[related][ip]" => "[zeek_enip_list_identity][device_ip]" } } } + if ([zeek_files][rx_hosts]) { mutate { id => "mutate_merge_field_related_ip_zeek_files_rx_hosts" + merge => { "[related][ip]" => "[zeek_files][rx_hosts]" } } } + if ([zeek_files][tx_hosts]) { mutate { id => "mutate_merge_field_related_ip_zeek_files_tx_hosts" + merge => { "[related][ip]" => "[zeek_files][tx_hosts]" } } } + if ([zeek_ftp][data_channel_orig_h]) { mutate { id => "mutate_merge_field_related_ip_zeek_ftp_data_channel_orig_h" + merge => { "[related][ip]" => "[zeek_ftp][data_channel_orig_h]" } } } + if ([zeek_ftp][data_channel_resp_h]) { mutate { id => "mutate_merge_field_related_ip_zeek_ftp_data_channel_resp_h" + merge => { "[related][ip]" => "[zeek_ftp][data_channel_resp_h]" } } } + if ([zeek_notice][dst]) { mutate { id => "mutate_merge_field_related_ip_zeek_notice_dst" + merge => { "[related][ip]" => "[zeek_notice][dst]" } } } + if ([zeek_notice][src]) { mutate { id => "mutate_merge_field_related_ip_zeek_notice_src" + merge => { "[related][ip]" => "[zeek_notice][src]" } } } + if ([zeek_radius][framed_addr]) { mutate { id => "mutate_merge_field_related_ip_zeek_radius_framed_addr" + merge => { "[related][ip]" => "[zeek_radius][framed_addr]" } } } + if ([zeek_smtp][path]) { mutate { id => "mutate_merge_field_related_ip_zeek_smtp_path" + merge => { "[related][ip]" => "[zeek_smtp][path]" } } } + if ([zeek_smtp][x_originating_ip]) { mutate { id => "mutate_merge_field_related_ip_zeek_smtp_x_originating_ip" + merge => { "[related][ip]" => "[zeek_smtp][x_originating_ip]" } } } + if ([zeek_socks][bound_host]) { mutate { id => "mutate_merge_field_related_ip_zeek_socks_bound_host" + merge => { "[related][ip]" => "[zeek_socks][bound_host]" } } } + if ([zeek_socks][request_host]) { mutate { id => "mutate_merge_field_related_ip_zeek_socks_request_host" + merge => { "[related][ip]" => "[zeek_socks][request_host]" } } } + if ([zeek_x509][san_ip]) { mutate { id => "mutate_merge_field_related_ip_zeek_x509_san_ip" + merge => { "[related][ip]" => "[zeek_x509][san_ip]" } } } + if ([related][ip]) { + ruby { + id => "ruby_related_ip_uniq" + code => "event.set('[related][ip]', event.get('[related][ip]').uniq)" + } + } + + # 🗹 Rule - Fields to capture details about rules used to generate alerts or other notable events. - https://www.elastic.co/guide/en/ecs/current/ecs-rule.html + # - signatures + # - engine - >rule.author + # - signature_id -> rule.name + # - event_msg -> rule.description + # - notice + # - category -> rule.category, rule.author (mapped), rule.reference (mapped), rule.license (mapped) + # - sub_category -> rule.name + # - weird + # - name -> rule.name + + if ([zeek_signatures]) { + if ([zeek_signatures][engine]) { mutate { id => "mutate_merge_field_ecs_rule_author_signatures_engine" + merge => { "[rule][author]" => "[zeek_signatures][engine]" } } } + + if ([zeek_signatures][signature_id]) { mutate { id => "mutate_add_field_ecs_rule_id_signature_name" + merge => { "[rule][name]" => "[zeek_signatures][signature_id]" } } } + + if ([zeek_signatures][event_msg]) { mutate { id => "mutate_add_field_ecs_rule_id_signature_event_msg" merge => { "[rule][description]" => "[zeek_signatures][event_msg]" } } } + } + + if ([zeek_notice]) { + + mutate { id => "mutate_add_field_ecs_rule_ruleset_notice_zeek" + add_field => { "[rule][ruleset]" => "Zeek Notices" } } + + if ([zeek_notice][category]) { mutate { id => "mutate_add_field_ecs_rule_category_notice_category" + add_field => { "[rule][category]" => "%{[zeek_notice][category]}" } } } + + if ([zeek_notice][sub_category]) { mutate { id => "mutate_add_field_ecs_rule_category_notice_sub_category" + add_field => { "[rule][name]" => "%{[zeek_notice][sub_category]}" } } } + + translate { + id => "translate_zeek_notice_author" + field => "[zeek_notice][category]" + destination => "[@metadata][zeek_noticed_mapped_author]" + dictionary_path => "/etc/notice_authors.yaml" + fallback => "Zeek" + } + if ([@metadata][zeek_noticed_mapped_author]) { + mutate { id => "mutate_merge_zeek_noticed_mapped_author" + merge => { "[rule][author]" => "[@metadata][zeek_noticed_mapped_author]" } } + } + + translate { + id => "translate_zeek_notice_reference" + field => "[zeek_notice][category]" + destination => "[@metadata][zeek_noticed_mapped_reference]" + dictionary_path => "/etc/notice_reference.yaml" + fallback => "https://docs.zeek.org/en/current/zeek-noticeindex.html" + } + if ([@metadata][zeek_noticed_mapped_reference]) { + mutate { id => "mutate_merge_zeek_noticed_mapped_reference" + merge => { "[rule][reference]" => "[@metadata][zeek_noticed_mapped_reference]" } } + } + + translate { + id => "translate_zeek_notice_license" + field => "[zeek_notice][category]" + destination => "[@metadata][zeek_noticed_mapped_license]" + dictionary_path => "/etc/notice_license.yaml" + fallback => "https://raw.githubusercontent.com/zeek/zeek/master/COPYING" + } + if ([@metadata][zeek_noticed_mapped_license]) { + mutate { id => "mutate_merge_zeek_noticed_mapped_license" + merge => { "[rule][license]" => "[@metadata][zeek_noticed_mapped_license]" } } + } + + } + + if ([zeek_weird][name]) { + mutate { id => "mutate_add_field_ecs_rule_author_zeek_weird" + add_field => { "[rule][author]" => "Zeek" } } + mutate { id => "mutate_add_field_ecs_rule_ruleset_zeek_weird" + add_field => { "[rule][ruleset]" => "Zeek Weird Logs" } } + mutate { id => "mutate_add_field_ecs_rule_reference_zeek_weird" + add_field => { "[rule][reference]" => "https://docs.zeek.org/en/current/scripts/base/frameworks/notice/weird.zeek.html" } } + mutate { id => "mutate_add_field_ecs_rule_name_weird_name" + add_field => { "[rule][name]" => "%{[zeek_weird][name]}" } } + } + + # 🗹 Threat - Fields to classify events and alerts according to a threat taxonomy. - https://www.elastic.co/guide/en/ecs/current/ecs-threat.html + if ([zeek_notice]) { + + if ([zeek_notice][category] == "ATTACK") { + + # populate threat information for MITRE ATT&CK notices from mitre-attack/bzar plugin + mutate { id => "mutate_add_field_ecs_threat_framework_mitre_attack" + add_field => { "[threat][framework]" => "MITRE ATT&CK" } } + + if ([zeek_notice][sub_category]) { + mutate { id => "mutate_add_field_ecs_threat_tactic_name_mitre" + add_field => { "[threat][tactic][name]" => "%{[zeek_notice][sub_category]}" } } + mutate { id => "mutate_gsub_ecs_threat_tactic_name_notice_sub" + gsub => [ "[threat][tactic][name]", "_,", " " ] } + translate { + id => "translate_zeek_mitre_attack_tactic_name_to_id" + field => "[zeek_notice][sub_category]" + destination => "[threat][tactic][id]" + dictionary_path => "/etc/mitre_attack_tactic_ids.yaml" + } + translate { + id => "translate_zeek_mitre_attack_tactic_name_to_reference" + field => "[zeek_notice][sub_category]" + destination => "[threat][tactic][reference]" + dictionary_path => "/etc/mitre_attack_tactic_reference.yaml" + fallback => "https://attack.mitre.org/tactics/enterprise/" + } + } + + if ([zeek_notice][sub]) and ([zeek_notice][sub] =~ /^T/) { + # eg., T1077 Windows Admin Shares + T1105 Remote File Copy + ruby { + id => "ruby_ecs_threat_technique_from_attack" + code => " + idArray = Array.new + nameArray = Array.new + event.get('[zeek_notice][sub]').split('+').each do |technique| + id, name = technique.strip.match(/(^T.*?)\s+(.+$)/).captures + idArray.push(id) unless id.nil? + nameArray.push(name) unless name.nil? + end + event.set('[threat][technique][id]', idArray) + event.set('[threat][technique][name]', nameArray) + event.set('[threat][technique][reference]', idArray.clone.map(&:clone).map{|x| x.prepend('https://attack.mitre.org/techniques/')}) + " + } + } + + } else if ([zeek_notice][category] == "EternalSafety") { + # populate threat information for EternalSafety from 0xl3x1/zeek-EternalSafety plugin + mutate { id => "mutate_add_field_ecs_threat_framework_eternal_safety" + add_field => { "[threat][framework]" => "EternalSafety" } } + if ([zeek_notice][sub_category]) { mutate { id => "mutate_add_field_ecs_threat_technique_name_eternal" + add_field => { "[threat][technique][name]" => "%{[zeek_notice][sub_category]}" } } } + if ([rule][reference]) { mutate { id => "mutate_add_field_ecs_threat_technique_reference_eternal" + add_field => { "[threat][technique][reference]" => "%{[rule][reference]}" } } } + } + + } + + # 🗹 TLS - Fields describing a TLS connection. - https://www.elastic.co/guide/en/ecs/current/ecs-tls.html + if ([zeek_ssl]) { + + if ([zeek_ssl][ssl_version]) { + # turn TLSv10, TLSv13, TSLv12, etc. to 'tls' and '1.2', etc. + # TODO: tls.cipher already exists as a Arkime field, will this conflict/duplicate that? + # EDIT: it won't duplicate it, but it will replace it. I guess that's okay for now. + ruby { + id => "ruby_ecs_ssl_version_parse" + code => " + verMatch = event.get('[zeek_ssl][ssl_version]').tr('.', '').match(/(.+)\s*[v-]\s*([\d\.]+)/i) + verParts = verMatch.nil? ? nil : verMatch.captures + unless verParts.nil? + event.set('[tls][version_protocol]', verParts[0].downcase) + event.set('[tls][version]', verParts[1].split(//).join('.')) + end + " + } + } + + if ([zeek_ssl][established]) { mutate { id => "mutate_add_field_ecs_zeek_tls_established" + add_field => { "[tls][established]" => "%{[zeek_ssl][established]}" } } } + + if ([zeek_ssl][resumed]) { mutate { id => "mutate_add_field_ecs_zeek_tls_resumed" + add_field => { "[tls][resumed]" => "%{[zeek_ssl][resumed]}" } } } + + if ([zeek_ssl][next_protocol]) { + mutate { id => "mutate_add_field_ecs_zeek_tls_next_protocol" + add_field => { "[tls][next_protocol]" => "%{[zeek_ssl][next_protocol]}" } } + mutate { id => "mutate_lowercase_field_ecs_zeek_tls_next_protocol" + lowercase => [ "[tls][next_protocol]" ] } + } + + # TODO: tls.cipher already exists as a Arkime field, will this conflict/duplicate that? + # EDIT: apparently it does duplicate the value, so I'm commenting this out for now... + #if ([zeek_ssl][cipher]) { mutate { id => "mutate_add_field_ecs_zeek_tls_cipher" + # add_field => { "[tls][cipher]" => "%{[zeek_ssl][cipher]}" } } } + + if ([zeek_ssl][curve]) { mutate { id => "mutate_add_field_ecs_zeek_tls_client_curve" + add_field => { "[tls][curve]" => "%{[zeek_ssl][curve]}" } } } + + if ([zeek_ssl][ja3]) { mutate { id => "mutate_add_field_ecs_zeek_tls_client_ja3" + add_field => { "[tls][client][ja3]" => "%{[zeek_ssl][ja3]}" } } } + + if ([zeek_ssl][client_issuer_full]) { mutate { id => "mutate_add_field_ecs_zeek_tls_client_issuer_full" + add_field => { "[tls][client][issuer]" => "%{[zeek_ssl][client_issuer_full]}" } } } + + if ([zeek_ssl][client_subject_full]) { mutate { id => "mutate_add_field_ecs_zeek_tls_client_subject_full" + add_field => { "[tls][client][subject]" => "%{[zeek_ssl][client_subject_full]}" } } } + + if ([zeek_ssl][server_name]) { + mutate { id => "mutate_add_field_ecs_zeek_tls_client_server_name" + add_field => { "[tls][client][server_name]" => "%{[zeek_ssl][server_name]}" } } + mutate { id => "mutate_add_field_ecs_zeek_tls_client_server_name_destination_domain" + add_field => { "[destination][domain]" => "%{[zeek_ssl][server_name]}" } } + } + + if ([zeek_ssl][issuer_full]) { mutate { id => "mutate_add_field_ecs_zeek_tls_issuer_full" + add_field => { "[tls][server][issuer]" => "%{[zeek_ssl][issuer_full]}" } } } + + if ([zeek_ssl][ja3s]) { mutate { id => "mutate_add_field_ecs_zeek_tls_server_ja3s" + add_field => { "[tls][server][ja3s]" => "%{[zeek_ssl][ja3s]}" } } } + + if ([zeek_ssl][subject_full]) { mutate { id => "mutate_add_field_ecs_zeek_tls_subject_full" + add_field => { "[tls][server][subject]" => "%{[zeek_ssl][subject_full]}" } } } + } + + # ☐ User agent - Fields to describe a browser user_agent string. - https://www.elastic.co/guide/en/ecs/current/ecs-user_agent.html + # - TODO: potentially more parsing could be done for user agent strings (.name, .device.name, .version) + + if ([zeek_gquic][user_agent]) { mutate { id => "mutate_add_field_metadata_http_ecs_useragent_gquic" + add_field => { "[@metadata][generic_user_agent]" => "%{[zeek_gquic][user_agent]}" } } } + if ([zeek_http][user_agent]) { mutate { id => "mutate_add_field_metadata_http_ecs_useragent_http" + add_field => { "[@metadata][generic_user_agent]" => "%{[zeek_http][user_agent]}" } } } + if ([zeek_sip][user_agent]) { mutate { id => "mutate_add_field_metadata_http_ecs_useragent_sip" + add_field => { "[@metadata][generic_user_agent]" => "%{[zeek_sip][user_agent]}" } } } + if ([zeek_smtp][user_agent]) { mutate { id => "mutate_add_field_metadata_http_ecs_useragent_smtp" + add_field => { "[@metadata][generic_user_agent]" => "%{[zeek_smtp][user_agent]}" } } } + if ([@metadata][generic_user_agent]) { + mutate { id => "mutate_add_field_ecs_user_agent_original_zeek" + add_field => { "[user_agent][original]" => "%{[@metadata][generic_user_agent]}" } } + } + + # ☐ Agent - Fields about the monitoring agent. - https://www.elastic.co/guide/en/ecs/current/ecs-agent.html + # - agent will be set for logs coming from a sensor (hedgehog) + # - double-check agent set for local Malcolm filebeat Zeek logs to ensure it's set correctly, too + # ☐ Observer - Fields describing an entity observing the event from outside the host. - https://www.elastic.co/guide/en/ecs/current/ecs-observer.html + # - anything useful we could get here from either Malcolm or Hedgehog? + # ☐ Destination - Fields about the destination side of a network connection, used with source. - https://www.elastic.co/guide/en/ecs/current/ecs-destination.html + # ☐ Source - Fields about the source side of a network connection, used with destination. - https://www.elastic.co/guide/en/ecs/current/ecs-source.html + # - I have client/server, do I need to do anything with this as well? + # ☐ Error - Fields about errors of any kind. - https://www.elastic.co/guide/en/ecs/current/ecs-error.html + # - There could be a lot of cases where there are errors, do we lump them all in here? we'd need to idenfity + # instances of error, error_msg, reply, status code, etc... + # ☐ User - Fields to describe the user relevant to the event. - https://www.elastic.co/guide/en/ecs/current/ecs-user.html + # - a *lot* of the details ECS wants for the user (client, destination, email, domain, etc.) aren't provided by Zeek + # also, it appears that there is an issue with type mismatch between Arkime's "user" field and ECS "user.name", etc. + # ☐ Vulnerability - Fields to describe the vulnerability relevant to an event. - https://www.elastic.co/guide/en/ecs/current/ecs-vulnerability.html + # - There are some CVE zeek plugins, they may be mappable to this (?) + # ☐ VLAN - Fields to describe observed VLAN information. - https://www.elastic.co/guide/en/ecs/current/ecs-vlan.html + # - conflicts with Arkime's VLAN field: + # Can't merge a non object mapping [vlan] with an object mapping [vlan]", "caused_by"=>{"type"=>"illegal_argument_exception", + # "reason"=>"Can't merge a non object mapping [vlan] with an object mapping [vlan] + + # 🗷 Base - All fields defined directly at the top level - https://www.elastic.co/guide/en/ecs/current/ecs-base.html + # 🗷 Cloud - Fields about the cloud resource. - https://www.elastic.co/guide/en/ecs/current/ecs-cloud.html + # 🗷 Code Signature - These fields contain information about binary code signatures. - https://www.elastic.co/guide/en/ecs/current/ecs-code_signature.html + # 🗷 Container - Fields describing the container that generated this event. - https://www.elastic.co/guide/en/ecs/current/ecs-container.html + # 🗷 DLL - These fields contain information about code libraries dynamically loaded into processes. - https://www.elastic.co/guide/en/ecs/current/ecs-dll.html + # 🗷 ECS - Meta-information specific to ECS. - https://www.elastic.co/guide/en/ecs/current/ecs-ecs.html + # 🗷 Group - User's group relevant to the event. - https://www.elastic.co/guide/en/ecs/current/ecs-group.html + # 🗷 Host - Fields describing the relevant computing instance. - https://www.elastic.co/guide/en/ecs/current/ecs-host.html + # 🗷 Interface - Fields to describe observer interface information. - https://www.elastic.co/guide/en/ecs/current/ecs-interface.html + # 🗷 Log - Details about the event's logging mechanism. - https://www.elastic.co/guide/en/ecs/current/ecs-log.html + # 🗷 Operating System - OS fields contain information about the operating system. - https://www.elastic.co/guide/en/ecs/current/ecs-os.html + # 🗷 Organization - Fields describing the organization or company the event is associated with. - https://www.elastic.co/guide/en/ecs/current/ecs-organization.html + # 🗷 Package - These fields contain information about an installed software package. - https://www.elastic.co/guide/en/ecs/current/ecs-package.html + # - I almost mapped "software" to this but it doesn't really line up (installed packages vs. software network traffic observed) + # 🗷 PE Header - These fields contain Windows Portable Executable (PE) metadata. - https://www.elastic.co/guide/en/ecs/current/ecs-pe.html + # - You would think zeek_pe would line up here, but this is just header stuff specific to windows executables and there's not much that lines up + # 🗷 Process - These fields contain information about a process. - https://www.elastic.co/guide/en/ecs/current/ecs-process.html + # 🗷 Registry - Fields related to Windows Registry operations. - https://www.elastic.co/guide/en/ecs/current/ecs-registry.html + # 🗷 Service - Fields describing the service for or from which the data was collected. - https://www.elastic.co/guide/en/ecs/current/ecs-service.html + # 🗷 Tracing - Fields related to distributed tracing. - https://www.elastic.co/guide/en/ecs/current/ecs-tracing.html + + } # end if ENV_LOGSTASH_ZEEK_TO_ECS + +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/pipelines/zeek/99_zeek_forward.conf b/Vagrant/resources/malcolm/logstash/pipelines/zeek/99_zeek_forward.conf new file mode 100644 index 0000000..bdbab18 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/pipelines/zeek/99_zeek_forward.conf @@ -0,0 +1,5 @@ +output { + pipeline { + send_to => ["log-enrichment"] + } +} diff --git a/Vagrant/resources/malcolm/logstash/scripts/ip-to-segment-logstash.py b/Vagrant/resources/malcolm/logstash/scripts/ip-to-segment-logstash.py new file mode 100755 index 0000000..c72f7b5 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/scripts/ip-to-segment-logstash.py @@ -0,0 +1,312 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +from __future__ import print_function + +import sys +import os +import re +import argparse +import struct +import ipaddress +import itertools +import json +import pprint +import uuid +from collections import defaultdict + +UNSPECIFIED_TAG = '<~<~~>~>' +HOST_LIST_IDX = 0 +SEGMENT_LIST_IDX = 1 + +JSON_MAP_TYPE_SEGMENT = 'segment' +JSON_MAP_TYPE_HOST = 'host' +JSON_MAP_KEY_ADDR = 'address' +JSON_MAP_KEY_NAME = 'name' +JSON_MAP_KEY_TAG = 'tag' +JSON_MAP_KEY_TYPE = 'type' + +################################################################################################### +# print to stderr +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + +################################################################################################### +# recursively convert unicode strings to utf-8 strings +def byteify(input): + if isinstance(input, dict): + return {byteify(key): byteify(value) + for key, value in input.iteritems()} + elif isinstance(input, list): + return [byteify(element) for element in input] + elif isinstance(input, unicode): + return input.encode('utf-8') + else: + return input + +################################################################################################### +# main +def main(): + + # extract arguments from the command line + # print (sys.argv[1:]); + parser = argparse.ArgumentParser(description='Logstash IP address to Segment Filter Creator', add_help=False, usage='ip-to-segment-logstash.py ') + parser.add_argument('-m', '--mixed', dest='mixedInput', metavar='', type=str, nargs='*', default='', help='Input mixed JSON mapping file(s)') + parser.add_argument('-s', '--segment', dest='segmentInput', metavar='', type=str, nargs='*', default='', help='Input segment mapping file(s)') + parser.add_argument('-h', '--host', dest='hostInput', metavar='', type=str, nargs='*', default='', help='Input host mapping file(s)') + parser.add_argument('-o', '--output', dest='output', metavar='', type=str, default='-', help='Output file') + try: + parser.error = parser.exit + args = parser.parse_args() + except SystemExit: + parser.print_help() + exit(2) + + # read each input file into its own list + segmentLines = [] + hostLines = [] + mixedEntries = [] + + for inFile in args.segmentInput: + if os.path.isfile(inFile): + segmentLines.extend([line.strip() for line in open(inFile)]) + + for inFile in args.hostInput: + if os.path.isfile(inFile): + hostLines.extend([line.strip() for line in open(inFile)]) + + for inFile in args.mixedInput: + try: + tmpMixedEntries = json.load(open(inFile, 'r')) + if isinstance(tmpMixedEntries, list): + mixedEntries.extend(byteify(tmpMixedEntries)); + except: + pass + + # remove comments + segmentLines = list(filter(lambda x: (len(x) > 0) and (not x.startswith('#')), segmentLines)) + hostLines = list(filter(lambda x: (len(x) > 0) and (not x.startswith('#')), hostLines)) + + if (len(segmentLines) > 0) or (len(hostLines) > 0) or (len(mixedEntries) > 0): + + filterId = 0 + addedFields = set() + + outFile = open(args.output, 'w+') if (args.output and args.output != '-') else sys.stdout + try: + print('filter {', file=outFile) + print("", file=outFile) + print(" # this file was automatically generated by {}".format(os.path.basename(__file__)), file=outFile) + print("", file=outFile) + + # process segment mappings into a dictionary of two dictionaries of lists (one for hosts, one for segments) + # eg., tagListMap[required tag name][HOST_LIST_IDX|SEGMENT_LIST_IDX][network segment name] = [172.16.0.0/12, 192.168.0.0/24, 10.0.0.41] + tagListMap = defaultdict(lambda: [defaultdict(list), defaultdict(list)]) + + # handle segment mappings + for line in segmentLines: + # CIDR to network segment format: + # IP(s)|segment name|required tag + # + # where: + # IP(s): comma-separated list of CIDR-formatted network IP addresses + # eg., 10.0.0.0/8, 169.254.0.0/16, 172.16.10.41 + # + # segment name: segment name to be assigned when event IP address(es) match + # + # required tag (optional): only check match and apply segment name if the event + # contains this tag + values = [x.strip() for x in line.split('|')] + if len(values) >= 2: + networkList = [] + for ip in ''.join(values[0].split()).split(','): + try: + networkList.append(str(ipaddress.ip_network(unicode(ip))).lower() if ('/' in ip) else str(ipaddress.ip_address(unicode(ip))).lower()) + except ValueError: + eprint('"{}" is not a valid IP address, ignoring'.format(ip)) + segmentName = values[1] + tagReq = values[2] if ((len(values) >= 3) and (len(values[2]) > 0)) else UNSPECIFIED_TAG + if (len(networkList) > 0) and (len(segmentName) > 0): + tagListMap[tagReq][SEGMENT_LIST_IDX][segmentName].extend(networkList) + else: + eprint('"{}" is not formatted correctly, ignoring'.format(line)) + else: + eprint('"{}" is not formatted correctly, ignoring'.format(line)) + + # handle hostname mappings + macAddrRegex = re.compile(r'([a-fA-F0-9]{2}[:|\-]?){6}') + for line in hostLines: + # IP or MAC address to host name map: + # address|host name|required tag + # + # where: + # address: comma-separated list of IPv4, IPv6, or MAC addresses + # eg., 172.16.10.41, 02:42:45:dc:a2:96, 2001:0db8:85a3:0000:0000:8a2e:0370:7334 + # + # host name: host name to be assigned when event address(es) match + # + # required tag (optional): only check match and apply host name if the event + # contains this tag + # + values = [x.strip() for x in line.split('|')] + if len(values) >= 2: + addressList = [] + for addr in ''.join(values[0].split()).split(','): + try: + # see if it's an IP address + addressList.append(str(ipaddress.ip_address(unicode(addr))).lower()) + except ValueError: + # see if it's a MAC address + if re.match(macAddrRegex, addr): + # prepend _ temporarily to distinguish a mac address + addressList.append("_{}".format(addr.replace('-', ':').lower())) + else: + eprint('"{}" is not a valid IP or MAC address, ignoring'.format(ip)) + hostName = values[1] + tagReq = values[2] if ((len(values) >= 3) and (len(values[2]) > 0)) else UNSPECIFIED_TAG + if (len(addressList) > 0) and (len(hostName) > 0): + tagListMap[tagReq][HOST_LIST_IDX][hostName].extend(addressList) + else: + eprint('"{}" is not formatted correctly, ignoring'.format(line)) + else: + eprint('"{}" is not formatted correctly, ignoring'.format(line)) + + # handle mixed entries from the JSON-formatted file + for entry in mixedEntries: + + # the entry must at least contain type, address, name; may optionally contain tag + if (isinstance(entry, dict) and + all(key in entry for key in (JSON_MAP_KEY_TYPE, JSON_MAP_KEY_NAME, JSON_MAP_KEY_ADDR)) and + entry[JSON_MAP_KEY_TYPE] in (JSON_MAP_TYPE_SEGMENT, JSON_MAP_TYPE_HOST) and + (len(entry[JSON_MAP_KEY_NAME]) > 0) and + (len(entry[JSON_MAP_KEY_ADDR]) > 0)): + + addressList = [] + networkList = [] + + tagReq = entry[JSON_MAP_KEY_TAG] if (JSON_MAP_KEY_TAG in entry) and (len(entry[JSON_MAP_KEY_TAG]) > 0) else UNSPECIFIED_TAG + + # account for comma-separated multiple addresses per 'address' value + for addr in ''.join(entry[JSON_MAP_KEY_ADDR].split()).split(','): + + if (entry[JSON_MAP_KEY_TYPE] == JSON_MAP_TYPE_SEGMENT): + # potentially interpret address as a CIDR-formatted subnet + try: + networkList.append(str(ipaddress.ip_network(unicode(addr))).lower() if ('/' in addr) else str(ipaddress.ip_address(unicode(addr))).lower()) + except ValueError: + eprint('"{}" is not a valid IP address, ignoring'.format(addr)) + + else: + # should be an IP or MAC address + try: + # see if it's an IP address + addressList.append(str(ipaddress.ip_address(unicode(addr))).lower()) + except ValueError: + # see if it's a MAC address + if re.match(macAddrRegex, addr): + # prepend _ temporarily to distinguish a mac address + addressList.append("_{}".format(addr.replace('-', ':').lower())) + else: + eprint('"{}" is not a valid IP or MAC address, ignoring'.format(ip)) + + if (len(networkList) > 0): + tagListMap[tagReq][SEGMENT_LIST_IDX][entry[JSON_MAP_KEY_NAME]].extend(networkList) + + if (len(addressList) > 0): + tagListMap[tagReq][HOST_LIST_IDX][entry[JSON_MAP_KEY_NAME]].extend(addressList) + + # go through the lists of segments/hosts, which will now be organized by required tag first, then + # segment/host name, then the list of addresses + for tag, nameMaps in tagListMap.iteritems(): + print("", file=outFile) + + # if a tag name is specified, print the IF statement verifying the tag's presence + if tag != UNSPECIFIED_TAG: + print(' if ("{}" in [tags]) {{'.format(tag), file=outFile) + try: + + # for the host names(s) to be checked, create two filters, one for source IP|MAC and one for dest IP|MAC + for hostName, addrList in nameMaps[HOST_LIST_IDX].iteritems(): + + # ip addresses mapped to hostname + ipList = list(set([a for a in addrList if not a.startswith('_')])) + if (len(ipList) >= 1): + for source in ['orig', 'resp']: + filterId += 1 + fieldName = "{}_h".format(source) + newFieldName = "{}_hostname".format(source) + print("", file=outFile) + print(' if ([zeek][{}]) and ({}) {{ '.format(fieldName, ' or '.join(['([zeek][{}] == "{}")'.format(fieldName, ip) for ip in ipList])), file=outFile) + print(' mutate {{ id => "mutate_add_autogen_{}_ip_hostname_{}"'.format(source, filterId), file=outFile) + print(' add_field => {{ "[zeek][{}]" => "{}" }}'.format(newFieldName, hostName), file=outFile) + print(" }", file=outFile) + print(" }", file=outFile) + addedFields.add("[zeek][{}]".format(newFieldName)) + + # mac addresses mapped to hostname + macList = list(set([a for a in addrList if a.startswith('_')])) + if (len(macList) >= 1): + for source in ['orig', 'resp']: + filterId += 1 + fieldName = "{}_l2_addr".format(source) + newFieldName = "{}_hostname".format(source) + print("", file=outFile) + print(' if ([zeek][{}]) and ({}) {{ '.format(fieldName, ' or '.join(['([zeek][{}] == "{}")'.format(fieldName, mac[1:]) for mac in macList])), file=outFile) + print(' mutate {{ id => "mutate_add_autogen_{}_mac_hostname_{}"'.format(source, filterId), file=outFile) + print(' add_field => {{ "[zeek][{}]" => "{}" }}'.format(newFieldName, hostName), file=outFile) + print(" }", file=outFile) + print(" }", file=outFile) + addedFields.add("[zeek][{}]".format(newFieldName)) + + # for the segment(s) to be checked, create two cidr filters, one for source IP and one for dest IP + for segmentName, ipList in nameMaps[SEGMENT_LIST_IDX].iteritems(): + ipList = list(set(ipList)) + for source in ['orig', 'resp']: + filterId += 1 + # ip addresses/ranges mapped to network segment names + fieldName = "{}_h".format(source) + newFieldName = "{}_segment".format(source) + print("", file=outFile) + print(" if ([zeek][{}]) {{ cidr {{".format(fieldName), file=outFile) + print(' id => "cidr_autogen_{}_segment_{}"'.format(source, filterId), file=outFile) + print(' address => [ "%{{[zeek][{}]}}" ]'.format(fieldName), file=outFile) + print(' network => [ {} ]'.format(', '.join('"{}"'.format(ip) for ip in ipList)), file=outFile) + print(' add_tag => [ "{}" ]'.format(segmentName), file=outFile) + print(' add_field => {{ "[zeek][{}]" => "{}" }}'.format(newFieldName, segmentName), file=outFile) + print(" } }", file=outFile) + addedFields.add("[zeek][{}]".format(newFieldName)) + + finally: + # if a tag name is specified, close the IF statement verifying the tag's presence + if tag != UNSPECIFIED_TAG: + print("", file=outFile) + print(' }} # end (if "{}" in [tags])'.format(tag), file=outFile) + + finally: + # deduplicate any added fields + if addedFields: + print("", file=outFile) + print(' # deduplicate any added fields', file=outFile) + for field in list(itertools.product(['orig', 'resp'], ['hostname', 'segment'])): + newFieldName = "[zeek][{}_{}]".format(field[0], field[1]) + if newFieldName in addedFields: + print("", file=outFile) + print(' if ({}) {{ '.format(newFieldName), file=outFile) + print(' ruby {{ id => "ruby{}deduplicate"'.format(''.join(c for c, _ in itertools.groupby(re.sub('[^0-9a-zA-Z]+', '_', newFieldName)))), file=outFile) + print(' code => "', file=outFile) + print(" fieldVals = event.get('{}')".format(newFieldName), file=outFile) + print(" if fieldVals.kind_of?(Array) then event.set('{}', fieldVals.uniq) end".format(newFieldName), file=outFile) + print(' "', file=outFile) + print(' } }', file=outFile) + + # close out filter with ending } + print("", file=outFile) + print('} # end Filter', file=outFile) + + if outFile is not sys.stdout: + outFile.close() + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/Vagrant/resources/malcolm/logstash/scripts/ja3_build_list.py b/Vagrant/resources/malcolm/logstash/scripts/ja3_build_list.py new file mode 100755 index 0000000..76c7e5f --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/scripts/ja3_build_list.py @@ -0,0 +1,156 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from __future__ import print_function + +import argparse +import datetime +import hashlib +import json +import os +import platform +import pprint +import re +import requests +import string +import sys +import yaml +from collections import defaultdict + +################################################################################################### +debug = False +PY3 = (sys.version_info.major >= 3) +scriptName = os.path.basename(__file__) +scriptPath = os.path.dirname(os.path.realpath(__file__)) +origPath = os.getcwd() + +################################################################################################### +if not PY3: + if hasattr(__builtins__, 'raw_input'): input = raw_input + +try: + FileNotFoundError +except NameError: + FileNotFoundError = IOError + +################################################################################################### +# print to stderr +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + +################################################################################################### +# convenient boolean argument parsing +def str2bool(v): + if v.lower() in ('yes', 'true', 't', 'y', '1'): + return True + elif v.lower() in ('no', 'false', 'f', 'n', '0'): + return False + else: + raise argparse.ArgumentTypeError('Boolean value expected.') + +################################################################################################### +# main +def main(): + global debug + + parser = argparse.ArgumentParser(description=scriptName, add_help=False, usage='{} '.format(scriptName)) + parser.add_argument('-v', '--verbose', dest='debug', type=str2bool, nargs='?', const=True, default=False, help="Verbose output") + parser.add_argument('-o', '--output', required=True, dest='output', metavar='', type=str, default='', help='Output file') + try: + parser.error = parser.exit + args = parser.parse_args() + except SystemExit: + parser.print_help() + exit(2) + + debug = args.debug + if debug: + eprint(os.path.join(scriptPath, scriptName)) + eprint("Arguments: {}".format(sys.argv[1:])) + eprint("Arguments: {}".format(args)) + else: + sys.tracebacklimit = 0 + + ja3Map = defaultdict(list) + fingerprint = None + + urls = ['https://ja3er.com/getAllUasJson'] + for url in urls: + try: + for fingerprint in requests.get(url).json(): + if ('md5' in fingerprint) and fingerprint['md5'] and ('User-Agent' in fingerprint) and fingerprint['User-Agent']: + ja3Map[fingerprint['md5']].append(fingerprint['User-Agent'].strip('"').strip("'")) + except Exception as e: + eprint('"{}" raised for "{}"'.format(str(e), fingerprint)) + + try: + url = 'https://raw.githubusercontent.com/LeeBrotherston/tls-fingerprinting/master/fingerprints/fingerprints.json' + keys = ['record_tls_version', 'ciphersuite', 'extensions', 'e_curves', 'ec_point_fmt'] + for fingerprint in [x for x in requests.get(url).text.splitlines() if (len(x) > 0) and (not x.startswith('#'))]: + try: + values = list() + tmpMap = defaultdict(str) + tmpMap.update(json.loads(fingerprint)) + for key in keys: + values.append('-'.join([str(int(x, 0)) for x in tmpMap[key].split()])) + if PY3: + ja3Map[hashlib.md5(','.join(values).encode()).hexdigest()].extend(tmpMap['desc'].strip('"').strip("'").split(' / ')) + else: + ja3Map[hashlib.md5(','.join(values)).hexdigest()].extend(tmpMap['desc'].strip('"').strip("'").split(' / ')) + except Exception as e: + eprint('"{}" raised for "{}"'.format(str(e), fingerprint)) + except Exception as e: + eprint('"{}" raised for "{}"'.format(str(e), fingerprint)) + + urls = ['https://raw.githubusercontent.com/trisulnsm/ja3prints/master/ja3fingerprint.json'] + for url in urls: + try: + for fingerprint in [x for x in requests.get(url).text.splitlines() if (len(x) > 0) and (not x.startswith('#'))]: + try: + values = list() + tmpMap = defaultdict(str) + tmpMap.update(json.loads(fingerprint)) + ja3Map[tmpMap['ja3_hash'].strip()].append(tmpMap['desc'].strip('"').strip("'")) + except Exception as e: + eprint('"{}" raised for "{}"'.format(str(e), fingerprint)) + except Exception as e: + eprint('"{}" raised for "{}"'.format(str(e), fingerprint)) + + # this one has desc and ja3_hash backwards from the previous one + urls = ['https://raw.githubusercontent.com/trisulnsm/ja3prints/master/newprints.json'] + for url in urls: + try: + for fingerprint in [x for x in requests.get(url).text.splitlines() if (len(x) > 0) and (not x.startswith('#'))]: + try: + values = list() + tmpMap = defaultdict(str) + tmpMap.update(json.loads(fingerprint)) + ja3Map[tmpMap['desc'].strip()].append(tmpMap['ja3_hash'].strip('"').strip("'")) + except Exception as e: + eprint('"{}" raised for "{}"'.format(str(e), fingerprint)) + except Exception as e: + eprint('"{}" raised for "{}"'.format(str(e), fingerprint)) + + # this one is csv (and overlaps the previous one a lot) + try: + url = 'https://raw.githubusercontent.com/salesforce/ja3/master/lists/osx-nix-ja3.csv' + for fingerprint in [x for x in requests.get(url).text.splitlines() if (len(x) > 0) and (not x.startswith('#'))]: + vals = ' '.join(fingerprint.split()).split(',', 1) + if (len(vals) == 2) and (len(vals[0]) == 32): + ja3Map[vals[0].strip()].append(vals[1].strip('"').strip("'")) + except Exception as e: + eprint('"{}" raised for "{}"'.format(str(e), fingerprint)) + + finalMap = dict() + for k, v in ja3Map.items(): + if (len(k) == 32) and all(c in string.hexdigits for c in k): + finalMap[k] = list(set([element.strip('"').strip("'").strip() for element in v])) + + with open(args.output, 'w+') as outfile: + if PY3: + yaml.dump(finalMap, outfile) + else: + yaml.safe_dump(finalMap, outfile, default_flow_style=False) + +if __name__ == '__main__': + main() diff --git a/Vagrant/resources/malcolm/logstash/scripts/logstash-start.sh b/Vagrant/resources/malcolm/logstash/scripts/logstash-start.sh new file mode 100755 index 0000000..065f63c --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/scripts/logstash-start.sh @@ -0,0 +1,89 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +set -e + +# if any pipelines are volume-mounted inside this docker container, they should belong to subdirectories under this path +HOST_PIPELINES_DIR="/usr/share/logstash/malcolm-pipelines.available" + +# runtime pipelines parent directory +export PIPELINES_DIR="/usr/share/logstash/malcolm-pipelines" + +# runtime pipeliens configuration file +export PIPELINES_CFG="/usr/share/logstash/config/pipelines.yml" + +# for each pipeline in /usr/share/logstash/malcolm-pipelines, append the contents of this file to the dynamically-generated +# pipeline section in pipelines.yml (then delete 00_config.conf before starting) +export PIPELINE_EXTRA_CONF_FILE="00_config.conf" + +# files defining IP->host and MAC->host mapping +INPUT_CIDR_MAP="/usr/share/logstash/config/cidr-map.txt" +INPUT_HOST_MAP="/usr/share/logstash/config/host-map.txt" +INPUT_MIXED_MAP="/usr/share/logstash/config/net-map.json" + +# the name of the enrichment pipeline subdirectory under $PIPELINES_DIR +ENRICHMENT_PIPELINE=${LOGSTASH_ENRICHMENT_PIPELINE:-"enrichment"} + +# the name of the pipeline(s) to which input will send logs for parsing (comma-separated list, no quotes) +PARSE_PIPELINE_ADDRESSES=${LOGSTASH_PARSE_PIPELINE_ADDRESSES:-"zeek-parse"} + +# pipeline addresses for forwarding from Logstash to Elasticsearch (both "internal" and "external" pipelines) +export ELASTICSEARCH_PIPELINE_ADDRESS_INTERNAL=${LOGSTASH_ELASTICSEARCH_PIPELINE_ADDRESS_INTERNAL:-"internal-es"} +export ELASTICSEARCH_PIPELINE_ADDRESS_EXTERNAL=${LOGSTASH_ELASTICSEARCH_PIPELINE_ADDRESS_EXTERNAL:-"external-es"} +ELASTICSEARCH_OUTPUT_PIPELINE_ADDRESSES=${LOGSTASH_ELASTICSEARCH_OUTPUT_PIPELINE_ADDRESSES:-"$ELASTICSEARCH_PIPELINE_ADDRESS_INTERNAL,$ELASTICSEARCH_PIPELINE_ADDRESS_EXTERNAL"} + +# ip-to-segment-logstash.py translate $INPUT_CIDR_MAP, $INPUT_HOST_MAP, $INPUT_MIXED_MAP into this logstash filter file +NETWORK_MAP_OUTPUT_FILTER="$PIPELINES_DIR"/"$ENRICHMENT_PIPELINE"/16_host_segment_filters.conf + +#################################################################################################################### + +# copy over pipeline filters from host-mapped volumes (if any) into their final resting places +find "$HOST_PIPELINES_DIR" -mindepth 1 -maxdepth 1 -type d -print0 2>/dev/null | sort -z | \ + xargs -0 -n 1 -I '{}' bash -c ' + PIPELINE_NAME="$(basename "{}")" + PIPELINES_DEST_DIR="$PIPELINES_DIR"/"$PIPELINE_NAME" + mkdir -p "$PIPELINES_DEST_DIR" + cp -f "{}"/* "$PIPELINES_DEST_DIR"/ +' + +# dynamically generate final pipelines.yml configuration file from all of the pipeline directories +> "$PIPELINES_CFG" +find "$PIPELINES_DIR" -mindepth 1 -maxdepth 1 -type d -print0 2>/dev/null | sort -z | \ + xargs -0 -n 1 -I '{}' bash -c ' + PIPELINE_NAME="$(basename "{}")" + PIPELINE_ADDRESS_NAME="$(cat "{}"/*.conf | sed -e "s/:[\}]*.*\(}\)/\1/" | envsubst | grep -P "\baddress\s*=>" | awk "{print \$3}" | sed "s/[\"'']//g" | head -n 1)" + if [[ -n "$ES_EXTERNAL_HOSTS" ]] || [[ "$PIPELINE_ADDRESS_NAME" != "$ELASTICSEARCH_PIPELINE_ADDRESS_EXTERNAL" ]]; then + echo "- pipeline.id: malcolm-$PIPELINE_NAME" >> "$PIPELINES_CFG" + echo " path.config: "{}"" >> "$PIPELINES_CFG" + cat "{}"/"$PIPELINE_EXTRA_CONF_FILE" 2>/dev/null >> "$PIPELINES_CFG" + rm -f "{}"/"$PIPELINE_EXTRA_CONF_FILE" + echo >> "$PIPELINES_CFG" + echo >> "$PIPELINES_CFG" + fi +' + +# create filters for network segment and host mapping in the enrichment directory +rm -f "$NETWORK_MAP_OUTPUT_FILTER" +/usr/local/bin/ip-to-segment-logstash.py --mixed "$INPUT_MIXED_MAP" --segment "$INPUT_CIDR_MAP" --host "$INPUT_HOST_MAP" -o "$NETWORK_MAP_OUTPUT_FILTER" + +if [[ -z "$ES_EXTERNAL_HOSTS" ]]; then + # external ES host destination is not specified, remove external destination from enrichment pipeline output + ELASTICSEARCH_OUTPUT_PIPELINE_ADDRESSES="$(echo "$ELASTICSEARCH_OUTPUT_PIPELINE_ADDRESSES" | sed "s/,[[:blank:]]*$ELASTICSEARCH_PIPELINE_ADDRESS_EXTERNAL//")" +fi + +# insert quotes around the elasticsearch parsing and output pipeline list +MALCOLM_PARSE_PIPELINE_ADDRESSES=$(printf '"%s"\n' "${PARSE_PIPELINE_ADDRESSES//,/\",\"}") +MALCOLM_ELASTICSEARCH_OUTPUT_PIPELINES=$(printf '"%s"\n' "${ELASTICSEARCH_OUTPUT_PIPELINE_ADDRESSES//,/\",\"}") + +# do a manual global replace on these particular values in the config files, as Logstash doesn't like the environment variables with quotes in them +find "$PIPELINES_DIR" -type f -name "*.conf" -exec sed -i "s/_MALCOLM_ELASTICSEARCH_OUTPUT_PIPELINES_/${MALCOLM_ELASTICSEARCH_OUTPUT_PIPELINES}/g" "{}" \; 2>/dev/null +find "$PIPELINES_DIR" -type f -name "*.conf" -exec sed -i "s/_MALCOLM_PARSE_PIPELINE_ADDRESSES_/${MALCOLM_PARSE_PIPELINE_ADDRESSES}/g" "{}" \; 2>/dev/null + +# import trusted CA certificates if necessary +/usr/local/bin/jdk-cacerts-auto-import.sh || true + +# start logstash (adapted from docker-entrypoint) +env2yaml /usr/share/logstash/config/logstash.yml +export LS_JAVA_OPTS="-Dls.cgroup.cpuacct.path.override=/ -Dls.cgroup.cpu.path.override=/ $LS_JAVA_OPTS" +exec logstash diff --git a/Vagrant/resources/malcolm/logstash/supervisord.conf b/Vagrant/resources/malcolm/logstash/supervisord.conf new file mode 100644 index 0000000..abfc167 --- /dev/null +++ b/Vagrant/resources/malcolm/logstash/supervisord.conf @@ -0,0 +1,29 @@ +; Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +[inet_http_server] +port=0.0.0.0:9001 + +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisord.pid + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=http://127.0.0.1:9001 + +[program:logstash] +command=/usr/local/bin/logstash-start.sh +autostart=true +startsecs=0 +startretries=0 +stopwaitsecs=60 +stopasgroup=true +killasgroup=true +stopsignal=INT +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true diff --git a/Vagrant/resources/malcolm/malcolm-iso/build.sh b/Vagrant/resources/malcolm/malcolm-iso/build.sh new file mode 100755 index 0000000..81e1df8 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/build.sh @@ -0,0 +1,213 @@ +#!/bin/bash + +IMAGE_NAME=malcolm +IMAGE_VERSION=1.0.0 +IMAGE_DISTRIBUTION=buster + +BUILD_ERROR_CODE=1 + +DOCKER_IMAGES_TGZ="" +while getopts d: opts; do + case ${opts} in + d) DOCKER_IMAGES_TGZ=${OPTARG} ;; + esac +done + +if [ "$(id -u)" != "0" ]; then + echo "This script must be run as root" 1>&2 + exit $BUILD_ERROR_CODE +fi + +if [[ -n "$DOCKER_IMAGES_TGZ" ]] && [[ ! -r "$DOCKER_IMAGES_TGZ" ]]; then + echo "\"$DOCKER_IMAGES_TGZ\" was specified but does not exist or cannot be accessed" 1>&2 + exit $BUILD_ERROR_CODE +fi + +set -e + +RUN_PATH="$(pwd)" +SCRIPT_PATH="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +pushd "$SCRIPT_PATH" >/dev/null 2>&1 + +WORKDIR="$(mktemp -d -t malcolm-XXXXXX)" + +function cleanup { + # unmount any chroot stuff left behind after an error + (umount -f $(mount | grep chroot | cut -d ' ' -f 3) >/dev/null 2>&1) && sleep 5 + + # clean up the temporary build directory + if ! rm -rf "$WORKDIR"; then + echo "Failed to remove temporary directory '$WORKDIR'" + exit $BUILD_ERROR_CODE + fi +} + +if [ -d "$WORKDIR" ]; then + # ensure that if we "grabbed a lock", we release it (works for clean exit, SIGTERM, and SIGINT/Ctrl-C) + trap "cleanup" EXIT + + pushd "$WORKDIR" >/dev/null 2>&1 + mkdir -p ./output "./work/$IMAGE_NAME-Live-Build" + pushd "./work/$IMAGE_NAME-Live-Build" >/dev/null 2>&1 + rsync -a "$SCRIPT_PATH/config" . + + mkdir -p ./config/hooks/live + pushd ./config/hooks/live + ln -v -s -f /usr/share/live/build/hooks/live/* ./ + popd >/dev/null 2>&1 + + mkdir -p ./config/hooks/normal + pushd ./config/hooks/normal + ln -v -s -f /usr/share/live/build/hooks/normal/* ./ + rm -f ./0910-remove-apt-sources-lists + popd >/dev/null 2>&1 + + chown -R root:root * + + # put the date in the grub.cfg entries and configure installation options + sed -i "s/\(Install Malcolm Base\)/\1 $(date +'%Y-%m-%d %H:%M:%S')/g" ./config/includes.binary/boot/grub/grub.cfg + cp ./config/includes.binary/install/preseed_multipar.cfg ./config/includes.binary/install/preseed_multipar_crypto.cfg + cp ./config/includes.binary/install/preseed_base.cfg ./config/includes.binary/install/preseed_minimal.cfg + sed -i "s@\(partman-auto/method[[:space:]]*string[[:space:]]*\)lvm@\1crypto@g" ./config/includes.binary/install/preseed_multipar_crypto.cfg + + # make sure we install the newer kernel, firmwares, and kernel headers + echo "linux-image-$(uname -r)" > ./config/package-lists/kernel.list.chroot + echo "linux-headers-$(uname -r)" >> ./config/package-lists/kernel.list.chroot + echo "linux-compiler-gcc-8-x86=$(dpkg -s linux-compiler-gcc-8-x86 | grep ^Version: | cut -d' ' -f2)" >> ./config/package-lists/kernel.list.chroot + echo "linux-kbuild-5.10=$(dpkg -s linux-kbuild-5.10 | grep ^Version: | cut -d' ' -f2)" >> ./config/package-lists/kernel.list.chroot + echo "firmware-linux=$(dpkg -s firmware-linux | grep ^Version: | cut -d' ' -f2)" >> ./config/package-lists/kernel.list.chroot + echo "firmware-linux-nonfree=$(dpkg -s firmware-linux-nonfree | grep ^Version: | cut -d' ' -f2)" >> ./config/package-lists/kernel.list.chroot + echo "firmware-misc-nonfree=$(dpkg -s firmware-misc-nonfree | grep ^Version: | cut -d' ' -f2)" >> ./config/package-lists/kernel.list.chroot + echo "firmware-amd-graphics=$(dpkg -s firmware-amd-graphics | grep ^Version: | cut -d' ' -f2)" >> ./config/package-lists/kernel.list.chroot + + # and make sure we remove the old stuff when it's all over + echo "#!/bin/sh" > ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + echo "export LC_ALL=C.UTF-8" >> ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + echo "export LANG=C.UTF-8" >> ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + echo "apt-get -y --purge remove *4.19* || true" >> ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + echo "apt-get -y autoremove" >> ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + echo "apt-get clean" >> ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + chmod +x ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + + # grab things from the Malcolm parent directory into /etc/skel so the user's got it set up in their home/Malcolm dir + pushd "$SCRIPT_PATH/.." >/dev/null 2>&1 + MALCOLM_DEST_DIR="$WORKDIR/work/$IMAGE_NAME-Live-Build/config/includes.chroot/etc/skel/Malcolm" + mkdir -p "$MALCOLM_DEST_DIR" + mkdir -p "$MALCOLM_DEST_DIR/nginx/certs/" + mkdir -p "$MALCOLM_DEST_DIR/htadmin/" + mkdir -p "$MALCOLM_DEST_DIR/logstash/certs/" + mkdir -p "$MALCOLM_DEST_DIR/filebeat/certs/" + mkdir -p "$MALCOLM_DEST_DIR/elasticsearch/nodes/" + mkdir -p "$MALCOLM_DEST_DIR/elasticsearch-backup/" + mkdir -p "$MALCOLM_DEST_DIR/moloch-raw/" + mkdir -p "$MALCOLM_DEST_DIR/moloch-logs/" + mkdir -p "$MALCOLM_DEST_DIR/pcap/upload/" + mkdir -p "$MALCOLM_DEST_DIR/pcap/processed/" + mkdir -p "$MALCOLM_DEST_DIR/scripts/" + mkdir -p "$MALCOLM_DEST_DIR/yara/rules/" + mkdir -p "$MALCOLM_DEST_DIR/zeek-logs/current/" + mkdir -p "$MALCOLM_DEST_DIR/zeek-logs/upload/" + mkdir -p "$MALCOLM_DEST_DIR/zeek-logs/processed/" + mkdir -p "$MALCOLM_DEST_DIR/zeek-logs/extract_files/" + YML_IMAGE_VERSION="$(grep -P "^\s+image:\s*malcolm" ./docker-compose-standalone.yml | awk '{print $2}' | cut -d':' -f2 | uniq -c | sort -nr | awk '{print $2}' | head -n 1)" + [[ -n $YML_IMAGE_VERSION ]] && IMAGE_VERSION="$YML_IMAGE_VERSION" + cp ./docker-compose-standalone.yml "$MALCOLM_DEST_DIR/docker-compose.yml" + cp ./cidr-map.txt "$MALCOLM_DEST_DIR/" + cp ./host-map.txt "$MALCOLM_DEST_DIR/" + cp ./net-map.json "$MALCOLM_DEST_DIR/" + cp ./index-management-policy.json "$MALCOLM_DEST_DIR/" + cp ./scripts/install.py "$MALCOLM_DEST_DIR/scripts/" + cp ./scripts/control.py "$MALCOLM_DEST_DIR/scripts/" + pushd "$MALCOLM_DEST_DIR/scripts/" >/dev/null 2>&1 + ln -s ./control.py auth_setup + ln -s ./control.py logs + ln -s ./control.py restart + ln -s ./control.py start + ln -s ./control.py status + ln -s ./control.py stop + ln -s ./control.py wipe + popd >/dev/null 2>&1 + cp ./scripts/malcolm_common.py "$MALCOLM_DEST_DIR/scripts/" + cp ./README.md "$MALCOLM_DEST_DIR/" + cp ./logstash/certs/*.conf "$MALCOLM_DEST_DIR/logstash/certs/" + touch "$MALCOLM_DEST_DIR"/firstrun + popd >/dev/null 2>&1 + + # if there are prebuilt malcolm images to load into the ISO, provide them + if [[ -r "$DOCKER_IMAGES_TGZ" ]]; then + cp "$DOCKER_IMAGES_TGZ" ./config/includes.chroot/malcolm_images.tar.gz + chown root:root ./config/includes.chroot/malcolm_images.tar.gz + fi + + # write out some version stuff specific to this installation version + echo "BUILD_ID=\"$(date +'%Y-%m-%d')-${IMAGE_VERSION}\"" > "$MALCOLM_DEST_DIR"/.os-info + echo "VARIANT=\"Hedgehog Linux (Malcolm) v${IMAGE_VERSION}\"" >> "$MALCOLM_DEST_DIR"/.os-info + echo "VARIANT_ID=\"hedgehog-malcolm\"" >> "$MALCOLM_DEST_DIR"/.os-info + echo "ID_LIKE=\"debian\"" >> "$MALCOLM_DEST_DIR"/.os-info + echo "HOME_URL=\"https://malcolm.fyi\"" >> "$MALCOLM_DEST_DIR"/.os-info + echo "DOCUMENTATION_URL=\"https://malcolm.fyi/documentation/\"" >> "$MALCOLM_DEST_DIR"/.os-info + echo "SUPPORT_URL=\"https://github.com/cisagov\"" >> "$MALCOLM_DEST_DIR"/.os-info + echo "BUG_REPORT_URL=\"https://github.com/cisagov/malcolm/issues\"" >> "$MALCOLM_DEST_DIR"/.os-info + + # copy shared scripts and some branding stuff + mkdir -p ./config/includes.chroot/usr/local/bin/ + rsync -a "$SCRIPT_PATH/../shared/bin/" ./config/includes.chroot/usr/local/bin/ + chown -R root:root ./config/includes.chroot/usr/local/bin/ + + mkdir -p ./config/includes.chroot/usr/share/images/desktop-base/ + mkdir -p ./config/includes.chroot/usr/share/icons/hicolor/{64x64,48x48,32x32,24x24,16x16} + cp "$SCRIPT_PATH"/../docs/images/logo/Malcolm_background.png ./config/includes.chroot/usr/share/images/desktop-base/ + cp "$SCRIPT_PATH"/../docs/images/favicon/favicon64.png ./config/includes.chroot/usr/share/icons/hicolor/64x64/malcolm.png + cp "$SCRIPT_PATH"/../docs/images/favicon/favicon48.png ./config/includes.chroot/usr/share/icons/hicolor/48x48/malcolm.png + cp "$SCRIPT_PATH"/../docs/images/favicon/favicon32.png ./config/includes.chroot/usr/share/icons/hicolor/32x32/malcolm.png + cp "$SCRIPT_PATH"/../docs/images/favicon/favicon24.png ./config/includes.chroot/usr/share/icons/hicolor/24x24/malcolm.png + cp "$SCRIPT_PATH"/../docs/images/favicon/favicon16.png ./config/includes.chroot/usr/share/icons/hicolor/16x16/malcolm.png + chown -R root:root ./config/includes.chroot/usr/share/images ./config/includes.chroot/usr/share/icons + + mkdir -p ./config/includes.installer + cp -v ./config/includes.binary/install/* ./config/includes.installer/ + cp -v ./config/includes.chroot/usr/local/bin/preseed_partman_determine_disk.sh ./config/includes.installer/ + + lb config \ + --image-name "$IMAGE_NAME" \ + --debian-installer live \ + --debian-installer-gui false \ + --debian-installer-distribution $IMAGE_DISTRIBUTION \ + --distribution $IMAGE_DISTRIBUTION \ + --linux-packages "linux-image-$(uname -r | sed 's/-amd64$//')" \ + --architectures amd64 \ + --binary-images iso-hybrid \ + --bootloaders "syslinux,grub-efi" \ + --memtest none \ + --chroot-filesystem squashfs \ + --backports true \ + --security true \ + --updates true \ + --source false \ + --apt-indices none \ + --apt-source-archives false \ + --archive-areas 'main contrib non-free' \ + --debootstrap-options "--include=apt-transport-https,gnupg,ca-certificates,openssl" \ + --apt-options "--allow-downgrades --allow-remove-essential --allow-change-held-packages --yes" + + lb build 2>&1 | tee "$WORKDIR/output/$IMAGE_NAME-$IMAGE_VERSION-build.log" + if [ -f "$IMAGE_NAME-amd64.hybrid.iso" ]; then + mv "$IMAGE_NAME-amd64.hybrid.iso" "$RUN_PATH/$IMAGE_NAME-$IMAGE_VERSION.iso" && \ + echo "Finished, created \"$RUN_PATH/$IMAGE_NAME-$IMAGE_VERSION.iso\"" + BUILD_ERROR_CODE=0 + else + echo "Error creating ISO, see log file" + BUILD_ERROR_CODE=2 + fi + mv "$WORKDIR/output/$IMAGE_NAME-$IMAGE_VERSION-build.log" "$RUN_PATH/" + + popd >/dev/null 2>&1 + popd >/dev/null 2>&1 + +else + echo "Unable to create temporary directory \"$WORKDIR\"" +fi + +popd >/dev/null 2>&1 + +exit $BUILD_ERROR_CODE diff --git a/Vagrant/resources/malcolm/malcolm-iso/build_via_vagrant.sh b/Vagrant/resources/malcolm/malcolm-iso/build_via_vagrant.sh new file mode 100755 index 0000000..1bd002b --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/build_via_vagrant.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +unset FORCE_PROVISION +DOCKER_IMAGES_TGZ="" +while getopts fd: opts; do + case ${opts} in + d) DOCKER_IMAGES_TGZ=${OPTARG} ;; + f) FORCE_PROVISION=0 ;; + esac +done + +SCRIPT_PATH="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +function vm_state() { + vagrant status --machine-readable | grep ",state," | egrep -o '([a-z_]*)$' +} + +function vm_is_running() { + STATE="$(vm_state)" + if [[ "$STATE" == "running" ]] ; then + return 0 + else + return 1 + fi +} + +function vm_execute() { + echo "Running $1" >&2 + vagrant ssh --no-tty --command "$1" +} + +pushd "$SCRIPT_PATH"/vagrant + +VM_NAME="$(grep "config.vm.box" Vagrantfile | tr -d "[:space:]" | sed "s/.*=//")" + +if [[ -n $FORCE_PROVISION ]]; then + echo "Destroying build machine to force provisioning..." >&2 + vagrant destroy -f + sleep 1 +fi + +# make sure the VM is up and running, or start it otherwise +if ! vm_is_running; then + echo "Starting build machine..." >&2 + vagrant up + NEED_SHUTDOWN=true + sleep 1 +fi +until vm_is_running; do + echo "Waiting for $VM_NAME..." >&2 + sleep 1 +done +echo "$VM_NAME is running!" >&2 + +# make sure we can connect via SSH +echo "Checking SSH availability..." >&2 +until vm_execute 'sudo whoami' | grep -q "root" ; do + echo "Waiting for SSH availability..." >&2 + sleep 1 +done +echo "SSH available." >&2 + +if [[ -r "$DOCKER_IMAGES_TGZ" ]]; then + DOCKER_IMAGES_LOCAL="$SCRIPT_PATH/../$(basename "$DOCKER_IMAGES_TGZ")" + DOCKER_IMAGES_TGZ_REMOTE="/malcolm-build/$(basename "$DOCKER_IMAGES_TGZ")" + cp -v "$DOCKER_IMAGES_TGZ" "$DOCKER_IMAGES_LOCAL" +else + DOCKER_IMAGES_LOCAL="" + DOCKER_IMAGES_TGZ_REMOTE="" +fi + +vm_execute "sudo bash -c \"whoami && cd /malcolm-build/malcolm-iso && pwd && ./build.sh -d \\\"$DOCKER_IMAGES_TGZ_REMOTE\\\"\"" + +if [[ -n $NEED_SHUTDOWN ]]; then + echo "Shutting down $VM_NAME..." >&2 + vagrant halt + sleep 1 + while vm_is_running; do + echo "Waiting for $VM_NAME to shutdown..." >&2 + sleep 1 + done + echo "$VM_NAME is stopped." >&2 +fi + +[[ -r "$DOCKER_IMAGES_LOCAL" ]] && rm -vf "$DOCKER_IMAGES_LOCAL" + +popd diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/archives/docker.key.binary b/Vagrant/resources/malcolm/malcolm-iso/config/archives/docker.key.binary new file mode 100644 index 0000000..ee7872e --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/archives/docker.key.binary @@ -0,0 +1,62 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +YT90qFF93M3v01BbxP+EIY2/9tiIPbrd +=0YYh +-----END PGP PUBLIC KEY BLOCK----- diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/archives/docker.key.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/archives/docker.key.chroot new file mode 100644 index 0000000..ee7872e --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/archives/docker.key.chroot @@ -0,0 +1,62 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +YT90qFF93M3v01BbxP+EIY2/9tiIPbrd +=0YYh +-----END PGP PUBLIC KEY BLOCK----- diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/archives/docker.list.binary b/Vagrant/resources/malcolm/malcolm-iso/config/archives/docker.list.binary new file mode 100644 index 0000000..0baa93b --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/archives/docker.list.binary @@ -0,0 +1,2 @@ +deb [arch=amd64] https://download.docker.com/linux/debian buster stable + diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/archives/docker.list.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/archives/docker.list.chroot new file mode 100644 index 0000000..0baa93b --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/archives/docker.list.chroot @@ -0,0 +1,2 @@ +deb [arch=amd64] https://download.docker.com/linux/debian buster stable + diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/archives/virtualbox.key.binary b/Vagrant/resources/malcolm/malcolm-iso/config/archives/virtualbox.key.binary new file mode 100644 index 0000000..b37d3f8 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/archives/virtualbox.key.binary @@ -0,0 +1,7416 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +cFmEHsjRN+dCxEL75y8HDpyvJHlH1R9saSZuM7v/x8KKpPNCnSkictjaC1FTiQIc +BBABCAAGBQJMYfReAAoJEHcx/Mxj5OJ3m4wP/j0WuQ0f033p0nJ8Kp0TLkFcK99d +DLmijZxEyvO6leGhwDmF1XDK4asAwQvFlxf9iQicvHp0ZoAn/6j2AGezfTuXlZQX +KBC3HqjyHVsHnIOV/yWYTi+ZUyVxPxtK68t4LIQu+qrGRcPYgpiFpygQjth21gv0 +d3hmr0XnalyAsvQLWWLClmFvHlvHxp6DIlZvv+FXFHqsHh60HkNmthryARuCLnsh +XcSh92oLwVUtiAIPY+hK+2AHtyS4UCmE/0iR17coFgDYik9RZaX4GKSNh17sxJ+N +aHmEYnpU7it0YA2Cf9VWge2q1Pq2wDpPxu1H+3fo3PnNL0IsnQqyK/OEaN2CgCvr +LJ1GA2tvK+S4wy0sc6d+/OfL36n3EfTiHv4AWiWRg6OVa8FMRJFKv38m3ergEvzB +iptYSFucDM70V7AzrDZWNl73bXeVvd0X5qzS4ArbqdGiZ32qqa19NyXd0jxRmr/U +14iWmNXL0FtbAVZJDmlIaoLs+Dnk4sW/XkwLu1XGLNbddScvGsSSEoJQbDJLExNC +S5irZ3Xgw7Tmj7ZkBxYWKGu4UnFysp/z7RVFRwfuohm7lkVO05utJ72QLdqv7zMH +UTUoyLnv/+8KD25+cK07OjJw4vYMtBz5xQxxx+wizwMmZfTMV5LSBF8mSdmhw4ce +t7/xUj1tKKoNQsPUiQIcBBABCAAGBQJMYhx3AAoJEGc6A+TB25IfpncQAKb/U41q +zoZf1VYPDW9TBV9axJTQ3sAwfsq5H/sIUe5qDFeiz7DRCATXU4mydJjFQW6yMXxc +KddMBFYS+gBGBQw1Ay8360hOU+qe08vAL94pYlBvXm5ZMbUKZ4odblnlckrPVOm0 +4G3CxnQ3RTBk7GYmtXTNH/V7UZ61uBg4kaJxfxzTdU6vUUMZB1yGUfn7RXBbj2sy +pzSi+J1h0aLtd/vbA+WB8P6/XyQ3QiAMlXWF7sJWfZVZWxb9bf6oMQ0nG6zPFxU5 +GeilUOrjIZC4aVBVW0UZ35HMX1vFXg9z8oYiYEv5Qw4TPJRWYcqIdXYTgtpvDszC +oxNIqZxvoYxkCN7IS5aNSsviEfvOrNTYCUfr8GqqN6qnHKje/f0l9zYVpj+TAsT0 +xsDmp9fqPmGWhk/AzYT6oYObdz88zPDXPZ7SVYaovyNwQfvRs9y2+BfQztqpvw9v +hMnRIK+DEUp2uQJWID8csQ9I+ZUUDWintS7tBaWQqYaFkOVrNdNpmVU3IEfSJZ/G +7P5LmSD2ZCrBIR36AHvmMg17OwCnqOvpo2rBA0qad7TIjOlmj34K+NQHqKKlys8m +yQ7+lk5mNTZLFKeB/3aHszcy/7cqzVYaAtWs+5907wib9i8JgNMJ/3cgx+3vqtge +IWrDzNk78seey869+ERnOOJsonNcyjaaLCRKiQIcBBABCAAGBQJMauu5AAoJEAqg +RXHQPj5wmpgP/00YIxhdGgG9W3y9LYVVCwOAKNHjnrF2GgBTx2FNURKaetPH9XYZ +b4M5TNQ2AmW6kA+pUN/eXeQmarskE6PFXDmT5na8Sz6bgDLJWYzQpP+ID3yNtJUk +JFXKfIz9Xbg6hFsizo4DQXG5k6yz2IgBbmbDPxbCNsND1F1m7rHqkGXXbC06AGEO ++zGpJgjHg5pfs4bMSVIknkl2NTGOAhdpGybxLthMzb5SUj2wYO5OTSBcJIWfIvWz +b1yd/RiPaVFunaZdFxBwvVlsvTizIG6NkUWNyB+oxigVYax3UEoIRa7d0InyZOiC +A49E8W8FSplkoAmYeHRlBQuZKn4CJEmDuuMepULMcou+48XufiEk1JSS/vm3DKf3 +rvUk5b4QuUBfd6+s9JLPE+6zwUxMd1+yy0m2VxiHFpIE40FaF818ALjVxKUw4j6I +ulNs8guYs9ymcnx7TERmq79UXzCf0L4pB68dOFd4XVv9MM243BHQ6uuSEtCqwln7 +umbMmz2XWopC2655trkrt0JHUIunQX3VJwlGN43Ox3w8k2Jpm2oVm8PKRNxK906l ++RxMIzqwmIIEGU1mCFJkYKCN6Bs4KWX4SGwaXI1do4aX5jK06ac3U57dOKmBYcYg +ZqiuPcdC1NuVudL9ElSQJ8k5jO0PwX9DJ0Mo6VI/Be6KrOEaYHBZogTViQIcBBAB +CAAGBQJMbMCFAAoJEORPgBbTYw+JnlYQALIs56c81wjPc5AkqukxTdWxpF+1czTO +zwCMKfythu2DMvn6IcFixT6V6vEdtfiflAQ2CVYuGfh5lAmrRlYJJQ7+z8xcdmal +Afk232Vi5HSRMC/CPOTZakfVrY2hbfhBxAC8CsXW3SjKUYJ0QULIkchH6gyk6FIU +r0iFfqk8P5bZq2TRkFQmtCci6JqzpUDzuJTl+bKmhFe1zR1jafYJ9m1BR8LF7YvQ +FAE+r2WB7fjajqUwVxKtFV1tTPgNfHnnovJWdOlczHKQ8doWAd5sbWsfiCoCO2oB +Taml8Z9BnzUDNSVRb1C4s5eUJ5tPGmyCAksSkMdH6eQ6eNijK17hAa20fpzjbkF6 +2hUQeQoJwo7W3XMKcm1KV7NjwQW1GEi6MRQCuchO/UIzlQvpVD4VRDoAL1Nmx9Gt +zCnLPYKTTuL62z9h2ejwAYfn4rHtkQX3VtFkKKvNdNsgGIMgPz13zr7E5vdMQ+5i +xPJh/nzNQOPFCwpiCImbr6lzSnUA80UzUGnsAnV15lscY2opF9yNVs6+afajTE6t +BBzfG/xRXzkw/ermpuCI/qULjiU03sUdWQp7Z9Y5U0+weFfCIO6kcYod2I624gpG +7INigsWKsbhZesTftpxS9/qQ6gsZh1F0M7npXI9zcl4OlTApvO39d23zC83CrY0g +7VWMdpHDcjZFiQIcBBABCAAGBQJMbruAAAoJEESXUni4YStdGtIQALWCC4vIcGYb +jovW3ivdyfVUo+Q/19ephk7m8vyl2PqsAFBYwZOi6s9xAEhhSZ22mkUxpZc8aI1+ +xlLGZiMxZyPy0QOqEZM97py1zXHRFS98vf/9Q1P+y7SRzf8wfTFrcLbQ8ahru2bI +/6xTqfe/CC6JYFVZ522mgE+xrKH4D6jWMswjtIrTghu1FGHVB+g25vs5W5rzDbLn +kRlMcAH3mr56WAfGmA0KH4R/HGCLlVsDuBhMuEeolIe7nJO9MjB0pgYzNsoV7Fu8 +7Hd1gqZGXMzkPtNJ4xNGQfdW94Uv5j4TeBVDfuK936AbOWt9YKCLBwAULN+Hr3A4 +hXkcd3oDTgZ5yhvonbElj1oR/MF9hbxuoQ+AuprPyqHxSDfRezrR8DUghXY5gEyN +3vYpbqMNFOx65bY4k6bFS/DTnr98HS9bYMxSLFHQJYksESsN5tjn9npdkR+ftHaj +Ve2wgKCu0C/bzrBH9ivEd0NaY3OvbkJzteogoO6PtvRg85fVM4gYZrtBxogOJkV3 +a12Q5GFiLZgyDMr7GIIHq0ySLstNeEO4mXSZxHnfQq0hrz7XZNVZVNnD4n7Ip/ko +5q2LegUPckAJJgJ6w0fhdCZnjHDM9qR6G+swMoR5oT8fp57DxZJYLzdQP6mso6bc +ifLuSoU7Uci/NTF+Y7HWm5Q+mwtUsk+kiQIcBBABCgAGBQJKdK/oAAoJEJZVIrnU +mucx0RIP+waHvcCVckIuRP9dNRR2G+z9CrpJDmTde6q/SSc/eg4TGGHr+w0GVrZE +TYyvnluAwHBU004gRzpaL7r6vmvJCeGO2Y6Ehotrk2uddYQvvN5bN73JIlQeypKP +TC23WRPHORoLinvGa/z+27urnjLv+62J6LSon6L5ROl3EStPKSLhP1N/TS55XB6g +SgcA8ubodyrP+sp5Z3z0hE7s0qL34TNnU6MWY8C4XRlo8ZfRizVm+lKmeQlvaJDA +at2kA0TxIIAkncFh6jKuuc4jTZeeS6cjJsDTBUotzOHpYDPzCwJktIYrleORKvMV +NULdb1etjYqPJBWX20mstRFuDu8QhKKFtZYlzrHWVMG4CrzO9grWQr6LCSbPXoBL +OZomtNc+xgvWMtcpz5VpA1fx0/yy7y5Gn9E4bo+bdauK8D3PTFAYMFyiPcjK57LJ +T9CjkTyePylApMVy7f/Qd9gQa9zBmkPRwVTQxj6UUSOvCbKqh2LgyPxRCDKLPPds +BtLxhUw8nTcxkL0iHlbY0DI9EyqMoP1Z0c4zkn0bLkzCBAWpksHua0wx9A0iAdKN +yooLb2lZjFBhFTGPRE4/I4u7barD+YGtODNJ0uspLiKdCzeAPFp8SKroaTdAT6Ee +XQrRmYfkC4NvXGEmrNsONTZE61aUvxRd8FaWxg1usscc8Dq2OS+yiQIcBBABCgAG +BQJKdeuaAAoJEIy/mjIoYaeQMq4QAJhT6pfLpY941XYRvmUYMbnVyrxfZ9zPFg4D +167QOy0xenMpcFvCtA5N8AXK4E5m5SLF1W8f8gQIk73MXK9/c6T1vDfNwpv+Ccj8 +SVGHWWg+9I2XMM3IDX/MIzSZjhCuvRJ7eUjIANnqZtIeltSDURF4fY2K5unfnPlH +RnOOHc+qFJTzHzJRb7RG/gyr8bwI2iPbb9OPjfC+QWW/ETRnIQbjLIvkp8rMM6Nz +CQeXKF36akV7+uRQgbv3j9xsx3WShLy3+mlnICreLe2pR34DAcCJ86VNCq0v36Tl +wokTo0l+rJIZenKTmZKU612k1jgO0dvhrgTzXoGYPtX+8dhrLAXGLlvlD2iHR3vT +5jk9lgvTeJ+vKZmdnxgYnuJA76QS1mkgNocrQwGRMe6UMdP1pUVBg+EKOtTiEKFN +Bj/tPZ7Zw0jOtxCffSz7TxatkolN4j+o52Z/LayfsUe/3xSmbtusUUBc9LM+wXyP +JJ56IRUhjaVwJ/ZI8uKwLKuC/ao1Vgwa3yShpqVjsOB8ZTHIJZZDS3mzXHAhUrmy ++RcR2Zy5HmP0vPnLJETUo7MpUEGxaKXTyFPOA3UzET2xzRHIC1CvaloLibtlUsWd +VyLrGPePQgO+F8g+qWa/nrmXqzKbh4vng21LytT9o+l85L4euWR3QGghvm+RQFH/ +dSY6b7bKiQIcBBABCgAGBQJKeiQ4AAoJEF+Oa+CSj/r6S4oP/311EeTKNHzGJSlb +HoyN8SdVUfCKmIETGx8Z8JokLWqB7GJXKIJOpl8uvdzlI6Xcm24JsAHSCMtOoqX8 +Mj7gauuj95pO7Fuxh4OaOVDp9Wf4w1d4N5U+FpVnlFSmOXL+jQWLTGthP0B9JYZt +bKhu49pJMBo/8IjhQ4oxhkMFRE9MnjSMaI1NP08Xxm4UquZdijNEQUka8mKaL1b3 +AznBvOdz7o1hFr4W6yajNgw4kALYcpSZ2Zw5JH5AzACty9t784DR/o8qPQGDZvTO +6PAUjyRTlj1X49/OZc4miSQXHD8y+UNQKRO/eMmZyBML7qxcuMhOyUPkwCSn63O2 +7fNcwbpB2VGshbJKaLre4XVJLAZ4jG07k2DgOYr+sRQ/OGTu56iCTxk8GjYxM0CR +Yv5qd3QU6/mpT9TxkyThUMo1POJx7I2bFgjQAAgbJfikfi5b5m1CodxKFDUB/1Gf +XZ6tvmCr1BkoXhnWHkAM3V1nua1d+U65z8ryRbH1TrlXBLVaKCgWgk09uh0PjSBk +zHlCs3ewM0EU6PzBtMTFw2VelLzw4Co0gYfnWyBk2N3JJCUFv97uGjqs+OOa4SqO +mliL8RGcEeMSd5qgiwor5DGAi6O9BB+aJ6x9iSnpHTA2UgU6HE4AFisetJ4b6/xJ +4FZ6pwdKzNzig2pQLmNjdv1hQid6iQIcBBABCgAGBQJKghCdAAoJEBNunPF7XTQt +JeUP/1RA2SkLaho2QdkB9A3hd2YMXof+3+Lk3KJDMmZHE1vPMlXZGdNjsUisMO3h +wd84//QY8n8i/p5XPAKUVn/K6Bz2FgVGU84SLpNn/PwEQrHIc1xdRe5Bjqkh4Of7 +VWZN+d1HBUr97Z8HuIDIvGKWA0L/xddCDxLAFBzUmvklJdP5K+6YZe+mjwYpUnem +cnHaGYYOYo46H6i57eNgD2zfy1kAlgiLOUrkQTY1iXtLtv3US/2ZjWt01gdok3Dj +NtXamFL1b1dctN8yu0MEeLra227SayqRQx3wST/VJUF8GdW6EosmhbOMhcgrtXoG +nM0+5QSMPKVDFEcVRy50byAO7wpqI1PR7jjhx2MJ8pV1pehIGanXaVY1pSFt7fJ2 +GREM+HXiQ0qI2JpbNPT7F2LCZeBK1leTNmXbhyEeuIsigg831+D1dPHQAbAHxvUy +wmDdd9LX8+/ffl3Vws30hCHrhhb/B8h4jmAG1PRWZ/LvdL297ftoRq5prjtXFP97 +vq45jFBCVqhwWBdoBI2FayoOZesbvYoS+QNgn+S4hxyOoXeLaOXiztfKxspGW5JR +BiSnH8Y54HmMx7eo6JmEm+tO68Glq52TdnTHeR0GnQhZpOVdLjzRq8YHCVWtc5+5 +iQfSQ7beufp94ymbTcqd9Zcdbn1jmVJn3DZ2GSCHg00yWu3eiQIcBBABCgAGBQJK +iXA6AAoJEJwnsxNCt1Ed4g4P/i87eXr1kWfDdWnCbX4kPemNCYQGXFd4SyeHUPZ4 +P7zk4OwHD6xL03bDjiCr3W1sX0EN1YIBe7LRizH7Ej4G89yaSMPkZExeKVBxZ7P4 +UpEEWjXeCy6RK8fiqvfb1z8EBlQ42ckWn4MQ5b3AWX4lOJBqFSGxdHzDaHHV7OIQ +jOut8QoZpg//t9QScKV12Ml/NQDVIesjRbLGYtD699IVj0EU3XyLqXRYsIcgq9lT +8TKx/rsZMQg//nTJh1Kw6dREJDN0PTTTj1clCUTeKThbMk1lMZfO6KfQTCVauCvf +dOytdHEnv90cxOyqXLsDmxNxrQ7sYc/2dfyGPRIgJnw4l7+bYNIVIYdzE2Qn8YsQ +pBGQsKMek5tsJwf9mmn0BfwrBdDnOJiC3g0B9Mfc5GXjDVVddBUl9DxX45VpZE1b +GEiNIsg3pAYBa7tqJTjTe0eoNwfoeOlUbo2JAbNLBqZQCWITAepZyIZx3WVbnvxa +F5R4MbTz+uOmmg49p96lA3KDCugc+4oMgbso6376atoGLrfXzXzSa+BLIXookC3a +Gh9FhRKZx/sRhf43IxjRX7VLV+bYmTZMUuAnphdCZNCl1HzR9671XAsAfQDJxeTH +vjD2Kcqu4KrZZDnbDuhdXS/XTTktsk94/DV7ZpdMhUuEL/VPitCnigPUlWh77+n8 +tM0AiQIcBBABCgAGBQJKkVRqAAoJEHhT2k1JiBrTlRUP/i7J24J9XBhPVbE/Nrso +wF1qr02m5smPQJagDxHXOKn1zeRwrufrah75eyouXyBNL7Dgi3sJoYRZvOomQydd +/u9HET1BQ2EmGgip/dDUIzX7UbPnaKaNyeG27lPwZpYECNrFACbRL9RYiHsLOKGJ +V2bnoE75IyUw+5pPGnaFHdBZOtrAhiV2Ej1HJY4M/ixTzRM/tnAwhBpubr/exjhi +jBdLi075UrR8sAsSMav9D5oHHIPRYaFKLcAcP9Q1rmnoBVn70l0Nwj31rGC1n02+ +uXIHo5A4BsnQxQl7ZcGASdluerZrLjOUoiEjsO/FmAuMrVID/Uc/KTfdgTicboro +3+kPPhHa0T9AqYdniIqCVcM6mtNcL0tbueV5P3ZPXH2dQZRb379sqlDvfQWab605 +PueMqJseA2rwz+vyqIgWSj8tA43+YAUY7WVHCSuhRymXFylI2r+q5E2X7z3oCBIs +lFiNAw/tW3PqLLdeUGW4TEHSUULiDPPpx9GEIjo1kq5xdfY4zuyYRd2OhmSnabih +ScxdPugQdbzi4GTGGcRyNvSx2DwzgNSdBREdqghTpLWJFR47cr0pIdDB0IXjWdkj +chNc7tf4wP76BERgqk/jOZL4EAlVZx5bvkFtGrO5Fq5bnAbdJ63CTAAfUXjJ4odq +mKt+Wxfdz9cx85U6Lq4o8CAsiQIcBBABCgAGBQJKke5PAAoJEPdYzjGNdyldn6UP +/0oN31w20cZ3Gz6Qrw48l6W6X5gce8HCUR0QRtulw4nbSsCQ0nwAtKG/dCXNGca6 +xjewowetTwPsQZfCdrOFcep4wmlHNR+PZ2TcI7SJvBLK9vtVb0kY3tCC8FuO61Tg +HKHehl7ixoj2rVM1/Fr0VRGPB8DxiS+hmAr2plcRYhssvu/LokSljM/VXnkwtdc7 +p/DwHNEnncJfeoY3obkD4mPGjAB+TiYjoSEN2IO4/arohxyHymPmJnO++4h8JAmN +3ba9Sr/UpfIEawh7q9bBZOXo6M2lpN7jvMwdoxx7uCNOY6B4s1M2f46OvtHMqSKu +81rZ6GiCJcqPnDkbLwrhrVCq0w6lDgWYWG8xJQOych/MSl4YL3Z06N1JEXBW0JXx +rHHOVDnI91zsBJ5C20OOu4R5RwUNEHkfDkOlSqvoGoKVFtY7KS1BpbrvgtOhf2+e +Em2QIc4wAYbA8LQ+UZHsI+OZS7oWfxPpqQjZmuSmmzhqF0315pQY3iuiuh6pYjCj +AqmgANjw/58rdG4scP3q/5IzlzzIg9ArJWdNKgfFuktWN4jQ1w9w+1Xg8EXHKbbv +yGjLplXG15vYaAVWalSjHX8U8QwAkWhRNbqtQuuMZbrMVtQo/UsF7Lu/4Y/rcZ/r +wu7M8GrMn5WMql1EacIMH2dfIpC59uIXwIkplwaHEjdbiQIcBBABCgAGBQJKoBZJ +AAoJEIGBI4OtKJdVyDsP/1prxBZ8LnyeE5cNiOiN6yoU3GAqUy5gK3fbiUG0V2/n +0uEXaZhebssFFTRPT6TICUtGFoOngYK6SdB204CjrrwVsqPMh4fGIiVdze+CkkrQ +YltokNsoXQZjH5Bhrr7tO5/Bg3mg5JHz2qRQXxkS0OhijyC0BxHOcBNdHubTJSbf +uPxTGM0L6A+IPMu21Zzw9xJW8i7Y02P9i/+b06ZBbnJFxuWN+xJQRwmuLs199cG9 +o+e0eNzQnExKurx+NqLqUWbqZ5QJoRS1ayGvPlBgu1HLuV8NkhZonePxAhJlkQKX +Y1fM0xgCBtHo0KIy4pt1rapRvDp/qbuTUX9foFWHzJsdEfNarPRSrpuidklFMGg6 +Nul1s4xda6YzeXnapPHfaU9oSO9OJUJHpl0G9meAgZjjCTJfMYRIgVhaaEdgMttp +/TQ2NAAab5KWGdQ+JKROERuO88tW5IPEGbh8f8O0ocPmENN0YWOBC9OIqvjKgkO5 +OYK10wqDJtYG/bBrS68LNtU+C06WpWTs+pAt44dOMFJbVHcsuKoGIwmEpk7/uIsz +wKKtZQAPeoNsDKmSzhSdTzDdHwvpnID/HL1olPgStBRlMBPEEd0OREmePzGvbk4p +KhNdD/a6gGxnTQ3SQRqx4IjvHgw8+No/eniuxsvLGSJHxbVwn36+TUErQWIhU0mJ +iQIcBBABCgAGBQJMXbUJAAoJEF0yjQgqqrFAb3AQAI0xvjqEahhJ0R9XJzUCKcKE +ZZyZ8K2Ox0/4X2FnlfmqgQg2Kwl+VPofE26oB3XvF10wN1S8Y7Jb08i7VDO68+i2 +Zu/dx7d5xzpBCk2Hy9GV+GQ1dsj+HMFc6JdvIhl6rHzt6LjzUfjifAQaLpsJhNkf +dpxwyJx2e46VkpfP6LiBawRYoSufhG99JjenRh5w89Txszf2MtmSy6QbkGwrjet1 +kaHNUteOoKLkG6wZ969W0vS82LM1peTIEKW1JJxgRM36qRn7yvre77wwfNA88xCF +ZhYQ5MJbEaFHVsqk9e0u+7OxTlD0rhXhFoW8fD7sqFKV5Y7ydiOokKm9cxvVHsFK +StPOB+mabCnUir32LZh70ATEWt03jJAq2BKsYBnbF1eo9ftsmVE2vbjAhsxR7fu5 +nb7SwOMvfc0g80yuPAg8HKH0rf90EIVvR0S6O06nZBzljmkIszl5F+ieoB6KpJjA +HPvm4WjYZd31yhd1S8XZNcSZxIn69goXaLoL4wjaB/jhmxeS5BVfkGOJmKDdsmaK +EGbQQSsO+g6aen+vUtCflvnWABeLBPKd2Z0eQ5HXiF7Ay0CQXOLl1/cb5WvBmnNh +CI2k6iJ2Izv45trTC+v9JqAogrsQ6mTl2l6PUvXctQtjKSPBlIWWoT0wXOMsDnq/ +5iBxXvkdSAimkeJx2a2riQIcBBABCgAGBQJMZbgcAAoJEDIkf7tArR+mGwMP/1Mx +YalclfwdG7EV/GGnFwqKoIiEziVB7296JH+3YpsKhVHfGVOGCV79TYxYHnf9D8sH +qsNa7TLp5Iq+PZOWsRhPjSannFn0xcgxNDGsT3BTjqMaJzU5Eaq+kgjkfytdYCzw +ySEqH8Um12lFVwgkKSW5yG8038CKzVjdtYDVS3vuSNz5ZyqZv0XbWQZIH1e/DxmY +rpLYNQeUbFqs0DWX8zjQ+dFdio319m7CbDdfHVJK3+8HFMQm3jLieERdmfsLW6Iq +7VVB2xPcJl+P8MgfuhHeYcK+JnnL4ngSAf1bL4163zLU23SKBqDILXULkeNQCcek +H+NVYPOsPnlZ3HlNuTJb6/rZi1h7IyNfV9gxRyC4pUlakH4WtoSMVCKPMwUBbCCn +9jRKB4GyjPgnoZHot611UweNvSEne482vnRkxmbSTl3c2lhXitv10OXbH+WlaCjz +5ZFURjXKiJM9wNqsVbC89F0utT2cRgtQ4VCctzuO+XiHuIQWDeFJKjaTg9aYJij7 +HeZiJQi6TDSTA1+0NSnSZ1AF4Z4AcEOh1Ai20N6oAoGAlN2jnFIco082n2iJycYj +gL505BYih8TFsVRcvUUMgzBGFYN5xw8pB3+JogMUcncde+ZGgo6AB/4Oz3kePZDm +uf6A7oRwREIwZ7tMOZhBtJeJQk2M7yIuE0AL1p0KiQIcBBMBCAAGBQJMX6pqAAoJ +EMJW+9UAIh6TgPQQAIF4z5LgGQ9aCIHY/JSRqVZMeiBAHiHHsxL1r38/NZw5UPZu +56hjSjFz2mxRo6lpu+bvhPjUGR6B5WaUHb+/QZHN9h5of643l8e7w6APmMoflf2X +F0+VQKIeLuTqXKpPyqLwgAlKtelZByAz/x8HH1PkYkRdq/h9MbXa3uigAOSBcARl +MT1fAAVI1TrHj9tLmyVEytJqlk+hx0LBb5DouXJzYQwMpS7ZD13y3RGh8o/wU2pS +DOB0HcgmmsV+oFiUq6rkIzAcTLu08FqUQF7/if3XYD9y54/HlAWweGDdMW0qBXXf +IaRfYBCq0qGd86dj13gwD3msNwnRs3IRa6WMGug7Y99ZhONJ+y3e1WrZYkrVuhH2 +/zyl8FNGrfXBN2OThEf8FnB+BNOaqSS82LNOVduqENuumK+VS9gevUf1hfXdU2gG +mTmVYAPKQRPq9esm4J8LRN9K9BvkAVCB1w7wbdWlZyN2D5ZxqaeG6TO0wHIinnHt +75deG+MmHE8IrN8AO500uDVBluJSF6RCsfRm1dTn/YucSZxJSCxOO8sQiCUGGHcu +KVKn8/e0UkDKDzA5hTXgeNgURLJ008hW5mEmQ0WvErXYkJdguij6UFb/2LwTSUvS +9r1RL1U9fcUqfaridCS8cxp639s08Z6nlmZ0DdL98GKlzzE5vofNPU+LQitPiQI3 +BBMBCAAhAhsDAh4BAheABQsJCAcDBRUKCQgLBRYCAwEABQJKOLWZAAoJEDkUtTL0 +376ZZH8P/1Evam1Hapat8sGsQm3wwiLsOHLoN3kJe/qzRhtEeMOGvS4anSA0rGz7 +/fO96M0shj+mHGYKK1cCowsrJslvJIZnxN9D1g9Zv9MtX+qVrnA/Dr3l2FS/nsdA +cv5IWRdePNADQ08Lt/8cozYUFK7zxVF5WgaZmxUkzNocyS/qhOtF+ikWntCR4PgO +iCo86dsHep6vxj7qvTTNEqguWaS0YuW98LboSEq85cQuEt5jcZfmGUB5Z9Nh3BoG +3H/1Z2IVX7MksoY/o7OD/Nb00gwjlgRbX2ZZPBwG4h99iro8iwtwC3wjlYWo3E9c +9WAWF65bWy+ygndanYSWZ21ZgJ3tocyzQM6FO5G0aQqI3WvkzWVhuFzfRdgJZ73J +KppwACgszibafll9nwGFpPto+UKMlUH78L/k1mP9jloW8LCEUuD5dd2u55GQIhGg +FQ6AnFLfijw0YQmnpEGB7IxhlXQS8BC5SYf3UJCjK+X9uDMwLobJGtR+bZyk3oP0 +cfaM197rBX3Wj5wwbHywH/Ug+q6FuYuF65IJPNT2KAKocxVEdJ9TAwT7Nf/OfAYq +vbBkWOIF+erO6Iu5mhQ+ghbCNE9gMYXPQZ6rJGzcYKPSTHNgPpHzDhrabQxx2zyo +JPiY+DAgKJzN0vmEYmm0b6/JKpmkF73abW6+sJNj7SpLnX388cKkiQIcBBABCAAG +BQJMb/igAAoJEJ0LXlse7I8OXlkP/1j0DZquT13yFH5tLDK7MCF6UqTi9RoSCvCL +J5h9JvpV07KmYwg97ttHz/CPJC500dfofDeRzHfEK8oKvXhk/oBQ54tNOFrVFy0q +faOfmoR8+txdfxHwoyT90nM15ww3QqCjQRXSC3mic/XTSO9LnsJQzeW2c32ATshB +2ZbYuNl02ZEWWumE6oHngcC9jFS8x/LjRnRGCs3ovLz6Qq0MDFwMp0jIZnL02Qae +aKGG1gcX60oZDIKoa6lBwvB8750y7sHPajCouyRssLacjIhr2RIIB8nlmwnCl9aF +174lKgUpShMP9zLr3Go1ArUGxjcCKijg6IgOjS/p7jlSVWCibVyfsmY0u8HPxtWx +kuiQz8r+xciWPn8IZSlt/+cP6YT3H5vb1s3Zs6/5uNajqc8J2vUYR7DVlqCgFvrK +KYzFosBykvSm+W/Lki3z85koHZdVEhguVHBm03Ug21s2IvieEVtcxVQZH0M31Dql +J5ln47pTOQMJG2LjDE8Q045pRSm8PqGF8BBcobTUsdriH8iOGHcO1o43VPv6SC93 +7bKyvU3qgUElWQM7mZtDIUDYs5uQhSUNclWyLlnqx/GBMR//kUSTMDu1huHMRF1Z +FEqqxf2MSJcLu/Z8/TRbEKXmKcA2XjlviccI9jTyPAEGa/lMTvoleuypM+Feo31V +/YcwdYDriQIcBBIBCAAGBQJMcBwhAAoJEOSv68YbtLKJeB8QAJkGsmun6i6l6yCy +9TthSQhl2d5mWvAJmolS4rEBqgg5I1T1WQZkY0vkf7nrcbm6Z1E8AV7lfvQ7ZrDU +30RZVSgX2QiW3Dflm/59Gx+1OkPMX/feNgvgYEuAtzfkC0+0h/2dS9zD1E3J7bW5 +2cUaR6bpnloTUnEs/DqV79EepyP+ewzdZAhqopZtoJ2Ryce4tmym+PhIrXb4/Y4c +80PRb3sUzBnezGbQNVOT42HFnvi1PE1rXj7lCVau3TeldD/a/5CdxB8/r4EdX+zp +SIViKESYFqMmBsqP5nZUppboT/RGQiYgRDwKlO8l+WYDGAAdpsjzb4Z1N4yzLlaR +rCHhjOGA0Aq9pnVCYvXTpEd0o1XF87qR3tHrq6ceCHh5+mShIaB4K55kl/RiGA5Y +25t3ixavmZKuJ2x68fOWg9lkv9JYEiXrW4WfNeGm9uD4GUatLXe4Bk88JuK7ayvZ ++rIGDDGCRdqxfgNgDZ3hmw9gsO2Jsq5v26SSLlEVveVjtOOKefky9rclC7kcKtLm +Ew8p+eQxdyKe8SMnIrI5pi1l7TAQ4R5J9/v5w50MADMV3spwBGv+VfdqA2ZQytMD +vczA0qhluQW2h+fPgmu1HSR2Ax07TDE05+AhKVsuyZEzfySvJ7CwdjHxIt+4BJla +eEEX6HDU9iPEZ9A+kT8OwdJCF503iQIcBBABCgAGBQJMdCrMAAoJEKl6dwK6+R71 +dKUP/0PvlcpmKKuwp/VRJhLdxt9s1rU28eRT688fW1htHCbhvvlpgmlhlsC2greQ +jaYdspzKQqhHT+aDO7Nxb7KcH6Gxia5avSqFVVShsEaxd92Gu82cO7LUQXKJLtrx +gTsJoZUHTOfgsPB9R1FiZLnee4WB8hbOjy5vRo+JK71D7dcbA8VEndau+nBMGYFe +JIFEqa+7cTqhbPum7ueAgHyFwrUb03ihs1b1Za4Lz9wgcLDByl/B6n8TKJ26iIoT +wKSU8jBg0kiC4JIvQVf7AGX7LL0Er64fKnqyZfigkj0m8Sv1d7t7qPCvTacB3eol +MnKWraOZRCCVZmRvIYSwOF+j8f3IRsP2mRtKynrGEFTX3fgpudNB6qHL16YAZUdh ++ikHxoNZ2d9edfOxMuvZ7a6QEWIDhOHjR8jokgMzqE+htkWGf7v2PH0Ip5vnQG3z +mSq1CGgndbXz5vVFjp3or4WeZSUs5sXRF5qQ0Wg3nyoEn9FK/r8cc61aGvJ+TH11 +cAWjKZoJz0CUqPWqDZgoJpEDQ2HZBK5QAHMllk9Cn/+vpWHnJ+k2ELPcvMA+DMjH +aRmyimnV25AovsDCMC5MJOhp4EkSWbw+pmdKMzwOGUgsu9v6jcWakcxFj6q3ddZx +v1EiHvzTo48ilRzsy5j9WwxyHvB1craGM0tJjRw5+E0H7FM9iQIcBBABAgAGBQJM +duRcAAoJEK8ig6p24qx7OFcP/1l2Iifkcrj6HaJUE7UGt23cKO7uzk37MqNFCEIq +G0KTfUikHN8w9x62z+9pXXJqo6htFIjXHH+wx9pihJgZzW+aFaAn9NS027H3q8nx +DywwTjVbVvi9EPgqGWOM+PyMcJMntAehnoVvzIJSN4Zc8FOoa0Z+LOEIJqqbIWCc +iHCxIBPGu32vTnH+oum1VG2iT/vwxDVl2HhYoPXN5bffauXVuk4oqybsf983dmHl +s1kgTVtl4VaPDol9yYlcQ9I/gRC7OIPBeBkD/8LYzrzQXrH8WP0mpgfkn/W7m3Jn +W89pWTTSAuyYcBnQm4CwV8nTNShFefGkXSDBctJw3AoNek8X/nvTfXfTzH6vvwBP +n9K8AhuO40fZGm4EaSTUntWNICm7m1gBvzpoy5fTUmSkO72mEswjvuuuGiHSc54q +yTUaAPzsLJSv3wYMPm5jLQ49kFge3D8SY85ExQ3F4Yxqeo1F9CD4cWRPWFHDAblv +cQebXNQ05Nz039Ca8+doYw+cYbFKl7BM0hddAIjqlSy27j6Hh/hMWZXn3ZRFPwJK +8qGP7oUUTttxGfgjqH1aDpm2tEpNk++F0Z/B5TOU8QV3+V8vCEtp18meWq6ZJcXN +pl41/KJ1pXW04X3WsRtVWvUUgrEVkfE6sPuun9e8FH5jfSToSCjb//pvoNQUijYM +nT10iQIcBBABCgAGBQJMfgORAAoJEHUatd2nlnnMhrUP+QFpgvJyw7DHTb9Zm9HH +Ka4t+AG0xIOcr5Uqdj7RtL8WWAcm+vrvCkRyf8cfkYsaA8hXoVVCshMjIArsSADs +XYW5N2Av71Fjm5JoyUk+R8cG28gSrqizhkQuMDAx/Gyh9rqvPFFFuqH+s5B3rMOv +4fy3FGTOys0KULIaYxDwndYVbBq2iz7EIKNGsjLNoIYcuDakRa3QfsY6EnSEazh9 +J2u7qWcviDTtfVfl8rpWb2/B710S2FyKd8rILxCnDj9d2HgnyWv+AEmazop8TGde +6Z6DQxaeBIrvlKv1azZ5G4dkJmBRFXN5O7GgtYHb/s8OgcaRrYCzWx4XJ+L5trNb +MlreKGI5AM9qNsARykI30EBK2ZEza9Uf/qtsmndIvFN6ab8eO0x6UpNuSgTiVf9y +iJkVmUypr6cx9IOSUR8xVdp5mfcU6EWhiPgC+BFTei9YPAq3oaglRQd4KkQlq4Pk +lIDeBCEA6vdzJV4e6MLK5AnGrNt/i1IkllrjlRaW6R2mEJA9fkHkt6rdbBzUZOl3 +IOQgIqbXceFEyRviD6ol7pbydQjrM8DQx7ezUpuWgyD4kVXzz2tZb81DA0gp0GXW +a+1h9TeTvpvl/0oYF/VTZ8r7Kjoyxem7D0bYz6JB2OZR0Yo51ltaCDdD3eygniiB +Jla8bxzon22SFHFr6/fPMfSgiQIcBBMBCAAGBQJMmNI/AAoJEE+fbVUO1hIqM4AQ +ALjg8siIOLrSGa9NENHPwM/lMqbYbgaPiFXYayitdUSRbO9uzY58jmd9CyGDf4qr +TbhtYhM9nDxfO9mAHvkqC9iKBIrtIXKym3nt+FlIbriNIxJttd/0qR2MUcsSdrQO +TPjrok7gLbm/AdtY6vZRXCW+qM8EVf4+lfby2nu+Hn9XnGQsYVgxdAurWYiwCYoy +UHO02N/PLZKImRJq//h0wjT7WROLM+WdNmDHnsloiTKhORjXRCJUo0JgzHK+pMPh +o2o5CF52sxJI7Gx8bVwjJucy7qQqlK6Q0/Esag0mGzKBI5qnVhtc6S6xF5/ocjB3 +zVJkaz+ILgoUuc6S4t3hhm8C3aj2yrbvd5hrRAgzwX8JXugGIn1GbtA6E1E2nB/q +DNLuG29KPYhVgZ4f4k5lfPCZ/PCZf6CBZt/FtGxavj8sYnjJa5O/2tnG3ebflxPF +UjQec60t/cbnUq1Wadv7+lEUbEjlySlJjzb1/X9FVBSkJRUnB7xG4xOoRKloERwH +wFgrtdxr3Dt14Xm0iTXYbv2XK2A+lof7KAvhHr/t0COlH8kgNDExLKCe7/gj5asB +hi+MbcT7g8Bfbx8Jln1zKSU/87PUk+DpxkrmUJH3+QDlPaUMl51I5hBQu5Dfqj6g +w6goI5ZzruVoRH3qITv3tgbHZ+6J6JtilRtymPsbO4vpiQIcBBABCAAGBQJMpYF4 +AAoJEJwxUDxthmOWjywP/ia3eb40KPlbWXAfvWHaHXRGhJZWlay492FT84OrCbQB +Nt8+GAbeOF0Dvd+29822++swRzao5Q+0DKPBziLGCWAItJpH2Bgo+DRXZ7tL55N4 +5yQRn3LTbb48VQHpnIW3RxcWbj82LZ4zHusb8jGWZgSAUL16Uxu44gSJ6D69DQJ+ +L/qDbD7Cd3fOBNhIwh+XYYeJd/SzP+IheBCcRmpk3+C1GAYZDepWDW4sM50NYPDG +hGFD04+Y/fKJ5E6TXtcudA+nCbtj9QkQAGea8N53llJ3J1G9YcQC7oedcGyei2vD +2+yfTqLlCj4WejOQlmPuSYEsYmEdqb3/Mpnum/FxNY9pBr7ak1Q5gtt+Gyg5E7il +wMRv7awXyKYlC8eR+iXTW1nYQ6fDPlkO3m5pKKCBpc9+oATba6ZB50nLo3AIvqsE +iW8EQPgFBxGsbV/nlzFcHrhJsixBrpgjcsWT7avsGWmr35xoKpsOs8h3bFEE0tYX +9VmaKFFjD61rSIScRn5hQWL4UEw5qwm6xd3fHHeJFt13bkq6DK/Icbc5OkuDFDhg +QL67ru1XQiZrtrFItVV6nFVeIfi5L6kqoCM+R4fNY1vYs4YC04ouz6A4rUngutC3 +dJzKbl1ighPNi20TcbXROdONZGcrwm0plV88tobqwUZs+JIve2GiCEkcIrSVN6mD +iQIcBBABCgAGBQJMrPZkAAoJEAbqoGbjl4MvMToP/2LrQ4MeGJiokqCKpvQoWmbn +mqcanAhOEsXiYO7Nlm3kG5rtQ00+pSUGyzTa+GVPSVEeQGmhLref5RTqtsbAHnrb +tKwsEG0P+jNFpfuc4BXLBYIQKEKp1qGAlsH4+gNFstZo7wVCbJVhjPN+sqEg8gFv +ACl4CgzE3KhZ8GGR85AqX0GHNCOMCgHEDuwMZgrVIKzINc/QmI/4sH20FXA5vc0r +QEUiWSDRk9Dz3sIVSUUJzNhne2se+4NvsjmRKPryIIPKxBWjBVPn4UmMAKfxJjI2 +yT+QhIeQrxiJMIKFODVvnRXYQ8Ti0VLanmhxbYWxeFuPY/Ijo+wI3O8bwerhCqs9 +Kc7U8SDoN35i4khbDRfUuxZCSqHqgKO03ZV/jDQdiSW7U1G6ttguuiufSgzmhGhO +Y5S7m0ufL451lIMZH22zcje6+6JLRKsv5+a5wmYAPZXT6s/rGbikiEuRtAHPErH+ +lzJoFSbwfOBKfQfv7qpKWdhgfmhhcFo9bCqRTJ9xbJ/SKyLBbCWDn0IUqwahu5EQ +tLZ8HcEkMyo5At3QboPituFozJcwBb8XtAjbU2UcElb47kBJTls+SGctdyKirzlt +53SJRxBAg0gpxHnFzkVhRrjrq5jCh+i3C+PJLh9QXwjbNBwvQOH4I0S/2I1fwsHr +dgK9W/KR0ifDo434Pw3ViQIcBBABCgAGBQJMy+bHAAoJEEsHdyOSnULDH48QAJ+A +GuRDCl/RiLGNv6kwfCxN5FsDuPf6XFAkhrAV4Rq6xMZzGolQR2WnDzpf4BTrY+yq +K756olSXXBHVt0AOeZ67X7pnXP0B+AojrrvwrmrzdfLFv8MiNKxS3qUhbE3ZDEKD +3MHOEdhvRl+Z9jkrJJ7lMlgXVrjJ+px5JChUDLcF1kU2B8m3+ZiuqIMEHHVqWfFu +aflf5q0GwbdD/P2Ba1gyPNz9y3evWdlE4zTDYWW6XT3l7crhLXdG1jsvBurnO/UA +fo4Xai5MCFotWVgItFSmbQE+qbzbdbnUg+gSG74fZmG2nduppg/8KTRKEgkxDYG3 +5+phsAP7eLUGRm92K4FBkuL0222dTnvuXCiU5su6D7GxRF83bym6KGIUfnIS4t77 +DTjpHhcCEZKGNNXTDuw4MridjS7NvGfHEQ/bc2VC+dDGPM/WbaaA5M3oBlSQUopI +fmtdUbBJuxp0vMUu+HNZsBGbLxmsbo6OUW0sfA+VXMvfgo+JgbnqKQqDFa4PEAb1 +cta1F7EjjHjnZNjZrfv76trvADNv2orh4964Z80AnpCl9txNXWYtDM2CMR5c1yps +kFT+zFamMbVpBZ5LKkPvh/ZidiHwC067K0yl4wqnplu8229SW4DaOeUZ8U7AymgL +7TCyXD/9kOEz9tZnSask17vtmaFaqcMjbEscJSpiiQIcBBABCAAGBQJMzHE2AAoJ +ECUFM8yim3ZPlbMQALPBB7weVJ8k0mlm/KnLWhtAIMdAT+K0AI8dY5xLfaA9aw0c +/3cCn2kUa7UumDcxbF6dre9T53qYvs57eje0pE14cgJW/zhurXs8HeWsQcwmH79a +9p+kxRuReSolF4Lsd/9cxyJ4FY4xPHICaNr+5oVClqzYOJTlB8NigUHbpxnOlcX9 +JOuxWsXL0v5av0e7mJKI/6QLarB1fJGraxURBH150jKcgM/VyxT21sR+eR+PrRgM +1LLP4hMcBaE6Q1LjNd9hF8Ro0gpxfCrdZO1Wr4vMS7ZpdHIut40JTs6ejIVDQf60 +3xeMlbK2oF+37V1nIFf8b1daGjcWAzkd6Ddtzqf0Xfcf3tUCqlkOS7CbmuQd1E+B +edV9aRZfOPPHnoZetJn9SwoSrMFZtaXI15Emr8BOOeGvdzEqLH7gKUSmo7N8LVxc +2ohrc1IBsoSYB8OTSrvTMXt82l+I+1Cb/QPw0gSfIFt4vzPhvqi5ba81HgkwG5kf +LmNwdjGTXTvfo8vmYxfvEj5pCJ5vb7wybMT85BBjjGJ/bXwEB6EYwtN2EQ5/mYv/ +ZJ3Jq3N+73F0aH0g5uAIryxAQdEeCADg9FnlDugtXBbHu0eodtHCB7j5d6jipjD5 +cGCQks1NxDaqUvOwFVceT0blCynez0NyrzH5Aln1gZQSfv2gT67stPAuPFtNiQIc +BBABCAAGBQJMZ82aAAoJED0Hh6qvbGHdou0P/0cy/ziOZHTUdOw+wAPe1f1In/Fw +s4g5ZGZyYQC5DHCEbCmfQjIYBg544WUty199WT5nfeovA9eAiOlbjIIIiyhkqrEk +W+HHI2T8msC0RK37q5FlkVsaT+vcP1HXsRzAJNEZe9KAzUkTXc0mKPoUd4j3lVYD +3pujeLP6VKraFz0Y/pDRzYgjk335/S4bAitKr9WQ4itfxHX9w3uJq1jJvcXGPN5+ +R7mZGY1/+FKJXVlLIvYUSvkISmD19uO0jdLbYeChbPckMVC06xLh6byK/KD+xawM +xlMx+G+ktpDyUKuh1CKQJqE3vHS3VXISibsfnzq0MUBpHnt/bBKuIEgsv4E1pzev +JdxK+mlwvFhHRl+6HwgECRI/UUVcyr4d1gsSy0s6om91Rq8Lgz9Da3qFPGIQqL5C +lTwHQRNtDY05AhLv1IAkK5fxfnYOu6QzJXviM8DpPOUYhqo9yV9b+GVC1JauA2r0 +VXHmv+lkXy31LOHvZgSk+TX+u5Y7yYI0gxGMg9RDqCny0gk8mFRC5IKb/2qOiKAK +ieJyWhAshQoo4dRHYKu53X7QVLV3LqV8X/zfkU6FznbrKDHBySkDvICeJl4ECx0Q +AA/wsfL4DEXBmAe6O2T/8rY5GEgO0UHBJKUx0nyfNpKhZ8lgit5ASZyVyI76wX7p +Uv4HnL68Ijo429B4iQIcBBABCgAGBQJOL/O1AAoJEG5gi2N9iWfpJnIP/jnDj89x +6rfmCm9m11qPb76w8qyaQvoRFb8vZxNkw81JHAoF/938p/n7uAoztqPgKx5St9ga +XZ/EySMtZMTC3g6PQQLVcT6mEiSn7XbrZCYOimLEf3iEJ6r2P3cqHEdL2vVzSqnH +YoIVStFabC97WRJMnBYZn3NmAd/dzp4qRD12j0mN/2I7eGE1CM6ckqiEjO4trXbL +EgDH0GD1Pcfs1rjgz7xU2pVjRyrwPBSJhYYEJz6YJcdU05LZbeZWIEHYz8VguMBy +JbfLfTaJcXY7MeCd7wxx35k8BHMfc2SaLnsqscybVdaHNaiErfeVn61kjxuWVxTk +ZbpkfjFBCC1RKqwRIt1xTixpEM1APuuUpIjtPDt2uuVXQ8DYBeFl1WMh0/EbCbRk ++sMVed+5IFNQ96t8ejhKBBGD0VBhlhdCWxgizTCPVPEOjRUoTGGO8MtYFlrq1FHC +t6/T2tKiNyQtfpMjH8CRfZ5c6/8uhTm3vXcwRyBsTrrA2fKEk/dxvKepTP5UNNk6 +xpbQ1hDIzTpQotUDYSEsfOjHkHh+HTmPmsShrcDc7/yymGhpT88F7WZaB0vhjH4p +CNTAMQEn+kwoR9zM+XpEzHtSdWaAGgjnqHATvKp5nGmfq30ngFSJyAlCatMxgj0p +wz9VckzaaZnKmn45XCdUQ5BuqHfCBJysEeEhiQIcBBABCAAGBQJOMD9IAAoJELMR +jO+K6o/uFp4QAKKSwPBD20XM6mTbVcjfbVi4tk7w/KBA/p+l+gjJMaHcTNN/liHY +uCKbdcgAA52EPjfzkpqXJhIfuzufyXF5fYfTX5/dxPiuUhvR/Lgp8Eakf3lM7us9 +GI3qyn8+SoIr0nsuCZcgZAffNDnil2z3koUxuV1UcwLSq+bYYS4HLGGEQzyP921C +nLDXRSz3zHCu/yfkjEcagL7DGBZDcH5AWX8TYGfiA7896+RXkR/z/woiGsR9jQqj +05MDmU+1JssDs0nDuAhX2/Y//5dbYAS/2vlKC5JTYdO+aYYRT1fE6JueRJCTKB7j +tVu9iBYyRx/f8fNzRzeYRMcJTKamsqAg+mIRr3AROI6/W3goCaBHK62NHlZqPg8j +lSGy7v5E7/s8H1RY0jhezY5FMMWAC34vllJ6rjhvMxg3TcYzf+iNoMPJ+7GasJaC +VNBiHot20hCCDyK44Godum+a3sdrAdrpXXzo+tLA3b19YHy8YNAEw11yTrXIJWSF +20gtV/LhFuQbCg5qZiTQ1v5FeBdhA8pA6fJHJwRhjQ5qMQp/i5WfmbzjCMvd6rrx +ezhlXkvTMvcOYP3qVlAWMtOadB7S/r43AXKTu9pCVAIsHDaO8bHfzXfK70OtPutu +41anYnJEzxlSttDfgew0DgW7BBito46qjd9WMLXSQfnxi19pUZaNHEo/iQQcBBAB +AgAGBQJOMGgOAAoJEFDDY006KRz5tS8f/ivb5+sFALyFO9xhqb88r925nU0BAr+y +vvhf9+SD2iEahzqkeqeygfrDpnQx36sTi3xGeO7d3OL4VDhZ60c3Q7HezRCIDp8q +DKZosRu5lMB5BRt5wVdeEm3xka4/d9W0Re+pAqG1R2yQ1DFU0fchyz1clYPV45xt +v5JGrTfMtmPSoeUayx8OqSYy0tWB6I0WPjycuPsgOAetumA4jAL+va9iihvHrmN6 +UiUrfbQQv9DOZ5hGW3FeDaiep/7k0nSUl+Cf+slpNCcCbBflpS0r8xu6q8d0e/V8 +3soisIBOg+MUViY4H2xB21Uuw43J/s0ppGulKwJHg0KBJWLaX90Fb/M55lCXiAnq +fqJMOCp+Tresl4nGvvqi5YlKe/2pZTKXx3WTIccD8Yh8aAyp0Vtmb2/5NjG4Weas +HJRI0GDsHuBrFhR7FrDPRZwjB8MiiCx6Z+r1q446lh+0UPQOi9v4rDepCgGde8Ng +WWLj5RgfVrXO+1b1BOmnpGnVqladk9H/s7AgIBZrR01Ry9t2ApL4MevAz7mLmKjV +CZNOnbfJYg1KSEpHvQm+B1oBG/6iokcJA7S/lm+ryjAzmLREhM3SBj7ypHD0NRzy +4bASIaR37OMbEKKjfFWW3sTAYOOq4r8NfTqUHd06jMfZO9vtW4a5ZDOeD86GqfFK +aDiKWca8y2tgKdCKNzivdIab76xYxHLKatUc7rYicSbR3czzivUy6U8vHq1t2Eh6 +obt6Zmv9dIStHspmjd95yZt4MiVxll5xQ1Xls2V1J2+nN0OODw3jFgM5t2pWSbV7 +27rEQuzRyd4q8/rXTZY62W1oYqom/pcofG14T8s2Y6eCisGo6NKiu05hzGzfwNJR +lOc00cFKkefQr1D3wOf2p7rwfwfo/TjtnNrUpNC/7Qh9mlS34B3Ld5NNlh2aQkNj +PUZpgDV5VBx0+hMI8K5vHgPARXLV/46MXyDFsbjJs5FGtrIdtHj5/VA1HCkhlPVA +OGsQa7SqY3Ek8OzLMTI7+1VR+baPtdtvfhjmSFbY575dJkEyfnG/jPG/MbMiYRqg +UBGQ+/OvNgslcwgSVt9301GSHpyM6YgmO950+W/c1v3km6rrB3tRQIN6oQNU3BSz +lvuB/D/TsPCl+DdmiH83CkwP9DOyjAi9Xg4DhgoT57hYoVMWjCZksvKf1l3WUcak +pANTC8XTH+VrNd+Qn5qjfS4bXzzaEwCzJy2PAwlosTm8ffPe5yTYEtb4S5g63vqU +0LJHAQ+9ZNbocwgHtOCEE/FcNddlQkzX2YYoFcCkqBW4r/aYKS3MndgPTFW0f0k2 +56FJ+KQPi6zY4JgZWpEnuXA8/PB6kzBpZbd4KyTTk0Mz9prB50x732+JAhwEEAEK +AAYFAk4wn+YACgkQOpNhlsCV2UFWmQ//aXjKQcfP0C6AC4Nf6gYhzmKhml88DhNe +UAMrhz0YfmGOXsw4KYVCBePpB2RSBK2ER+J/5z0Yygv3NY4N/++dnZm+HCYBEQQG +yq+NjzowroneHnvmWCpi6BmElXuv+qHKzJi1VgoBE07/FDX6Bea/f/Qsi12I2qH8 +7C8bdt2h+PrB+geYNBIE1QxhSnr1d+PozZtM6iMrVuogDVYM8mLNzq5Ei5Onmj6O +koVI4KRhumyMf1u1/zTA9CkYeo/DTCj6KcggIqAnw1tPaWKNylugYOI5OlASeIhm +ky1A/qX9GSYutUsF4UWHAcJj1aZKSgwRVMaTp/3bkYKJBvqtvxXV3DPtF2Z7KXM8 +nqJxCbqj/h/t4uC+6jeXMFDO4Rjd1WJ0VFw8lxaNeWQ5SlUwWvLZwAHILuJjIfRw +v5d+XDHgJLEfoC+NQbrhdTViwqhal25iGhV4klreFs7QROEy6DiL2j7rs6HyGMYH +YoxaqNq5DLnQdeK5xWadVzmKcDPYPzTfTgDiHRNCCrCjlaFayF6d97Hkdu5yPpqa +hngAVS5txHlQMP5amzD/0rUGKe1xUXBmYMUScBU/e0DvHEE2bzOBFw/Iwat5fQa3 +rannrofL2/JaoxPQKbnhqB8hP8laSt3JdNBDdDQ2fy0P31GrJUqJn0DhsWDpe4Fs +FnLmW2Nn6OCJAhwEEAECAAYFAk4xCP4ACgkQaMB4voj4DNqbnA/+PXuQ6lUW0YfD +b7rSl3k6dnCW2F0BKvk+wB9Nvir68BWd2ziwy83aD8XfVpaBhajRaJzCEazsCJ25 +BTPzXWbzgxxuxyYbSN77wnp5KqrE8Hs9IaFicURwZgF4pXL4HABYWW/+TSEySuVU +sCO6cubR8Dvhb3N9IUenRaC6pLh9XyvwH9MTudET4onbDE7L+vC+rYZiwKm3gxPf +N7H9Lm/G3kjka4W4T4O2IRKrc30DJC1YETldu5/7TBtyDC7rrw0w5YyegCGr4hUq +M3+rcnSPLdTfA/MLsTe4ZVAqr6BZlZ0LC/G+MLxVfXE9qv1sx5IAZtC4hVucG1sZ +FLslAYrybBFLbdFhERzGcuz1aBi4g8jPm/Zc78+zsRvPP/elewEibyEQD588WPWi +4USUUyD9UCjIwF+roImiTouzpkLhs+eOkGJsm0cKAjVg8lRsthZVzlCVlxu+m485 +4E9LZvM4F08YX5QTtE1KwfRhamxvpyqEOku1yqvl18PEjzsyRMy7mEiO3huyEVDZ +ekJivO87Hmku9fcnEHoCdWDYgzBv1mjNwkT2CtwH8Xa77uCAFbCK28YLQ6BNgguu +YRQBszpppruQPyFb8BiHt2JZm4gnilknRmxiT/KRUyivYHUUo8PnPJ/j3YIoU0GW +5uOZedrn6xRtuFKjb4S3k51+oPc9tFiJAhwEEwEKAAYFAk4152YACgkQ0BeMdn0G +nuYXlRAAvxiLspjQ0TF2FzVlID0hCyKYGvTdL/0QMm/BgrZjQDLasVMLqED1eDs3 +WBVm8Hkowq6ZZlYNUB83ng5du7Qc2VpJLo8IzSdMsxC3Lt/6EMSttTiJZDh1VxfL +3ZzVxJgEFSebZxETZaFJMFefTGivL4foIIap31rmXmd9eVt010CjjsszOWSa34H3 +9FzJUIiCwcV5TfWSxBoUUnKRh0IpWkpavZ0PCn1IMrhyILVyaPW01CANtrWkpUd1 +Ha7peALDC13T+shHXIUs7FgTZKS+3SVgPBJ6Ug7GNxXaSEEkKZa9++iVYZ9U/39X +D5HSxCs7C12lhqtnkjQ20s7AFj7YuSFUGccKBtUR+FKFJE3uMVY5bwOhObdNlv7P +WUjxinOhBQnrHyeeVaeac7eeHGorp6ar1W5X25mQ+58F/GYVUlp4Kkur2MhVfEb6 +ED0I601HG8gqiyPG207Eg8lkbQlLwYcOM37gBx8RGdPSrd4w3pFcurFOEOXjIRPx +4Xe+b213mYIcmaTW7lQxbw/fsuofgx6c7Igk8sxJUYnMj5PXcG8wH2ghg8lodDYo +t+N19EVuwCX5nh5Z1gFmZD88QY0iUXo+O0Yc86Fjc1ApKLMPFUeZC6nxdXrjG8S8 +nEIU9u3HbrUC+nCH1M7TZO1ObhWRBPoyw7qclTdPnx6wHUkCKNWJAhwEEAEIAAYF +Ak42fwkACgkQuzpoAYZJqgYjlw//d3yRJp8/plCXkN86FkN76Q87BxmpIphOxUc4 +Qvrgmb2C1TlnF87Y0wUZBXMplJsoeXRRBtxVxLPkFAQbKH/u0gxwe1a+y/RQMwQY +8+zGtM14FIBtyqhTJSZ26TOz2m9iD52G8oi2iPRDGKrI9t97McKMq/QvVEdEUNjg +6rbV2Cvr7ysjFJmePkRfdwFHjqGULOsz4fUaMwgb+Ux004UXA7Ssr5JijqDMYmKq +ZhNuzvqtdqq10mQOMJIAGgi6frOghLpiOzhRN9sBVxNHUouyqlD0eJ0+rKUw3QzU +KAwbFCExcLvdDHequOzEafa9W5/zogcEP2tdWDiOFzhkW8ScraBdFYyrPYku+gh+ +wXmovhDIQYrvNVhg29nzHw803pGRYVeyaPObjxmdv6LhalPBRq5CIre4GfEnXuaV +Lu3rsOVaJfbyomSsg7mu0WXgyCNmbMHUsSFhc6wORoXkTUGKcxUKFKK1wAI7wyi8 +uJ+iqalOyqy/o2ncynhlVk5spKjZ1ENnCftTxbTof/y0OFE9bbigBZZ03D5g6xSk +Vs2nLX6sUmEVePIBvlA6O9FZv2FRncKqRlAVTytscYMPnoeyAoRUzVMWy4cbG3aU +xds7PJijpBVpNyOh/0LNVRSOZ/lOojIK6PPIXOdESKF6m2vLovxaEt07mFAtC2ct +uyO+BKuJAhwEEAEKAAYFAk49SeMACgkQJuPIdadEIO94OQ//R+uWZAky6NHD1YLr +VR7kL4oE39v5ewi3uwvkaDxS3v8k7WdwoAWNVtmHEBSX8i4LGQSpx2gyJdw1N6Rq +7tkG1Yp6wcEW4ogMXcHRQy8sY8s5Nn900KK+UNooXQMpc3f668orHH0ENFJ3ftLu +t+hnP+naKhfda9NGJFxTMuHXM5Hi3HcBVqwZMu3YBrLHGEIlzGWOGuZ6oULLoQTa +ETh+dX3wMdMmh11vfvd2ONx87ZoroHyqi4VTveIGIfrJP9STFVhaKgwi6TisojGQ +k/9odIqKZMu9SQpLfHHdCnqv/Nwj3EQ2HWBseLPycJ6gaGYVCoSZW0dlBk8gKATS +b/eMav7WvsXN4BPYAb4aEhmRlwZ9xM4SsH9jh02+U9Gg2ShpuPUjuR1NH3sV/pWo +Kh9/1iBz8XkWmLslTEwFLd2l1V9fqvLdfXOE6LEznmZnvWQjOMWKlsKIM3ZyrdS6 +FSQt5TlLhVRX07qwQ0dKw2UMhJF+TPBGv4lUUKi5m3dMQpkZ6FX57OInrmB6dBAK +rAfX8RoJ7vuOtAjWS+jkfEjYpzsFLqWKNZw/Z3SCqHsZAQGlnfP6a2ErX5HQtKKB +uUfoQI9em8qyTzZXhFs4/uMhBt+89Lkh2Mort22VmarsV6rhdei0Whq8gAyVCJHZ +rW2t7CKah80mdMEQ5Z03A/acNv6JAhwEEwEKAAYFAk5JTZ8ACgkQntzJkdmrRX5E +YA/7BPM/JUE9D11fsu7l0/Zb3kcWe/ljqYrGTAZuu/wBrbUmckzrKSy7i4Aenwle +P/4sE22wcIpPAJfQRAmM3PY0KkO6OR2/fCsSoPGgWuDdkDDJgBt/wViQ1Fa1fAAE +T8JMunjETBl2x8jaGGrYXmZAbKarAnvZR/Fng6sCxbMeSEYC4XajObYNrFR5kFxC +SknjUt8B7cruWIYJNxm4KV3h8fpHIPsmJysqRjqwHQ2S2xJMQvFXWuBSPI638zkL +aXTxlSti4uGg+jOKDfJW57/OCYahgqCRi99giQNaUeZ1fygIMJo90w3KGEBFXWS9 +AWFBahjyxm1B+RsKGR5LevE1LpQOrdiCDqXp1IGROTTkUkf401Pg8JLi0XzJfICW +ipylCDT2WuDTwTv+Hf0j20NrqZm4TFNUqnsAJ3nkyefOY5/zx77G7nbSncZ99d/P +0odK2Q6I+lMmjrXmRm/KrpOmTRbm+tSM4BymW99I4JtMDBo9ru75p2cdgyxB8rcc +YVycdIcUAjm+cwvOAiG93eumApou7f55NZmX3SSQX5AZtLaZaZQiIrIr99MoiPma +ee6PNQsWpUqNIkAOJouSxJgwuLRGFo7wgLy6qOEccW3w95VQT7CP7IaoG9z1JErN +YAqvKPi8MxvlvHV6BicSSHuvECFWpRnnFsjw/b5sKpwCazWJAhwEEAECAAYFAk5T +urMACgkQB/xIkQQrploFrxAAjaTHbc3WSalccaiXmo6/jIc9G65AAhX9UjsQ/xzo +40Cj3zhZ6KQQE5rOGYiBWbbNL3o6+lo1hWUdXSgAMcil7eIoffK5tZwTiMdw2Og8 +d5aGczr1uaXQN3SxJoDrAkeW53xJbs7NsvuR11bDP+UfRHO0cPQNlVhbngLfIvAi +t9Befl1GKlxsyA8lLpb11kU7C9W5FSCToCfLZrmRTJ8a+zWss9+gjMQI6E932U1y +2cxpelhqRoTQPWPhq+odRwbOS8Ikx8iTCW8ooDI9XT+KHD0EvwnxA2mhMUfXC7eK +3hHf28FIV8QuNhOpCVT6PYL0NUbPLnyOnOUArSnlh9rU49D3xSWsb5CnHJNXqZOB +RiwC/nTkcSZAKohjfipViZ62y3wt1W4bdNcbvqYjUCRrs5b5b3nZedzs62yB0veZ +tDrBS6pPBtUWkF2WxurE6jacGguDZCn8ZustrqyUl0WcVYLoICEgwUVEQmAGUWPm +7qH50YmLD1IX6b9ygstbl4sn2TK5sWRGi5QPr367JUSSTf7ORbtX3HcSpPfuQrPi +fJETnbEKsHeFP0H6DsFbaVti3KhJQq91iaHkVwrm/Yfiu15qJA3L/phygH+Dvo4E +k/UF5m6G4jiiZ8hmogp504vgSfauvO1U4NJEEw0IkNMo4KvPnPGVUjzjRb4ZqC5u +OkWJAhwEEAECAAYFAk5vn68ACgkQuCohev3+CfJRRxAAhE82V23Qswbob/vZJdHC +ODwqQ1WTwjipN5LBMcAW2yKdpAaYArS6yyl8Y0zLmfF0LV1dFracfmKhEQXdHhOF +QsoKVqpKSs8bvYE7vhLC1k2088C2IchVW4bBEj79giGjwwXAs7XWipFL05HWzTsP +WxwewwSmP0DV5cMxwOsWxp2QpLAD8t+zV30t5MooxjD35+tNBJp8FxxHFiPAej5p +MThH6QTofkGccGc4YjPXw4jQgLHwgZc0/qIIm0Iv0gFqt7Q3oC6CYvBa05J0WngQ +x9ay9Cc3zPB6KSRjabREw7b3NTJJ9FqPbCPWHi3eOGtCu5i/IyVchKYFcWKLbtDm +JVQSrzZQhKyH4TNHA2itTsO3f9/WxfqGnE7L7ucqpPN8h+V3CYC0T0J+3OX4jewe +Pp2ItQjmXpfefZEXJ76Ir8pcUG6khqzCHVl9CPVzQ3KOXJgwZH5YgwoQfOK4KO3D +fBwuhy82b1vla6t+ZzZa4IGf7aTvcupfD2RGVEugs6BFCFpI0BZ9PQ17Ly8KN1Ju +BIXhsSQNLClJYTJWtgF4K99+m3HYm47Vvc7TSQDStYkjFrwt6BZ6qBeWf3j21oiw +sTC7MYD2IvUkAjmmTUcownWZpg+tPkXqhTApnFVEFulzJpiQQMTGiln1Hr+DWH8j +IROuj0F9ECvkhT6OKcySgG+JAhwEEAECAAYFAlCzoFEACgkQqviuFjBdbiwj/hAA +hf3ZjOP8xMk/pznKWFAVHZv3z4RbbABrYd8QvAjSRDtvuH9JWSjInplGq5izF31q +1euxIvGmjvSueBjtDHyTeZmIUR3KeCJohRTRVnbDKbJF+WTCJRnx5lT0vx4GDiC6 +zS5VT/M013iAIbvV0CDcnllRZRMw1CtFG8fWVXhb92xrw5gnK/21JNmf2lnkSx/U +pzk7BZbFmgEt0lzmR0u6zRJGPIhL43YAcLCj+evbPNc43zKnR+I5hehFzoKxSt2U +zRp9J3WRyj38CJYtTlmGeQ00jk+TzhM31FezzPwhKYkoHkjaktTz7b1/vZKXNLpG +T8wDtBYph7QfJ0+Xmv+nkwIFmL3zsIiHkq0Wag62n0sgWZzoGvZlMBlmMYSjsHcc +PFMl2g6/cetkbTF42oDOp2LNRZHL0sizYNHsreSI00Ray9onS8jWMJiSMh7EgdRr +HKhCeeF0PBlK3lTkPzGd/1uLqgf2A9uUY8iUOjt9yH/7eefctn4r2ZU5EA3BzaM+ +wK9AN+JrbMjA81CXcK6wW/axBokBeln5sjPnQRmRquPtpbOKoBuorga3EUCSRaHe +8ywcjuxawGpMkeWMGrdjVvZcJc4Zrq8EXKoE5letBi9Zz92992mWvS8Iu53iBFWM +mJ6Br1Fp0xtcEhL4fIR/GNztbCjdq9VMZ0l/fGjEJEKJAhwEEAEIAAYFAk59qg0A +CgkQ276dTZnSoAQVvhAAoK4bmxm4nNunaxMH569Ejtb4/mkWBOKjB2HYDa+AWf5Z +/O91XbHx748ruSt4MbO8Jze/TgIQGHJYMUMynLDZQHKIoQJlI8a8aqGSTUCRmYuH +pOOgQc4tlD9gDce+BMkxbdWADKXGul2kFLKLVaWX4Y4LLVLLpsL8BafpJCpPTOBw +KnAtVMeUzmQwJ0oWMhHwTgBK8eqeWP2PXFYRGuQivQF1gsZW3VV45nf1rMZM3WjK +p6IUv1Niwia46CRKHHnwUqXf5jtlssd+edUaU78FC60giME8K9vE3VZJhmw6hm3B +rBJek6bO0GqDK5xuq7iScuhTI1lp14Bn+tmTrby/ZIlo+EFb7A9WURlIvdWSgdTr +zKsKQ3FRSN22u253h2OK3Aauga45Y66RmXdgm9Flm/Wc2Q0Ow2On9wFn6U1cEmvL +dXHfm0ZbA0m04GGaXPUZi0wvnR5LyY1rMJmZTb5GeIUvZ3Cg4AHc8dNQTVjwgVzb +mpURLDdvrsdiP1G4z0ybhzFhmx58mN6B6oyRMDMLH1rAOel4e7SHpfEBnFQDI+9S +XhKlY25uv3efWoSRHUOX1oo8OvlNletauZ6Ms5xBV22EC4we6tDy9ROsOZImDul+ +DSv9p1WdUC7stWy+51GMEzXi3nQA1N/qZuJa1pL/3kxpv5hAESI5pn0Vqa0s+caJ +AhwEEAEIAAYFAk6Q8ssACgkQditXu3hCBq3/1BAAoQ6tq72iW9RQkJDbRpBCgkP3 +7Ec4A1KLp/gpt3kNXpABtrRHptWLbZBTfFDRFzcxopJPc7He2vigJn52onXtEKV8 +neLlOx8ZaJ1eaEY0YADw5D11NzPwvFno4jGXZ4801Uez6dRhP9q1YTZ9gHfBF0s+ +m/5UnkUt4z0qI/f7ZWYgorgSLMZEhASEcyL/B4dn02stWj820+nIHQCnRgKSKtzg +g6KTJ0PLk0l2sQ+vnSQA1D7gQs8WjMu8yOpWILtuZ6En7GnLYLL8q+YEpmGp02hL +e9YBdxpVpMNZbfgAqeSFVEHv1E2jHSSdpOulOy5SVZ5mfeD00BRTdW3CH2Tw3xBP +HKKcVIOVWyE7ihfg+5ziQ5Rv0LbnhkabZV7lwGJg4tWYwMm4uFeFDAdjRpkh6rMP +eSqJCq13n792NX4L7u02uHyjHvR+OsVNgdryyXXGSH11PoEDvvaa4TtuEQDpbzQ1 +/KBcvGfWTsx0pZjf02xjz4K8CYc+qt7EAxDW4JQsKm+VfZqYwvEsV7HyEmVQ+0HB +bK+1BYHcUly+OgoUP2ishyjMT+IwNsZowO6PQjcL8DQkaduq31O1PZThUksoiA8T +CHslaIor85GvsDCZorhZ9xxXlQEPiamvjPI/ZmV8pGCP5tGEcQWRLjK8nHU6z9gB +T7hhzYknow+qM9zTOGKJAhwEEAECAAYFAlISYFMACgkQ2O7X88g7+poKBQ/9Gn4a +LHPj4bMgnx+3ZuZrlwFFA6MW6O+tyvG5k9IscvhzHM4YDCN/5UfkX99VRTub5Aek +MJFP+Icv0hUq6q0ckd9tgMsWFJH+hDA4ummF5upvgq69axIBsJV+j+mB53WHE1gs +geP6ewz0oFUkNwPwfafaZZQzsTmNow/peT52ijxa/zi7j4SXsAzyDey5Xe5sikdV +ZdFLo9rEqnjgEi9BmWfRORafialCFl7+aCDxf6gO146WEPM/JO4z+QNN4PmuRiof +XopECHP3rNX714Bt5R/MPodLQyXuLILz7jZS6NcEDqUpA3XuTIexBIrzous84P0D +N/rBi9A3pKSz/o1T96aAwwgwLsr72/oNV+O3O9HoVtka5Rvnd+QCpAsDig72DIKB +f/u5Z2289OB3h3I3SNeqEXWvYuwHMz6kyRXKa+/w0Vbcib3Nc1T+MFafaWBi6IVD +qSEHlif6zqf9f9+pWOFKOQ0HUCFMxE5LvoyawElnIqARZIsWru+WAk6/gpTA0eAL +lGaTmf+2hN1OTLbSCfszqVE8i+HLeAOZZHGzaUZNNn2i3pWXxhxeOUBGfyTAiN51 +JRPNZeZ6ihNuopQ0eoN3d6fhRpBxBSDBYEVfg4tyKJk+uZncuKU1flMWVyw/T9r3 +XBV2Byf/ciq9XJYWYTiuX0HCxvEFFMIXq0d2agKJAhwEEAEIAAYFAlIOJzQACgkQ +R3EhcfLtYvuhDBAAq1fu/iXv8LtpWmbVm3qas//gm67j5/GclrKJ/On10qr5ZbNJ +61eEJ8kNuHyHpDGARHPzmB0KGmyAI4RaxvkfgOt4uAboYd9+yHoV3eKnsmJgT+8p +8BwwkO4gVJDsGXUuGaopd2oTFC4lbGOahS/c7oEUS3La7JRORnfvnMHNbGGzeGso +is6yRig/3PQnE9C9ZOr6S9IEgG27cUC71uo+jk9UxuAoOvx7NJh0zwYsV03LREtn +1xBMGuaoQbhvV/HMBKgRtd42IymVnTTn1ARQc0Qi8MigeQ3CMvRHEOImLDwnDu9d +NCpqMqu3HhX8/KfAhJ+FvBypkgcnzuxnlxFQerNsIHa+T16pZ37ifqUYeZcxCPmA +/g2/jUeYVdGKqRP2PbrF+eVVvEQJ4o526hqiH+f9gPBhWP1/+kIoXhn237MxDdKj +WW2VvqB39ZcE2SK+p20r7Bs2JxpvdN6JAnEyo+/V5/sO/LzrzpeUYL6fqUZPoA7f +xs94QfOYtnhYpnNrQFL0AnhSlM1FmphMuTNdg0a2NbEtEMFECKiqROQ2mPgPZpz7 +kji5yiyeLIa/7Nkx4IJapZI2d6PVhCp8NUrGvklj/5y2s1xs/3EFRvlSZQNQpDgX +gQ5qvaT+noZyMYhIhkWIqRE7LednCoS2f8GpQYojDDWEYYbgbFMq8l8MtXiJAhwE +EAEKAAYFAlIOJUwACgkQpz4AVVWPuN3Etg//ULnlra4YbaQHk9FsrFpHerYBFAJU +99mLSZLwbOORS45rOFqGAqjFlie1mCxfvHJIAcG9R7SsWqreX0l1HS5jIMapJKFF +wTDep9xykWw4voH03MW5AWYgbuY2HoQNhl13LZmM70w3tyWYFbxEnjoq/wvFDPow +bHGyHGIpq7PCnUYhyFqDbPj9pkj75JVP1qdJePRTbYLYX3PzY+s3FQopkFr7V1wd +XWqO8S+YGA70vE/PHCbsNBhj+NiKQ9G+5WB7jz+sEnil0O9fbMqAYW4NPM2qM22U +GwCsCx19oCwtzW8GjogHC5qJHfUXDtQUFhj9gqdN4lEa8pGSsqJbgLgkXfM1uxsm +VkzAn8SW98uGrcYWfwGOvSZ/r7vP/K3gxzIbdJhsxeQkbTVg6hjux1wK3AMAXSP2 +X6lzVcVQxhXt+6LIZJWwv6jWKgnsjSOQQsSDC6IUatnsu/Be58o53LLWGVr/rpKm +35fbxhZeImc91FOVUFUurb3+dYsA2aOgIeoR7VAfppxnMfivLwFkt6wvWNNMUwb2 +M4Yjlo1DYNqiL1pamQ+5jxUEOVfshYfkonDhDyjs/YM6forqf+NjkoszwHftsPDu +EWWsaYcpf4fGUN+1arwnOuS5Tl7rnI41KvoVsn5qZyYy92h/MRQMYhAVBKNzKxIH +zCWb6zRrp6S0dpGJAhwEEAEKAAYFAlIQzqwACgkQTnFg7UrI7h1NJQ//cOA07HMF +r+cPT5KgzW7+0XVQGL3IsGTeVIV3dhUAhwgyEbKlWiTp71dKOp0Lu0bLtq5R/Pgc +rG0Ppxd8iXrp/o6Cg1vMEc2vdr/YfaxW0nduy0L8Sg8WpyYwv6eKX44cce00/ZRZ +cfHVlmy8h3uXP9jZuHOYl6/SBdPun+IRk4qgGITygZfvpICwXDSWb+UIEBSUNbR1 +26hfvco/JEgmdL8lqvLZSImF0SEKeOgm74p4+Od4OqyGoTHrVfbIMTRBGjK5Vjsy +XZI/Z8kISJaDC+5Q0gbgyQfvbd2MJMmArxnuCp0LdD9BwXpIiawf199ynhXr84c9 +IwBRxLpYG87/qqh+ODTebsiD5CyK/+ruMwXYLmVMUeHJou1u6CIjxQdj1HC2pvlW +w8L9E3GV1d/fgycacYfH+Di3ILZ3ZhNDcuEL9dTitutu48GPmBklEGAeKej9vWdv +JqqKq7VrykEWDH7hTLD/lTFUXJNKqlgds2FsCsmbYCPOmAgXobJuohB8kEbcDxYI +273bL4tVUjR7oSowUgAiK2OHKY8wQCJnHBR3Nq0YOnvzjm0uJVr98/7V8YukcHcv +M5INa/gAuIJ37ss7MymQvB7Bt2dPmaxyUkT6buh1o9iNsGS/tFFN3fvmhIGS0v1W +rY04Kiv+ge2yK94cJgwNRow4VZmw+5swKp+JAhwEEAEKAAYFAlISi0QACgkQIGTF +NkHCXl2Z3g/9GJGkMR6w12AmYcskYF5S+9+HjK1qHDSh/oH9/bYYr4Tx8RB+/Wk7 +6F0qjnQbmvfRB1bnwo91VdCy1VcG99491kMo+ysgcpNd5WVjxMY9ujmZZJ3Ti0y6 +qhnuYOWhJe+GAszIspYvda8TMKw1IqNHcIMrw0FzIPe1mMOngzHIRwcnmO4Wdsz2 +cIU8NPAlcg4ot7Nsht4WDUjwFL0dnbw15N9fHpvz0DXgPOJaJT9nY3sOLbZAjDZL +zow82/lF6xQW3yUAemAYVvJYcwuz4cdJU6EEsL+dSBxDG0BiIjQC30lvKU6oua4J +G2NsbCJ5cefaV1MxTPtjc4hbpwRCekAPKFb3cLp3OEtnmeqNmRWPogtagk0+OpkT +90tQ2NKVEWLQh7QTbbn8wPCP+qz5ecO2ZKnu0SgDYkQeN3yuvsHphLKVlN0qlbY6 +sdrdoXzywDJ999AMBgqGd03hp6d8WwVoRrdQ53n5jG0lcbJDFQ5Lea/fYEV8YGK/ +yA81b+4YOGI7MDlGTyi++W2k0jdbi5nk3TdFm78HIV1nwgqw/YfO1V8y26Qa8rcv +KVJnkgu+B6aQ6MuZAYVZJCthkTY0wqMcGHiz401Nh++WUlIjgxIrDwgoDYIIQw2t +QlsiUzqa0ILwt7GWGYzIZiO/O9wZoUeGiLAnj0Bj+rwGzTNBJ0He5ZqJAhwEEAEC +AAYFAlLeDFUACgkQdZd4qaNrSU/ggA/9FZyPoFi76HenyoVz0ej5TIPgdkZbxaih +93xfMSSP3EYa5+xHvLcYjhNLABImiudIBOo/vmIJpShajZhkB0bkQ/huJ1n7uXAX +L+BffIVWx3nSjzmbW3rwsbGHaCJHyFFqtz5N2Wbgo1vrXl8RUEaTdCdmWDxUeSW8 +MAUjrpiLkqsuwrscftfALiNwKLUTO6AIE1p5zC4xmjfVAMipOnWGTe4mwgwKlcyX +cSdiGFLk1ScuD2FNc7F996mQ0MUpWwKkJmGmQaNU2SnfqsJOuqY8e/UP1jmDqM+n +uvDPWQCGtQZ6A7C52m4xnix2YGnljZn8H8kRaib2HiffBxfsXCv4szlKAL8qPoqq +wAD32Gw5i5a4X09lYxsZbB6s51ltEXG1doig6Tfuq+VubVU6aR0khQQwzV8dpuIG +RHbQljh0CSAWSXh8XCOf39jYBGbe5iiGvZpvlk1M9b0czy25ZnVz3J6fSz9VQuzw +fxH3x5uSyI+TJ05JUXJVsXWkIpkKGt+7/Rt6/z/w7kYXpLGvMtC87jW4K9y54+ts +9pEUiQ6M3rvPck7Su6VDbg5t83lXNneQg1Zt9GRgBiAR3XGqjIb5da4QrUsSloiZ +gh5NKxmUNJs6kyEzoQVEJXV9EJAsTtIpIFzdzcqfQTjA4M9t/fpxXNkMteWlIqEL +fYcO3KY+xfGJAhwEEAECAAYFAlM4Kr4ACgkQjw58K0Ui44feWxAAr98A53m22Uqt +NQoSIorTYFGDBCdtivC+jGVcyXrLTc409BPuwJ7EsQU68Jpen6C1D4kIcgpyceou +HU4xvcXw8BmgU4r5tQQr3MV8w0FDS9CfdXKabn9Y7R1DtjNo6nxewlHdrhKeaxXG +jHirj4owa99tPzivu13esSp3W+bCahp/C4nmx7u/gtD1gDKT4+oXZEU4MZbQxihG +yuSW1BpKuX+BQ/fUEKeLOIwFrWfStoheNiRYTl+tuCHoSAdhyZv5gNxX+KT4yyC3 +16Q3BIs7J1sfkNxjWcYii/CTO8WogjPfy4Do64r0PLSxWpngg07+//6VGXoHyATE +3r7gXdsGqAIrngNYrfqTZ2R175PKmGlW2IC7uNuSXAjMbkYlAx1uT4yTsuvLAlyC +7LHrxtZY/HUZ0Ey3UPoPKI/dsf5GhwwBOL1qWHIszE8qJzzj+PoKSJx6u2JsYoEa +yPBjp9/a2PKh+grxS3EOKHw2c0XIixXroUUO4pxyJXSuOS14EIdCVuTzPT9ZeSeK +SzYrHqb+MJfIMvUYAOy3kQSh8zXkeZg/aA6YOv8IeaON63Vblthd89SAygzcM69/ +KqJbE3UIQ5rJ39OGJzXguez6Hr1Limm61wwfaEEgI+fd0a6mcf65H+oKIgavuUqg ++9rDm1BLPfFC9un1HhVHW1FdmHMDWryJAhwEEAECAAYFAlP9CKUACgkQl7qc52Gg +ljuG6Q/+PfCi4kKzlKN0MPt+bVijFKkGl2e+r+WzlP8ckPhLNEzw3Pt1lrajbPsj +MlYa0yEY6gWLCZakzuUUW2THgm6s2h/0kY5iIStTlXoD94n51p1ReqNdjiOibyw4 +/audsft+pP5UuF0zeXZ6BLJveVAmx7Rrb7TkOuPrKRbUvqZXdH05RUSrerOLsXiU +AOevqNJJACUXrostlaOzMH/Vz54YwF4AeSOj+EW9Q4bWK72b0G3mQXM0/8Z+Ap/4 +SdVJgI4BdiBYqNHicpejLNbUXdL8Js1br/TvrrsUIb6d0hFbxDY2FbeyTQsN8Kny +RYqYLUj2DnkgzhtW9T2hJSOUGpuhK0L46ImXhtXLHAn15j5PjNRKWfAwJJh2HbQX +NjGLGlHdtlqEwuVSeL7rYgbBikYeKjK+R5PT2CFvJx+Ci4B9XE0pPI2nEqBE8Vw7 +wnip7CV6LdOJSlb+O1uznxdbebDSkThWkmIZATJYk/bQ1zfWgkmgkskHzPZ8wCOd +G/Q2Pgfm8aPIqbE9qRBhM6c3JSfRYZf3ak5JoPX/fsWoaG5lU8taqqYz/JdPDSdf +4/BFCDbbfjWZ9huA76mU+aM1pZQ8Gv4lbybHBO/uJcAcakdkilP81F4u3cQlh33s +tFPJA1w7TLSG3XbRU6JSlIsqFR1MTz/HvUZ8v/WfdfDrWuchoEyJAhwEEAECAAYF +AlQGM58ACgkQ9tNJW7CumgL0hA/9GMCvGJPb+Cy/Y25oIa+y3QUtFXMxu+5vm7ZP +nkFiESxAjehqrjPhrBGb5GUfCRbMle59JfN665a5AygMTJvWL0TSrZpaRVt9oBvB +1cuoLnQjC3SYs23NCYFrGQlrjQuab0wFL8XI8wmh2TKnSi6W8WWfKvL+AXNdryW+ +3nELqvFyhZAp5gp8SMJNRoRiMz9UZsfTS+e/KBh23BFB6+FxDs5YobuT9Pgj8ls0 +G35Drx+so6HYzMdplXkIGmfh4obk6s0BYjDAU8ViAfFvXCwX1MlwYShEzspWymJi +pJP8kiypWe2FBFJtHPevBoqTsrq/JmuUsMNy+8JqTS+lC6VjPHXG87yQMhAHsjiN +yeeUoOeBhJbX4/BPDfqr5u5JJg+IVliv42o5bkzH1rpJegNwQPIi2miSVTMbx64R +3qwvubQP20XJpBlF3v3vHSoPxQgVAfGnYQ4OE4/zkF+6ckp4xWyMnbUqu1z5L7wX +4CRifuyLyz87nEx3bv4uMoImw7nON45BDO3WpLnFX+FDgk/fSoq4mnIk/oCQw5ww +oMHBCUTcjJuyZQC2c7+IgnOf7/FOhQu1HxFdWet4yEfFgtzo2NH00ssLloIARj1J +ISbZryhoxZydWsVPqH+dnw7OsUouvCMhpWWuyejkk+/mOaNCjNa63qW5QygeIPNf +h8sE24eJAhwEEAECAAYFAlQLS24ACgkQAVCdXKtK/T98/RAAoMm1nyaTlLn8W8wk +uwDBQYySixRGf80kRfTREJrGzXOHK3BfoTUqMguIOKW9fCZfzl7MtqK7npuFjDo3 +HOj8RLoGBW5mRD4QBy9FUeVuh8mfdvvgyhXqSPC8aRUAM9q2rqcIOIh0P6NvBm8H +vbQjUZmaHX947vLJyWVT5wpBZBd8Zq9npawPjkKRx+IJX48A8uidIX6L7KUuW2oB +FQGOz39YmpLWn5+AvkwBEyfSKS00He8wdlv5viq0q5HXYCrtFguXZlMTlHhh5JUl +XbTn0pv5aQu2Py0DMtDjORRwnswKPhM9M/dMl3mTIeNsusaofxnsojiA4BcXWVLW +pa6uRDWMF9HkT248uWKsvc52xjmb+tookF9ZoDIK6lQ+TjMcD+09BtpE+RNYoVgS +LpwhRqzdK1emzNCPH+cXL21lw8Iw9WNfGNH50oe8KCOV0GpJzYKC2C3c+C4zhE/9 +bcS+Z/Tvspw5c6jSWBgC30Qi5+1XvvU4HVM/uEN8J7fyMW6i/BsmI5ilPCdtbuO4 +jVisiLrAtxhMOlx39ybFL7NTrPlXeTxPKUwJWQSTmjdAYSDY7tVfzN9D/vgr3LuW +Olm6vabN4ylRRPN8XVxUA8Lazzh+o4sqs1vjXngORu8qwlnjUSUyh4ApRiDx3jJJ +oIy2WAxXFWYr8IsYoamomHJcRwmJAhwEEAEIAAYFAlLe17wACgkQ2klY9hHhSenB +1w/7B5tpRbiIJKYZbVcEDy5t9BmCS0L6fkXCKQREXDWMcjvXLrulowC9cic/+zjd +hSSu8NYl3jw0ySQNUrSJRy1sYoro98ERZ92MwqQIIcaV0C3NO/MQDf/2oW3z/gvq +kjTTBfxbexFRdVf7HH9ztaN0K1G8hVR7o550VZHs+gkXD07fJ/0s8krTE/qAxzPA +D2qV7l4D3Dhvx/rkKjLE0VHNE3fmBzCOjIikGAn7uX9NWs8oCGEBuZWp/T6tCJEN +lRQhvWPzJnv56I3ipYma+5CFhPLNpchfUoMrP+8O+9S132ikALSTPe5FO6jnAtmN +P671jv5dIXM+wd3Dh2IzPkMVTSmg2jjV7sJCqkouJasLt4VEw61B+VIFf3YhlqyV +55E+77x8QH6eX5aIYVCcxNOmumboeNr+KbaW/Ior4Nthb/q1CdBBtuwOuDwnzha8 +w0lfpFD3HTtmT0DmviKJX/JpNmuVfTm1qzOCNH4wubXYM7nl6ODOwxye/gBmXRC1 +0Jym2q0w2xCmNljVyiJm1vR3f0Y4oNyPtuP00DY2gB1zZszeTQgSAXAEaj2riTqK +axx/K7aZ9n3jzi0BXGWlBlI/m0AEeQ1dwPwot0Uci2FftzQT7XFcRmeaT76NfyMm +J1vDjE98HHEuYB4xc0KEp/HPsJHREdcSnkbPC67IERIrXHuJAhwEEAEIAAYFAlLk ++aUACgkQgkKUzQIX6NjQnRAAwgN6woJ0k3V6jDKXJWMwBHzFnGgNHXSrW76SWNvA +zvDkxL+CXQ27svXrU00oSz37fKi5FkqvtNac+y6jJs6YuNqg0DvsPmr8MrTjfmVi +BOvXFntUC7pTm1IH7vQp5t1GCMzZLK36Rm5QhFvmmqQH5o/3MDbJpumVmdjGU38T +Xpd+ekUII7p8FOOmoDPEUH4fo5T1WiGsvGFgifeCf+FEamEjaWBlQZJckJb4pWQV +sghiiHGXNK5Z4qrMag5eduAis+Ko3OB3dHG4vfxyX6ah4zV0A9AOz8oAyA5Qoqiy +hMLrgVoga7zSjDmyU3I8DeHMtdYlsnNKduM5sDiOz33EFz9DSBsqs1G3bD4ecWdh +fvCMZW7g+jHX2fJEv3zh+IZAxvC/4+/+llsnVw8g4r4qInyl9SMHIwrRYtN/y7Vw +mntTdS8ml4GgKiFfig/CW2ic89U/rOgij2Z4VPrhYYdORUwuXJKqeeU4jwC9Dg0x ++iozMluhWSyOBicuUW05Vw+9pgULbrAqvOlSeWoY0xxEdENRLdmW81Lk/0zv+HBe +dC2BIK8pCcxTp9FsuSeLNH86fflpFShtywRV6l7QwSHvbx1mSNZxbVysj0GCz9kp +yY5U8LdkWAWtD4Qc/RWofFV+rcRWTnBtamuKdU0D2AuWw157ryHtsEQegFfXha3n +HBOJAhwEEAEIAAYFAlLmb+gACgkQ+4YyUahvnkcK7A/9F7AhL/e0NaApJpuJJtBB +3x8ugJt6M7x2FMdgamUubYDM+2/3kyjoy2zlsB4UHB+YDr1b7N9VxfR2ow7LEjr7 +4xAGTZr9elFRje/lLH5pMfS2sK4bh5J0W5nsQkxgVZS+qfZJHNvPzdcrMx492RoR +/spOrBecj5qwU4pmD432afTkcd1SbxfxWTlzDcJ9TONnmJl/KVaEZpbPa3NxqBzq +VLr1T53g4zCjV+SLd38KxFPK3OGhX2XR/dlJNGNL3kKl+BwIVDkvGmnMMBMXJAep +v0LbaiwaviEKESxt2qTNPe3YCNfbh+11rOiyjGJWehU1v3SEGngWDYjSJ3+baxYb +8WI1u7dM1HN32l36KqKVlRB0umgOVqiN+S1InYiqU8mQzZfaDt3Y68bhgNNnHYhd +6tWSxz1WFRMqpJxCA9bGZTM8ur10K7ZpJ+NNlRC8LQ79wJj1pNgSSSNA/qdRgzK+ +xJMUzgfezzxATPTLYvumJKDzegLYMogKP7BOEgieXtFhj2B249bX4GA1K+yp4Ad4 +ly4J4FXgwmWF8fGfn9Yl6FBWP6jVBgio2it+/0Gbapl5HijVaSI/wRr9ErQF2b24 +mEkhUuMtG11Rw4tTvHN+hD3edjIJ60VvBqL7TwtOIdBoWRz4DGvD2saK4Pupxfbi +i3G+drwjHQD1NSy3GE3gQPiJAhwEEAEIAAYFAlQEFzUACgkQ1BatFaxrQ/7UPw/+ +M9lLYev/KPWaU6LLYNzq6qhnFrHhphVPWwzFOqjYMi3BLWSJ1vYTtuFYbM9n3fVP +zL/pP+0SbSy1BbhSaX+1lidYNaJulbCKdP5V9zB0WtR8nmlKuwZtmwAIL9M+fmta +QeYWgd0WGdEB17uMOZbyZJKJqvtM0kfsoeqIckNU+N7VD3PPFMs2WiONrzWJedX9 +Gp8s4Udf9TiGq0WCcDU04P32sIwpLc984Z75/jfTbAArH7MYhZX30aXNvj7l2mfA +e00QzDgG5vdXKWd3Hx+ce/a9kX9aFOa32AzpPcsDb5x/ngSzjC744mF8gae6HzAV +XVwmqv2+/xEf3VIpy7YF1xKQOQDh0K6vTSe2nbxLn430SX9LygYX8cmUd/1+f3XW +seftMBLh78okVZr34TpOlDWwUrRrkEuJBm1gWWx7wgfaNOx1yF8k9wOgc9ZHzbIF +UBH99mL30NlatnSJPuSlYXNFN+huwBIAUsckkGIRZq6/bPaW57AWSuMlA/Gqi5Km +Bj221JkN1Bzrba6oCw4Y+5mKLiqamJfOt0AtcyHYAQ588t8a3IH+hoxbRSb4J9Mb +QMJhSOLjbuA5bIm/0obD9/KflbATvanF9wJxkww1Air6GLTYuNZPKv6W/EgOdg6R +KBwI6yIE8oHpquK22W5DS/gohqkMqKx5b9cBScdX5F2JAhwEEAEIAAYFAlQGJ3cA +CgkQ52AExc7wyUzMeg//bVPjS5E0T/IQUH3388RuVVC8iWn8k9jTxE5IlWsleNvj +MLpP95BhHEHH4kCQL6dbJmUXYZdImmzJGUVJhDC3fNbNl81Gl4q+25O4zQrQokOs +Pg5bx8vHMPBykuJQixF6pbl5pLjIB5ey52FhIlNmfJKSujQcD6AWaKPS/r+SKyZU +jACLJZ/lYqNM0731X/Psp+y/2JpA8ITcrjU4v49s6J3y/E4Si6stzz28UuGPDTnh +XrDYnPOrPaxbSA0U+P/EUAlhiSF3LwrJNOJ976DgLEDQz36z5s7b/yIgCAX8TWcr +hJW4ZyY9oVso+DfJirLhpQYdDPcfhNSnCmAcG8J7Q/KSgAp8AhgBl2kmxUOdm87q +OGBKw/ZbtU/7mr3GaFWOpxbjjCXQD+Yt78w0eEknbPOfOWj3Eln5wGwfZf2H55uz +k8LCrt4M+HFEsM81f1L78MZnXmhzxXaHRqeJ2iZ4Jn0ytU/2R5Cs51LDCmL9QX3d +AU5oxrHRQ/oN4Kw9WBxbfARBy1hjDB2Nq+p1cxwDH4AE/wcdXExCGi+QGkXmvJ/i +tXE9wOgp8sdTt9kmrmo3wkTWWWOvBfl1WPEAY29OTqmsPn2oynVmnvyQ1jlW/fMo +JvzubNKIsBBo3OwWUH3RS7RslMFzXNaAhO58oDCNMQOeN2BHZVPdYZ/YufHRhOyJ +AhwEEAEIAAYFAlQKAzkACgkQVUKX7fnMpYU8RA//cbbij9yo1oUd4PKzBBH775zr +bV4BBZB6NmSDjt/JodFvvw0me2wW3PNS1wxMV356u70xMu+Va8q2ElSHviwhzFTK +MPJboHb1w/BIDvXb06rCHUi6y1PS1fThQiHIzMHEJmT/zxeoA05b7QjKNaI+umnN +FLi/XTPzAzGHpSxVjqB58zEMjjmUNzmeCfXFyUHCRaXjj/edzun+p9v8PUEJUbNF +qfqEpWTeItJPgAkDnVM3Yq6+hN8HiGwwIW57v2VsVOqzeMJBG5iW/+eTHRFWApuB +lByc1gi7BDmup0sxIbNp9GXhCulSiqgHTwkRoGZn56z9g44n71QwJnRNbMzcGwGd +LmX2hY1ZBJraoe0+cP89i+1PUrsyc0dC7ZeaYw82rnRESoxiNx06Lw4KGVzYV0bx +o4JMcQxzvriQS8z266U5mKI0mb4/xP92d45L3C6Hc3/JjP8Q4UHiMADCe6CeR1z9 +9uekF6ryaMbmaOK4QDarLxbRvPwDiwsSqR3CCrEN2FYoeBOv6pPtYdpxWhU+ERTN +pNeRelKS9/JOVxnBhEQB+Sjy8bjGn6w8GtYrJxQvrAxqwNUGuNt30NbWGTFlfPLH +QO6gfhfc64vUkH33hojXf9bDbtGfAA0KVwaEl5E7MZAdDP6As9JGq1ligOJAtT6O +pN6mL3wUH70+4CPfUlaJAhwEEAEKAAYFAlQEr90ACgkQfPzYzSV3IemCIQ/9HWtN +kNYXg6hWvweRMoZEj9fkSCx+JHzMJ+7/kHJnWmfknp/kqdPM9PYS+KU3eDjxh3oR +LW9wLTi2t9VWTQsJEV6v9f44B6mnDxXHTzPMWQjxo/s8s+BjU9JPKYeFzkDqymKb +Q6Mcxaw4gHgpU1v6CcXl7kAH+u3Kjtb7/PvosmhrffTtbELSJ4k4bNAqCUo3rwu+ +RyM1Ua1Ku1RI0oJBHt2si0yXtNMwjVD6yl/ydDC1FEYwVZK4j6uKuAIADsnLRsTv +QxF1aLdJqV5VHznwZWJDPrgA+9Ve4SrlShcUMpYwb4LUoKOIhFfcBUTf60pzawOJ +KSHGDcZhjliAyBhA1KcARWnMGEbq5EOtdfmaarvSJkFMWEFvMEeQ6UPSOhICiyhg +W8QYUOJLCNHqJQQueckcqFC2PWzhZhwYWQ+U2BFGKWnl97lRY1WkF3hZhpihieUK +iA6F7WVM0iS6TiS9kaNFuU44t0mbhkDSrmqHkttK0sa0rLLCtK7mjN7gsBSGAekK +yP30PBWmelKvDyirNObShK2T6HivNXEST1QgvefUOEA4+UNnz/BG7dJp99Tz3ffw +pqIOh6TMrC5RoZzfDIipWtV6ulFMkzvroD+TO0UlxjqwThffzViKOY1NXV1sh2vn +Am7em2YQs39GOmeNZtwDtPdX9jP2Q+CtPQaYG4yJAiIEEAEKAAwFAlQOHZ4FgwPC +ZwAACgkQzNLtlNIXOelkrhAAj0Ou0dRP7iMmq3QYQAJ/+jwfMGDrIfxExOiwmyN9 +oFJIujQDEnXgKVy27DFU80+bgu03RfU8uEc9BGXAYkCTrSAsSdjhx4oLpl8SXuBe +nNmLoUPlgC17+Vfq86c0Lh257E/4Almym44QHkYXbjP+qHDelDmpFgdlx17gNpOx +87im0nxtNImM5drvX2gr30YLcxyJn+e0Oh1+4jRZnvvaZiGzWsHtYnCv5v12eI/N +HkHpK6e3XuiuoaPOa1QU7EObpoI/IGLoP806nWCnGEGELFWE76cmDQAX/JqY0usv +jAi4cQpAiDIoKlDr33Y41GauwvitgJ8Cc9mbeVKSrGudOn8BLKJNrP4Pb/CX1ds8 +2zOCMTrmA7z6zrXNm5NTajzT6q9y2CgN02KIZobVXBKcl/qYb1TxWcIlTj5+5jmb +xi3pgWabB2tbSXmiHCNWF2DAx7u6HA7dEM8dtP5e0ffOSJkwSAGWg08tCGuX73wn +zMkqibbS9GFCGRSzWUOOQyBjmubdP8lJOGUX9H7KuzgOGRXDhgbEP5nRQAChiys3 +eE6/D+JLYXDXokBQzubb39nM1el2o6+RENPlMsW5y0En7CUcmj0w4+QbvZmjdIz8 +MjPseqgpY3uuaNc0kj0awk12r0Uf7lOWyRnVHcGkYkgMBdlVJ+F6C7UUS5jYF1sE +QEKJAhwEEAECAAYFAlTKHGYACgkQn7kmJySxfSlpmg//ZHlYiglw2gk+8XDLcfUI ++Zf9q5t6kpK1cPu6GgwwcxT8l7Q4rKsiQNG/4htkiauo+O2zrKiF4qJCR3+iI8HF +o8vtw5zECfmrHFMtV3Bk7xm8g/chEUL0yiOMrXOs0eVjvUyUYI9JFUn3Bl2gCdmI +DEhRo+Jhf0OSD3lcOXzXBpgC3ey5XDUy5X1ZsEEiBy6JpPFaYeiNEVG9VbfanMfb ++NK1M0STob1opcsCVu7eGZQ+nDv0aKitWe28nel8rJNkvd2+F8vPLnw0OnxP9KmN +Kf+8mqFre3WGweSQdvtZ48sVURMDmNXRPj8cU43f3JvK3qsXpSSAC1bPcgusrN1h +m2XTjwlmlIXqfQ7IcVzoMfHXos/UIh5rYqevzRlpRgow25PL8wTnedCX5ITxPuU4 +CrVq7rm7YNZ1joeiwR4uiEK2Tz2D5eLhaM6xstVVO6oOlp9hNyQXBWCgvC4NaRZu +wGdC4tKZ20/rOW/q6dIcBMY8bEBLx1ME1IIRiEJ8FhkTmuE9Rcr7v1CLYNMAhjyd +G0qGsNOjZuWkosQO6zJff5zq8ubj/CiKZ0HYc+KeGR47/Ysi3hlzzfhqskRMf/k1 +o2xm9sw15/r1SGhH9+1D8rLYt6PM9lNi0JIteH5hmak+4qYJkI02uj+U+2KKNS8r +co3m3J3msPUB1zYS46zECPGJAhwEEAEIAAYFAlQQ6PoACgkQuyCsIOC31r4rVQ// +aobDen0n9Ry/LnLVQDgaOVkRZEEV+aNSgLl/KHvvQYeWHZK1Bn82Dl34I+F9W84A +15bJJrZi8SANKb5rWbbfXBPkFbIDefF17wgo4JdtnUODpNr6K4wC+kAZNVfsdGWU +mjMLF+4IZaPD7k1ky/Q7ut/bxigF7mr7iObZCKBeSgGCbOINTRiLUxjS722HaMyE +omZplAmsRgnIYoJMzBOS3rxbTSqIuLKhkjNhwsnxX3dGE7c4V1GAhLID7vdPMGqB +DP8TIYnaXOumxxX9yl/1HN0ddlMkkZ4JhbAA4HKsT25Cx0qIOnrfMjfn32/w4/Nu +KmkWnivwoZGA0ej5NRcDDPrUWnyr9964Zp8fVHFWzDsXGqymXGGjXW3uVFplqiGx +dFV6VC0tnNdzfCnI9d27lzntPbQEghvzFi2T6zu1PZeEGsaptsDUi9C+zhxRUWo0 +E7ORhXhwc3PBqZp0eUQpMs8fuKeTARidJeEjC/gMW0iCp2AGxsPEzRI0jDu5hezh +bNlWsxNPTJvjn6RKeF7PxLoo385epZfktmdhA+hoV/pCDq4YdEQ1BqL75tFFwTHV +hdecA3nQ8d9aGcXtWdNUeUekInXzRLwk3edE8fjcY8UcpiGpnUnTUIaQW6X3UVk6 +NMfS8m9UzcLDf/fPTO+Gmyzr+sbSIXBMb7tFR9ESBviJAhwEEAEKAAYFAlQKcpsA +CgkQiCN6alOrGy4C0A/+LWSwnwjqGF1jf5RzdeqQy87Y+83S93J0cOxQD+B4vHay +1+GAwKrOspcJxdY1m4cl8at56zLtqMOy/OkiVmRNcBBwDw1qFvE0ZyLNI5N3qQDQ +xole/wKtK6DrcdThZrwr+LGQhHuM1bmfMfbOKbbEDHFteYfPPU1BhDdYR3tPh2rE +LOqMTnrbQHU9hwmNLu+QwRv1gLPrZ3oG4g5F1oEqh+DzKob0M1u4J52tXED5x4zW +AML7YhGTL9L98bOBnx12+mqt0/lVwKPxVgUeBpj9BbjCSgVuYAXJagTYBXxMsoNZ +ZLHjOKs8qFaop4+F6wfMbgvzzTiGFWF745351Tl7SmbPNF9Jb8K5mtDEgqzTKQ2d +gnYtbHiv44b7LydP9U21D5lwHcttCXnAXn4/pcB5P3EVSR5HNFSLGIyhJBEzfEOF +vUulsQwb4XQs7VEh/IO07hSH250udwKY50+5XTJ8EIGEnazCaIzjYXo2YE/XghmU +nFyXi05QuAA72ukxaU5DAbuRafRBii269FdX4IL3nVuJfDlAFsLZYLY5Eutxbw8s +l3nTRVzimeeEETPhhzRQmYFZkKcAJhrB9MJTIXgQnLwN3MW9xMOtd1qgnORyFiTk +811OdNd1Si8Yv6fOz3DP7bQt6LRKdZfUtAfauGebxBojhLBvDZ5ZFJMmw2HJAemJ +AZwEEAEIAAYFAkxksogACgkQIjrgVb2U4VSuWAwAqpsDypSqSbARoglIqnNe6TQj +YSBMXxzUgEmP4zOL3jbEeEUmIUp4Bi+HZ6efrrPEYz0Ca6T7/0z5mGqajz7B7jB0 +fbo2dMCOWuHQeoq3Vn+aLh3K/nFQWDHjmv3KV3LkjJ5nbkKJsq4xW+Qee10JE5Rx +5eGi6JXq7x9S29psPwFAy7PM/HIEx7hj5oykIxRxNF8gwbF3IPyjMTPqvnMsgDg/ +tSNXAzOnxjGwtqz5fmOKBwzB0vBnQEg7yd4Tl7/ULfNkiTJyqf8G5LAoXdB/4l1x +WeElh51YKMjfc8xP8Wm+zOfiXCj5l2w+hUObVlviEp9h3g7IC4tqh6cAGEACz4bi +p6RF1n1CKnlR3xC+5uTncxhFBbPPacp6M9zgi6xSwcoMnDsD72Rk7nV2nfcHeXbh +Fu8ie2sXCHCNZWRLTuRjziXSAKlEXsjCkROiHachNJYKZ6OrT0IdTK9B5AIT4WQ5 +D5kmDpvwUQ2Tl34e4Ksg66bXh/9UzG4IHoTe0e9SiQIcBBABAgAGBQJMXqAgAAoJ +EB51mnJqn910V7UP/i5+1qf+1h4WXqFW4SildSw/F0k8EGyWIlnEcijldce2N+JD +NVXd2pYBP1erwuQ4JdB6emfKlZsKuvhzQ4IBtvB/xZtvpu/V9sP6WAUB6MZbotcM +bKd4GgyJJ2Qth1wdz6AbpHU1maUboMCTgDh0V6b0djvA0XZXmOV6Q3J0J21vxLWv +hzNu48wxj0aqQIe8Xs/ZFB0WCBJA4zfEF4xCFP52CGGn0cz1cNtU0LUbGt6OHv0a +ky5moy9YOOFefswe2FSn2lUqojUgT7zlinv1sIxym+vnOBDnnfPzwFu3C4mKmDr/ +mk2z+ZU0k/7nOFr89oL3z1hho4TC6eXDlHLWP9yA9ZasTwOWfvYc+aQ0zQgnedsu +vm2Sxg17hcmcNl7D6+uJr7IDXm3E2i4rHwNQnxOzLGXiNHpVDcxOV2AsezDKARFe +QcP5E9tNJwrENJ5xeBLW4MZSBl2+2o6lRPgeyxdK4Eva14fBdJFMLfgL9h72Xrw4 +/gYgEBa6OYJK+0TryANhI4sVE9QAkVyIaQjr3kHMygQnUEZgeLGuDn6J2C0GspqV +4EVD9ckTerwJdesxassnR6geI1/Eh1S3L2+6xLFyqiGp9dDANsRCYSVrm+4jDmvV +CSIbhoCr8jh1eppRxJKnSJJcu+55nyTy+yHzEb8C9xNbEugCmZ5HeN5FREbViQIc +BBABAgAGBQJTLwEUAAoJEEMwFplS1VbbP5MQAMmHCNZsWyQPBSZhdjfOzST2Q6g8 +cTXYvn3enZLaa5oEaoT94Hld+6sCu0yvL+ONT8ArYawuF2X62tJQKa2Lo3YynCZC +WiSDo81tVB7BQcmEAKI7x0AVNCJoiKsWmgQMrmV5kHodNpnpvbwRmgPb6keID5/s +0SuTwVCAX7C0mVsS5JK4Uml+U8M1JVbURiTfpwVmebFX4YPRfSLgt89VoJVSCOtj +HnjXkP28b2STSzyg0Tr9ryRvQTK0yORc42cOajtclHA/pQLByTh+Bhcf3+f+JZAs ++UydflsxkNvSJu8FFJnl+QptyXTPfUKdGFZH2SRzgaHJ7dwIPgi1ZDEfCWD8brF0 +VwntCJLh8OAyEt6nFoccTKpMeI+m1VODnEBacJi8plzVWiVM9c3iNLXm/0wOPq6u +n1OrLbPoaI682+FGNser7AV1yVIiwKVq+/toxmGutqOuTIU95nEwwJvv0jArJxYO +EykAIHMBXhzeOYWAnjxPvHxclebHt3LV5GDeHCRGZDdXfyNNX90/QenUPmsSY39h +2VNgtfjpWMo/a0CxpgHdCseKw8KKHXMpzI2W+oWCEk+0BajpJ1YiNFGFZO1y5B8T +eSWxVEO+En3EbTL2joXi1QEbS4hNquDnCfhzhJvbWYd4x1/Vd7/kLWlRhISuuki2 +ER6ImPJsx6dNlkNviQIcBBIBCgAGBQJKecXnAAoJEPU2qnARHVcWV68P/jcSA6g+ +cQ7+5gr3iOUAgumw0utoOUQv552TVJPpZDS6fAjccPlM3LhAWYV2oyRdmaB4YDeF +S9Mkjq7/x5SbosW8rADBgQem3tzO7bq9jOoqr+sZIC2oqOhXrLLsI5tMGl1E6M+L +umE2vLcGCuYgPPRTtBQGmUB8WT47Dnn0oSQTFBr7+/NYFOj/CBv8MffRrXIv8OIS +KE5PyV3lkaWlbxNzZBHNXffp7BiF4+i1iOmgjzap6AKVvMFGOlptaILLMQQHtNh4 +LlgF0201Pw/I95kn53d9bdKPEjnXwyqW8vzEy/lNkszES1j51lSlPvncPSWFEhyB +BgvUFZomcro25nrhUmntpovbE1n+pZx0998N4Hr5jSAZlQhaV1M5R4+WIePgCAsb +f2Ho3YyyOk/MoEXESRJ9ffB5DrUMQAvYMSikjkw3gJihe77UsiI3HEvYs6XXRDty +HPNPdk9/mFZLGKZEMSJUTR+WQ819P5NC6UXORGYxVX3zmoB75TR84L1IOPscKpeN +z57HScQtjs8ZVjHCpRl9l4tlWCUf3wEK3aKkMyBrNGM14FIKYA8SCNcYKhp0/U1w +Ck7CVUjZXaoCWPXq8Le31wHDsUYGrPyt9MBO3zAKRixm1Via5ypN/OnJ/1dWbR+R +UbfuGSTxjTWmhwvgwy6pn4HY+a1Lru1c2V6etCFMdWNhcyBOdXNzYmF1bSA8bHVj +YXNAdWJ1bnR1LmNvbT6JARwEEAECAAYFAkpYxhEACgkQ7+hsbH/+z4MyCwgAnB4R +ROKaw3HFTy7PSnhGLUT9dDVD/vejnhmKCYpZAwvUAzWgPsBVmEfFWSbpgVFLUQBi +3gsIPVoTDEICa/i7vw3ec2UozF4purvOZ+XEWF57v2xKNEqGhAT5IBvPxA3gNC3b +2kuInHvxi37QadqAg5SJLc/UJsBLT9Ye/9LIXceGMZ8FPZdojRolvDOcWild8q/d +xpHFDRC2cqCvtvxXgzFDn5fjibYj5JA+1OayAUfT03i11MRDCKKhRk6c2yNO4Uda +qMhvabI3/HxU3r6eXZJAhojzGg3NoHo5iqq/QcO9t701xzAakh6vmDbNShS7kxpx +nKa6cA4RooZZpKgTLIkBHAQQAQgABgUCSnQv/wAKCRDz5BIvHYwmGnL1B/9TZ+Wd +JdSS268ToTVoteT8ycie44X//qXpMBPBjwirYMm1rShyfa+s/dlYAKaiAD+OaDtc +bRiayE1fEf0z8fCnD32YEvY/nsj65rpA6wfqpVaCCh7Q/koe+rPfC4RWvSUQXnpq +IchGX87yPnrGKbMVGLdc1eGPeefim5LyROqcqT+qWgTd60sODrhFAhOfsovbyse6 +6N+FW4pcBQe9hpnYK6AmbaAWqhDGLXkQbxXMJ7smfODrTCY8TDsz3jvnEFFl2QZp +gZEzKsXUXiNOFvSRIP4/fDP7VU+ycsQokvkhMB8VzJzTVszf9uDm2q8LM+5bbk43 +MyhEWCorkGFwfUJyiQIcBBABAgAGBQJKccjqAAoJEOQqoE+mqoxyLEUQAKDKzE5C +bjgL0/ZUWoTnDLiq4SmQwMaaSa3eQ8XHq23bUdhr8QJFHryCO6peo+lGAhfp+fxZ +y0Jqef2LjJZ9p50mfFZVz8qDUEAfy1PrKWe/8kDw5BhkURptnL8tnA59s1UwOIzW +mnoIRuG4IG8olNa70I5HBEVfFr8TNROm6+LYwOutQNVkOsg54S7fH5ZLK1KdNKu3 +40FbdGqCWR/oDE1YBuZvAIJIiAB1m3/Vs0Pw87XMUlg2W9zlpJxC0hPanKn4TAaT +ofX60eIJ01dmR2jMk1BVQvtF03q5XQlY667poLv2X6u+g4NScxeMkao4z/Q2baiT +PZxO+MH/5e8z3DkKd0tBflwhd/eBaXavLTtfZsw8YBynyHuh0cMf33D/PPzKcm1n +t1PDoiMYGd5gL2sruBDW2s2Bfkgfr1N6jqUmTK+k0eGdiN8koSDYdVJqykIORotr +ppGKgicXONm6v5u2yMlJwCnAK+N/gS1hUrg/xJzvzTAXD1nqSkb7663s1kG3Gh49 +UQJHfv4/b7gKJkRxPtsPVvyUVLpn136qM21ikoROgFaXzNg1kbfyR1sg7nzJTc85 +yae/CiDsukEqCRPhevJpgif5lQQMH1FKkHlITvn8k3j2DhdUdtIzye2JMF8KJSTk +1xUwmAriQG08Nj6mhQznJVmXfKbAzbGcAyw1iQIcBBABAgAGBQJKdVY+AAoJEB0h +yD3EUuD813oP/jF0GVQojf8VS3t8e/JmroKK0pNrWyW9lgs+zTvNOomTJ4PA4B6l +3pr39sN9fs+r6nPbmFgCSOB7yitmPoHq6hNhbrydipxd1T1bO+qG59Io/wWIjm3L +fxu6DSD6/XD9mw+fVXk/bhbT5sAaHbR/ef2A1AC7aD0d5jw8SLvNsFfaUCgBz88S +ZO1Sh0pToOYCqIRQiAlqNXCFm5Aec3bfaglrLVp0aXteYF8g8R4yq3fzwY7SgbwK +1mTvm1XV0sxH3iD5PalTrc7s1lAR4RZm+xQ8gajbt0UOXGZy9PtC+Vz4tSErC6mL +usayMC1P0xNSngfuvFzQ1swjgQdw3/szS278LdRcWyajBdW6uGE5CO2hOcAKlnY9 +W4sSFqwHY9xxrWNlJoFM7uncuu1q54Va+LGJQP94rySP4QUwUbzjvr9rbxCw9Cun +Vy7y+YxvGWCG0tJT1G8rlzbMOoBvCVZasGNjnEtk+yX0oYi2pjfCXQV4EVo/2Qaq +Sw7D9TDbnUpZpmNoPIeDNzPZNbl06XAfKeaLBAP4fiFbuCKSZihnQvhwHiWRBwXs +l4IqD1rmi6HBQzBBd8m6Kih8FiFL4tDza02Q6CsBiHzRh7FRz88Mvh/ZIyRCtTnX +GeiQshMBwn9WMPGODBSbqsnTB5jUfxqprFGjXlpLuKmkyMV7XMrRKmR6iQIcBBAB +AgAGBQJMRafgAAoJEBgUewc7rSsH36UQANjCSwjkm6L/2HtbWI1Fda8cZc0eLjPu +yu6mF7Gl6xEzfYDYsHDf/tt7SMSgxfBmhSwk9M7ZHE5gx9PyOWjwhdnlaK5097vu +aZ9DpNDFr8V72QqxIQm4NtxRNARLL0p+8H8gZdIfcHGCijkGFzMca3CRWOWR4Epf +LOBJLUB+cG8eIaoCecXDxAlY1EalaE7l1HyxreIF20bVYknTb6Y+jaOj0PkDKG7j +6/7OZ8bFAXvf3GHIt6GKRBYscWgLXRz6QDYHD77yabC4XexuiSNbND6xTS7Iydbf +sH7EEhtpru7EJoDbGSszCLQlE3Ci36cbtKm2lfRShZhsfyc28HTaFINuga8fR43O +/b62Xs69rlz54BZ5PfTtN/9qQzPlq+y3vcCnvRB+DaKGDllTIADydN0g459ikyA7 +Sue9PKjMz0Z9Sd3oQzoyvhVmlNx+So6gQTYSbHV3C37rg9N/ziBTMXLSulmlxecQ +nV1u8OJgYUyYSujCwCrb/W2mT9wTX9IK17Mim/r8OOAm3XEBNkP4mRwvGqADkT+U +YRME8Pate5invy+WssNjMlBapIL2UpSm5HUawBEAAQbE7ZnqpBGBNXCROYSDUkLB +VvMURML9f71berC05+sBaLknxXmpwkMgUoPYuf+XnQX0ausdrkay1aADFbSBmcrl +yLImQpLkexGTiQIcBBABAgAGBQJMWjRgAAoJEHA3PPEpDbnOl4cP/3bwuWaM2JLV +7l2Pz1gEZQA0PRM8+eLj4+Kx5fiQok5nVbg3tcBJKvXx5UFDTmsaXgqIhBph7SF0 +6m6ham8D/cXMzLeY6xX4IIKd+P/1buhwgLje40S3kju1A4tLC0M9yVqtS3UosTb3 +f+p8sSyJBWz4RGw5VQje1/nAd3iTXxxDErikOm3A+WmJmhZh3zyAQsHaoCDkH3+k +eVuBqqXK0QmY93ZV2E5rls6hT1uKm5fTZ0g3Xt5DBtNBto6/dC8E3p/xeQeyTFTw +JSQup3DdVyEy4ArXOH5rVDlV96DJNg+HQDtPN0Nu7dOhCc1FN04jrmt9B8YdD6HO +8q6SJNE1sYuk0OMDHmdzwceI63zVo6I49JQg2h8LTzQiIPeLwgRCwHQVQQyn+9HF +ba5HX5niSFJP0bIuPvdbocHABY7mz47wBt/r6GnXD2/ojg7mhBzu0b0Ib8TD7I0t +A+RAQjozych9fYNtDvN7pQN6sn6/cQoo4mBie95flb47pQNYyrnbBDUa1T7p6YJb +kmAtVsL3jjkmv92N7o5INSX1emvx+o3/z6IUAPdkqbIB/4PkhkCs0sL88v3W+Ros +z8lOGSbCY8h9otN72Ngkn3xIfHMJHkw+advtwrc7T2qevZjePmIaU2+F+bNXrUS1 +vvzSLbxWh6wv0S2pxRiGmTKy4n6Yv6uViQIcBBABAgAGBQJMYHVHAAoJEB5wkbHx +SmSin3wP/3te4DzbIcP9f9bMtWQYVKdWbqyTyje0mN7iIbWzqJ9+cdSzjEzxlSBk +wfN3XUWmj1AWZm0J17CZLcclpffNoGQHhtHOgbSzxH1RsX1YhbbjGzUnJmqTWbiD +e3qECzXzUQPFaqQTdJAgNFuTX1Boo0XoutgaiUL32P0iAxTqTKmxsmT2GsghQGVf +JqJVnYesPZrq6WJ4tY0ZuC89gwYF4dZukO+862KzfkDZhd1FfsO5LXgcZvnu+uWi +mKvMyp+MNwbuXw7keOaLyswP4smq/3IDn+Z431RkxFe9a203IYbT33W4U9xOPezK +M0l2K04W77d28dYJU+I7cTQgGSZVJFkR9JOwoa68s4W4a8pN8Uj6/wZRWPkzZOws +Mr3ZbjBPV3P8PMTjN5ng1TdUvRLXioQP6BVefUJd6RUg6byGlQbgPr/LHXM2PY8e +0QZYiA8dggrIMo6QsBh2NDlEvSemqpXcwxsN8akLrUGUeycQ4If7GgqaXJDqhptQ +1snewSohUaiBtNfFWXgMBEshRrGx1bq9CLI73AbjUNG38PKPYkjTX1ZsSEFRs95M +uW/fwjEDCfc7OPKhBzDnxaisFsIv6zylanZeldMl/ZUurmW+rhCNmpAqF/3AhwsX +mc7QDGYOFPW0DSgoUm/pNUlOcHgitmeAtGvE7p2q1Ve6mzyIcPLKiQIcBBABAgAG +BQJMZZDOAAoJEBPAtWZ6OLCwdyoP/i0pdlXcVzWRbkAYqGr6hN1bnMSb64uAYAZu +sKSi+XsWMh2lYLZo/0Br3w90/F/HDKjWORf9Fq3KKUPhWjbEnseXTARjVo+5EUHP +JBeYv2IUybl/tUy8R0c3xQYC1YceuQUAMdD6pd5Z7GwNfEiaQyG21NQ3MJuCAz/k +/HnRPY88890ycG4Ij+mqUnnC9xBFXOuz7pHnyVFwPDqWNCIxVxARGRmTPz74M9/5 +wD4GRVsOxeKvmh2fg4502th4qaBu3eka9vy+nMIY8yO1QJEkefbK+X+ij2UkqNyJ +cs1HkmUJPCV9ajqqERg1w87PA8dITEjmR6E8s22PDqqARZQcnUGLkpYHjDsldAA2 +tiETWEWNXbFzWgTpIvOd4ehB6NrZf3W6u316RifPS1PWCqbEXuOHFjXCky+kc3w9 +XAZ4gb+1jV/lABEgd222Lv4wtkFT99+XwlKsUhsv92GXU5DUq2j8ZKOXnWcEHgmg +mLS74ISlffzxpjCcWKW1m/cQYo4vwxC3uZmqazq920xPs9O/9si/x5z7aRltWAY2 +hFeWY/VrsnX9A3o9fdwVY5pMJdV7ByA9du+uhGONhqtB4EQRRr1qJ2OjYnPsqQM7 +XdA0GBpkYM7yIE6KWCqqRQMwlKe6u4f1nLC2An3LWyyPpB2zw52RkYMxt7FSRbwe +IrnWcdcRiQIcBBABAgAGBQJMZfOeAAoJEIDQpC/yyFDKKO4QAJqJTuKuA65f+uIA +sktMtzDZ8xsoybx7ap08yB5PM7ZxeYtfigJP3d1xlDOzjtu+zXLrhbaJHSXdNhHw +MqZKL57rDYmooWjBFQsudLtYXQcEdJN2GPDZ1Pk4IIrnEamIjhZBuLXYDnU+auhv +FtR6VlBnJoWdhMY20PACfLLJgJ4nfmn6bdM2Fp/3JdMHXNBCrHPNZsE4dD+0XWqY +cur/1ZdYJWdfi36W7FaWwk1lPyidGKQoJbNeiMOBAn9ewV9skLN60P4YapaZQRY0 +lEgmhqUlkAVTZZsuH37V/x8gFQd7OmeHDUuhVFEyJuCxehI6NqQ8JxWblFWBcMEH +ZHeluj7XEGUUkvgTEzsf8GMrz9+VfKjljcW1DdJ3XzvTcHwFJT7vNgxpQ84Hd5B8 +AvvGHLdsUMRl0u+tZp6x420A1vvUfXz7O27QZrIe29h+YnaFk6hPqPJiemWBsEsl +vjI7etjzj3Kb/cprIl02sI+y52H9Fyv8EoLj6hKcMdvoVx4TFD7opM9uH84NADR9 +QFo3rTGH/GBEw2Js8Z6a5+69vRtXRQ7pEERGWHPgzdifdX1whKvyA50um6IUj2mS +fRLwT8IjyY+P+McXL8vB4fQxdb6jijmAJosUE7PqvM+YfiMhC/VTrXBt//oOg1LI +YbSt+ed0QrQlkz+48z7hwO6oQSqMiQIcBBABAgAGBQJMZtbNAAoJEBwB9EPJyTxa +mxYP/3+gLIdcfaXhblrxm87Vz9oCwjMXEQbt5eOry+rZi6Bwi+0ywaaGXgiU5Jgv +mj1cBwpVRgDAVas7U7Afl3CHSHBEIiL505n5gNUJ3Wt9B7IyaVcdtbLMQcVft+P4 +EiRDSU15j5ZmXJvMasZwV76OcA2omp7hYWTRXsTvRs8NgMwhyD5SoRLu0TbVphYm +iqNQts4ZFpC9RdJy8l7Le8BL6p/r9sjO4UHl5+H1Lxhd6kXHdQDBCKkOxG0cKFGs +0npjydrpDhVWt8NERBece3ZsB/1NAB13yn4OQPh0Q8ggkxzy9hT7vMHZBpkd+afd +0A+2+3re9YOaop9jWSwINV2eCg54OfK+2AzIBTr/CuItI+njpl1uS43H9cY7Ipta +7jpSag7QZTDsQre68iuwC5aneGgkc5h1WUX7SHHIeu0es4459Yp/kxdmmhFBFKhB +MVTY0+Ea9Z09nHz5adDCwbGTvv1obWEqNLcSWbw0INHECfg8R3Zktsw54GRVMcLI +jaHcAsG45C9Lu6nGbz7P7SfUb53rGX3RmCwrPqWI5j4xY88/MD8TaGUXqi69Km3Q +CQD/e4KepNTxzyq+2jNa+Cz5Z1nvKYrRwmiwOgM/Rk36Fgq2TbxhvsVuo9LzbV3X +U/2UbdA+4fe5n+yR/8vDZ/KoYY1WlHuMGSF2J7ukyP5c0MfNiQIcBBABCAAGBQJK +cZUKAAoJEPGmm+QpwP/urrUP/3rHPdniNtH4Ojg3B1bggjwXR7uXuiwTzN+BrFLK +ER4PJYn0pBbQyg6QEXSxqf1YyZhrmAGOKDFsBpE/IL276ZNZjx+vO7RneD9gMdSM +hd3SMPSG+VitOFZxhoe2khQhibuGCEJe69SLaSMQNIueURN+k/ia+cH69kR+NBeX +SyHqhUBcxttEaSWlCBu7NgXP/IXyC27ep5LUKe+bmvZLJBpa1w7g7YYtnBuEyZSV +N77P80obxeVnT117XJCCKdpWEfiu1MG6P5mryy+cnCq+um2+V67tF3IMRxA98JBv +VTD39NdD5H06Syu/nT7dnmMsX2X0dyY/cEUipeHCjo6/FwFr5OxZXeHPqmXUjG5A +eZ8ymtyM+XYa4gJDnsCJIKWy4JgzU7/+JiGaVFh2aRwbPZeefNRiQu+Pz+A437mY +sTATw43AdsIqRBzAzOUimIIS7RJPBblcDbV79XOKzHfWUB0MtsHxij4zYBoowjbT +GM1PkJyO5frzWdW5sRVkSi2rW7IH8q6iRqwo7yt3fB3Hu1jFx+XOI+m4+QYOUTyK +mZxGJ0nQwJ30na1a0kvnk3rk7JimEj2v6zAAVd2Ux6EvLAf+9NqzcOgtKdSKS0/L +YepeBMA7YF+tK75BNcuXKNBLa45UnXo2NpAeyjev5Vf+3JiByqH4F6Dqknmi/uOq +9WtbiQIcBBABCAAGBQJKcwoEAAoJED2QirPw+/UfV3MP/3nJAIPI+WfqLyuJ7uDl +onfnhKCsDnATFne2JN5rLsrsEQQw3P/e8mUlTUUX7nck141QZQg3WYehxBh+hYRi +tyXCAC7Twbr6klBVmZ/iaTeDRN/wy5QofxR8/i1yZnkmgKSADwKbHdgCwihwK8T2 +ALJs5/JscFN0u/j4p52Sli9EuImyehWF8d2dQWDdbyhYDHFt+hkMaNs+B/rtrsvA +RlujgQVCmJv3JJHoXoNypgmEnOuiE4Z8P727F1j0GmGlCUWhFRyrndtNQ6Yv+BdO +r8q4dZJq83VRhBBGXTweszUDdUSWydWwpDrVLgXWXwhleke2Q8PJqMB0/eHUypun +EjuFhAaZ/4IlLbyLybHjyuKQv4HsGLaK6JDmgssQxyhCGQyhWgaatNdI2m3RmjeG +4Sw14+AvuoNxj7tGyVLVtgJTxcP3g1DpMIxBy3ADtA1FPA9iKG7FjijBFWQZB418 +nRA5edpa/BHdCCWIPxH527q9fyJS0LLuRE6ojoXgzZ24epZkwL8s4jZCvjKKjjMK +zIRM3oHep6/UpsnuwjE8H4RNRgFDeEGb5xpDMt+xDFzFGWcQahuDtyPiTvSXv4xZ +wX71GUDUiMc/vdnSm0NxDWlnDZLut/EE7krrwGMUesOvhRYyuj6UgyhBEWkv4JIQ +V3PpaA36+pcYUvHvK+045fr+iQIcBBABCAAGBQJKdYqTAAoJEOpsprlRuFE5dQ4P +/1tb8vgVoSEE9clCLdNFLxHzMIM8DV27qZxCXZrWUrQEeeXY1s70tUkvygyyDHCT +Fb7wkRO+gVsVwYam5FPGVa5OvpbQpJNiVShArD69PM0sSMAa7wjR5heQ/75+Nu+c +8ouz/PeQ7FhLU9Y8b3OghL5MVKDrQFoSODzPSFWfbv0iYBg2q6m2m95r2P+89Paf +inulwjp+Gn1wSYRfrDFU6vxo3/JRMWdxGUZ1B8ZN071vE7CMUMxy1o4c4x4QZ6QL +rSawUPNwo9ggIPQwG1EcVppQxN0kE+7JZmNLg3nsgczr51bK9NjYjK+1CO2m3Zvj +n6YgzXiyYhDvNT0GEjsqv/e/9lLDunP6keNp17D2ULmqv8ARpHnDCNBtF32xUpDL +oDXAKWqpiQ0c1u+/bzZvl2gzbXasiHeeZXvgVDZVHoOHDgYaoH9FlXdaa3OO4dJO +EJCAQ0oNuEqBAnjEd5eBdhb6YiaByES59nnbPDyGNBFku00BYzW+SMhQ7eKSIy5X +PzU8uIQTCooH7n6Bh8TYb5G0JKgISo58iv4hf2oor5D+qo39tlIt5+SJXhvLS3R6 +r0JQGBHJI+JxUzeJxRNMbguMu8/nJw9c5Z3Yr+aEyTnZY9npa7QwvP78j5FOMw+3 +M4SW35WtW3YHZiTjan5Rsrc3p92owEv0nPoBVY2GR6MciQIcBBABCAAGBQJKdaTy +AAoJELNGT4lqoVlIBxgP/1oRBZxr6U/6LvHlFKnzoCwkl8qdwcij9B2XkKqmDbtN +9gSp16p67X2zmka4+9CGecIoJoX8OdBaGlPz3Fam9wUOr0MZkpRlvrVC45f6GEfP +w13jmBtDpzS+kYoM5KLGDMGWG6XDR74FFoiJNXAaHab69yQUSub1hsohLIutky6b +yJRgcNNKUIHu88LqvlLSeibZtJ8hrXPi53UYFdDCGyZFy7b0usC9Ymejjje8aT0X +n5kauoicmakmhnRSPWbh5alLXpZ5SI+6l8uBcP8nNqUOPisXYGSifAmiX0ZdfjJr +gr+yPDBD7x9ttAgYPS4ynmoowSzlJeTcCVq5MhvPt6bOxAg37IRNNBC6x9QchUC8 +6E7WII7HlGs2ggipXGYYhuEsWK4umLgmb0HI7yUWQk7W54ZraYzsW4wx/9VhSSDd +k8RatY8o+XEnRBcwg5/b8GWV7iERw8cALThv1FDE1ejpbiLnmp+wQHV+Aqb5m61e +IBEMKzTpVJN//cCBfOgxLY9LA1oaYPDBVjPhES23jLMBsOhA5PF4s4tCz5g4QpzB +t97wO2/ilqiiTj2DEBTx5zJ0I0G7IIE+v7BoIlCVi81L8ZXqxgbDU2Fz0urGK/tL +7hEF+zobC4ZYkGfrKPpSzoKwq643NLRkrR1Ctmdymeuqj9CSrF5rp694t+4yZfPU +iQIcBBABCAAGBQJKd2f6AAoJEAxwVXtaBlE+6i0P/jnnOqrb3jpfYw1gaq8d+xb7 +BaJP71Zn6enZkwraNcwBlSLOS2CBWvXgj6+WvyN2AxTxDRyeOfbgfxhvtkktO893 +3XX4/9u83pqXBIvWXdzp/pw2fDKQsx96iI5P+S2qn+OR3Gm/pV7jBO6aU2diHVzr +8sjZgxH5J18rMWFuhf6+oA4QSfjhlC+z9QMq4+kCOBb2TgbQX/NnXFSbSR0/Irw8 +xzLNGL7UDHDJ3JCIGSuEhOnDk4tAGnFe5FcAFBG8/jqzgyEvvBVnCZ0LZ8oDptLz +TY0QnkJ7bj7Z9XNH10NMw0rJ546yAbPGoHo8Gy5WudNxvPtcfGvmji0OOX/k9tWO +B0T6hYR5EWDBaSXGrN+eZarmpLwJgkLrvua4OCp3X4UfsY9VV7DjYE6UDMaOYWau +oRvhA7+7gTgdNUh3TbXB/Of09HeVPlxN7RitjWEWP9+/nnpnXbxmJhtgRF2gP4yr +Ipir8YC58CGEg1KNu9wRcfEwmvsTHTkUEL+92U5KsdM80wuDLuIjw8KGO/MYzvxs +e2THCGtP1y7xZi1KTRHFgqUPhTYvNsY9TgJxQE4/0t3MKKt/CjljWRNufXnwXRSC +VZBhNdu+UvZaHBtFO2FfBXyykvNPN9hwTkLrBFEeLsvNNf/PmS2LyBRIlfa9I66p +t5Ecsbv74eYf/v0IB1SKiQIcBBABCAAGBQJKebasAAoJEIcvcCxNbiWoJT4QAL2i +71ZE8z32hEHYIMuVeM3M9XYMwx7x9hlPhE1EW0FGdcc7iGX7gQdgi62b7UrbrK4o +btDx4zBLNdNPQy+DlSXzyad5z6/CLzfS6/nMacF4udkrzjh1qLN3WPlYT3/ZK+kI +iBRkDCk+GYiLYr2x4IsU8tGPzxso/qih/ghPO0YfOzk7EsL5HaFi3RkaB1ahxuA8 +76tYFiZtLdfPegiRqAPW3T608lVmWKjRBDW5U4FLAIWuNOGBIT43rfDijKr2YW6h +yBkkc5KodUREM91vTIQP5U/fFoq/l2rsYJJaZitEBH/APkCfguXKN/40bVoZgHYL +O58KKwj1aC3sT46Rj+bLIy3o9A6N9ZSg2nsXk0ULT9pclStAxLqx9bAIISMSK4X3 +YxgYQRWXOyP9siDdFL1EfzKiJ3syxDsd6QFXWgkN5VxFD4UsfYAZJ/h9xdbb9Mn6 +pJ8v96xNaCiJA9Vdj0LWN/wuSDN57Q3dEOVzco7+I5JhM/Qct/ZRG4nIXgYyShdx +MAfE94YG99bWKydqLRsi5LEfvHLV8oBSaYSAMP7F5IdrNMJ+XHQ8YNde7zoQkCJZ +m5BTEKAfS60DjlCNYlS+qYpMgiRxMPDazFd8heNnNvFUVcO9/oU2IY7ZaOEhhaW/ +X/MnlG7GxjLDOzVWNKxu/RbtM+HXeuUygm4/VnQiiQIcBBABCAAGBQJKkgBKAAoJ +EOe/yOyVhhEJOEYP/3Z5blt+xbqfqoNPgLK5UDu1ClDRWjqrjLsjjza8C8TfJAvm +HsHkLsVLDaG0HgEur0E0Dqv9E1dgB3mDx5Nhrz2FX6+SRPhgLJzHx2m7T0xOfrnS +kQv59H3XdqBN180qWHhUhsRkac8wSDoRqI/H5yp5hXeFdHYgq1K9R8u3caf0myZs +uIYpUh/bBvBRZaYNBtPwoOSU5I2oqOnwSsoKZwKz5JQknrvSRykwzJzpdeKo011m +Fz2pp6h1j9SMIPoWFe89/QKIJ93hmSJ9bmKJDRRvEk9HvsvcORYB1MS4Hv8M4+VG +9YqI3IPhIkGFx8NSZYoyhy2Hiae2BHfl3BWzgiX36xEFnopxRhGsuDrM4rvj95t0 +pZM4is19k1d7h0AdJGccJUQbCeMlog4kbpYGjj5Ns+Vluh1UUAEHhutMjYeUgxyX +muvlSacBvGdzv53YqfEXYCoO2StE5JnmR71lF+t9y9yanFT9SRQlKwbRzD/CaDdW +mtzl3nr9uevr9i8BNs0H3O4/WadyNIuoBNoY4XRHGlYUvBpyp/xmtvk9vA8X3PiO +2H8/SH2Yj+yP42azcqSh7x8c6jueqt2R5Jfbjz4Be0/Rq+zwLTkBdt9AMeTOmnU9 +pmZtANk1csbYIaqYUNZ0spYB7jLZBCuGpAlUQe+iRAovokpYOVfBkl5DdjBIiQIc +BBABCAAGBQJLG5ERAAoJEHxWrP6UeJfYhCUQALQ01mkmr7fv3wrk1cCj5U3DObC+ +SoylhvkaSdQmq7fd0eHS+6q066gpIL4yJDfA6hcFANipLKkMq7e0pCJyZOVIt9Qk +laDbq8tleaWikhUnFqEzNmXjbI/7l39JNM3z/lawuOEuukdLeegqa9Laj/FYBGBP +9AXyxBOlY1+nlMBmuv0xI7l1kqWjmBkP/COQvDxnY7l9aC3QYD+UTLlPdOwbeuoF +g/02h+RL1q4s+cI/kYg3wFaENELWxVock0dvjPykkPiqTX8Fow3btVBvTWAu2KFH +GGcuMtSKhcHpduqyPog5SWYmu4OuA4xHDWcc7IB95jOsZS6lWVjQvoJLHR4clrWO +/SLsKQwUMW4mOARegykC02MDeXgd/Kr8W4i5MYfMTiu66Blot+TZ8C7/Dh/uoURu +HQNTysngcffJSoLyIvEztbA/T9JjyS4EOh56O8biIXpNXtwboT1PKrVPUklAhXYK +iCpLQ8sJj+mv4QQ3g0N5DjEsY6xs2aK3bnhWJC5T+avWizUkhLykJrMqeTGonCSi +sXrQLi9rU3ECQzNCHdvTt9ughTAV4RfG1VmkpucXfrSJKK1ub2HuVEf6Gd2agiho +vWB9LmkwppiLPG7Cvt+19JFrGCE4kbHBNmW060E7B5y35maJHu96TVoMZd8ubGl7 +MoSZsHYZlK4s3GiriQIcBBABCAAGBQJLZE3zAAoJENkp8pkr7wozqZ8P/14PEpRP +jC4CSOHkQmAqOQRXvXoqkvugI/xqPVlRkrh6D/YiFZ9QzRuqB6qJh+9inEvbw5MX +rAXO20JdDYruBqIDPYXe8tBDqGucvMizmu0+FksKdqs+Mkz7tyjr3x6QnVvArA4p +2Y02nu2Q8v8GV4Zwk6eGVsiEyy/FmFmaT6bXLux+fLgl9o8Nw6+3AThVhWcTj9Cm +vqLC43UKjvxfCwpNPVbBRjllcVdIBrYaJ6I9Ta+bQj5ZEEaIe0gFmNsHgxHSt1GE +v7McA85/0v0T8Gm2Ssld98KfYDs56eN6Yyh+VJKTCTBXm8xuiPl+TaBLI6SmvVLl +DqNaBxWsRAnGpsYMwzNSZSWyv7ribxnqm+KQIhp0V5juo05bFFvBVvA80/9JtWHO +j6j2XgiwLPCY/yIST1TLEpcMBDQuj2baN2XT51gL8lNKUZFfoD2jhEZ4JTD8Eg/D +em8+dLllfO8EzcT+Qe6UUBPb4ZaKMFxYgWj0niOA97nZySyzrKLNHlx7GIxbD9w5 +8Jtuev93jD9lKpHRQX9C7pqW5koQRwQPdKnnfBP7gyMOpQ5laPDg2sf2e9LHBNNC +2olWNeoLFN8GzENuwWJPYnyR4R+4lxD9/9G3614SiTExrQHbWo0/olGWGEc2nWGm +zJsOpU3wWgXV8VKHJswCi619ukc9TnASswUdiQIcBBABCAAGBQJMWL9pAAoJEPEU +CEwIYRERmwMQAKE2t17wb2n3CMCXlvuBoWuA3zE0m7HYMGT1neLgfH687NlVHe3i +ckx9VDyExvQJYMGW0UrBiFqhF5YK+Bp+yeH+GbwTjk2woI3OESKsVDUhT4DYIPrs +l3vPHP48dOk8OLi04SfXYbTAQVILNjYoWb1AA7Kz0Sb/KXmJcETgAKDkTambzvlj +AII6WdIdUJqCV3z2HoLysJERviGEN8/3Pv/ICWdr0zm82tppeLGF9CSnHJkM8qqU +phWOy+XdnKPEc+iHKw6LX+L75quGYwX+PYj4sG6s6TCjnI7PdtdRS3ezlvHu6Usg +Z8VIbBYW1sXfO+nM/T6AvlVhXE6Hj8nB/tAo+Sc2sN27Vtb1gZhz9TFsi/bA9zBz +pdf16MP7yCCzGaqYh1N96/YJF9oWYhm5ikBs3hV23bwFO5H8SspI9lRM5KzgXUxz +A9r/8V1ra1SbbhdKF7R7zseEsDPeObdBwVqhn14XXTFM5YPpw8euIYK/r6Ic8v4P +z/WXHxW1LM/ZyI7C/AQP/suOXqRD3p79LB1QML4uBXpMmof/kiQze0BIPS3dgBru +455L22uVT9Lsaoz8bAPykcs+u5SDGWJdvlHgF3xNIpqDrDnO6zMYUqqndNxC9P4P +ncC2jil6WVPXkCo1H+/D3Q0fHj8Ml0UOM1FhIUv+HsAPYmioD5kcWpUQiQIcBBAB +CAAGBQJMWMEAAAoJEDk1h9l9hlAL4HcP/AlttH9SVdJov9q7cI8B9TiTA0L+qWXD +wB2AokfG2bnMm5Sf4A+lxuSpjQ9lHFK+9smpf+XCAF7KWRpH9qG3efB3G1rOAIIc +E9iA6H8R31wJB4blCzDOihl+TDTFvLJ2HmzJ4b/fVC8CJCYfs2G3WuXkmlDDQeum +JVVK24qPl7yfJwhw9otLvAHmwY+l1x6yDrBvYoGeVoMjOCd8ofkNrkKTyO9C5Iok +xToJplqr136ULiG2uVDq8Da5dIDPdxYMqjfNF8tk+N58VjeG7NyWrZxMkvoQVeKV +AOfTgTBPDDswmcqFSZdAbkwNmXKte44l3mWN0Whp/YwCfdWsPX8CrwqcpMr5O6eO +f5dsIpnqweaS4kDaOPDWR54+H9zn0toLF6/7nldgQCRjUhh1b70ue+9PynE63sab +dAKf2z7Qgea5yXN32/gvPWAkeNBVto7+R3ZhIlrA3QJxZt39eLOBCcWbUpxz/AYO +wYIeiVvY44Z9tEzxIOo2uMwdThc6iuA72rBy8GzqY8/Bmv6PZWTd7XLRfjoSa0vD +ZdqNYNn9+tKMq1mbrm8APUdfn+/IAXaLPqWTLwO/1BfYGsDSV5mKxUhga1FFblxL +t8CEj9runq42tLwt/vGXsu/CpqXqPKhWd1uuU1utVgv/tVxE2Q/WBLJW6NozTwDe +YfMVLMp5T1K7iQIcBBABCAAGBQJMWMLhAAoJELqceAYd3YybVL4P/0DOIdrttxH5 +aYkJfMQEOE4RjJ2+yuZW62bFkkMm+fW6sRipWx62jK9vjFUL/3hDDXfPaUmuczgb +bBiJDcsxjmlhwbowJKTbCcAcPL7ChSZhbzhZsUdh8PXLWVHJVAyaKum1oo3w5Fwi +7xksT6Qi7xSP6dlVxxXUMJtLZtiNTTReK0DBc4cVR/F3K/QFQH33gxVr212tAfVP +ZFBex3QrYcekhZc7yuKisFpK/RzIGcazJbO6+W7GEob3IBQARRp0GjRO4g3CtN5v +n0ytIztXw+xBNPeTrDnrATya8O8WuLDIU0U8H2IXVN9Ih7MGsRNwmq1RPrgJLOEx +fDoZZxeSGegHNHDphfqhaUwtjkzPv4aYMS2de6Tti6se2mIhoU/uPEg6QZIV07QQ +owMlM0a2HeXdaMt0SfX6QWvQ1+5PxoAYB4FDmcgLJxBW4iY/1IuuNKDxBkixv+pI +IxgzZTWLApdkvILy67HnI67wPDeVYyDPkOwSn1WbwROJzy300NWWFx4cnjUf56RY +WtQVMsswtGxy6+/eWNQoHPOZBh7SDDI7QjPdpb7O+dYfmUGxMVR5/91hOs47FQdE +gkxkvTezM3Y31AKLbLWev1A48KyhNrbh1X0IxhHKr4RoiRY7amXNaV/c8xngBqP9 +iCpQJZWaktEI4xmADNnQZ5Nn+Qcd4GcEiQIcBBABCAAGBQJMXUaIAAoJEFOUR53T +UkxR6x0P/Rq6vZkwirvifb5c5m7U3+fp4FD3YNQzoSOK21ZZzqa0IAPex10gfcTR +5fb0DYT17NPgUeHV1HboimNyH/h1SNYDt5ywruxdMM/oVjoTtsDdpzbJSGIQDdFA +bo+Mv9NoIrN478Krpt1yEGzh7N9XypOLRiyJbMmhE9V+sGTDWe+Z/8Sm/Fn4Zr/o +/pyCPg9SzlGaosBAjQrPROCCEGJrpV3NZGjlLfn9o+cQvfkraA/R97cxkxj2hTBe +Z0TrgKzOX/KF8z47AcLtPEEGHD/cBJgBJr0vcq85kb+N/BkZkZszvBvJVATUMLXj +iNNsoyb71VtNvGPfCD8F0E3a/hkhr8+HDyCplU7fglktlq7lfKSqHvFDXVJQZAAS +GmUyUgfE1Kn0O/Zyadpt/VE8r7fFqRjfj4V+c1cffV3LCoAIoy2wmzFrjycSbw7M +aYfHPQZGcP6F8xFMz2dbaJ0Jhy5FhWTclqxVkT9YNrcgk50tzwXYtm5aWNu3iQLP +daCXFtrLGP0G2rF+ZXez9/naCinpJiV4yhPkkR+PvkGozkqJtG59dhR+NptroDw4 +p86si7/RmcD3NX86geBwpuQAzHU8wNkopKeIojchjAxX3nq5CsmUytHhYgCzl1pM +7Fqynsa4HGjL3QiLNW3V19I7bJ2aZ06Oj9KdwkCMgUbtn2YVJ4FwiQIcBBABCAAG +BQJMXYmdAAoJEHkhUlJ7dZIev2MP/jpGgWWvJcI/VarvCa44mcOIUiv6MwgAKEAw +Jwpnvk2+MsgiUOJDCtAxllsoJ6jQWY+2+tswpp36cMrK4DO01Ac5Wl8uuGoaefk/ +KThd1nrB9ECOCm3zlE2mEQaikIITWuSGVk1yRc/byXqi9VuY3Gq0Y2j2e5T9KFGs +R/Fss87L257OPq32nNiqPpD5pY3Q3d4Do0XpBHfqJY1b4nCUiKZZ+2w95VjMrAcU +m/YecF3nvDiy75sTF5olOfMJCH859u3ro8NSP780op6k4A20Rjrx2ll3VATTFpnW +Z5deKi/a37ViiFll4tXmJ259dUKGbxGe61SjBS13FAP4CBw8gEHuDPu0bhZZsJM4 +hI3udNFgreeU8rKq4oajXWZHkmtaJD57eaugzs1BzBHV2OaYnhqeGp5fPUk96Jhk +pfq1/7YuRaNpG/cnvSCk3nGY0t9XSjmGF4NvuZ/h76GL29vCsoq2bJfGgSyiHLCK +kuhxAwpwo/t52bMuWFc7st5/g0TKh+48q7LKOhopOAIMmRXn3bjMu7GwH0WSfOuc +7V0DAtEl7GZb7S6SF7JDoy7pdYNGuQ05f7At4fBi8J/R3eh8b6EyA3PyZt4pQ1FM +tORqKTRPP1oLcjp7rjuM9WzoJQ/4sokSRee4g7c3BWI75QwQPFz+SqfQbIdGPU6Q +GHEF4HZ4iQIcBBABCAAGBQJMXyevAAoJEHqPSei2NIC+2uwP+QFs8dZe88DoZKZZ +h9MnxzGT6oNjb4wvAC9m8XSw1wn1N0hA46oPKYpZ5EgauVKhnL+DlbnP/qLNfwtl +2t1cn39rCn49Vmm9nnEp9kdr7VIM2TioYDthmIRKHoqP/LQId4RJRCqRNAL9GEz1 +7/TyH2vnNT1Iy/hNWWyjMFBpeI6smKeOa3XYsYxD9FfAm3ygk+ye7tKemTtIVCUk +4dVDQNUnSDZjtYDriukMjFp/F+7A+p9hRX5Xm7Lswl1w+0E1rQuDCTlFfQK/L7ag +H3UEzW5KpSRpn+qp1cFCXwb9VYAshYCG6jxxFnbNN9JdpYoNQSO5gl512D5KL5NH +h3jzvWxt1MC1Cm9qwOttCFGPCgyD8v/5mzM1wWUFLm/g/MhWJAMsCzy05R8wMOom +1zCo6sG/qU0EpOdJlj/lOpYy/keY/LDwPdwXATA4CULn2VTvnceAe3DRWEESUY5d +YIXgyJ41KTJO9ecEtYsmS6eioJkK+I/tt359n95kFBHCqh1nuQjVHHkaDJcP62uQ +hkgDZg9mJ1i1nizI9BIHoL1Ju6FIFrA7lXtct/AWdAw8bDsOY4OTTEIyx4FEkA9N +BZNqwr2rCtOqW/+ZgdbUdZ65E+ax1dmhxm92yaCl3v6mzhsByfg3Jxt/uYsKOfwZ +ZN9mZeGPKKW9z9o5iMsmDh6Uu75uiQIcBBABCAAGBQJMXzQsAAoJENFdMTiCAEFz +9WIP/j5nOKY08oMiiVlvVfsndEa7/H7DFSyVyKBbd8fawxCB6gFqzqMeh95R56/4 +K5BaQ1hqhPWIPQ2Phq2bpgfT1EbyUlQurtSJGD+GLOk0YKuCdsuXD9cm7Oxtx4WD +WoV+s4B0qvCGWgmx1Vkgnv0bkd2TsgcBjKk+YaGzG7MrBuXVqMAhTSqpZ4Pfx8j5 +9pR6v9D1qZYyJaAdJXziLXg+/V2Ven14WSwsrrFiveq8sYKkKtbiWk+IhzE37Kki +5q9qfkGgs7PtRS8eTXRutQp1buuqgI8GkBpYk127pwEURbZw5uUvMog2hqC4/NYt +n3NgIPRcH5wqCLZ8uRWtvyCCACKuHxFZxsrAvvTjECh8st3gGBMQCJtV1lTtFoiR +5+0PJt0HOQ/W6n4JpJ3E304ZXVmFXwCXvZtZf0LjVbo4sr6eWFsbglKxPlKJqe74 +IPVNpHfIzA41olcEYB5k1OVvJFffovXXg/UK1HMszyENkUn2Qy9UjpEAN1kT9zU7 +PVDeWBWekw/P4pnDypAD2x6+8IY1lcWfxln/b2JvpOFca0UvAY/fG8b5UaPDIr5j +9u+Z1buk+tkAdR/6CATk5G1puToXQHv+G3FHhsSw7i+dPKKX5sWX3KHRxg5fGKgK +9BTb2rLumn2gkP/k62fBKkHW32fbnW2syHZq0FiP2lI7WoWdiQIcBBABCAAGBQJM +YfReAAoJEHcx/Mxj5OJ3igQP/2Y6dOHRUKlAwkW7iaPQaCbtnP2JtdAgXSgBcCPT +XU7VYOdngfDi2lLaXpJSSDjPecdAmVJqivLRN+oYx5SKM3ZCkE1X3wwE93DJ32hr +Me6tSZkUQg5RCfDsCadKBlge1szvUetcrNZWyIktWR/bqDo/XbI9sASMxAVmuNFZ +I+6ZQ/qM2Ec/b5WdMBS/lH5fsYEejCYWC0p9jTYC4sfXewAXmUeI5RChN4sr+gdP +j/lfj+f5x1oUEhQjPpvf7DIZThwk2cvFQItiX8QzwrjkBGtDQ71WnmXsjhaNjaMw +vaqd4+hpsAQzyPbAeqoiMPOIRB6pw1QN5Cy5OcOSB2PSfUz1DtCS0k9SxVBZuasT +ogG74q1ge4frUG+WCOF9KL5+4frKosm78q4TCNBU2Mm0Hpdi7e4PiKhmrmxFE7uz +xV8F35gs9uK6jG6B3mKOOR1gOSBwwB5HhnTD3xd7fbWzxYbEF6DIbFw0eaOrU0Ze +b77SN/X+imNIiT4GdCCJTRpTDge9BoJLtBBbOkNZnyLAYFLEE7cfAdTQqTmU8xvI +CZCmwZBXS3OwSLYOfNzYL5abwzaGng7ZRbwArFJaugSVD9e+wstz9KdjcrxFzfRd +E21lTibB+9hPzXWDpummrFhHeD+des9oIvSxIfAg1W12KYpQ/lkDJCfzscgjmIXS +FbpJiQIcBBABCAAGBQJMYhx3AAoJEGc6A+TB25IfmEkP/3TiOvJUr+mriDboM+Dz +7XVNI10CJqHS+HHjyDtZAc38N+LCazLI9OY5HViaXDekHYlEZ7ImoLUsYdKYVx3e +HGWJMdEPEnn/PhmoQ7UZFxK31X4CBDU8lCgcqmBAvujS4MWpYiaClq1GGF1vgtFW +hIWCI0CnjVqLLNWzwDczgt4zcNDI4RJvsGGl+a71QJ6lviMW6AAHr5i1pWyPtXUj +XrSccO6lcu5hcBMQabo445YFaM6nIi9iT4QXjwtGqt2yk/Z3oWhgGhJWBO17vyZs ++d5Q4Jd+UPEZOUBm82NNPFWGMawLtEZ22OqvTuWIl01NLTopM5CZmcsHMt0gPJ63 +vT5d+zPruwY1DRBRhx+j4rxmItAuUsHCmZHgiyz0SDPqymkaCk6nY1oXj9olHxhn +pVzl7NNmxP/5hLaAPueYqkEA1g34yjgC3eZRFRNJArN37KIjXMtUPVBw9MNTXgCc +IdcXfNzeh/Crg0Rag9kTmT308G22xPUq3WJMTHlXd88UDpdZ2l6H3iOE/7S1XKWD +Np27G/aEMo8kUt9Qfimk7l+mCU754egxFdfbQ3+okPB/FX5F7U4gqB9T4x2hYIrb +60z3W/8PZUTRbojAbdbFxoLKaaGwo4mPcRA7Xa5ck5v9ozQZCuBMDTBpfBkioZiR +iThgqRpTx0WCUYMIe8P6vNAyiQIcBBABCAAGBQJMauu5AAoJEAqgRXHQPj5wtcEP +/RJ+Cit0DASmo7VWK6uRgUy83xUxtydN4ht0mHLHajlbAoppCq+yRcQMrPt56l4F +Z8V494YjIUpVDwlCg9J7aAPnrcZ2ubSdS8K7iORo4B4tr1Jgqc+jw+xndWIboASO +1xGhLt21lRhoEjcit6e/sb57Sdpqna3NRl4wSCuBkeBBy5oni6sGglwKPXsPM0wM +Q45fWjsleIKMRAtYesVpArg/gKpvr+Yr9iNKC+tfOEvktFT4mevlppy1Et9oT2Vm +m/Ar3ylV2voGPlK5Ses9vo8/6vi3Plsa0/WsnfwlTHCjGCLEPpf4w3yFfqX91uzE +GI0tW0htwb9TjGeknuclyTNZ3a0JMaUpExz/QjelSaBdrHYjeDnS+XJcHEjk36HN +OmkO5pkJ7IWjAfzmGjbLC9BlmdcLeVjravSi4wL0VWS7ye/pmR++0twctbHgSywu +AEewKuRD+5ASh5/O2PStdLd41Bo4mfmePovmPN2n1TFsMCk68rpx46QEz5c7nNgi +IDUHn2+udNe/pD6Lm58OlfFej4ZaJw89k1AkkUk+lHrlT7XNqWk6PGmUTbs0goCG ++rfduX56HsEq5ASlSNCpB6DPY81fUK4l54bZKweqKXa0VvESpWV6zBjbYYXC7ue1 +GCZ53aPA8vyTO20HunZgie5HL7Nb+hdy4obNlPHSHzZyiQIcBBABCAAGBQJMbMCF +AAoJEORPgBbTYw+J0AMQAMjEu4/XH4SWyUZPQ3p0cELaFHMxE1O9iCHGgP9fCiHR +flKzHHqJ94PWxSoPy8HyBWnR5kz6Vdzj9E4KJV/8Jg81NYwgq0w5roM+X0p81OYf +PuC04Q33Ibr5x89CrtN9+HXtaRpH3Hls+Q6wG48KleKqc1hbXF0eAmV/klKaS8jW +11rI8v2y9cAVp2n+3xk90HXbTxsHFlquj5yh5gJh5me3Wn9wcXAyYLiqNr2kLZkt +n5rqg5NjqTUMO79thqm7EAipfl7WSMSvYyu6Ssq0YshfVDv0gtFiuJcXrrJ+iviZ +MnxEMnCfrMeNjsPXbx4gsrBNY2o8Rf45fk1W5adXg8vG2ScoRkYP2SUXXro7LGnG +4sT2EfJ9a1dGo0DyHHQYyT5XE/0khMMgQqJI3agJRmqeYn398eCDXI5+gaVr+w+c +soFPB/8FwCNfeupOdb/EIueRHMe3tst8dxdvqPdiehTKwwWF+nafxgGBLpAsvH+H +9BTjjLvN/Y7ooYQVYw4tHoh4oIqDnJUZqMLq2+W7kmVpBYxOSN/8ZJgfQdNfALfh +XIAWP1OXUJZAkHc5RjkVHulWTeCYU3mCYuElcEGiV0vL9oDUEIrEuu0lqAGYtVVZ +1d2GMBZF1IkFaDTpUYf2p1Rg/+oIt9yRsmZmMxU6QvtMNhFZYBQsFMF1G1+9Z15u +iQIcBBABCAAGBQJMbruAAAoJEESXUni4YStdN7cP/RUWkG1JStfut+gcJ8FpBcWv +4fIFWyG13tQ5PdDqLRBYbbxscEqih7fnRlHLuWLGIhDpNiQ9PAGcy+PGRDAEIljN +TSUCkPi3FNQXQmbhjjsdEy18+sOhP3IWCLmF2NNwbsgUOcFts9P7jNucBsS9ogYs +8D7ifc3Nsrl+tzn4Aapz2tVy8Pc0B/GzUmZc982RoYnj74adyOeYWWzDScLGHF8l +v3xIWkxnEJ3XYfIPe8whUxXf5oyztbnH27NzHyL1mlrx+BIl11FqFphQZhDVlx5O +1c/RQNCAXe5+jU04M0BjMjAycU3LZ4gGuGCEQYShPBpUFInhMXH4Q82WL464q8C+ +E7xo6suozHIG+V8AqvtD7tmEwDKQm0fQka0aDgW9oQEZ/9PZWZLDLcnU1tBRZP/w +Q0T6BKYXTmrsLthgY4XPm/lyJZZNYcvWAPcGcdTAh9DqGV4iziKuQFHM8BFoE0Zt +0L5y8Uc0VokbSU8MBgcZz9p0KJ+NNY/9HMsHAG6ouop5ky4Yr57oa/vdGSG2sJfG +Uaf6K29TYOWq0cXPeV+O6Y8hX2s1MgH+7iMvyGKrxI1QCx9FpQ04r04dg9J0YzyY +Kxs5kolZzsch0BWX1O44MplaGSM+kSo/7nmiN0yA3tLS8sCkKiQNuLl2lBn80ZyS +G3yplo32phVyalFzdjZfiQIcBBABCgAGBQJKdK/oAAoJEJZVIrnUmucxos0P/jLG +7Yl8VcJ5j1TaJ0v8yaLjz9S5wqwjp/ctZ2DWlVq4IuuXRlsVn5l6/ddc+ZsnF/5C +GcSLv+SiA2KLFFrPr2b8L9BhjhCo2qmYwpBHb80Kzebe2lLhI5kOFl4gJl8Nw0EB +pAStT4d3yPQutUpV9tHhyrWkS7TwUR/Wg+VdxuStwNWsbL7a2byzvuP5AwojORbu +AddoCa0AiqLivdgI+xj04mXyOwgSPsUkZ5TmCMD+Vw4suM6MxvdrPnvkeZ+G7fbo +xR+vs1ArlPrMTfgb7FKigLw//NUr01wFhYa5KILQPx87CJHzAvV7C/2z/BqsfcQL +piDhfvr6F0WpoCNlIsoVJFucIId3cf/yOmDpFdQ9nSlmiNwhtnPxdNYThx3WEx9R +Uey9teeQ1rFg1V3dVe/RXhbHDmFZnMvscl3pw81vmMBw41r/+xj1m+0mt6O22RqD +GLEVXBpiNNF7qpCMoPSwFKnEdVDbixj7eKq6uNYe5BkbplqwljkuCOJSSyXNo7jE +ScyT+TAs0YBscWzK0NogKRqY8rGacwm5+Dla4ghNirpT2V12O5bD4js1UyEMiNjH +f4OT7JX4UV/FqRS+0Ws1VeVEL+0P6v7WhYwEt4sVVNDFlN5HNPnd3fIAIxKS7HwI +NdJlJq8wV1lRWjOFHu/24Gk9yi633stM60I61yKpiQIcBBABCgAGBQJKdeuaAAoJ +EIy/mjIoYaeQL90P/1yM+O5N4vk4nY3b6Vc6My3+A2tJq378wjpkVqLPvKwc3QkY +0ggOYBUaA6nfza2dh46/vdfjhUgU2dyRwD+EPhjWLp4N8nIXnmG37IAR39eywXsd ++aQSfg2xLxkguRZ4JsddrjMC26h9v4ZETcwsb3cm5lxA2i28hP+ol59erG3v71aZ +zu5kuxmsvGxxY4gvzLjKRv+md5b5rP7i7wpgcLeUcTxDl9sssKQ7Vj7oipsNld3O +GaTKYdBWUbZVdj/VtF1rPRbPlC919cg8Rl6jh+So/nm65VXmurMhDB38u0tQwrjk +MtMK2NnH4E6ZwKwb/d07kCq5WO+l7BPOAjOp9VjGO3fZobM8LZeDbQ8c3fJqtGgU +kbG48NG+qqHcjNDnB//5zM6tH+5akJuYcF/NzkF8R0E9qYBZMvZuyJivwrH0iBxi +Ljz6z3hWsx1TW7DyKZtvCjc3s+OA5k6uq0QAAQ1Wb555X5oMv0I4wHlApW/gMkLY +HbKm8+7s3Z6wPtfX1+DyeO0Ib8K+cwOY/xYdTZW+4Bm3T1r3TxxG5ZO3AgpnpJq3 +Ctmb8+83ZvsGWDv6dIf67qrnMfkbJIhyqqEaRD7cND0qHiPEv566LM14jNFS1PuL +tsP9LT1d7eGgsuHRGn+QowkhAe+jiEVL6L40+f2E1Z0wG837gnuTuc4TzeiOiQIc +BBABCgAGBQJKeiQ4AAoJEF+Oa+CSj/r6MtoP/3S2y7DDDRQum82HC/j2lO9zkQUH +n07nSgSwt0yfd4T5Oe+GS95Ka4oVY/fb+GsscPqPhCU5pL26JCzDkztvAqgHuCCt +YASLFkgzPPk3CKk1IVcoWdCBsFy8Og8H2KP16sUaL6wtufC3JS4ovnxPkZXv3Of1 +QLJo6QaSQ0R61cN041pU4PQs6LRb3O/6alkLYoRO+N6vGr6yxqrui7zSikqE0QBy +IsEA9svcRmtmbTEg760HjIAMbNICJHmryncTK06vvt93u83srqFbPSig2io8EBBr +7+GBdnuVzuoRRWXxdCKUMTDWVNThQsIv2XyLNRsssKNdx4tYzkGbqVsM0l8QrYx/ +8oPjTJyO0Q16DSj/IXqvIimWOT0EZXhFAGSXrkUvuenscCQfOwjDbFTgr9z9H5tK +lmJQtJ23z2p+l1F2dcdvx6IQft7ZsnkgsvqCoBOSWkxS4i/TRgqPprfwolRoD8ii +BGUG5zCOMq6Mz288QJci3l69A4jnH+/TnQvh3pbrbxiR1/EIY3KzzExT24tBYbAp +nfz+S4pp0XP14PlA3R2ltCHW5EH543ZpgSTZt2XB7bSTy217V1O7bXjK65eo7JMp +uKjQJcsc/QHLyXtS+6GQyVbqINnF3YKvRO66FDmjfBkJIfQYhuF+pdRV/kEy9K+Q +EKQ+PE7lGMtDqMT2iQIcBBABCgAGBQJKghCdAAoJEBNunPF7XTQt3rMQAIGtKXjj +fxWz7p4Lq0wUbTjDe5gGPKE/XgVqP48MsYqjHnDA0LaJD1THRdgnLwymcU8DhUTS +3W3Qg/nrpvKYCi8zkXQXzSkjl9epmg5oD9a+jv/jpd+N2k/mgUyHdjRYqi2Zbuyl +30Oi89UdswrJ7K5ABT0T3KAj9FemnMeuYQJ44MKZA4518c3Vok2cuGcuonlSKPrp +KsC/7MbEubGe/qEQ4Rjz7ZqEAzAbOVZqfuF5+MhoGBj8cTuxWzB0jYLyz5825eQ6 +YRSTEk5Uto5XQGsUH0XhZDoKku2uzzbXDcbrwbyJIVzIibnkEawXgosywb8Fldmt +hYuI2xSnmu6rkwHJVl+F/2W/+wAJdphQw0x15v/2zdcKTT5yBmNeY/Ndj25mrcd1 +SoHf5rp0YTYT1HpTGnkEYdvG/kY8dHWf1mQGb2nthBzV0CUTvlNXPG+0VyDPRY5U +oY6W66CJcyeLuHSG4kR3uLglLBXuGUqKoIPJJvIaFz7OMKlm/S3AwSIGlYFojmJP +AkUdYQFURW2ZICchFLh/SvL1F0ToEVMxuX9WDryDKGqQVez/Y3syqLzIVp7bw/5M +546pMP2QjP/fCDp77z2o/qs7lmTLbzdG4nqG6ukb4ahYjULsq655y3/4R07Ie+Ni +plpEFsi7O0u0XxTiJnm6qeRGpjhdv1xlZv+niQIcBBABCgAGBQJKiXA6AAoJEJwn +sxNCt1EdmN0QAKUJxqrAtE3xqoDeLfhW+zhW7bPIcAhz0CntUdtEoVuN85I4bOoy +l+5AvZVkmCYBguJuad0WiMsc6l1MK8BRqg5YRs7N+j54j81RsLAk5iXourPQ8pFW +heEtubs2xE497jmKqyVMHeUFfAiKXzcbA34RCUCvopNIcpVAlqtBuZZQQFH9uEo6 +Pf7gg3huS2x+pqty19wqPMpYaarOzpmS0YP8siXG/ONoKaHTPL8tVm14mnRNbLck +93bCq9LF73VFXxdIyPIC2r7UVwxZclQsor1nYtUk661eawT1j8MjVpEXvwyznJ1F +fsrrs1Nod/9z6H+fyY/pwdmj0utOtMqX88HKv+itSeoszmZxA0VC5uYjJud1TpHg +TF7XVGTQlLrsE6YTedGK7skqJxwjk2A0AnwZw83yKYVp778HpRjl5pnznT9ZlkBe +FrlY+nEoJNMOtkeYdf3Euzf9paqOx7me/TKrjWDkkPr1JWbsNdPoGpvKoMySZ1iP +bYC57/BEZwQWbBJzmnDYKFPwb9XSEZqj+xSo2nanP/M0hrcw7oqpYpikuXxkmYGe +JNzQ8nlxYLFNNNKPoXLw/tQP0LA998C9EOxI2Sddl5ZcP0F/1v/+CnHUrQaVhBkA +mJUcT3Dl3/q7K/SyRhLrYFHdN08NHJu89gcyD7W31A0WncdeFVy/MY/ciQIcBBAB +CgAGBQJKkVRqAAoJEHhT2k1JiBrT8tcQALywH6tGKMvW/FBU5Dw0iS0d+Ra2PnSh +RRr6uppBefQkOn7lf+XzwxvJgy0ZLWDcUpbGDmD4H2Sy4GAu9N1NcnFLy+5dvZKY +4x3YIVZfBaLZIT9Ztgwf1JX0SH9M4pl6MkBjAg5e5m5GoCmPRvvYVmczwaZLnxd6 +Rwer7/r31PTpRFRqAzUPBF9yN9PNGItproq3ovx2Ceuke31uby8JV5knQEhuVtsh +L0b9f/0cC1XI9gaADDpFGyAhjiwu0UbbWu658jw3HaGFTnJnb01pzapD6gj1mjl9 +rj4JRQ2xMGH1bPGp2DPBwigMfsQe+cDHH/onfvjzRlelxDA7BLCT5XcnZlxje94k +78v3XC9Mq1K0xCrAFVzjDYjl1ctUKTIWaTcreMyl/Ofr6xeQGJ2fljBiq7DoiBK/ +6G9Qm4mDaE7DnA2I6cFMclBWqpxBp5e0t+EuUOqTPSL2m5yzunzS4IlpRZMN+Wyy +ab96ZfrwkKS4Gix4qTCw5h4IT2yPIdCZFZmVNab09LF6y+/BD84I8VwmDZVxoGfO +t1X4miwdfhybg9wCTjkpXlqmozvufnyiclATtRRep3TIIZiMg8gyJShGRhSPr3la +3QOmQFJxmnqolxksAlQIUashl2ynABww+2If+Qv5rX/jxnWCMrrcTwRc0SM90hHM +GL+bfS2UtEOHiQIcBBABCgAGBQJKke5PAAoJEPdYzjGNdyldQMQQAKzB/j+QTaGe +Irjy6kD/nYW1zRAK/hQ+XSbS/BhplxL46dOpPvrWAKGg7tXJmpm/FPoIqv+MibST +kW3ZRt8loTL9/0yKZYZffbPfVmBfI7IDsAaBKz7UPAmCvEn3EPPJuzSR8I+ofg6X +r1u2awRpLySChE4nbEAPFJbG5f4pO9JT6NNhhB2QcGfI7EvGwcSDIBzuPd2p0qHb +7iku4jaR8jjPXUfbEGmK4TMPVGsKmLqwgoV3ygh4i6WEE41jvW1oTZM9ajPQvSPV +3iHW7RAjqNv9GZsh8GAhRah8VwdJZ+dNdRayBurWDcOVOgIkYxxoV599mrVOpg2E +ehKQFid/zLsV9U6rb7rRiV0Az8NjhklicbFHnDl9UHgRa9WKdRJSlPsxNgN8236B +37MXAX7nnKT/IR4h7Lass9oikgWusHERxS3skKFq5bNrsPxnlCyF4xiPqsz5KYYF +THEMpR0JM+V95kwKXj3QFrDoVyYyTKU30Z7jrV2EV4brcdTYYEYOYLEzS5ElzDDc +07NU33eu/Qy3FNZSAvpa2pufyVIcE60zl1sPaD99aZDStGYMbEzXf45+11nFusMj +HV9pRGdBEL00CwsFL4FQn9jTlcH8pQdouXr+b/jXn+360lHtUTxUYYvKEnLApXxD +A5A2+vMHFs8IicYmf0GkVImolN1fMXVEiQIcBBABCgAGBQJKoBZJAAoJEIGBI4Ot +KJdVmF4P/2L02E4gOMfZYlyzrYdud3DIB0wGllcDdAh1cYYfOKI8frhRy1XshE6+ +lZJAjnP7kgieNuihAD3eB9piR/FFBFcCIMh9m2bWdcS7N/CfC4cXKBUq9Fdlph1E +UDpJEHlqMK7azxjjRQNgXwA5OcvNcOLTEqbBI5bYubL6VH/fyHbQB7GRw/7m4s22 +WIJ760wCrj43FZCSGmjme+leuvWmNTNpLal+mz81SiHE5KwvnSibdX9UZHn3gkG7 +Qyxf1+0VhWWkgJvJgrgU9eWxPdYV69RECGowOfCwSOlCo49xTz0hx4SHNQxZqv+C +zIXB4hZGkJJn7KhztGvLI1jirRQggacpga85phm6PFGzTgsXgVENftvw+XI78RxR +lHK2dqotoVjhCk0AdVULHcvlRvIQLcYYLvvJ6GvzE4tiO6vf0T5+vKz6S44w76Nf +wXCtMAe2qhkSfUjhvpiZEvzao2N6mZOHp3F92z22mny4tXxP3fVAPfVHY7KvOlXi +YFrBoicDKGgXNaZONJUC4y09Foz+9BM9Nn41xhmVFXYrxVXQUzw2sBD7AIeBqP/p +QH5XRiJEdt6ZCUTF6ZwoCJ+FZteRsc0ZdURXavQTcIw1B6dDwvNmfsFzgD86egDv +4ynTZTuEtWm6bbc8BrtSjtyNATScx/js8KE3/fwQ0Nja4+32+FJNiQIcBBABCgAG +BQJMXbUJAAoJEF0yjQgqqrFAIRQQALbYWHwGm4I7phFwtjxMp6YIYJFA4tgTI0aK +X1TQsQh1f0rimZIVfMwL9Sbn/2hsbzMmu2KX2jZQ6QHY1tgndp4mCyXXqd/E8nHk +yz+On5GP3FDNxMBIRsTAfOU287e+rTgJQZJ1QjYcRl3et0FjVv1Eiv8GD/uJ/lTu +I00XlT0BMxwsK8pR8VwXNuVRcsRI4p/nqH0zNdvCKmTtbtpODlACMCJ6D0M1kv+K +8h/FO6qmoTqrE1SMfTL+DBumeOPTXBH2xUmwOHnGUBljZcnLoBfGDnrpfH3G33By +1V/V3R7E0pkPoLJbOwqVnDEH/zgZbFfiaVDB5U/SonHjNY1/vU6xbtIG3CCMe5LY +OxgCgM+NFviKsnGuWet5C34fWEXwedejlTts+RGdvUMVa/Z+EU3YbjNUPvNeBWw3 +jXzWmlIDBZlQ+gzTSm2tsDmQPfXcXCRdXz1sMpUhyFHC0Dfh0Ov2L7UXIw7XdNgx +sGzuBGy6v3T8E2SbpTesPdW0wR7eM2jEnt68Z/H5QqVTuFSLD//MMQ9/edmZYG43 +unh+58GhCtpcrHYc2bofSONmy5EIAmy+w4ujuqWbyQCecGUorWMMRKwfBWJk5ul+ +gVSSp4EBFaWHKJpjEjGv1REaovCjE9bzqah+geQjFnF2EOcaxKFZImmcC15Qfmts +EVYi+gq4iQIcBBABCgAGBQJMZbgcAAoJEDIkf7tArR+mbdkP/0+Osyi8e1/URjTk +hHr2FQKNiEWFc4GXZKeiHj8G/x6pMiqxjAWJBzfAOA57I+zyQ1hbUN6KqZ6PtlNl +cCKBRIOvH0si7CefCwSB5GM9IjeyVijRmxQQeWfN/nB00a6cgsHRMt27L3bIGvOO +gsVuceCEtdfVlT9/D2uY0rb1NWUX1RfEeIMhNnvEpREl2Kh1zI8lrUDwYsEKkYvK +sRf7Kmq1A4zjxYtNN0L3Hn+J/debHbhxLnxhdYbFVPg6PllbSU4cV1ofeySP1lk/ +qpvaXOP94xqv9xb8EbWmP1TPjx5GR5nbWpjKKZTT9kfoVwrM3vbsL+siTbWU9rkl ++A7qfiFVp0HPq5Tw50OM/EKARPTKf4dVq4kowYj8bWOcE4M4FotUFlYzoV2wVLGo +Ee8IAHtvgCjdi5pJk0tVvyISDBB26ALMypR2mnbyYg1ufP3gJr0bstB6b/Y8RqGW +EgO6b7G/6lopCFEmLTz5+Aa9m6NB7VlQoI5lWurmgoZzicGXXVgBaTluA9qHz5uT +UG6bkOw+7v5VjJBhI+hTutRKxeP1mzYNL5Tk3AN1sgSmjjZ8SoamBiMRZRMRSVXy +zZOci+te0j7SlDpqAO9x0Mjn+vU2nw1cn91Yh/3Hdj2DJbtlHQ/pwKu9Y857tQx4 +rCeq6j0GUoR61ToEbPK1oangWxlhiQIcBBMBCAAGBQJMX6prAAoJEMJW+9UAIh6T +6S4P/2BMm8NBgx05eziVC8HlqAzaNerg+apZaWQruXdqrRM11PGop+rtJw1ZvSuV +wJELZ7ubFXB/OilDxwgcSwfcE6HxWAqnjkpcAZ9ku0eRe+n20oexbiENqKKBxi7/ +omVnTRjEK0MFW29QnUngzvehrldf9ThLhWVvFjOrEIbMp4DeXx2RI0Rh9+cufJIT +oQKp7kDH2ikF2nlmVDJN+4w8zSlK5vamBpWHZsPBFZJ7dHDRA4D83TMXpm0GQlRZ +ogyobPKwcFlZwJsQfYvdpD8Xp6qDJoNDKzyaL3UorIzk+QADJ4HrzTHJj72QG1Vt +/6jbaRuE3cv6SbYUXe47yFYF/H+4wDotYPqY8xA7MSA2UoJDnCUhSUcX6JwGPMpQ +UsdO2I0b/cy0HwCGfpCusxD4WUMpvib0+Rc380OhTTlJ3790OvoJeJybiRotkNlL +uiJwuMt/VybcKVfkwGDLc/1QS7bR2zBlsLjzPUvD3EFtBOTHFhSj+h1YDCot6NUx +PhSWx4Ar29VSn63Osx23yYk/ILKAwMMHvzynSeXHrCl+2ir7Am85kfXOxIzpjNsS +VnvAeEh13hXNZbtjzZElC75GG+nLYeeDLD9QYwmjorh4l28w/BfICCrwqofLzk65 +MCpgzoqlbZ6dHd5Sxg8jidW2zgou1qCQiwu0u1jt/DGJj+7MiQI3BBMBCAAhAhsD +Ah4BAheABQJKOLU4BQsJCAcDBRUKCQgLBRYCAwEAAAoJEDkUtTL0376Z6b4QAJIz +17N1aJbLpOMWgMrE456ueXt70wcJNMexA0FsxOjnBCriUvCIQep9tibjNreCxXub +5N3NiNNYPgHPe/yBULxgShnw4PEHDzbXbC0GFmDtETUJlRJbzxIbNA6d6DXI+k2J +xEcGA5qxi320Sero1MTAy+Q85+domnmRUalTe451snBX+sXjNpVvM5TrFvi5xZKD +bKABMjjPFrgveXBEXOLlV3RKM5OHHU0vfEZFi49Oy3ip6VblFaN/XgC05cUKAcYH +Yq0sBlnZgThOC5eLJjpcidGHXKnnzV6mGx5h6rFglKYgWHgSXxK+KNxjWib6kT5+ +xdj3c+ztT+JHqIfeWFtMvLj0xpxOa9mYvRHhNIGBC8ZnbT70PePiYBpy/i26gywj +t+yXUd3yIep9vS8utuF1HlOvGE6xxARltJeeSWkFat7hYn8SQv3FjFvcCuDNVYzu +nLmNkLW6ah7yh8g6lIBcTqhz/+vC/H5Ndwjh1gBKYdFVM8GB0L/Bfs1ZiS9d9X9r +tCM/qEv68QDwsnjoCREXFDT+mAv+i+GTfx9zIgZJsA5CTxejr6WCkCNuMQADmGPq +QDoxL5MwNBn4T1uDDh3YRKzZytc6owh7X7O+tsQ0sw/Hu+VhIk6iGHWlocm1MBnt +CqZBt3am9Zwrprd3duXxFkL7MYq1nxAbD0yzIEfmiQIcBBABCAAGBQJMb/igAAoJ +EJ0LXlse7I8OGxoP/RYqbH+BkG7lkJPcnBz8WwXjecEJlL0/wr2U28Z54J5Gh135 +/ZRLoxzcXanZTbFdmSt98e1dHI0VWvjaNcQWXNCvPJQSiFSrAGpTEwIEwoI8vVkv +2BG/vgmuDxOUg4yroLve/Il0pVy77BjWE5/DUHjpfR4AWUHmkhFcGAgBz+ejhCnt +5ZofWO/ofWxxqRkq2T1GY3ACZIHnHUhkghy+5c0mvUtfFCoZYKGiToSaG/tOrcFz +1W2+QR4VQOcdnVOJDn07wBYntTsa0sN4Y/cxBWNOGuXA94+zr8GTosIz8XG4UIHR +4OXVaCvi69NO1y3Yh8boMCOiNdRb7qo4uNE6Rewvt9EsW1xvofYH7BdszpkEXSgx +P/pKgCl9wvDkWHis+Wh1DMzuTjo0YZF4Ow9AIo5NE1TrBixhpZvp2UFHalrM1T+K +DDT23/En711Gs/strc3OS1Ri4SJrm6jI+5vnDDm3ngWGcObw3MzM0l9JCJq5QyEX +uzjXlH2fA8+if1Yoo8Y7GxfsUDHCof+A4vgWD8/3m0nDXV4d3LTwsYpMfadYhazd +fCPynd7TQs7kjw0nkj3O7dnUbal3JX3hLR43CckZoZpManAMeJ0rjZTPFgeW9lXc +i/bmjBkmb1doMegEt6fMpZch7Hm8V/OecNVt6zSOWYEwT/MxWtIkfZGayJhIiQIc +BBIBCAAGBQJMcBwhAAoJEOSv68YbtLKJjqYP/3Fm0jLddaA1utBb1zg+z6DmPmKB +j2vpTGsSK8zMehSYFTAU78TFuwhxqYGSBFu+Rrm7CNrjtkEtt1xcZxcrrGyj9Xlf +DV4gdPWSVkiBoRewW7etibCmtyl1IW/oz282UT0Ze9nZ+RROyr0de1fjRemEBYOc +U5fvWV7AHx1i+pPtnSS1Cs/MjgmvzOU/QsYAeb3LwQkpnZhuxav/ywRLfA7DlYQ/ +ei9j9/JqtizUUMiDUD7RnynhnzHl3SIGdw+A1bD3q0onGW1OgPH5tE9WLlQHOjVb +DnT2GWS+TJu3NrhrfVzhlUPi0/m5ynEiKR4/UTQ9zEB73ab5rEXUMU6JsrAspuSi +NXQDauXzSqmAU1/43rCyH79A+aBtJyhhv9rIuY91XHb8OcVAslLtKqG/Z2Zr5ZHy +LN5kDofSMQ/vgQpxE9sHZyDDWN1NOVI0uKUfc7baLajycyh6QB7x5maghxUcMPLJ +kEmjCGIczrQAr3P/BgXYnlX5axzG/3BRcxfboKK8qYhwQ6U25RIfNE9CFEPdELr8 +nBUz+kItuHDm+y8hHWETzxJ3SV3m8NjmKLzpK5tbpTM0Mzj9gWGIJ6CoNAXbpfbJ +DzKS3MhNpOpzCJuooz/yHI1WneXSeEqC4J3CLbu4+Wbxw1y1u68K0ciua5GSm6ZX +G274+UFgAWHBECo7iQIcBBABCgAGBQJMdCrMAAoJEKl6dwK6+R71FnQP/3EURcsm +6xpE4/0APhber60T/dQ29NWXjLo3vfUVy4HhKzgASSLglqsR+wpuBvQEKXhSX7Yd +KdpSi6KdS91lol71Bn6je46tQMhuknRxrIo+7zKA8J1s6uZfFbyY/6TeY72WUlrS +Qxwx3mYH7IRfWMxtCBp5eWIWG/eyOPe7pbGvu5VIEfakZB742ILxEGTfzoMHepHF +8PXINy3YLzvSs4QWFvs1WJZOYBD2pJUrsGNPNSdpkUj8Es9jZWwmR8hJaforEZQH +xqftdleR7wKDSBtixjEwzmFYQyJrKR2LnHZsu93/int3tGYN0J7d7GUsOvzww6sU +R9w14wQrPdZEpBJYlDRTaBp5PIRIJefkWvM6nAMImJdjuwjH+2PlVwmPq5Pcqb2n +SJVHRviNtjjEn2N4zfgp51JMVsa/966OsBOv3wTUGxrVdB3Hp1VZxWpMPIhOKv7h +EX0pTKpVWg/NHph3cyLvZwLXl1vHEJdo3wQJng1YwN0EXh56iNFOvySfsYLVsPc8 +pnMpZH6jDrXFS0stUZ8bzKGceJ8FSZ8dVzWHZI6GC2ZWrqW4JeFyG0AZewbhciom +SpQJROEvzk98tlQwh3Q/mT5RZPjhxBFlxoewECkzwI8fdFblk1eO0e9zScCB4CKp +0hYQr14AmQkD8zYPRCkUvSj80nYC3vr4phU7iQIcBBABAgAGBQJMduRcAAoJEK8i +g6p24qx7VWUP/1tCiC0fQImdczEnXLGTfAApr3b0V2GNUI7M5VrJoVCRCyKktrj9 +nz9rgKy4DW7Dzgp5f0HXLP2X2wk8RqrWBfMxTGg/ylHbIUcLuZ/oqEJPpuWMuNA6 +0UAJ9bKDXgGlcG1/LdUYow03LUpMrl2XR7L7Ryqr1TV8mpEdHQp8TgAYYRrFFObF +8CUsoFI+AjTYFft5bgcY3bwNjLBxJvcRNLHbdqOyUezkQa+RzwgLKoNkhiV20/4G +amVnC5jU1b9P6Z3gdF32rc5QxkLWW0ffKT5qsKRmnKxkmstxUJV1hHaP3TboJrfS +EtkA6Til9CFOsqWbPafBzXR017d15glXcAzb2SJxxN/nhTubM+LQVHNyNJQVYDaf +vzurA2Jm+gDdrPeXoxSQmgNJoUsM5I2xOm0EZKZ62q1ksBZPnIv+cT+wjTsvtia1 +zUWfHWLyiWrfNNcDGyTXpufX2ZJBgmBXXFWSR3IaTwlzAnwexR0JDPDJplwr9AOe +6kVnPGFrHtjQu7I567FewtcW4a4y4vMveaESPXalfwToi++z6KFrgxdBCm8w8MMy +UyTgJ5nuYpjK1m34EhGLFkWiIoR7JYz6XDylUNNew1h948KcCbUWT+xWI5WKYgsT ++YSr2UMJpsnVNGAgvSPjXGB9kADt4JKUcurXuEuZR08Io13FGDMCm9RRiQIcBBAB +CgAGBQJMfgORAAoJEHUatd2nlnnMrrQQAMhMba3gTjn8pLyJMm/XDwzXfGhu7vsa +iegGnumczojJODK/jni7R3VNNvO2LqeHO15/UOAf2BZkEZy9bR4vhDgB8GTJMTlN +r5E2+ccH6N9WCdnulTxJDsG54bU3nbNZhFTyIo4ySZEYmHJKwJx5xSD6mvbW3RrM +yxt4SECUNxhrKmDMLNirJW5hgYdYgPWVNG683Cyx/DxEtqd2PGI+PRye/UmffmoG +5RhwGgA9ESBAP9bgIR8picEvfzJf8Q6kEQloNjHVDciSOdjhjHzTg0NI5U8vuwUT +ApHuteHFN8YbPWrbXLJNlNHOQ8cDoIME+5WfIROa4YXdlaoW4V9GlLGaRGofC2A0 +fuvvSrb8ImaI0qGkL+EeMQ0e7mjCMKMyGBJVZtCEfo2L1I7zREiaolOCtkIgHcXR +DPnA5sT4X10EijaLWcVuaGVj2IYzWDT+DyvG1M0ViAWCtiqm+3WoBS7eji4CKFGc +IoYtR5JQnuRvQfnEuPqw21RS+/Sv8S8Uo9MHRPf+sRUWUet2IN4br9ZEkUOwf9Eu ++s5axh4fO3nCzdMxiSUS2gdm5X+pLrvKEvzHwJgMhGq/6i7EIaHz2qlyDs4EE1Nl +hMKEGNJm8dZiXA99jN5x8cC62U4ExKcT/IyJcEuYGEYww8fzqYmeApvvcFZ+Uvme +yenMOj48H8SAiQIcBBMBCAAGBQJMmNJCAAoJEE+fbVUO1hIqLu0QALLmc+4XXnwA +XQ9fq3L1YHykrGwwBI4t6kSWUr0mgcZ0vceT6ud0XPxviYPmJotTDxMid6uOz/z8 +k0uD5PJ291+LVXOE55tEht/jc4mTADb/TjnkM0rM3qT6EQ7d/2+2UFxpDoLizKbZ +Xnu65uKdHYH7PCwHmkFgvhyS/GO63O8k4lH9iAPRxcu5qb5UD6h5fjVs+z9PZOyQ +VeNUGArIPYkTNjNcdqe5+tVP86lIcDnX7DoeLhDQ0QGvX5Uz5nlg5nxQ2B2+zgZ4 +2vDX65R2uxFXp9wfCfdSNp8wzBxBGapo04qKnZ0dMlus0aWC4NnqeqZqqeKrL5Re +R29iNht0KUbU7P0BoOOWbcUc1j7GixSIugrfSnITQYfMwO03Zv4mggIM5FgFPQqK +dRYg54W4+jd+KfETAsjISrq4/hFYaeH0U4TP12khK7qTqW9yc9sMt5HWFbXv1b2J +oJvH8gelkdspL/d8FUaaFj65Bp+x/WrKh2bvxx9YdlLE09+BVzWV0L/xKpw25kaG +AFmek/G4Q6Gdfr5VElO/X5l/6Rv2iun1K3ZD+mQVUlvVVwdMj+d3jSJGJ6PdVHaq +U/w6rEMafLxNDHjFm0n4vEfI7xVmjr30mVsTTe8lmNfNOvT8kA15hp4RBop25cl+ +UIKwmyFIQh0uM1HOLlvRz/0TQyX/3uSPiQIcBBABCAAGBQJMpYF4AAoJEJwxUDxt +hmOWWdUP/AhU3mMABA3n6P2/hWYJfwVpwBot6SXiF7GROrVQYcL+JILJ3PT6pEar +s/CVadZbqNnrZMxi723emfOIz+r21rStRXjbBPcnSH0JaBl309ueihKIQkmk1w/d +OqRbUyrjgrrW5uX1O1k/eD5RTWz9JGrUXpNUtUDU8k1oBDSRZ5V8Eg0Xu4xGSXBX +asTU/8wBazZUUTSh3Ev+ueXtxdDUcNc9M9ashfYVsICnxO5Du8tQolfLXZxVe1gH +oYPtGny20a4URuXx0XWgHDq4945N1Jp9HpAUQ5CKUgHSUYvbPtR7KDrsPtVVENwX +JKd2HjQ31BOMjyk0Cytc/9A5V00g+cenfT8nBSuPzU/NV7SIE/noTOBYAmSog/1K +blK/tqyoYX5rUt0i0nQ8iuiYZxvbYH4Ztc7qzAAuUJJwuJz21d2cfU4VdTOIj7Xu +ytcRlO9TFyQOQDVcYcw5HlOMo2xHMngmNk7pGTCdMCH/MLzAEPqS1zjuHarh8EFM +nhARZgoxAQkqT+1AgKcpGIf0nubD8JeHrLFoC1PylrDJin/B8UCKmLQK1Xh754/e +/3Pi7/Rnv78DyCtkMw48LEE20j2bmqux431LuCwM10q1akxlbdhWiUUJfBVoSwMW +15g4fB885XKBmm9OU3QxaHgKaeebrWWGsbWZayw85jgs//Aj/rlqiQIcBBABCgAG +BQJMrPZkAAoJEAbqoGbjl4MvRDYQAJu/ykNHwcpeO4wFiuXwpFmGi/8b1+r8idJb +Ld1FkrsLfk+9AWEVuYIIqwtkqWfEc4aZUaH/Z2RlHz8vD+gNJ0N0TBAQITXBJ4tG +d64U8K0Howt/9Y9PglfCcTpFZV5y5VJEs1QFV8arVKdumCUu/XnQuN91V89nQER/ +WkTLB6K1n/wNlBt9oDZ+pjgxBNh4Ae4ruX4Xaxr+Oi4cB9yu4/jumsZW2YPS8lWt +I5y5zc+OeEa2+uxPddjm1RovRDnI2Erj11CUaaMSxGjgUorx1WjR2mIjYkHRnuW7 +wQSdPnaTfgcWzlkHpaobnOzf+aLZotE9+ATCEtVcSbDM8SnP1qw3DKrV4+Qv1nL7 +8oobqMmPV21hEVlKCX0gBgfZ8/5YIcK1zxaON+mDdYjcfl79oqzF2q7MjhDps2MT +2H/kNRow/4sLjYdhp2bGhvr/xOT/4hHDZhjezuxpBFBMQ1pM0rN6DhA558uVd/g4 +Ago0yoLlnIGbC/D2yQdIErlSSHI7KWZxO4BKYfyT+Y05WxLk9ZDsSiQGk2slZbKw +cmEhbDmRkPPvsubT0nyxzwVfrqqbJXY7S+RqPnIA+TnHQGKVJJV9czWMp4KM6XOW +BYcF6Fp0x3IYpbHJnED/isesoMSFLJ8UmtGrHi7BXTw4jdIY2j2zUUSSq3v8e/26 +FEE9rWBViQIcBBABCgAGBQJMy+bHAAoJEEsHdyOSnULDonUQAKQopVwVYw08iJzk +TRh8MMI0KjCPtAiLr5aqOcbAPgNfzeyPe0YaFTJLaHGvj+2/WSqpUOqN5D1xqM0s +ejSBVLPnLozZwBk3KqZjhs02TGAE6+L2cApCY4l0R+r9rvhUwlxg2GZgFOAnDFtX +KYOJMpw2l7IQX6UqPSl5u3F4f3c1pVXFVKoP8LtS5B1sX0Y2iJjzbT/xvP56O8Qm +ImvAC0DUaoJpHFYDIQxka3wk7d+ZJ4aCoDolKZgZIHO2aUsgMck8b2epltUU29U5 +Aj/0Fcn22L5JAlQyTOjX8ZD5Ce71dIJq9WctjIOHYUU+bfsEQFc/eFJpN2IfGq3M +kaKrrKGdUbFRTvrFtAD7DDk3iqnIQA3eY/VXkilzc7eHEdzyOBKZd5OLd52OePIb +HfF53g9DubQ8lMu4Ldq/2yPaWuGEYgO6YSAgD6InIMvd6znVWImDXKg25CpTVu9e +xZGC+1dJreb/c6i4/jtVMg2hNijL+31FQaTcxVa5oINnL5grYAO1nUIQ68KtUCsG +YZw+cc76VUXipyZ4FUi3e8oT9BcnsjnnDrcthL6od+EQ6WlOwcI+jpSow2xlJDDI +rn2YnnVF4QK+/WzAPBE8VBxe4r6j5wov6jmByYJDdYqo/wgu1jpAk/zJ/fFWuWXx +hISZeP5cNYJj9rGO1pU/27wZN4Y7iQIcBBABCAAGBQJMzHE2AAoJECUFM8yim3ZP +hngP/0d4H9KjlF7o449c8PxIQqvtY9jKOr53scAPSnfR3zJqpCLmtfEBRLQ+oFoF +xQOBm4A/G7LuPVWytdBnCKlq3wRVXi4GKPgeBfgRS1a6cTSHTRoXz6hvbeoDpUxi +AYe5m1TY/C9Ny/oQifh5xDadTfcYZrUGTq714NTbRopAeHxFFWT21Kag0FFecTci +PBmIXGZYMu0zDrZop9jJxyqbIOtjY9sNnLZE7lsz3SFilsBycdm6/oapYcrl5KCM +xSzYYU5C9NOT0m0O/CcqGAXfNF3fXeExupEso+UNQvKDTHOV4B2GAQelK3fDvJZr +NN/2OykCEsgaXlIf9voNnXRXyuCihP14KnNCT9gNG8sRfYVPoCNPyKUOZ0IPaLIC +KtHYoxANE13uCj5VXKyegIruiv2+AByiNLhHYzENs3oiPlikJAF1O3pnPIousR/c +lPwx/mI0m7F86KoydUYe5UQYBaCiidXCynqsQN/T+WJaibFjbTIuqZBx7Ub/7zt3 +IeG9CkoXz+dEkDuf+k+2Fc/K29Uvvnh24qh4KFIE3hbTKQDDfXiH5I9p2EXDktPI +N8Wb+CqAVgaG9Wews2OgJBQBPqITtogi0pdAFx+d0ZVe/jUnOPrQZK4z9HwphOPK +mgioekam1c5mU3n/SzFEH7rYPslpp3hirdHsc2x20ZjV+1LFiQIcBBABCAAGBQJM +Z82aAAoJED0Hh6qvbGHdK/QP/jeDUEebJUcQG9VY0ZSrJz1b6Pfcnw4ciqiwKrp3 +i4l55GVyLQeJCqL0+pqnsglv4qh7mBeHXLv5+yMXqkfVsra9489cFR8P6AuRYq7O +SNEx7PKN9+K5s/yujOquAwmidvvoJPDiWveY7hq4mMqdOo15pSXr4mgHc8jMbeO4 +b07javCtnobJgX/xsBMUbQ8rKSPDuYcwSaz3fzL4luDGo0/eoGHevltOBwYwGdM5 +BZ87EjWrmr7eFTj3RM/vyBe28RyUzj+7GiT62dDnUU4zirsdXH6ADi/6UJWF9M2b +FQolc/j/5Urz9z230SPm4VUr6TFcQ6f4pz/nDhG0mlq6RA2Lbl7Y2PQ926IMHHcQ +j+WOqk28hWJkIPunvUZDht+/8NVc+TBvwY6CWQxOCxbEliG0xCUpEwppdvslvJGA +uY7siW2CQK7f4p7ow6oMFe1ieQSzRDSvyulpVdjve44TjAgMRQ+yddOp/OiPgKaW +tVWi8Glw3vgznFvS6g5D099yJuTUG6XNonbuZCS4uz547Iepe+U6E7A92gAWKu0c +HEmUdVQ274sx+dB0vZUUInAevmHT/YFWvT9BoZ7icmygEmnM+LP4WE2pz9A7dR94 +Sp8y4y9RgXjVBwsXRpHINll8ZZGaaVALvUoxzYKNILal/jopz3Xl6ZrWM0lT/icG +kb74iQIcBBABCgAGBQJOL/O1AAoJEG5gi2N9iWfpkhwP/0sG7O7H8yJpgn6eSnHM +Iaeqd44pxLuGvXfLHlBXLPol6qhamvgE0iKsOqG37OX7fLRmgPXHELrcMOIk6GNt +NuRBHv2dGcsj81jxZKRGxCsQVpfmINIkl5y0WQaEio/E25uPu3aeBx/kJ7lF2CGX +aWIl/k5QD/LxFI+MsbASRgzMriUGywXraETch0CEtYiqmTIBBj0hnCGYHBYqizCL +v4/aVOS1RSN2MwovhHixnZTteC5olQnLc5PB4BFyo9Qkzv5CqEgYwYPhMgt0bawU +Txt6d5DJImrFWB/LFV9BG2Ijz7zAM9UMd8Yh1HRulEyJDM6PJeGemexxKvfP0S/p +UTIxFF4z91mbaaL95CfZc3PcRBJV5UCyqpb1CXqaa9U/nh+8cTOaEyyf/TVvowVS +02P8dlhwLiHTxkBhv+DzY2rcQO98o9HlumAqdWaKubWWxAocZlUKY2QiBWoIXwh1 +aiD+6phBES0J41hRE8PhnWkncq/TxK5kawbu76djFyfaVO8RLfZ9B7KmlvnDt7Tz +guaiST0ALgaN2DFDoqUEvPFYVUqkKLZpaehME7UWNLjcUg5QMVd+Jypwe494iXzi +8BzWEBf4BL2BuIcAGXsI2gGYKn+m/WNx2e6Eg9/WVW29y2bhNBRudVzTvjUFRD7u +ROBd0twvr24TH21drX43k6T4iQIcBBABCAAGBQJOMD9IAAoJELMRjO+K6o/uYusP +/0aD9mVrQbwARpmMri1ZL1FCanLhB5lR8mY8i1pF0/kFe1gq45LqZ98x+As5Skfl +p2mNBATAIwlx519+YAKIvIra06kG8Sknjh1eS3QxR4+cIP4sBWpbZkAsN/Sqi89G +EvLmDznKozu9F1wGlh5PVgb2733BB9kwBjBgPqK7QhX2DtULrCAj0yK9Ra+XvX5Q +gIpdDBW8eSDOM9ngbD6T2yDrH53XEj3Ufca/WBnIsA+yDcXEUiM0KfChuU33riXK +2VfwPqD6UJTcBuzRb0OrR2sdqmp9G80IYFOeFWBUOBQrqiYqNCgowOitzADPCeEt +oyRhnpyigCTX023LHJFCkmzleWGdPKlpHE+dP2Lt89ZwYzM6LKexect/ImkHmY6e +Mr+1HeYAUxMPWlCdypmAxqdlWRUA3u+AcXP4/D5OaZjtBItEUb9xf/uXEnohbggx +IAN15tu5eiK93PCJWB+HEfF3eZG0aHWITT6GcoqmRL2QchJNJMRemA/eenyeGZTT +gVIRfEB0gN4Njrzvgs6qs9le6c6Z8hYIFPA+uP+pY66BwFZ1FVMpoxxzLzeqeWse +RGOWAnGVXB1wzIAPRU6urkd0uCMQyBX1PFGqchx576lYloSHokZ8bAsYxnFZZKwJ +o1x+9Yy2myLRh1AOpaNO7UCXsbXgLiNJRuJEc8AMEYDgiQQcBBABAgAGBQJOMGgO +AAoJEFDDY006KRz571Mf/R4vIjlZvhRtpZiZV6NW98QLzbG3TyGmPsXnkVwPXctp +VikNBUsN+EulObXZtri3c12pH3fALkBTxtaETqgEOCRPMZyzB/rAM2qMFLE7s18+ +YYWV44nn47eznqg5QmcP7x2+9QfVyZu5ii9pFnVCxbtTJ8zUmzkHQcDUJQFn5eiW +lOVF6xLizhG707rjp+sfRUYI3Lpf4qd/CaSZhOFcfd2RdMy2j6xpPX29r9LOIMC2 ++JUcNDW3u9keMT56dvuZgutJDLn8rupY4qEXeEtBuDyul3UmxawBjTYOjBvmQyF+ +/X8Eu3PAzCNdZ7Mt3aFIKt1zeqnfutqz/YSXXFeZ4jy2//RYerapwOM899bbN9sw +OxISMmyq3cb/oIjx+fiLrHclpxts3cM0NfET4XB5LjlrgHmPvYlPom7lsdB3gLIM +TBcJlemZdUo++zaTfJs4Gel/R7F5+a/shnTp0RgbK5BFf0Pk8RZuN6D3G5kkYq9l +LpQzvALneIAlRGyrdlT/mGM3qvU+AEZM2cAFYSPfiS3OJerdlK6+QzXoIMiuPabd +7h/coo90hOg75+BCw/5Of25gzIup9giaUJWrFbvlgszbLEUreM3mafbb08LADjZp +B4x3pyTRlbSWyyh7t7t98Rf2nxhXM2lvsz66Qyi8iVK3UbqJACB/UHNPT+lGMW4R +ZeeaK9mGLnrTg3ZBFbUdRhwC8KXtuIHQxUM0Mfh0VxT7UTwBb+3GQnj1MIKu+nJY +1/1QQOuaE1W1v/L12ZZgXBVCkyozFQnq8ZnBz/uBUOr5GSp1EHiILUqq9cd55dEB +T+cr8UybCkfeXHMBA0z9igh6KUJNfXgAdwtIK9XPB6UBZTt/fiZAkgvGqNfK9inb +S5Psb3Wmw71Ves0x4rNu3e539pUJtT+RBcDle+TvUWW/yhRBjEPuRvINSMzLyaHh +9U3lMxsHTui+1HzyHGHWcPnajAMERRuIm+tnt5A+IY+r5X1vHCfDAmXC87usJwo6 +O8b767MqM5G1EUseNVDFme4bjgzsM4v9kfUSGz8efh5Zr4Sb3ETTY7GT66H5BXjz +WlK/4cAaa5ADPbkNsKNF2UynweoetMO2pVQ3bfxCQCmyskTU7LdhU2VYjn8a78ze +I/h2kFEocvaKngCz8kLwVaBTuYn9CL4BtGdoN/piCa31TzsQdFKtannbZBFNhFAG +wtNZC4RG+G+y01J0bx/7fNa9knH32HkP+YcNYfeb7xEQREBm3/KF2ReXpRO3sggH +pNOpVFA/Cf7TLCRNa1033qeFyZEuz4d4YQbPi1kbicd8/SHpeGfptmza7FM7bG2w +ppiWM20ZqbqffJ/xQpubEWHQO5q1LANCA80cuPgFwaWJAhwEEAEKAAYFAk4wn+YA +CgkQOpNhlsCV2UF3LhAAyECOs7EIv9v2bu2d5HJCT7D0TbQL+NfLbKeJ3mw7M/eL +JBvPo4xGJv/RrPBhS3vZi0Ygfoa+yqyHw8bA0dSUmV1D/wJbhwosexWd+aXB3/cZ +sbU0B0WmRIDggBGiaWE8lkltESncTZR6fgywXl1Vr+KqQrQnp/dRHmcqsJQtb33M +Ec2Y6TrpJMdSGEm8uHsQ+NBns3CqAIwq2OcBuhTvU7x1jr72c71zrYe4KhTQgS7O ++7UZNqkIO8WLWSZdwMN0WRmtHHM14OCnia36Ei0EPxr9sEgVaUGab06oormByQDg +w1aEJtrMEdnkuljbq5DfKptvG/XjAl9IMqBGrR6Y2JXZD+tkaSrGrZDv+xA6+3Ud +9cNH8xDyRaBuTgipsPL7XTdyb8qcww9IiMVEV59LDlg2Yq29HTUTNl2+kQbNGdGv +tNMNMlCWVT8B7dWdl85LJgtKLpOguzM1BXdwzNe6Kz0hSEXZgZshVOv6DRW22g0z +pXZGq5vyVnXmQmCXCxX6E1OKVXbKKbFAnc+xOhcD769Ec0mARORkBzL7k6klp2RL +MMREiGP6T3no6eaeUJQlFK++s+xVlvOtZUawCs4vc8dK4fMaZoPRwc9tteLpV3cg +cpJ074+GvE+377VXu7HH6bBbPPpWNnULW5B1xSxENplckJt2C0f52cil0xQJmcuJ +AhwEEAECAAYFAk4xCP4ACgkQaMB4voj4DNrCtBAAiHoNK9O+J39w8ZaENKT238h3 +/kth+yk8F7WifLFd93viPx1bElKDNK6IajySDC34p+l+nfOMmnAEK65nnaGMC0tM +RAH/8YZWHKHOVZXkwIVeh9AYnOssEJ924ZlBQdMTvOTGhFlXMRsXq2lz7+RoB65d +B7UXJnEYgJX++dZoORNNuz9nzBdyWbsM1qTsUpj1N72hq8SuvO1kaAH9QaSdnzSW +pRPdTV75xZYNqnuID7dXuoGcfrxCPn/wEw4oIoUySFYPmtCc0IKPc1AvMoA1brUL +TjeOkD2aFdgVf+9DiWjqUMc72hnFehuGTZmlZmaGvL0FUL/QdEM+mEbzPNI06oPW +CYlImjylWyJt7FPabsObWj3OXazRrIrA41SgKnfFHstMTqsz+/38BnkvXNvnm1nk +9Zz3XC0+16L1bl+NcajcRu8ggnC5gPFZbluMfYk7ap78SU1ROKPLibfKJR+I9FSB +TfpAjaXWMAbQNY8uoYDwPWhV2NDYvQkNW6kXS1pHmGMXlssuTHcR2oF/gGaBLiNF +gFUH+83EPglc8JvZtUE8FZVJkBt5jUtMNUHv6Yn86xKER6h+NWQeW/aNahl1cIGb +FWe0K6xMFcA9wTygeQUA0Gfzu1x2Nic/G/E9TrZustbnjIVhxwvuSA3AzLfdVc5l +qzRlrWBc2hYLcblGVwiJAhwEEwEKAAYFAk4152gACgkQ0BeMdn0GnuaBRQ//TEYx +8ab3LO45/qLE1pwGPIWeRCgQK+jjSNNG5TFdrA1pWbqHq7PTkABZdbeOOGuIZ/d4 +3+6lHpZXdr4nGtXXd4FKBG4DLawE/JfPGn7ByFDEGY0TZuZgaZFUparuYS9MUEb3 +QHvulAftkRjvqGSUk6ZK4FI85D+CAnFRMgposz0EIkf8rMmxLMnUhMjPIEC6Jqkh +hMsNTB0q3hBAQyuicsZxK0hSrMscpu9ibKUvHeA8QnvYO3WlIWTFNgRiu+pLAtx3 +sxHULTJwa0IwF+Py0yllbmmuNgytS9FYZ3rATQzkqF/4qzO6gHUTO/fGWcUTMq20 +m+6RLh1+QqvwA3J+uCV7I3b+9vr6AnhJ3q6uzlDsEdeDt//jlrzUR9UeLijr0aAa +hjD2uyQtvKgwETNi2pye6ue5k8JzeeDs8FyCZsMctQgseBQzYdtxaNe3Dt3P8TPM +EZvkFeAOgw0ibYHi9gO99AQrtarWvKsEIJWLI20bRkiRve7Wwx9A6YFCvkeK95hP +zIrYmhvHqsxejoq0ImSbqwY5foCPv5fMckz5KmvRh/Q63BTfNiSt66JnJjsEIi8/ +ECOGQjABNJrVleXt+gFg570pYdbN+lCbWsFFJ0mqGu8WUUrEEXDolt+fWxuGOJxf +xI9cv0xzBSoJpDke0tqwOgRZ6sBbPPV7w80v5emJAhwEEAEIAAYFAk42fwkACgkQ +uzpoAYZJqgbdUQ//a2tX40vIGm+a2nqolFN/lj24oRVCDGgpzJQ4H4H4+YpjPcr/ +bj3w3CHIbs52YMVf5SivN7rHRklWym/iT79yrHRL7sOKvzu/DPbBMPxLIIHYKUAF +D/QGMvxR0MzqC7vrQAH+VJoP01zaWyDikzK7GsLMq9lkkyHoJbD0aDna4WIO80n8 +cXoJBoZbtOaWGYjqTLpFMVfNLdrh6ES+4Q356Qqt42fulTTg0LSLC3ntbSo6Aq8r +p261thEp+6MoJ1ddd2BfWmB44pLXt3ZrXFRgHNeItH72BFSbN//94mc5YLnf71f5 +gBaV6Hhyj/+3wBC2vgzgT02e3+F3Rl4DYcL2L/UE4ggXKvY8auz4BqHn8yBsOlE3 +KJu8TomFFRwSBstqTle3yznRN4NxaQmXrQpflHoE6oBOy2eQFHsoqoOC2ToRjV7z +zh7CXJJBr5CyvMsm1j3H1idofjjQ48Yrr1m8EOwu3P4UbX+IovfpolfzV+k2TKTo +CGcWrGbbYi6WUwzMfEKafKoiFHohZH/WKJvVuiHZbVaryy5+bPYYCFE6WEzp81mU +ebRQeBrnH009EtU/sUM2KHGjUsdvdVI9Fo/G6B5hxr1u/zMoJAkd52eRn8vTJOJP +F/x1HhbPS5Fxq6KceIcxeEG7mnbOVejs66dJiJc9tCf0uD5yvE/4Qg+WI/WJAhwE +EAEKAAYFAk49SeMACgkQJuPIdadEIO9bqA//Vhr4wRdpnY79QFaPGINm5DNOwsW1 +4gNc6JjrjodrYGpBrQ1j9xcYJghysY+9p6QciMCVj/6VJSP3f8GcFmocDmB15Ew5 +DsB5QUoQF93m45JCGd0GXv5IzT2OXyFBdGrqCWvL4lufYmEEWCHR5eFXV8OZxfK9 +fAQryu2XIN5vWf7B7Q21EjAtV+IPBQXJgMKmvADxHVUTp7eQ9aVrKW4H0Ie951q0 +5RHhEGzFgSVbXdO1cyZ449YeDY6SYPfA2zcBX1vprAEfjvuX4wNHpsqvuncXApPA +ESAWlJpOqMSk9kqCzblUMqExdAn97eLvZr9tOp4Q7n/1kIHSG1Mm1tnAs1MOoAJF +WH3PJzqLWJLgpSs/HtyyocelM35VpafDgNwURnci0HhDtfAs1HBL9iP4wlurcdN/ +YNdWrlC+HipBdbqlHO9ehWIzxV03TnmQFl+cuts6KkIH33FxeaZgtsdlBbCuVdwU +LptVw7dKzA0OyteIszCA+a3LBaAUNx+v5ayAeH2nkQE3/7Q1cSF9tDSv8dz99KcX +Cbdb/nGKcUzNniREFdqcx3rQ3m93+x3Es50ibktFY1HnW7IRFevw1MxQUD4dmM+n +ysnQpQseuxu8XA7jgFr6uB0iJrcGmUcxtlInq0D3O0wX3254VTcnWGWEtpM/L0qQ +oNUf356MWUP+RcaJAhwEEwEKAAYFAk5JTZ8ACgkQntzJkdmrRX48NA//Z/dVohcl +9CE1Uf/RZP+23E+b5ut2JD+L+fe7LxpOqNf/kTvm8wY9Ag5DdxFUKiLD+ikhE+In +ezsKfnNYi/NLIg0uK74AMjTIOEV//Qm8/+9mj9sj3SEAOPHpo78hKhi96lxxGg0p +7270xspReAEd5JjOzuY2/cVk7/dk/IM5h4V6iEvJfcMWJcwPiNjIy5Kj+e08Mn+d +bBxeD6ZWwhCir1WzyUK/m6hf0dVsbcQlwSODXDZiBv7xk9pbpm/c6vPVli31C6rb +VVKMDH+1qzqTHjbWfEm0ZIipr3t2g0FjoG1gstndXvjMjx4iUM0pNj4EhgeVjQjK +a7g2n5wNNE67LuPljbPr0kiAC14ZxsvhrXLrP8XAwBZucEoA9b4MaoDSb4lQ/Iai +N8m0lZdLH688qP0Sv9j3nFmKgIlmZymxOQoyIRyPCqXIYHz+OjvloG2cOzuapnQu +UGaQGyymZe++YsBE8yQlea9g/mDVH9vMC/EujsF6Dz2dqPTbi5yiNA5L0/aZB2X9 +RXD124Ia4wLufOnjSUZYy/hmOMPhC644oQfstCuAUQNnYYVDpfgxsBJByCXAod8X +aGSNv8RUIlQSuU3PcIMaZAnxF4nHa/6KmsNM4CfcM/uWEmxYrK4Ba9062AhR69Qf +XLv0tGWim+13Hhkpz/bp39WVG8HgyjMJhkeJAhwEEAECAAYFAk5TurMACgkQB/xI +kQQrplozYw/+MA2Y3Lu7lDbd+/5xQiDYH7Hs4mQ9eafALP+6I6dGRtdnDkw2knhG +tdJuxrp+4eANtzB5hEPnOn/Nr8dTOTxhT9/sZn2wP2gbj29X10O9lAWYZrUTyVDb +GrBnXQ5bSHVplx17mS+1sh2qy2eHmkY+ygdj76C1NuEj7ZJ0yF02WY3uy75zD5A3 +KP1sNNMQvWnCVDyQE3rJkukoTULi1ZfQ9/A73tmfsCsneOaTy2JlTKx9B39jV542 +ul/8VFFMqjcxx2ujmhfFObmT7gbfCBTh5XZRQ0gURBViiJEYsojyiP13KcLdQEv6 +p80lYaqEE+GuPRnRxnzpXVA9b8QhFNOboM99b/HoLL9tgVO4f09pWDn1QSxvuidt +INvd4YSLF+YNS+Sg4hWXmCedpY7dgEh3w4VY5ZMZoOQdCN4yb/8hnWGfKllHzDvP +VyOMwAcKaScIpxbeEOgaeMZ6v/NhApSR0rnMGJhGlRqv4DkHtrNhgcQj5fuLO6CC +iLoJNPvgn3IQyd+cCQW/w0BzOEC48x0ZUW70blsChw9Nxlp81fcJEi+HAgiN5uCH +ZG6BrwfTiqG4vjcdYCYXudSDfhNvFOrpkqkjFsoofLD0xFN0WoPnKk1/5+PVb+qj +wmRhsin7/o7L9CJp0ejn5ajoc/K1Nxa3TantuDILo7bF7Va96bmbk52JAhwEEAEC +AAYFAk5vn68ACgkQuCohev3+CfLtRRAAkuFZY2zFWZfhsSs5rkSNdIEY+VhClgis +CZFEeV1bg++U8o+sioIS/xgUvtGA+W2UIfXRuFl110CBp1c4TPY3JheL6sYsphG0 +uttdkEGyN7aPCtKBQ3Zm59RXNqYSwH56SA76HrXUg+65GhSaQDeVcuL2H57vfFqY +D4HyRglYtA0iuQDBuEYedaDBoROYb3WXvLQ01piRxXSFcJznZ6YhAA1f06MqUB8b +AZITSpZqOK9t2uPP+D9WHE1wLn41B2CNFn/k1bEm8baRXMIl9G4QkhgYzM0p0msw +jBEKiETjqEd94pbJV5QfO8veE2X2ssQUlVi9sjKN5JqApcDao92564k8nFs/ZaYB +lbRoh2pMod81aZlGd+l1cgyJNKDc/eBZRIENH/du+zFviHCToIOS/dJjPdwV9UeM +yFWQrqnIiNEoVZy2lKZnFYiwS3w2fi7pSZ1kfzvGbYuqbZTn3+dS5+oFSmWSCRIl +CZC/KTjIPgbpLqBU9V+KgzVYdr1EmZZVea2txHGSVffGEtmAJeJQrdYXwbZcTiEJ +nUJdbkPwih4vqfTciCfP0gR4odIT0K976DQ4LwqK0eEzJa02zG9yGtBu2qw/Olfw +1wexFZNdIvn/LZ234xsvQx0pQEhbaIutLawpCSLbHVP04c9YRIVKxJENVqM+c6D4 +LPIUJpw8Cu6JAhsEEAEIAAYFAk6Q8ssACgkQditXu3hCBq3Pww/3R6NvaXCdXLVn +JJ3f/4tUL9qTtaIkBdSWXWn+0OYZCLtS9tXJDpgDx2d//b0yjrQoK47cMa2kuFOz +WpVQD7cVwRIKmj+dmjPifQNlKwZRo80CQciJgqjNKq0oYa/uUPZ1a/L25l9MDLX+ +cgQzdWB1Kada+neem+5TbAADiEq3FYcwTmI7byBTN+eTw79De3R3ZJMCsu3vlFqk +bpuf9rx3r/zyIS38nTpiJQlXllCUufOKX/vfcWMrprIH+ckQ6tIetBmFrSKuplFA +ECXkvXbu5QBvBYneuN/8NbTTtEdGh4qHTqQxVkiDwU3inmuCb68gELDLioXFbPdS +tWfej14eFtTXKIdcFHccnD5GFK9e9mgTOv7pHBANqsQ6nI+csTNy3YsgGz+GGptS +aU9WW7PBid/CQvIjEaKkJLXYEN8tMHZ5DSV5W8Wt2P/DEmUzp58FQ7Uggmh6n5ht +E551iFcbOBBw7fFcUAY6If+6LusL5PgA6u+YFhB1viMkZXltqmYGB42KTS3KjQqq +ai2nYoiZrQPfY0pDnSaG4IQTiaiCDU5tiIBNs+1mzI/BCi8hgfvjgnD/LWOWiaHD +g5rvx+hnytzfkBu5wzd8IYZ/6hd5PUY7WTehyASdHNlNNUomV9fjFGKdJmv5U5Ft +IL0XKnKQw8bRvwOjEPxJ//ene3gXuYkCHAQQAQIABgUCULOgUQAKCRCq+K4WMF1u +LK3FD/9sMvgY41Fky/OiAynhYAkyvoBYP3S9MqCcivGyeBkHqK1L0spNTlKaHCLY +Ddlxacw+gybnx2U1OW1vL2pw8zjlqpMVGVmQRA2B/OIIjAYJNL3R2QfdqybRme17 +h5wtA5hFbKjAWchpKXqpgGL0AnrkcywVAJ3Zq11hJnfQYUuZG7b+5EVYyo1ekPmi +8KXI1cq79umI0j26h4bRvl2f6KiLpyZovIJVn5qbjstycgA3hdViHj0i3oiQ9w9S +44opIVmBUdr+h1n7gM4FKb3IxaX5JKv+A0TQT4iir8KrlGwXfcGZSkFYuteYH+OH +G6cJQpu5udY5XOuoRZh4os25MXSeIlMXMNfxwH7E+U0jLaeWd+44+ns6ebqD0WdU +sI50mzqYzQwYnGuVyAs/Lt9Uyq67UsXoPXUINduwLDHVbkFFjYk9QenDUBhguBnK +XkjIn5g/rbD6Qi9Qn7zcIwB+eozh/d0n2bG73tmdRYHQMP9M9haB8wTaYSDpqAQb +ilIED++lHBOkyYtlt2p3RkbULLJgj8x2pl6QK4LbKYUMvfhPPPsM62rvXcZjvi1t +W7UyFOeTXsM5U6j4dzTS78eSjsv1csXHoeYkyzPvsTADeE7T1nmPMQjrW1r43Wmx +R+swya5ZdnDxHVGxRUmmBiKYs153vdC9iIxREFLl922GApLhyYkCHAQQAQgABgUC +Tn2qDQAKCRDbvp1NmdKgBLGhD/9fP9sprBjXnutb3626Wm0MUCHP7vD+2lTRMlOB +FfseFMCbBnAgMuxjkOADyAAskmnGDbhfJL29IdB5TmuriQUSaGYBdOMNRhhYn4c+ +IO9aXsk5eJeDPoWedwhDtQ1UYWa5B1IqoyvzjIzajQ0R+zshd/PDmc8ONO0Jgv/F +Se10rp86U53kIsJVy+lYwEZIsLhTwKC4QIvrbFE2zldMYRvLiXCIthU9GvwBHJEG +rNRVC3sdKe9P3xgAugnDAnx2K8/etLzN5SksY8EKigBwdhHfX/JjUO622W1IXXH1 +0jsYeRkSAQjXSv4ajdpC4sRjwiAYujmJn7NLdrrlkg3oF4kmtHqKPVRnuPE/MSSV +KAhc7lE9YBTs7IpxvB0j4iP06njKq10fpbl4/8E9codYfPtv1ywz4/a/jOcaDUFD +zqxHa/gbBHzE6JbHDIpuRHZrbDd+WAdE53qyzRpnoUQQgjEu4WLBvLLqie/xAoBo +sIRWP0l+VVMIGsL66ji1ZkOGoc16Sbr2Y8tVIEiY9GJDTNe+mM+NNzHBrDUS52an +tvW/zl5QacDH/sfxt5I+FcNkkqEIZd6aEmzTM3ybxLjz/t3VgPLVmgZMcS6wHDnv +K39jL7M2KtsG4uwfWJojKJq1rTS08vsfX5ff1asT4K2isrEadJ+Nekl1YdWOJjoE +L/ssqIkCHAQQAQIABgUCUhJgUwAKCRDY7tfzyDv6mh6tEACKd5fEWJEIiKorkZzN +X3yygoGSZH+vYXEAtOYJXphQe9/tYQBX00XWkZbqUng1ZmAAwdnugl7+7uRQZyNp +bX0p5QalxAeZEFiYnPFoXQ+csE9kWFbfCHr78+FH3ZRO301FL7GcBsJ/JJlwnEYF +WbXBRged2vOQj584tlPsVHQIM9Tg2aRSKrjNzyMRX707fkZaf5L2rLjZu/qPrgpx +d96yu/DiBIVy6Ic5pmV3DMtuQWQe/CGHIjrDj3z4VKat9BLrsdj0nltIEi1rtGss +GkHFHiVDMHp2aK16oZvqQ7AOU+bXK7S/AAE/j28EX96vnOaW06aCZHORemBBz+AV +l76r+o2h0lwEHZN9pdOJZN/yei7xth6W1Pwx9LcsntwEiphmUvaVzYmmU8SBoxBK +RIzicVWgiWbxycstj3qA9/ReVrJv2cuQhYuyyv4at61klq5FiWrYovagJbwBWQ9E +useaS8tnuNvBJZI3hWT/vpnAKwJD6BpgP4bKVQgGsVDdwWmLcMKGopkG9x6D7MBz +rh/829i4PJjGFIHF1X1RFAqEkhhp2izanrdFO+NL1WtKKczDyiaMMhfDVb4SQS50 +UC6FzYSSMcWTr7Dlm4e/AWhmBrMZzfHub6IHJiWCcPIW24ST5mm6tzTVnQanztj0 +U5LVs+zoQUaXy7prbhxhMGFizokCHAQQAQgABgUCUg4nNAAKCRBHcSFx8u1i+2OP +D/9l3X8LPW0pGo+y+fCz6dblSzVLB6Eqpv8aeWdA6CfzoOp54K2UJS4VveRHMMz8 +a4ZqegjGRRPaKIo2AYYOo/W7oX47ckwjK+VUP/weiUJobuMQoOTFfsamQweFr64O +3mS1SyiAwoRx+TZKUpGfNeFDLChhL+vqmkPZO0Dr+n3Quq7JyyhYouriJQ8GLlVI +ExNnhDrRyE1KCRN/J9VYORcipi73akT9ngq7YwLeNFBBfuzxYE/bOdwdVW9Pz4jK +3tXTnrsgQFZKh7J1cJYPDObifjFlQyWqhijrD2UI0F7OZ58Y9qdxcpzWwFTgCGwb +J2Sv6BoMX5izcJ7xN/dB5XDNwjsVAi8fV+ZNUSQ6Z1vvTQY7omUs1UEixiKTzf8H +uu+t1VRjIidG+Us4nuV59713TpSUMCRCppz0B2y/HNqx055q7TZ65vC2QYpHfeMF +h8JwzrMWfGmL5b5BoFPW2ytGMJctUQxCt0iCVJQaXFvfrf9GjK68uVeFeiiZbHIR +uboRU3Va5XhGug1kgy1ozvOnXfDLT/HzwMMPHAsgicyq3BG/PcNNq+d8wZXMrPLC +N5pWA9vAPLpgRHBqr2TGPR59LT5wUlA+WiSwRya0KsVnnZJf/TyDG9+OY2pi5CE2 +NCvr3/L937JmRRwD4RQoPHePjb24XY1UCVe5uT11ff+xzokCHAQQAQoABgUCUg4l +TAAKCRCnPgBVVY+43WpnEACuyAF2MW4eECsrvrlITIUdJd6B7jG0s530TiGtipy0 +DEjBB9UFSQmL7lNuQuMkn0L+3ZiWdXsbcBGMvKAJYZH9U/v2I/M8XEgFn9Wr29s5 +UgkuqKQpFWT1GLgNw7xsjingAU65isWb9jlfTeVPQXvee6IuhTT/0LPh8WCgk15B +GoVjhydWGDVM9myMuWJZ51J/iJMRdAerOs5GGkGyUuJ0IyHthYttHgOOcQIT2P+V +CPwrXL0rAHtiTQj/asbXYFurrVpmRFXJsVHoEzaYCeBdfKXwaN7NWm+PgCUIEvgu +jSfEfs4l/XiQZB/J5puoxrcfei93UJayByu23Z2dMO64iI/BCOQeHkzRmPWTahJP +J1wJKY6DE40L4JZZhPrUYQNRw9scF39yCFmleQ4CSlWjc6t9NGVbLJI+BD4l+gvQ +coMi8BOsVVeoSunuG/BnRaACj9EdlBMcAC28OoLsJxyKSCL50sBXcspZodNKyCCk +kJvudloUTbt7Fqzq4bbrdCmbBxonKiLiYXIaIodN6JiT2IC9oW+SbL/jXlIcgw4w +E/25dNJJVoN4ke2pyFKROzGzRbmp2t1sk30SANPnV70XE3FWBaAIeTfkOEg3aiVu +k9eTuNKQNNUelrDu4moa0mTr13KpAdHj+XuSZhpE5xIDBf+r3FD2SFpmH/vgtbli +EokCHAQQAQoABgUCUhDOrAAKCRBOcWDtSsjuHdRwEACOeli+hOMTaE7HRNcO4fNF +zYi40Uh9u/peaEvj3G62hiTPy7yYUqwiXUF3AKICiLVKjHEDrbGL0dpFMAUJc7A0 +EugaggDB49btuJwfrypAoro4IYUMk5aPhX58PY7/1UJUjyoGes9xzAq38SUwpS7O +aXvES0E3SEKeKlb0kHV++mA9NzNvxvtSHw3Jw9lk70KrTDPRazHjy+NPu8kwST3p +GanVYy3hRWHbS6Qp6QniFQPQdKufox79IHc5Otv9bOxxWE6j2vPzH1RacUIePA+s +0Ixu9954dVjSEzLHvyGxvFiiF79btW3GFmCoaehxsvsXcdP+b1sD1ICI1cs0OSTn +264hrE1ip+Azp62yM0QyDiFSzMSF2cThrCau3UMoBPg86drTFKgt8/pkKKerWtKc +hQ6R5qcE4D8DQWQ/wxHDsDLeI915UtYDi9Zsby5XtA2hHmGenYKC7mILelouKqG8 +xM02B3MpCVQKz9HOCMzzAZMAWtlU2Tm/HN8T8ejnCx+JX9VKfRfLcUfnffxpYtWK +73DQP6jM0ycKsRi0GIIQ5lY8H/4aUahVIKNMgw75AbsegKgl6DIxD6tl5rtqTMv1 +jpzc+LutWO16m2nJAl1iX4Lfm4EQwcmuxUMqXZ/tKEPgETlccsoEvmeIVOYPyZCQ +vxrOu8sxCthbnrNIJRyYTIkCHAQQAQoABgUCUhKLRAAKCRAgZMU2QcJeXaTpD/9i +N5ugON9BUu5C4d2j8+7pgMrer/ngJcykO/lqZsIWLsd1zDIKL/N+N+3vbHONrL4b +S2Smxza7/qYBN3HNhK2sRqFX17a0Erd+wo95mWIMrRfCcrtrf+lV9VU8iTgUmNd6 +AV46WBWKziyvrTYUwysnozLKHWmv8VrjEEwZ8jehsmRds6Pr8bg0UIvVMese+tJc +6wEQKm1msdNylxvN/CialCqVb+Lej75gpbufXbHCJkx7spI4Czg1lNJGqbP7SvLr +DvXfnUGWgfHs/NUhPXMRhMpU7pJE01ToccVsLIXXqeoV+SWdBaldQPlxwTqoKpKd +N9HUv7znhU7t6FH1jcZCQuCby7tP48DU+7tZiVBMTZKWMSN5bdcNpWN4369DrQUL +rDE4gkLOUafjbuAHVSuWxQDbttmjaiaUo3E1myDCcR5nSzIBc4fniLY10+VG3DjD +Z3GTjNt0dvnhOqlEHDZYMb7DENdDKRYGmDpl0mu5UEILpizHCf6ot/d2t3diG9i+ +3EoJydVZ5B/bKB3SZ7EsmMiWhZQhQb1v4Vrxn/k3DfKE81QN094yAwe3OYjH6N9o +HqJbYO+EXynu67JUQUK2kxJITp15uBFc7X2I7EdRpHDdtd4IusPtDfRyxrAAjGAE +2nuZtXnGkDI6f0Py2sF/589BFSKsPO0fhnkx4D4SiokCHAQQAQIABgUCUt4MVQAK +CRB1l3ipo2tJTykKD/oCtkYfXqmjbSos7kjI7uH0X6YO6iVo4cfpV5TBgG/gUSpY +aGdo6Q2P5NOia89gxlcjTc9zBgefle94mz5ht/do0QFvAAHFmlGNLdwmp1rgUN87 +OQByiSqDXHy7TMn1GBgxZ9vbUUhXkt16g/ePR+MIkR88bMxrSPO37Q2nT6N9HAeY +0FD6y2HU4O2ZCijJuwg8lNfT4QykJS/vleprMoHOBiNTERHpE7Y4/h5zNwO7JfgF +CecCCoNIFC7lb1v2E6rv3+iyVaGaO3iU4fcpSiZqeZcV2513qSiP44qEQIjzvC/H +PqeuQKDHlrYoYOPGF/dLkcZRE45RBpD5JRGtUufQ1s4HlYkn9thuaJ/QGjc5foQI +aynugviWBDm3I9lKoPRr+jigQR14/zI+K41acs42uq4sg0BrBYl2ZfjL6qOO3Ck5 +ikN6FkAAiewp68pPZ272Emde0JE0Fb7NfcKOdE1EnRCot5Rz33kZLov8FdlyeFJ1 +3SiGlJtEo5MMkYDNAet1mGOzI5XqaKZ0Em935+0+qqR7+Ggpq5bqkscm9G9HFkbV +5znhaEwANaXfEecOXiLfxWRWnuHOJLB3c6zMeekvTWE9PRlH6tNqlYcQtRczPrSl +mZ0vrEKuDwpjJhmpImekTqGP+jiUBue8thlRO3z6vrg9+tuIg2cn/LydQUw1XokC +HAQQAQIABgUCUzgqvgAKCRCPDnwrRSLjh55bD/9pYL7WY5B7ovjh+eUj2mUJcQnb +8B5I+FMHeDR9IBZnL0gsYm4W+HOcZDYGgTBI6dgcZV71ScHJFx2uUd54ja8rMt44 +VFXhZKG+bRksilNWPhR0sDHnxPHSoQvm87xbOrouqdmWJCB0yxPWD6Md4gm6nYSd +B0xd5Y7YldhdrL6XOLAiB49eCqUyIbDy7ypXHFB5nCfdleuKvLLxxWLR2vNXC9xs +0zhFcdvqUWBEtPWalmt78CU21FBKmBp4rSHQ02Kx2uWGPYmDjNXBpaPqSO8HoCQu +IMHoJaeeGkPKZuYgbh8uYjOC2A7W57FEWgauTH2FTdOqyakFyjOki3jR98J2zq14 +hR9cV4dRhCxJbS5iBW4x4MJMTpicybwbgMWFSFjxdtbpNPnKnwWtGbwdgjqlKHO6 +ZL1Nw9JJiZqOCMxVzMXTmeFqZSPZA5JQZv64X3Nlku7A4kbsf4pOQVlfvNhdcVwx +kAYYWRs/jwG8Uibs3L/Am3Lif3w2MEZbqjlIrhjoGlewmNXF4StXrKSxn01EOP3L +6DYtugqIMXizskyF/+YQsP7iGuVH9eXpO8OxAsV+Fx4Q2FSYCwk0BmTzCaVwExP6 +QILor2aPOdmWUAAvC549IbgUQjnd2SwUUiVliQ0eCh0q77NpgTfBiuAY9z/eeAYN +eK3Sra8IHk/VE/ymGYkCHAQQAQIABgUCU/0IpQAKCRCXupznYaCWOztjD/9V1eYI +6dcrn+8puxecwFyWMzvc6gLhdqtfgzh01cie/2mdruzv2RHycu6psf7HGY4lSNy/ +EosnwFzQLOJ3Q2x3Igey76lCoi2oYySuiRJpR9TDjsHMmJ80k68uvv1l5WPPy7CI +n/8TJ+1zClwZ9wplw0e7eoYIMzSn66Q63cQA8heIgQ4ItFyKFM+knj3tvrTv11F8 +dcoEx3z2CjdCUNX5PoVMaGOiN3M2INPTigxneB6Xc0iXM2R/Xk6seKd/5uhpwlz3 +sHQpRgcib2R86jLd8ybdbqZzrt+OxzETCf1K27dHvwLV9klGgf99IKpYLkGpKWSQ +BWXwxXoq3JVsehtBN1Uj7LOmiyO6+Th5xFNLTxCqsnrPCJH7rmc6PmbjkNkveZNx +28kwfAQMYKYq/LHIHP42gSwvsXqfERn9OV7BXlewG1LsjE2u8vrhq2HaRmT6pvz/ +G+nh7S5yYWtz/hHEdNb/Nr8l9RwYABLpd3lnHJ0gGHumz7JYBZY6ahm4sVb5jK+t +CQuMRm6E9lAHyJ/uk3NFpDq9dO9AaT6S3+Ag1IJxtPkCGuXG8Bq4L8/29TCUvzHk +eE5VjuxGPgZ0v4erwvD961MaF5792Jo3XdJ1bGMjIJma75cDRO/hk12dABRU2m94 +er68yx9mxOjMlorD0e2encauaqLc+lmGJKdZlIkCHAQQAQIABgUCVAYznwAKCRD2 +00lbsK6aAk0LD/0VXoErXNEbHHq3sZTm2wFXvulIss1jHMOEFB6IG5gOj1EnK8C2 +jmlzOw2It/dUBW6IAjoNCLai01e4I/7ZQsy1ApNQX8KdRy/3qM1lSnmRuXgr3cR0 +QhRdaA15JU6FzJyT+9YrnuB4k12io4zxcwyNYQdEqlFttcRmwIAmTyET2wSVKOp0 +KsgZlc4diT/BaqflvZGtdVexLR3NV7r6mXPCNHJv03/61XbRfIBIuzJAfU8b/+9P +Nr6oKKC1cFKSYYm9RjPEmVuNZMuqTraWb0ShTGQXpmjpW3BZiBF1a5Yiit9AVGN+ +fWn/GoTPg2abaU/5dfwdceCFOYjUPyD4tGmzSuwqtSwUwIEO0R4ftFLv3AfV8b9u +LSMQ47joQYo8yWu35ZAGBR2a+iUN5JyxCy6ZuZZzJE/GcGkY5nUNKOj5stvRXZVS +JfXpCC7OJQ4fsZW/XK42SLryKSXIR+s0MMFOZNzFET1/Z7bP5+xs6lycHj9fH6Fd +yjP/OvyjV0rNtoRFKOj6AFsPOAP28rn4fWiUCRscFEZH85teGCH9FwHivJG02OZu +fY5lAGsDV4PP/LKlfqbIqBFv27FtoDfiiR61G4IwzWMPi3U2Igagi/tMdB4ZBOPP +1zs1EprQSqPHcHc8ztnRRa948ajpke1iOYIA75dDjtuh0w2ucCjakbheYYkCHAQQ +AQIABgUCVAtLbgAKCRABUJ1cq0r9P6AgD/9NfIrsbws0cliXLJRF6EBr1NnuShZi +ZCuYs1CvXopXi1xY4JGA/Pnz8TEefKc5kTzwwIf5cHjK9yOlb8zATFijI+03g7GJ +VvD1mxkx/TXz7T0Lgpe1KlfLNE6I2GjIxQZnjYFJXBXXJNBCMhgn/4eu4j3z31Ps +kYXwXF3B2L8eTVK+QfilAeauThfVksXEAgr3yyLr5oPS83CgXz7iG/iB2ZSlRh8a +wQ+hAtaSBmAN5V0GMFEPn99mgzbk4zdjPIEu8Hm4tsC53dlGdoBVHR78V1J613ig +83nrL3tACowdqUJuNDSlG65sFU8wuU+cI5+VEk0GBZgadozOXXg0LOgZke1Bz5UM +jQvn6J8ZhVj86V4apuX0MTIja9GZHsKLcNnTl3m+l3HvkOiTsNihvOswJSOJBzFw +OBdbzrNLQTJaauwT5xzjfQX0AiIqzUC58EaW3EZ2soyH8smZazO25L5fY4AJcvem +Eopj1HYQFqayMUITEJqOw0TmrTAAXbycqEmpUenkmUVdDUj4fZAh9rMQDa6bnFmw +oXy++oNNtcO/m3LfbDxtM4rn1fsE66nOgPMOsposhcEGMa4LHT/RFFwk9HsXFRdx +27vbgd68XNKHiKazT1BRbCczxUNq5B4EyNBBff3m36O7lrVWoSDMf0x6nXxec3vS +1IdDXRkaKfntJ4kCHAQQAQgABgUCUt7XvAAKCRDaSVj2EeFJ6bnlD/973YgcpWw5 +U3MQnoig+JmqU4fNHvbgabYVBqeZBDzDnmkc6Ebx9Kgx9MHRMwyaPeLULp/cF1Zq +nKpZTbF0bCMWuQkBLvoZ87LR0DQFRG6JHdV6HTX2l6hkkt5Gi/SmOhWJyHJISMrc +BG1oTXYyYS9CbyIv+Q9jpa648o/0Zqmee26HPglTawpg+XAC8KD1jmxWr6SiQug3 +PCy2/a0YHWLj6SaxCK5EiLb1mN2LlKEsd2yeVEDFqMzp78KL5hBTtkMB7+uL1mKs ++3YtOwHdrbiI3W6WKSWOHgsCspE5WuQNRu51H5pXRmVXdikWAuueepDe1/Fd6wWp +RyxZtNUmDUan2+rg9i+4RMFwhIF7R7QdA74/RYOVhbdsk6WPdKvSP4yDrRHRlp7H +T5PA2pL/x4GNHQrhK/tlOKHOqeuT7WOXHp+1FKkqQaDSsc2zw8gTaCEwoZLqMAbt +D2dh5uFq9fS9y0neuZzqRew4KUrJKiI9d24tfk0p+tLdK2qYRPHWcFEOXCRRMFaN +OmkGUlCLRYEWQhFbjrumpVle2FOVK5iQvkVcUnLNkRQHf1PgvnZyhMmgXfBeFGtl +JdECeKhEwKRVWq1L8U0vI/TEVqeQ3N8Kkg0cvPCYtgmQnoSLbXaltGUFo14SwFc+ +D4ABxUAY1ieoDAn24DCOusG6j5f/m5JK34kCHAQQAQgABgUCUuT5pQAKCRCCQpTN +Ahfo2M1REACcDD8WmgikcLDpnasC9gvTzQTi0AAk3HZyI7WEdhgMDFelLBFeYmDq +7+neBV74EyLhJO11O5674S+ZatpHsD/YQtaOglhaXpL4ArZXCZ8QbhOggWJ6Uq0s ++L1p3vYDfE4u0Dg1B234uBv16DyD52DEJmV+pDno0lyNMWWwD5UA06SrX/cGRL6e +nGVCdmAM48YQLOauZbc+afga0YsYOHpEcrGexLNPFLUz2JYSLenibQ7hi9AvqGQc +AKXBbN2q8xncZbaJSiYiI7Ed4x2wpYOCOszt6w7D4F6eUc2TuClEbEgoAhZ892Bi +6Ajx4G1y5HUUcnUCzj8c5S9JTxgLlUMq8m78XryO7vGkgpORwQ4iWLxuLUp+vlNH +RVG/ihpmZuX4G+7IbBKC0pQSrYCLM7LgCrjwyaRFlp5CcN1Dn51KnSvGF46hB0Xr +rSDRd5HM76GS5HQpqoZZhjBjXRNC0SD4365W3slb33WqH22Je0vr/3hDI3TB66mF +DRGO+1a7XH4HgYiKg9epHXvD1qzFRRjZpm4ZwdLc2zjFns6N3CwHc+SYl0ta5aDS +sMNa821jduQIr6cxwX94Mu1C8bbisq/Wo10gNmcpoSnBsfDzAwR7QQ7IQpICsSMp +gsuoTA20mgustFqCmtT0JUWWwaU/Sn+BHbhoKclTZo0EjWUpGT86hYkCHAQQAQgA +BgUCUuZv6AAKCRD7hjJRqG+eR2IsEAC5Ulh5ssM5WBLPZAvd1ETSNCFvkfPI5UgC +hNUjJClB0VrEnyXngLr8SOvfx+5nOoEwNzWNCJ0BnpZMHMmRRhFTQP/QkszD05kN +kyK74CXhRy5LrWKBDbbjwHK4JWlAnIehU9YjSokHONCwIRpzG8tWFgMmVN7nwbbW +bcVIKNgrLYLOVNUG8T58sLNiyKGziInitJBs0SQy/3t4ZOSxS492l2Jgxlpzb1Cb +vkMbEwoG9tZ8/KNQSkcbv0Z3rJXVtv5J+sntSajzohIqTIWcK1Iwalvu2ksLbl6i +A19/oUOyeDV/pQ5fbKn+qv8a4rMDAU0wmHwQzmmXd9kHTD2p/SwjMwweYNE7fJtz +D7dx7dt/oj/n/aC67isGQ8XAVNsray18kCR7CQaitfYh1D7i22VcikL5nXJBCoFL +eI9oRVGmTE4upc/5i6LAh3QawRzDJqJC/jzTEdkeWaGtmmcrP/DqR9ykKjYYWbI3 +6/gQe3NQv6IfDgCBLu/rkqFfxEZysl1zhv1b+O4/dWM4wfIHU983VMIjr/GGOTyc +92QhqRUrYZRdA4G+h7sPgsbT6ZCIO+ROqgDPU4Tm0/6cJmumHoRtlYx3IzmL9ths +9KD4IQYGyB2KZnYZQMMnp7srgF4LoUHD8RwMTzvSLsokHroy502TwLDLFbLneAtO +ur4b70nAm4kCHAQQAQgABgUCVAQXNQAKCRDUFq0VrGtD/nNUD/9qNOUmwWFaP9D3 +zRsE0yUqEnSHcjlbg+ZibO4MKps9D9uq0VqvXv2DolV5pEJudGEXhlIbol11FNuw +7jrYSt9SSNAA3YFOL5lSofs2+kMmoCguKzFPgFhi87SKxrWC1fXjDs0BKJI1zZ0D +1896jRUQtGXrGKMITNiTY+zDSdLV2k2b4Z5Beg4OzuhOt/MwBhDmM9cAJH04RTwh +5xkjghgjTquRglM6LDcJQkdyPOeKgIhdaKFw1Azrru6+6poH5hjI904z0iEQYCSC +Q2TVpCKCHFhQy4i1T7u2Z+uRzBA16v1Z+n4ckaTmmTHKn0hqqH+f2OIXPNo5BggD +ZVMfZgCcJ229cyFnJjwYmJHp8iYmuSJ04Y28QaGKbTpkntgQ/MqwPnkQdifzpzfy +eWMv8p7cHaj9aAEZVHGAoW3gnniBkdGSxPmBnSNSDiGnXfdnybn2kEqkOOAEACrE +GODIP2Wv/sO23ZNDmIK/mVYL2XTGdWsaA9OdiAme5mmndiQKa5EORqagf9tuY6W5 +TlRifDGWJET0hVDyfe6PrJbVnc+X0e1T90j75jpz2AJKl3zuTkBUviBEar0tQwpn +NCzcufu379MMrKMKG2cc3tIR6RsVrC3x1xEYNLl/tOXWfgREi7L20EO6ZpOktMnZ +s+6EK7qmJ5c80C9tROl/0irZMyRqcYkCHAQQAQgABgUCVAYndwAKCRDnYATFzvDJ +TOUwD/9ATX62dX0FNrUhgTsZwRDc8rTiRM7D7YOvNl5gfCRN5erOxxR8KbxEJR1K +2GpkAj1V7m1Emosj5IaWFfhEGHESnRzM0QQF+LP5AJ+8r4uIUegZwl5d1Sejqz+w +OeH4RzSZIz8QEsfyOCA3Tv4PcrsUvZasANRAN87TEW3UkpG3CNU8OHYfMvq8kL84 +WcY2eCH9SpQAYIxPz+UIdctG94pLjKta9jne9E/NQT5Av9J/jMUZtLUGdez2BPFn +4QhlpLbDgEVcVKDtyxdeX59WYhD2xk2ggDDAIrmFPcvsfts1or9Pmmi7re7grf97 +QldTTpg0xfCoZMfVCV/l3fVc0sA9VoIejDQPzuGf8XMiaGj9SyEBLTY9RIu1lGV4 +vaReHKpbck2YZEuHHbycANqu4k3ygAIxf0GUqUNLtIZOyWjNRMLP94pZ9/+trimx +WoGzXBBDwA3PhwqPoS+A9vR32wZg9/YvgPbWgcqemYQJ5cdU4YOqOo5EfakoKaKH +InBCGGeKpSYRE1Ok1f6bQFLrCHkzq4KuAHTegUndyixLoXPVFT3+xOrTBJlRCsvW +5sZJKZykesqQviI9V0z11nZrmdSC+rH5+sfcris2hnLVDknBMHpZOMFwrAisMbUN +dbrGfsQMefjcxlYZ6YxtaoHQz4FHb9AI6QngsIMbLhGCyb6lmIkCHAQQAQgABgUC +VAoDOQAKCRBVQpft+cylhVTSD/0aDrdybncdU95bJ6UL/jPwhJYnsz+UENYnu17Q +Ty9U82GfG01PP+p9ZVA3Prj3q2CLuAhMXira+RLzSFmM0Se3KHPQs164J8ZGh6/x +nktF1KhI7dTLxjrcdMO+zw9uLGgn/5PizOAQNuf8TTPjL93j3vKByw3uhJrBZW50 +2GxTW/wanvfNPI2Rav257csLx87BIen81clseb/SNqcuHsSr4AsZ42pVa12U856R +OktjH931dFC5NyhCKacC0HX0+hK0CsGxdn/ErXwhEHV6ZuTW7UcTBWyG7KVEgJaW +R3lPWN7ALy2v4qW6VyBaHgemwgrOMixEBaGoChqA1kDiZAFxmQG/D7+1NhZOGh7N +nWLUfoxe8GudMrcF0ZTnsnJVKMLmbFIbqSw6qnUudChs9IEJLVjb6YAWLOcC5oqT +inGXGgBdFVbjqkQP4K4wy2fOUyxv8E9gOANf1MkzUuwBhwlUsM1vpfcSWGk6JBNW +zLxco3uuqpKYRKUoumtTekYNRxtQHxmt/W0uBifqlmUMT/sX1otSa8aA0ugWFv8w +4jN4W+2IFlWcpMgnwfz561aIGz4/Yf2PW9khBxTzKsARqas0DMPrjtaKI+GJ4P+v +vOmU3yVUvq2Vc/4S4ta4ltewS9dm1GeGUVUm0/i+rcngkmhEP3fxQhBjsWf9bQnE +VjH274kCHAQQAQoABgUCVASv3QAKCRB8/NjNJXch6W1JD/9baBtukFtqqJE/aZqY +0vm8pRNuQxJccpTHR9IwIcdGVplDBfKcDX25UfZ5Pwx+DVzyQXxm3kKKxOPClty6 +TXiEjKacP5sGFXD0TBMAqk+QIkIu+xzowzTV1Qzvei8+tzQbbW6sCVwHN07T4o9I +Z9c6ewA+V1hvULH3X/NH2etNbx/hr/5wdJQVX6Ru59mPa2thWvyoZcC6SFhwqyLe +LkwHVMp1drZYBdBnhVe93llxCacIbWdr5G/tGJzIbSmlASLwJyn4hTCZzU/fCEH7 +1CJPGh1Uduyc33FSg7xSYn9kP2VqXYplaNouji471ZXv7B4a7aAnPcWUAustBnfQ +ADtqD5jXvXPueF98CuWUEak2cWQAzC8LtoC0G1W54HyquADTMOT8uUuaa7UcB1na +DU9Y3sB+tSyH/oZcipp5PtDPt2gv9lBMzP5vqxmQctFkd891/PUM83SIVQm6fAOh +xH3Ft9dH/5MWByPP0bu7NDeOu4+wbPqYEqySAtM5u1yrcWAt69Ehn1XoTWF0WT28 +W7ErhV775PdnyGiVWKCyVRQHvNqMv/idsrfXwD/kpEmYg9LejudJJwWe+e2b0X2F +acnWwSNX0dT8i6I9Xs5zIDdzEcW/mT52RgxA7vYBce0lDPwqNZGJbztRqhs5jms1 +BCdYHCz6Db/TklV9Ryz2PMWD74kCIgQQAQoADAUCVA4dngWDA8JnAAAKCRDM0u2U +0hc56XmpD/sG+muBI0cmgkqQ7Qh3d1QD7ZUSPaqddYdliJz3ETBbuD1n0jtzKSYe +IvvmTMtGwPM94MbpHIdEQwrFkFc0Y4KS9cXi4ZOqVZgrClv/UP2fiovwHd2xJX6V +YMxL+witjQm0xaqPVsleQbMWFf1Ek4bHFVV9dmQqYFgXUTz3fCqeWc+hRCRkroLw +gDjK/RJsB3H3Cic5CXujGrmwPpLSVLxclv5+8BDRkYl2lJw7kV4cTUMqTg23Tuka +qAN4McavKSoNP6mvXMp9lSAN0Tc0eW2sJJnCLjYJX9csqeVt+zbLbGhSQiua8YMq +rkyI23fyOtM1evyzvhflu2su+f+TafOQTMSHHobZIEDUeVV5sLUOnWhKQoW0fLzV +ku8qOe5RBFcOlbGMvxnm6g46RxbojVyykVXsDGMEAgMnKs6FUfiZaIdc2/ZyvBvD +4eq97GR/hauo1gqG7c6NJ/aD3jSmY9W6iw38RctVxxD3i/6dlcpSyPk59ffq9Ng7 +HGQXfdcmrc2FyCcycVdgPQIUhIA88spx9+TP7JCyztNCpwcqRDtwuO2nFYX1/u4s +GNLa1y/+WJdj+6gqTR72nR7etTE0AJPeYWoVbZOImgJUj8RY71//Dh/9cBcFBJL+ +d2W5mngb1sy5NeecIP9eENlk/TWpStaS9nB9xvvouoNHLF2EpXC4kokCHAQQAQIA +BgUCVMocZgAKCRCfuSYnJLF9KY8iEACwhMGNcPQPWUSvg6SgL84nSzW4zxgvLZJC +NG0qp1b2scxjdAX8oc/vJHYLiF+Ykt7SgAmLxDe41zjPinc9sTjNsmu22DFnh/PP +31J6UVLNsdjvt+nzQAbL3Idh6sPuzG3R3o12XrsMbdKEywDu9raqxfPhHWsRju5Q +8tR7T/AvXLhbirdVu4C1JtZBs4oINPamuLYXkW7wEPZAsvPeeY85+EB+dUn/xfaK +j5hIMkj1+XTZmyWW7wWd8XXqHCkQwXx1rgiYvq7HmsXCtcFs4NAdA4qLACo0dDYj +Tct0KDbor7zMbn1y2o3jcLEgXSw9dh5aBwvasqY1fSHuQYu2cjLlJqT8hCnLQmnM +M4YkIg0IxcD7y7/vFbREHCwYCtoNj2x7KjmiV1tMQ89GzMs25Nv70Se+QKbZcbPE +JAr5E/cwqHjZg3h72vL7uC0FZe2a1c2o7c61z6h++qZoMM+DXlWoFCKeKLCQ5in4 +4eqHfv53+TOIScMRQ35KYb77otn8NSnIAcTzjCXXsuDh1ZFEuHlH1aacC3+lDlhD +/QNhmdzs+fmaNgc1vdIxZnaftQDXwboDxzidE5QmZN/Zv32DO3h2XRZ60E2szndK +z/+nfJKyux2hzAUd298QtWJcWOw+5mBsMpDh41q3SoWBJINGICJOY3EVOzLDAHmG +gtVQfbnWLYkCHAQQAQgABgUCVBDo+gAKCRC7IKwg4LfWvmMcD/9h/3JmHCOKP4QU +YrPlSd405yair4ECgZnSfPGAILZtgw0WVlnRaCQq+ldWWCqqa0e+Xdh2vxoCuUeQ +CvR4nKAYwq+7yHX8oJ7NlFU2qeeDG6he9FfI66izAjSKWywzpzd2nN4WzAYirQt5 +lcF8ev4KIUHSLg+Kqbl3K9XycrwqYGpSwpyhPSQK3dH7U0pcvxJ8Yqs2Bj7Tyoq2 +aQ2JpFn3HYJG1QoWcjP/Zni6Dx9ESnSDiDV0/0Mv5wNSj5GN5hmffsXXO6AyN+Yo +33oqsnaWSTk8j17j5hSC4gjqddB/TqIr7E5Am4+L6j+0Fgi0NhWQ5+WJfy60kBqb +Sn3VHDFowsnZwNkFhJ49qAuE1H45hsaF3cGDULH9lizOQSmekNKk7QFPpOneRoCR +P5O7GDBCIZIQBmBzXosNAmXcPW02RsxWiIUSXug7ZjuK1u5F6STSvN2MS7VBt3qO +onaeb7H6XvA/XVTAe1856znoyFmaFEdHxr8lAIkp9RI2jOWR4k7WokrgSqfc0m/y +19Ie7b4rX+YI657nXH3MFMjWyX8W2N7bpW/lK0bdT+ExMibt0I1ToDlsWpFTXNrg +mk6lUQ6rEakTPUUix7xK8QdlGpPfJ846NIVSraN5kFzr0G0RXwdOi1LzJN6F1rtk +A1R+CzQDlJ3gc4E/m/gYRHdWxXXeVYkCHAQQAQoABgUCVApymwAKCRCII3pqU6sb +LqMnD/sE0n6eGq2V7uDcdUlvGGfGO7Awqd4vg+4/gj+p6CzdhVRemtC24ZFUAoIU +jSW6cpLspQb5crsCfNkQvCyNATNguszfadrmhirFpa7wfvZuqBYMK3UsdXjqZOqb +p95fhmoKoZ+NyMjVXSs7IJwk42PPJy3Sx6EeOFFE9GDCd3K+ef2LPgyzxIUsgHqx ++/osZdvi/43qER6KelmtekpAfQQRYkXFF/ON+HJYbT9hxPiWgMQ5EylGtfvhvgqV +unbn7KKDY09A0nkUcu/zF2qtOmcRFLHg6fDjZkJ23/dOWQRA9cgn50Rgi34C0E3D +DHUH1oG4OrzUhSxeiHrjDZQNYUhPyUPwln3vZo4z2TUjg57wwyY5ldGTokSV0wLF +GPmlD93iT///w2OzgFr364whxkIpnmx9w6LdJSCMx3Wc3rcYttc6anElaOKpbDUk +ffaRy+ECHcyFrVx0Wf0slHAtV2L0MLgeNhh6FomhGyjR0pa5NT9pp8koI9lCYfmC +7aN72CH9FSUC5OEPKSGP9rQCylgecNtVOZ44l/lVTUWunVSi2aEcd9Hkd+cGnh50 +ZqqogjGjPrZYZvdp5LyXXhrBRJOUeIY5msM6pG9Xg6110c982MLUbJxCWI/wLSPO +zvgl+u4Ox82loTEjfATZw/c1UyRk0RfRD/saV56WSt2ScR4w+okBnAQQAQgABgUC +TGSyiAAKCRAiOuBVvZThVPxnC/95suDJm2+LYjRC1P3AfnECbRNDNlKjIzwMVfi1 +imLyKuBZMbhLYz1dxqkvFW70onMpk6lvhdKrNhnRBEse3MZ25GhSagsZk4ZlHmT/ +CgD7eT7coikvrzK/PeDlEujoOgizhoeDjLBP90ihuqtw2h3U4jLBDpmKvi25wePU +iwwN3XUsVE6nWVPO5RnADYpNrp/Iw/SOKIRzlXsMxi9wcmFBAdh+meYsJNaETPiR +kGFOmWG0AdBLbG3MiF3EolXxJ1p2AcRv+LLUim0MyU7yuuuhUV/oB+tN9fA9+E7X +/GRZWniWHj6KsgaxkPLFM7tcIfL39m0rpqmr4k/fV+WA7FN4VXp/m164bclo/JS+ ++QM66zL3g6q+VXfaWcrVKLo4+Olgxa4FIbcZ6KKuE/7pFoIIKDFX2dMzoTl5FeJQ +FqXQAbRoFOauo1ldBqSYsUjBaQGGx3cWYWAr3V045r/fJBBVA3feiOJzduI804ER +m9sN5LOHvTUelMVzNGWSzxNuzUaJAhwEEAECAAYFAkxeoCAACgkQHnWacmqf3XQ8 +NQ//QzCVUIYTYoxIRrMXtQlcq5zGFZXOvcc2TGBM1s8vE9hPPuaOWpTSgxSe05ot +iA/JnOSNj6kzXCULHapHp4Rd+Amofzwb9Ujo7CMpqqZxQTdKcpw6wqHWMY8o7RAj +npE2oVlvw6ppcBst2qIRnu8DL28Jtr1QGGsel0sYiwthTHIWacXRCsoC7+I/qRrJ +9OGZ+y1x8sDI+5gxMBwVpiKHeg2+vz5D5jKUyS0NVrc6bNTe8ZBsB5umnpJgtsem +vYbu/wzFJw3iFAtZnO82vjpbN1gGLir9PIgnKVtJ09wglFNLRzMkwg0JAcgUVPP5 +hl8aj9GHTNCJwLzERivfbotrINtV2zXt7zh2qCB4zmbrTtdWGjPSxYjhdTUF3LEL +BetIKxruYX9Q1hFXwRpvfvoSqKwmTgPU3OgT1hChTa4WIbFGmlppLxNFv4PoutH4 +rp8ZbhQaVayJIgnFI7chna18IYpbSEknJ+lUB6ovrNWjSZ0HzOfU8uhM0pQ+2IP4 +3oZvrAOZaHcwE2xCdkH83hPVH8XQ3zPx6JXmp0syO4FmHiuiVlPp3NZzujb+FP/g +bfAYWHioQoMwUjqxuMT7kbbVgxxA8Y0BOL/QRW2rBSq05SpKhHJSvMV+YTkdii8R +TMI938HY5w82HBbyUHjs/2cf95jlyGsazqBX6uEGATcBm12JAhwEEAECAAYFAlMv +ARQACgkQQzAWmVLVVtttgRAAvY3Z8aP0PUtTQv+rCtAVX15w9kb/D7FNSA04g3Zn +UntyDElmDl1PIfDKm4k+SaMdvUz/xirCD8WjYC31vwOap/h3M2PUaFVZmChan7zY +erOOLnzNBQEwoymUdSeNNoIPfzShzfvj315EYkovrif1+DzeYKUav9Mp40/A034R +aIZJQPT7yVlqHm8ZrHhV+lmMniEDdzUvIEdo7p7+NxHzD/ZAE1MU62+gr+Jwzbyw +jhEvJyrTrm6qd2HNFam4lVON1WH5bXoYkDEGvKkKMkUU1ItGspBt7mtVPlfF6pb/ +XVKodrO6FUyyVoAKdM+lSSNeL25i0nIrzLDUI+vjGx5udXX71Wle1aVOSVpq1G1f +wFWZxuN8ehVrlzORhUKFIHl0IB4un0P22A2QeqQZi0J+IFTPQF1cp68mIJYpqTVv +PJ5kshv+f3Z9DtMZQuQkQwed8jRKyAWXzmteZNwWFALm7T9xBOYf6NjiswBa9rD+ +fJgJownEr2Z+H1Er0AKb1OBMAlNJ/hciPiyxh9ZxLbkWnTD8oiJYCv2qJepWSvm9 +Dw0flzxlU0xXHL/wUEpS3cgsirlZiJtZxULRLxYQRj7VjiAukzU5io2K6uIEyxXQ +yLqfY/3SeAoaxwPFjqte8TrS6FuaSCbqOWk3ex+ihg0lApb0MVwhq+9w5YlJEd57 +wTqJAhwEEgEKAAYFAkp5xecACgkQ9TaqcBEdVxbdCRAAmGtyPjycZHsrMN8pn8Lw +L+d9rVF3kQKlCU7CjKXS6rW0WesQEek/ooTPrlS/vZDAju21i16VDteKvyNk1D+e +3PG4RbZpWA+oF73xZrPxnjmaeZQLDFaVjVL9NJvbQKVcBaYJy2o1jeBeoaJ4odkV +3TdKYGdB2HDIeYX06fRbvjC1JSlCpD7OIuJsYDy+WXoOqIlEfDTuZJt/b2ItqgzJ +R6MMZygVHTnudeE9T03OHxSDyXur9Z7+2XaDWeaaal4W3dhthHSb5UFUY2EIrANy +vDnWqiiWi4bl7fG92RkkjlBi8OqQ2Kr2Z/CdW3Fc3smWqMl+j6VJ+yJcMMuwIl3u +ogqv+sqxXdohdfGGm6hf5VIRlmJr5q4hr0UyUIL+0dN1eEwQcBYF8fE9j0aCC6GW +CzcleXNeGQtIapANWbtSE69/kJbyp0Y9k45If0Ef/Ceo/G0a5h6yTqjY1yxnqdgZ +ZMaHqg193mmFC7I24EK+MteCqpUcQc7Kesf5N5mxqZhL0+bvC7h8zOmr34qJP0ml +o4VyONIrcMu3+rJ3//SeQF1KJJxpvQrfXTEnoqDS8BNfRupW1h9TYwomrVqn9ta7 +pz5sB3EOa//5i640Tc6CQF0SATEyiZmeQRZ/qNB6A4g1JpJQUU/TJgW6PqQUJOQC +H21ODlQveJJ6UOHTTteL7vS0KEx1Y2FzIE51c3NiYXVtIDxsdWNhcy5udXNzYmF1 +bUBpbnJpYS5mcj6JARwEEAECAAYFAkpYxhEACgkQ7+hsbH/+z4NsKwf9EU/T2GLD +RErL2TuzBvc3/C0ZwXhiOWrmXs5Zu1Oq7fxSOfO4MtjSxwsQxuTUYHQcnQk8nF+I +QDyp+SCs9+h/p5GfjcJ5TaEa2l3KfoKdja38gjkNuKCO+iccAB+y8Cy3Lo51/DOj +/zRJWqqW6Eo26S+nMHQJLZHG/9qfw0olupXyX/ga0KF3L5LVGaPg/oX8kvNd5EWs +RSPXNjmnMpLAqg5coq4hFtt1PdZkBMY02rV1LIrYTkh+/2O+t+qbylEqhBvXRNls +i9xv1tOEn4dneenF86CtOnqa5dfCB2cYtQEfxsR3keIcwnLvXtrfI4YlVKIzg2ry +KCGkhK5jh1idE4kBHAQQAQgABgUCSnQv/wAKCRDz5BIvHYwmGp/VB/9HILbW5G2T +k9utElnuvIb6IJVLANPQ0l41B5aHVSU1KE4pczdEe+a1/fmQaMWKqJ21Eb5q7orY +YXjcAB0DPSc7irWc6IURyUf/sjBqFvcZczA9yMk3g96SQz9x46Jr9IFjopkTNUD0 +fA1A6dgMWufZeg7crL2rW43bKObmFjLFG4tMsGuAvOseyNJThcYQYKkeVgL4E2Vx +3SOQIWEy7eRRVfG1i26ER5xBSFulGrKRtDt3cKB2G5/QqHz/5+BzNMrLx6LqJOBx +bqxZ5K6lqdMFC/ERbe3MGkQmUG3NBxutOD1nly7r7XiGhZEeueDZ9YFKAolHXiwm +3c/EypHQeqOgiQIcBBABAgAGBQJKccjqAAoJEOQqoE+mqoxy8WIP/0ZovRnxc+/z +cdcOqpKZYXHG+CfIiIlNhAPtEuSNM66MMc3ASg+tma6Vsamq7e8zPfy0hd64xNls +cESNG1NtFET2C1JI0R9yx7Ala/Xj+/+EqNsifZ00Bno/vw3ZOEKfEv/smrInH6bC +kqFbEmiktYB1HOiKJx4Rw0AnApWvprK1jw0sOkg3dSN0UCMIWa4H2lktjWVVWor4 +ZQgTdsgKVifwZyrvOLxgZK2ACwLF5oquRMUJQUG1e+oGzOoCygG0bh7Isra3y++e +Ain4Kpl02fIe708jzNmPQc65MOPH1B9ABeuxiT2g+L/yXZTWz2LCTnLtuTKrMU0y +6u/gt+65HpxSF6LcGMFVrIriKny8nkaCAhBaZ+b+SsAWjeVxHiXxyICB3tv8Kdar +oiJu4iFsdfTWjj5U9bnpzU612K3JfWeY0H9MntQLP41L79pvRuwOrFRn7cT3vNYv +KHe/hdtCMU9MpV2ZfvaDGp8TbGtSrSymwl3rXvhD1FYdUp6spTb86Q0SifCb014/ +4cXyX6jI0ze1Pa21n5K1Y4/ZRoHZqOJbixOamoPeNzesLxjlirukwCR28JTsQaBj +2yE/M++BetMN7DMfl8SRnGJm9JNjjSy5Vlp9jObHCOE0MSYUAfG3E6boetWQ6bbT +RGhrDUmci9DmlpG0IV4nWEc76F8WvjFjiQIcBBABAgAGBQJKdVY+AAoJEB0hyD3E +UuD8UXAP/3QLq+1XU5m+iA4E4RYSPuba+GnMT46drsAqvTbqQhcMt3sGVUDpSh+d ++jyQIYKS1ulWRX45kJbQOvzkw2P+2HsEJDHwcFTgrFYqpHFm3eEdsHyHkspQ7QW/ +qwzVsYkcmAdRq35a8ChF+GeBr4DSWWzhLk5i80SknoILXwNvpAcuc8Lp6viuiAtn +z/Ni1GytczhaolY91/vR6IkEsmestrA2NjrnQ74+r4Cva6LapR7yGISxWRIeEbSh +82C9fldz9mAvqUh6gpw2PDbqEMtiRoN9PYe1k06zaLPMaVnipLZgBp7MOogH/AJV +pJbUYAikVN65eO4rNmki3KnZtKC32/52vBpTX6E/3O1KQ47diqWMLg4WI54qfPMm +2IvxBJFArLN6zPcP0z2Q77kXeZTV+PdAQjrMAcYp9Nb4/KPZqe6aSsKhadnKkbfS +OzvIOn7XDdJWiqVAs5I3dNvgiacJcpY+BSrqETa4XJry3nkxM18JMjG96koBRHKT +XC1Qv06NIT//PUJR8c0GAJxcqNOLmTvBHpibOVFeTCfLnczq1KDqo4GgqJszqkLR +hQRMS/N79d8fFWWw39c8Op3zQc9oF0Bw//kycsiBGQXgJBFMGIaUXs35xUlpuwI9 +OYauIvgCQOenhMHbPeIM9iNwJHI0S3pHJrhnaL3vev5GJTT4rwTyiQIcBBABAgAG +BQJMRafgAAoJEBgUewc7rSsHIG4P+QGmAsPxgqp7aeXwFYCMtW91mZw5qYtoB+wC +9Jm1tUpC6wt3EMyVew5Gcpd/bzzBJkNy4QKEVzJsePnh4+0PB4fugyXFt3qXymCB +KLWS1DLYCEwSNAnyP6ElnF2e/QWloHAnzzYGGPnf6klokhYdSSuzQ9nwazNhtxNX +6mx0Nfd+ydkS+HinRF2RDtRSzNusLvzOehbLKBZm6na5pwTbLjcOMZc9XafJLDr1 +nXWWG8PMh/zTQcCrL38LaJkZOwE62OvqFWuQU+3+OFA2LDRqyOPMIq7vwfI24T/X +e8u8+zjrh6mRjOBwDZ7V/RxQs76SyDVj+EGNSpaVhQjbg+QWHa8hw10iOa0Mjo5W +eYyl4E+dqBjZbN5kuspRfwgnmK60EmYriUAlUjSeF/TygUaqXupCZyRb/K+7jtDX +fJwxA/ivaFVkIjliE3jyTnHWnskYMCMkjHX7t//yV8DXyWNK/vRQ1gzXYT8fukoi +1Fz+TeIC438MK2CAc04o0WSm6qv/ll4uFfoJDrVhdYc6wq4aCmFJywPMqV0d0cSs +sl0nXBqTAxlyv6LWKfV3YcJDoKQ7krQrFroq/UiltpqiCPkIZtE4swvUk04DPqyl +rnNgQe8Zhh2OUnN6ERZykKBaixVbvcKd8+Pi7KnHhv3tte/rWMa79AMkY98hIMYD +eoi1bqqLiQIcBBABAgAGBQJMWjRgAAoJEHA3PPEpDbnOfgYP/3X7kooOxewUh8kg +lZNzBfxujdrb0oVI9ZmmYFrJ9v8y1yfNZCa2Qatba0LJEsQP7+x/U4eIT16EcseY +Msfk9c0nYFFC0lq3U81bV5JwIdrO59/SuvymXEccG9NqcE2PrnNaLJV43OpHfpiQ +TwzYoe1AprmErRVP/ZHXeng6fL+LU1Jj9X+K+gFBsMTKVx05gMDHeoV/APHX4A2G +WJ2/XrRDZFGc0gc5DQUPA1iSq0rRuwtP7CK9iVRTzUfcshvaJd11cazqwecy2iST +EYm8oFPmOkv2Y+8GFTgnwCFRqGYz4EfQR8Exja99ZzOvVMj8taPtf8nH/UjmpbPC +haO5En5KsE5MtJM6Pi13+5na5yMD7W86u3rhricwbuZjnmQB4TQrvjrzBP9Z0OF7 +oBfw2sZ9LlZ26vV2qBzgktOsDeJQCRvHj7LBT7QE2hrXQprS6y7MNkAQC10pJ7FR +dZK3g679G29W/Bmg4Mi0JnIVdlC4dIx69s6tnB1XlBeuUMLJL0gCqvBicNxYwnby +FTXfWGpIgPtNVzj0xOEkBujAcDOAFRAcbG6epxx3WBQRt+ixSy/yQNLZk2fkz3Xb +05Fuhq5kNf8Um4XjC0fWwQjwf3TXEd5Ps60cJDC19YPmF84YpBX07O2rjNPxEOC5 +Hz7r/S2RwBZ2V2iGKtAz9eLhKBWPiQIcBBABAgAGBQJMYHVHAAoJEB5wkbHxSmSi ++9AP/0c0MqxQlKVUCMvNZtRLK/4Fx2ug+w1mA5lZz4qHsI3H/pt0nYAovuWN7cyY +EemfXRNWxm6al1eyblSL8Afzj+V1XjtmsMrkDycS7ulcbHegQelBSv9NKh8G7JFF +ZzTmW66YDHbx8BuktHiOWU2MNktDA6ov5OtdXYg3VzrLlhSVBNoNoXNbwm8+wDv2 +PgaRRoNLqeacZ8fkjc4WgcLm1xbwxALBKfHrHI/uj/zboa2d2RFMP9CqG9dvbLUt +Hj0iO2Z8kiVZy9e/SbZi91aC+Bpfy4AnszEKNiUw1RFKg/OzjMHVQoWJjyuETQa1 +NEjw/i1vWEpQF0Z6iREJXnYjPbAgFxhHLQLxl3JSN5phVxOWAgnH/hMVFgH3C6+h +UY2sO17hSIP4/93DTDdsRtjhAESzbPNxrkHNwzp/1O+WBH6gs5cl7cUN9qRblvBT +9koBZSoe1IWPyC93My52Zl4vZHUbrHyMICEQ4htqyR6OtH56ox28ASNazpHJcDtV +NLgQ8cHkB1gG3mXWrfl8Sx+c/sXsAe3rjPQuc1Dm4aDFRoS+FwCkLg9+psKY5J73 +/NnkYHHGTwL63y2GZr/GW9ANJm5yMCxucUFz09A8341BtqzJXYJbuQikNfaYY54h +cHHTEfrzGvsXHTnUBLnL+MPs5Q+6g1gMBcmPChVvFn0vzYoCiQIcBBABAgAGBQJM +ZZDOAAoJEBPAtWZ6OLCwqHYQAKW8DA+pOftVM5n1fDrjvFi1ki8N19tkJioHFu8Z +sbbAyVab6po/0XzzsxDJ2cE41Ooa8uXPlpgn3SU28f1Sj5HVhWRligGG0Gh0kpq4 +tcncVPbV6QtNL1d7PB+mT7oYM2NjNNK9BYuCSP5C+exrkW7GAQ4FJl/GkF5y0aSo +9MxA0aCPukl3+rf5IdV3ryanov/JmjCqe5L0x0S47c8ARCEHRqWjB99Ijf8dhTpt +/AlSuT+lXH8hb9+pmtnsyQXs+Ij1avxDFlg5W0Qt7zQO/BGgRdnuZJhXIAn7nRRe +CEf6+IyZVnBovhKwDJYUK1o07zuZv4rnakv8bz4z4lYbarc4YEMnOVh/iwEh4t4D +EmbeD1e558COcp69BG3jkarGe2nQs8fn733t0JPBOWRHPro4KTpN1zZAMkFMexSK +7Mol4PPVLPsZ1HYbDW19WtikYMLhByKcX4ZNk1rmJ6A6TOX7tC1NOmlKEtjz+KZp +zpfTQk4/xoanQVHlofnQ/I2ZycEUC9uzPoHeRV2Bxm5uge56LTG4GrbKH/tNSEl1 ++3q1ZjePVhPwabpmZiouC9qc+Zu3gw6VSo5vyl1h6pBVwz1dwRPmnsamnTr1Z8zV +HtvOqhemYs6+W2mmJyFLOHwnv97FeR6kZvgcFyIuw0mCbLQ+ILeXZxf7pE6L3kXX +sOBniQIcBBABAgAGBQJMZfOeAAoJEIDQpC/yyFDKSJ4QAJ9Fk3Q3z/lBRTpI6KXf +UmZlrhdM1mJ4AYsyB16zv2c50lcDspjvd00pXnPkq31oMn2nfVDLhrB7XnGG0ArN +T7YFqzCLjuerQPFVSMBs+4+PqtrT4XybKl6HiVxb87lx4PDHFbTgRkD4NScqIl4R +W+3FoUca1IxCucP62uA5q1g8e6299WOQHNgbkmGi0wM7pHESinGPJQj3COAThDgW +/uAe4aNfrA5paEsJwINlDuG+uM9JIp4bzmHd3eIaBIkVepxp/U5A0CM/T0ks8RKF +J35b7CIAZ5fR+OeMRX5OIdBvcnZhusbtusj+2wpMQPH4w1/B6ESU2aKc0q4aC2iX +/l0hA/KSxT5rCISQDBFtau9LCqYoVtiRIMSOeL8IcKTQ82L0ztwfqpAF1bkwd36l +0yzu+QqV8+wbTMMQslWdqsgMkKwP7L3E+C2zYvRzH6s5cHBkmYB1Pkawt4Bk+Aq5 +j+qZ6quaTpFMscjZTIlPFlbcGYF34R5K8Uc3LbzT7KkwBrGUNpQOyhOwrYeff8rx +D5+c/Bu/N9JgeuPQORXsBqG72w7vXNFCx98gqwflMSWSR9Iu8AFas0iHDNwkGo2s +bGEOYI8xV/KsB1eRS85hul3ncJQUKbkNajnU8IJZv0WDwg+8TrxUcWo+x4H5vBmy +IE2BfYYZWC+Ldl31vq8Ki8e4iQIcBBABAgAGBQJMZtbNAAoJEBwB9EPJyTxa6mgP +/2UyhRtuPIdYL91hTGYtjzIG0jA8ZV+p/h3r+Q3tXiSM3dZCcIVI4V/2OGAdJAit +9UCU+ioPdar3+eEo1x6MH0T9XVWI9bZyCDKJFDF1q9IjWhhTq9EhCzw759nnjKV/ +M9kgh0C5BXslHlHEZcGqKaCB2JmkCfRD3cJysc0HXFojWi9rE0fK+vG4zbVn2B07 +W+SFtiPPerJWD5yZ6CgXIUkdz7XVPgdbRCcZsh6W+MeALS+4Q5LUVum+m0EfTekg +KfJ22nJRGMOYpDnbjXM93Yy51w3RB/kBEcp7WgCOgXUaZ1+8CVQetBdYxQ1pM/Al +aj/DFb95g1s1VrIYnkpJka2JLqHErNAA4kNA6cVvvnvZq1Q0ZNx57jv9iynds76u +ooyffEY8psF+Xbp1aYE0EhZmhjMv5TOZykFxNL75HOPnD0dNG+lTXAPIedxlojzE +EoI4AOIGEZxCtHrYd+cXQVKy73T5xCPyOt0iN14ZU/y63frMCiXOcCyMdWFO0Ybo +4jcOaeMezhJgeXwYI1i2Q4D0hDjFkuHWrm15dLrb7mrqJcaLvsbBYaCAVCK1/grc +/+BnRcgNEGP8LtdfEgU1CDcw6lDvuzx6r+MpW63OfMNaJ0RHKr7MNSUjZF6O3edB +sUgBdYAkE+UhZIrRasX7UzYtJHtxUzwjPDKP8/NJwNLGiQIcBBABCAAGBQJKcZUL +AAoJEPGmm+QpwP/uLgYP+wXScz/9W2mwPESmzgDlwqlONJ1BDZNJlEbgWKKkx0pf +AFJERzJCgKgk/zmREBISZRPTYSnoOWPPb4v2O5UDePQjqq3G8plVOihpjBJOYKxN +5qpqJbyrkg+/lBedRpmLMghrja2wRxkTQmAaAbzyzfjw5MRrwD0Vd7XXORB6dKwv +ix9tfyajVVZ8HiLDt9wsLPrLEjxRWAuRokVlPI+7F+FWS9D2xUv3s0FB+snb72CP +fZdeptdFZwvbgj/0xZns78egpN3jCOsDq7YecNW4ztb++sdol9JQ2rqddc9thBiU +YgrickpWQCTejKhQdMiMdOK6z0nosseKffkMXpJf50SRBrZt3CTXigIs+93YrDtX +2UvqOpLVAOl6ihmjf+zad0VO4ADVVRgS6jDN+9lBDY2Xg8VaDOSKdZRyZpHo/1XH +qUx0BuL1N0U7ZU4fmezqns1O85y4kNNXjylxH79t6u6thXJtu8g2OHQn+4vnFFU0 +T6CXkeg9MHJtWK/mnPQ9PHkxngY/9YSTVrmwY12IRDbmouh9P+3ZJiZIlx0uvr1G +nD/+rCVjGMPOOE4wBgMnSFDrVEsIf93zkdONPxXiYuh0/lI9J50C5LyMER41+Xu5 +/W27CeC0yLt4w6JF8W/YNs/JIyd7z8SnO2BiwFjFo5pTd+0E/LvoHvU2ng/M420q +iQIcBBABCAAGBQJKcwoEAAoJED2QirPw+/UfNwoP/35LWn9S+qHIQw4leGCn2yHc ++hp1UQUXjeV01gjDsYWwXhLibn1RjGfTT5Qasn/w7VazzpR0e9c1NyUzWTYkBdGv +nWq4S0h4qWB0f16NEL7GZdm1Bi1rCPUn/zTPILeieQU/g3j0qLMptjixABJgvgEt +8mjtZ+ERLwJzkyVylGUjC/O6FWbMO5pVYcKr6kfomQfkLC7z1w/THFWmCGyu2uut +3RW+eqSq6SJch8PVivHr0b7YjB+XCuHoTxiDMHhyijh46V1SoaYcpLZtLaQFsPm/ +Clmujb7xujkfLCNYf89/jimIQ+JS713kYOJaQzmFI7QtNJ384u9bH5wdrDVBiE0M +B7chbq1X/XxQ/Sn32xPDAOkhMc09Pp67Z01Mqv7te6PnzHteJVf489JzmIaZfzuT +HBKgLOlvI8uMdO0F7W1HZS+g7OQJ8T2N4X1rNwdoYZiEwl40IGuH7u6xn8ra2hbQ +ZVLEDAjogABeQfCvofGXg/2ThgaQ4EzkAoq1Nzj2N451YCUs1ZHA1Wy6XHkZWZvD +p918nuRPJw79bZywq/844w600UYdkYjX50w6ih6OrBNtgB/8F9sIgj90fov/zwnL +uCG6qrXg9Y7K9BRb2zXszeAggX5/To4MlHcFta4n+yL5PVR5wKlWVNn++qSFIoul +N+9P9keuO7Y0mXsRIMTsiQIcBBABCAAGBQJKdYqTAAoJEOpsprlRuFE5AJ8QALtG +OQA8SVSRcUrTbVNtmCe4Bil4tmP7BXaCiIzrvcGLOvNR12Ujhj7yv1QJBLeOWY6u +wpe/YlXbVhcWeO0gG7g/0LGKJd1O0q2jygA8tNGdbS3nS6KLtUazSnCIFM/gAhFW +mmyqtaK9dNxuTLR/DwMkddtUhi544qeH2uEyY1ygeQE+nvCJ9xV3QGiz/+HHtlh+ +8sMP2PoIAxfqIMT6QW2gEBfOIHlYUs21mzfAaSUuhbDEFBtiA7UxV93sQytpvhuv +qwWyikracnAjSKz5JXA5HTqUZrsbwhg2j6+WPex7vUcAyPzV74+ApQ+tiTp2UzDS +0GveYf4rAVkkvE6K5tyj+6EVGQQFMPIgsUE53hDbd8t7M+6/WnrYoe2wgfj0VNIN +sUKUAekL0TEZYf8P2P4/pDpK5fm2rixaxCKZXgZ7LABgOygzSq0FpzTT049sEfbl +MLD+6zL3eAL6AqGrXpyambsLcHc5jALoMnEj4MkRHk27wUxgkbVjyP0PUCgfiOwy +Lc5CgSIzFfpzdyAF1V4Ul0GZkes/Mxc47fuoIyqeWom2YsK3w6UQZSnPuCIqcAXM +eIjJ3cca+vBvQlMOZuw8F3eq3ENg70LdOdghtAPGrwVdqRcNXPUntUbNPWtwqL5B +oNRAzv9T2ke5t4ikc2Sj58yPqaQ5xbNltXzv2D7aiQIcBBABCAAGBQJKdaTyAAoJ +ELNGT4lqoVlITxMQAK2n5JHGo7D6elwthsSlf4GK3J5zZobJZ62oVc1jXwwXWnwc +7rqFSME8OuKbNgsVSgbOHtOhphAvJ/VYhIkSHNE+Wof5H4qfRMTzjvKUWk1FjkL3 +uxOI/6IqlME1nEGz2roOkIBUW5yqZsQHXEomKKpg/DiNKxp30f3rNUIt0bUZ+KS2 +8eIExMNpB/t2v2ZmAQ6hzVJ9xkKNAtYi+WAODFNuaR6THlYt6OF8QNBse/l3bvkA +sgnpmjQA2A2PwEBWeAuG5Oxob3jaNpBSRvVDMKM3bn8wXnDAAh7ZueLckjDTJ9D4 +xFGF+FzBjZli4YBmZxQiVhQ3c5ob55XhAWH7w8ymMEVAhMsJVOpqn+qoUhbHyUCJ +K8Xa5M9Sv5y57GwUOfbNXgOQgaKk7S6tRL6xtKXYfA58M46ybkIHMEiqPNAkXrr+ +AwXOsul42Ae8cc4j8aHwq3RNUK5Z8HIh2HLPtcr6/BVVVskMCZxt3d5DD2NfLChi +T/YiE66QoLtc6j6lRypaDs97lJ5QnCuk+Q7VNQecKSohsBNZUdNxFGN2nnKYNPlS +KmaU/tvxsXj82Z2aDilluNy+NUGOuepfDEN8rUmQ8CFdEhKwX4a1jXOb80PNO2NM +2cE0wMZtv5Yrgw+z9WT3cc2Wht+jslaX2kOtOfTElR1xUaXprQazR4mY5snliQIc +BBABCAAGBQJKd2f6AAoJEAxwVXtaBlE+I/cQAK6QIRt+m9kwEMDjDRLeds2Y0J42 +0Mb92alV/LgfZzD22SdKxf0mJen1in3CfTZK0BcBsx+tU2zYeABeI5fxBK+4CjYg +IEmwdOysLZQbOQ0oKUcUJsJgWcgR+QAvt8Qw7VCvfeBnI6cvtBMgHyfsfjuuvTOc +fd1B4Hg4Icru60QOiooFaZAkA/M6iq39lDsMbPy2OkpY4oH+clMsrLPhxjLsavU0 +sIkDltuKr4Zm8O9qCG+zBIRXEJijZLgx2TuZqXIAYzrgHi823zLdYDjFFB2bG2UH +phImrpw2ceGfWXSSaefG6Kzt4i7btC1FLNE8TNxJSN3m11YlALthqJpqlGTTSiCu +xqWCLQGgbhM7zUfJ91cx7UyJvcaboNvTqbxH0Y694xiKHMM1j+dNDBHQV1VHnZr4 +LTBRKfppjte3RpRbRsNNi1gellzAQkiU37YjDC32Wyri0nKsmVBgdGPcioEh4YLH +GeEQHqWngFlGcDcfA3HK9FrF5vniuvOPliwme1G1tI9pmjPWz2XiT3ziIek6qrlB +z+t3sIdj2DjaGCoXy7gaRlC5MgFNOd5kVp7vy4oFx9jSUwpzyzrw3uUUZ63psj41 +jS361QdVSP0vSDa/4n1IeZjx1T1/9dR/Q5DAK6RJ4pFIBz2kCRZ/zp4pto6dKPb1 +rDNtAWfe5B9ay3Z6iQIcBBABCAAGBQJKebasAAoJEIcvcCxNbiWogj4QAJatxzO0 +s7NNet3Fsf5HGbRbn5XykJFyoAr4gZ9wMYsNt+v7l1iaHzVM6c8RVWYeOxjbY7NH +qvSRA3h6r35eItgOddPKLMksDR68XjvykN93/XWJIeD0URBh8jA19rCmwKNZAbLU ++K0MKQdGSp0RbfsQS6laGcG6kBtXJAJdFroVG2f1IjrImrPJ1ZuAGco5HRwo1PKp +jyDPmYLh3T9JO/3hODTxTaLWH4bNKsgJEPBwTAyx6k4jK5vWtziVq4AFhkqMznRt +tXSctK2x/BarY7OpjXjBTkv/372XHTq/hXe8g2jmpHm5dBi5H+nGd//Db/OfWO8D +4hYqKU5p6tEjiT7y+62iTEUFXtTxkwuhcPD58oUb9lwcaakAQ8LxkBlapQxGm/ed +p19ed+//mjGCPOFKeLiAAUJvzlQBSKr3k3TrHtrRn7gDZEJRCZ1iOBeodjltAyoJ +g1qxZ/kOpUAdIVeGFO1+b03f/FblCildlz1P0bvvOmcBu7TEKuuuUW/jmSdIuS2G +b/pqFV611Tdzdny0aAPPH5hp6VjGFvwO9yG5ocEyCAewI/BR4Nqd8vv+FNEg3ZKw +gdB4UADIpWuhT2NLfCQnQuT+P5I+ycAyXhDEdZ0irNVLiIYorvmj00OCP14Eu3Jd +0uWjbkQT5eP2RoeFGjndN1xcwAlng+E5kSZriQIcBBABCAAGBQJKkgBKAAoJEOe/ +yOyVhhEJHJ4P/3Iq4rxORNHRSoF+EiAk0pd8gs0V73lXOEpOBSXBMryVRkdbB+gi +r8ArzvQBBq3wGyYW8ADK8aJWKu28T53Zs/ikQGOotHaii1p7qr0kuaB4yOpL+HXE +zaxYxwr5MsD/SK4X2tMJik5OOkIdp1Yp/HZikrzWb1YOMIerfqjy72gWA8M1sOfy +MJEw07w+BTq0QxfJky3UQX2/r1zIv0YUa0XD4w2FYrhMnW3mXTo6GBd6467RfcSk +97MCdtmeVk88MTMIVR8EEMtf4o5HV/LbUL/XdKB903ZAJ3hjb3Jn6rnJftlRcRpe +oQX7d1MN8me79O7x9hlc75ZbVTy4kAiYe6pqtfFxbEpO0tEgxDZP8XxwjQhyDWuv +qzg4i0rA1t+ZNC7yXhvimfzX/lgt5+jnl99MIpxnttRDNkkr5gddhUYHPJUGt91A +xCQOFHB+YEGOv8JI+ay75LBwwd1aG2OGYBgQJaSUEIaPx39Ia/cgTuKCImd5cfCC +JGouBm7zTbz+Uw2An5Dexr2VRp0lKvnOxo8/yI8ZzKn97x47oWFTArGNDG4IiBoU +der8W2mDkFl6icOV9c7hI2NAXqz/t8y51niAIS0CbMBu9562IrWQyWBkbXyeto9p +CyzRooQPDc4Acc2D6/8+X110KOZ5UxWx87UmZuljmWp/IMseOisw9ts5iQIcBBAB +CAAGBQJLG5ERAAoJEHxWrP6UeJfYgT4P/3wFPWvz+UVp56UN8GNRWa0gU7uKerTT +PZ7oc1RX74EMkQbYW3cIyloindKAHrywMn3f4qLmJ+fX2fdCtjTET8vBp6C+Sb6k +w3E0j18SoSHZkfrkahKhZx26ledxfiiYAMOFsybGxC8v7XOz3mOlUnFU+mBVb2bE +eM3Hh44rNhpEh4jVPjZAi9B1uNSftIESt6ivRhTM9rQjhBIPOqhrqgvufy2DtpRy +e7O3j8jl0jvmvg/4iAvBGe8+5p9WQQT0kIRrk/ma5P98pTmGJ9583qotSQjtxxrH +fuXplzmcL4ATWDn9KS7t1FIKpJxoOf16zeKY+nrfVhlOW02gOH2CpZxwN6f9hiKO +NKGFZPwu5PajkdK9CcHEzxcgNiZG9hwtA4HpLc+d5x3MSK3r3KBVbNZx2+MaGeBq +jg6Sydn9+d+M4Vllts/g1d/JEOyVjTNJEgpmUWxgB98zTkzvrUBOc4JhQwLEXlF1 +YqHJs89ASUrjZYaqCOGGWBlRCV3b8XKjJ0T7mPOR1JOVLGtr9FI4ragYc3YkIetZ +ja6LuwDlmEZ9Upzkdc6qIV+v6rhEcbgb2WKGqd+7GhZD3XTbU7VBuYQxBWBgzMAR +3hjOf5VTClX7+dBn4GC+GS5dyQRo7tpatHx7Y3+JsZSnyep6KmwY9g7nTWmkIH1L +U9FLrOS+pnObiQIcBBABCAAGBQJLZE3zAAoJENkp8pkr7woz8m8P+gPwOf+qAeCN +y+cbxA36GkUE/+Hfor1wqFsLW/NYQwg1m/wNoJhE6etvazBb4e5g7TdEZcXCLb6K +tW/h2K0p0H0hMYf0477iCAqMlShzCxCgmwliT6UPoYmMXIZ9nTn5RE0fLayY/0n4 +VRwunMjSeftEKiNRXJuzLCO+YG/fuvNDEcjQ6YzKX2Rncuw/xXcCXfgPdBl9jUxv +g+E6Z8WdmZRIcVyPzZxivOL6jO7PPXVFyBuCXKdSLFiAPIuDLU0J7ArGHNIrqtAr +x++yHBlI93r+I6gSZPU/aw3GS/5haqJTFI9EDtKewBUrMlEj4oMd0u3mK4dWXP64 +HNmwfDgLTkklg4/NrD4b5jC4i9BUJyKxp4ZJa/FI5pQaNbwL0mZrhF0K9Uj9Qod6 +EB71rCGR1r/FEMHYrDZK9lQkqCDWWtGYpOgfc2yrNw3dcU3dee3UqL0jwkJvxqOo +wLx4DjxtYTh71oe3VB0p1bszn0P+JEX9nVBcLcw7LVVsFaOcRMLg1cOmRrrY2ocD +7xKfy64x94v1uJST+bS/DWVPAFgqE5yo9j7AKAWnfyKwxarFwjZn6+RXJ4tX8T4y +LLUXCzeCWwdkeMKETGOpDO9j6/UTtmdcjISerTFnGnIfYeL9qKeGdCS/4q5Sia41 +ETgGAxPyN2EkZmnmmKpaLbGBFTYXpWiaiQIcBBABCAAGBQJMWL9pAAoJEPEUCEwI +YRERsToP+wY7eBpVNMFTw09gGCzZuroMS3ioCGostV8nqIupzfQlwgwwNpHCK9Ix +SeAC9bjziJkJzOW7jT7N4uCf48kO40BIXyMyvmJkUgKp2c3p9kfrOVN+y4MGdVh2 +ChZWt6P8UDpEKpns++dqcHuEdiYF7TssgMOpDPTSiGEgu1j/gwmqG/Jbe4Lg49/g +cMKTOVC4jmsy+y6s8aXchh+bnWkDG5uYHSoT8SfbgHF4/K7Jf7R45VwprVCX0gNe +UYNR+N2b5aHwL1wYzh3VqJzNR4gyTkd9AxrxuPZIuDhorQn8HYuDsJrPezKzHsQ4 +OqnTFEx7tMVFRmoI1E9Sq5OrI0FIYew6/2ttgy4bvQkYlKfP7luE2+BnGCDyWyy6 +6+FwQNLpXGMRxChzqY2y8ieqXhDmMxdfCfM7ZAurrghx8GJVp6kjbiyPL6O07e97 +DPE3fV8DL1rYBnKv+nij1Cletn8AB7l4S1Vjriihk/ka4EWdh2TG/R8V4k+33o+A +UJXThU8bzt6WFYw5FwQPgjNzegeD/Ywt1y8KUVnj1fOC53wSZJS8S9NtmzQ6Jipt +DTxknhb69VwpAr9xrnvXRJ68tjX5w9hsiLb2S1XXj3N1OAgg2o8elR3ePF19PXfn +3Lryv+PCWKZiUDQpfsQq+ogVbwMyTR1Lf1/XyzXXeNwqs/TPVWyRiQIcBBABCAAG +BQJMWMEAAAoJEDk1h9l9hlALE8AP/RqduK8gTyrsZudRGV0ntKLU2WCaEFICwRd4 +5aRB24ghsWBpplZA+tyu93vC+JynhtByXXKCRB3lg3khh8qmN5sEZaErsjvKgvMj +qcYRJCtisu/CObrHgB5Pkb9kKRLLrBFo47T5uDT9jx9zt3uCOxo/CRzTXavdLY2g +gyYqPg7t/Xageue8Z05snOksVTMn1s2V6U5U3RtGuHbvFaadLoFpMxdWxajMYkKx +IpiT7sUUSl66jr80GprTfaOEK6NcrdbAs2zhXUdudnyFaPa7Ifwp7i9fpaO5XK6O +JJ3U8SGLTM0Vqblex/TCoLOoBFQwJQKbhqPe7RpjW5MvFmE8nQGMPzMKt7VY85j0 +McN3SViphp+dDNMZUQ2hnFxsiEtoRjWa0rFweQ/kzNbaNgBHpM251nj9oU4AfhTe +4vEm/uwTuZlyLzxfb0OrLpYI6ASMmP4k0R7cX5E58tQPwlVs9ft+J5Par6JCrXRT +aHSdH5Mrxx5/iLKsdqdORmDU8F+ZKt5i1gILjHh4mYq606HWbGCH7SqBmrCK9AFo +/xe1CSP2hiuODFWj5Rq/j+Q4SzYJi3RpOl1inbzGs0VAbYIggZMzFwws3+PIvAnO +Q8WDdigIWHRwffyYkt+lS920QEkmyzB9zS0+e3swpPPwIRi9qD2BzqtRvxmrL0/f +HNd6mUZpiQIcBBABCAAGBQJMWMLhAAoJELqceAYd3YybnGsP/2GrsMtExWyfcXly +L1YEntBFeWeHgDFkDCCnLi041Vuv1cME/OQk9rSYQgby3nhUEITZAWjThxf31MkA +s6qab6tqJgDLkgGkj5QLF7sV/sZc5RRQrLwkk4X6CNU1mSZ5E/oin329jo/rYwtI +pMAO5dSZe14VaeCkZk9kfIQAje2/Y/895sFnqQ+vaRaUQw2YipegFwAjzjHSsw+A +XvicoBEQYUbDMPu9yLOR96040JdtmnGXNrJPa6W1ynqdrKA3iH/vksTTnf1DJJJC +8AAzm2Eb4qtHsyoMQ49CYVX97rP6jb3HMu8IoW2xrEMNxrlvrbXl8Y6fK1eshzb0 +CCQ2+an5xZnzr/xR6yedP4N+20SdRqROC13Zd61FDPa+2cflbWaa6VGVAunSitGD +6OJ7r+cyXQ9OeAHe5M0CA3GTyU0jPMqfYbBHQJvdxRjTf4WWVXdl2/eD/kevLb05 +k+ygxyTprfi3RfvbFqEsY081E+hS7F0Q59pOKiA78uSo91gk+QN0t7hN7ikWb+YX +3Q/VWVipJf3cb3VoRim76Y6O80SFOir9L78M6gof/Gfrz5aDX7xKIU3qMUHzA3ek +c2yqwh9FXi01B5T/Mq3SlFWX89j9Hu80c/YqznAubWaYNP3qSgU0xCmRKQU0fo46 +RgBJcwParHUyremhd12VkJ1BiNbIiQIcBBABCAAGBQJMXUaIAAoJEFOUR53TUkxR +3KEP/0NC7ot7V6cDsFC7jZtKnDdJrRg6jvDLNdZeSWq5SDi1qQ1iP9k8qz99671G +KzDYOFEVgFf4Y28wtz70adWxPTnRibmcax6EsmiD5u7b4hHx/l1Tjc8AR34FEET4 +/ewbyrd6lw9p37rSEol40KnplxE6KMA+EKCYogjlubCTtyjWXCALiSSG8MRXOYCU +2/rkfoToAicQz+84DF/6mhhk5lm0KoCENHiYPE+gLdraQGiWCSDnVqHdNIBmmLQ0 +MpFRpYEi+/FBIo8vXHEdm2z5N5dMzkPRXW41LQ7Qr2Gv5HdPkNamRbjHsdlj8ezd +52cScsUOfXaHG9UkDpb7WrD8L+X7Pzdb1pK0XggKe9GrmNZqCDuiE1lxE/FtO9Zi +y6b5PWQN2RKLIMTkUIVIO98RT5y3HrUGO1lr9ivwPlwZiRj3TWbOQNhQRayqiFVj +PjvKACPt4YTsN8r3mPCwDSVFkl6c+5OZoAxLD4e1BZwRqVBmA3ZAaYj9HHykn5wZ +1p3R0wib/8q3fx0APDkt77YhCbbluqrlKQ2gMbRhKpzuzXdnrtxMOKreMpvftzX4 +GLOz4aAeTeQmFxlmAOScm8AIuiJvMclmDVBDK/90sXjWsRlzwgivpDaMBIrw0aqM +ZwT1lyvNuEwV74hu3sYTh6uExfA7qdz6yXoXVgsULHkAOhJJiQIcBBABCAAGBQJM +XYmdAAoJEHkhUlJ7dZIewSUP/RD/yRi1b1/NkJ8axgyidcx16JGr22/wEweJKmfQ +4YspB6CY2MzyezpsgAKzbbXD77r5rBkm7jZSKIiqgfx9SCr0cViz98ukhZKdS/zQ +HYAs+9a1kk1jV8jVLBaiiWEpHavt9RdOrx57F0+2QUuJzoJkyIXUpQ8s2XMG91rv +24GQv6Gm4jJXiqU0rGdP4ALzrgMtTKmIei/06jRl+uOraBQyD3VvXnos5yn1jzfV +fYtkrmR5a5++ccsoAa6ppFKTtOdYRuvXUjXRHIgcXSlKCKvQjSEkhr5eck91cuHw +PcqrCLoWbBdNI5bFBa8X24Z4PcRQ3J2dqRiVYPFPOT4vDQS/ewT3aBBkUjZyZ4bf +ahuGK//7RzI8Z9S6wzIXGZTvwf8ZytiqHB0Hew1FtkYRxavvFJEmXLsF/65SBKaT +smc4apGQf8rMrVCHwDS3xzn/5jwUjeyFeVXPL6M7oWfL7etkhnqIG7Vr/rnmrT3C +3IsTESekzglsUa5fT5cgdhEdta4gmDRYyCGDtIFfgQ6ClNPl72psQBo9hb3fK2ml ++JdrjRaXYzcEVKpS64mqGBeGRGisFkUYNzVy90v8dI69N36vWZ4tDAdT6ggwxFGK +sQvVPRdHQZb0opgMYoJxKkZAT8CR830mmIARJbeskNuLNtIB5Go+23yu/sGTb8LA +DTFeiQIcBBABCAAGBQJMXyevAAoJEHqPSei2NIC+jGgP/ikUbIILjXNh0FAndCsN +bqzlfPq/geCq3zhL7yg/0FAbshoHuZa62Xy1QfJ22g+aYCk9V9v7HaBk/Q7lYRVR +e/3UuHTjDW6zL9lp+0+vtklrtgNRr09sHayFSAbe1PB/CbHTRsOD+wJYj5WW/hO6 +yuBso7KiyqFlSen6VDX3rsLVILZa4lDTVs9gLwK6WNTkI/80LxmaRdRn/D3xC7aP +qJpk2eRVxis289WTmR5JF4Sj92/JrxYUl+M6vVbgMS/EhaEWMmZRnmJwhjZ2kiFi +z9+5XCspSdZb1EiNMTjql79JCkZf+3/sMLtod65xt3gDgI8dMm+j5wfszrzJ9upe +TlJ9cmobZ5HhzpUMFa+0Q/wWjVrwNxLcPGy/AEc8JqQLO54hvgW+oIatwDRbB1/r +jASzPqCeWTo8yZgPQSHgC+Rut9n8PUmCteYhtxRlrDh+qfHWh1a7I+V5hymDzvlk +rrMM7xYWVgTJ5pfVJEk1v01bF8UfaU+3pihBE/is0XJmTH6nb4zoMBtDiAUyh5N1 +jd/BSC6bhUozIRpztgzCa047/ocub2GROS+rjBFb/6cF7kquStIIz/4kocmu+R3w +g99vowDL9lXYeL6Ag04Z37OF0J295lEwyKqX/hWI8NnLPTV2ltUjlmkOK8hHeXQ2 +WR0lcq76HDDwto5A+zjcegnaiQIcBBABCAAGBQJMXzQsAAoJENFdMTiCAEFz4h0Q +AIh+W78s5DKrMowey9bPDjjX9ouNQnB2xlG42fpjYTO3khW41IkD1qQVhHqbZQQ+ +Tuy9z4FXgRbnKT8FDTSgzOi5Sq8m6LZZjG9FrMH9ILavzbzY4nUzhkh5LhgM+BCJ +rjy4i34G0QyFq/+/yZnSLmP67fKoIWAzGe5FXIY5f29IuYPrqBmCTgbdKyjANSvX +uaRzmTekT1xHo34OlD+y/Dei5CHpyjaKOENSPpsx2iIzYgItAyF2mg4mq66H9C+Y +OXu61pr2hMvdlJjf97W16QmFGuMmDD3lTeIa6NChfcC3kvhqSgVA22hT7Hy4QBnz +RHa3XwDRm/mTPocokwih8Vqztg47KSluojFiK6poiBF0kPhbV/sfJL47laCebNR0 +pKMpcWKAIbSFt480iVEEMIb1zaxBJYGb4Okz4JxzPrj2hIhm8HH2jvrI+C6Z7zKr +UjYrjxyYoAFhN4DgEmzvHiDKV6NwDYTWEd+ummFx3rctvA+rWNSdrZm36IMUKOlL +uN3wJpEFdA7TuTPmTDVC/XvzBZ7Bg1WA3P+gCJphfcP1OniRI/J5ceg+vBPNEgiY +pWP/2/rdEi7bqOLw14w/BaGijLVO4Dltzc0cFFLQujwZ2QIaZypNTt864aKSPTSn +CswSGAzVfssrNno8O8n4Zvy+WsaRR/UUeimTpSOUdyUiiQIcBBABCAAGBQJMYfRe +AAoJEHcx/Mxj5OJ3bjgQAIKMVFKtwbTYNW+eyLT1JYIM8STY3ZKijfdVhuS8EykB +clMSv1pdpX1jOA2lkWx09O5R82KUsEyFWud6ZQRiBxsJGaF4okefMt2EiagDekZc +GzUDW7D9hx65G2hoV02hpgvlqnsZ2MytJ1bqRjUwi97xO4cPpuwYbwuAqrn7ibn3 +wbfvcc6BNf2PAqtiutwB/rIWudoZdgknWOuLeIOuvt+cMAK0CU877SALsae2WbUm +0UZiKPAWTnC6PoxDeaZAvDsgzWTZhlja6Rj52IrbDzRo+h2G3E0yuNAKbmMuohwj +beIs9CnX2tYS8bAxqQ7O+nRsNoCB4fm451vRVDL+hHyZE8ayzm/fO5ocz1WtgeOA +7J0Kn4J3BZzOLQDOBFAlkT4ERVzal/0xzlDIMhVmufRftO7BRyPJ2drm6Gi4tdfQ +EnrPmzY77s2oqowIuhn4KpXE1GS2d0wV8gWA1tsup86EG4GEv4kxmjqeyzqb9+pq +IS4b27JJrOzXaBl8qITtI4mF8LTAOQrYeQnY0V5OxADAceqPOyqDpECnPNg3LXSn +ly0DHXLUmo7fuWqLEC/We3nZ6MaOaMXtVYzMBzS0MjphU1VZCJAVw7UWWm5pIUvM +IssRjFi1TeGn7HnQY59S6SV8eGYepsEvcKmKtL6hMnnDzv940cutJe9Vqi30q2Zu +iQIcBBABCAAGBQJMauu5AAoJEAqgRXHQPj5w0P4P/iwEdErj50dqvlTawKwIUcTY +0CJAWvoXl+fDBjD3WxOrvDKwa7mci/wIulX5BsL8Pfqj4m5vdOXfjod1S3saTrIc +oBaYFrlh4e0KACuMmeWGV6ofNpiRktMWsNZc4spGhdAeqZ0Hh3XWdYOryr6jeklE +zlhbi26gei7syk+B+z76V8O8T5wc63kGFChbQacvnlQXInDng+L7TCxMsw6nCenL +jOeI8uLA19VxTKFJoB8LP8Pm5M+nSjes7Uy21Nwhou9V896NPGuOoHZj8Pwv0SEr +nqIhWeOrs4hT0CFdZdbADAXpupflX6rL8sIXP23mXn8f4mNAONHRVrCzNJhXdJsR +36CHnXJU7p7QOyww5ebY42iDgetPg5IdwHjlkBhEOpjU4u2qkgl0WmFGkP/c1es+ +DutRUCQv6Q4J9sOOAnGOAAoQBdRmj1SRvaWgSwyXOqYGFAGAdpl959aQE65BsSDm +jequVYqgVPio6BZ6kG6cz9MVGC3NH976ZpWYSxYXTRWe1iooPW5hebYBGaCWueG3 +dnthMSjWCk6ukIbKaxcjEIAXFPOZ8eII3kO8QFa6cw+VYO5hkqU6ThXZPR28s+ff +LqPdH57Mq1JqOBNfEBoIrq9PQ/4owb5Rp7sTUGm1EvLlz7EtjTRnBFi3X1zoKMlO +GSLk6gWhNqGZNXXCdlRliQIcBBABCAAGBQJMbMCFAAoJEORPgBbTYw+J/t0P/iF0 +sUEgf9+OvVHtaMrRrgITvTLz6/NSb92FcxKcg+vOFxB/Kc7tNyzGqy+sBTCsIpLu +JyjIN10Er/S4yVy6lLJC+pLj17xkHQWa8Nm1p21WiTs+kEL2dtnrpwcEV/kjgooh +JTBARavTWjii7s9upvqZ7xkBN3mzEHL/HSHNXibTj2DPFSJFQIG/kpJr3raHhg0W +G3J9YKPKBiGwTtc8was5JRELP9jwrM+BTfc4GyTbkAonYEk4Umt3L0c+1MzHktji +oZ3niEoqodg7P3GGCrQ55m+iMO982VJ/2kCnw4miQHh/50/f/Ub0yCAgj1WiWpOb +U+DV47M0wLFeFEWzDNndSiGaCGxrs8j5T+J/IB9zEf4sB6cFhitLddVGsqfi9Uw/ +EvL16I45Bl4MqAW+Ec5rYuaCdsv2lGFItLOWSSJf42yenTYqiN38oWtwAKnrkFUE +t+Xx040oxQlZuAmSUWLjAEwAfvGXfgG/ZnSkJpVyG8Drsd3cUiiYea6dAnLO1D4/ +FNoJPLUMLDUVCPTgU2ceNszthWInHkIEo6NptRBB0GxcS/aV+dTeRWCr5G/F7J/o +COjSdV/sHdHWlI47nLybIuihKKhXIV4nAg4rsQWerpr9O2E0UkbUztXhqS6Wu472 +yNNhXvtDWSw2vtp8sBbsnpV/KeOI5i63l1Gw+Ah3iQIcBBABCAAGBQJMbruAAAoJ +EESXUni4YStdNKcQAK0Dfcd3JqPdCDerM4sJy5XmdRmT2SIq8OtrtdMaPd+aI12y +y6KZKsA5GV4FCHKfzdWRQNmDTmP8OtwFW2weFmO6Lt0aVapgv+Fjk+3eVEqs3sj1 +PthzEJJD86aqEdqFWmp1RfUWVqP1Ae3MYgBhoeomii03nr182QMDpsZrdW4W3HBq +do4LIL7Hh29KO3A5okgPE3PwWh90VV9Lm5it30Xwfgc0XkjnT5ffNpKkwUFjm5oH +HanbAsctJhsK+zJApdnU0UNjWrSLHG7eMOUy1ZTIqkeScVRKXy/Hy3Ru10dnIsiq +cO0LJvpwoqFmDXf3b7b4PRBfWTfVHUvNmQWXFXJG5iEgAw8bcV0GWXa6KF7/4fhs +QIA0t9ezrkHF7EcryC0mDv0sKv7n89OsdFftCnFXxzYRGpT+DFXBUsx2zCaUZ/9n +CDQZB9Q73y3D8YMzUWzeQtLTc2ZAPpeDMwQyIftGTr0CfY3DHje7q1R5e0R4t9tX +mLUGHmabA3XN3LBwxz02EUXlkB6RDrsmcwPVtJF9edASNtdn4Y+PpfgCTvzk99Ti +BM3oaTrwbnoE09Uap7bVPgb2VY0EdcatruV6AkO7l5MwcwEymxoMT7XPZnEgf2Fj +L44XH3oGAzSo6iMTdaXleGRgCpkwXWYhqP0Cf0JJFaEF8cheh7P7zbfy8KzgiQIc +BBABCgAGBQJKdK/oAAoJEJZVIrnUmucxoC0P/ji6sgvh33Xdl+HqnHYpEYgKuuWw +sADFVTMOHiahi6E5lDt3yGZXKlkbnkQLbWSFAx24dp/GqhY7QIcJqQ6D6ZUzwwl0 +vt0UKOyqjGSF1hkkJw+o+obvtcEmeN20TYnBQ10R2CoOUeZYB7hETgyLIuPT5RRU +1WIW1qO91+6O4oYjEjU7kVYcNoBnzV1uqmLNLOOfyZtgpu29HERGZoS05XBM4aBI +ZoJBfNPy7cA0dlGhVRAONRGYnZUmHUhSZ8DU/RVZaJjZy3k9s06WKujq6qmPTaCo +no2hi60RysNOK8T7aotnZJvJyw19jOo4a3C2Z1kYirU2PVW1WQpzqPXaw+7KqXD5 +7oDVpiw3e68psHCKY6MQMPrYCO3gH5qiBjILDed0PVHcHAMHUkzqx/VwB25miyVJ +XC31pWd+7YztmYDSjXQbFxCVYPzWYV5WLuOwL50uU3kNEW6GQA8GKPZJMDCk/HN4 +Vs9Ig7wwwDQrVQACL9sHJyh/KH3/UiyxR1uCO3w4NuuNFAYP3Xp5ZO5CF8Gj50Tl +QmEho87wVz7lRJjBrxH4MWhtDsspn24VXKXoanmp1Q2kSrbFGI40Wr2zNg+DYMQa +EOUYB0gnJip+wstqxk+a2WXdKDf8M6l8oSsM/j3IICKf78yMQW6X9QDW8uaf3675 +pXDDzVhKfCGGV4LxiQIcBBABCgAGBQJKdeuaAAoJEIy/mjIoYaeQMQcP/jrkDrR3 +oUhvncC5ydopZ/CrmqcdKI6b7YSjIIuDv8L2TWncYcVWZyj8kpHjRXr3iQp560AQ +4B8jHZQYiALxroWSYNCUbfkP4OgDb+PNNODhfuYBwXPd0iMqZQIQIbGti2Ku6hyM +wTZlQd7LPOplHqjyHAKvWl7YTpsYqdcjhDHxMy0HHnD1tt5stJSoSo+95tP2RF20 +Q3QqlW1vTb9Gdldxt9vD668eo6M3u2AlFlJh5ZscXn/k9gzDzcnHQRFJporzqZoC +wBRp+WAy/a/aLw7dR0QYDnZq89EDbXlbrw+arq2rDq9buxYfw90nPVS1t9pdWi9k +6S2f9aL5tke5QLiUilKUF0cBFW3SLgM6ceEdMqgJYObUeaYu5XVo0E/05qFTZ7Qj +VEGyP/HYDL1bPKI9SaY0ad++iGiXI+Cm3NikVz02Fs0dg7QG1ewM9S/c1WU1gL/q +BjWGU/sU4/r+8OsjaGzJHqNN451BiqKIMmQniQd6FHsg/hCwuaYd9OYH477ka209 +vY/gmnPKXm1mOf51tiBZyawnKbFGAegAs5RdmquR5hym9d5pYj2+yBQOpK1+H/p8 +eiqhl+PtI4ZHFN+NZYvpnsWE94JUD0XTspWIDqXjTRUlSICDE5BJ5ojL/ms26/XI +AEW/5BWGWQNZOVps6ZcIev7y35KPqPHmTRGKiQIcBBABCgAGBQJKeiQ4AAoJEF+O +a+CSj/r6WcgP/1yIhElNIF+/gGabGWbtCy9bggB49YtAnae8192Nu9Wj6J3qn92+ +zsGu4ZMEQ0rUCjAKU7/UX1/MdsqVX8nAx2mmi7/gRxDV7yDNjJGOmSOpOwJzkIFF +5/mvd0MlEkyN3qzt+XxLlrc10vyjcGVi4AOLoRsSnIcevDy9asod/OViW5oSyX3u +FAaOfwXiWlUjI4+03JYWXw2km6fVWqKDB3TBjxtLc8XAQLcFbGu37xj9ZgPrXw0I +ePsLQWL8IoU036MnHBnq8AnPze3lIVORwIMIuOcn+8kwC/cAtiVYa3t8Ms9Iouea +IMpBj4G+5GCYop2M+VA8CC5My5Y1/vb4QX6Vf2l0GUp3LvYgHEmcqgyRvSzEXjfg +MixvxT5sjuO/xhdMM1+Y2Z1Aw/s0O0HojVdAfIwmsNNbukAYMV8iI5msmFS/mPiO +s2gC6tk+iOjHDVOxhZKB+MlhhQPAa8WXMI1HV+dv1/fUh4cAC2shCs/x99/i0mKO +Z9NucPssvrVCzzVv64MPgN+RU8rDE3GKe3IrBqo10rTSZofxggyg5t5gC6ni8H+U +Qk4beJtR6ofGLv555Hs/IR5RkuPACuFMEbYxF3P0uJwWtM4yiD9HrDmMTnkspPAq +VwWLlWoeEbAkzS2tS62EBSQsSt1cxWZUn9RVVQm0TLItVvUKEewCq9IyiQIcBBAB +CgAGBQJKghCdAAoJEBNunPF7XTQtbEIP/Rd13+A+27G2v/6fURLJ/GHRk2+Vis35 +ZCSHsjyfdR4JEbi6xgecgLEtgmncqsK92ImwvjoaXmoeS6hykrTN+NuXRacq2bRy +SFB6LK6stERXduYwUMTd+fdvxYK4/1qCwkC+pqYMskWSzQNXspWhbx3jDwwQaNRI +R/+Zcoj5EEZ/a5jb7woEymhn4Vordl3YmH4DTYiz0CtAiuHI8fjrIfTBnTmKyrBw +/DOHTpCbqCp8KGjs6zvYjcV14TINyyEOPBc9W5qBMf+VBcDNG+mf/AJdj/xug9Ba +x6o1bQS27kGfXXKtUGIq1DMqKkDgz/hxB3Re4LAHp8rJy/+x8dwOSGufH+X8M8BL +aNcL2twQ/4FFiEDi/eJxK9aa1Yl9to/+Fkst8r61aS951MIYVGEXvTAwY/ODk7Ku +3/jcixBkDDf6oHwKWl1dnJVomfZWHbtrqqHIPSuWjYu7D4/ze4eXtwjwLcydyFpy +G9FPC8sc8AZRnv1U2sPgSIMXkeymeJSOvHhIIKJFENTevut2f6UIzc/NlP17FujD ++rFBiDh0PFoOrBWiOIse+2z/Cddp1aPYMmR4GXppSBCO+kYFIt7UHbUIzmlty4Z3 +2HBkPfgRLJm68UY9BlWl3FmqZtN8d071sgM0CsXN77Sdb3FFpyFuPLE02LJXPZML +T0SBspZl8QDviQIcBBABCgAGBQJKiXA6AAoJEJwnsxNCt1Ed08gP/AyJMS3XX/w/ +YEhzj4PLBKNsqTvlNIte7FxjxQ7sJsNDSp9bxieWR41FuCtO7yv69ozEzmnhyMhT +cx5L+IsvCDYUgQCCYsJ0xfkpe25W5242vBPXNpVf8X4nmDMzkUZJZ/AUALNl0H/z +VmMJZ/T34RDBjoZQFJggoBA46eKpl2lInW4w92DqObD4KEvDQ11ETWw1socuz0ZI +qD+T3Pj3JbrEmhTMBiqJTE8T8Dd6DNzvULjFF3MOE4dwBfXaoh0tUX8rZRwezEUP +35zT6jR7+xr6uTfUc2DTENsIB+AZtbpIvw8h6uCabLWk/G/hKB7PUv8Hk8RlkMlc +8xx4fDynMEVOZR2B3DNkVsDAgy33GtBUKDtbrwgohe77Whq5+tSaOJYRx2PR2UKH +IqDlnwIrMy35lWdJ+EHgySyylNM7H+jrHMmXrwH+hdyZGsKEvfnOi6rgDdiR1W41 +KeGDFLPF0fY9iNK2aRmdohIsxwuezsmbtm1nRgboSjhKgnQtHn0uv0Vkjs3/4q01 +1lq+tbuO9KCI0xyB2nSwf/bPIZ6Z1US6ifDCRHiznxWq5A6jCYg9LVFmw8u2zvqC +jWXQcvNWguXFQRnsDT6oVMoOhfAkpI5xHzqIEAUwglwisgpIbLinUMuR3wheJV3E +G50wd/Zxhv1/OmgJP1PxjGzH38UjN93YiQIcBBABCgAGBQJKkVRqAAoJEHhT2k1J +iBrT+EoP/1ySGzYtUfi+Y2TyzJIng2Dzk4642UdWLBARhfCOt+JMJ6FBNDYIp2Z3 +eVwciWyX+audY98Y5/x1p5EKU+eufZO5nLnxYW1ZsAOKOZxhzGXgJU9x57m9l/nH +ufNCoivuh6/SRK3AH74wrqLQEzfA6qL/h7WYg4nsFA9HSBwBw4HuZFAbLoKQx2VA +PHhzm5vdQhoWyigaAuMksJ9n7dWpJPdGFec9NsXhcsi9CApEs4G9014o6vCwlEGe +TijwsE25/otn4JtmjyX+Rn72asTW0J3qCke0/lCXhpz+7+YzoreUxzMnVDRYLGfS +6xwpVFOOCO2ikD+vN3lA9Mn1OrEkL3bg1GNPd3TJceAMt6RM83Ghn7olUpkTRd/E +Q5BM3t5GUw/O2Ph1du6av3m7GONQF/W3hUhvh2rV3DFzs56ZiHhzksf6FJyQ9G2x +NFr9GNwyBqXZPymmkbc+ElgO2KCvbkDCDjMHzTuh73BPPaxudUgFycDa9eQLgqiQ +Q/G246f7dSR4dEsBZF/JJ2Asiv0QyiZlbd6Vbe9S0JWzoiMLtrIPYoeMandMHql0 +asECn4NHLJBb+c4CiMozC9HYrw6eobS85cR0gz4L3wgy+wIkF6CAOJl5sM4/WsRK +zmo0WZQKbC/h1QXtaVBVQSwnyGzOzg459UcH+CLyEDPX/Y1Zx9KqiQIcBBABCgAG +BQJKke5PAAoJEPdYzjGNdyldEb4P/R5Fcp6jrbwL/dw+2Jp1edfz0HvIKRFtDLgS +V6ZfUBHZ5gBJosm2jlPGPuBqTZjzDIExwIl1PmCyJBmVHYnAlWZSugh3JYnToUFu +13JRxL9yYycsr+gg0aE40Nvez47MMkXbyZ37Tsssw8sBDigEMHZpxRJwLy+cgZOy +QnyQfafZzP9QGeuWf2FNOs4IEDGwhC5t/7ydm50Uxnw2Q9b0A6hV0Px6pICjOWO6 +OGPpU/VoF4zX0dsNrzSG3wAn5Qzc2xxRekoImUs0MpIsuDritbH79cj97klhQ9PV +wvpaS39j2u1yCO9KatHRaS++FNxinuUHIY/hk9vkD7erQzET44HMY0NHNJ/q6Z9O +EAfTeBlg/P+gwS99G71zXHxNMD/IRz1qj/Xp8v5p2PdJo0c6G2WbyRQ+seN4LXE1 +j1wbvROsp4XpIrtUBiE1nvdH4ZJcTSTCuuAgY4Q5uYKM/rNkhoQKSIqivZai6PUn +ZawnNDPhn+v/AeD0Rfn5l7wz4LRWjeNeHIc/UI7ccOa+wfDVRCPnCbOq0qm2YUAw +WNXZ2SVtGoAjh/9ORkkm6/HPS90L3akREujHn/WgtZ9kIg/n54AQmhh5NcHUOOOs +llvzuU2LJVJyHJ0t1EUtyWRKoGlkz5faOKwYnKHCvUdd49SS4cyTKBU3xBKfveVk +SMr9YQBiiQIcBBABCgAGBQJKoBZJAAoJEIGBI4OtKJdVeggP/0CKhnlzwGOZYJPd +UwQuF+RUigFfiBzbup39QAoTe6pPqyFN23Esl4uJi+6QeBEXpGKoLawuYP5j+T4F +XA7b8F3gM3pf6F6KtTAMLe9qHaPT1ckDUlFgYdPcM/YnpA/9Sb7zUh+7fgpoqN2p +S4bXlcorJsREYmZS4y8PKBQ0gP+VSF4VYLjTT4PwkO+l73gFQ0HSM6KQ+4rDXT/r +P3NNvQmB5ZRYof9guqMAu4uQJOT3KSF40krH46hfheNbcHkwtQfvVU5Ay0ax6e/F +HP+1IkHv/jn0EpYvA7IWQgDgejv+lym+yK/7887ksYbMySpn9iDVGfh2W1wGQi5W +hYyvewvmhl5Xo6CPL35ERWABwiYcS8Np/qhkUB8PT4AHJWur+mGLGwrcinCzhmZU +tsbaR5jL+XHz6RGscMqyJ2AiyjzPf6Gzb6MgqU1QL7J1Sk+BN9oYwVeLj/Uce5M1 +4jeUSMzBviDORu/PNkBS1GnFoW/x0+gwLtNvM887PcctdhHOYm84NMpvxVvaoTwh +CBCbTQWlii+HUh6RjNLXMP0gSQHB7vjMPqKE3wIwjP2reI8s4MjYkWO/8i/9OosF +MRqJRi0OIa2djTnRZGsCnBg+FpDWRTZS68yNE+SM8OWKCdGF6SLcQNTdhr8hmuCG +7fC9QdTF/6vTVMo3aLNs8mu3YDa4iQIcBBABCgAGBQJMXbUJAAoJEF0yjQgqqrFA +E68P/2rAVko8IV1FvrZ/FNQ6TG6OJxrc8D0IEcDMUVZGrWbJJ2oZs0tsgbAQSM97 +6HLr6CVk3uOMh/yI0NEW2itPsBNfn2DSKl74h644Ve78uW0pxdHAziLx8kUzojjl +h4tzHdn2nqQh7DzCoBkbyT5o1Q9QybOZrKABRJIKTFKaI4PIW833Sq2cVJg8ycyQ +hP5faUD+2dAS5umyOs9cyi6uTuN9/qLjDfMgOo/ACv10iwJm/5ElrmvNKRkqdGLD +3vucYrMuePCy0oHmuDeRPxMc3MnH6I1YrEP13+Q38U1gbpCi51OLxbRBh1YaETgz +0DQV1hjqHkgPk4pAGoDYzlieqV6F5UW1piRI6qDI/qfFhcnPu3kmRpmZzVeKdw4G +pCFwumNemtkkqkZEv0KROK74+1VyuKj5qxdWaLVDY2PV3XPCIED6Yc04LidzEcs/ +L9IDhDFZsy1JWuJi34lq8THpBsh+gT5klXysGd/b10qzaNVKOZG2aPHHkjetaMoF +odDes20Jv7r+0DrDG3UNRdzJunHpg27kR2nfAKmhKKxyntSzjP7bXBCpRv/QlBVx +KUqbJIjIjQxekWUdxceMFGu1RjAkP5ysPPnzObHXp99hYI05EDTx6AXhD7/Dorhc +jSExqG4QEeodniuNQVLEpkB+KBlzt9JlIUjOGKmVOowtyhe5iQIcBBABCgAGBQJM +ZbgcAAoJEDIkf7tArR+mlKsP/1gYUs02iGlm8ht7aP/xW2vnOal4YL2MRNrE3Ylt +bUBzQ07OQonRGmst5nqXCzj9kO/NJVsM1uBwyCwGzWgFnwWY8DgH6g2a2OyKmxCI +13cBrIy92IEh8+zKoUMjnoShW0QNDxvg89eD7iFVm1yM5cIogjnLaObnh2FBiVnM +b6dd1udjSh6kfYGVuiQKm5iH1Hb95kGEYedpzsYVY68lExt4DbsTMmNGZe/8L4Fr +jKBdoXqhbBwXrsjmEtxJjExwNrXSv0P3XqefTc4/GuWEEevDJDCQHWBHtIrBaW8/ +kYaBUMuUBtC484/lfjU+T9ajHUuHvzmKTK43Zr385YhesxIFSMLnBUuK0fIjxIuo +bKqcXaVOFvvPzXnVcdJgOA+rw9G6H5nthdLWKsWhNapTCQssxLy7leJBDKOHuYrX +L28eIsFmW65izjaY6cKLKwT0/5AUueAEL7Sxo7hwLV7x9jyxVGDLxMkRv8VozLi9 +FaRxieVF5R6m8TM26sWlZB76rOcz0n0BWVVYDouFgIntxyvgOTA7clWIx2699Rlw +S70wdnoy00c5Q5o8CgARLuVDV1bcswyKWRhyFsh8rQtKDs5Phdh8ZjQs0gt7LePQ +BCGlVg7DnybQWZUnw1z32JAraU/HZZUSvL6VykDuwPGKPQzCigh/N9HDeGNsmti+ +7xeHiQIcBBMBCAAGBQJMX6psAAoJEMJW+9UAIh6Tm9AP/iIvvU17AKPXF/OahZkF +jkkX5GDzTIZYNQH/Wy18Z6ZlCTRuQaRAC8J5ZsIlBCLZH4IVzl5sjNldIcsX54j3 +JIVBzwwuGZ00Z6V/Mdw0go1KPORdPZsc6D8rs/th+KDyBeYk8+YgMA3jgtDO4yQm +nhZBzxUg36uBJhA+eBNAv6QjCeYUEdqlDJlo2/O4CqP2A3PdnGR0hHJVoqsUEeAx +vO8fBKx2NYsdkfpCZhkMhQIu3rpPP7Y/ugXi2/XFJKRWctiTDzebvcCigQ9w2QvW +5UkRjed9+tSoFV5H/up9vEE2/vardNRPdxFToyN0JsIdh8Z2XUVwl5Wgiy0pALYu +I1WoW0aVOSampPbTrwSLhVthVgZkErwar7liAC/79LmdUaJRj3PSa7eqiLs2S344 +SrK65EEEnWb/1Sqnj6Si+w4BYBQEEapjGxWcxLLrbkA8UAWYBnUSO9sA6I6RNE1G +qtn5IMNrZ9f3owfvqIbCRmXVfqwsp9iPzsGh/Kt+YWbvRQDb1MAXmgmFZr1/Y35j +6scNvNVyEB/rxP7y2y1kS2wZNWhqOhpqb6vd/nBf/mLu0piIY27tLba1Y4FTMHZr +Yum+LF+udhP5EA3uc5Gl5erS38b+y5LarkT2BfFLXQ86Q97jfNiORRl03XyCA4mB ++LxRkGBWsGE1ElxW8CTdmZLqiQI3BBMBCAAhAhsDAh4BAheABQsJCAcDBRUKCQgL +BRYCAwEABQJKOLWMAAoJEDkUtTL0376Z4M4QAKFCJ5bLWmquC5s/qBgph/mzzfGF +fdT4vT838+zfd8GhrltL5OtxRGelxm+wuPgpbWRCmwLzOeO4F5xo3B3R7ortgau+ +/2svKBvoUVt7HIC9ui++UHpdtk2GXh2e57MKStccAL914+hJCruq8LA0Kaq95oy6 +PapGb9CyAonyZini3JFGXfgTNL025N8E1lw3w34TbmH8URC1rHRNJW+F7Vo36ZSs +y+XJ4NHaScHjkDwYOAFGlndSaTP212r0ZFMuGanOsfOumAOlDc1VYTVn1l5bdDsq +BWOHq0/U3wMQqbAOTXHXoyt6eTfB4zUSXdaNK/IZ2UF0v5L9cCJwWqtLv6iuW8Ow +8Zz5fG8unOPFaLw8bcsvrsWBob9C0y4x4gHyjxjcOoz5fbYa0PLOo49GNaqevEDm +lgiusJzXUxYa6U2UFpMQWByHn+xWpYVI1uv8KvO8Stoy6L2nmVtc4cNFmjokW91B +oQIT5+185QqTNl4B4DnGT8/gNkw1UNFIGxDB1aIGIV3o4KsxaVBZj8faSpxqCHYr +APTSm6FajWB/par5B25Yf0o4zTsWz2uSbBxmSUwRmU14dhfulGZNxiE2SBlVIo6+ +e78dselfhirIyKHW7nA6Jkj0AIdVHXrTrxyJ6tlpQoNU90XVIoNSLZvzKbsY477u +wCfhR0T9/9CjlX5qiQIcBBABCAAGBQJMb/igAAoJEJ0LXlse7I8OORoQANSszCMo +OuHP5ptAHXhGHbyeTdncU+Nn587IyAUQnzcXpJ8y9UhjTCHUnsBaao0CREkYsuY/ +iaoldz2/S5D9DunQGr51CD+PVBx/bx5q+cWFbwV3Iv/f8wfVl/T90TIlpBKSNVS1 +mNExfAtXTCoXvHmCQPdd6d9ZSXixFYHBqsO2HFafeASCF8ix9aRvJOOwum91/u2f +tMj4Yd/WVeGm4Dl1hBtrxe2ssfncNPz6PycGMFzj4q/YKViFERxvYQEBnqpLD2Rq +l1uQu2+WRSMw3D9OegMxJiX08uqKhIOzTyrGWiSz8cg15+XwoDws6Luo7aCDOLNb +12nIyTOQGxOpg2sQfFso4Uu12Pllm4+iOCn+/M+752/WdVzBtYci7soj3CQ1K0L7 +u9S9WtlU5opFHX/8Csb4tARO8P+ud6mvOCHuihuJ7mYra7uvTBnUMu54U8w66Xbh +jrKKuEpCw88S4zVDrjKhxaU+GBG4GrvuJ5V39eq4q0hgOt6r5gvTZ8IU4usfZwzD +goP/5RBBBAYcEDKrIu4R8RiRbMkMJvY3+KRF6NeBdSiVRrodpz+2tp7rDPLPbwFw +2SsSZod79/1kV9JJNt6ywitOO9Z6C1yv9oqAYz6AidqVdJDzVR/OApatBSZVsV4i +8Ena6qi2PTvXRC0BcGyP9CkdwDN6v/beBmfuiQIcBBIBCAAGBQJMcBwhAAoJEOSv +68YbtLKJvtcQAI3gkPGSUOVcoa1/lsgSoyeiVnJopCOcoR1Iyv+eQf3OHPv9sEGb +CQdWTJWMhbxGbkm7L3XZo2grtx37J5Xyphpdpl32Z4mZeP+2SwPO3HHVq459tMlK +DpLecgOvR8GTcMtdWBPD1DY9Jj500lXwukLSsqGpV7/1sauBmC4o5VYJ7MgHqZtn +dYGgLGN+zGIoR7WzLwQ/OiQ1vVxPp1F2mJTjKQH/akUHa58Ahxknt4WLyOCu0PBA +wW1AK63ZWKNbwQzEd6WxpxtJSyWym0bninVaX+OT/WhTUg02J8JS26PNMtzx5rja +col3YTerOtgSTnOFEYh6DrfWe0m+wdAcBsTJQqRwTj5kGfjNiMKyfQnUj7dLdtcT +Yi7tgL/zsVZ0F+Ur6ZSuTKtx1NE0meVLv4c4a6Kbq0A4my96emLjJ6g7Mpd1KO9S +Fq9bKDkOYym3t2ceurcPP5Vaym+PllIIWFSffmW3fP0ejIWX8dQG8+pU5rr5w4dA +ccWSA2bN3zqDHQecH9PrgUyY4qSDaoXDy69soaPT8cTLANQNlNK7prbxl8ls0P7m +YXlRzE0YBAp0HUjMySs5mfytELTsTj+mbj0wETXHMK7K8aCIV4zg/sSd073v8woK +EbJcJ45I0gbXCIEuFqKpDciMoQWJSKG7LvBmSRBWLfEoWaFoPMZFcL9IiQIcBBAB +CgAGBQJMdCrMAAoJEKl6dwK6+R71jK8P/2sO+6JaB3QZl+4pp5c2eVCbImQ6f/8o +kmzOzQy6jOjkX7THpErPNSzzaXYpPrYM3U9A/42RqhcyFGh/N8A1h1WQI0tvsqc2 +6xdJ1r+57EA2RKPm3vF/zTCQmiULGAw20xsKI4iaHWuifKhoWpKJqs7EeAyY56cF +bSdl+73TsRB2jAG3cT7oz9ExxDVwBcKZ47d2sTNCJaRNWN43n7CAkcI87MKKOGyD +ehhVCJ82O9gDZ7O+bN05Su5hUHjbtLdNxeC+JF2FFWCf4S+eWXywO1HNGnfclFco +Ec6u9w9QLKW0iNRk516a4sq4pdoHMQt5I9uq11hQr4LiGRJaS/G861gleZ3oEsE+ +VBm7qWx3Pl2Srqt73NHgLSL73lsmKoIC9TXPVeXeRr9aKzS9U/web3Ybg8dH8m3I +ZfJPHUyS1P2QAnnNQTAcB2c27layOYCP+13fBF2swABonUyGM84eocQWlY/LazWu +Ksmc5k3gHKunUm2ORibqyvfRtCGd3cp0Z2sBOTmNUNDMyhMiY0iiC95xRObltQwD +fYVoBl16wRgecscBqgjk2diqUsuGluFt90//qu0yGBEiWLlk074I2MHF7nlhk4C1 +/73hg/Fa4Wr2F4lwMWzlDw7bExaO9hEx+/E1yEWq4zyFEtexU6NqveMb/VkD5WbF +d2Hws08SsS9RiQIcBBABAgAGBQJMduRcAAoJEK8ig6p24qx7R7QQALZco3JAKguY +GvXwLItHbHQMWsGXFUKxchI2qdHfVqw5i7QafS16kqE8IkXszWYs/p3Mqm8bZ/8i +/nW5/fuy+oDxSZUH60COZaV8eXhm26OsOELN6n/TZbwjWqVmr6PLCbACX3NWCGG1 +s4a3SWJhOhYP+4xxoT4cyAiitid2Pah1FYdOM0K1PpD2n9ftWT3gr0smOlLtxEVu +wjC0IIinysOK2dVyfm17lhF0ebiJJde/Sglkt0V+Q48YXWqM5rIr4emKAF+gqksn +L4QCyNn0CELjfIFhYep1LhWRpYR3yh2BdOB3+Kv/8V22xwcuj2JAqUebI8o1rzrI +meTLx2vyWLKitTQGoh3xuMwiCWPinQ7vefV9iEYJUdeyyWpcfIP0wSX1kaVG0msW +FdPlzCr0F/Zt03vU2zvb1xnbtSXw7Abdrko9TxaXUV9D6JKYotYiTIbsb2pvR1XL +eY5FhiOPCB7Wv18ah5XEvSXCw+m0+fi0GPF2cJvI7Cj9Nkjmqw6wOrJ3dUkhHEXo +mjog+3fTV0UYcadih9qXHxp+pynvbQZa9+frmxM9MY47scHWrQxecv8ZHytd45tN +X662w80ze3hAuh5wfFyle2ukSkDmjbiqj/34TkYPA0sbislohoazQWff+ydQXb0L +KObzP4QsbV2TteN77opfND6V1RwtaSN8iQIcBBABCgAGBQJMfgORAAoJEHUatd2n +lnnM0hwP/063s6T+cRn92bdS1jNEe5cDN6+WbXLNKUodlvjOC1jSGNu1Uq4QYSAq +Jlvq2nfs0lVBSD5Cd8ZWgGkMuJgr6OAVh6CWL1euFeJbCgREZdt4FMD50h0W51eN +iScfF8IT0XeglQsBDm7UtMcgmV3AYkoiETcxjTS2eZzktTFvVqqfeVbDBjFyGsEN +ymSGaMxaD/lmqNQ15EVsK1bJQALwOvnR75kcBEf+Fej/EpqCRTaSchvgJaGG56+b +OIDC1p0elU4VysDGX2SswYWmP7pilhK2Bfe4g4KpHdMxyjLJZlNafJv0h7t9Mw0b +mdYZmw0OhkSV6MWXFniskW1qdSJ02bdyevZD9AR68XhDM1F/ZwCOZ0E/dKHitrPs +IF/An+YlS0vsSvxcRmYdqmm2TTex+ijAB9SBL1Q8awCXFdwNmKseCB1whRpXzmrw +Mnd67fd3nSC5RSRVBgDOwaYtv4lLFGxltb4DHLpMxR7QdsoIPmQ3qfmuMp/skAv0 +82nxNKo9sTLpv/f/VnAnaOlkeE2hf7ae6XswXVn0EA2GSLmkgo2Cr6n1Qwbbzb7V +OYRjfTKhUesQrH96JoVwzDz3gwwUpB/S6kqdwPayzNgHclV1CIjOW+sZt8/hJZfS +1rucX8BJBiKF4s5O+aaMrjvOn+VdERlOadr8RPxVq6gZqWh4cxu+iQIcBBMBCAAG +BQJMmNJAAAoJEE+fbVUO1hIqf/gP/jgBiy/6OCg53hSorIbHmf6GlCGfBN8XQlo5 +dZbeO2wL1DKDPOrS1cscTzI17KiyqcuK6vVLpAZYIHcxsF7V+K8jnn6lMFXg+/HB +8AlI6jOaxfWVNp/piFQ2MGyi0A0Km2bE0Tll5Gxgxv+4mlnxR9oA9yBe+UdIuasz +IHHRHUrR5pidpvl4AD4lBrRNYQymkvl2cmOt/IXnn1akNcPDHRs+Oe6Yh6Uwf9UH +sVW0xy8AGRBZJV3ApoNicTKMYDhIv4E/Kqwj+IkoHp/iZ56HNY59dD44n1yFelz/ +HUz8sZpnOPUwlmEimb/9uzLyyvK+zrQ1/tAi9xI2YX1p51C08yQmR1GZCHE1P5kb +qw1Omim9nzRG/FFxntSqRPKTm7X3HL36l55fKFTwmveRRcJrg0ZumiRwhqQ+e+KA +CxH12trtxpxmQsS14aB81kxxdv5iHlzyHjX2dgJMBysi3yQLbh2mV/Mi+FSiPX7D +B8/+wFUigEdFaY1LI9XRZPvgF0h3sCvb8f97YKGP2fp2IB4oI7KeH02DGiZTH3uH +UUJMg1mvIyLl013ksB33ycVuFQzKTOk1Q+1182rEW9LyBn0CCm2xyFzsBQdo0PMB +snHvUTEssnZwm9uxXvkXiDVt6DMz1SdwDrvtFzOQbCVJO/+fvZV8VRIRfc82xe6q +fmXqegOqiQIcBBABCAAGBQJMpYF4AAoJEJwxUDxthmOWnq0P/joXYMozD2ahMpgc +GF6tyAQPv10zMbB2XPaDgVGjp2IuWZF7AYrfo51gV8rpZ42CSWZvNdIxZ8e5j0ZJ +pxedCeS8PcFsFCMMMJ0+GFRck8XFH/nvThj9YLzRJ9J1Or6/bS3qxwGiKr/xF+o7 +HCi9KNnGKigSlKiKy5nOGsncdBti8SvF39+/OAsF5EHLlHjA0+BZd01kp34IL7yS +gQ48xdm5FIsZ06EnhCnBgEZIxJsW1OXMWhlX/+pq0xRSHiRfq0o3A1LJb4Kl7hTK +dWDPwUe0EfELXL7rtiiAId0qmdJzZm34+cTkIjCZlZfVVl+Xd/OcJqbZYvQM4NDM +3Ld1rC5CnzoY9iK7Do9dQCMnhuoEGXOeELof5oibxroE1n4O+s3Ro0bc2sKhIaSx +CBsPzfIKY+z03NPTwCQiLft4WJPsIRl8hMy99ysuxudtZixISMcgI/mTscGfpdga +nJJ8TIN6qWihrNpHWCiAOO6Tdovp9M/yzGDR3/4Ggs04uYAtqeLATz4t7Yph6Hli +F9p76+10IMq1Dvx1F+RM/IVW/7nYs0eTZHWSc+HYqBie/rjh9vPN4/DKqFuBy2rR +Wh1HaeyvGDoGsgkSd62OYkyhqzJgqxNAjekyhTO6H2rqPw69bc06invvFKyofBac +3Rk4/C2gpdnFPyz/J4asuhZzQ84EiQIcBBABCgAGBQJMrPZkAAoJEAbqoGbjl4Mv +E+wQAIeJl9e+9nyNvPaErT1fhGBUIF6Yq0nu+e+2au8dJpkCdfehKMtWjYNhWSaQ +QYkwepV7pm0ZX0TCfDlE1q4Wh5bdTXrTCbsP/qyip9axPl3vMdXqjxVScMCb8mki +k2PokmbhtckjtFnw0wtBNLf1ZJnpH30AdNXMeG8mc20pP+7Y/07dWPOBbN+TwBgX +gnxz1bWsfolxjOxjU1LynPKa2TqjkucSnA00xrvi6+pVNtN7GRXG5YYzc7ZX2qNP +5apGt9Kbz5hkKTFGGVjb064wNKLheHCrgc9INoUFZHcSBSrU4VNRtz3yt0A+E1J+ +EsjgiQ3KxyokDzkpHiqrErFy6SOxXX1/OPmg1J0lBE7UYCL5pVVriVOWfxWzrfLZ +kN8f8uMJzstHX4JsM+CcXQ9jXi7KN543op4jIs61T5wKcWncvNLBI7L3aF+mwWi2 +fODDAsJFWwxwOsEpp4im5rnsQwOSKNHO18kgrgUNgEhAqisbckbv0PeIsF3Oxo5Q ++iKHLF3rOxH/XgrVLvBz9PXluPKnLbBmEqTTCuHIqM2oYWCL5cHcCIUPKzDcfBMB +X1ShHrOwML0zkufKI/92TXEGUy4Jjy7K6xfUQfjSMbfQd0Sg4hLuqSZcLDElobMV +mAOnL2dKOYsh+GiWey9QKS/MO4xXjYagetIffkEshjWyzASLiQIcBBABCgAGBQJM +y+bHAAoJEEsHdyOSnULDtw4QAKiKsOcLWWBYGUlOAwQ7IicfwTsU35fvD2yTq7Km +xqo0eK/QhLj1SQdZMvVXHGmLvYQx/fxOiEomPs7npga8acbnP4WNaXrtn4uaL2+2 +8Gc/NvCoRAvX87j6hBGXgBMdDJ3DOtMlw6vusAoJ9t8RPAXhw9heA+m2+3b1nAhe +cLwMgsMxv1C+dLqgOflLBSClrPxQ8LpSyi7I+X5wuQ65z7MrpXI5cEszKNMKHHtz +YRkCkmTZaOSs6zEeURsL2zuUHaY8DYM9906ZmG9IG7UDIeCvCMWPAIjRw/+MjIm2 +PDlGNd+ZIPib2lFtoN/iG9ztN83V+iAjCMbQMkqo0YzTbMAz4VnNs8urgCtU6ILB +sTpEKYA5XPJ0Bqvwa2BqWIK2wfy3JkdGFjdBIDD7FdznjTgt2FhiqNy3jQjS2vrv +LsUm05uxkZmT/EHnsVuEQNLrpQSAG5vcIl90w+tJZFCcS2SFGQPj5un1hoiGjKb6 +BmfHSvHONaL1VDqID69TRhC8sHhIUafdNFKP5hzrPTDW0E38rE/9WrctZpwsO5LY +FOhKizAZ4mZt2o9W7CEj6VmGTZYj5r4u6v1uJGEWNThbEa0zOb+o5xndmlsQi5vg +yE3VmIna3Vr+Gb4Uy6JxYldIYGkjTQLGG7TsFFyz8dpJaQaPdmigTyCZa46F1tje +v9YmiQIcBBABCAAGBQJMzHE2AAoJECUFM8yim3ZP+YkQALczG9nlWuwrx8vT98ES +/7Ct4jY1x023abUXNH1+JjkLJXjAuGp1IfyKDHtz+S8Dg0W0uayz+KU+0o4FnGb+ +rvgk1Losm27vmg7B6ujvN0OUoeWwEGt7/gfa60io5CSoUbBfUpS0hwQB/vrMCiqb +10MFztllUfbsTEmZZRCh3qerkRp3I8J+eEF8i+uUleCtJGi3MHaYdfhVSJfALPsG +SQA3Tzr35e1vIm8qD8dvbmddUVbOmhNL4hmLhLB2stWhyN3DxZhgPeQcdqBxD/cD +0z0sGAz/c59Q06Pf0HCbzyVWIAXgDpe2p8SH2Q3Ypa+V3wI9UrAmCjTu6kwEgEMa +Ts53gLr5hLt6B+Q/Ln8nZouTNUeGxa/2SmQMQOMXUgF8JQ6/YjfMz7GdQwItgkiZ +UIFqedRBUey+Khs5Stf/How6kbfXcpQb8APvnF7K62V5CwhjgnlRyHGjk0eBUWMw +AID9YJhBht4yCXuXnASHLPpiju/A6ZWse3A3zFuArS+0jI+b5f/uVxe9afVa3XUb +bSuC8lQ9Fj7ox7GHLWZVK18Kc+vBA6BXWPb05zOeOFZgNmU5YVNt3wn8bPW2ho65 +pFcTRPWubmXUW02FkJmdoY1hPBX3oahozIBVTBqcCGxl6Pat7118ixBBlCh4zzzr +IJssYFxVsulctmtUWiTrnq1ViQIcBBABCAAGBQJMZ82aAAoJED0Hh6qvbGHd8dYQ +AKfJ87Su4gKvVMD1jFLFDPOEQ4EjSv5GSZv4CIqXbCXwa4b5K9U4f5x74lOmWzJO +udClPUGlqj4WyNam9IHr6Jh1O/TcN7N7vNSyxVTAunIUO7zz32i7MMz3iVGlBSVE +/mbFBo/h6nB/QfuloOfP8r4j7ZquxMo12vPd+OB8fwE/KTtOPmySu9cRPT1Mm9Dl +yKLDLZdZfgUywM+cKE3Al/ZD4M6q06ZEoVSWudak2mZGtbrhp1VgaEtdRwvx9VJN +rO53DxK1IeKk5tddab8B36KfeRmiTdvVSeMLMF23pXA9DXF3Sphl6seiNkdzhUSd +FRl7AQP54ONpjGfDS8SvB1q+2uwuDaVO/6rH4wT2UWN0WAbZpzEaArB1QFgpQ2aG +VPI28NrIFg46N72vlk1dnEb9GGppmIZCRKumYLZxHdSxhJzeBVLDddnDc8YjJvF+ +uRNQuv2vAndfvtcs0R1IAWcIbVABxh1LhyijHlnO9zz4f6FGlPeTC3BEuTiWOupL +4YiM9AOTPRgXma2tIZKwFfoTdffepAbwJ/WQnV93+w8qe7IpO3JlNLkuOTW3XqA1 +lTV+cMuYNltfpz9XKX5mLt2/hPikt2KXB5EDxDNAU1xQQ0ABuSt0F/SpUaQqQ8CT +0IEaU+Hfly922NUfyZig3Ehoj0qXPW7wiWYnmmrpQ45BiQIcBBABCgAGBQJOL/O1 +AAoJEG5gi2N9iWfpq08P/jQeO38hiLALiF+BPj7qB90v3/BCeg4wTYCgHXqc6jX2 +R2bv0Xjf1YbEnrrzg1z7x6ADG2/6S5QBp0HEHbXl+759SDKPM8pyGRs3VtQBznkM +0T1K1dXu0JvA7o9QS3KfOesOAkeZbzRgbbvWel6+gnQKek2VMo0vWMZl7sG9ZeWM +NJejasK6YZaPR7Bu83h/ECtGVxhHGBvTU0HfmIhr3kIqgYfzRRobom7SkfH8xRO9 +THuCc7CHwXtV0++X+ksUWGNwkGXACKdk7BcS/HBckYqjPXYzTklPD6P2aH0Zdhke +FroYkYOO2RvB06XTg7MxzwC8ZmvxCvfWCct+dCF3zA1rdqAM2mGQgVeFoKr+9EZE +nlDcAeTA3Dz0gB4aG5PJIi4sArqldc15V4ab1AjMdEe7LU43uqOAT0Xvjx59OqS5 +0/0qJR4ORqJ9zC8O9njgszlsWYvJ97tsjzpQhfIcoELa7vlPHJ0Q0yfNs09pXaK2 +BFh51EyuvlSGF6meILZIiffOcJnIVYLn500NGlRa0VuFneQQifO2QAL0cW/55BFz +YPtBU+PtCAl7T0o2MSI9Ux3jq4Fm6Y/G92lqY2iNKUVZ3i6z9RoVbSUj3S3Ys4wk +XAsNJlf8utppDooImviZ6WdF7YECNo3JTZu8w/J5XWYG29LI+hYgf16A4J/21J+1 +iQIcBBABCAAGBQJOMD9IAAoJELMRjO+K6o/uKOYQAPqLrrEywMusJzw2uilv4qMR +lxZgY76AJyRg6LRtuoelmV2dG8JJWvw6gqHR2qwTNYIB8/kZidbbuhjgJQKf5XpC +7hak0Qr87dSiTOzj21Wk2twVrT7XSDTM98NdyYtjKKOi2sO6isU7N4MMVCqDxwrJ +aNP/TMXlSQ9ZPBw93uur6ocGJDNq030/hIJlFX1BBlgDpeOfClP1KatF4efNAEFU +UsczY1bWvejpfcaMFSK9zMe8djik8CXvscUihEnz7iz8ZeWzC5GmFNQo9qI1zZSJ +fbDvWJBEY/3jsZdB30Rs3eq8wlp44RCzgmSnuPQpP5ZUVz5UJ9w4kwOZAaQcrMGr +Br2Ny30Jj1zebHa4QS0BUr8G2/p8P+nBztSlobcS0A8Z9Dnetxk5QYz9ok+m+n2h +1zCRKKd3gJeafZn3un8FZDqZyL+OJi9dGsKVTqCDvXyvKAq9Xz0Pjw+xxgR46ke2 +XOGeBVb7FMnoS6SzTWX6EsXzr6TLjTrz7vux0ELSAVxgPeR0BaBoRWhtn9lRk+yz +PjcBk6cLeTqu4Lq9FU+hwIrR18U30mZ/9CtIgchIY2Vi9JNwSAnL4OApAZQLY7Le +HB5AsFrACisXV1KGVDWpGQjjYZSrpwAXcUOZyCTbj4EE35ESAnh4q9ZxxiPrY72V +aMjddDjzp4gJy1fwDuRziQQcBBABAgAGBQJOMGgOAAoJEFDDY006KRz5PfIgALvx +FXsSdsaLs3RmSOeT9gbNLOpc+zrrNoOIW914iwaqO6Vb9yOrU92jshcOfeGd+QTX +Mw4etmflHqzvGgH0cBGfPrjSsNiqUuo+jGzfV0HAKkWAjYwm4kp6B8yMlloGR/1P +AyvnNcB5il+x+qB3vrMHCNnFcTh/r/I5cjMdIBrAe8bOCVAify1EDE6XLMQEPFTd +27G242PNgDuquyJj+FuC5Ac+U5HBc/wv4/PJvQLIndFUEbsI4hn2h2iZpiSakRic +5EukNnYtNUJYsGQy9HNem9nJx/lAn256vqeYduC+KQjP4TbRW4bDLhAhDfjEKs9V +Lh/j9CnZ18HkmmB2FODDf7tDeM+LKroge2Rpg2L4yU7lq9GYc4PWpWQWXq6f2CC+ +ATf/Fczrb9f3K+tp6nqhNyKw0X9voAJTISb/w+QS13G6MB+tfKAfdNhOeLf8d7Gn +lBW9NOAs0Uv/twakSyjNWp3JhtHd+k8D2iWbF6bCbEK8r3LXfpjEuk0RHVP9cMiw +oS8fC6nEP475HrBfBaAaGUdO0holfxJ5Ne3nK8xSCtg4R+9CY/lvNAtJkAHwvfLj +4kJPwmNOPJjhGr2XaMX9AW3MnJ8GBIJfBCzIkeLVPhxCN9U5zT9kzvUqH3NWebIt +nMIYeYS2SaoLTUv++Wr09xb8FQZurrDD1hngGTzTx8woIQ/SUw8coYCucW6WXy0m +a0DZ24xH3CCTRGdQn8+5LEga3T+NHLbamAaP/IXgEIzaNc/donlviU2uxSz+c0/r +Bcy0qD6MUqg4QuhoIA756B/ixhgLBsVH3fytUV+AGYGQjvjQoSoU5ONzy2vf8tky +AqJX3DRBFD7wRI3iSRa5yVP/ZBfyBNxEJ8UR8118LjRYhLD4LbLopvJJPfLUqPdC +8NVI6MhUD8wnfECM2RpA1VdQSNRH+EjGmQDxfxaSUBk3yu1VAAfcwO7/u/V7L/u2 +xVsmtSdIrGxjh5gLok0jPYwu6Afq2upj5Vq1JADqkiQ9+KxJg50sMhQYtfrVpeze +LEkIm6uGJC5pzoCBbDsU3RqPXhscWl5wBpxtUxIW5vLKEnBydvpgU2XPFFR3V6zT +vBTRW0ls3x+3M48F/j9nagyu8NNZaKnUFyQ0qiDPcYsr6WMl9ZQ6Pj0c9/oWsEC1 +NnUbk7AzPWlfR1/O8EfqbdvbdN89EYcDPzuRbexwOK7kvtN22EgN+8Hewv4qqaLC +EAkvy8uxTf12JY+ttk3H+D1LCL1Sv2JoQZROqdXqxCM7GAGkOSKOTTD6awk4ObBd +fGsWmZVc2t/tes7WPQ+92q/Udn/q3oxppSQNu9a6RF1tAxZuzbJ7U+I1aqtwdWI7 +uTcBHyl4fEFLITOioTGJAhwEEAEKAAYFAk4wn+YACgkQOpNhlsCV2UEShg//RE8b +A4gzmJIwoRhHiRAXSjMF73eyXgIVvv4PfFYVxIsv1y7CYxsro1IGRad/sCvJBUrB +lRTcPKtuphbOob7spjnQGFtaRIAhpg3w5ruxOPgi7B5laFj3zDVRPSQZx5fyP5Cm +u4grNBXGNUsnnjiE9XU6IaopE57yvJloNcSkleom5d35a+EgqK93qn2z7Qjwj089 +qepctHTcE7D33M8YEoKqGclsrUSN2jyWQC86Jc1eBpzK59+9qxpQR5gLWupmAK8P +HANmjYebkO1Q1LY04TJMqhkfSZT+eO06/cI6yF80SIuYBv8EH0bSXE08ehoXgTyU +gnu8O193J/6dcMm76FETCLT61/Z3Ea/XPQ7BRLhsRm7GJGZG/vA2NidH0ts43tfN +1hQDLR3/YuQM0Kdf+8SEFEynCX1C3hFE6uB03qX8/wplVc/i2fmUnXuroBcaSEYp +7tnptC8HsIH8gm3QTFxak1+2Tqh5/QnIc5Xi2gTNuR3KEh8Pnr0RHj5+BkDEg1os +h6IvIPzzSZpRM4bos+9mloZwh+YFwVpyepRtJtUd3kgJpExpvGRjJ/hZxjut46au +OqnXaJesSxo1gveaJ1BLPEb5zIV/5a+HaDyoyGCZwZ6/jvAETyLd7NtyrorFkcTm +xfDfzEXR64UK1epVjLHqGH8NpgQ+ZkpmSHdp96mJAhwEEAECAAYFAk4xCP4ACgkQ +aMB4voj4DNqMNhAAzCzO7ZN32s1ntRcLnZx00j83Bb+2BDFbrAOzdfQj9ynk1+KS +OaXcL8RZLlrJBcC9WvD0fo8+jADi9AhmpaNstP8J5eIKDJI9UtP12lEMKkVbWRm/ +0g3QPyAkABQHCqMDD0cLeI8gbi1jPRoWMKkxAQP3KL//jlHj2S4nOTuK6nfIcT3H +JKS5v3KpvoMfcWBLg8IY+Yj52RASFY2Qpbai8/feEpn993xJ7bxLP8kc4dCDap9P +FNAa5D0mSrnMotgZ+tI2sB6CszGrjvoJmSVYywuEY6lFU1J8OvOpRpnXytks1Nl0 +y2qXoHDZKA4QYP+kNiKZR7wdVoR4oUiHSKIaiV/KT7QilRi4Qq2Xh77tn1Rejy9F +V1bGto7/ogtxpuQvL+UY5slQGVu5ZzvkJyzPzynFtYWyhum1iF2uTHjMEDIyDqR3 +U/rJTbUC7DJdkejdgwt8krcuPyTLmAvVkCRsSpISbpHFLLWDA29o9XqEc2zlN+VE +4jLauCBVBYKcyYZDnkFGLegiTxin9aQrcVxssZFQpnGME46cDOe8q2Qi+4l56Osd +h9JcwLazJl4zyIf0KJshrscAS5wIlESFs1AtC0F23UOcC4y3N8PFjVTqGabIHVMb +qSg1BcBkUNHbRD4PTnUh4S6HJzi/mFduT6daJkas3KRw0qvudGnDdB6ThgaJAhwE +EwEKAAYFAk4152YACgkQ0BeMdn0GnubxvA//XCMkLuAdDIjB2epksnsAY31n5Okg +S9boIWlmtRIRFfyfm98ofagniJuSj+xnaacLPh35IvClg/zVErylfWRmgN2+xBwl +My+vVOg7LtCL6tIYHm5CD8CCVtZoLrN0E2rA77IwXzi1zpfA39ROwXm2H16KeUYh +ipxbI2drktcFOKXSWoOCO4SqmhZvqYUmJ6PM+ph415gBYSlC/FZWFcdI5RF136+J +/e+MdCFgQmRLRBFv4f12IIBlnksTZDk2MKCQeMzA72gPLX7/Ue9Q4NuertcQ+BZS +wZyy7JsnAm9nCPIkN8FG5Zcd1pbaBRBMxjrK8uAAIQoCIMSQmFt4HOx9dOvgp2dU +3+xds64VmIpx1py5uzYboBcScmfEXJGnStGpgLKuDwG5y30ES0i58J4yMbnkAAqP +ivr4zQckNDFBAJ8o+I4l9C4SDdnSyc55bAs+pqT4GBPZ98GdqO06QaXrdJBU7v2/ +Y0GEoVnN1YRGUrVc4KKsSN8xY/I5eqNPIYMmEMfyabFuVhksbfsQu5N8AAjejK9K +XrsWPKu8DUpEOYF2e12Zz2xS7xGRQjSA3oCAU1ssWzLb6eoIbn6W6dNBJbxi9g9e +Ca69I0kdypyUoIt+KIccyZ48DltA8a77+PU4cBzCBUbqordWk4VXbs8e0Yl3RTp1 +jmuco/QyKiCfqlqJAhwEEAEIAAYFAk42fwkACgkQuzpoAYZJqgYbrQ/8DBtXI3+c +LDwxJHbJGOJnx6bECyokQBYay+P0dGOYpcLTWnPF1mAr4Yd+T/CkJq989dv3lPxM +dOrHGLkQH5K1o7P8QUyqTxJUQ61cpRgD96fgZ8FsXZDNZAt8x8Hzpk/kj4TTu1SQ +rl8p1WhwrorxZ7ZBVXoCoyOEd3Y9UK7wjX/MsWB8dDL/X16ovwd0WYTGPv78Be28 +FmnCwa3/PkvK6sBH/bJcw/F1KgZaF7Knmbyqtj/iZgIgmJrl0zl5Je/d0DADtUKM +pMYuP7sSPLcvFqicVPmGd9mBQ277Pk27gdxhHZCZDes3vm3tDXzebHz9aDxnwRmS +lNPLGsRiJc76cVUm9Bzvms3wh2jdKwTK2NCq/iEYRx0CLRCrR5Alsfd4eXzG597o +WO8yF/2SHDikzGXpnIbb2nRfV0i9tMDtoN82gLNHsDnSFIDuKggWrdDDKUx+tzaV +2TgQitP+ZzBX84hRl9IzWLAA8VwXIu9hTpMCVmz4MsvN9Zj5KTWFDmpd7LoeLuA7 +LOXRf3Sy7BUIpYVt+bEuOftDq7JIxHQCc223pIiF6CRph8ihF7/6CJ5pfkS4H7jM ++zxAfg6ASUMgswnLtsgJdzkSkKussyCtSfZISQHOwpqiTXWsO5G56GekNFWr9Wd5 +3vODYbH5oStWfalRT0CJujB/KxcD1YtCDvOJAhwEEAEKAAYFAk49SeMACgkQJuPI +dadEIO8G8RAAzzwFC8bi2ODL8tldlnyZ7xl476AJa0+MuJ8P6lGsYPjhnt6Eo6Ub +XtI/XxTKdqRQGr9PQ7PHxCXFSdQ/DxzfjP31cDxjGDHr2CppyioTSv8kTiGvsq+z +sQwblh2Pp/3Y0lHhV41HM4vgUnAmHyFxBkfw7WhxN6YoE+XjIL+9v9d7u/+wbJKa +XDlJ9GUvkQQHJ/Ek+wwPU/aZW74IAa82IGGb2B/vSwp3I2OayA4Z7AKywxheKnFs +bEDivu2jNiigZyvOW9RBW89T/ODsVgMXWZdD9h9gUIRzLBPLB4L+M/JpP1mahK2u +juLfjUNeDnH7b44s0S6Wc/29K91CTnsOmhlNfTJ5t7QMgyhX6APyx5ts7oCR5A2l +vEluSlRcsmdlJM6rOHRjJUjKlOlFX6mKRXFsfsywGkPM++iK3NamTeyPG8BDRZTK +YKhLPaNjrfmkJr9gEhwwY7cTOiAPbD7XeAhB5cjqTEBmoE8a4Kv816FpAkYK3A79 +nbRhNKE0+kb0jeIIk+/cMWYdBkCY73n3t9Po6y/HQt5fQJ3k2KTzCsIK6Yw4nGQp +1p4v09MuJDfbiFthNEUygvca2aF1rADkwfFDdWaiIjKnEXdHMOc1MYTGWM9zETTH +9clih7vwGVcsRbys5xKX4rH+hK24FX5Rn0czoh3pgky7YQ8pQRVHbnmJAhwEEwEK +AAYFAk5JTZ8ACgkQntzJkdmrRX6icg/6AvnpxcywSo8BBJIl0adi+K3ywUSpL5/n +1CdLfmR0X0Bm+22jdv3CNO7CvwgTo4VDIVppIaGU0FelZ13k/cM3Iotx+lx/4lME +MnQdPWHy0shRVRzt4TTBQeFOXmtHWkoZDcc9F6pI0bWRW+jT0N3FEtuVzhbAg8AI +10NkcxSUsqm+WU+0QK9it5F9kwDqBPRUX7os7oH4S4A90d4dyqgwjCA4mfK4BHfE +djqN3Vfg2I7isVFd1SHI+QIrGf6y6dPWrjrU/f/nbmLUU27n9UK6MoRt4Js59QVd +G4I/aZeXQuv2YJ0Y5OXchqKqmcbhGzWs01xhL/WRrZCH7oOF0YeoGndK57iucmFN +SY9vJYSbAAlsDVT11Jo4joze3eqd2OiB474hTna4cLBTKXRBUuHHYZk772s1myHd +F6mRyQr/O38W5X6PSO05zFxgZCZh9wS6Pf9umI+w4FmIBWqJgvj3iuPj8ERMg67i +nEstXC3vK6Pcfr29JzI5sZOldTEXnwEAGrAsGEOiZ3F7UEZ+EkkjT2TshVOot1Zj +Zi/0b7wyRXn1M8/eO5GuYkdF8s2EaamwNufszPwBm/4CM9Y6szWeG3xNXV8P7ew0 +GmJI2c0NtAbbOjlluURiCNdPvYqfYu5dmn5kQ7QhYjrKrnAnookDRsKsznaubcjf +hTFb4Gs674iJAhwEEAECAAYFAk5TurMACgkQB/xIkQQrplrIew/9HXex5N/cYO/s +dfK0plvTunvCcjiisjaH7ykkbPrMXuVwBTJDzesw+rs1dfo40bBeAhKuXWo4+r1/ +Ej7kCkTIQrZznEoSCYTbpxJPdDUSO6OaBDL/VoV9unoVfbc0HEcrlPxvA38oC/ZD +ZGwb7LXXwZXOzMarOkdR6zH1Wy77OVPVb/QjhMGdFn9W/mTAgxvMUJ7YinWDmv6B +Ba/DYFR0En5U2/bJk/6uGqi9JxP3bTPNO+ZOwRX0DXxsuKibQLwP5E+ywc+7g7rj +0otRvWgHrfJSXqj0fdvKHATnk2ywEtbr8gB6lpeX49KySlqPCX7aX41czbsSVzNV +DBCTDVSTx+CtU78lxtfU4w2TIkhPXcaCOazxX3UYpTxBWep8GR9txGNr4bpzWd6/ +kUca+V+At/h80pTf+Q6y0l949Ify9GWXH3cQyjChFBUZARdX7/tx/eqEx/03gEYR +6sAeVe7upUgXDMzLzbI8oIbzrZjiq9+Rtkl9kjPI0JZN+o7ha4ZpEo+2nOlPlK9e +yxmhuag5YBkdbrmn5uRb0S2bKJWF+iDksEjxa656vNUC5sE5zdnSUJtQdPHgQ82E +mvcc3j+ftwd0ISJAYGlG/1ruFmZOpHxX6u93YhEiIYODqOBZi171kTTLjF1lLpI0 +884k4OK7L0ldzhrXSWKfrpMO9xK9iiCJAhwEEAECAAYFAk5vn68ACgkQuCohev3+ +CfLzrQ//dqpTwszmTfuibqvo+rEDiBxzeNee7hSAMiig1il8VMyE4ICVaNbiLqKm +o2oVqJWh2MgB5Tk1hgclclK7aR70tMiEtCYA4l7jmxeP4chm8S8x2qyY3cacTlU9 +MhiyI9o+qtFDDvILz58r4e206gr1g6xbXDzrCE3x7rTsKNk97Vb6gLCNx55j7X+v +4jIg42YaMuKbFCCNkdfrrHf65AFcvl8YMqOwAvltyxN5mHhvQongsk42ELqyaJIY +He7S/ApfCtv5jXi4dlqckrC2MWHBGX5PY3ot7ilCrPGfOEimQTtDsgtyc1G/jYYm +YkXn1C+oqCW2iqJ2jDMNYHZN4yqFi4sOBy3uirXnyziysRIHwsTv3bs/gOc+S7og +TwMbtjXWOgmQqnzrM4RIe3PveUG4HLHQ8YpNOHhLA8CHiKigVRXOYJP3SVOqZham +Cc+jnypXOsPXE2Md6uBhzP5LkwjW5vfYctraibzQcq0y25PGhtqMWetHhcoS8QJa +LFEZi2S6vFOeidxGzOdqbgJdwlb7bXgC9XWjv3UdjOsyYB1v+1SaAVl6FlTm+Ihp +YFCPEdRHaXag8LzQegs7N56PxJ9iiadNctReM7IFxaNNzShxwOhchTX3aN8h5on2 +L9MWGtYa/TfpqKeiJgs+j/eHqPEd9cw12P3mddTV2v7LNP41g5uJAhwEEAECAAYF +AlCzoFEACgkQqviuFjBdbizDcQ//clmj5FLjIjg/mQgqnrnFPVsdkVpH0jCa1OGV +lVqNMPoz2raxyaPfBTeeHiZMIwH5wdm+9YnnZ7o+XIsLp11wfO9Rvwdj9s3zNwIV +woR8w0wjW8TsmBcunmHh8hCivhK1EJsQ6yM9GfR9j4MTyzFlZp+WLqkjsUVQXGPN +zOoaH0kGlGlXgCJ2htf4i3lZneed2dMMCEgXQFtVSISQaoHLA2VtmxbjQR2zwS/c +JZ5eEHJwt8A30HyJ13jqYfZDJvLk2ap+r93I80d710Ol4sxoYbcO4+AVtiV0E8L2 +N9sYmADT4LbL2ny0P7cPlcGCI+mbM9DllbGHirrR8FMCaHmo9Q+H4tcwH7Dw8v61 +nSjH48y/3iRaxzls1+FUGWyUeeIacTeteZhGSsaQw/WRgzLNjDSVbz0F65mQli+O +osd+ktkgC69bUXnpecHO2nntTcoJXWq6jR+IeZkoaCRlwg0Vj629KYOlOS9FTPBE +FyqlHFLP8Mulcnr2fjbuaU35tZyBv1VFJlyA4iExvfBaoeaTdvpn3hyvqRBbHRJZ +zWar4lb7g61dyyJ7iVutTaFjUuSsqr4qIe/F3X+G05LYH6YZqtq48gLPBxhxEw4I +zwhJtGmVdqZmwF0jWFem0yV3/NghqDm/CIgyopjLqNv31OZFrzojf9me1wrv186k +EgYlSgCJAhwEEAEIAAYFAk59qg0ACgkQ276dTZnSoARZ6Q/+JjcNFDrQ5aENA3Zq +8qiLQ7pFRnmjNXr459DZiBAfaY1BakkLH/sqAS/UKmt/nZbGzoYRgOXR7vS5tEAW +VjdoY6lVmmjrMACdHrP8k7uFWMIWYFIDSJqHdIawjUTfOFsisJjrMUuLZbPB7wP3 +hm1tgBpSqalKsvyFWDK+Lq1PF8BwDZh7NbJq8/u+kKuixY7ZyfjNOJncHPIGRRU9 +T0svo24dTgEz87oLBM+kSBAw89AuljZ20v+NsK2doEtQOjl6EitNYcBvchx83MsO +m+D8/WP3FwhbzeZX/UGQi8jxOfp3Fvuqs3FFK5fDGH5WNOELZ3vomzB2WPQCSyV4 +liGQ/chV+YUrtfZC/QfvmskvvUUyK+Yu42Z+XpsB+oahJ/Osk+faoDvwb95qYbDr +4mxhxSaFZqrBT/GOXkSIJ5COCOGQJGGSTAZp1k0/6Sz9/qmKG3N2HAixMTXTykmI +nrCqe34i8Av437NTbXaOxaZFd03lL3u0P2i7LQRb3xLTO5C/0K/2Vt/0y8vAnUNi +zPSMWeNoqFKAPvvlz7yC5fNjde2wTm289+U/Oc+QvhW7vDEWHbZJ1wwE6ObFCosw +kVCB8M8sDdZo4C3JH0xcKFSP2ks1KgR9EyCo+pr2WxKhaXY0aZGUJ1Yr3FFUDDYX +sfq5jq6IvrCaOwtLM9uNO/1oqceJAhwEEAEIAAYFAk6Q8ssACgkQditXu3hCBq2/ +pRAAoDjjJ750e2h+PHWOpL8XfNf7kY44NIvVmFwjEAR9LNJJT81nSiVFDv7QvQ9C +fGvNkO6+FvaUZnIc/86AAs4lHSTkyxe2wPP0Itc8dyJXyKLaWVYEhMjnhKEn0rJ9 +e++S05z4lJCKYOwK0Uaoen0J0AaOuLaQl+0OIIbyqyeSJAX6RRcC9E3SbKZA8JOF +4kfdIj5TyX+UMlkag9ydTin1Wp4t1a4cPpPrhqMh4ZLcWcgqy+OH2IgfgzAhJ+PF +u7/b1BRYX2IJrYq+ray3NyJPtMY0ztMBosB7H7ObqrRmnLt+40oSn6J5pleKmlaW +6/W+uhXalUn/WNEhhDvyjP6MwO3Ag39rMCDkrJphSShnsIgC6VRjzj9TTucsdd91 +mFeM3c2v7Mz8eh3iEG1GX7QXbvRJhmlLv4fRWZtBQ/edbZDML8EWmqy/e6PK4GGu +dVZLju+xDsxpxqQ0viF8L7smPnNHCbvIveg+NdLJvOSExnhywLxLAZSu+1e1Lg+6 +7rsGQW9jaTDEXamyrY3YnXQKADiya9nqTRuaJQC29d7WTzDwf/dAUqbdd0+IEl5x +jSGQrmLSwLSn75Aesn2zSIlty8Of7eYl+QD5f3HxoLihuT1E06qVYzeCQLd+57KH +07PBm4RiugtO/KoOFYFJXJZhrYWiF5gFj5fv3T6WkxSJzHeJAhwEEAECAAYFAlIS +YFMACgkQ2O7X88g7+pprqQ/8DTNLr9N9UG4oOIlLetkGHp2WxbW2UeXHQS4CzLcd +myXgtb4Q53+S3Ta/8eQdLJqPXJ8R4Jp2jVBoXT6MWwD30lZUATxe/OPA5HlzbUpN +OLd+x+aOR7wlPRq9cyU2bhNCzua3X7Z3bXXq7b9ymhqjyd/eh+fIcinK57ocaPxY +B2S3H88FG7NyjuwJbMgnmlGPVliEq8lxZDttIOjK9cqqpSIX2IB5C4HtHvg3JGY9 +BRF4LNtkd0+KJwK3VvFL0eec23pl8aI8sW87PIYcDogQ5A/rr/bU3tHZX7RaSC39 +R2nbmUe4Bzv8CwCDXYTnFb8j1Yq1PLAbhEUFtdmLyycxJniy+Y8cc2AeZbYwmufP +RCjhkEwc1PDp0R9dMiW64MdXsrTauToTk4yluJu7D9Qi09SEf+5YjK8l4p7ZKANJ +JUgeWbtOo8REqL2TJv1+vkR7SvuozYNTODJ7OuCuXwcXtH0Xv7pkNhqjo8VxRnz5 +lT3DoqNtaDy1iWeE/9+xMOsHJoHsGe6jA1ZtJPvLQrhAust8oBI09esALO01mqn2 +s3jQgrjWY3yOTRQe5TBWSpUGzPEwqE1JryhCcg4Vs3bDiHgnuwo+ozI/M++Xm+f2 +5AssY/TFQADVg+lGQR346fUTkNH6Sa5FcTWipbYutmeHS9EKvPN1EwMr8JJOKQ1B +BxOJAhwEEAEIAAYFAlIOJzQACgkQR3EhcfLtYvufXg//RVm/nkZK1RFMc6Sa1IM/ +9QZ1etVoyXgIrA9FCqTZXI+PdHLPh2R8AvA+kH02Z2yHRoqUpv4WO/+5id8YJDx8 +zwgKXax1rNoEym1v0fkjmMLelxr6sddd7rRLFy2n2NtUk/7SBFfDOfG4+g4jlAHe +NkHw/KTyrLabtlVWEP4p3wu6BS14NL//MHlcYtXTGLBty76g+OciyJnHEcum76hz +ZB5U3KpxhXcFYxbEdgsowsMM9XcTXBbKwJQ7wqIN+02RgZtavnzSBKm71u1zA3wC +CUXAidWvunzMBJcjfDu1FMIQHl2IJjhCxwhCZhOyr5ZpXLTGFCWjURioxoGTLAcT +regBMEcmEpk+65CXoCKap67etF7LTj+7rJCzFrzwqvtX+dXAJIfu2zRrAuuhwqpt +KkV582X2rz7ll/e8mB9K5F81D0UY+dM0vnypT3IE5hMMghMIEE7iXx2FxmbGbNO+ +BALGmasWlXWp4CsrzparZZ8x7ovzkGpsV6JRMMDcqC3OQkoELlQ8pDK5ODI5eZ3T +mQRKloG8i4p2/7Fc5mCr08842IuSLaXqEPj8WAj25TyS/OCYEi3KO0OJX9a1scTV +65KTV9Nhy4QuKcl8irVanOL2y9I8lCK698vPrRvlfKV1ccR1+cWlP3ivq4ipUD+d +jh3hyBQRcQcCsjZc2S9NXRKJAhwEEAEKAAYFAlIOJUwACgkQpz4AVVWPuN2ucQ// +eM5DZx2lc7kY1EvK+4oPF1XcRSUFo1VHkwJjw/E42HhHPMJQ0N/aFPeDCZZRmPsK +yDsMfcozV14xpMdtcTkLAd6ZeC3j2tNH/Gz3YqjM55wWIe6oDXn3jzmiyZxBCZwv +6bRPRkjuqkwgnpiI9S8Bq5uJftHyal4RrF8vQH0omjwKAmCrW9Wwz3WyXK+0Bu47 +I8mCe9vq/UNASuOrjdl263XbGLbPAKcOnv6r+B4WZSJnqF/e2Ooa8ha8qMdLkxYX +femED362J3tBNc3Wovzd7wP1p3HJRhsRUlV+tNZkRc/WJ4K39AYDG4ETN1k/JUNa +8czze0r+yRHAYwqDK5GQhO/8+yKhnjquFQejHNBuGOSAyYUH7cTKCqm+LT6lnT+I +IuK56A1283ccSVUBdnSh1Izl01hqKWw1xIZgwR3D+R5x2EvZLDR2fPs+b5To4tlt +MVJJ7mKG4RhQCerQSi5ErM7QP1g449Z02NsQ5KB5EgmI3P4pn225iIugwTcCMTKN +EmNTLwIU9b/S6BTJlEWMEX+YthCJj88yTN/9dbMGbunb10R6QxQTv5GdcOhnVQ6S +6Uc6lkZzkQ0JVqkeZWiBzTuklCg4FQlIrURxquvxGQ/0fBCMBXs1gnNsHYbqqE40 +HZP1aaqKf1ZjtOdNCadyO3mdZRO5fK8aMWOpDWQ0sk2JAhwEEAEKAAYFAlIQzqwA +CgkQTnFg7UrI7h3vZw//WuFe1GYU7XNofBgMo4VnegtY2MW+QQfhr0da8AmOWBMh +F6udy47T+ExUosxp9bEU1F8JYoJus6cc98PirgwJvMIMzL+r/7oyGEaxMz92cIom +c4xouJOAdO4AnL+yYZsJKQ8YFWlXUKZEDTtEW9DTGdCMcWxzFCOiS9DTTAvQEHUS +0kyw0/ddVh6HRlTut7NuH9VukhvYPJxxeS1xsPPw1NJpHnmYO9p9u6zhrmU4ZyD4 +BrZvIPinWYrObvjYjeHtNfn56tXGAg9lSfSjAmoKjN6PPCx3LDR9PNVFxd/v+liz +z9G3uPcWk/7SKoIUI5Tvyls1sGF2tXEwWlNPs17z7TsKEVu4G5eMPJZPqwX3wNoD +zsmY2Y+vtlPYdC67PAbBVLfc3Ha1NQhJBUQOxsT4y9ZDaVoKnRwNWdJqGkSnWMcb +giNAfsFQAs9wJOmG7EwuUwWTdYbtuqQfVXUoF9IDAXgW4oJY/D7x4zJtEWDTBTyl +TV074ZowsLNT61+t34+yDvkO2v8HB3R4MMiOyBxRf51sXaYsAZAhdM+UOm4/JF7K +F+r7bjSQ5hDj0PIZhkJBxlVhmIh2ZascUly0PLxV+vifp0fgSNp8b0Ej/Bd8ybwE +gQBBvh2vmVOblwOPEzIolzbwo7ixjzX3+kRe616orxS9Mi8+MfLx1A1V6gAfNTGJ +AhwEEAEKAAYFAlISi0QACgkQIGTFNkHCXl1fPw/+JcNXQD92nFhMFMafwn9Y+mlL +he1rZlmo7Qvr81muIqe7vK5CR4/i/IzZ6pnHfZR+I5gsFiU2tKSNzUUkmQ9YnZtt +3ZzWHwWo27qy8CvoSjP6wFju8K+jeZUCd7Wj3XJfNlGry6/0/fsYL6Bo/cpO3UkC +0mKhUyjj2xsXxeVH9lVpzMcwFcnPue1WVrDNew1eHOpNYNHlyahBtDkESwiKHiUn +Wrd86zwiaPbkZ5JbEHhsWbKxzla15qJGICBCsPlHASKvSm4m/DFaXWWwQ3YYwFN3 +hxsJPILJFA0DXhCCuX4jR0a8Tx3uCBSxXyBatraBWaN1yatsAHdDO1tpB6B/BmoM +DTQ6bsV4/BxdLXhi3ZiPwbEp9KEq+NXiZitzGpL2/Hg9mPwQ7Z03nZIdiBeg5hr2 +dHp3adwmQku6Ctfr3K5M20Y/nSMDfV6NsgFFsplof5evOJG7pqG4SE6F/+NX4fvw +smpget75YvL2JZk/2yt4+8W3ZruDL3hMs1KrvFuqEWQqmEcKp87sa5rMcRjZrY3I +LvW4krmj4OEMBocdnWQEtfU8zArQ+8yh2GWbFO5z8EUL+OJR1geansiRaOB4xF0B +xVHy/dwzP57yAPTWGzgC/BbxmO9frVW+ozOWaJmbBvkN8pgAapWdOZCrQO7L58SE +CEM9I29nEMxw9CBjTEGJAhwEEAECAAYFAlLeDFUACgkQdZd4qaNrSU9Igg//eaCl +XpFco42V1BH+j7v2U5LfJZ4/Ee5DDrGBUgn9Cl538iZxoCpqvyUCSa3c5TNyojyA +o4CFk5cSnIa0MGEpBhxXncGkh5v0wWQZTbdb/g2rv6939ina51o2alnW+4XPhmMS +ANXOeeT/3IksC31PY+8+6YcIu1+I5DFq+Qekeq0u5OV+Ng8K9r36m18bO4zimJAm +Z1dG7JItZjXQftNit7CoPbQluQ//QGvAsyowCnBR+eFgBu0yDv+IZ7xRA52Zlvml +IIignUirgauEUuL0gKuhucpq1dSlNsKtFX0COtj0um6H6JivMsWtJBAOWvZoJyHZ +95ptTDuMV9CBBluzK3HfJGZSgSJgwdTX61G691/pEtvXftxSrcdsaLIXZzF/ETGQ +7ASI87sGypvlMS8QCj60WHdbdyqkuN4CyL0kd4bOwewayliHiAqpQOhTw4RYE7/0 +TjYqUtrXq+EUI5DgYXqYH5FbnrEU2GI400QmwGosCVidcfZecL2GtMIpFBYGH/Wf +jdWFKDK1fHaKSKpb8uzNqf/Tf3KB5RIwkMma+NdnnvzMXxdh2pVKLrJvfeRWNJTU +ExBCU+f9YrC9CE8OhTAnEs9kG+Qbo3TEngwQDSGwkelpvcnwkiUTK3p+RXQnjvfO +IDeZcd5RkENLQsyvZD62JyWvXiB/4Nouz1laxR2JAhwEEAECAAYFAlM4Kr4ACgkQ +jw58K0Ui44covQ/+J7i5BuyvDnp7qDBgRDArgyl5gEn0/L/CrkjbdzlbOupJQfUN +Sc4oXuxLXff4XadsIkUA/5rBRvkE4MMkRopFTNpbaRmOW3LtBKhIVMlhDJXaGmar +6EHkn/aNq/oghto/Zz2NzZmEjDsy9E7edOXmVHy4y9FDezYLoa0BQHrdsNQEr28L +FQkPUZFu1n1pW/OgxE5xYKBsjpOSIjySZ30IoLmXStHAiLQgJJSXzr2of59V1jpN +EhDu6F9batrdMR6SUM4taXZ5cLRw0T8zkKm0HKiZ2zZjAmd7sNZ5IFHJp2Aep3vP +gi6F+QFdwKnslP12bn+V6ddAcTat8EjzhSebx8VvK2RzJXCd1SiwjlScqB5UCZfG +x8paRZqOyR9lvXy1dbRlwE+vITc2kVwVCv5UryiJ/OucbGn6sIzC2fXQqqHAN6yv +7lZkgiaIEZz4MOqW9Vxcm2pIGHqAfx0q27COEwGdA0/Iy0VFPlNzO9X0OQQCa3+S +Xg7lqMFOKItmoYyjUYAHLSIP3rGpbJvYQq4Tlw/hJL7MZIBMMPYGERtwU3DRq69m +vI/IMC9g7U6PJNzcV/utiFh+exLIuPzmaQs3TWCrTcXxNoAIohtuIY5CusJ7CzWS +4FajpupvQ8G5cf3ABrS2jNRz2IJnqVXipw/cX5s7iOtmLRszOudEZhN3sAKJAhwE +EAECAAYFAlP9CKUACgkQl7qc52GgljulBQ//WQRuynbAUUqf5zMy/BqR3NAqQ7Ik +pNDwKbnvwX1o3ptBRgDa6753ThwaOTB98mWRjGJt6Xv0WGW3TNPudMn74HdrIpEs +BnwwLYnk9Zq3laCwPDfLKzewAWKlgmpeqc+5YYpnkBvi1lI52FvPIT+HlYE3jCkU +scjvZT+oAyWryV0EwUjBKjHpMbQO21LQQErQD5lEXZOYbzIWcozphQJ5v7Nyylaw +GA3FJiZI7UTKc/VXw3r+791b65AIkEprerCAppTqCMPfXJanvNQO4wWQMT2sUUxb +dEskaboGN6fJqxgnGRqS4rmTdDhkoKiPELoLcFQhAqnwYktoPUFXZtUPlVQE5l7Z +CGOU0aaQlKU2JeNT6ZDhe86i1B12nsezwZhzRFQu+wYKVVL2tGmhZEBYzJl+DcVl +QvbRaLa3X16bZ02ioCu73C+bb/xkOB9na/EphX814jMzC4+W2fDLedvrUT4WmgFd +yixSM3nplDuRBWj6J9CpP7ehADErieC4dJAMxIEjCvvqOO4+TZNmzRqfJrXqMkdP +S3+0/U0aSBZ50NsKlDyGiv1YYHlROxu8n2CkW0LR+jNJto79P4NkbY0AKiuvaqAB +z44H25C5H3yksf2YDzqTJYl/LEot0aCnlSWz8xrpGJPaOEuxGe5kkWd9Aq1NZ1t3 +aoqJa1ozuROKB96JAhwEEAECAAYFAlQGM58ACgkQ9tNJW7CumgJfThAAvq/sQ2Qk +Rc6N9uiN0T0GMn04o8RH5LyI9r8GiQBn4aBeuaixiSR8FbXIQwSg1dwz3n/IVOOY +8hbGqQ4DZEM9QWVacRBAd4yhUMkOz6aqBaBqlr5ydpG18eNsFlu2j4mfx1LI13tO +BcGFxAIlS0tWaaEVendcr4+IHvT/N8UZHqnrKeDkDJ2tg6T+JnPNG+23Mdwp2Xc0 +9/X3EZUbS2slI5wo1XMK9rxfP2f4QV4zZNtEVMGYuxVHdAROE8fDmeGCJ4RHX1KU +P3syCeKvmWLktawPsS5AC8XRrGQQsmJzSSD3bjrhTDF8ONIrd2SvgdhcZusW2qhB +g/b8GRiIiYWDvCQ6sDzyBXiHzl+NbDkwgw/BgX+KwQrz7WiUzxfXi4beHnjmueDx +na9Bwzv9A1lHMc1nNbnMMi0y0ZVsTbw24KoVSwovN3HfvEVGqC/P2fJ0QPvmmqrB +8Xi+D8twfzYWF+V2YuSpTOCdWHPcuIY3fD63Pwl8Xdx2gIq17n46ygh0DDeysClM +CurRE+59NJ1KkY6seNRup4mgBOF8jyXrJFiUD4OtpE85X6YF/OGPCr8U0ZWYMOGt +c4nXZ/O0L+A9j66+pa83EVgr5IGtLOtJ6hNZQT/zsnLjKX358zJcW5A+YrcfS2yz +IyGYsNCo66rFcVtNCaiUIuPvLxTswURq5AaJAhwEEAECAAYFAlQLS24ACgkQAVCd +XKtK/T+Jnw/8CyxPYfEFrBl+Bz1SXZzIwXcXk+S09EP/usKS1Gmwdkklzj+ZigTq +2fXSlNPzqjzxQ1joe4VOIsUoO6VLFFMFC4u5ilL4IT4hG6zT1SAoWvBzBnM9Q6tW +QwdJYf0NeCuPBBgLQuVm99faogeCaoQlI6+DcQLVdKHQKHRrQ1JnPZ0KmiiPqxoC +Inz68eDC2YKiF7l3hhDEhhA5XZ/mRLCQgkrH5HZzRLcUp/TQrqj3GMrMCqmVif2+ +Kghr3Y00WC65AMOCjm9riYMKC8ZucEkasVEg1aoTwjsctTh36ar7GzINJRXMTvRN +/sWsHh9hjN3hMRs+EukHU5Qq8jJaBJpGTpq87vy9Vev4KgKT3wlOz0LF/ayOyVqq +ho6a7id06kTcwW9UNSX7kEOonEynoD9mCiOLJR9+kjAwUp4IT0iyTlTIaI0LgH0L +zewygPIlkbALYYZvUtIcpRTWissIuInoGNmXGgg2Bc6S1rVl5amaEUQCW+lnZ0tJ +jO8X3tNLoMk57aV+HS9R6ih3YJ33uTH/DkElCkz/bc74cTnEgPQc99PtScFcnkuY +YLWw8rBP/2eCWWLu9tZddJz5w1WyPhUSQaRc95gFOWPnBR1hCjQSOxCfIGEYmWpN +0zSwBREntBK0iVbU3ISlXbYGJx6SstGvunAANjhGeeFQBT2FXCNF+uuJAhwEEAEI +AAYFAlLe17wACgkQ2klY9hHhSelN/A//VjxGzAia0HElhnlTw4EQ2lLC6LahGGVC +zBZ89bRDS6oOg4tHoyaxOt7XNgjrFLHzQl1rIRl7cmS5kPs3JGZ3ZFUZY73jeHGJ +mp83qLhT3f4p5ISBlwDb0HM6wQTgRtE4qFAcRn17GQeF5VBeM9hqKXnzhBjGGiiF +B/DBVChCXUOOMZzRu0E5msUZ6VSj3EMZi7jG7z2gakH/3gn11CwQdC+VGl5M8ee7 +Lf9EvLX5ahswsqpFuestvXvPyg2eAWoOiTZmxDhZzubYc7jCmMAsMIv2I2ElQme/ +JRUrl+V19f/BO4dPBDvooBX+yIeU9FBEE47zZ4Np6/ZAYcctRKynfvTqV5uPIAyi +ZhtCSTpQkPjX8KpIEfIB4JtzVsLt1b0DLv6f5c0LmnlGkojVMKC2uqt0E0xVrOw9 +88+uPcyKrbZnP5v+g4EIC3l2vRTPY/LS60pMt1QVcHcGQrDpFt5Ito09tlTtHkGy +YL2XavomyRSFsIXTFOHk5eFZmYIEj4CS1/ZaSBia2Rfqi3z5ntJjOHWG5mBZV6R1 +XVTABkZiPZNha3op/RJzJzUzwQRGNsMUt5Ja3bZfb7wbqCh+56pghojjCddFUoxq +Dso3f5CYOp3PJOA/rOGBZfWWMv/QsBS8mOH4nMByk7eJLxaUxAp8aqomIPwsPvWs +omMqf5s5VsiJAhwEEAEIAAYFAlLk+aUACgkQgkKUzQIX6NjKHxAAhQW492Q9ldWB ++kSTgy+khtEHQXwj9KB62xtxCHXBExYaSijCj3nNr1w8s39vrwLQjE98aR030JI6 +L2yNMn7N58HNA/wkvcZrmX1CV34j0sUCdiQg1Pa/ted95MCjJpUu6sPGgei0hwys +jAr/EpyMhSCJKgPTW+7FVv1PieEKJACnj+yJfDLxKP52gIMnm1FI75+1O7epdauN +NLO1j93ZyfnvPiqOuoAUbOX6rZGT16xjFIjnhjthQbuLJ9mtNxd0Y8OX7t1sIb/Y +D3M2erT3duv7YyiXValyYIj5TGbKzyn0B2WJRQNZK4zJ/PW7GbLGokIPUCBXMgDL +RIVSlSuYNB2Wqv1tunJB80YPnlOwbKgNqc79TVfXLZKpQbCd4o8tbj8CiW7Zh3uI +DMO28CyrDKetGz5x2w7eftzM0fWIKv4DDwd6w3F4zaFnpEHUOxGKkIYHAQLBb8wG +ZesiAXDiUc749nDRKnooJa1dySMxPXcxHDPWRCUPF4/+V9IhbUgOpNvbZ0d6B0Kw +/iGKnozR8CQywNmf0UEWBcaFR+FyM3d6lFXlN9js8VlDQZuXSBfytJ0OJb7FeqvS +QBCI38eJpuoxd9XNJ0TNHgicaRtkz15O+/jUiuSFwqpMDcFqlAsVeCcMKYMrAZHj +E9o17Zv/rrg52zhkVOu3JsY0dYrZ9iiJAhwEEAEIAAYFAlLmb+gACgkQ+4YyUahv +nkfpwA/+L53bIO9ib4Ye4LxtQSQXWzgyilbKrO0tj6pyT35A/DemOaUhWy1U7fGY +jVdd3Cm78sOWsKuQ0wF/NudIwv29VW2at6u0ohqsC5V0vxfngYjoeiJnl+pK4rn3 +Da6bc/p2LMdiq6O5Lnvuq6C9+GJt25iTlMZFbGq+MQIwshbWlPK6zzTcv6b8ZBzo +YuCAzuEH42OLNuygTmnvCiwNOW0EMkVb0tQQwEeMfBvjX7pbnVxOAZay97uiDbkJ +nJrJR5kuoep+2xIZ7t2bX3ni+KFbO1P2iDtxxTYBNVRCg0k5JrSG7EAuzKu56ho6 +XPTch/8sdAuf3GVpWb5ColuMkq9Fhv76IGDWbDMauiEmLXJ2NEC5m26CWTcJynhj +5wtCwCj0kf99tUeuXkX0sKZZ1gBsmhsmNbuVf/us906/jva3n8Nhc8YHQUswW+r3 +z0DwyusoLsnTZKV0rzwzyKz+7evu7KjMqBT4HcVnSIAGz8DHxDdkGnpz44CYj1eC +F0W7jXMewJ39BqzValJhYxkU1HnPZ8vslQiEsJ8Pe/dpBO0El0NkSYtMvsIBlp03 +tilXAhl5aSbEop7azj6x5Afbke+bcG2WM96O6JRCqgS6Pdcnse5V1sgeDUVgodIj +Gr6eHIUSDeEh/C3L7thIjNp7t65m9B3sd9R78YMKE0vBCEhS9e6JAhwEEAEIAAYF +AlQEFzUACgkQ1BatFaxrQ/4ZDRAAgyWwIIb3nZSxq0jq0U3fokVftDKyrxXlZESl +KVD2K+y/FtWYc3b+aPuz4Tf1zEJkF8IKTdmjhXAzVvXmTjSyvIWof4GEaT7lLI1M +Mrd5Iyj63ESAI4+/LvRV/uaKdqm5ErAJ05tCqmHlkyi5TWE1JF31C3JEmvjWQpoN +oLwlc3l6S9WUM4CWPbR2F6Ibu6pkDQjVIm9xHAlCLMqj5A5prSc77XTnA7YKQfqT +ZL5SQqsRMB9yLe6VfM0q6dDBPJ+//kVo5JoHoJsxhPF1eXe2L2edvZMcIc6KMFps +5qfPMzXl+dj5zhY/GxBiirIZYBwR7FGL+b/+L3evyPSS6mfIIBP9G/cvcfqf57Qv +YGWVVV48emeAgJltFHmQ6ENdHEQOCXWBMGOkEtk/kLLr0b46rS4nwFVRdRBN89U5 +pDbJsTBBuA8RmURza1BPIgZIqQrXqmWfi/8LDbNwSs8v4Vi6OE4R81ihGK4FUJad +koZMC6ND5wB8GkTZh1cBT0lzVbKdSUR4w4ItsCmE1VftX0v/HXLe/1i0O+WhnCqt +IhvSIAHwRS6D7na7rfJXbln88UICzQq1kyKp0uwdAccnAK080L1xAA79pSS0idrK +NM7POHFPK8lgCiFbNPEaBxutizAixM80cIcPuclUWkVkGP3hji6fFX6H7rjE4aNj +NmAJA4iJAhwEEAEIAAYFAlQGJ3cACgkQ52AExc7wyUxesw//ZxNRpyxAeOGmcVW5 +eFX5d/PBf/xFp3wiBPoNaNJiDLddgX2BIgvelG9RU5vJ6c/1tp8lkqVfaskiHNlt +4eedEcrK1N6yTRgm0DSrL1/T23B0+gU742DlaE6RZOg6CAGNMQC0mfm1iQ2D0sC9 +R1mgiOdm6UEda8D7wO4afiqKPCOFGqP4Luy+cydfRZOt+olnvZP1ZlF0/ZelW5HF +ERnsvb5I1s9Uu1dU/zau0A3X4d+54BuA7r2+IRzYE4z2rSpFxqsc2k6TgU+bbGiY +Yj86JJAHdatps920FNh5eM8EV5bqPIcTNlU+n85Dr5kcPXd0emiu42tRz4hx8K9y +/7eToyvcJeoI43I6vCWE0NNopUMw2dO74h1r+1ias0tyHms1qvH+XYNRwoghvlfR +PYN5n2c23yVfp19FY8sr59IqMmzDwhzpvkGxFr/16CJ5Id+8IYEHdIwQ5eu1McIw +lUPXt/k3vQAARzv0IPsNIeoUpbAMPga8UmG4UqFGfhbcGj1SRk+uS5J96tO2XsLP +MjeyOBnBOLvbq0L0PTnJ56NDYdhR3/OeCWDaLmFeiEJAzNjGpKrSiQSAnXfoCOCl +ucuecZtWn+ojRrGUgAGNCy635iXgs3gEy6XyRCAU2/ADIY0Y6UxiMgYuhtaVgIfR +COBdh/Ol1920sXhXCw+CKN75B/qJAhwEEAEIAAYFAlQKAzkACgkQVUKX7fnMpYX5 +ExAAkCV7596eGUdGV1w2QgDg+7YQvvGQT5PrKylmIDKNNGwyGo4vJFfqEWZ3HtEF +blvND3MX0xtKT21FlvOVi2Iina+pGncH+5LI3VYhcBC/pKblGXwZrY5g+BQTLiZX +sLxmSqZBJS/T6ktkXnKTlY6mWlUXHh2MxpAK5Z+0atdUKrpEwuWHTGntGs2IQ+D/ +SKJ/7In6FzJwMPRndHzokfMCSn/kyStlXv9mbsEb5kPdcgY5Es91NWrDqQk6I+LT +Y9VNWZbTUtpL0Lcqn7QJcYxBgKsVR7MhI+CuovXHhOblp2j7YUB9GPOCwQ7fsW6G +AlAaZzKPSJd6Tw1JcrvytRNhYKHu/0T/taMwnk3PPgOWpS+70KRCSoShIPipC41C +0jHGe+lKcU2jQN07V2KfL6ok6rjM86f/fq0IGjuvBv3NT6OMJd7s/Qa6HIDin5Da +cxWEHB0zHXLQMOKymvOT8zuqf6xK4g7livZyfx0ZRslrDTWmTgRYZRhEwZwd65US +qUhOzPzGZy7mgcMZP+rog27cPCiLmomg+kTnyFBbpxE6dH1B8Syz+cIhuXfws4pc +h+gi70oHB7wiQWN81gCiR4Oxz62+MXyObS7VbG3n9S2JniH/tKp5kttVJOpL7GCM +9uPkoyFxtYIHpb3ueYq0s9EW+7M5M6uvtK2M/SwyF+mgTCSJAhwEEAEKAAYFAlQE +r90ACgkQfPzYzSV3Ien/Nw/8CJDWcN6KVSR/V8GBpUER7dbJvu+wCfizvyBHZeLq +sSMoallJ0B9MvAh7GViQDYMk39sLTO7ISZHtgmcJV8Yy0M1ed00n+fAKEgShURSN +foqToT6LyTBv/rNl22zrG7zew5y0pj0/U7MPkHXOgnKHem98roXmdzq7Pcv+j23a ++CIdmb0cjd/OYvJJzN6HAl02JI0EqmwpcIgS0DHzGOj3ogwaI0rTNS7GozCehl4p +rTf0mdI5o1j0/Q6LWZ13diLM5ieNq8F+TryuvdhJM/bC23dJaEJJ9EebiU+25tc7 +o/mav1pEgvfCueHPCpRLCLLtY7HtX5IgWDG64Rk+LFhUGrfPcGROltqPF8aHXsZJ +qyh/kFbOnAdVRMm4p+T7cUZaJDhk7g2SlTolyKDZtjr2yRbw0FPr0J1sbx+FUWGR +cwYhvhfKVHQ4uBmSzs30H5lPGFrgNJwBNJdpR6C3LdDorQaU12hX1aTmauwtkNyi +L/fiF5uttRpn6ACX2UyciBcuBu78OpqWRWsml31SadEZZfMDsM6WvsCjYPKqVoqN +VM+HbhRPAEIQ2XEo2kx897vNS4xmW7OydGGqxrlajwZkH33roHXFEp1TiN1VILcP +RHTcbaU87dJLR+qGlDD8cUlW4gQ2bW7luq007sS4yhNHPsvsACVlZsFe5pDN7d48 +UNCJAiIEEAEKAAwFAlQOHZ4FgwPCZwAACgkQzNLtlNIXOeksow//bKJIpHuLqhDe +zKBkz/7YgHFpAzDxtzxweiIxVT99MoEVrmeEMuQgZIorXUEpzunKDsaChnfaEWtf +Di0t1tAy6+BySjwPr9fBZnqFuQlZoP4bG44vZqmSaRZUbr4wLrbuJ1XTsowaDoz+ +gWzArCr5wuGgwDl0JDgBBj9zN3+6YCYUpfaffiZzMRejO8H00wPRbTiqttLczNjC +qZYps+3iGBmh5Rhe0lwoduh6wy25B5Nt9+Co6X5NHXB8z0m90agjLcft8/Lw/3aR +7aVukKstUnRXfP6VciAnhfAnXa7CcehaTw+Evyw+fgwlsivfGTCcfi5El4Q23X0Y +NdpspJ8B6WZt0PQjq9WcxtVnRP5cYtS2TfrqaX/NPs4NJ+uaLOVnt5ElTWXGHBoi +sVo+mXwD9trPh99/p6ziGNBsheBPj35J44g07uS3JinZOklHv4tGL/1iXdBMWgOi +PZJiV+YgBsjxF0QS0rRE2T+07eHc6tgpehCCGHWzpPycFl+J5YMfDSWH9UEePbre +Yt9Z9YI+yaLF0PC9DFcS3H2k6PiUi/Au61Fg34jAg2T508Alqk2fy1cJyrtqIeoZ +Y0hsuVPxvvzNOFjX3MACGZHiK0CNBoR+wShDzuJkyULtZvUbQupw+xmOSgDJ5FkK +PAOKfQ6OwqoZFMstWnKtPfFt6tSNdLaJAhwEEAECAAYFAlTKHGYACgkQn7kmJySx +fSkSlQ/8CDndW7iF5CxlB7NDaJaWarEnZ6WIVrwT+78TcKR2qJYIxABRQjBC7/Jy +UrCV4YEJkUME8NhyjIUU1JUqwBgjnD1dw5V8p5v6ihyX5XrNvCkuevkE3dSk9fXJ +EW3K9/GxhHYURqC2tEBDgAq+Lm9lEosUTTLTylL4Z77xlFoQVGWXaeEqrATQ6Obx +lIFpQ6mXnHuKOZNtnxSJ6BKsQPnyrEY569PloIvX2HcMNbFtcVT8mPPwroa+yhE8 +1lkMlsH2HNrPKQLPMCTOobtkh2A53KHKtQS35jes1TFK8N1JG4Ocfbr9ZFwnLVOQ +bNwn6FFcTVCEvLO3/Wlcifq/hVRp9lXiIlwIgjhxRkOMAtkx8hBDkSkfSNIefcwm +32tVJcFe8fh4j6cZCLO6rMb1pUHutok9yp9s36yN4DQG/NA4QQHfS4k7uBZg4Rvf +Ow5/RIxsPb5qgWx0K62uQ7kG3gbQ4tSUowbXWYGngGChZLIK70+oI79fsIBQrZ0h +YsW4w5zUtJkhgEhrQP6HloDkriK4ZDK6EifXZ7zjbhRNyq6ZAKPNpWV/Bu0eytMv +jvhx5bZ6NDyfE1nag1fT088NYUvBSGj0MhDR58eIDf9l0cFFpK7Ypr6Gr5lbZ4Fk +YzMTcVP3XNS4I4XruZzjh6YZGfCMsPdAhWOOgEksDJ8UXSD0l92JAhwEEAEIAAYF +AlQQ6PoACgkQuyCsIOC31r7TnQ//TnVbex3jlzDKD83mWtZfoH+GIIjNX4x8NS+M +kH8K5FC57r69Q9TZ/+vkcMKmyYrGSgRfonTnb80D8ieug8bUvJvbhgCX4CHDqzqL +fnyvI4dEfMTp1+UCJl6E79Sak2Yx1xDNdzpqGvARU4b7vI6RLHb6+lLhWdvGmpvu +EBNJzBgG22G3KDfq8vE8orCsUhjP+Xz5ZO6mcmCtWS1aR9jgTeHuBrPrT0ZJ8kxZ +FeWiCtJxbkFg9/3eN5vTZqg4UYfvVgXRTy+PqNPMK7CuCKyaAYvlDdcvnTdD3X9U +OityRpySMyZFNTgmy0UZbBzdEw104wvlLXwm3ZHxO9A1jHRw/EcDLOU1/+GfAof1 +vTOxxlghtNpt6lrxuJaX5SIdFUQAyPRAtjwj0LQajpRTm6rzPn2IiFYyv4MDVXLL +Vhgjcd1dP/Rwafr1C+ndDqOfcYQh+iRsPxkeeU5toJjt0dvul/6YTfV0wdYlsUAv +kvRNfnL5G1wJa2iDutkUR3af+44USg77/ST4tDQSl8FCBV+BGYDPhuYxUhf0iyku +0ocAsTn3yimSBrzDQPGwJanFLRfDIa34JT3y8dKYoJRhnyGSK3Msaj/ECqvGDqrK +Tj0RRHacxudvqtArz/f8llC2yTAmT/k5zAMgQPbepjAtC7J4zfIOitAUDcNZeKyK +osJYTleJAhwEEAEKAAYFAlQKcpsACgkQiCN6alOrGy4DuA//TMtjCcGAyanYjneX +8gNsIRktRNvfNHCnxZHYVKJhOUxcwdWS4joMSpm21yvOLTaPCysv/lCzB83QQ/qO +yT7/rSTdsdE3bl4fj6HoRBVBHFvYobcnJtAfhf0ollGGpTv4g8UBFl58X4w/G16a +iGjhmWF9HyrQBAeWVVlb0tfn7Nd9BJnh1ZP/++GeGEqLLxnT5AqK9JwIUAfIcoMy +ic+BzC8glb+yHSuQyrRQxLqESjqMYvz8lBFRXwfMEtjFVhmd10pD78HMISxOYbc4 +3iEsX43hs0GxMPDrU+LlphtXpEQMYTtFkrUuJiJLChwQPCICphAJ0uFBTkaEqsfy +dD/SAPSXVuYbYU15f1LwYlP4bElFs8paW1X4rFqUW1NpamCFgZ45t6LWyOD3C68L +UhakgHnmZ7V8ZE5zAaRxuuR6M+MJ21P+okEVSQWLKhj10if6KyNQ9XrNVKk5MqNe +Wledhn0qb82LiZUY4YFdyl46s8+bK/rmwD6aaoFbs7+cfSD+lx9Tom2vwdpAe1Nd +ZPIKHGdLKhNBW3pWX6iFDJApUd0v38abJCbrhjX9sqHCg5kyyGrORHUtmOJw3WN/ +9jg1xzDxOiHXOBh6IpfHrFv7b1WZaj3WKfr3iHypxeCtc2sArX5tz2REOPNr4801 +cb8xYxoNDV3864F//HYvGEMbZsuJAZwEEAEIAAYFAkxksogACgkQIjrgVb2U4VQy +KQv/eMQzz9BPy7foSlOsm/nkNxMXm/K8EFm8Vtnx853omFI4bTVR9kzFrAYgLpd2 +w4FU4mrYfaa1FLL25pObs3sLDbf16tqGFeKufrjLch79YVTMHvaZY0vdZU4CdyUU +mcp/Vhmg+4lamZVfuWHAvAU4NZF8ZM70WGWzcuJdzMjcg5zl2n52GFoxKeQYOwV0 +lMyNdhAuRdd5frtui8Pjsv+sKhlh+Xy00I9pVeiS0J0WSKKglMpyKyDuD2Y2U53z +uIVd1r3ICIpwKMj5UHSyFabIlVKfruKhgN14V4w25y8SM++ExHnWmif4UtGOeM79 +u9uZgI0TGmsRI2JHlLZsBtzjjV1mFkVPPAdq+agVvlN5NhXClaelRHSmGwB4/cRM +mP3kdka7uyK9u8hetRTJXK4G7X2/NensLPPQciUBCX7p9v70yL20NN7Iw188zYGk +id5WfATHdQPA/t7zcR8myk3aAI5t00XS6J57QRjbmsHlL+3iOu+5M2N8q7WMnVvK +Ec2TiQIcBBABAgAGBQJMXqAgAAoJEB51mnJqn9102rsQAKOwVDALCy3r+DWiTN0+ +RWCHIL8vAO0+dY6pG4U7dHoY4pwlnzEGNdynjdd7KIieMtzi7CsBFbf8tmR2CmUF +KVEVWX5A3DTlrq7NBXU/bgXHW+Ldnozg5W+0BKHk2s3BOTpN62twKdscTTuazb1r +ZIVdT0FZ1Rkpm+iTmfRZB//WNMUEs0aq0AS98nPuES9N+sfxDQ8NQ8KV1kirWjfk +sXqMmPVEdSuU4PYLSW4V0lBMYRYfJgdbkvV2hESI8N/g5CPWEUHLm34Zmr886Ehm +r5JIyMOx8iiL0kGHvfgcu+qEoSx1TiYFeqauFzLtnDNSoQy0OJCwcqvoAWPn/JZY +2EMDXrYpAYDL3w8v3IDSdfqcDLOFwvlZFKNv2eC4C67h5WiFncXb5XDeWWLmsNTj +N4ntv0boUYkcztv+l0BLTKcSfhRXfby3uJwDR7deRqJCgSFcNQKXIGsQZyK/R6Uo +FNmlyp3wp5lAOEizwmKQthpELSTQZA1yw/X7OS92euI1H35KrG4JGJptCqHD/4nk +Qv9DZi1d+V55nXGTzQhbjv+GWxbz0dZRJq7tvkCMXkjKwcdf6Dv3UOCGrQucL3jM +/fFB01BxhNnpHx067l86mWgtWsdpbVVh98CZDyynuu9Z4NsqMfg2PWhEMspZfKfd +g3b1xlKvZQ1D/7yDa1OJ+9UpiQIcBBABAgAGBQJTLwEUAAoJEEMwFplS1Vbb87sP +/RGAuEE5IarSYV9kdO97dVt25QJpUn2PRXVFTTrPAXbp1mDWVOSzNV8gscMXioC/ +PwOdTsKFMja5sVS3zzI93pcw8LIRjjo8pEPamY2M9bY1YoY1FOGshcp80i7M2yZ0 +Hy0UYF/4AS1GlFnK39+3p8noLoqso8MveTdpy5y5igYuk75dGbQrUZpKudPfvOqv +kOAD0JtlaOtYWnN5FQTs6wCbyPDRIAXhCS3lQKtJ+LVxVgJePm6cU9jKjQbqNrev +Ugf6baC16n3BK5+oq6a/sRVCA+uITdA31I+PeBysvADuB6svEQuqZD/jj7h0tLUG +cTm1yBzy7AZE3HfivjCkc6QuMcNDVl3TjC0HnlawwyevSZpgXDO0Zdi+g7yiDHzX +SNw7CX/hij+YrWoGmA3+Ufu0SGFSd3YS+Cs/O9sSalP0d+Jxm3D4F05CZPPCz2wz +y5JQFlBUchegrwcLw7XwJkxvxcgjdSzqshvCGnQ1DtKne+ewYNQlBEyeVhx1dge+ +wkQuQvcL3TReW6X7e7F+wMafbWuXoCqIuPJhAGpVVQyR17GEF7MMkAF94fNA6Ntg +D0AQhmErg94QFJohbQ7MYS+SQt6T+247tLQdeMcX9atZZfDFyyJBsVBYMrx8W19w +PjLqttlg6ZEjauqw8++mlqllA5px2muPN/n/foYv7huZiQIcBBIBCgAGBQJKecXn +AAoJEPU2qnARHVcWlw0QAIZYjAEwM6FflqrgolO9YKP3apN5pPAWPRHp9zfxrJNE +t3mCAxpA75fw19YaYwhjRHV8gCsmMPmkoyw39jpq2pHNzyz4w8AwGj6By9V0roQw +k0Ek+gkn+OsRMWSA9XwNt3RMZCI6f4lArs6r7xQenBWGLaGfZ04W7WsluB2oAw53 +DMIny2GStLjwe48ZZu8joujtpEif7piTz8AWYYTjeWfa6LPc9Xv11R8S7Vcx6Cu8 +bnw5ikgeqsNubHed/pCRo1oOhy415BBnCtwCDN+eM3C3SPyqlzurlEDZDUfFzznL +snnhWXOunhNnUogYpmtYUk9FigekqnGP2onkUPeBBNMXBTnBcyN4MhN563gSoDra +kk0moyUl3oGBBA5rDg1ST9M8MoYSsfCiUogwdgTLLsoNsdrdGuaWiBFMqw7ruT6K +neds4CamfUfoMnuYQLI6KkbfkdITDLmaBQYIqNJYS7fYpdcCwjkoD0bJivlNpRRx +xl8DA/l68fuhjC7Tv5d+LnmwAgNlh/QjpQtI+aU2ZEPWGKhIlgFHT8xLOOif/ymX +LpA6KUs+P8SbdJRl9lmN0GrCQy4GhiLTjZg+286h3b08QFKW0N16pQpe304g0ba1 +bKs+LgFn1GBkAabDb+xGB5TFX39blGuRFl2SD/y0fdRNy+NP1KEViGGVto5n3+uN +tChMdWNhcyBOdXNzYmF1bSA8bHVjYXMubnVzc2JhdW1AbG9yaWEuZnI+iQEcBBAB +AgAGBQJKpXw1AAoJEO/obGx//s+Dp7kIAKTbFpjjDJ3NoC0TaTgvNRnR4ho7zbE0 +oWhfh6qJLOPmbi937kFJkQcdpRueEKjdwBvOe/DUDiPEKMa0BBrPmlTp6vaqToeL +UBc8NW4vUjy2hoMG9RZJuGfz5ouQtEs+FbP+vqzEat1LTXwIY9AtKhbuzSdFtS1j +9ngZo2wEuqedmNQOQb7004hZgB4RWxsrxggG8okHecjm6Yc3a+53c/SOQ470deWe +qI/tNiAlCTAbEEVOUxky69mc5FU3qAVkEZDMv4gNrdagyQiOyQ9GAxnIXoZbSVkD +loUE+9nepqlyJ/uPw1sDRtUjJkavhAWjCeUZbQnMdKfSPTAhBfs3/wCJAhwEEAEC +AAYFAkxFp+AACgkQGBR7BzutKwd4lhAAibeg93aekiRPJmHK/oqopY818pNtGqvk +AMcKdzpXX0rLERV8L2sf8/en1PCMSbp/ppXiFn/V0LerFJ92KKTmkHnObe4PRiKT +ruPeTCkGSWSD+m+uSDvs44Xs0oLxQvUFA9zBlSJBX0yQBhG0uNELX8y+o4kyb/Y5 +UQv6EZgta3ABaFZDqhJuMbPFqaDRJExcoG28Okq2CUdB/EZWEagKJ0SQYogbVyMw +SClPLrHIDE4GPgbGjTtdClMFSpqpYLqkMh+VBgEjRUY2GlJdAs6DH8/YPmoaCAyI +RISDsKYmJUF2oJtuErxZvs0pRQ1OCBQ1S8I7owoM86H9YJrXQkFxlCpxprIU6iQF +b6t2Gs4Pqp/za2qJTvdKFpqlPQM52HOMZdXxL8lLW8TJ3ZA9AGIGEmcSZ1lOoUkk +wKcLgnmC2xdnpkQYKJI0x7hwVEYVFC29PCdblSz8j/OFaEBYKNF2hXrZQZGfzp3s +MDXqppzM0pwgWr0uobdqqLMVNOXyxwA3EY89Xi+GZ2Cp3w8At7/RkqwJwIFTFDqM +xxr024lBlM0NfVCnNDkXxa2442iVZTVNKhNA9GVBNx3Q0fZW/X+T8nUphgcFjBq4 +muKMcC4cmGR3tkmJJMnFReM4DnX8oNBxq1qrmkjAa/w0+O6xoOQ8eK62LWL4JWK8 +C11ED1aTi5qJAhwEEAECAAYFAkxaNGEACgkQcDc88SkNuc6fhw//SNu9oNc6GJfS +XF19YkaYCKasylRLkjNfxT0Fzt9iNMcHzzeNZIz/Muhs4SXrBroigq18vc3AaRKL +xPfCQvR21HP99ijMnXEYtg+KCnKzlLj+0aJprGAMTIktui4FVJ7opxr+syhJAhck +d/VpauuhsyQ97SMuYobsezQlaMYUT0AhvyaUljDLSNjjoY0rWhyEq51JepNd8uSY +cWoJa36QY8+dySvx2MxYG6JfQaV2eniFcjnzjdESiDng7BpoXR1ElDArU1NF6K5j +hzqnmqsN5Gy7FDvcu9pj4FgrM8TIuuH7fcHkR16Zs/IoLjE1uhe0O0YQflbLH9A1 +tnZlrarZuwStSqOuEhkyL8eo+7/MIP/KxXn9AulTZRiK3CxUkGxNZwCs8pkI+DES +gMLB+l0tbBj10BXgeG0vH+ELLb7ZZwputoN7e83Atn6yOKOn++WuTommbdVuIybN +7aZ6EcWT7FpvAAxo5Gr+UI4k9z08J8GAIMYER0oVDpHVIymiewn7yyMC6am++UO4 +qPc8hauNx042UFQ+Iw+ij33irVS0CK3ipJZWDS97KbROczBuG1o6+zchh4uk09iA +LB2v6utUhuZOkYUmeDSbUnedReLIz6DppBNsYhIaojyMBSvX0Kf7opfzq4NzWoZG +6bEOMr+XtSGZVrs+HS4BIPr6wNEmPUSJAhwEEAECAAYFAkxcdXUACgkQ8aab5CnA +/+7r3g/9H3pcGz4HmbzqxlfzdpqL5Px/yxLVB2v4TgxRL78dy1+L8YCKZ/us7Vz+ +QNnEOnFX0sw5WgUolKQm0b4JlZgZvzVkf80/V4xN8tVZ4V+QgA+lPhUUKie/iZ5l +fY2aIxtDvSekPT4rhnowig6WOExzn2keM+vWWVtqFO8hknc7XobOEmKPZJQpgcly +s5/PvQveGKOpW++wHS58nEU/vabRbP5qrTZBnBSSvgU2NPVCDLdrGhlOtkNgrcHL +YYB+xea0CbwWt/DueLDTTXnTQs44aiDP1FUEPl8BYMxLWr27eqICIdYnTV19ad5C +ENbmZze58XGIge4KARABjOfChgNVOsGyiy/GmZsD+gikd+RiCT3InnExq3XzH1sE +vB1inOLvdqPYbtIp8NEvYlXPPAq0DNVcEt2atbIKZTekxtf+OlEWz0W2a4OxQcMC +EvTlwTvgd5sSxWoXGUnkEnLj49TiicCoqsYxVM1tPcaVkIQPFMm3fgixsmr47ANM +p22fG8oVMlwXQDdanXih75OOW0/rwbSRiMrGxDCa9xu89z0Sef9RNIsdS8MyOIDT +ewTtrajKCseD8ej1ExU4po8JRMZkub25KJZNWktpX/ZYRlv1zoUgLwrz4u0V+I+P +WQNdlCfgtEtt1gXsiOIflTeJeF66qHP496Xe7w/S/D2A001I9AmJAhwEEAECAAYF +AkxgdUcACgkQHnCRsfFKZKLMjA/+P+ibkcnFcNRrYCHs09URb9n7BZHMTYTXXmCV +OT2gakrayas40EgRnCFooUP/byXl9X+y4ezTHDmXAwTHbQ0GOQP9tADwCAUE5ppY +ejZueSSVQ3/G0DIixfi/8JSgaOeP9eWYqhC2OpJ20ivYfiV54KjgQf33XLolJtb6 +tf2mu8tiRKdBMFpADVn6OWgTmvnhtp3A2tu9ivnE59dHGR1YQrxZIJKx2UnhnZip +G6jlayiFWFDNF0r8CIJ3U0t/q2y9tuVmIrYBvY5Ln8DfOeupKC793h57JRBQFYZo +KX90ccdQKBxyai3iTXtPB094E+EiuCgeAtcYIsCXY+Y9YdLYVQ6ZiE7wj9mpJpwi +li0x3QQCAXuYtEtAjabZpbFUA/aJ8bfsUQEBn2P9KRKHfI+pbpz5fo1TSv5+aoe6 +GD1qRNb3jOUO9SQJwZZgJyMVvmWMT3qgzXmqtIaMupjnxkVZHQCVEjUTs6hqlgXR +os3hUYjhnv+JsoHxxH/j7BqEARvfJlT/0VhXpEkQLB3NasHOvGNLvW4EMeaT8RZY ++ovAzUdoRIkNcSANs1y5tzvsNREThI6E1sPXeCy/A0k9LD8UDT1cAYAYICNBoa6P +Y1cjYnpThcApobtyYeNFle0gU9xYDbUAK9GfEBxnwYWcXRpEx+zp9y+R2VvHyC3B +D2f/ug6JAhwEEAECAAYFAkxlkM4ACgkQE8C1Zno4sLCCeA//SjG2/ndM7iqG1KoM +Arnf9xZh6OlV9YbFmS4TW0p6tYyO4F7Pp2pq7S+RuOHhIUl6YtLfh72gOxhdO/vU +XJZQ20erWrJ9fg0Dzd+F/22kNwbGf6Ehs2s0eJDaUP61Wqy10nmmm2PVDa5gdsO8 +Xs+A9xJOdi89/k4228QhEO73S7emS+GMxrddYnE5c/inGYvvVegNEQT7dDE5f4DK +Vevvs6GHgEzosr7cDgjm2dcyCzzqSezXvibNlEfqf7NY8yctx32M94qofTqboDNO +q9fOJa9bQjDCcCp9sx5eCfSUanNZeigGf2msvGwZsKxPYMwfERqZ2E3KZso7EnC0 +SG56VNM+CdjRFRxXiJeYd5zaN08RR0G0fsCW4FjPM/zEWumpFwx2xegO8z53WazK +zAfJKhZ1+1GDDpCvMLSDMv16EIkqCvNCE34ETTvzX99nV3ph/30sqg+5X4HjK87j +F1K8YrfTmrC4IkxxVxHUPuGQdm4E/e8QJXGa0Gxz70PxCe0LDE+/xPpohhL9VK5P +yQV+QLJ1wDcHAt4tVaU63u++BIt6eOyx0s7XCcEc8Ei+dywj0r3Tbv6pDSKMs9fw +C3qpB8aZerCLj0jAwWFfyhjyOp0ZnCxY7QuZHEz6eUM+UlJABhgaAa92GEtg/oK6 +6Jl8VB52N6BzzHch0FP4r0UWJuSJAhwEEAECAAYFAkxl854ACgkQgNCkL/LIUMqz +XBAAhtyefZw2hgLxBvt9vbPYDgU3YX9LaEhaWpDQUM3smZCqwNGSvIuPkEXhVCHP +0OqNiQwMmdKHC1HKTz8EqIL31UowaggWTLx8fwbW1eJ+rAfh9v7cYw2ekdg9U4J2 +hGsl9qB8CmvmhiBUwFKZ5Vkl8FbIVHtgQz0Bj1H3qAt/TJAOjRar7mfcobRGnOGW +NdkA9oW04Ui3PR+CUkn5mAtcRdzYWIeyHhaEsut7YuaejQaC4cAcTTiJEojpzY3X +JMNuFjlXpDeyIkl/3+SJIZyncmrY0bdQINi0im0iQCaNdTrDua1GTAGKIe3biEmx +YgwXjkBfLK6dx5eCihjVa2ym0spPf2u2IX4xVkaDu9cbXNKdEYF0x1s9elFPtHf4 +2wG20zDyP1IwqEklH0mZapkYi1iUJMGmDko5rtoCF41gIlP7QC9t/H6KFlaami6U +vc8ywygYavnD2rPWdIPvccQCU4FC8klWOmzYV+/222Ns4LRCxLyr0HBVGXEayAih +FV9OEW1t9TiyKsEP6nfW4iaGqdWBVrQjH+cHlrjzqAgPEBaYihpJCTCTr3KCZoYV +U/Ftzi1honbfHXQLG1qkWxZEp5K8PjNdlRAv9rz5iSkR1+TsSQUAGaZ1/drTFcH6 +nIYakqxw0C4TlKisfuFa/kz4hmqFZCjyf8KszKNq1GYazzeJAhwEEAECAAYFAkxm +1s0ACgkQHAH0Q8nJPFrgIBAAh/jXGvADqDcKfx5SFTTzuFtCqtXQvClIAKIBGEsG +drOu2phbP72YkYMIyLr4ncLx5syMBU57K0RON1cAGuEGnr6XzNQA/8wj90mPBI10 +ikhZ0k2kUcXxFTUqUpOfQhKPrcvlF+yP0T7ndViCwFKaZz1jwvMiHQuYXqFAuxMe +emPNS2Ha8YVzI4FWuf7Lx5bOypvUXNy7MexnyBgArEdJjdGmnBDcw7nAZq0B5i// +b+Wj3EufV+jEE/fcQToL98AuVPaMUFmK3f8+sxIGixjtvO7FUp48lOmYYrx0edoN +BgBpZrd961fP1OC2k2m/8bzpfKrFLS/h/rbJ5qZEdrOO2vTrV9NeVVbOOg17kodC +mb/MW2Fj2UUtS4qrFxHsNP3An3vUG0bwveBPpq7JY5BXPfJ6cywEYF0fSCIZgxfb +ZDPSXEftit/y0C/WI2IkTF7Igm6GQNthYTwiX+g4jjtAl89pRnC+EvAnHEAUFxLx +pLwwYERKESwSjVr4o81mFaYDBrZnFw+H0RnKBAqlHv3EJZWNhOuyLJGwmjvwjo3F +YstUwVpl5UYc6LxMdOSOTc+H4ZtN3kedbOfudmRVjWAJ6SqsMjun2rAzm/JKGvIu +iMDLCpZSAHR9LGrjtONFCMOu3ixYWXWI8gqskiwSHGhRoMfSx00jIBtZKircIzqE +39KJAhwEEAEIAAYFAkqSAEoACgkQ57/I7JWGEQlGjg//SRRtFRxspINlbWKw/0qH +yu1+W2YS8f2cGscnWXxVDZtwNQvGTbG8Lxv2pskiuiKk9C56s62T1KRIrCUaWrtt +ZoX0jRhizCCXfcpFvxPiLm/q9ybILLd40HawGC1kdbX7L8v6dzDX8VY5B1OhaDqa +i0ClZrKYNB9LFnbgIJMm8dw2AlDdV8dJP3HBp+Lb6q5pdhebovfskx9JvWPXLmSM +matxMvNWYDbHg6KHDN0dS0z3WkhamsCnrtlI9bLkIhixlhreMJBiyvFx6GK26ZCG +de3EI4T4mB7lzaMVnHua8bc8NPiW88kJ5P1VoPQS0RAVVvuUcP5pAK3VXtw/1Gka +HoNWerHRFQZKttcgsfdpYfQBp2wH035qcqX9ry9qQtwIj1bsR+DiNBzF60lauM72 +QtuaokktSIWLRye0uEY/cBjbxEuV2jNZJxuIOTBiUTHa9u3ZeTRBagM2XvZkz7+T +zU93p2kzHW4KaFNBLXmSxbiujcJOuYokZZGIhKqLqxlim/q/ZV606eKRWez1+FTc +sCyY44LBfxUF5L/ce+bQ6Y1G9BEkNsGf+YcCPJsLjTE6O2CR605tmsqC82J54fK3 +W9zIAPu0JEWmxX5/AwdKXB3QCZf9y7YtLxPOdqoosmF6xv6Picv/NEq7YM5IfgaH +sMKbs7toB+bTGFnOrEOA5bSJAhwEEAEIAAYFAksbkREACgkQfFas/pR4l9hrOw// +UPAvJ4q7gQiAfl578OjknTqsPSGRJ1s8fIpWBAIPMxWGhOQRFCC5dgFLyiFc0lnf +wEImFYI1yTEv1QeXegtusl4YyTozDP2GT90TbI1BuIkuJwAY/lZw9zZHdgwkXePs +F5ERG3RsKn3uJh5R+2Vmo4oYgLZ5w/wGnVsN8cd6PB8NrJAgEOj6d7HMpU5XpRmv +Lz77/3G+qvUGGlvkKN7jeDhIvSyVQfCh2ff9cO9bOckuTuTeHmE+j9z6jIM76fCs +imClPKwX5/NvwC3E3Lavbg64q9jbH1e5Kq2zEe2OjoFFgGmwLoLo8Y+CVM4d7/r/ +psHDkl3PbBEMjDSCxTTYcEGOtj2ZTkfjGUv2rhWDzgsfATxDEvLaFq9uOM9POtKU +fkzRboSjWeHjCRVb+LfMV0vQgXUl1/+PmiHGAE5QZdW2LtoyHMGHDrRLMAiUXEgU +Nb9HadINQDXHZu4qqrepTPgl+KOKrmMFuTNGSk/cHFfmPNoU4EMRurfKz3kwPvo1 +Rpg8mUOmRGfZCxFxflipqrrOYrt+p1s4AprbNAu4mdMMO+X/QoUEAJk2FY4BHIxK +1aruhOCF35eNDN0H1eGFqMAMSNpvgz33ZvNRXAbU0bV+BOAxGt4D5GJ5qE7Xq7c/ +G7rmjDULMerFCkX2Q0dZXVnBs12a/YrpBclA5/nCIBOJAhwEEAEIAAYFAktkTfMA +CgkQ2SnymSvvCjNV6Q/+INiIkB95h0Ob/HOQqXpy2VZM8v5Fg8ijxhhQdKovFJwg +1zfXp+8JcGArv4E1MExDVhqj13g6B8ZN8trEv2bU+3/I26NzGijFu5bK6es2Rc6V +O3U0oX9UYlT4grcznOomowAHjjC0PjeNZZLE12VY7D/MWzhmoE79zT0yCxg7aCS3 +ShlLTast020vMMESSFnF7lg+uEe/CzRQMQAGRNdGjLyPNi12vixMCdg9OdXReDrF +MWWAZZJiJye3ncXknuQugLlIDaKCjEO6TuGLUb7lkaxa6J8X827HWYDP11lGKUPT +RTWVkW2CC3OD1ikW2wlTKrfd9qQMKFQ4kaPrrxZ9P/oFchPn2/8vIHJRqziUQhip +XTfuElxI1rh89wPmbAm8vBjCUeP9B9vQymflrf4e8nfxAvelIcfGfZkrZTw8Prpp +VyJ+TfecCXgeFK6noICSuh3BSAxn86j6NKTictcmiG2jn8HlUOPmT3gi9FEj28rD +MUUWqMtX0x4Jhjjr3uR6P969X7BcCF3tC3kfeF0zaK5rQ9m5wxBuYIfGdCwqHOZR +zY9DDHZRmLUxvKIkYSuGbE1G1I+WgZHOUTBuaELm7985gPIqEXHy+O0uEB5OHc0p +/yiuFwgFLZvW0435LkpWE5i7HhLMbQicLTpzbk0b4tebO0dpdOKLh1tMvFK0PNeJ +AhwEEAEIAAYFAkxYv2kACgkQ8RQITAhhERH4uhAAuuEfVpxqk/kPsIalNjOKG80I +UJrJSt9u7Cljx5sFQSMjlSQKAD7xeM51zL/dHdxV0I3sVCaG2DZ4WW7lFJ1xFkVb +xQlA8xIO4jlhhueqA8w9t9+LaqQoqRRRu5EmYFFviVKpDvJtNAk9sOBLxru36PNI ++Vjl0OtscRctveLdOoWkQqWbjhsDUM3taJ8tcDe0Lil6fG8DmUBOJfxRiuZTVLYC +9iEKmjlZ9x+Z+av21gtpib9uY2wl0UbAcSL3KWhFdBIKDpQYuvE0pQqjqut0UiKp +Rmrm5X866XFVZGAK4ePo4jBWssZneTZG0D9no302uQ+S7rjNCMUnmDuYqorp/Gmh +MnnTX5VgYTL+D4FKXDn2B5T07jCxvUkKefdHWZPYbuhBzAz/6LdpQbrgyyRGym66 +GVeBnu1KKxQ5NEZwECaaaR5AWlUaCJ0f4YqUMD8jZOGQZSOpBb+hh+G2Y3Pzo/4q +d5TZCfv78+bXADC2hJknhVfJD9ZgKFX/wCiI86b1pg2+S+0BFdwfSMMZanv0zy03 +23eYhRD74XHvoozihakqzBZdL63UyymRr8OKXk17hDjd02PD/NZPokzEps6bw+Jz +C5RaVG5vEaN/i6DdkWeZsPvRFI2bSVy8RPJ97TxdS+4OhGdKVgN8yuho3f7Xp+xT +J2Yzr5gzhrcgq6WLRJyJAhwEEAEIAAYFAkxYwQAACgkQOTWH2X2GUAsUHQ/9F77S +AwM57c2FNePhQNbSyFAwjQzALj82TtprEdxth9P6ELjhGJJeSqmy6juQdIt3ru7h +DUbzcZWiLkLTDiHEfjAZtY3FP6iB2IsrFh6rslwTgsQpzAVlAgWbrub8e8OGsIxh +ew6rIwHVRZ33j7D0M6EHxidFV0TDX+vlB9lf+CiHSczHKCBytzW9qOHubb8SIAjM +EKtNaCmx0zgy/WSKRCgrgCZZo0VQ/RLQot3hNSHoudWHZe+vbsSuYaI3KVPvzM/o +jKNZwrGZ/jASu4pIBemSPhEMDkeLfyp5vXr4avPvY5Eeu5EXJH+xbxMMDyvDlN6e +6AqnYRB/J6XkJU+fNhzykXJwzfmDrnyAOTAIV+XfPKs6/todJhK7hDQkK2brpqyS +1gZFn+YsaLqJ3mn3mU+/i/IKcxg4h2cX7Vd+UYd51Z2HXY2UxtLc9GZ62bk/9r2r +8w00FI8VD+9wm1kA/9dpoOQMDmkxpvV8BOt5SRHgE2YD++fZ73kyUICgocwB7NbU +pWXwuOh6DiagB0a4VCxopjOnJesL0y7cnIqtSF6i7PRFGh9JRvhlRcZTof1T9IDD +okErBhVuXRM5GRuD8jkOPbm6wh0uXGXk5hP7pAcP1ahHw2wELZhR5d7x5Be1pBy8 +8eqlcDgIs/pZm90KJDIFMSVp+W35j104UdjhsFOJAhwEEAEIAAYFAkxYwuEACgkQ +upx4Bh3djJsl/Q//RdPIa71jy1JDZtNRawhSAj2pGLgMN97wyZsQ9Ban6CW2lTeu +nT1y5yeIlXJvvQ79gOR/PY3EaYCD4JMtGopPcwxvh10MoJVMJkkr6JxC+ss9Qqgg +3nKCXLhe1mucHgHHeXvqn8ZVBIoCf9+lYH881ztcDwlYHVPgiyCg/oqtQCA3xgQO +1UGzCL8gaMH+hc6sieZtHoVoxFF035TuUp0DJVziNx1kcIMFVOjNaZonncTGuvbC +uBwyHkZAAzMlXD7fVQgvjilvQwmPi0KqakOCeowHmh+jBbYTdPWCcEkR5aeAmyo8 +mwQgb0bkD/cM2NHSyN8JcXtgUXFZ/m/gNk2AivwCDV30NDYNCINML+AJk6CQZk9R +IzX10AICDZ4eoRqKj1ZxP1vqkjcNk2cFjkPtF8djNeRkwNYO5mv4L4Lsba5NIxgv +tGLzIFa2CMdqEt/NgQhb4qZKn4ruJRlgweGVbeNTdxyp50mXLlBsgDR9pmqNzxC5 +3+BSfK8sG1dVTukYwLqBy47y+V3Xmrm38tSfB5E8nlnU067N1VYrwlziXi/4TsVr +MnUEwdgHCIgpqGZ/US1OO6pw9R04vIpNu5pFjA2+LKgLZ6IHI8PDjF6OKaoAOn0E +R/bizeUEG8XHCVt/ThZW8O5FcGq4O1iPywuhwUUcUqMtOYX6k2S+OYqA4r6JAhwE +EAEIAAYFAkxdQScACgkQhy9wLE1uJai42BAAoY3FzdPBDl1DNLBB8HR/kxVP494v +8esSPd9bCxcakMD85Re6neOa4+siON5moyRTd6hocsBNDPKolfVQErIrFXvC5+cA +x9E0mpSxXLM9nhly6dUgQEbTUp05vCgwu+Dxn8OQtnHSXvt7w/j6s5+L8b09wYe+ +pwuYwM/KiqzO3SoDHdM+u3PvtT/baHwe4JX6gmgztmPAXN3JQPmZk0LMC86iYTtO +UcDvDjuKwOWX8NWcUafyHUHkIAtudOPFf0m5/SVKCOMovW+xZLn0EzvhkOQcowI7 +He3Qf8npaWG7SMx7ECV1ACgyAKpkiw+toouCxqx3KaPJ+S/bszhnzGXujsFVaPIE +O7HamjVneLtfUPFqlVPym6cNzV2OcrVJPDpvqWr+Z2csjj4I9kdEEvu99ud7eAU3 +LYhsm4Fb5oY6mTRgUb2bC9KILyMp589NTXCQdneBojIIOoGrtJm+sqPgrD6qG5z9 +pnaLx5igDEY7Vs7qhw3KfsSG0jBqRjRx8hOYbaK6cRcggFrlmJ9Bb035Bz5jShrt +jG1qDLgBQ3Tx8qxg0WYND60DBto2A4jMAfPoTuzoB6xedNl7CiVlqAfnrmbHAes7 +qrbU9OJv7E37ohmdDvU1UfcjUM1KTBaA/s41o81f4qlXXocJr7lje6XO7AHuk/J3 +bNF4Jb/iOxlJREaJAhwEEAEIAAYFAkxdRogACgkQU5RHndNSTFGSvw/9HJzidQZ6 +/8ByhQY0oZkNtdQAU30FMwbD6Gdq39913UEPPs41D3oc0ftG1VlTJ7GKpHw167TG +z/fySbUuwTOwm0sfqee5Lup20c1329s7XtRBJm6Z0gVJeu+RyKecUxbGlIt3T15n +I3nJvgYvpXBFJ9Rq45k/ikJsxOpfpxzSbNLfh55DgRWLGF5S7VEcw2T4cLgYum4c +izPX0LVsanS+817P/Xe/XVy7YqhGZ9ehP9Gi96DyB7+VKBsreg87CKFZ4nw8sFdo +K8pK4IG61ENDDHVBuupExzwqZ9P7woAp9BDrLJT4qSmDScOmwTLK1xnDnulI3nD+ +kvZ0BFD4A6w+zjCWs8b5Uka24HUtvi/hY4w2Unfrtpt33XY2Joe8DpFknLE5oKo8 +SglUDk/BFsUpWCHd1EelQZigzArZ1rZR7C249AfOVPWL4QWy/8SrOCE/EUlHJyNy +9r3ioHV7YbYubLdNzods5VhWGmXH77Wp9bo1A/qwpcVtRv8+rQwYYL0GpOWsDjs+ +NFBKcNszSmahI4UI1HqtBZHEkMqUfPZHTPwBCqaS1ecOEGC67Z4F+zejrc0vDR6a +FJj/6/cClw73katNZQDGBDxoz2upZgmPNrIEkjSp3/LWv8b//a5LKWCGQIVCC0a/ +jU15nxC2Asme/yZ7YV2iBaIspIxX9LrjqyOJAhwEEAEIAAYFAkxdiZ0ACgkQeSFS +Unt1kh4psg//VbuKxe9GzgxMHanFF5SDwiqFLy6BlKtBYOnzqdzDV+bnR8inth8O +AJW1J7r4dOgqj7Dr6wJzQNzWadqT/+JYycSVuSK0s3XiGmtN+Nl2kws/4R1gytms +btfKrAYRJuc9I8mKzNcZMKANsT7zUi++gR5mVw2z/F/FWMh2rumRKur0BEQaIZU9 +OcXljnylX31/+RPxvzJ+f/JwbmKM89VdO+xOrNhWCN3O5MV5bpAgataC8zfDNPpM +Zd+B4gZmYYPlxNFhIEbfmoLdsg6lHIJw0eK8soJm8rkxHlfmSp4D6HPO8EV/oJ/m +KvjJP6REQIp8XL4urcJzmmhmmlyU1wjypXuYoDE1lhMo3YHcnVscVQOQSVRjKMBQ +r5/GUn1npV46lS3zEuMKlMCBM6/mShc0JBm3MBi+XACPV6ckj0qUAnZMh+zHX+rO +Y1b5Guv+BOTkE6OWu6it5wmlDTJcBZiCmu7gjkLsgco5vwSCbSy3xN8PTsQP5MC3 ++wMWyBiSqEr5NIVYXUD892lSaQM8DYmKrYtbSdINzGqLv+frokwjBsHU9esU5lUQ +GStNjMktRrb6bz3A3bBCDj77dA7e/xsv7ljmZ8sv8OsLg8RjFZcCCbv5pGTN07dI +hovvH18sY3qv4Mfd7opVm4AIuuupVzCfEodpv6QejaAGiXc2snY6XbKJAhwEEAEI +AAYFAkxfJ68ACgkQeo9J6LY0gL71gg/9EVN0CK4DB8t5lrAFuE4hOjtqqw9k95Du +aDvksGIOypc50khhSSi50lSOMiZsnvPDjoh6voOg6W2DuKnqv/WaaRaCXTqZDgXV +FeGseI6dpOdDMGX+6HME2E0gjEw83aqIxssU/sgyRaOEbbb9+VbVwhE0N1n9gEJd +sZo3i2aUKLjfcHyqCLEE8zF9aQFwsHGRJzfHh2gyZuG3kr6eNd5LCz2gWgbJZbaU +m7dZHmARQC0EYBRulyG/72uyd6E7giHcKTKuIHUCNwdeamw5AHkubgHRHVAitIQo +2f28CzfzvavlCwfP15iJPhL+VYi0ZgZPGIaBydmfQlS4JXgJCIxLE5TsTVfPFjLS +RMMzc4P0r4bEtywke0PeiRNxzmxtqpfCQf/PR+dd+3tavcqsGIcGZNDfyKFzDVhc +Go4doDNRWOUoHMRrzMeWcaPGVx2zFyEdKirAzHKJcePirPuaYRKJF496DAYa36+F +mapXzsSe4rzciiPwo9OSiH5k8VRhmrz3J9N5U9DGr+ipa6tc0jspJ1I10+lFLPjr +oi2BlyURrR3gGDVbzIvxzbj5uWKf0UMl5aKDqLJrLdiNC63W3i3KZ9ISHx7OMndO +ZP64n98DomWm+pj/uGT+GBF9YJEq4tXuZMkPgjzm7impWDWhKFoLqQPL5IJVGinb +TmQmMhTJSY+JAhwEEAEIAAYFAkxfNCwACgkQ0V0xOIIAQXOsXg/8Dc1US5ZxHfQ7 +cVhDrim/H0Mwc2I2+N3lbV9djsrIWmHFeAHZGfF8YTFR3feCHvG+znruag6/yu5D +BeGXF8eMyVB4Kgp6PQ69/odB4wiaYoAe+SuNtepp/kNDnuyp/jhdZSkXjk8jVKoH +Ci3hNJ1IZVC7Yd3HSburFBYv3nHPTf9sOqPVvz6tCB9cjeJAPk2aT2SPmt91JR38 +pHTTXvbpIxlHVv1whJBPZidvmfYXCFCHfmSs/DkE54Fksho0XTY2Xn6/TWcpR4Qe +t/zERH3MqR1uM683mskf15H4EfS5UKbKKd8lNcqy5HP+AyEzys/31QvxJgxcnjAM +ent8JDEi1+adbrNTJN/Cc2cjXRQFyUnOtlYzqaYFsBtfqvD98GhY8WalyPiRwYJm +kc9MC4fhm9rVq+6NDX7wr8dPLhB1pDDgc19gFOU7d4Z09WGC4aI7fgsYGv1LB2qo +9ujINUVlSdCCwtaihaic2UWzmYOlulsfLzxswDH1zX++eZDnnDpWEud3vXcfqDAB +bVnRmMPgIcvK9i8m+cIPFOuV5SxWywBtVjwGdudwKirnDk/5FX4YXFfHNoLS8Y7B +kJq89BjP7bLN/lnbR/HEoFh8wEIKrAc2copgavdin+XUWQTNFBMVc1nbOTtmjDX0 +mB4Su4XmpBLWNZ/kPzBGhBquTDTZhV+JAhwEEAEIAAYFAkxh9F4ACgkQdzH8zGPk +4ncQrg/8DslqDmQRiUrmol+BcOU6JUW1fxJQyCMNO/8o1wLNCkKczSjeMen8EYOS +sjSvOgxuP3VljAXFOANNvAGcoYfb7LLrMRmKc4WZPTuzkFojxWxLyDGCDU3b0FzV +z90EG/pbjnyzSvSPvUMxPYCORziBhcpj3dJSO3QnY77JZ2mGL0TN4z1rnJVA0Qa8 +1nPU1nLIYVZkv1f8fkrKmmJWKkSjdHcXFpF/ykQvWS9bUOnS130KxSWYJMFbZs74 +QCi7QFYIfJ4PRjcGJV90NXJdh3m0p29F4A4rMrZaesvnd5YXeGXgTWhtlagpU3U6 +o3mXIhvc4SazZfyYa31sZ3lZXg6+DplPp8KajDTav399NrZnOvZxoZUR6trpll3Q +Ef9Dhb4wRrSqJ8Gfbkinyd8nuMNlZ0tMG4zsDbf5aJpATyAlO1hNZfjV/99ZrUXP +ClCpMH+1OqC8KNaNVBB5rwy8ZsRuqpZ0fzUr8HLP+KjjrXVE4SqhcUaIJbfL6Dph +nDr/dxFTpJ8Ftn8XTplyaXqH2q1NR+oIxUnjY1hB6ioWSZK30N3SB3U8UHjDBeb+ +MJ0bK8+LI2hf5vOINQommPCpa1eJBAESbZy1Dks2TLcUDaxKs0X/c1SfM0N/xOmq +235JmRnHZFBmijoVw7zpnGbu2allR1WSuINH19lM/xhpfA4jh+mJAhwEEAEIAAYF +AkxnTnsACgkQs0ZPiWqhWUg4ww//QEhvhuZWzJcvOHKY5oC3j9BC8/AM+A//TLTL +VR9amzoQFwzvWcuWahG7Y2fwTBiLCU57vWuf7hPzVlStjuY7RGe9xV19Ib82mp+l +TdXh8+aZgabLP33gVQgzc8lZPe5DqIhFaAkAkXnvoB4pNvxhDxmmbnN/MSCqc+HI +NVdou0hUHxhoXtxXByNOvF0pEtOcVQI3nkTZ5gU6Z8LgXfPupMFAEJMRDqiVpwRY +Xb0w6A143GbSf6OYnyqhCTBaMgk4IjURk6y9ww6PCnQq1OEBWqCzPXGqrmH2eomP +QEixQLfzC9O0Pjk2vdkPwx2aE4/h93RNJ7sXE5iy6hwe2r1WNCxx0PeoJFXKid/e +7FuZPKdSJ1X28KRggTiTQ+84vSjr+iqSPr1/tyIlzOSPusCZ2lzpw8zOm6Mb73ij +SJmTh8iU1NiMAQJrgIGfevbHT+2rKDipci6Qle2a9C52jFU23utUh0Oci8YB0bqM +EBtc4uChmj1Mm6Mmb2CEQGEdsI4VuMsbJ3QdNLIWvge8+E4OQJNoN3pWaghQxBpm +qhOHcupigyFqhrTwpPuCwLQ2NgTDO7s9b4AwZ3f2Hr8CW8EEmkQhKgQYEZ/esyTr +Je5OBbPTvcsZbGBGWLVwCDiqqPEkwsYolFVA8zrajh1PPNKTBz1hhnc5qINAHy1f +9t1gAdqJAhwEEAEIAAYFAkxq67kACgkQCqBFcdA+PnCsRBAA4rxvlzzXEl8zkLyl +lIQVf16TVEOwBQFky3QI/yUDbCY92upPRULX7zG/hqao3uY0vQDnJcmfMP5Xg5CK +na80jGuZ0x6fRTWObwzBfZ1swIiLs7aSZqV+n/RX8D6A69EhPDnJN6SwEDguKM42 +w6K3DZGsHZBwOAegXGaZStmG+0uWvGMZaFTKdXaybWG/MXbjRJkQdXT3weujqtbw +PUPQqJkqDzd+clBGAVX7GyGhqQrB1d8aGnfAdzXlHQXhYukqwFQAx0SapWk8UXmZ +/RQXURAkCv0Un54zWUO+8SVk63KD4NHE2OcUuKmlO0th7t/pvZYoT70PthU+aMU9 +IVn6pc6qXjfmxrFyYT6Dwt822nOjQXF1Try1N2DlPONsWHQZLSpOBg+3LH4WV1Fb +Dy0AiRy8KbvCj0BBKhZn820pagBzDJUJVhhsutEQLrqa2Uccm0dnykiDu1Ur6hAZ +sE6rlBp2kIaV36XHIK0tbORIVMsOsiuwF5RCLNA2uLW5+a1GG80Vxs4xUQMxiNFO +Oi69MUKWdlOf6DpIZm73JV2VXUyBESo52fCh8m0bKWelv5swX/O2gMGq6Y+uvHRd +805x0Rb0mTrGRw4NiA9MVtxcmnOxspz3QyTG+QKsF2aGP+cc/YU60POxBBtWM/tD +H79T36jSSEb3tVuBNn225U2Ax4qJAhwEEAEIAAYFAkxswIUACgkQ5E+AFtNjD4lF +MxAAmSIJ2R+ngsNx2SRH21VSHq/1HAWphTo+Kge8qu3GgqeBFixp8QnJuVPXWCRh +hQ79rPVR3lOFJdFOaN28/2PP4NvcRnYH6D1UcIrLvctgm6QgBnmzgytfGisnsaaU +ac7yIm4zbpIwX5lotKxuuLOt0oG8x1Lk0GF5ONwYxyYG4PpaMMtrVD+hk3p7zMWT +N81jUagVTctq/dvaItOXBRr6mjDYVPjtnlNEBV1azuC/QTkcS/5bC5io+NjVBu8v +AJv25b1kDYy+aDqB0/iA3IghEmckExQmt7C80HuhlJ99T13f+n9Km1b4y6KJtHvO +TcAYJ5cJyOHIEjK3OR6O05L+NytZpQDvIG0hEyUw3vzUrjttk4BNVnymE2dKNaDL +uvGpiaKZuYqWSMStANROPzMA1DNiQmYGNauBY7wxZvxiHqDvu58w2R4X8CchRfY7 +KNhvs7wJ7PlleIEJLoXmBepJO9q1SDtoDTOSvHsmgSpLdziKQLW9JxYe897T39/A +wfpKRvD6fQ1uM6iU/kwFOVp3k6sTjBpdlFYizkm972uDvbIRY0YgPOSx53SqdyBN +tvZN5Gk/H8tgkLli12uCMYL7XSuLEZMPD+3wvTyK6359gObhYs9VMHrGIM1191kM +WrVfJpdgZria8Dy4J+nJGbZlebcpsJ+1aWC4v4ydP6yC/BCJAhwEEAEIAAYFAkxu +u4AACgkQRJdSeLhhK13Amg/7BwQ6JxpNU1AFYe9OfJaOb9t1Qeu3QfIsh+7UCpZJ +aerIrvjk8+pYSTR8aASK5h0cTXmqPRlHmQYmVvZjEL3ZlkBDJF2NBj13M5EUW36J +6nLTtB2O4uz3fF+OthCBfF6UwvRNszgvPWRqOtG7iDSH8DkLTXLVZcfUfKy+TfMp +r0gw06JgNRMluZQ3iDsyUap0oUI6ctS4U3el9P4sg7HEyUGK5vaPnIMr+hX16YJ1 +VAccvs4OhuWi2VE6st8a8K2Qh/K/wQL89IEIB/vluPmYd88sirjH/ZrYHxJHGrZE +CH++M3AQCfvhd02aAEccHHyf18F50h0nmFlbK1oEX9XTuwtekfi7XsIsBQglbmIi +jdNyK7JzNof/5X4BAh+4jVTV6w1lxbO5IHNwRRnUCacp2daQj4ICXD1etl4cDMN6 +9HAjQ5F1tretSmA0NDogGj+eHxx/wavdU7xFBr1dFfy+FrEfKHRP55SBo8GUze+Y +PovBEO7mjp1CdDcOYKUrJZf+F0f8zJIXLpAnFM7eiCpukstYyNjRST56DEsxBVX0 +nc8329veEhaXkNm/G6UdW9sCQw7G5O2VwPxsN/H+/nGS5GMpk+6gUhXtE0kftseT +neod7mEbXTrT3AGNu4Fj4bQiLy/jlhUgzzgkZVYsPU6MQRBZi/+pKzeH9L7T2RC9 +MnOJAhwEEAEKAAYFAkqCEJ0ACgkQE26c8XtdNC1bhw/8CmWIwkM/qiP2szxlsEVY +zzKoPMHMutpWp8CufBh4Ool5U4PabPhjU7HfYyBqFoybKEULekvm1Mpiu1zwQ78A +Q4+5P1bbC01z5BZe0vj3C2LvA8oPYEWBcYF5W0uyqdu16Js0FFjIg9ecWxij/Uue +xwLpSHhbR3LaXSFZNKW8323VqgABAruyN1VF2+XBxp5iiI7GhvBFnZ0/6a/IdKZq +1rDP+zZCQsyYLYnsBBjFMcGQpqZyQdiST3h52YRuBydqyvu5sZOpEXOGYgbUFhsh +FlGrVrue59tBGMIsXeaS2IMzJKaZeTmoUQLU3N8F1ilLYp7bEWyLxKnn8BDiY9jk +m4xNQTKg3Mx821AVdnUziqicvQ9kj+iwnMyi7jYdOigHzQHyMPHHqCXB/yJ9bMAe +68rptAxkPW0K1+gF5XGBKzhfm8dHfLUTmeBOoZBpahWpOX+ELZCfXi3aHBrgZRKQ +G0W/f/zzoJjICpG1WyzJrb/adRJRnowgkVZNs4FfI6SeZTw5u4mmTGgQMxX1eCD9 +dcRYexdQkAnEhv8jX7qCzLsdvSoh102yCpUYxJrP5LtoOGdp0ceg3XSg8JSaxbY4 +aEjOitCXNr5JprBNY3nRXuYDAb62XdbKGL9O26HGgMsurECEZ8FnHA+cFZOl1FuY +dGiv6m5seZ2D3GcdibkYzHWJAhwEEAEKAAYFAkqR7k8ACgkQ91jOMY13KV2/HxAA +qwwiqHX91qnE0YcESm7Sf8Cxftv2A6wYUk8RCIHqyqdinStfDBF5eb1K6RpU1tGe +nsBwjXmn1wUeBaLaJCo6adBRDuf5IjBuQePLQmHdKnUlTyKyeQ/fcc2XqQe0ZhVQ +ZUKS2R5HlcPswBMSP4lSGHSQTtDwbt/wpu42eyBEtsq+ytWHg2YZrZBoiM6LVEXJ +e/Bq8HsXB+mILQS1FAdK7MeoLQwSNDIeik1jO8UFZ5xpfQ2FEJuIIGADJGxAawbh +tAbaXknCehT00/rGk9OMRsh6p6GPezCcr0hxgmnz073Qy0NCU2gv8kySZuDJty4v +mbrOiUE7lVST48Bpxk9jCJiF7hTsLGezS8puuE7dXz+yGt6glua1bY3L8iz2Lwi0 +aSr6njsZqCI3rmuVQiLzZ/tEOdcttvKlIT207b3ycHSmKMwr1iZy7BsMblmmWeAJ +HdH8E1FHioD52YwNX7R4QOHFUqIcN2gN87Yn6yNlrVuf3g8g8+R7B/wbb6EUToZW +8tP1znVlPZo6xXhs1obzBYiZdywmCNvSxH0zxUpQZ+o451TdBv6V8PYXuEXy7orH +0mGdkXjMnXjybje8NLkI8+lRBor9dMPX0wjf80GJEwLhjVmEFj47IuLhYIQIxPzo +AdWOfuUN1JgJ+RmpgoSiVDV9Rpy6yk1W0DBMvhpWHIeJAhwEEAEKAAYFAkxdtQkA +CgkQXTKNCCqqsUDL+Q//fmhku/9ysptKRQqB7kiprodFXwxLxV8dgp/3s5ht4HrZ +fek++wtoHh1E6q0m1km8ySQBF0oJ2DOBmTWX6W3iGqcLzUfj6MflakJj6+lEQ/dj +D6aZtaL7JL1E1twPE/tr3TPDyCH3Av32VdpPh93A2vZ6QxDG0EzxnOkqv364FRBL +LrhJ9PvnzM6jSrh/RpuYvNqz/AsMhDBoS5C8cq0OeP7fvubHtyqR3lUm3n9KUBkv +iqKshoap3My5sUWigChFBH1YV44nz0Ffk8l+c9GOT2xYMrbAmvgI3lKFErWEsdrC +zk9dKGR+j7k0o7TsSMMcI6Irm5PYuccUjp+GzC7UyBhg2wrddVLZPeT2YnOGLknz +ybnWJQ+2GRLCqNqnrJHW0s29R5wQnM63z9m5hKEXZlK0HVkvxJ9iM3vEAO+F49jU +mTxUdHV5kX21lTC2+UfNc/uH4t2Zp7k+waemTcyIwK+wcx8E8KaHXX2fxYeM+q+P +2aCzrBh5ALQxcoAiyJij4Ly0+WPt0oib0Ib7XxTbGQ+XZbxHOl+HmoTGZh1u13yP +9cqVj9RJHrlP+TppAPGOwf+GzHKIm22zeI4+FXso3IRYRiIpfriFiiO7jT3mdUur +7ambvHc3W/5+6L9G/ilmHCFqIjRK+qihkPFNVQZoiQerzANvA5GLnUMPUrp8aVSJ +AhwEEAEKAAYFAkxluBwACgkQMiR/u0CtH6ZEBg/+MvvvxZu9kjYu8GRpCm3Vo3Fn +cOxpqAStK341f57hR1bERnGNGiqkicyFnWybtK+0mL+Z33LqgU4flm59oBkXlKmo +9hSkpXSBA0Ir+lDCo1LXcS0SrBlfgwUAPNoyUyRklL69PQQmbtuCvs7gi7oEENjn +vevUxWGpdjI7mFjWbRuQUuffGNyk86iFxxDz66I9B+fozFxbV8aZnFrwRSeS1orD +kGmyCvzMPyjGvMYRtUOpuk0f2hHDwmVQOqcvddfvq18808ScKEr5RY34sJQkxK1v +oBqT+mfk7Vy7/W2Pd5RokMUsApF6lGyLCcK8D0/JWtctAmaalBQ73rYz7b46yGs8 +p3bqzUBxUR2GasSUGcUtZIzQ85APvlAh/TeriPuhdr8nwZ9+iFjCkQWseKlqBFmw +252CUbI6QMJsV8zRPar/LGDl6DDCFjGXuQYOTtjhFsxiqykPUSX13sNj9GkcjsqD +rBWMkeumE2OgF0I4tsrsYI99Azm1ovcNHCWGTazFGRgDRa5BHV08NxgqV7GRdbrN +p33/S4MMeel/dK8lOjd4WlTbdakKNH818FV9IBrM1eWmfdP9aICDc9Dh3a2Binjj +pmRL/GHgqvlyxF08eIQDSBqt3Zudp7EakEacACfLHXlGZgKV1bwEJw9kpI5zrYnd +3fb5PXXLawbwfMsO/cmJAhwEEAEKAAYFAkxsECEACgkQeFPaTUmIGtM0GQ//ceLS +NOlXxtxuYzucq13rrlLjVl5ZU0QqCBLaYEf5g+z94UBsJsiX2US5ZrygDofUPLmg +9xn58AgOsjOax9a3VpCk3TPxJCUI16Vb0m8fG4fkTMTMrG2sF7WSikANwDRCKrva +ZQyI44oCL6Bgnyo2V4EENZiXKi7XiC8zhyad+zvnxDpXgMN1cPefTObiR3t+nuLr +MreEYh/I51+QCmhiivZ2F3+hfSQuCXOCAA7PCy0W7e9p+AV35KnOE/kO6ToJrWJ9 +V7qYh8Eb2NInKF+dIhbcfMzsLo8AT5EVyFJgdDyVJZtWfERM8dXSQvjsiIKjb9qM +J6sgbMjxhNROHz4zCMAS7bd+H5KTaFMCd7VjGrx4peXYXwRmy/Y41vtOjsEXUVnu +UxHCXO0cfUBMYdqs6uepD5HEeC71l+6yDklB2DcM4/j0f6Q82sQ8G6AaikQgzPkJ +IDZaioAFzdx6yodfqpC2sy0Ithuk1GIvihnV1YJE162moYAMxm0G5GMud88B+IJU +Qz8JpFuLLFBRpPNgftBdE+Wh4eZFKk3SivOUL2/h/UDk96KTtsCkeK9VhlWE6aLW +R7IvLUm2bhX8AHpF6eF+eth0yK6T5BmFw9VjZuZadiLfSk4QzCg+r+oQNnHohA7y +8ows4MWkt5qWxmKpyhY+BkxCKaMiwczFTsMTwxiJAhwEEwEIAAYFAkxfqmwACgkQ +wlb71QAiHpPtXA//ZiIPG/fVAc5dJdaHqNQpE420FzQggOpH/WEDmXlVNbwZZSpy +WG7Q7qGe+/ixPFHZoGkDIaY5f42LAPIMdL0puFhJslbYw89YAfpGMjEsLP2hND4H +qyynm13ENNAd+C1RMSAngP12czlsLCKbDJuIm2OKcXNXhM5XbYq3z/Q/YhVUDUg8 +lZB4uhFkdQFTiF0LqhpJltveVrYxYuATAcNSAe2/luCLUyfWbdpG90TmlDvWDy+5 +6WqqDOxFFQjmCi7PxOI6eyZlA0rzeBAogP4LGXvbDEvIwFmWnf3+iQ5Svra3vWaQ +QqD4ybAP1wjX8ywtm+gYpqb4/IFhw6/CFccDrnnK7nZ7gS8etmnhfUmrH9yK79n4 +LGdeYEjs4MGGtwNJ61cyCS3eg3/eXzT74t8bIAVqXsPNyQ7K1AUFwMm4zx4CgCDr +SB4VCnKEopIqJ4swzKY8UqbOJgxWZmBJ2LsUN1CFKEK+y27gMQYIQRYsNxck8oVs +ELH+joJ1T3O9Dh6ILkqj16FsccdjnS/XjZUTntLVJ9TgrQf70/uaV1OWkz5aRNmi +K/1wNXqcYEWXfihB72t4vfQ/MMVuqTntai3Anuo4QUUYAArwhpXFBociYV77Fs3Y +Q1HDF2RElk1nSMUhYKYXgNdqqq2ik6X9zH37FPYbSKAfRHrLh9ffKbC8LreJAjYE +EwEKACAFAkp8rBkCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRA5FLUy9N++ +mds9D/41aK0HfaIcIA8L/CojpeuRV9ZshuD6s0kpipjdZvzS9CSVefZxAe8WSHXm +zcYj3o82c5q9il3CgRlEuN6Mbq0PvaBptPGm5NVkOdSCejdn8xF1CC00t2CW1yjw +RGXsaYkDnyYyiNya8D4zgSVsL6x1DKD6z++DmoKMZ5Pum69NyJY9U71nP05v/iF/ +Dox/RRopuJ62mn/yXWq2H44rrROJBVrE7wyCjFlgLisTy1pO+DfX6ItXwwonYQY8 +Tyx7JyRRRm+phaRUos7IRxa7031BW5VuU3xgWWPxuyOQeYuDyOgf2OW0YgUjLXmJ +RmwcYqoy1VBnF7E1e3Xhg7F83O2Ue9V+99o/MjDCDkTMwoseIO21Z7XFrgISjx5K +/xG0ja1aolvnMtHz53bjVoHupm/HGXAYvpRVonEBCU3MKdeDqsj0yJVViWgE+Vq/ +Ta3bsvikmz2jQYZuWjl7tQpn8fdrcURT5HrhHFUKUCc5Q1SmRGO7dkxCC8olF8xz +UiuSAYC5MG1hyiS07oeLFItCCLSwZNhW8Prn5TPFZcTKyJSEEU49Tt3sZChe/3UC +cs+3NVSDxhHffIQvNdi+WD+ZhvlIXah8dAWiYBLLx+TycPQ6GehbLvTPPBEFS0FE +YtrXJ7mNkmO0JoO6OX5QNDYzoakWQbuxLCclgHK+JxYDEwOYKokCHAQQAQgABgUC +TG/4oAAKCRCdC15bHuyPDvI2D/9tkxjdzT2XNSHU12dFH6ich/oCjVT8sGQBM5ad +KO1ibDoKtMuTD/78DzF9UnTLrVERcsYoC2BFTtpXeYThDhb6rdY00p/PHbXvCLH8 +jwINkcBxCVWqgAGBHdAc5TyQGHDmx4/a4fLRvpfJBJG27xQJlkXRo9JA0Pcai10W +Hwrvc+w5TN08y3OmI+i1iENICoaWPgkv86HSMuXk14nlgi9QqF/52mKWObhfYzs0 +utQEBLBGctIkOlpEnnNxbtVEQ7E9NTbLcssZ95JsDXtqXUq1c3aCFPpbQMQhFwhY +XEaOs6Y30Ul28IK+S7V4U6HryeBqNvBuokMIGpEE/tn9ZXJ5jXtK2nMg8nQqY8/4 +TM0Lofc3L8H6LZZRNW1fyFBaeS27ncP54j0h3fXqghjQlvz09w+Yrk+uAs4B3MXq +HB8A3HjBHH5892gY/A535l0rdkt4FpCywwsmab3ADc86+VUWoJyEg7/EUwl7EKl2 +1AZ3o0qjGxdZpVwVxhlaR6VAEpUnWfCWffw+rvxpVSsP5qmBmxpNJBVLFpfc80It +IglImrMz/7RJ/9nPoKp7/e7x/mw+AH1d9RTcQCpQLKqb1LPj7JOywtcUHMhotuCx +M4FWH5NO2JIyYgrl9/gHI/+prAMaRcSvJeKbMIo9a8PltXpr12NElAAfErcchtGu +UFEte4kCHAQSAQgABgUCTHAcIQAKCRDkr+vGG7SyiVzhD/sHiF5SOKnuFhAK2uSx +OjExAWBD2MGsQVph+xldIuufYEIq0kMj3pktaZrgroODmS68uv3IQMbNvlMZS6S3 +RRZ8H5UQykmEV5a1MBsiFZAO63bxXjJpdalp2w9IxWWIz8sqeTZVAcSf4V74LfRc +JMExVx5Z0NIEzLheJAatXCrvDIiH8VHnQe/EXDq4mKgiy87WdW+OHb1fcfcxgReK +hRkXfTquYU3Y/1DJ17vbPXwWqr2u8BTew1z72H7zdHTSGSjt0caf7nZgu88mlvp/ +pS7PuQc4s2n/HMUy2SGCc0hETIVU4N7xix97fynxRv7YVDCG924QOW4aJ8+aqrLE +VbxH5lYVjOZ+7B9+J26H/Ygz9w2D4Gn0KXJzlxrlahO8P8AWjOP/1ZAS8eGq+gGD +tIv5VUqoGXV30jRroe2cYfCjFD/Xor43GNDDxk8LXImbwrteZ9S/8M+jpeiFbSig +nBxTt7HnGRfQOFdeJ1ZkdY0vvRYUvLRB51j98MJuxtDjZpSem8ifxpZS5G+rBAdn +K4ZBlw2DQ6OLsVdBXVeCFM2s1GNhln9UjkxH+Y1I2SxYDmIiNRyxPPAbat3KnVyM +oXnvQ/B0IiTX6ArTL+21GRXPIwjW7I/YcKHhhxvvI55zx+FWOi9hb6E6rGwBtn+D +CKqz9dX3FGwKqWw2l1/iCVCRcYkCHAQQAQoABgUCTHQqzAAKCRCpencCuvke9Zrl +EACNIsFpdi1IgoUmpLzpg8DVzXp5kEpCSduLCNW8GfD6+cOO2Fhz7qaIe8NvFYN4 +PQgjhCxK/zcv3jd82NoSmBrsfdzh1W0aAHsdQpdgko2wIX1Fa0A5ImBb64i/Q9cn +L6UeniNWmS5qscl2X+rITWxZfE1kaBnCIozqyNlFxwCKAYinSIoWbVRxO4x+xcpP +AL/B9y5BZokIsSBjpTsATBdWkEzvWrmZEQMW3QcVgSpOM4gXdTt3GGyILjf8GH8G +doVgIfWHT02eD/+W/xjngtbKLYM5wYPO23L7y1S/yvhALYrKZ75B9HdA6/EUtLQY +UUozgDkKfc4QokP4XIVMM87yuOjCUY3vhdRqVXllnN49jWa/+Md6r8ew81Hp0hI5 +0hqs4zxlGgTgCnrJlfxGFy3FnXPyXsbtMPQ0dITVoFAF1Vu4kHE64j/eu0yUf37/ +7iWRZadZXaWJXEQ7iiVGFocNbFnv+CezPDAasdFVd31vju7B9khR8hWDLCfPL4nG +TihL6Hzveo2B/jam/NqCBS9Zn/qHPR0ZKr71RNfGjwTqgcVw9ljOV9+UhR8UJTqq +5fU3l8ID4nAkqPA6Ke+s824MIqlfmkjFPE/UWaQXURYNU/YnKanQbp73iHorGZIl +C/HyLYGhUFG7fYZ1i5njx8qC1yuwzHUcMPsejxnovZygi4kCHAQQAQIABgUCTHbk +XAAKCRCvIoOqduKse02lD/9jnU8fnwGYrdBidV6RtU1uF6dmTLR7z6Y3SiLAEvoD +KN7YBSzlbk4u3BnoMJvudOyIYt2iS/8v1WC/6sX/mr5JgbIX203aejFhb4oN1iP+ +wDpTor+sR8Rk/JwMFxTIoPtA65YuW6hDGXOriEMHiFx+oaV9uo8pdLADBfzwN33l +f8299rqVDLiw5y7yhD1+YIb0FUS5L9ENv7Csds+q8aAlgIQHxJSbXgCYwI6P1a7X +8iaGGWGOR0A0c63fZb+Sjw7ems9H4WP2L3HQ34mLQZjT9Z2uO35i0AsDwFuD0l1d +B/K9ZkXkZFgaBIFgLZiK1UAVcrCrsme/Qk4uF7tmV9QwZe+Z5D3GBJuifwyjO3tc +gMCfuej27GVOFSeEKZep/BBhlCvn9bS9Uq0dep4Ic00qUkIDa5aajyLh1ovJXHiE +Y8CvPAjhrK5jvR2MHPQxdUlAWfgKVybtFrw5VjzXulhXOMxKZoIvFJsICMKNOWez +KzS1Tvwa6w6im0wkKANGVgoWCymXFCSB17pGs7/0YsE9k2lCwk31DoQYrJ18QnMX +dXLTewJXTezsrsLPH63oYwPyzpLVywCP3skBnSQhxlAVAol+2F64dAR7yhCXTpKK +hQZbr/3NpwxWETOoNNBtMsfJnJCGvCkCH3Aj7BjC0IiSrggP05dkVXufVbhW+zyD +JIkCHAQQAQoABgUCTH4DkQAKCRB1GrXdp5Z5zOEkD/0RmDT2I8lNKXJb/Z+wX3w9 +E9q5lmqtvF5q3k+ts8gueLls9cLppy9O4KZ+O7P4xEj5HYN2cL48EVO5G3Kv0v13 +jDIepaChph7juEeQ+2lLiHbchkQIjEk0ru2IuZ1CQjJo6FvP5yTc3kHhR3qfHgdM +oKMcmTVGDo7xvAvObiJGUzFR/AICCrHl9f2oMcYXTeqTrq0/CbmAn+KdFx51V91d +8OnnlAFOpYLkmnahlCvVlPuo5a8gaW/yvZ/Z+JnllP0cnlmxwJtqNOLSeUT9zHuz +e5reKin1VCbB89nvqmeqQc0wkB9DJMtRja8M6Xh4MfowrAwY7MnGlEKhbahzeaeY +SVtUIdJMK2Tj0h0uCG52igusFTVdEJeQwjKMbKEuJxx3GynhxICUgQ0+yG+U2r7c +0SGA1r8Mfun4bN/Tp/sQc85k8PR9fleGQtZuO2HKe1lFXAIuE9ZUEvJHeEq2ECoW +aHZK1IFkcM/uY2JMvl8peVxENO2onhcwC4h/d5Xvr4nANnWIE9YXrE03lPrB2M4D +01qMFKaycA/CmHiRVtjEaWtbO1fy73Xe9PKBUT5u4wk1Pyk/7hwqKAcdF8/SyzfL +xZgAWbHzlCKqiy/viWewT4LKLbaocZ28hJv3jT0/0jVitFRWwjHOZczP2BDDanVF +VLsddhK39cADfYmt9f4tn4kCHAQTAQgABgUCTJjSRAAKCRBPn21VDtYSKn33D/90 +Aa8oWiYYzhwLeKPT90Xu3HL/yBCFMUbm1zSw5J5AS4l7za+TtBRhrX/mREpb5cLe +8bRFOVUKCiAOM32eAlLLRieUcjqT8j3FWoK3zZQrvJ5uyOkEvp9wHwvG74NBXVbI +QiXHy5A0OpRdULy8MGrDMHijhXL4/2AyhbGBwbn5JALi5briMBMED9HPq9Q+AvP/ +bFR3iluVkkzs3mYITo1oXFmY7qXOJJZ0iYaYDBgxwU6jchS5yrckFytAy/ImNMSi +3grQ0JxeLKx/okQdn3ca9mlmxmKJ7KatPQ+Hl01918JHJCo6qgY/Ok1T6j2HrJPt +Xhe/fOle9gvjwDT3kV9kS+hW5SaKZn2LLNQQw5JcPhY/EKwrf2gaVQxUkFvp/2xq +G3I/oG3HEWrD3tHUdsGovbihXZs4ygHO4qR5Q2DDk9r6DD8CnQpuBBdvEE5D92WI +bMbGLjwKSduP/ic4trUnV/AWNqJZJPPHsvNtm6usqNrnO62K28vqXWHuLvqA5bh7 +CUNpHJNjLDctvu7Fii8YbNt2fQk3G+D9m7nBSmKbeYkGzsmAQWlQCGmPXTKYHSyl +HSq8bm1ctxxDA5oQo24l87CSKg87P/DnQCrsgco2NQ+xNuZx+/mnuTmnCQ1vpLi4 +iYguYV3Lhed/GQQdqa8xAzAyRs45b7v+3hjmfK/X04kCHAQQAQgABgUCTKWBeAAK +CRCcMVA8bYZjlrZnD/94V3dA7kL3ezOAVoSXkJZTKM9uy8zAHKSqqmwb4qjTXXCk +eFehaPcWUtLMzepZ5eK1WP/z0fE8dJuTatAotvqs7+KK+bHZ/nT4CupjafgfpDQI +vGNfxvNuV0HJwlVkIcsTi7GZYzPjULd1/EWxVWDTM+Oos1AXS8ZocddKGBKW38D9 +H5jWJztk37K42nTq2a50+pW+6yvy3bc+yhVcpNuK/irWBNR1XWWxxdw0ZVsCqctD +I58hmHZzHJWhMVV7hVJ886+RdSk4M0RHSftDyTqIn0hpdk+C1LPIKwdf2KMsXer/ +GPCMd6NNJYfkbmV/riqusd0Io2Tut8jPoDQJkKsBSWMA2CKgcLijGj4q4f4UXFXr +hcwOm6ODIP3yzbLhD1UfbbSgik0qLSW8DxdZxkgZvETYtq5vft7S2Uk6blm3XvHV +yjjrxjdnYGso4bKWy6IEiVIkXWJ80XcQJ8G/M7jBlaH3qHDlY3g77rGpOCos0Vc8 +F2FtlL+eeC6fkY11UrWpYCYi81OrFyqPOZ+p7c84RqYqL38oian5w+HRcf81+ZAy +5cGuXyyXw5NTBoLV1kdjcV1KE/A3uLkn4j98r605YKgnkqywHam6lnmvCYV6Y5N0 +mUGIiYLs9vz89pCPgcaoinIU4vDafz6zw7YNm9jbCQ0cCOUCTcwE2LOKYcPGXokC +HAQQAQoABgUCTKz2ZAAKCRAG6qBm45eDL5JZD/9iWR+v0aO0ZJVM/PXVIDBxggf1 +b96VORLHk6bAN1CDzWiWZp53mQiOxcbLUZt+2r5yYfJF6jnhysEfejSado6Y7xrg +bsITf3w/iu6UR2X8r/cbCfQnWX3AQn/jkwC8jbpoV2OBt35xf+KLUKsyhjx8Lvgb ++05w7l7AW9ESwBhWCZkdDs9XbC+NDb+J91qxVIrzSWwUZcWd29oV+SBfiMPC1VEI +s0hGcQxe5xxW2LPgPkYzMyZkJttQrOIKcDkoA+qKv+k92A14ceUHnIabDyKsfIN8 +rBsKVYqmksO9NaZ5ZUVYNgxqNvUbEeRPWRFTTZ59j3EfqAzJnQ4KqLCTelQTVL7i +ljtkXeLFraalimOUCRMYhpjQ03yHRnhdkmRPM0TkUfR6n2BeqHxikbxydTBxhg2z +vZMO4g7l1kUIIzAgLCyFo2k9/qe4EtZRplsbxxWF2Zk1kaWv+A18q/2dO4H0ebdL +zLDKHEV+FeInRC8b32rR/uW2HhKtrN9rv/1VzPtxif7MqMIzw/C6Ga7NT5ZnW3TX +rUK72rzoZw1jShPFb5ioEz4ZmKXBL0+V6CqFqf+oEcMwaPQC8raPXTFelkh/pPAI +S9TJPT87b0CppRT6w4AjAjI/MQ2pjArsV9QQ65tPa//VT4lCqroVIwOKj6qeLvVI +sT40MCTBSdH5QvNGkYkCHAQQAQoABgUCTMvmxwAKCRBLB3cjkp1Cw3sSD/9TEkX7 +uEO60VhWDNSJWWiOvaSh7vH2AE1TmDfBZgXQgeRleY9im+CMGUuHsHPUFABmd4xz +lPoXJiTFxgMTVreEwGZbLccL4zqde2Abgnpr7YSMyLcKVmfiHK9Pa7RGOCXVHdTy +/awwHv5c21/E3JUZrdpclcYCJVaa1rXut3CzNtKBZEP8eqaq5cAAPoSu4EI2q961 +xRFpEJdOtrDWfz6xH5l07PUlOBQ/+4a7I+R+k8ncKsTxmUhu72S0BAYp+H8/RXn9 +20kIzdlRj7ne9MQPlnjDznpnVsawboJSWZqEG0YqA7o4YDIKECMOfNn8T9X61fH6 +7LA2OZhLb/6lMN2qFzDdmzZ+G7dsfXGfVH9QnbPg0OZAM9SaphivNGoeDw3zWmcX +tIWw9vlsVgHktuBQjqcdn+uLnggjw8Z/HBD7ph22Gk1mcCrpuPp0lKf5kehBUXGM +kG7ERZZFev/eUYT/HyJcKooRRCiUk+mWBaYu+5wLRn47hYKzfUVrjeh1sioNvn6Y +dGLUmAZb33ZNBx/uBdfOqW5ebQwsWw/IRF4dQRKbqi8epEWHayXP+ACekKatP7LB +CqtlKT9ADCpIGAMSRZnuuIyrKYs/hET7ITcV4b03vzkN9kvYcFbWPuXxtRG45oFn +/qEz8xuvR6EYrQ3KTf107zfWOcR0Va6luSJDqIkCHAQQAQgABgUCTMxxNgAKCRAl +BTPMopt2T+njEACrGxTcwFsJ79vCfLDp90ACYvdP265edImw28tMbjlTXkpCVnfl +lIjlvXDtDOXoIunflTpFhp+dSxrktbyDf2q/k9U3XwgbFbsKtYX11IhTbVe/dXNc +dvfvkEjpptCX2t4rDY8B9Hzzeh19iyCyiPl0dQfAYyGE9IhoX+Rk+ZE6F8sNAa0m +uqfAv9O0eHx+ztnqAuyxrMrN/q1qiR01HCZgvtqts4Z6bfPDFRa4MfqqlMeg2UAM +ydYwFWaJZs8eLN5IFUjKJMVZYKfJ8mU7jdTmjigA7buAccaJuozkbMx2l8w1MHUK +JUTTiXesUS/m2g16Kfuu824OzS96ysqRC1eD4F7G9IB+E+kdP2iix6Kw31EX7ePM +mluelJi5MU3Sy2SUbuNt9d4ib3WP++COT4OUs5qqBI8PYLgCpbVfiBIQAxlQyXSI +Meg4QFrpFDqYKZgOyl+2w/KUTZIVJ9K4M711B13if3NF6/7q+6L0pLHi5xjbtGKt +X3pM0rPt4MJ7TCpdLqareL8Otc2el3xy4Y5KZf25vZpyAxapY5DPQj+8HhL9gb/g +3z6PI6IjFdh3JUYCneUvwEas6U2Ggeir4ZE6VBI78JbgiebOirGHePPU2jY8W6XM +bZLA+pKp4KkxRBB1H1o1Ihf6m8ib1dxgr+3yYgWgzNxknD/XGWHIrIY/HIkCHAQQ +AQgABgUCTi8otgAKCRA9kIqz8Pv1H+ZXD/4pWDf39WO38JSBPupo3xwDWoXLrjK/ +wdro3phFvLYyHINtPw9CfA7FagjH+djuZU2zTtU3J37sF8WLEpdHzMm8VBzcokP6 +pyXcpFr63pLkDcGFa4+JT8CMVEeW0Om6oAviMk1Po4FyKE9dLQgMoD6v0fzRDS++ +FcV0RCoR+ZsBViX4iy1j3q91yz6txnE3YuoYCwg7QNGKsS47PGvkykq8cokJDZXL +GnBd5K/ytz2ZMEnaiIbX/v4FJu97RBt3MgdZRPNQ+X5Bu4Hoa8/vLq25wYIjdhU1 +dy2dDnKe1Bbj01XDTfRL6yvkPSwMIIDQlAC13Oyh376QiabDfwMC9cSsLZ7q+mqZ +J1IXGDTc0Ij+Wa+Ccopl+1nwGcbdXhFtlYuJP+27IHDlguKBuoTCv6Qc5UZVQy7S +4OJRZznB9GsA+8AsWPt4/YWo248iCRfAPVVK7YozrXMMYoLQV88zGXWaC3vEAd8I +wqx4aDgqru8EQzpokLwYCKZ4gJ10ohdIg1VZB+lAh/f9jB0WdWAKsZaU4K8Z/Dpk +A5U9jABa3BMjRl5eTAYIRPCKRO7E1MFRHumuBUiySccY/Shaa4/+m/kL/tMkAec7 +D46eilk+psptGrCsiuPo27DfKfGI8TuBClac672P1aBv0oCen6ZkJmqkFrs4zZSr +IeXOxXd9Dt5F+IkCHAQQAQoABgUCTi/ztQAKCRBuYItjfYln6TpgD/9n3/tQeacW +40HkG5XkuAhkIwlP5DvM1K0zRfW5/V7qVFyYsxj1YIOPRXXY3y/P0YA5/aj2X2SO +bziNrmG41fcCQWJzhEwW0HBhY20gESKPm6fGt91gEsJUP/ocCtDBxyn3B31whDDi +jKF43EK7nOkOIsORRjJhmjwFEmOIvBIAnIW8J8q8TjB5Nu7JFvNOyrTeaeg2h+L0 +7S4JYjAqMfTmQsFSPrp8VJbU4cwCZ4VoeegtU4myqP0Ag3XOGmCoccu/70Ea/HOc +z4yVgd7v4xBxy2endvNkmYXN8McgGgp30bFpOV8vVsz8J2lMI3m6WOL3Fc/nwe8r +bjeU/PzYbYCyKEZrpuP2SECNaRU7206S8tsKnvpkkBItLIRdVu/vQ+Up2lt2NtjQ +993KgGVJe9Vl9p3h4g+USwFpDzcAWcWaiaXhhfzJHYSy/WDGZLwyrlmwKxZRhzJT +dmZR1HER+4uRZB86GFKhNoe4ij/kyvl2xzuY00JRqNKMbGSRj1zB2GMboj4ueObl +Jd16Jv/HznyGuWgbJxKjHEkQBA9tG3xSvFcF80SoBF/XCGBCEJVdLCA0KDFTe8is +UvbB75lQv1SbgbTq48Jr4/KfwjZ3jQ9PF3vq3IWdoq/ovNkqTRRIzO4XyXljXbpq +s0quf1+hA84S03Yfa6LhMH4aqgLumKd6hIkCHAQQAQgABgUCTjA/SAAKCRCzEYzv +iuqP7o4ID/0RkfxaIaYmygeTf7gcUZ0wqwT+aLZFmM0V/ejaEFx8hVrWWSJAZhlG +S+lOHVsKkPzqg9xUQASFMQ5fiOUhNpy0J9r5YE6kBnIsSdPSsRoz/XsFqQ8/K08P +EDzf2u55sersyHnd5MnDySmyk8EQ8sXujZmJL0CBPg9opweEeVDVnvq1EyMsEIHl +7velCwIZXQUZfeAu+NrMAawPQcnt/lyuIFNML/0063TydaCzhMKcvuy4o/SHjuXb +uEjv2nuUziisP4oeGRAqPaYaA2R56jhGV3qR47K9IPZ4r72br/c0nRGfN6vH3OkP +eKVm/4xt9FjVTVZrJiwVcW1ybYMLYuBissYRZj5Ab5L880uVZaaMZZMdvuMX10FW +VGRFWbYU0VX5AJcouW5p6xbfDRVfg3ktBmGgdgn1TyPcoFN7GTbVc3cfTFFFX7jV +ngwLGVc8Je0+CGXyopgMUG7gXUx/8gF9Dc6ozygVMQcLdY9Iicy7SZgjbXM2cxoE +RCmuOEFZeCHt1hAzUVDSrnp/TbQ1ZkjZi+d6KNX1V2zYgaohK/pKwsAxE6ZbHXwA +hKd2bUUO6ovXSoGfLBK5CpPak2iorScrJ90nd2Nd8xtjax05kuCTLmWho30JifPA +TmgZNidjTd9YEWDmsopenKBVeyU5w+XQ/Ek+IxpjlAuZlsHXqrcgNIkEHAQQAQIA +BgUCTjBoDgAKCRBQw2NNOikc+b//H/963XzB9NTo1pyBmwDIt9SMkEmE3kqD+8nY +pzUMFbbbCORjCf71PnMYAi6mmHEIFWPlJHyxPTBe4IYX8+BA+6qATdV9s6iu+ACh +k70zAmYk1JapgCdl13JVGLVIcWIenqUCenTBYsppWkgoU8SUm2Y8cJm4N7/ql5Gt +Gav/BnS1E0V+ktzp7t3pLXuLVi6LacZx7i2Aka+SkV/t0srAjeiVGYl0WC6BN3BY ++cgk7nIQGtmbGNXTURrBsWPV0LTAivOmSkjy7oxAPBM19cgiiZQA/lDHHyVRJco3 +vIbrW/hh4XqbpPfdTnG4K2BJFc4e58Ipmu2LUkY+qM54yJUz0V9kT5eNvi6oA2af +D3i1zRUjS8A453/MhcRi5NfxsQhs+a5adqWU61AQ22h2NUBYcJNrUJTQt3QOjH4K +8PLcdWok9Mq3KmTIzmEC5W24uaRvIpT4Ugz1VhuFxnb6OMKi4RcmyLERv1ldiSRP +m0rYgICWvZEozS1onjvgFelcR7sLrJkrPkO3sl2xqqgtIj4ymZDU23rAIMFcVKrJ +A/qyFPjf42hJzkGr9f3stPdDODRNcNMOB3Q4pQHg4RAQLdvAiPYMXcIPK7gH1bgt +PCjwTE/42Jg4Kgqv5H8/axCrBRVHRly+/uvyNVLKmdEtQeCEHvKazw/s0Eh8+zmK +xpcn0mtYgywSs/udM0KK9AKghuMpNOZPl7JIE7troUtPvBHLz3SGM9jzhdZS0E2K +NVr/pahMJVJ2HnRuxRoZxI+ABiTXHhYRtTAiGdVJjWc/EHE3gmeLAyJEHJRyYnde +AscgeY6NKNnsb5KgbZjWwLziqqrbPJ0WXlAr8c+lQhLQFVj5rG5szcnLTfnvSDsV +REuj58NNVBI2YkmO8vbNqTnptShUOxCpjL5kw+W7blLbSkMs/ftdRk+NvbNFdjuZ +ttjnETgquTlWUUmEzLpc+bHLoiYuxJxl5KT/SkjqAbK7q2DIE/kjtCjrjf5k3o5g +BbTLvwhyFYqo8JZhDOG06//UiS24BAEuRe/lOh4tDhg4khNXmnv85dGJv4KRGLsM +0JPBbyWIUzVuSWuPjmJA/d7boSluN34FDRz53peAp9/iQstTVR2L3DhUfTqGwJd4 +4mJpNIKa8hLNEYBC4GAKxHEI2WFqTwdGXuKL/QcMi4uD5wwTWu0d1vVDWnh4UXY5 +eZZU/di7wa6kUA7w4QaZ+VvnooH3jG//HMUPEbK1v7TPWGpUnlApVqx0y/QBry+l +x1vAVwPNrsE3D/2J+MLCb9AguuVe2KAKQIqSbYBGeKJhT8WqHDJrJheO3qDT44/Q +ccZu5lS2Yr2zz9YwpsI85NrSxW74MlZ3pY/eqDP1lmxgsZxDalu6iQIcBBABCgAG +BQJOMJ/mAAoJEDqTYZbAldlBm2MP/iyzNCaZKE5mEkfhX8/bKrPTvtRulp2226ko +/PLg3fMyBX1B9iSfb4L0Q+7fEIEIa0FVN3EPVz2BwHhcpAC99DCxsDZmE+4xX52k +4G/SJsvKSyVQ6Y05YKCA5qxH8DJTz07829Bf/9bJlsw5fsefXS+oVv0LhCmujYQ7 +N938mnEdbFV/rX31jsENBlW/ZrCLBN8n1ukeSjZo/6URIlxisfBS6BH/LiyKUqIg +BLr0yLKkcR43Ya7LJWoQEHI46GTM77LcGy+W41P0IyrkT5qa6u2FOtfuXg/3tRpa +e5BrJp0ezie1VHeYZ9VeZxz4q72/2BB6kVn1ll8CzEnB9H6X+n3vMd8EjRakogu0 +ZzvKWw0RCCnnHZmHLpFMDe5mGavonLTjaG56n3zhIgwDksoNozWwYlte2Cfh61ev +J1BRvKa3MxwUpjkFn1bvpMU6MN9Bb9H8QXplHrtsXuDc81zpEhQcC+hQc2DWyFUr +jvEnPQLdHa2CRmhWCObJNjMpUn8JHwaz8XORcvy2npFbmbTrQXU/SHHv+r0KB10m +PcUUDmIWSrCK/mywqVFw9EpmNzxsXu4NpwuTMxLIzhtoBC/4CK5O5NSyAIw0wesJ +e8lBjgXP9zAfbU0ZJqqrlFPoJhwdSUmYR73MKxVlO/P9Qy2ZaepoAIp8hso36ppU +rbWRTO/xiQIcBBABAgAGBQJOMQj+AAoJEGjAeL6I+AzagMcQAIaAQhF1xFBWurgO +wrxSsDH8Vh9qTU+vLAaF/8pJ6BdWYHxgz5KqzzLRPANC6HYiCpC28pgk1c31/LYJ +Yxrj+5fimMBzIUfkLSnuQFZKaB+L7OKKNZGxdcmRFAaC7lCSSNnMo+zzYLsYKzFs +gDRdYGjjCDv0hbakLCyBTrua7HZBSh9vAsvhnZZ+tHR3y0FprJzPEqYC3BrUiMxO +HI+HFJr4bxZSYJ55i0cMm7OyWgVBJdEvYdqcuzBJ66e3eGiRBqWv5OzuL0FhAUA2 +gvVL2HYLzpNRI5Uf21z/suJcS2YJ6yDmca0MlygE2fNN0dWD+YTz1MucaA+k11hF +yFb5S/Wgk8jyqCMuRp0+gfK6gYcSCpq4v9B1B/H46ifewF3QXStFmV69PlnTaMsG +LtAZ6ttESsTIbTpqb8hZeWbWtCLZ1MtxU+F1rrnKsLh1cBIxvvT9c+5J1l4P7ezH +V1a2H+cTn3e3wJ0EhpBv0l2OTAr/HPbjnLYjWCm9J5EPG4P1XsweaALy/2DLuf+G +/cbfoB4HASlHQNFoUkRsmmIrXHKpPE7O9mVQ0JSdTojLzATFTEdzEf0Dj4k+2Ouo +tOYfu4MiskHkGzRG0TYVkRc4boBCFZzsopRo+fs6p3NjM5Czx3n6daseoEdHlxGJ +PISDPIl/xBR2VnJbRD/Ak5TQze0iiQIcBBMBCgAGBQJONedpAAoJENAXjHZ9Bp7m +smAP/jLvAIFiBb514zjt4RGRc5Ipr0q9FJoVp29vsgudSi21dCrA2nOFbkzJJAeA +GoPtk/uiwxTcuZznsUW3U1BtIphO3msROLd8F9KH0o60gI5CzSuMEtWunWqq2KsE +yLFdHyPBu98EnAqAbP1sefvRFW/ZVZ8I2KfS4FONXMcovtydWniLU7UbJANQ39wC +buask31m9woN7gOpUyF6r5k7bFkJ7egsO7eEnleNGkeXKoX9VUn3a1zqd+qeyjeU +dXjdUsAgECRt5ZdefOBOL9ty/QLyLYCofnPMUZNmMwkUgPGbCF07BqqcauV7OrMR +hK2tVxgrspLOeyMmnoA4VbdNzro8zh171P2aDi8XUCOmpcb077qrKlKIT2ZYadEz ++7tUnZ9c+bCHQkTpxQ8mfsGOzrDn5RSQDVaxcPkn4ozdHu7PjwQ5pGCmThKExnVU +T9cA8y4bIceAT1lIQop0R5RldMJzJHSpV+CQ1P9pHIipjB2S23rYd0acXqwJvnXN +WXfAJHmb0ktl6YS0MzAGLFo4HqzPvG8jbtbQnB3W7jn8I4d5pkB73JQy/UoAPHjA +5TaKzSgeTiRKINleHZ/cQrxYy94Ohb0R1t+HueqdXxWXP3TjyOfKXeuqYhooJrWH +v3g/7c8OUq2lJsN+yRAVSDUAn+YgLUl2c2o1h9i+fOgcVcUfiQIcBBABCAAGBQJO +Nn8JAAoJELs6aAGGSaoGAS8P+wXQwuxrB7jqtyKtStxwdCgb6lPbDSPWSGOkR7Uw +LOU6KZnDS/xBzP9QTeNgGMJEgzK9+RiFkjhMqFtoqEa3U3Sg1MtyHXwppvVEXAMo +hbiABYFOLVCDhD2Zf7qNUXg0Qiw6Icis4I/V2pdhnpY9LC6svLFMgWA0moc6+4Sx +ILeE1By1y5K5eBgSHEeDfr0KQP8HXatGoE/jmy8BFpTj57fl/Q0pF2bRZxSPe3mi +Mxxw62xfhbSmMec9KVBDgz+LDIELZadVI2c/Ovk7AY63hK1g3OaDSeBv7xSWTSFN +X6E32JRwY8BO1mr0Idcdqcb8hZKJmY+FE4R8YPHK4wFX8MozWk1AfvltDpqvkxr5 +mA1LVvp07OaomMEm6zvN9lBZTtt6ktQppD8nyU7VB13mksAJZxhF80v+ii0QZrCJ +dVuhqQc+abQ9g/LvIDCYDowCe/trMY/8v/uTX2VIz7mGvnQWvyYERkQumC3x7i9m +LoL5FEDyCwcykDnThgJLIM5GWd6QhwLm3buFx5WbP4J4ZS21pht3bGqQCA0VsVex +9T2BE1f6ynh+Kd8Ni7MDRWxua+CFW9zAVHeoDuh8XstzE6Ii69zgCfKxpqrk//KQ +3rHYj1UygQoGA5DK5d3oKgr3thATFySWFYp7GdNSvT6UPZizuUxHcXxJSzCYqXvD +ntTOiQIcBBABCgAGBQJOPUnjAAoJECbjyHWnRCDvsYYQAMBnIdm0Xrj/E/g1a1I4 +wQBlhdNtHdlDkKKAcX4SPfjPQVNh3h04XK03gGS2vovyw0F59OsSwmrRj9Rv8++w +pheW0fY2u20MkzIbOxKxeZAom94WKlcfJ11Vxcp1KFj4z+sRppFEQ8Bd2gLoqyMK +R79NnqzwPLYXQd/VubW89W7FGhoYqrc8/LQpAvx+BRHCbfEsTmlHnUcA+VFWUV2w +rBl4ISYTVp3HmaeXbEb6JTlM7PNSEoR/LOj5RK51ugcgVXlHTQbDaiKPhCvMzX2r +SyD8dkTxHrEtgZr42zGyIdrgnpZ4tT/RkhJaDEmGvSKZDIAzqc+U3BPqsh2ra28R +34rdFHIJMLmY3SWTWCsRFSf0S0kaALW3mvT24sixQNNK0YQqeTFzUCa7v2F2zyw1 +zwNGU2iEGetopFH6gxFd+hT1Im+v6ALU30RJsFNdOhOmsJ0+jQPdDSKG/2VO5FjQ +wFG00ApBmoCwYQXYXnoTPUtdOU7aN4T5G/PvwPSjImWWpQ1ps7Crx7LtFGA/zbC5 +mporBbVJsznoaHpp9hLTGbufdaI45jAdiqS84nDb6EBOAbv2zYt8ybQSNpjTLrrA +31UhAtOznNR39NTRfESqhTuBVk2qeS73c8dAWMBBYBmfJpNw1p0UGdEN0TIV+lsD +LA+V3JS8+6Ltcob9NNpdIt+tiQIcBBMBCgAGBQJOSU2fAAoJEJ7cyZHZq0V+XaIP +/1B4qaQPC6KnXKz+dQdUPQlrMa0IRnFoXwkpMruehRZZN89rSTDZ25rinH4w417c +bFL3SEKgJwU/quRAIJ2sJOU4SzxcISkTD7GF23WKg8spLIz0+VYk3egfXXzeqhYL +yOMYMi6XLlqqnaS2HluVRf5h/aEEWOU/ZA4aEvM0v+nQGHo4zyuj/70iGpkz3sqQ +pyJyYEVd0/ZF1F2ZDIHen4x5C/72+6fIG2iCSiDPi8YZMRzecF8G9S4msjeai0yd +39YrG0ge1ZOZwT3IwRUzdet512Qn/6wpfsc4s4VyBM9RkmvDpb5IGAT4oOaYSOJz +4p4PdZvUi2LVBf/AU8POTlIHk6lo5EXWw6+W1ezQKFKsfpn1g8bW6BD8mSEGCYYV +LW+Qm9ggD4YztxWa1cldwJzFV2kXz3bDu7qfgbLMF2EAFLzxFiYzIzQ66Mo8t2nB +zsbQWRZvvfMz4c8wxLPOnhmP6u0+/c+QlVfYTVETUHA9F+LuXcUAvEEvz/0G6FPX +tNx7Xj5xNq0celj5jrzxUBMXoSHyNVC3cHfvlSd7hoed5w6FNm+/x4ABkmO/uEw9 +YfxXxms7jl0tnrD4PQgTgjksjCErXP3Kp2YlguMjPA6N6zvkvjYhxXQiR3mCBM+W +owuU+755+lFiLbHVLbaAkminlkqKiYaq4VNAV61G10BGiQIcBBABAgAGBQJOU7qz +AAoJEAf8SJEEK6Za2GQP/i546HP6n/MPZmS3KKV6w+1s+h17mZUt43iWrgUJ5toH +3KMxbFRFeK+SnH2/s54EwIbvPdKuZTr81Y/SWT3FX1FUgYsPsbF5hcvAao+u9xk5 +bXmr+T2cQGH7V0nUm3yOsj9kjxkyorBDXjOgdq4XlFPmOfR0hQfhS+ioUvfXg+9r +joHaoOTdu0jHx695I1ayYVySS2bYaBw3S5WMmV6g3fq8isM3LzkBXToZq5sUYYBg +POMt+/1S+vq/KDOZHJVvbIQnUat0Jcc8SPjRN5rI4xOg96mngYrXfXnKOQwC+4wI +kfjtl8tXeSTsEYfHFxBbaP59QcC0yEYoO1QuxlWibZKjt1+b2v9aMdRfp3kE7mgJ +V2qgsPknrcLUgFIxPcUjGBw5NAWS9O6TuDhIyFgx7z20fZpDk3l1dO8rxki/8U5H +kv3Ie/IgMHKPjPTSg+QVMIVaO964ohgxh18VNcL0nvZziSWSb5mqQ2Il1WiMPo6e +P+bcrdwCoRFNOFIZRPh53+36OHClKWF4SNVyzMJCVfk0ADeTzLrGNiX6X1UFBprX +/ohrkIAG0ehfRIWp7OQP09BUNghBN5wh5pkS1VQrH+o+YGlrV5RWd4Cn41TNPlUD +x6gqtv+K85iUuPC8RcQNxmGKxrjl4ZsC8ik/DxqrYgghyYx2igHeBvYbQV7g4OHO +iQIcBBABAgAGBQJOb5+vAAoJELgqIXr9/gny2WkP/2MDfSCnuCJbTd5KphEUc0FL +8UA5OJ8zDpQX1vG8xaYNs0/0MFZBk04lqwTHS13cv9Ykf0R+27alnF7Vbuzf/Gc5 +2NWkU3Od1j7917PFYSpFV4s+BKJ2JquI8YaBO2Cu1LkXHFTciOo8LUpZZldicMpv +YgkPv26c8rk4GDYkWvG/FQY9MDi5fis1N5v20LdNRh9YakXkIC7zExDYM70U/kBA +SlEyHQMafcuqowYWBu3hhwnv57RZoX5Bv2ZFS6HkYscZGdcFvJLQkHsHLS11YpVB +kXcxljqK2KwJtZeW5ID5YMCABGoXAczR9PxfmxlFcxyFuP+ONOmNe7TjoxF3Dwql +RxUAGOLT4Ev7J5pWa1cSgMGWSvSY6abRhmK+BqextUazzXeXsCOeZTsCIHguY89g +x+2MPIm8vkTIeZt8n/zAvdSkLC29ma8cIEBgmZoNWZpzUjVA9ZiTJVpLGrzmvoXO +1sRaMLxMu3dxA/19U8Y/0g6xcYAGmd8buQi+1luNVmIIc+XuBloHZOutmGqkOY4X +FquWOgrcfqynKQz8227/XpJUj9lW5u6IkTE44eY9cY2RGIyfdrDxXaJuna/g5VhS +uCY6ZREUp0I0UHqGWXXxYh8zEJ2yzpcODmvcLsQo0x9gIt8+ILSuNZeKyKKsNGeb +O3lNkCgwmEjKEMSDRoYniQIcBBABAgAGBQJQs6BRAAoJEKr4rhYwXW4saTIP/28I +eW/e3i4whit51v0AziQOxprppDve9XA3bjSxksVWUR9uWUWe53nbovqX3jP9pf5W +sGqo78etXEjx7I60AQVVigbXw55132Af3bHu7+py/iWJyViygAcjwG4/XxYIJVae +J8s6sxOwfOvvVIvRUYLORzePQgUrOW3pHlfAi7RHJ+TsMDQe5eExgwKEcn4ZiGwH +b/GJ3ga6lZA6AMLsnQdeBSOgNoF8OZV6M7Ri2bIEldw2nXgV1p1RmOJx5tfgGHxQ +/+wcY5ZIPaKpqlixU+lO4aBOmvm63ueEdd0bqHjLFG8LJ5Ybq2q01gFrjqaO+N9u +5/VjcJR9GKELWTvSJJy8bS11MqzrzDA35y9wiICOWkU73QCcHW8Nn9i5hSrlCt62 +6wcYqrlGCLML9hbkh3zK/2y1OlCIRQFs8+7+woiBVEF7svUvqXTToXqLNwh4wO0E +0psg1+eqFnPKTXM+6KaNTseuVkfqQ6n/O04ahRRqMd+N6xUPmEcb9Kq8R3RLIEQU +2Hw1YTf8ZoCtfLNO8rLchqbWP6jQ6bMpMBqOBJIAy5/OGT+JklFzkaI/cy/VnTqa +dSIWjjWFxpaZPILUACbN16SdRzL5FsKQAJ7cG/JT6IzDjswGdXEQt18uzWWtH75B +ioqAfiTD8FawigarmXuQ39qPtBSSVzSaiVp5UCyniQIcBBABCAAGBQJOfaoNAAoJ +ENu+nU2Z0qAEXukP/AidFhEAntDGrxi5fNMLsR6FsjllU3Xh8SoWF27UWyPQz2wt +/1g91wumUvXrNz1adz6fErmETBDY0YnP4Iq0tZUrDYoFjv1Kpggsh9qv7JkD6I8j +JVviHF2gDMR41jIWKe4HBcr4lHpoFy5ImlCHgE3RsQtnbiwTwyM/5WELIn8kInpa +xh7rdNnKToKFex++Un+/XjbAd8quDIvco0FhUhGhHqL4BQ9+MkaTwcdT1DMUAFpV +cmW8/JpaKhMtGE0qrZI54ytlSV/iiamVXiWqvPM1Y/FPC7pluCpsrO/Warv1sfNz +kK0T/mW+er0l1nyKryuwLqhQGOQdyCS/0sAiC5r+jUk8Vj4caRNpmaMUOU0SBBgG +IwqhdNqRLdQp14xaD9qnLqbZWKxu+152VaA6ua17agj/L+RIj/a3tukA5D8ypReT +tQjkweRa5R+jfXZs9DW78EYNpM4voG2gUo+7R3jI27dYgE1WcA5splGZVvRbdvvS +RP2V4dRRopUmFgnzTP5pa+CHOossuTb+nq8DmR7fQnhY9qBiSCHewcuNZMNc6j+y +Qm3D7MPjxz3aCDuise/Y8uMiomr0J8rN1s1ih1APPexlR3yVuN9DAqT+lWTfna7i +x6LWmtk9oZpa+05jaFewt4bFetmv6v2TYYw9cy2as4+wx5DrVbM8S4t6DmOziQIc +BBABCAAGBQJOkPLLAAoJEHYrV7t4QgatJEYP/0BrwBawUee/D1lqEUAmBdxiFF65 +NQaIPrgKGvB9v+TsPgZWkEqhDzieRO4twC+FFYttPcLQFqIEo2fiiT7SXqTPk2d6 +RwXHFYmalvomO4nSGhkiE11j7ee98Ue11F95PJINTtnj5kXj99fx8MFxp4TOZKvo +qAYmTDsbV7JsOQy6s4XbNpmW+Gfeuf0hzS+I38wmdrSprbQ/iJxFD1oEM4R8bYX8 +1cvVA43yXx2+VpVe+vX7K1sT9wKRF5MgXnHpMjX2VbVUNMIdGa1bSCTeMtdxo2Ak +m8Y3nxPiUoeRXCF4G3jwAHpx9rlpGO1cbzQvauqZP7ukW8Yizvdcz1IGQTGa9flg +ZQVzqefRm2u2LY7hFKOHpbFABs9qGFfUj+QwrD/uwC7saOoZyAB17YRLwoUngLuN +qA4d8hvRbqy+G0oxlFjMaWhUOjMHkhlVNgRmIXBfaNTnecTyeuO8KXcdhnnwArbu +epmanwVzgJVomPzIV4TUqnWd1QIIpndYWEY2PrjDnEjUACty4zmXghrcY024f4Ec +i/PgpFr4SIoD0ilA69topJ6aeEwp4y6mm7pkXbG5AIqtVr3Xg/DHG7KM0TaciIDI +vuKteS9KdkJZJy7VE/UCsFdGjD+YbMPYF/NGyIPZ/oka8078hY4BufjHsV8RzUtH +TLt1akS2jUIH3OCqiQIcBBABAgAGBQJSEmBTAAoJENju1/PIO/qa+18P/REF1q71 +eJk4po++KNGWDL96LWbCGGpDh08oXxGtmXPOvmHRGQQBaqyRxIY2x82s7pfy03ed +iVmNepm2bl5lKEr9mkLuFeyKkq0OluzAoluUPO8UKS4zWYoUqgjnyWlKYKIUdHet +1gADRuyVKrNAeMeBlinfk42qbaaAalYaNALhh+OBMkL58YExrjRIjmveu8uHFAcY +yPYHNLAfpLQk1XRykCAtuks9Eq6WumCMaZg1skYo90lU4AInPRbl74owjD6kpsZl +rJclRmxk69n/DYstIvXY0P/kBjHGBdAakI+DqjlOBlwXXaixtDUuiQVtS9nsh7d2 +L/DEOOwRlZW37nfO1RMMUGYv5MOtUmljIJB2e6ogNHdejSeBxOsQnVX8+gt88k1j +epCkK+j1gLv0RSNgBPfCfZPFu8YREAsFf8HqA6moP626FgV8Whe2hv2eEP48VKfr +y/iBokFZekGEda4lhISOw8xA8vJ+rT+hrLTwbSRKfDGeacZmv+Sz+Ah/qNcdA4ue +zvoG41QubT8ZkQ06oxC4Ka7mON+1lktBlMawXdiJOciibfor6JuDbRwjoZo2x25+ +PIwacT4VvqgvNLXRS3B2SpodvrmqALf21/j+v3l4idezQGnTA4vhww25T2C7NjGh +Dt6WGZfa9YXm457XSU09iSdqIE+/AtW+G9JDiQIcBBABCAAGBQJSDic0AAoJEEdx +IXHy7WL7TpsP/0m1gOAsZBP9jEOSl2cXe1c9ItC/7OweunN4SsRFOPBoogVKu6oC +8PnW+Ku9nMQzxdeA5liGgpp7ptK45dgCXB86PDqNIdD4s0Qy4RxdV9X60hMcjazE +8mwwb1B3Z3wwPli9txkNSr6UYL0kEOAaZh6btDiXNuRWCROk8ZpzqE/YLU0Trq/z +OfMKUz0oy3qc3hbB+wONBAWYjCaCmwiuoN4JqG96n/nqhDG4ibn9w62PqFBgl+zj +RAjbMy4E3pV6Q94jlO/5Lw5WbfTZD0eFfljflfLqT8x9vHw87SgXrxnwVIwrV4t9 +RPnQGwyNgjw9kwPgGCof0hbd+Jo2qJFvsh+Y6/RQbG6FmpPwXrclUFl8OjQwIwLr +nc/5C9LdlG9GH7SJ4UrYkWz518sQHYos+AOv8kx+WAZvOn0FMIn7/UiK0a5HIC5E +P0Z0hc3KfT6IMdLFlZbcwsaNkpvI65tGSoZqzHp3823Y7+qiD0+Jr2sMv385aMTU +CGoovxZzXn6eYYquJ1OtFqMy/9hvdv8vs/bGrbVxmjatx/CHKmW/+cJj2eVooS4V +UX8dsoOpaZjKy+eYsbSlAC1ciMjFX7F2H/iZA+dJpoA3bGPw9Q7pfnWpkYqqYhah +Iif3SMNy+zHyHoYajUS+5J9t7K/FiZ4nrBZ8eon9XQxq6YtGyq0knmb3iQIcBBAB +CgAGBQJSDiVMAAoJEKc+AFVVj7jdxScQAMP22BdWpe6zVVBt29yae1q2E8xj1105 +Vs2tBJcTJirNpEyBRgVDZs+RX8GPbHVuueYYko0fcogrs0rcgusgTcaUwed0No/0 +xa/lo0y6e0Umqq6PhN6fFti6lx1OtMPtOOHDMCn6XTrTo28rVg1Tn/WKNAQhw2MY +daWh98heKh0ilh5EaSdbrRtwxjJHDTWeN0/g55SXg1aDaw7Bu3Br/0oJ1e/pwiMu +THNFJZyylK1Q4wNyZWzYVcwraGhp7eFxAaV+QtRwJ1KVTM3zRqcM/zd1fF6t2d7d +WFINc34SONN4uUqF2DvaIlM6/Z+Kei0YlJskvmfOMqLgs/kxLYJG8UQhA6udy+qq +sEracf2eZ1/pUma13HTpfNwH6Q/uNP2LAxa2/pXthgoAlhzG6/t3ewW5b27BAgJx +gi2D1TI5FCgKeB9X6m9bx+1QW5wXVVoh5ADN1wKgrf1ZnmIEILXdvOj0ATpSnu99 +3vj/hEUgMZTdUww+dr4EvbfsQ5xvLjaPAAz/fvj35GdDjxl0CVdj4W0zTYHkUbL7 +Fy+a7gvy29AFZF3xtftwklzUXnaws6clvcFHGq8TAt0oGAcXj+IjWlOK2RHHCg11 +fipjTS8ieYpvU3vPn5/MFm7ZahXRtz29yTdnkyiyZUQo9/ae9uhnijjElNV4D3yu +K8pTsEZJM+7wiQIcBBABCgAGBQJSEM6sAAoJEE5xYO1KyO4dSL0P/A2585XIEdWG +rjCquwlcEu/KVZBiKn0xzZCGRxVCoiDzkH591GoX7a3ME8WoDZmQ9UtthpZTkfIs +wpqGmTTajbjox0XNzVs9hBoNkENuFdvH3ot9p9mJwEnV/L28KkATZzGfdlCVWPHB +CPgs8Rk5SW6vwKTrEK7Jd4PtibFMTtvx7eRxFV7gHJcapIT9Qh2mMg2qwgBEeywU +kLtXogugaAC/ObFhF4puHR7/NZ65eVZljxEcGaoZUKOcfdtoHMu2s6xCoB5ILv/v +JfWz88YqtLTl6yoX2fp1bQDu96O03XOrhGKtD77v30/qQCl8ga6nob2ilNuel5C1 +C1+f+1MoAB5jaIsRrj4OfVsdsyeWXDhAYQkzGPcsQcdKBPeaOfZD17XyQjv5/+wT +XBG14usYsgXrMWGrzIKrlKKp8jAqmaN/OyKjhzF4KgcfbwOoCjjM9VwEVvSEKJcW +eja/SMgzm14EIiyK97ObsEnd+WesfeYHA6M4dHe06/LCM+XDzPHhezMTJMXV2Lli +88MvDuOmkWqXE/7SkbXqPDYk5GxXYy4tGj4wtymGaOGAKlYIn9blm0r/oO0jKywe +cfblJVsREiHzRPrcaYOZPP2o7P2ulxtTNDU5q+LaM+t8DBGEhiwIc0m+Po17bLS5 +uqm4PlQj2w1t2WMy6CqaHO1R7iXWxCtaiQIcBBABCgAGBQJSEotEAAoJECBkxTZB +wl5dFNYP/2O6iAaYNlVmk8ZxVgVH5PUM7K8MHeLGu4spUlumQSoHG+SliMa6LJg9 +qAe6mXdS5hr03iO1Op6yvQTghdFLVB2nnH1PhVx8Wa3pBAEBZTjQnRxgm/MESEJi +FyVyADNZnPVdDpCSt04+2eETRHp2xYAJp7Fez6SXVRiUiYlZiIIOqE+NR931T8pZ +UrDhPBAZg1gGdLZ5VFVgzgJnC/VTjGGkmlHAnalMRw7o+Rmcvbj1ws26iaX9CthU +XJbhgLRHhsIgQRx+Bamge6vkQzWc4KBBm8x5/jPmUoQOUVrGtC9v73KFAW6w3Zvt +XASbmFaji7VvJREP5IkrBdg3sKGCfNpaNlJlez768vBM1wH68NG4+1rNvNIlFzAZ +MYapjCSTJ412kXz0CTU9U+4MNfCU55+HN0oBpYRe7CLGvQPhOOqMovzddAHzpYEd +SUvPzUhQoEQR12R9O+l2qMMrBSxEuok3wpRmPL7mPRfptGeAqoDqViqoK4UbAcdE +7OJSn82eSR4FDKuHYyaeaVMt9/3UHRg3sriSwVQwL2bEBqFUMUt33SPl/Djs2u0r +xZjfByzM8CWscqr73y8FM2iVeumPiPkHm9RedFbLlycPwU2RQUuDK7BFhiBvPL91 +CZr00o4CVV/VUKRNqy6piz4wmTtkzqG1U0R6XwwgrGnL7OboqmXfiQIcBBABAgAG +BQJS3gxVAAoJEHWXeKmja0lPrJ0P/jyQfTFGCzHDWm5V/0sDcHvIHVfPMTJ/nSQA +9OkHw9My+mENzfXVkTt4AV2kwoWvNU92UofDaid/p1n54R8vwSDrBjugo/j/t++W +sPMbRl6WdjFXpP4zzCvjkKJwzjIGzQ/bagxI6faGtSbcNPdBNQjSP4P/7INS+dmp +1Vs1GOYQeS4z4+x8/716bOylklVY8jnLib2dDJAUZl9dxGpn/YGs5Ot37qjg3eGc +zCBcnOSUkUnVnLCFuru0mkoTTDfTl1seNuFhS4A0fN4NBJKPcMdLlNthmMDAqK9J +/FBMKRL+e1JwKVelGVlj2jyXiUvj6Jt09CTDaJUsMXQMAhfyhL8624xRmYoIsIUP ++3VOVyxlP3xZNDaiS62SwUO+FwiDfNwfKeQntFKSgq7dZdqaMQWJgV/dLw4p8DMA +BrjAe9j/eXXeF0UvjGa/oUgfMyGx1sT2m6TnHLi0sy0M3I/oIfZ9dLdsTf9T/QDp +gmSSnRaqoumdIlu3LUDmNa7xk/Ou+cmowbDQNQ/auW2vEsWRagYBsGfoF+DCAn/5 +SlCy7n4SKx5XShc+kRzYG82HCTTQL4q4YT7pxt8BtPS9Tp7pZyfJEdcZg/QhqUmO ++6qG/asJB0oYUdFgX+Pl9Svqb+8fkx8CL05o+/HuwwYhW22r2TqAEeowJRue4NaQ +GXxTFkOCiQIcBBABAgAGBQJTOCq+AAoJEI8OfCtFIuOHG/MQALXF9W2y6t/dwG37 +KxlUY3diskgFhXSy1l5LuvnRGpM3SfmYp8675m3R1F1ej3AULIzYSM+9IW9Jxtzk +oc+918kivqIg6LZb4IvgiH0QzRCVCehRVXqHPIdXz4rXm8bTDFjQLs3IWoGHWpZJ +r1dBiyCNu3gky89mTlO1Qcq74cLX6COr4X+W6YkMhQZIhUVwDiSG6Y8jt10DBSw3 +Yksc9Fmn0V9vx4ouXEJ0tN96U5v2c3JBPAfljZCjFwc6T9sJLWyN1/72syZn6hjf +TD2eu90gKK69wlyi0+rZB1zebsEoWDBdW4+8Vg2Ab8F6lgApbvVaFvirzgiOM0za +fOf6Cjs/yYhBJAU81Jy9PGoGEh9hPPd4/uo19wUH1dFJ8XEDYBGVSqnLX1iU8foW +wiZv2qq2v0dPznjs2Hdsqt6TKGKgRjDiRrrZhrjnKPk4vizIEA1OP/nSfn28jT8L +l0JirOLKcdeI0rxoYoGmwBi+d7FovXK87Ks7q/bHmusKi3lSLthXCkKocmGYHa9M +PjqNSSwdbhd7ocL/1q4tBthfXHDN7dQEkdD3sybFapL8QvM1Xs0j2APnyWvZgqOK +QYTNxcgsjbKBP4MRZOnRsbGmsreD5mwOMIQBgcr8Nz1eoDBUvHAx5vpBXXUEvMqn +xVq5MZR59xttTfAqs/cquXsxGHA2iQIcBBABAgAGBQJT/QilAAoJEJe6nOdhoJY7 +TD0P/jaMLq5RI9H6eJZp0QMY8edWgMZOkMD97jXmMLi2k4rBH+VrAw1bUKDFMD1k +jzIoHpJdhzHcIa58UsETcOGaomxzjEJkDsgiw98117K4DI4UBseiiqK0vKE9N16J +EqavSTCaG+f+hWvhzqFZd//5mWIU/f+gCRitUZNJjSa+UaX88TYUzlYXGdwvGQqv +2yeI+JQ0C1wcYk5vjYhmRaHa9o0FIkCwnn/vNbgxv8V/f9JT28tXXnh/589uCyJe +d5d3t5nSbdKXARLgPhCzo8DqA4cnUOCT6GXrUCyEcdz4PxE3P039PxR65qdKqCOV +LViNsqyWcGipldjrPTsfRKs+kDXrkBDDM/JkoKOxvz1YNWNh6vxgQrfQnJ/mYZsq +FLlA1bEjIrjimz+iDjpgoKiGYw78+NQDSlfQjAWaObj2TsqaSFqnpSK8isoNs6kJ +j4hWCKRE+kGgR94C9FJ8KIFEaxBz5pA1hNDuHUScvzl+RbH8JEYZ53Q9J4pFEW7x +Yd7QKTnkVBraWvglgWbQFk0mOkOzAzYeCS+nSrZ3Z81uvDNBQS/djGMQ+bfhi4/R +EEbloikCNliCIAntDvzLlUUFKhv4oFOeH4y2mK7xKSdTdvUbn3DgocyWKM07VIxe +X1eBC7iXNstre9mjjJWDVWwM4Ixwv7V/DRn6O4YKeUtUvmVNiQIcBBABAgAGBQJU +BjOfAAoJEPbTSVuwrpoCxJoQAKRuiIrE2e0B93NOe9p/Ije2owB+uag7UuBI/eRn +RbBs1CDV3Wx00LKivTHr3cmEmRJ4kfopp+eIjerurerMHQ5I8nLogmDg62PPcH1R +51LMtRLfY50MJI267w7tg3x/6JX673pLCG+KMJJzltVb3PVKm7l2I68y0lNTrTve +dfYMkvFJ70fJWDGTWiwZNfH8nKFgBZQ+8H3qqFeKRD/U48NPM6uw7wV/7p8/jsHM +zC9REybMayMMHbIZE0xkEJZkdT+GXRVzSf0XhYjR+E01ga1oHMHHdYBBOWzgXKJ8 +OoH4yCk6FgjvXrSIuRDPt3/+4wgmsT3+3VxmPl4fOehVvVxerTQ6elz7LF9EMWvt +C3wnoKfq3Ds3JTnwMedMS/EM6aq0GyV2lQl33SDDTY9gVa0lIFH/4sjF1Uy1Uq9L +R73D/GHE8CBbL1N1Py+/cYnXt2d9xgMxbtbFHObBX7NNAwGmoEvK3t8rKP6vEUDH +RL8OJxvCQV7H34VMcfS5OuWXdBny7a85+qkVb+fQQs6ttSCcw1i9Zb7LqcFwxVsg +UzZhdGc7/a5ykz+q9CE0RwdPVHOF7QPkcgju/15VZL9fDSxsirO0JnDvKssYg7kx +5oIQ4LSwVvHdDBFNonhx8/7sTBp5ahqmbxNZgMbbodwL5Q+t29fmDfJFido8ZSx0 +kJaaiQIcBBABAgAGBQJUC0tuAAoJEAFQnVyrSv0/JNcP/0wBIKc9589y3W1pjEV1 +lSMDfUOWp9YlMLS3KuNpAk9lwRYRjxZz4N0GwkrGDU2QdhiSDKgyJ+YYhbrXX7Er +Oy1lZWQXadszrlSONYbsJ50AWJILrp4nOB4pc8WE9k7sTtYfnn5k9ZiBStcFo7wA +gok/O9OPObqGcMRC0PmuxKtTr7YPYGXkjsUd3Luq3NPNE7IWe9T6EhOqFPrazTcE +B1jHN0t8DLfxe596wP2jEzlA2INe2ScYbJYTqcf73rlyFsbxNLmCYUMMMfqzAOxd +Zc7Xt+J5JlkwhItEdwcZ1wap/wxmJv+hsVAeIGV87ebsQCP/qQpY3uIT709F726D +JR5XcctJpQYHrrUo9++/lnoQRIZPqdIK64AWxvf7deq2EsQsLuUQRgX1N49Udowa +9lP15b3RTSdE+FHDDEoVB4z+ZSaEo6+/zpAPNCdpOceAMM51f3cvFgaSSlquMCrK +rgrgdM9GRaC1+o3zQH4gCVq8HrCO06I6I6ySc+wKDLc4Ho3NTOnF2gOme9h1g+U3 +n4F5WxzWVkB/ywvr2DS7XaMXS4sHTfxpQCcgHn13Vt2VxheeTaA98Kh++IdIERRl +uy4pOperb6Y0SwVTT6bqvj2Ulbo3y6aYFa4dsGRh4f0TuPiNefinncwzuKQofyPU ++rLsiOhwsq7t1MsMhjBgkefSiQIcBBABCAAGBQJS3te8AAoJENpJWPYR4Unp9XkP +/0Br2hPIsMLN+SJkst87WJ+Iw6aWWHn5B58y48X5s7YTacOHxnsKtokSheRszl0b +/w5dLDZcDFoh3lwkh1aiaSfyOZZIsE6GGxvP6NSIck09eZTAS/3PZzqX5KAycLYK +LQlRqcPOj3jNRajANhto4LKpMiY5PmWxxBtY3xxwz8uOeC6peJcxGxvhhJekzr1w +eVDOAS3x2bVD7/AG0g33rc/wb0t+l35OTun40HpfbSDCUJjnk6T+Fwnw87DXuPpk +VlCv72Y7qbNKiw0gDM3bPEcMwWnniGMzgLXHnKC2UCZqxpKo0GIWAFiB2dEbZZDQ +qxUEBhPVJ0yNHW1NSeOf3Y2jMxTrIfxM2NIHrQHJAz+SUVAn51jURtmvS0zGR4ob +RgRmL+papCz5JHlqdKhPfRbxYjZE3A+a/nSkHcnG9KSTaQZzhYIv2VcGJN3vAFl+ +BNwKIjF2QytgIZKL3N13YjiVPU+Y38yqxmyiAw+D2jhtgonM3EKuMui/PQcabbSd +843MNtbBWlJx5eAvrVeKqo3e0AZOLA5tuYUud2OX0Bi0xVjS/0c6BRvtCfAZveoQ +bu4PhP4smx4yOQYwJw5W8hI6loxWQGTebN2eJSX7ftVOaWagys0/I6Gj648UGEgF +6rrZ6cgiR3G2ne9YWIzcqEJY+X6TNeTnv4AvD/zxoubuiQIcBBABCAAGBQJS5Pml +AAoJEIJClM0CF+jYWMsP/jzA/5heyMTJuMwFbVS5suRz88iA/e4BQK1Mn639UiZK +tQZ3Pt6yOGVBuHnL9P8j5LzV1S11tRQjJiUwI/2BLfslaE4gN+Og8iYEXRd4S0wo +c+agSyqnClcUwrIgnRhAXfcBHZZbsckAcm4FRWGlpi6UXHKUCGUyQTJE48SsSj0S +4o1pR4CZzGq2U3slqd/jTyI1agOtV7Xl1fmiJbZhBjwySRitjt3bLNmp50SGtyBq +fyFg15ZrAWsXRnYuxciefW+XP8Q7iDW2ElvFBjfiF7HBzVlhNvHX4jel8weHxawv +D9ph3QfoXa6xQ1LXMYWrtVTc0cL5OCAukgtKwasnoqCmERnRiR8LoGN3kfUhrvAl +FEnm36GORLQ1JaAzSigXoyeGAFHrdZg1y0CxmuY4/BuLn+zqANScyp35JcLe/mzv +TNF4JDR5lKknhVgEJWRIoZ9XyQIV00ypsmA0FP/oZ+vdafGjM6o/LqZMn3uo85tG +Wh2toniV+q8Je7a40JcjYLvgmYwH4hkUX/pGqvHkuEcZ2jz9uW9zQjOWMouih4+B +mdQAQHEkwsRRKKaygReqd4RdsAIZ+s6WoHbEWbzaen33s1rV+Yce85n5vvFpXwgM +LRFtx79azKEcn13nIhs+yaG9OqMR70ChqdYTzjVhfUJkkEn7n/SeN3jDtYc7KQS7 +iQIcBBABCAAGBQJS5m/oAAoJEPuGMlGob55HD9MP/Rh3UejUg3nAkQ2e/Pd/xeVq +t9Lj7S1hcK2oQf5o2zURwyXLrOOl+ObhZh5QitX7VBEbKGuM7Q+plwbmpvMRtfpV +FvFS3HmxD3+8RVTlFuuap5rnbjfofK9EWrWffRG6CNnwfLxraZQRnHMAzqbZDsil +OBAb0YN867FdGHLei08O9bLreKBo5QdQ5Cdmlcpgskr5DVg8wDtd50OHvrjh83Cv +qL7UMlI62OUUb5AZb7mtSqdJ91vIV3ieoQ6VBqGUWVXTlf6CuIqvpkMvurOXoke0 +uriyZurGvnhBljNUgBR6Wek3n1h5A+Qwb0+EYFUf6pqxpNhz03w4v/8P29m173a+ +TRXGWYMlw5mQxcF0JQ/P2w2M8GgJnhrxcNjJqXZapuuHKNwEha4ni8NVzc9YwhpP +qDr83NxDDtjHpi+hALLIv6UZKr2chrdr6YIupgO8FCXZpBlIMZKOOJBxjuXDi0bU +HnGB4knzD26QSHYm8AcGENheW5pBb9jTH2AOQHl9fTz2ryXMtvbucToFe1+L+9yk +pBU+ixrWvX5pIyd++80fPR5Yfcvb7PQDyj/yTOI2gwOQLkWXAUk1xQv0kVXmj2Uk +GY5YYJfoG7kjyNxzzirayhU2xLStqm3Xl5FQ9fkrDe5BU9AZLTfYzwGIvlpSHYZa +44z8icJRbb2Vu+jFY97wiQIcBBABCAAGBQJUBBc1AAoJENQWrRWsa0P+Bu4P/1kn +OkWUdJea8AK1ZjgVus9y7xektm8LCsEWjNQV2PvnXaI2PVgP9a+9hOLFut4KM/Fq +9M9PNQVm6HBNeUJCmVq7f2kBvxgfmkyJ0GNQ39axsLzxzs+5uLUWlG/y6O8OD8Z6 +T0+hV+Yqx7BmE2H2Q8UtRIlBXaIFG5F4X7c2PK7uojVtOM1Y8u182QhztPZ4H05s +lpCBGQTEU8VFJBS1xwh9w8E43I557dFP3E9GhMqRDwW2FKFbAgLoeHirxLzrLOWo +gMZma59YUAoKqzYhvu19v+LizMIxvG2UUScaqNOHeC5Xl7kqJzf4vsn4gp/k+BE6 +qbF1TbcfqXlNd8/0QZNWNfrYsYudZRInJyV2/5fnsKH5wZKOdKE/MufWM6olsFSu +orZzd6R3g+xr9TIU+YD+lrHgq/Xjjes8JwAv0b19KyyuSPkFIn5IHRwiThwhct0g +ISVhO62P8nj17mxH1BNAllycParRVaBwBePpWJuagdNvyFGGPCEmVoWv3XZnf97W +ezCOrKdBpOUsuw/8HTNRm86PBAmA0D7s+yv6bwpdlDWkxMCPg34s+luqyIWD5D4j +AoCSPxchSMXFRwjN+t8fuJhZzOn0NEo/fxdokSrH73ysmUF26CsQyiL4LF5eR+8g +TmVd2dMwb+klsFdS8cNi6PFFppimWOS19bASLemViQIcBBABCAAGBQJUBid3AAoJ +EOdgBMXO8MlMTOMQAKr6Oc4p3Dlz2zrN2D43sL1QlwNHg0qMfPO65Nh+ivQo0UEp +RsWskBmEfvdB4g1qoLE773Xw0S7/H04OyMoCWxNl3OxK5MHpwyqJUMe0PItmTkM5 +dckpPWeNOouj+CO3eZnxL2MoUQwu81SwAnrNLHN8bDTM/KYHSFwJFxcXZ/fpBD6D +aBsLo72bFztJlAAcTd+E5A1FCs8tfnMIPr+Rbgq1Ikv2PJ/sGrxSCxDqQPy/FuqL +zCWbj3N+XYz+Dj+DVbE6yvbZ5zDKN0FIDQwF6ubXr5ELGrPsmmTgnle6kxBUqs0L +kR/wi0K8xU9IlaYtHgxtX+5RlyAlFcnHXIHkKhh8Z3TAt8xspkTs6SXBIwMohZWL +iez5euMsBZgNAilDBab2UCqLyVsEFi/ZDywxUhztAQOR+ZiVOh9wK/aNBIjhYYD/ +qsvlcrc0Sou+j7SGP3A6zbjDZPpxb1C+SQlC73gojFyydSZCzd1ONhd/OrJrX08C +6XPfrLe0BXtD1EYNBGFBDgnGAkEGKnKdaWMjVvO2zOXKnYBAOJZIukaOLdS7swgK +8hKlUqQ9D28EU4KRuweV9pW6rPgaVqiqKSsnQvtezc1od35EFaAlrJw9pH+YU702 +I4HqfCM/enCPFwa4xs9Tmi5vfUsJafKVrv6E67cLEGslFYmi0wvKD1IyhVnPiQIc +BBABCAAGBQJUCgM5AAoJEFVCl+35zKWFzY4P/i8S2TqXTzgBeR9XDmPuETTyROsT +EfvGmCb/xMqFTO+QR/61GV14Lxiykzt/ngzA0f1A4Kwm+fDFO6trS1uVutzFJW9A +rTWAfzMy+jmw6CQ5LmCwMX3nyAErXnOqsJySjrjYiwgGI1LduGioYzgGY5sG1gIy +DzQLnjQX/uUhu9VUGcQHZe4itTGWuvkc6Nu+x7aJPD7aQJJycSVOlSk9eI43vjdL +050HZ5igbqN2SlwHH4IeAauIC6wtgLPysJAyWdWLEFmf/xtnbkAa3s1ntONDfKLk +5MniUMCHmvtAPVEG34wTo8x3oztsJ0VOew4yfHD89MEMf1flbEv3C4oIVrWdhflh +sBqU/IlAyRZQ9jjtH53JY8fwEpXWCl4oSgziS0vN6yhTXeHxhvIS1k74UDgnXJnh +I0ACNd2ltU0Cywu3fLxWumI99OdLzya6Dn0VGU7GBHD0BedpQhdVadFaEPE06NmX +fXY/SPQUnD51f4Bmz5duVTP1U/BIMvD1Uf5hAEJ/KIxEipySDv0qWpZBLsmWQOcc +RfZ50yCCEsfLsQGJOPSTIS//zYuAGeK4fKWeDKw5BgC8MLS6CWlHzMJtOXYdsOKP +sUCHvcRuViu/3Ki617Z7YlFp4ZL7q9tEX/M26Mj1Z1X9LDcwKKXNBKZq1ImlbU7o +ZY5eb+TanRgS55rNiQIcBBABCgAGBQJUBK/dAAoJEHz82M0ldyHpfEkP/AhxJjZ1 +u0C8ENfbO52dvcEmLaxu+ZcWNLIKcJpKHwKPCHjSlXDh2vw816lBhkfZ7Kp7jKSA +ZbQAYN9cgPmrBZiTmxWOeXSZ1i28KwZiU8UfuZWZ/TzpHoCJp7TAUuxIL5tPtn27 +Lr8U0MB3h7kK+UhyBQMZRvth3RgCakosuXFt0khEmKMYfDa7H3D7KkSSoBOkSC/O +RNt3XzhsSLBC1NBHgw6mfBdnMOAe/q+YgyPaT4+9BeNVgwBOyqyi3p1GrY5+ZLB9 +TdWC4SJxvwZsmGxx09i2f4AbAcFEOy0eK6d9ysWtVe7B1CQBtCO609id026DDwDx +R7mrKms+/asUP5jGJUgf8mXBHU1mj/cl6A0dc/ubou8OABSEta6uNvTPVEWsQXau +R6uhmampd5YIKjbyT54CSFEKEfE9PeET5Y5ckauQttNqqv75wXmdxfm2hjl3Sd/T +QMfeokqlhF/EMCS/w6k8EQsOQqYJxo17UTU5W5YbQ8WnAh0Z/9Kb/iGX1OvMkhUi +wm+prTkLpEa2N6WeU2SQMCzb9EmzK56QBYU9GiJ6YEKhj/0rjHUZ4LJSegXAEZEU +8nJvlT9JUyMMfwf7LQ4/wO+1OdJmTmCVAlVMxzcMBQIAbR30DABknQ2NNtkOKXu9 +cQJCQd5uSlKSr4OQD57wA6D/hVIVfwssyAjsiQIiBBABCgAMBQJUDh2eBYMDwmcA +AAoJEMzS7ZTSFznpi8EP/j+GcG1FcXWha5CJzhVjL0f4DuthUWOmXZMXrPx7j2NM +XhClZMqZCO0B3X2/Q269PSI3W/HTSu6QrL0A7UBZXsJu+Zx3Sl6Q61MfGwmMgNAe +tysJosoAXpmU5zuuo7xksbKG9EZCrvJeRkcEgsM1NYsFWoKKtWpyq0R5LlTjmkAD +8KVtHqeH84KeaL3EWWNapU27KiU/cXHdvJMsCNVJ9Dt0Zg0RxDy7sw2s1edjNoE9 +UByh64dBht1gbdHqMwv4Pjb4AmyOfkZ4yfWAI8EjhVDXDOrPnAQCg33GY8l8TwVz +0TXixkH5AeVV5NNVX7MxJiJ1qcFZ/It/vjM5JeWNi9jH0Y0HJFAVABZy+OUMP4Gp +hCwdYs7tmchWA7txsyV6fhNoHG+JH7PNfpbogcK2MHg/T+pN3ob1qRrgYkW8NlDc +iDhPQc1hOA8GWykZP+5TNmU2sI6N7RIBWDkVimQ2Rg6pYXjsGbe0bezO7iF89WsM +o7CE/0fPw99BsJvF53HZ8y5O3pvu7pCA9R0TGlTEt7vDYsvK5E8nUY/sXUH3afV9 +hskI8AONxToQIzFEm569fSw2GpaK7gLk50y9c20tm0CK/mugYH2EPM8zSTnBNkRZ +Zt7+URpJ4HmluV/2o8MONzrOb2l0LpGAtzkk9AQR8ihxj+yiVWiuvIl+xp2qJG7P +iQIcBBABAgAGBQJUyhxmAAoJEJ+5JicksX0pLo8P/19Gz5QP//Nfnja6EaRAJ1ip +U1GSuUvbYoYK7vbF9xt7lMFdDkepDLJNxyxq4gmFk+B+4RyYNp2R9/KYmY5Aq99Z +6XVvzdmRpTCW0De6lRJxHZjV7Edl7zdPD93FstM/cAFCwJu4X2G4MgFYe80/aYVn +mmpcUjxtmwAnk7CvuNyz0C4NEvUiBbbBvmqmhm3k6xsS+9w3bY6ybsR/yxiej3o4 +DszyIoZ9w1ONcG2GhVzjWOQiZ3xHs2r7NM3QT7VDJqaRA2OK6+rLWF8WVNEIBFcQ +pacNgoz41vZB9dpruSOlN3Ulxbi+hZ9PlCoPN9DrZpMJSoY/avtoKOkvoH0wFVxB +4YDu6rPZpgFRCMclOYxzSxac4edL75vy8jCxhWYIGqaBdr4DYRG4ZJCbAx4p2Q80 +/Pj0HTka+OsvoQI7Ksq0Fud1y+rM2waIOTgZ25KNBZ1NJ204XH/0vUNmT4UqZAeD +nn3Igr9rCZOKxjcpwpEQ2imCiKAHd3v5po6+5aMIB2bENgqkd7Os5y15WEh/MZec +aeC3FVh6nNuPVPbLZ83CKJd3O3KgEAq9CDaFINPMB8B/Mh5sDBUlaqJeLwyQFGX0 +Lk2Au8oRN+3waAfJGCKcQXbOFaIRnT1BNCDy7QQZLJQoeXZvTCRVTnoelDndAGl0 +KUbxieB2HsilgjzBnwPliQIcBBABCAAGBQJUEOj6AAoJELsgrCDgt9a+eQAP/RaJ +h63J6mOZK/Wzk6tvGWr9jkX3YOiSbaO1hqZbh8x7EGcmfJ+21f6lAzngja0SX59Q +dT990ZbGlb/1jI0Alde1yWUdEw2kpDlqAjJzAyXmA9A544CdSC3uugeBdCnf01mp +ulBzmGbMw1Lt6Vld3Dmpb1yx0FrrSQDkwXLY6XBLfAibj537iLtQB8Q+GuNmyF79 +t4V7nWaWlbjYiwYpyUw8Rizawslnk/h37t9HkPVi3E6AT5IkAk1IQXmyeHOy8wqk +/124b/GSF/sM7bWgF0kAT8feA8UWZokb9UhCCja2yS0linJtRlBDdFgwBawiXPqV +xG3N4QQ3LdEESYUu2EE6graHmEtAkNJ8VxSxMzLM1mmJuM4yBDUpUs3Lwsf+7ctz +g8P+QzwiIm493jnrCbYGuV5Suqo02A++PbMsU+WJugi0afLK2XXoYJwOkB5i9du4 +sJi56pXnHaahvJ2c6NpAwUc4vD5M4XOfdt8Hgw1lBQPpp1L8tMXqK5TDAZyPk0WZ +U1I0DmIwJk3YcNnmD+SptAvfdG4LgSF7YSnvNjLWx07T/58ed6X9fVFuCKFO3Wgm +5ec2jfp1/LUUUkcvkLUScGUrKUBkSFhcqQnnxH2eJl4n+kz54wTN9f0fmf+PA2jw +72ezOgrN47/43R4M/gE3sZO10dol81ylPCMRolutiQIcBBABCgAGBQJUCnKbAAoJ +EIgjempTqxsul0gQAIt5awBOcjivL71zBAouBUl2DpScpaIax6eLs4NAvKCua+AZ +WqWKGXpLbQDsQUY93agV5thzU4wqEXNDZRL10L80qTFYtuk2Uhq4U7OJvWHk+Z5w +Xf0NF2MW8jMwm13OzilzxYbXtisG+dBTUEXAJBiN2cbrM8nC1W8glk8mx84+1uT6 +9mz8AcMU2naViOpdGMXiR9LjQgXmvkvRcwGpw263EiiqR3PCBZMqNCfWR/E5wm16 +Z3CLCBOcqdj2EAwnxe6sw0sagwqoPPcqY3KSIWqpcn3Df5kQJTEWx47vInJxmMAO +AoFGpDhaU/WzV5zK1HlBhrlkV5LjdjJ/nWyuZLIsq3BJUv7bIc5YAr3QrAwD5BFv +nG+qIp3SdsiaQ1/nivWgflEbcrDB+IRsIKIwALmGBq7vyeRecOjHcg/OvL5Ay+VB +kx/HuHSPkCyeOPnsD0o/0aWGEvi8TR4PPxhvusv9YH97/OHrViQJhnu0gtJFfotf +4Se1Q3g2Kd7zgwkYwZP8ZA2wMpRzl6qHtO0/JIXBlkFV72N97RY3F0FRznNUjRRS +t044h6ph2qMy81HQp5ID1PCFlTEr+3Xz51BvPx8fe03uevoqkXg6YFca6H5z5nw8 +cY0QH4khruHLByFl3Lzm/xUyvY3A5cD02PsD+awIgAAuyo2uSUmJgWxjsjIUiQGc +BBABCAAGBQJMZLKIAAoJECI64FW9lOFU4SoL/3jYatYz1Noinl3n9eBm6FsoIqKj +zxMb8BXaLN+lpVurGaCUU9DrHXDjA4UnCFKl9K8DL+wSdP57Zf80T/RlsXqY+4A8 +QFpTJnPdrVcY2Y2jwMyRlVavs0kNrTmbAVjK+sG5E8hM/2lyStepMlLn81Uck9+2 +f3N5yrUiO0GaiMrDdEeJ8RSOf579kEYGGBFFLYuinqNd+mNuyPg4fuIg4HbBM5rk +cGPVGU86wE9h3jbUXuj5JA3AsDBHGY0d+B+wUMNdNlOHhMUPXxPxaJKqar/B/Xez +zppUZl0jZ1Pw8ZaqcOu1eqR6nnqfO6dUWpn0VHF4SxGraPVNMBPFQ+msdvVC3N7k +Hw9RELwKOrKNl/dygsjzhopfxu9aaDpWmP5xEy7IfHCAniN2A5Amg2cTtmhD8ybI +hPk+mSSqNTCTF1W9sopVnzMQFaUW9X/g/bFJyXXlTBbhdNphqn98Jb8BP5OsOxp7 +WTj9X/4Rpp+ZhDpfIqKHdWnUTNlZi6v8RAWIyokCHAQQAQIABgUCTF6gIAAKCRAe +dZpyap/ddKCID/4lfvDlCgj5gPFPkpPe3vnnLaSni0qRYcr3Vdb6zklwvcz8mj9l +QpNPvYs1JvWh0ohi8FjV3Rw9fxBffU6Xfx9fjuC4Le7ZFrt3LgO5m+bGPrEqToAR +fCPx/h2J78OEUBLnaANjovIQw5zHWXNkpiToF9WUsw82iboFCVtUDezcaefn4IuW +zaqPDIRHGrdlqg73GU1J/TzZW5lQ2xTTb4uZ36JfJFYlXK+Uklko0dwjTTjQkWgg +p80JNs6eF/ek+bhbWJ1XrMzi4obOAItqyc6e0D/YYRFzzBDnYI7flMod/9Hz/J15 +MQxsNx4tUeDj/oDPwFbzTVTl3DOX1n4CzYa3IaEY33ALq9PLMnh3po1hGJ/W8elo +x4N4OWsYyZGSSDz7p4FX6cgMAt2HBDPFTqXfTEKIOH48VhnZJQotogQDPRL4MBFF +Baw6gzXzIm8JPTqjEExQyrw2zASJflSa6N+TYy16c47xfT4MOT38xIIoILBPnlCO +Vq0sn6l44nJM5c42LV+90h+SDJDPvDt7Ry8Mp+V+eBwAk9AnvXF+1F9pOz2dQqCI +I4YD2tzyNLmGfzJeQs/6a6sn9d/b8ffO9scIgR9vzunnii3Azwc7WPqsigtsPLX+ +1BBrzPD1TA1IVnEDtZgnsiORrnF+m9N1b66Xd3Njbpdd/5GCN4kDXTlq4okCHAQQ +AQIABgUCUy8BFAAKCRBDMBaZUtVW29GvD/9MCRH1ocG4vvNWWsFbi430f9Y5kMpe +zp/fHTXZFNUCwjpGV6iT6wOBjsE4C/TKdeFWTNgoQBqNPAGUijqJReMAdzyTj2NP +l/5ogHyGhQTaSIUEGwvOjaNA5BskTl+WroTD5tD23laHFLJDvTTDCgYSwUvNO1gz +OQaBQW05QXfiCpE88iYwZhmXUpH274hDNQ2f7UN7NAojxv7EnRy3hp3qaP6NEVba +1gGLp5kxIQittBD9DF9k1PiM/snF1n4lgozrItrxS1v9BmhZSPFEcCvXfG6NQNUR +MjlvqjgNtyYAEZvNZPSsTw8jhdxKfT4KnSf/GYqZuUwRKHNRwVM6Dzozowzxf+ur +S4EqOlbVxI8JmUAZh8Fr1zKvE0jMa5Tp0bFZuEsapfGcg6HeurwW/C8N8aEVbI1+ +cuqhanMvIpeHppCbpm2XoafjJl0gzUIS5NzDukd/dozf9deWQSybeHGEiv6Iv/y4 +gMprWGtrNOaCBJe5wMgRmSfJM3G/v7J1M2vjMUr/ixM/aFYa5ud1IrGnoFSR8N2I +DXjRri2vRDhdscNprhBEArGxTYaUgtR25ayVg02VLWNutohbbNNqJHVrFhsxQvnC +uncrHdmf+z1Pe//fXTW1NQifiFX1NrKIkLczzPpn027bz4MdT/Lg8jsMueoBMf+6 +NcA20PMftIm4mLQpTHVjYXMgTnVzc2JhdW0gPGx1Y2FzQGx1Y2FzLW51c3NiYXVt +Lm5ldD6JARwEEAEIAAYFAkp0L/8ACgkQ8+QSLx2MJhpAWgf+LbTdRqbixuJVJZVl +N1o6+h4OABPxJd3iPhrS8mEPoRh4OuiiDSPMFJhbB1bz3yIGkV0DzWIueb6e0ZlD +S3HnJ8Cs4vFscqF+lPqa2m5KavAUj9FAOTurIgGr0I5o1SVyqq+5VSUWoUym2JQI +fQtr5CL14nodEZ9aiv+LHwOrcVTiuLo7CjdxHUF2J5efz0qQqyT/WNxAcBv/5KR2 +Qtt1mgesOXGy+vR1NrBsqFCbCoGXZDFIPWKu/EdNOq2OMGqd+anrej7AsCwv+wTS +4NvGZM5bjexnq9qG+kCt0fR+XgP7MLH6b5mlXSyRLMW9KSEg7Sbophg8bCJzjyfv +hDdW9IkCGwQQAQgABgUCTGH0XgAKCRB3MfzMY+TidwlWD/jlBNUZOsCTqX0GuY7k +KIYE+NadCX4uAILkvBAviTMflV6xnr7CkgS8v2HxAVcSo1+MpqwCYuPjPQupjH7H +gZ3yX13PQ+PvBVOvTOCZErJkyMLrotXRNfMoVyTKnjlS0pe07Ycf/3btLe9c2kH5 +IwZYJYRpUjRJKzrI7UvgArejmcRcOwfaEEDxAqpapyZLOf98tYSQdAfpv9wzISPk +6CN8ropdV9naCc8hctiiutVGftXqiygoIQ1/Pc4hDCuHZ9m9xw5+HjDO9CMSHbrq +7tPf0tWrdmy/LlzL49ZDUmmEScHWZkFid3Lce2HuxEpi7/2jI5XTMZd8WTTztf9l +99weQavtpCMCXuYjONWJqiPuRRdThUfjZlIbvDh7lW4PYQhN81y1jowR6Sg+peYI +EaMLfw7INgN/g+l8a6xPXLJxKUJCGWDrSoPOugbGJNgWX2UAXwHvH23g66jkdBXg +P1/9/DX3WA9/V3piMtzhciymIaczk2Tl380gViOn49+Ma9RIw2dh7vmND+snw4GI +OPaB/65a2sOF3qXkC/tIFsXYkseN8pK2Sm0B4a0/vPkiZzZ0+Uopy9rUAOpmvC+z +uX84AGw+6nfX2byAI3XQzJIp8q0+qDmAO91si4QxvphyqObJA22ZZ+35vZuxzreK +T3ZGsJRB2hcqfKGbTseE6e8TiQIcBBABAgAGBQJKccjqAAoJEOQqoE+mqoxyXXMP +/0U9ptTulJOkceaguNCsQtscZyYSCWklUHYTihtwA76DDnyouFKhayQJ3eJ/BfEu +xGFWDFUll6JhONnORQO9zJOo6Zx8yTF4Edq645AZ0+M22+U9SIkcGle6RWWIkUP4 +/+DXevaGGoq+JeJgYo6ci21BJYjDzto5VqNJNiiUjMDVWDdrL6ekEo0/YecH5/kv +pzaIUrMvhpW1NHDehC7f+4usooEyAcO70ujLlU8A1LeKdGVEUEW/pBlRTyIh5/p6 +s2vkFqaBxeDrUkNQncnz+SeZVuOrYNPhb5+LQqX5kUtFsO46UEDubzZC0B4ssB8c +c/eJWWc4HUQ5LqunFugh6FiktoBJMV2Z0qm5nimsRW5TyEb8II9kn4fnIZYMd1mI +3biIht5G2XZN17N5/bTrhy7G/m0Wjyr+GEsy6sw/GLmYYqsG/+0gsG8hy8jxma4M +D1NFSjBHnjdYJ588SQd/ZssTDzB8ksL7VB9dJG8jbeIQD06QF0Y99SAyZLp0gjxj +XNmvR+Ds1grzRJYpjqKW4axJwGZy5q5gLt5yoAGply3CKSK81xYJzXFI+NQrJUFP +O5NgrrDZt04y9E0Q3N/HmvanhHKSmDQK77pHzDtr/HSfEoicTMLXaKRllgjSdu49 +iAqHK1hgXvd+FBhG5qhab+26LIvVKK0nA/nre/11+IEPiQIcBBABAgAGBQJKdVY+ +AAoJEB0hyD3EUuD8RCsP/1ip6sm2j3edkLxC6PG+AjyGF3dW8SerwkJPRCejLvhj +Pk4wTrNDFgqrJ5XR6X63SC2/THlwhbRWqKV2ckdsoUN/32/eAAHDDrqkQ1nG995a +y2xzqrReJb5XKxWyeYbjKjiJ4wRVBL0yKjbbTivlwAl1SQOqsVrGGUmLSCHeDrJl +A+61LgbTUfQIwx5z9zDpNb7KSbxhxFila7tN2R4yEF5V5QX8AGvdQdb8+6TK4tir +d0NV7Zy2S3bfqpFo5QCrwn2o6LiyMfKj49E+xhRDnbftCU/GWI+EARTjFN0S28m7 +ZSRVYIKfsGUpiNb4lXGwRcJZUNkSoWamFyPi075pNCIv4sYD8Z0ddq/QZT7tm/kc +Yqv9zr+U/PWsvVFSOLtcJ6rrOpAVhjDRfqQlH4cMLTq2XFhsVGyrfBVdp+JaV1x7 +MBaxQIUc0iyB+y1694jaxyldn5pfpb/rx0BV8UsR8SBuCz6QyshfnXwxv3uR14or +W4+EoFV4kmskzpGZUIo9sNp2EYYRlsYIc5baBnxlCTJtslQa8JRuvYS/rDI6+MaG +l/9nFnXVSYCIv9uij7rV0MKD4LG29SEchYfg8v6BpHfYKsdbRqIB269fZ8aVaghq +AtL4g1Ro2hEdB9HeUzVUxbBnRNlfI203LkfFZ3m5TpydxYQVZHc7Sy3bYkWE7MVH +iQIcBBABAgAGBQJMRafgAAoJEBgUewc7rSsH9GcQAMZcW1lHLB//Aeg53j9eDtl0 +mhFNomVPnfVvu55P7ApqRwYSiQUS2er3Vbq/ETkA1kg6nVraZuIRNHqL2grlml9M +2eK9z1GC41DrjdnQKu2nsMi5ESWcyI5QR/NqiPa1kTdvqW9BfF43BZVeUO2MHLQH +KPxCgYWKloiylF+7hIP3C2nO4iPauNC9ONSusJJcl06M+URa59R8N19H1/NdGJBJ +uS4aocvnGr+v6QlJf0RwZ2LpW8VwRf1dfQCzHg8KOk7G+y33+lzMCeDuiHWDXhl3 +2Zi6nD9qRlaEwyEhHIHYh0t+eCJigy2DdR1GUMJO+enKaEjrYIrzXzDv4T7FfyTn +fj7Xg32LBIVGY5yWqhTBCRRegRFqlqa7UjaGlMwiIIiO5Ft5YZ+Gk016z3zaXWJm +f1jCFfbcnq5+IHh+gV+eQE/OskU3bsIKrzVjQF348dqiO4NzL4T5qK8QAUPuznGr +zdR/Jx0r5NOYPz5+PjPv1mVBSRxHUHdwEFBNp3u49y3VUaVUXfL/oHY03XrOlc3f +qaUMUUUhh1rnghY9eUgqbGHrQdBXTO5U0QIuAwdYzmdoWYTWXYixv18D9HAlbaMU +wmrnXamNE2oD0qhIN2jyBjdFzncVcyVTWtNAldS39BvgF2sJLtF10AydcyUu8Jec +R4gbEzveNL4mz72d62OHiQIcBBABAgAGBQJMWjRcAAoJEHA3PPEpDbnOk+EP/j8V +DxTgOCyTXjumPTrdCVmA1qKEZel3Fr7qvPrdwWSh6KcA5oMBilzcw1F0RN1T+rjG +GeiRay+lxN1SezwkUam++FWITYrSS2VxetPtKU3UXhCnX9mO8JaFmoRl7V4SCa+r +pqalHLIX2g22RVVoWGWpgCYKWYEV3vVoYqdYg7LAws6rNrolpSvSsmgy/3Xw/J38 +HppSjxJ5zWaAADXt6XY2PRL3IC5zEWxG1hGdtJuclDa0NOewiPRsiuljnF+0lSnz +59iEVZPrEcXi3KoW9zlSmb7Tg9j/UWZwDC2gQWjvnsC6jqiIQtEKS6Ge2f3OkClu +j048/TM3nPsy4zniMVkmC8LjPAaPY3NdcL1QA5iwxjVSgiIQurIiz9vxs08vqg21 +YYxZ/kIuyEOpnDLoUe1zo1zowb5eOpA+i25T6SRHny0H6uswJ3r+olK7r4mIjd0W +sMpvihaiV+3aR7ckKCXdZakUzoHt04poJcUybcwscWVGqEvZc0opjvjI62OIMhaQ +CibDkFT5ow4I1mctvyJVDJQWurL0oW/H/qwdjz0WQF8bfwkXg1XWEbu6Asbw84aR +z27Me+um4meJvTIc8Jz0HMTdVMmAmx2L8Hb3BwxlW3WayvPAKCoIi1BoRZyN02CK +q8Kk5dmR3RW37BSpWhhPuidrpLLaTlkzQTyjvMnKiQIcBBABAgAGBQJMYHVHAAoJ +EB5wkbHxSmSiWzoP/AqGj2Zx7UVmJgn6xGdLdTxHwzghyutC4cQCjSl8ymrjZtTN +8qmESbTR73LHFRkRDLqGeouG5fM+9AibiP3qoMcKI0M3K6jrjgtCkDhVfj1R1SUR +0ZofppRAlqN3jbAD3VZ2RFaWcuYdG3l6ftaHVTK8H7Rr1OtihB5UAz5FqNX5niT4 +8cNLb/M4UIEDFRxJ/mIU1/bDi6FGfPtdcjWwpfAJuvkPuFUMr87v/3y6vcL+ot1k +4aFZifQNTTqriC5aR1la9DawmV7iudR81KQ3kPf52ArvvoUaSXYo6CKvQnKYuPUG +Zp3eUiKz31SiY3yCx0cF7vYn4LrLi6UgFfk/Hm/0utjldmYCWb04uGoOsvw1cCVX +z2Hvbsaq5nAUE6UU0SPkRbGLhakViMo8eA9raLGeMJiFl0C184JnB//MLD8O9e9t +MQ8H1nTNQv71+a8JWJVcyErdyJ4vgJvDCetXueiqVqNbzFlEjBnfZk0T4YnqyRol +0KoZsiFFR0UppUK18C3Z4mC2UkiU9Uftizfa9Hfg99z/55e9wsfFF1B3h6BfpvDK +N14yOcNaSZw5yNUSJiq4tpi87RLIZ69UKMaYtBaffebocudPF+kKigU1p4A3eQBB +CbbuTtihHgqYy/qINFZVQW2YYZFHzKSOw53r4Uqumx2GhScmpML2WIfygy4miQIc +BBABAgAGBQJMZZDOAAoJEBPAtWZ6OLCwstwP/iKEZwZgwQ6qGFDGh7MxtTgnOzIq +J0cnGUuTPXDwzHrFgKAohKyIapUtl15iJwOxbEXj4b+6y/O7GvotENMVKINY6sCZ +syhLvzOIiBX2+152M15k4LkGwpzxZMivKXQ7hcdppAy/jIHX6qI0tEuUuDgLxqyj +yymkzxGnZJNnK8buG6/PnYYYgYWifobDdKzVzMuPTaEj2pydJXfDibFU9upZ9gUL +ynYQkkPYGNmP/GpcesHHJpZmyDuLgn36Vils9Va+Ee60rpk4WqeRN2s3vg/M43Pd +TIsPyRUpVCAdJZ7ly3tG2C0YHXp4EyZizLbmf0t1idTaE2EA5QDePNbDeAkmQHNy +4SUErAsBGnVViNzk8qJSMMRTS4c/jMtjfyI651+PbSXaSb3kzuT6kyKY8zdltrJH +AgacqMcrFBB2Dbwnz29fbmyVD+qF5u2oYfj6dGCMXACCWwWHGCCzRW5m34wjoi2R +9xnnUMBjF3O4bgWZvGeWKSDwnATUBbXSRvzYDsMHrR5UughBAPx9hgcif0qFODGK +LXhExqIDO/AUtfcfu+UHKgd438SoivF4TczcbBAnhBJC+S5VtIFVFMcBvG92oIZx +RVyWYsIVBSW2+RfjWYHiEUVc/MpYmI9iTw1thpZ3JFE6ZshcVmX38iVceG4Bes/Q +ONwvo3EqVA95wl39iQIcBBABAgAGBQJMZfOeAAoJEIDQpC/yyFDKRgUP/izcxEVl +7PT1PfimVUuU2NfGBzJTUbdoxI2IovXiqgDY3vtN8wtG67sUTHI+akzDMcXc6WJr +a4SkxnyTq4BF5VInVW5gyKGeTfw3ni17WIheDwuVtsfCAdB4L+nkMf1HQcFCoNne +cL2ZGn8gCZuUBjTAp5XcwIhKA94Wxx0tiLq8wUmG1Pm/hdr7ODwBJ6/djqC+OA4N ++EoWMGcjxcfRRBruJ9qg7V9YoWhsvOY6rkYydqjoLCzNN/f6BpdNDbcbkzuAxWb6 +UPCkTlwBjP+yIV5++DB03GnnO+3P4VLn/9WVIAgxbUyZ57LHIFJuU0bGHQCAxSKE +fYxd8Dyo5VreBsVrwhe0OFXtukjz5PDe2m9ZR4K2rwpuX/E/qt5BuxiMScQxo9Rr +YwqMte9dX6D4BewblnDYoOtuFdG5i5u9L+Sl5YIpK/JF3oj2rDQAgMBlV1hn3f0f +8W+RQT+KVA028pGa9RUgVXkCSRWCckgNh0cneHNqKZkUbnnPQmwwVkzXLOeWTV1+ +4RIP8IiTLulQtwSQpJzv9AVO0xbjYVga8Vifq6C+cdOysB6PqOn4eLwW6LVvsQcK +6pQhsyC90/653aNNArEDKBRAru2+P6BLo6KgMzZ5KrjAb3NHjreSqAex/0OxnmoW +V+7hRiopF0PICcOS9F8yq5vW6MzizAJ+hPyIiQIcBBABAgAGBQJMZtbNAAoJEBwB +9EPJyTxa0/0P/iG3tW+ODo4/1ESr5hmwx3teyV1RWSrt/Zz7HeqgelFgJaXxAEMq +C3/BAXVZBmSKXM9z71l08TWEq1Sj8vYB0lNN71K1mhS4PebudWzd6tqHTShDDcJR +VI3be/FjKbQEYEztDedCGH3kJEZc0MFBkMt5FNWCEjIBUjEUUVNkHSt8wOKHVI7T +gz0NDyMMzS3KSiR8xEQIt+sBBF96ZzEnII9t/sYpnIrCDnh6pZjw0OayWFW8ZGzP +EX6CiTYz1SiYkskHjufznyL+ftQCrIK3clc9VjGy8tVEH6tqeJZn4dW9TGrW5qoN +1nU7nOoRu3EXfyWzL+cZRQ32mHSgOZKWXQv0Ms71ibmhPTdd6h/c4uX6Q8WitYZ6 +7/ThGXeWBGI4HWtD0b5jrKRUEFoEfBOvtAnhMR1qsCaeG66rj1CrXnGLdDxu+ftF +YsPLboGBt08fhAxyhJuQ8cEdHXx5U++4dlJF8OnmpY0S9cDHUn9VYhpXMeqoNMfk +aIrRCxZHpqm4G5LnQJXDdhB2vecSlW21AzJZEmO6atq1BIcZrI4dPWY+h9fZPsAO +RgYCexSc6D9APaOvh7kYTA//7GlkgoQepdiIAzne5gTWGRVKozouLrCQ4e24dj42 +N0XAoS4eQ2oVM0FWpSnvYTEHspfe4qZzLzG5kAQSXI/99tEd9OtEkWpKiQIcBBAB +CAAGBQJKcZUKAAoJEPGmm+QpwP/uFu8P/RsLmBbBq4ODq/5hN8Xl/QNHKK83dzw7 +YY8gdMjy+TNzIYzn50ZxWUzmFKYpQhnGAB4oLEt8FmSS6j7r6i1k+nsSxj6TtA/Y +zRK/Dyn1XWCwd9GEIEb5QsOWqdCMVG8FwXJsRzmSDtv5rNroY4p1VGTihMpBMaBN +sOucTPoRt5M8VEISMLSlCu97FPkmY+SVEomQotsWZd06LP/CaW3IpjjXKTD+i1Xk +bDZVdzkhjY2k9qQtZH7SZnTUbQ5SPpGd3HSsdGonQxJj5W6lWyBnUWx51m7ZpjJx +iUNDmF5+w/aOfgAKZpCDQS7wIj8pT+d1YRYfav0a6E3eCHNto65HPisfbVgcV9mv +SICau0N0u3lAUdLR7hJBpUABXP7vLGFR/Csg21SxW0w+oZqDExFvFCbRuWkKi4jn +DF5OFRA490oHcDnf+Db+bhZHY4JLvTBYQsx4OSJQGrnSXC9u67x2F0UY6wtfE+A0 +m25aRFpAecIB1fPx+4SgQJObotUgyhe+bpOY2DWLktaosuLtJGO3Op6W5kl08dKa +V6DbIh+fvo6WbqzdDfKPUMFugwldIiBLpP2eMqzFaqngTK42wmy1inn0yJWC9oXT +lqS8GrOJx+UVLZ3WC1/5OvZ9EA7DJO3YpSTW5lwVC0lvFl+ymF1/Z8aPeVJ7VB5Z +KEqgf2cQT2dXiQIcBBABCAAGBQJKcwoEAAoJED2QirPw+/Ufuj0P/3u5bdz/qVM/ +NS+TqJIuECw4NvztvndPEb+V4w5RzrYQS0McU5rJRHgqxwYJ5DN6ex+qfCt6MArK +LlQOeKqaDgNGNKKRN5Js49zLPU1aTWaYBQbi8dnTa2LpLFBkPcuH5BGNlgtAIXa/ +O75yBM80s1stiUawCZ3yHVLtiRjzGMqjCJXrlIHyV6He2pomL1qaAmJ53OoJ5Van +vgXi3gTN+Mp70EbfeT9BWnwVoQcs9Elj4+RrQ1i+qjAfqVDg3yTRcI4Rchl40Hb2 +P49C2k63ab7irGsI9hXjj+rEjUdXgWWRn64b4J1yOeWWttceFrcp+SsdGqyomST+ +hX1ZSVL2EldoVfm3Y6uTqMQhMHyUmEy8xGM9jmbIsa9hTf6HYz9tufbDMUnF1PVY +UeYl5Jjsx5Irr5SFAIZK+P301wJKWvO/vddNeqX+ux3L7bJX5cRlywQqUkSBnRry ++lLkNDPrnQT/tATP7fL6x79gnkqFRymMEPO8nhujiUSsi5nk3AtGmkuqbLiT05C6 +5ReaWRkYyJotjP+/WiSKc2ef8bqhlK7lM05ym8bgWfQaoFivXziaFTTBWcHD5FmD +ofQ1ySYIPF2y+8jDTTd9KkAQUtEX1ji7RK2dGxq9oDIzjxwzb6Cz2FztfcXV3Zvf +Y028NscvMZDNpEosY6fsJNIcijael3gziQIcBBABCAAGBQJKdYqTAAoJEOpsprlR +uFE5EwoP/16n+EMGUScNenqsIZMxLTE7QVECN+UFhw6YGpwLw/LWDT0Ne/mvCDsp +FfYmbKbTB8kkiF1vpQzINZFJ+hHh9GCw0jWzwRd1u2zIDTDsR4PbYiULrURKOghf +50F6HiDA1Wori9SQI4Ixf2V86OCakemnVXRrUx26un8p6mm/HsfLzv7AEUjSkGrn +JYftMK7Uu+0oG2H2Iyo3Iaz36D4RHqxPQ6wediHY01ysqSkTewYWPtN59Jv2+zfQ +XSMdWx9oDPKix9eTT4wrB1dLcZ5YyO2mJavfgppQSeFWDYvsJh0zS7dZEq9JbruJ +gFjzUSChzOGpqYkipaB44hBG1yL4p1I9sZ0P6ZavvtPSxtN/sClbofLGfuOPSslL +HHC9TX4jaLUMYtOrtI1ByKj935HxbjuS24/5WTQRENv4TRed9O826YRca5G8+5hP +i1aR4Gaqh1/PyGVdmrIHtJVqGdvDY7g2fyItn0hHI7pX0R2VuCSZej9CZvOk7Ibu +8kfn3tnm8aSyhTWG2w6eVPDvqdy8dy9WMlgQBZpCUvudSwo8aE1W52laU7+KuYRL +/atGy73FGiimDJOdgtOgtCUPQn7Wasdq0W4AvM9PzZFyCcdnSmX0JFpJ4+P2cXRN +CNUHerdHsxepHGvghTxe5D4XLYo9aQdVutighVTkeB3840g8vySDiQIcBBABCAAG +BQJKdaTyAAoJELNGT4lqoVlI+uEP/1cWolXMcoyyqO/ESbAs6FQZ4DozIGmXsQlA +NOiH7M32NAjk60GUwogO/UOHHlaVCj9yh5y+U9Hu8QGx1kb2nSXwA3H/LQ4ZRuEz +6OH4dkHdkFFCF5VCkCfAA/cSf/XcZ4sMATlwoAuLTE+lMwDdj12/g5mNcfOFmO96 +Ije069MEwWcQkCgfWfi1UdETzc/A+RDsOtLC7pO/JXCucVDBPSDpDDxYbU8YaXvP +rsQD+C/zIRAF17orM9kwZfue1mA2I3kR83bPQ0kQuIRryGMijWrJefwQEEU1X84W +mTz5MwSCcZOc7KK8NeD8uhgukA31HRbtkKtZexf94kuRMhHhXYXowDXjC4wRUgUb +keuFbswvSVGCrC3ra6GUKF+mlc4HG5PvJVTaI9S8EfeV2clEco98ejXYrnhJ7JfJ +8wFHmhYzLhTvHZeDVeG0x4qyUQgJ7fAfWeE2+61B31/oFpvlrIwRtAvU3iBqF/sK +3EBRYklHmA/QaPZZuHU+iH2ctRkxrOl+WJyP3j8u+bkiiGh/KIL8SGubZiiYIv6W +Jk5Gfkv6gZ7++oEpDtROpXrzRZCHggapnlzuP+1N26pRq2mt6x+15Q2ZAnVs8a65 ++dc8x3EVOMxw3sMat/ivLeDqWsyuauMVAE6FxIuE4utZbU2Nh8BkrxXVgTzzVluN +AINCvAiKiQIcBBABCAAGBQJKd2f6AAoJEAxwVXtaBlE+NtYP/3cs/duaZDtkqtfg +KlvgSfXso0BX6VFQXsRId0IeGvBPuKd5fodxPaohobxirgT8wQtvhmcUUQO7Q+8d +iJzVwlFHkYm6xX4zetQc/ImQCXfFR7bD5irJE5lsRSTdumnGAdMXE3+QBLfsDl72 +cwVDzlpQEujGJRdQTsy0CBjvoXJ9PCa8IXHNIhtwWPBC5ORa+ZlL9psL+EtUUUSy +mSendmmtvMvzXpYjuUw1ShuIrOZCGdr/oqQxGT+kfvf4Auyx6JSQhw94BwG8NBct +cCQVwTW//VXGEe4wbHGXfhCnZS/63oNudCOMeG4F381JZmxFbyMzkGaTC5ToVkGH ++kxDFRD/NwOpv6jP8khaS8Nm9AMZXlhY+em0OkpXOl2QhwCbQFMntcQiodcg91NR +Eco2Qn7HdxnQoShb3ZJwQOILD8lk7KQFwmuE0VQTEjH05BNsnQ7mvqb3likPREVP +jA9PZvW74MR5Ivx4A0NygDDFuFKQ4wDloufddW5BHzvX8bnIlvDaNlSGuHarpZFD +zF3HGf/BHmwF5PMVWxGGMtL3OTcSUU4dwDl++eFoxO704L/ZQsKnCdoVxedRN08v +9dcfwcAasw95ZYr4hMdwckaG1kXMj7rXObGL95nJ9xFLTE/x/Dtge/R3IO2cFt9c +UkkU4FMqgU0WxNMYqwroGaGzgGlmiQIcBBABCAAGBQJKebasAAoJEIcvcCxNbiWo +5egP/2un3mBKHcbtXUlw583GKNa/wFG0ZkIYgep+L0tJ2d4qD8HH6sKJkF3DIn7q +lX2V5+KDFNTJm7J23dEhL9URo9/+1NgYCKtVt2WQMjLV+B1hkHLhkntzaer6Svg0 +N9EHWbfoJEVykYeugHZep4+GxWgJ4EOuzLIB7ignroT1krycl2Lxms9KUux/I68z +ArijGJOrwERLhCiEtoXVxJbBi1UIEAPKNwhjIIfnwz8huWbaTrrMTgy/X+tRNeMg +WB2A4mU/TNd4viDJJvYxyEOWq3CE8JqaertmIRcv9fN+5/llC5DbX297i2d9YGq+ +CfeA8Rwfw6tBYTuCpr72mTNAqBkrbtIdbGt8wTrvtpiGTXJd4Kkmmw8AESLgF6Dt +FQSLubh+TwBMohVl3dRdaWeVcThWqkGGyHyYs7ISTBCh+w+g2BEhiFolo0QYoyd3 +8fg9tbXijhWccWHxYz5nQGnGq7cdHhGfy3m5qEvRzG4+4eHtsLaM13j54Xs1ax2l +wrghRpKxO9/M+Aovta3BSz+REyUhXUnNcLWRzbzv5/ULRhmkR5SeXXhlyAP/G0lg +krd7Hizflv2xTBWKbCI+cxhK6T7KjVfHcWL6c86p89nmU+tTDFT86N82LQx0NlRm +HmLfTbn/gnpMaHinyQ1B5pPtgeNWtxVjApdtzD/u27YtxKI+iQIcBBABCAAGBQJK +kgBKAAoJEOe/yOyVhhEJ6qYQAIyNu8ZwqSX7zh/gzY7E/+C919Klt+5+b1unKlXf +yt4PP3hVSi6HdXsPdB2Y+M18LpSkh1F+BiOBgnKdoIisj97pZVYaJrc57e986/IA +M4ElHcK1TQfUqr9ub804dj6XKiKfIviMN/CTp0mVviHfhd05uYpu/1Sot1Q+WHHS +UM8sXDtzcXvWfZYfDRZicVULnkDcIR6kvXRm3+iJHINmoF+tgOA8vcEukHCaz9FY +oeHw3G16xsbHSBELtGDEllP2xRdoewljptfgJeMMzJG1jqSKEdi7eLn3H0lQ05+D +zLkPy0YP5GiP9dfiIgwMkKjkT3LmmuQIP8zN7oa47lSZjDchVNFKRtrQt9lsVEhD +HBB6BIXcnkTll5ETaLnJ3/Gyvm6NWeZhycrXnBWSGG41ozD3RE4dnA+ILVTwmgfv +1iPF4i3dF0GDxEo7x/zlT9H7iVY2Cr4qgRn5camGLW1YcNTdAHZ6iv+X+zYwDTGS +7qkn96sNSyIlsfUW4NE4meXqKjCNMCb0syyp4Xb1LIk7co4qEFF98pSLM1eLn8Qb +cFUqnDT0dOrKR7jB7dygeGqwxu8wrqDTsVevfbuJn67lw/8vC5Hx95mqgievx+tM +0S+X3ee1uvnePk6fX5H3nt/ziv0PqL+phRSe+ty+aPfIbFit5ZzQY7vmeaN5IqnC +k2gCiQIcBBABCAAGBQJLG5ERAAoJEHxWrP6UeJfYCUIP/jQiN0rDyHIxfyfQB9Ht +oNMlXrarONDowEGOnUXIK18wVgSPSBqQCVWmsa2MunbvYQbafO7/QMOwhxU7iBxF +vD+VsZOxYN6YXvuZ50PNoBK+enP4iG7NHWY4bwknDIGhTgtT3ndi9moCBJ5+9AmS +jDCsWsp8SB76IepD2EhZhOD1B7QprxBhDeDLHMs20lqbCQEizDm7jRwvqDkB5az+ +uAUEuuEkdiliZGJgn2T+a3phLmlq9oMvVg49cGVfBo+niQbEvvKipJJQd0NjXIOz +CGhL+kE3f/ot2yPTwn6dceiuWdeUN3e1YGgIJgc01uAgobuFNMlZkjsi9297DuXj +bJtSZtry6mvaCBrzFi1zSIwBsfnIj19PKPgZywzPN8r9I6VsD1wXZGOs5eKjSji/ +aTOS2vOublOZ5AGRfb3uGAd0RBSaRmAscuNj0NwDGpq5K3hLjPeZXzkHb9QHnCxO +1hrmWa1hrprfbT9CMISaEZ2gfjGrImpPyVJjZh9YOfHYH35Cnkip3R24z41aOHzP +r9gdmnll/g8tqSZcn0qcnGF3aZaHIzk/n5JYa6fOMBNapH7Ps/zF2K7wb5qO86Z5 +dhBCGkdmz//H7mS42T+KTbUAS67sUSV7TovM7GIwcaCGrEpesUknmOgd9KoV91l6 +6lm4qfl4Wf/7Q5KAsWd7hXdziQIcBBABCAAGBQJLZE3zAAoJENkp8pkr7wozXyMQ +ALi1yG4kpnzSIm8de1fIDoZQ3HLvShstN2EXprVc1aw3UrlyAKad8uQseoOEcM3p +B3DJ756tuZFqoGH4obYIxciGwHNbFCplh/ocm7+qyCL9RMB+xiTVruLZiD5fxW4c +/NUagYaITOPQzVDXRHX+iFhrt4z6Z7Vdo577K068Iryf7yb1KvM+Lkwwain5B8+f +hzYKmOwkvX3zFV2qwm4iisGD5y7rr9/C1ZeQ/LdzhgIC0OiKHawMY9nAgjPOjoYH +9TMzVVPntQamq2uroR+xra6YWsBAbX+lphTi/XNKM5dmjF6dLbVxNSnpoVtNDe8I +zN70sq8ACv08IQatlu2SmWPU9ZrK8u/U2A7MFV7mvBQVIG7nISao9AkTHzlrY9Tn +DUHfKl0LCY2jnBFZyLdGFOjSeUapTiZ/JgX+3keIuI5b7HtWHwVdhqhoqXpMKDpz +i1MBxDFx+XQpgoDAXGucl6fiq6ucPkRvF5Fa0fHM4OKMQtZYfzQtGKZmpTYxOfPY +HfV6sHkE0Rowgj2TsrFEv5dabHzNlhWGPvopbwXSDj552V3GUT4lsUdYiAQbqEqG +sJ2wuSPJ3F8b7fT/p1GhprPOykT4dr/v2UZ4z5yC+E+zr6pD0KwyNmaDopgB3qda +VLa5DQOwHEqvpv2MLDBByP4KQZpzTvrSpskW8P3rfZrgiQIcBBABCAAGBQJMWL9p +AAoJEPEUCEwIYRERM5AQALxD0cGCvnPr3ft85zjA2U4dVLIzs73YmJCR/oDZX6w6 +xyZHgIA1Z5UMAKRQXRMAIXxwKi/KKzan0OEoaQS9vf6IgWJaVNoHd8GCnSvj09CX +UzsjFkJPipfD/36quNjVkAKbiJJyn5eFkneIp9E0e1w312Ti9nCCw/+/RBpDzTpk +FZCf7W3nNV0BbFFl5ZySpSWiBxjeVWnoD9RoNk3OUaD8JZV1H4g5XlL7erfr73ZB +hgui7a+sVsAYeyrBZ4OAEgFp+JEqtqx5O3MSsxte5VCjP0sBJka7a+OWOIs/Wmao +lAf83eAOE+Li7YQNzUpt5Av4Zil4J2oPImriV8kLeWFb+/N1p9oqNka4BRR31rCb +YcaJU8htkE8vBcNVAwdnGJjPgDjfZkyAqqhT7YarS5PiW+1KE9aTBrYesbOn1hHd +0QZpXsegNRsPI8k4O1Hwh4mW6BJVCK4raEEDpi8JxvnJF/YApN6FNQSPon5+4Skb +rveZLPeCGZF9OYsNQrRtkdjTzai4v0usI7k8Is5j1KueWSRryD8/BoidXrPmIYFB +Z5TCWwQWVC1SkJKF7cBNawJ6LQStzeIdyIEao3wyj7Vuuu/En3tiMzY3MZafq3yw +o86LRiNq+LK74qAUMqevHKLmHWXASBAtDWk89AbSCgCu0Au8+5V6Vm/j6eAlCt1n +iQIcBBABCAAGBQJMWMEAAAoJEDk1h9l9hlALG8EP/jshJOBzKY6ZBOhwr6ekoVoh +bqK5VgXvifQ3NDbcUc1fxDsmScrvbQYqKGEWlMFC/PE2t1VDKa7UVwJT+BEn6ln/ +YEdww2y5eHudIn2V26GK1eppweLUI4alci0qiZTtkGekO678Drumzt0eknx7qKpz +Z/H0bXLvPazgnGNXR6fZoLbC3IC0hxUp+fLAPNoNg6tf6IJINPjas5mP0binmy/V +hrBaSbGWZJMB68ZYjmCq8BXJ7cK0FzjNxnvU6D+ZqrKc6F8QhiULfm+igcZyV0S4 +17erT/7S1fSNuu9ZgbDXh6QA4xnXithoj6HsZ96lQJ7HRyc0Mg75w7rsMyFm04aq +D2yWg9YSgu26gv692Ohc7HIt3RyUgT5ZXbA19ejVQhKYzsVqMmDssWX+OpNGGgz6 ++Dir+x+jAKragzknXGyVlWoteDfgtCEDZ3cNVJTj1pd+AxqAg+rTPs9lxZiWoqSA +qFkwo16QdYTr0D3ckGPMY6rgGPanuQ60Z0pKgJz3wrUfUJpWF1jXFGzSjkai0ZpH +yjzrYxe/kM/8hnDjn1yQHlit4Xic4dowjKU5i4XqrL8UrdRIW8qi/4Pi6TAnqNeo +7ZdY+Pk5/F1IYFuAPpRTF2Sjry8Qzq2CXSeaLwm1L24qQZaW2vgJ1WePvmMPY2bd +00r4pihqpv7k0sipsxh7iQIcBBABCAAGBQJMWMLhAAoJELqceAYd3YybBrMP/R9A +QI1Dl5R5doTE9g/o3OzowQ47SljkRcztSo6h9ZVX/eRjCnA5u3/SXqhN2xsXtdHp +TrasuVyV7vGUM5D+ce/oR7R/iXmlnPoQezAp7CyzCy0q4c64s7sEwIYuGwek39fK +NLj8K1nSdGZqlm+yP4O6S75kRAdUZy9Os2mgn9OEgNd0kwHlyNtyrNoi+jLFsTgs +t07vRwY27olAzBJvuVBiATiVhQ43I6fHd5dRM22fw2LJGQGgS9T2U3SSnE1jROj5 +hH//wlnFOCIZBH7xZZgMQP+jdXoRssO0BLTOeY7VA83LqyaHeGpA8sQV840Nv0i2 +QhcBiKz3ppiK9OilO/mrHm7kR5++Vh5ES5EIJpRoNzMaeH5cGhOe2LTYjm/lV+kV +JgARfm6JmvWslelG1dF2h/njhZiM3J1NA6tozVtoQb9rgKDQw/ZPRC7it7xmQ6Lj +MB23Kr1TVDsPb7xAaZNwfHI2Bt0OxVdDN0McGMTiYwx5QYlBxdpowMo2hUv+iotr +KP3u63K3Bagl5Fw0pSb/S/00KoFqNVyXfnG2VdyBRZCwViD/yn7KwJmh/vA3WqZ5 +WDY2Wlxgg29U/sQCU4p+pmjSGoiLlUoNCYRzZqhHlFJuUQCV7un3kO+6xbtwtBr2 +RLSdlkoNFg5KI4nc5PjUwP4YWpIypvS9GOTj6EK6iQIcBBABCAAGBQJMXUaIAAoJ +EFOUR53TUkxRFFkP/iCv4xQJ38HziaT6iUKWFb3qLy5yPNwbgM/hleWlK6OT0rEy +TVjPO8gMs9ce89NFPexOzUWZCra/sxm3L+mbUMvANDwjxr+a3+svXqzewWh/WARS +vEyV1Xy7rXusD00je+DcZFip/nDQ0iQNhOvjUNzDsCsA9zbXTJUT6qaxIghkGWJY +XYteBeRlxOTTsXe8m2AmTb9QBCdV21GjajSz8HdZPt1SCjVdrltuyM3+YnQpW3TY +jmYhZuko2aBgh65z9AJd82rLQe85urTZ8Y4CDRFK/MMWvLHqF2Pl+VMavEeTjDS4 +882OLanG7DoyYsCYnTTOjqXn+E6gQ6E8t1Fy5Qhsr+ZaDd9IBP01djn5aIDKAjQf +bDJX+l3irLcY52jnp4TAXAGYENqvMHcQCNMaWs66nNvdc4bIpgA4FrlmOwe821bj +obZK749JVUzAB19F8BGbhn2+1lJwulguBVn3lC16cl/xCyzKcO+7AB0b4wNCSepZ +HhgSDhPJOcy1zNzQ9vN9/5TZvpszXnC1ry5/gbj72JnS09NK4JnIf6ovplvYrzX1 +RIMN5HdPv076R/x2IKmKNTbdO6VA+hss1XnXr/0g7TjbOdlMCIGntSM84h5518ri +vNopVYlFrckm4mSQBWzvH20vWxufitRomcoQHrTohNY9jcI3LmJQOLM8gVBsiQIc +BBABCAAGBQJMXYmdAAoJEHkhUlJ7dZIedOMP/ij/fhpztq+UCo7iPf9E8gTqJIIz +fvjaUURr727qYgySLFjiNZFrqVsU7zT4OtQfNd8qJD3Arc2et9UsgDnP9iyGQ6/f +kA42Ek+o4ZwLwz5Ok2nKzGAtgy18Fk0ZnRFn+cxGeW/XZFAEaExSzJR0tdnwlG13 +RG2VvCKnitzDlvYVwZHvDJ8NGUizTDlfWoaMDy0KiX9Jpi4nqwdYEkl0M5LINQSf +g85MeEjsFrHaXq7knY+pwgUEGc7QdG6mTRNQyPO35hEXrTO5a9dtSS/KOjGK8zXd ++iBqe7nk0DoMQ66nY7AlM84Q7eG89R1JyfV9q9vK9j9gNCQ+EJYb9mgyxl6TH9H1 +zus6UOfqiVQAl7tw/JCjUF6nzv6ulaWDU0TlPmYus46ThFdfYgrOgbUIM/Vm9k6C +ekxDswugFs7We0mhLvhwvWJn0ZMmgu3/DGbIEKpZ7t+UpzBUGerzVIhVIGVwjA8p +BW8CaV8P+jNObaaRYDYpqd9jP7sXIaRyhaplpci9KZ+A3XWnGlpqSwUB03ruUbxC +SZAvo/SouC2HlA6r/MZFiqcvt8YctN60fobvyoIwfojontnuVPAO2anAwYhjk6mO +94zC+A9uPYzVPltcl/2eGAne+H0H8nTOhRZxyffwkWPELp0Vxi9KAxb6IHZdKyjG +Hb+1JRcwuZWmJuXViQIcBBABCAAGBQJMXyevAAoJEHqPSei2NIC+LmUQAIF7Sobs +LHFPu9eC0TovRO9AlqvScDNDPOQPRy8Wj0Ss0Dn0eAN4UrkGOpWcDs58URGFwmUR +vvKbj45NGT+qd+BSXBbM5ep4WMMcxZpXqh9rVgkWLtSVaLNJnOnkkALBR7lW7hm8 +72ZIwMI4CLfBxSZopL4rQuTZXt6i4m+S15Yj5GOhoCzxGu7zL3+Qy34W796vLpSS +dKVozgFDk2NIidKv7wdi/nEV0CNxCG76FCAstJ1LJZ+2Ryhvhv/TUSC+6DvtXVN0 +VXFCdQ7JankK3S8QNUnJrtPsSU70B5lRiqdNmrmjew57doxjVE9iPA5LpPbT8+Tr +poe8+h7HiZwrT8xjoxANgotAwB/SLxOeWtDvag7Bn3lQq9F4Pj2P1GLTPQyEBza9 +SWEF0PLSuQTCF6BZt15q6CdTYqS5f8aqkZtXtDNyhAj/sYWvBRD8ow4ItsJaWXQS +NFk2Zmg0SyWFJi2SvCX4gYcSD022Mcm3IrcLEG2u+4qxvDJKgI/kljYUvxuGz9jm +LVXED/bTf8GwTHelYXNGSsXWHxztkpELCVi33Q5n5OAD7PV2X8yEsNoVEI9So/cz +MjNrbBwmAAxGBsvoexkq/90tw7FSQG79Vwc4kY6db37A6nYaLnPSiHFGzJ01xC+l +gFSJlpIJk18NHiTkHzbbeZAHlZGGqAz9RhAIiQIcBBABCAAGBQJMXzQsAAoJENFd +MTiCAEFzQ+IP/RP+7LY64C3/jHkMVLt9HKiOUrWzfEteOFHs1NnVs40sEUu74vrw +uvEVypy1OV2MCi3eivA+fSR+F1zapkQqocHbQIA8Od3mVnOce152ztKU5ZjhT3Ed +eZhTWNlN10XVy/dLuD/NKdxv1yQQpwAtSwApBzl7WDNxzZvi1kJ+sMsy65A4MZjE +SaRpD7GtG3KhR8nUQnlsmg6z4tnbSlPQeLPVV2rZi9OW361gZgGvyzTaZBTx/hOl +GKXtfEgRRDnYTFvK7MwDEKDgQqfsvSVe0e6WPiKLj0T/wQNUFduii92WjnEH7b6D +GExZg4+N8H6tT8gWYoS4xwqHKP4moKjGjOf8l90YozKPKzJio1Ip6OhOAT/7wXrU +wZzaALnNcqEacVzaOa6qePjhMEk/zAtQ9z9HJ5+42Ubmg/hZx8VlQsKSIigkY44w +7C46nJEuxrHTSyyBhOsN8KGolfBVINARreAWjckTqO6baC4HLN7PuO8KvyU3Xd0Q +yha9wL9UjwFntiXVY7tWT80y3dZzkU4CZJWow6MA5AJxHYAIhInCLq6y8smGvHKY +apmMbmnY0DyeO2zJsZpWw0zb4yl4KQCwE91z/SThkxkAuBINXe3+UKYBsA2muwFz +WcQrMycfGo2oeKTFOLA5kGmRDLvMFV1Fq2GznzYcodTn6KhZh1ucK2lriQIcBBAB +CAAGBQJMYhx3AAoJEGc6A+TB25IfI+QP/iPr/EmDEps7H0BXVfq/eIXvlRNgPx9R +oL4VqTS0T3IOCHlKoOJtThj64t+u27HjSnnKQeedsZn4vEbhc0BGNwKldqHU46Bo +7k6C1r41Zp16F6stJoQF6HiWmKIfTrA0NhfHKHOqrn1A/zYgg5Gw3IxPgFsyAvEN +dC45bj9YJGzryjGRi1+gsnln0Wyjiv5mE26qBLuO3AsfdTWvP3NsBrG7260wIQo9 +U2kOIYMgolprYcN/vUSf7jVFoCSbv5mzMU3tKjGd/KZj5/gcecOmjquO7d7ZMJFs +5jI+AJgFh1Lh7Fva5o+abaRM69vaTPKqxlZOg2073N2qROD4aBS8ST5CCItDn6dD +dSZG/VN5UPq/OyG9VLEW+Hi5vmIJFvLPTHfbH8ePStaE6OUU4TqIhnlPkTRupEMz +X1ZoL8SIF5+w3YxBA8DYN8gj5GqI1sDCLc9RJOHx8Bkli9qxlAF9R1THJ/97bJtf +fMLWzTRsn54UT33uKLptvHt1vVkgLWNx1ot7T3yBlmLlIOdHSeN3zvokL6gTn4fr ++/0AzjvQckG0VdvPZx6EMbPedqO/n2iGH7O5x7cgpgR87m4KuwWIzSjQ0kX47K3V +WpreAvuhFjYwIlBCFx0zus48oyvtZ/3gP/ezFppE5tWbErkFs1h/j9HmdW4PynZ9 +VRcbTipzWhFxiQIcBBABCAAGBQJMauu5AAoJEAqgRXHQPj5wzYYQAL0urN7k9cgn +e1ZD0BuFPL0ZmSAVI4VO01Z6Z1BEgq84NFxeMsmwtJd2M50UDpqD3lSe0+jhelBJ +hlGY06AOVWk/biEjPt2gFTzfcE3CiR5ZMiEYsQgUS1QOYubLzeUyIVXuyG9UrCJA +HObw9qqmL7dJcCdhNR5/LL5zXQzn8lR7LgUiCVYsjsvNinjcLI85wqOQYC6sqYHW +vuob1PgX0uiwL3EYIt107Rfn8DLNowSTq4KBrCSV61qcoHrfL+KGJuajhjMiYn2J +zkSN8j/y383gMGdSyHgq+2s8JQnQXeM85WrAvSrfi4ysXqYmTSB2tyqDfdHkzWRr +V18bpJCBmTCQpn1mU9sQGvvfCaI22zO9q03GVmMa0ehiAW8iLyeykuUJe0QJFFkf +0JB6nr7WDSdl7Qt6PVjE6wIDxhXktz7KWCGqCrAj7viU04PpQBcy1UJGiZ93mr92 +WBOkBk6F/wEbsor5AN8MgkUbRVY5T6KOVNBB4PKAPOjM6Svbocn69lJ36OdBv993 +CUl9cJ6Uy/0lIo+SOQp5ae0O8KsISTeLMjoTiVJFM1rF8syG9VArP9f8Prdp0rnl +z19dr7gkJ9gHzLBFJp58A5To47Mq80UTTNVHxVXO/MUE3P0vKP/FxS2xTWuXYOw2 +W7MgJ9tBrVmYrgrajCGlg6YYC+wppzkOiQIcBBABCAAGBQJMbMCFAAoJEORPgBbT +Yw+JS1wP/232/NSxOL2SBNaYV1dPAwZKirIdpEs/IK6jYymPw4dwBbASsmjoSZJE +/nrdRVxSiE3NG2ua1nYlqkzyGedBm5rXarJPyFq93ttpKN6MYLL2y7r7KivM3rf/ +ZUAkSOoqBlx1zU7god39Q7CGiNUdDwDEU5odNvspI885O1kikQHkVqWoFvwMNTWf +zNLUQ3Lg+oMHhtL/0NE+CVetTA7U4EYOZfQ5OxDUbjMXr46dQyKHJw7O3IsrjyoT +SdGiNEyhdzFzd51lRgVwGSEDNkoJ2gfC5xQK0OPZy5DyFPiMa4YgQCUgwzuD5cEY +rYW9gihCx9/pbuv/RH0Bonz5Dq9ye57XPBI8ftZ+gYOHs0Du9ZlX96WH3BbZ3OnP +MVFG6yY8C7Bn2Hk6WrQFFIorTv0Dx5BD+6NhtaaeAInYEZHlKrbYm9U6XApY9Bv2 +GASngm8WAHVH0c4yuag1L7w38VvR2TQhIgfMiYBGKaaMLN9ZLTXFhhCeX7/UHOUD +EhVsWmVLcFMMSJ7tkjhfabyL3c57GjdRu0ag4vid8TvKBYbRoce35nX23FYUmt0M +Z9yrf3euIxzfBy49aOGQENiSfiObDU3kNJd29rNmVtyGIOMrjwicZeNdEP/XTZ+X +UdtyXrFWZa+aDofcMXLWptbr1TGhkBG4hDz8wjz3yZnd6hvJ1xAriQIcBBABCAAG +BQJMbruAAAoJEESXUni4YStd1i8QALKlJ1BY/2070FtkVuqguQsf1FadznfJLOCe +oNCgP9BEO0Cosy+i/lV2SHqP14JjL0QnIltdNUx9FoY3w1SlaDyv5MMlHV/6lclw +IK90YZg+yXfhIQW2S9C/zbQKkl84fp8ueuXHyswUwVOIiiptAhIUynQCFqiBpdtR +lbsYP68qp/nUfHaPY0ashprgeahPhfhc80tdQHYSsXJAw3e3cLDBcMSx+aWARr3j +/aP3Sq/Ia+/GG/i0GxQXhk3x1pUGFyJzpoVXkcelNzMo6o+gfoyyStoQ8a8mW034 +vterGOjvhTubrGHxroCIUqfHGitjqgPbKe0sW2R/dToaCfSCPC8mmju0ejJ05pv0 +IShgjIJWf/7vr2B12eWnr0aV+CwXGuNK2aAvSWk+2M90gVLSsyXffuAArjMYVyKw +CHk7E16pjHjcsmqKBOMFvZLDsjbtzE1whqzg/F7YtXVbB00dZ8/JnQypiOzmf9Tv +s3y9qZRUxscmTkGqHwYzMsxtUpAOGIF0jEsMI9YC5fGYw3wXOmEUKughMw+FIbcj +4Uf9Qztx1HW45hy1eQFaXIOXoFe1uo/iNcJn0b4NGmy7/PFznROEVu6uSgoExvkq +TgZpp6EJ1aeLwxNX01z6kR/7J6ycd8FJzT/JQUddOycBn9ATWbl3I5oLViyVms9z +Se9aTurhiQIcBBABCgAGBQJKdK/oAAoJEJZVIrnUmucxiZ4QAIpYJNOOZpdMrbZd +pMXh6jH/5WVy/47fx9I4Zz9ASY187IOgLRAVTB9avfR8i6sCy4+b2LgkLVUgaOsc ++pjzLuN9Ytt+FaFmy9lmYHMfcp5jDINwe/DG7OE6xbnnAvKRhJxaRgXh/2/05A3+ +xdyXQ6WTTnLZy9rlOOnEm+CP/aUk17HrdVIQk+J18uA31lCXz8JQUhBP3IuCDmEz +1J7OK0/gbvF4poKNuBAp4mH9R2Ur2Wd1A4Z4qNrdTFUBAI1sn76qXpRL5vnU5K9r +bGb3CPe9+Y0fAxHzOCI+eHNrnCucqraPLsf+aWqxthzY1J8HCgl62EEeBvioToG3 +baFiQHlp1NPPawRPau0bN40iUziuEwkUgAuETRnEwgR9glm35p0bRzuho2Cvm1km +Pu0Zw5AYoxaqfxmaLDid3vq9As9NHgXqelxZy4moWGijNQ4BiE5jhTwHFCTrzkaC +eMfJfiw1QVmy4seE7hFSnOtToFhYwXMKhQURsoSLFUd+eoZLgbgKaQ4KiUWwcSak +PGfxwkpwkaqT/FmQaQVbND9uYjr/ZFEIaMX8Sjl5T4X37EX6IcFd5rMJmEDLWKV8 +4Vcpk6XuctNv2N2gUAiUzKXMpa8PNDile2OrNjfXR1j34CHRuS0znjbnmYxA1myc +bcuLDHuGpK2Wd63uQi8ZPGtnKUZliQIcBBABCgAGBQJKdeuaAAoJEIy/mjIoYaeQ +FxwP+wVPFGH312cBbkZzONQwo0/mW7ZNekOUsGsjUxAfFeLp20pMfEOI79Sgr1bp +Dks1iA+2ZFX3JYhMs3amXlOJSuGyFUfPuEKMGhHX19KsRguhy8RdjPmhFYbughdy +dhK207hmYtuy8jcdQ3s5lLB2bw4thimnwaG0AmHklaiiP/H74X7pnYNuiImCTWin +OUn3imc99xxjGfx0DhtnbnnH3ktFUDpFFd6dtLGphhjV069M8DIIhl9REZFDNE1a +HdBqJgF6f1QagUi40apXuYFOlbVDwrtzKR5OvLTndk386TvvvaRoYaMG2lmt/Pdw +YplKZ7OqoYCT5wNVISvwIQqWe6tVsZd5IDd9iz94EWTPz2Q0b6BAlycu/9k+dcAv +EXCHNMm0dDxTCIsf3yoLm94/7hgSHBihpE91v0LcPvrV8XYr8IFOwyTOKVGyCM9+ +yxhBR6wLeFhlDSUkOmAl7uC6LFXNCjhy4/UAUXSveCZblaNpS4gNI+CHVzu3aJq7 +FQbY6hHfyRQgWtmLXLPVoTEK5UwodTBoHYSgX4u/wTLIdewe8RYyu1hylLLV5oCj +0djjagDkhB02D9FCFcJKaUos+0hTTrxzihtW9r4ojFiUTq6hSs5sG6tSslzICc6w +FgjcEFTZQqP0Abd4E29rJBLosSIzL38bxcg4aZBA8Y7lUQ+qiQIcBBABCgAGBQJK +eiQ4AAoJEF+Oa+CSj/r6UCEP/iTJ3XkLh5JpDhEuDcPNbZyu7uhxI7Wzg6jowBj/ +oZi5SYZJ/d+33SCzghILr77CGihLpUmuKpMhb5s2qiwAacJu4Nhyp/Bi0VIdUY2r +/lRqW+wrz0B9qg6lQZO4KDTKjkVJOMpLH2cJbxm+6LONRz/Z3H5FkIkcNhImoxwn +qd5Qys7bmLmSmZYLsYdXZRbMhg/Iv6IPYVxJ3GyNMW6y8gQ8MYCvjQ/OVouvQr+9 +zppKCgsyHmgVyt6esjooqORhiw1meL2xuC8TMo2GbzgIU0Qms9Ss5Z6tbEH1k2BJ +270NHOTleVz6olXqMu3SBpzdhibHfzOnwNQKwJXy71xMUJJEGrYqqSMxCtpZN7xs +ANpTUN9QtM96WZIX4dGkTxY0qQUFyOXpeA0qXTlz8nO0uRZt+fTdBObCljUaTVJ3 +ByHmSCP+hHdMaDPIVt0jwtlRLuykOoPF1r86wcfArl3RlXi0KxV7oO+EDwjZMELw +7tZO5AQAMDFLbh//lOzfZekVL3JNeMGN/Ez333rl+90OVPmzX7VwNjdmfxElN8sj +ETmsyqr+XVBcAtv1NTXTBZ9p/EUp4iqM7RPkC2FwtCOHctA7nzuTMP+oafvw4AqR +4U5XO2yAm+9AiYD7j+9JHGWcY+iNC60w0y3Z0FPxRyjnXD4OgQdDn6iwiV3yhAZL +o0MQiQIcBBABCgAGBQJKghCdAAoJEBNunPF7XTQtRAsP/0EGO3TDORQ1VAmY8ZG/ +SurE8Gqw1qbXtuNNWarGWHzyQja0Jc7EsyysKshc7cVt0Adsg84MjJJC5DOHEUnM +x7jhPbEQaMrrNWaJsnUzC037jYFKjjSu4kd7bL73HqV4g8YfG8MaSwxBeLRwI0tV +cD2HR4kQLC3wsD6165AI4BmhqUsgee8cS4DdsYRI9NYqt0IiBN3PMMrx6uaX6sxa +2n2V9Ok33LJAb7LqWVWN9TiNySppLHPlTOaPteYfqunGIRzq7p++9wt+b8r9mdmz +EqX58NdRRb1IGa5CIVl6fSQFJLsLMO9efdMhakTudSTImcdnUiXDSaX/2e5VyZ5g +HGEDi5+4eKc6ZSIFm5ulA7qo6i+bPngc+ISRNbv+hv3JrvZIRaXZ67OYpYDO93cv +ZAupbNce9ThCNZduuRS2lNV4cjD0M/NUKDU2v8duTLPuw11yU7PToHQ7gLLQiAZu +tG+CTaIe39JtQ15Bbdl0t+ol0rKHUcxhSrfBo6wDSfwRNf3JAYugRjlG2XA+TyH5 +EpH7JNdJ5p3MPk9aHu1oQkUJq8kNgynU3F7gV8Jx26zrplP5hGJo4UPbUooZpwPX +91LSajIjWrmhyq/X+BpZUft51y3GHAQuiBtibOvSZRpMivq0DDsCtnC6Ruw0U4Rg +giG6DBONl00drwWpAQcxjmFciQIcBBABCgAGBQJKiXA6AAoJEJwnsxNCt1EdeHYP +/iu1Vc3KDHBtm7hGkUWntgTZH9jx+TB3Aej/BCrkEa8u8ZqDuU8lvVBWTAbztfRk +zeb6+mRwoxxin5phYlK0/0x7ssOI86lS7WEGiz4HuQb23WwIKQhYmqC3H2Fh5a98 +fhdmACvDCfBLk3TatDDdEy2MOdH8tuLWoRQ3tgK6EHzKARHn5ipyIp7O6w6JJpiL +Ap7pCfToMREzuzb2NqTVhEnS5kcbPmjAb9RJ/wRGYT+pTk643XZNtODTxf91zwmF +YY03TNlHRO+OkM7UyxkFnCqdVrJkNgzrJ7x/vHmR6tMvg22GiC1JR5jkI0imvJQY +nX8e1uzSjCUoSQI4Mrk35z/4Kb6UqBJvql4Eck1X6RCfV6BQLkaMkRJBNRczhJA9 +uami5JZoLC//zO4/abn2uDpl9k3PN/usawYdatZJE/mo7g8deshIFoSWIiS28svj +/EPmy0iUAfkTqAfOUaerU6KgfW6eBbdKTONOfBUeiF8Ih60b9bvmp1o7LuKOlsvs +KcJImNgpp9fmAOqTcR8La75u/G5C5rxoBppqnjWmUQW7d0k6VIGKb4qiiRVvQgJl +mAPnXkA51pzTiCO6fKyqToQB/0mqY3FYuWOtvVvA6S/Xvwl3NSITb465/f19DByZ +LiwBtu1ndW5wrvY0jB4Ct9X+1O6PrfI+rEwD931N6awhiQIcBBABCgAGBQJKkVRq +AAoJEHhT2k1JiBrTP4sQAKODQLtI8rmruoCNdGo/PHg1FIHHwmsR/3cqcP/tPPuQ +VNkZhLN/nEedneqwniPiw6eWNY09E7wdq0kAK8BOfSZ84AwiV0w0EAcziXMG9F6u +bgqHTPKCMbQYFXtkNPALeYOVb7zsCCyMI4O5bD5eZKWDuguFykr+rhdsWAHhOePW +uwN+lS7lhmhoa+QofWwDphxUwiZyJO9Iv3s8H6cUrATfCDUqt3Azsxk4udfPkFc5 +hXFNXqltYShX5HOyjsSE8WhaOFXwDfWWNr4elzxlj5vSDJkbvEvIOhZ+Qdiqez91 +MXk3wh0YBW8oXrj5NlbWuDm2oTyXwWkZv23COgF92HUXVhyfJTfh0AjizgN5xYNE +5+tEOpSRl0khmg8gJxUy4hntBTNi5329FRTwuCja8hGCAOq4EXyAA087rFW+GGid +za0kRHr9RmKG/Avkg/dPvNPFvgf7zdRjjmf5Eh/2pQqj1XlnMYKm+Xw2lgLz+2jd +zheodoPWTnIyTpRoqTWw46nZoGsVau4/zvE0MY0UDJp/WNNaj4fCcA+hsedbqgI8 +DuE7OrBJfsmPYonNAdcLjjVQW5NfC/HB/nU3xLOFQnxixKy0FDoY26F9mazak5HW +/H2fqEw6z+L98K0BtQRaTnZLPYgucN0iMGn8B/ig+uqBYWe5fUIy62QVJtX+caHh +iQIcBBABCgAGBQJKke5PAAoJEPdYzjGNdyld5N4P+gPGl6IZtQuG6N7WMEwFF8BM +H4lQ40Hj9EFH8WQGrUWBZf+8CPbx+mnMd7szQZvY3Vo/ovvZNENfXLLSGxzR4o3K +o4VvhRtIAa1JBVymdF0YgS35RwpkKSIyLwZ7IeDbfJ8lKboK8DcV219xLMlqABWi +DFD3lqI7/neKDEs+S41w2UU2c4/srSCD9LnqOUE1MR1oqakpcr9HBedtFJniBwdl +drL2vgBfimA5ErKefOTj3PG7MLoNuAPHexdGAn5uJbe8Q2RPbBcwq0ymsaCWPr8K +C2NtRZHCLLS21ZQ/iYLQZLMUz7S46dyVnMNvuVzZzeGPJ7oRL5E1WE7cMn4Xu+po +zsuYdNq8fgHStzn2J6s4fTgPua663LcGhMG56ien+4G4dhQXwYiN93WQSkyiqCWM +hq3ScONo17uutXZ6jFVPmzBmks5cTYNngAOnhsfg4xN0IngIaS9UL0jAmdm6zSHN +pOByebi+2Ntw3PQs2CuonRVr4zOfSzATWJWVLWtVPrsHmfz0s6LNKbvt0W6Hc9Y3 +k3NtRv2Uk8kR0WExbK9/9roGMEN+vJKbegrqtXF/qKl7eXb6iVRuhYTKYXtcMAxs +/Gs9I7X6rhCQ1LGs1sQF60ijK2js960BkQpkVcMGTdcRsOup2vDbxKYKsrg+pL51 +H6qnGTS4/iLEWIJ3IIubiQIcBBABCgAGBQJKoBZJAAoJEIGBI4OtKJdVC2sP/Rgw +1Gd+p8jmx9uOv7nl9C9Y35iV3CKSBl6KDacaMpaitQWg9MbR2zfWCLTi3lfOdyFZ +vCcCAqQOWlyyqTXRjfxrUkhyU2F0+yLRFIzwRA55bpMf9ohzlJ14d+DmNkBucbMT +iLRAoHHChBbNo5tTrn9ug/+U5lkvtCkn6ET1atU78Jd1ur152IhH/m5+AlW0X8q7 +W4PQMpjja4YoY/iz8LXW3pbFXJsgwq4NueCyJF+k9H84vYoQa+qQ6TUEQofesa3x +rr+m+Y6oq0U9yCjOL4gG4+PU/gypvCfjzb0WBJ83Qy/bnTzdSYdBcnjOPLaY0xuv +y8ALmDGFHr/Zb2avpTaBK8TkkOaios7hUK+h23ZSCLOaNC8bxqY+w0+8lPmwNGll +Pxu/SYQ7a81c14qHYQaE2zunx1waWlkCXf52sUfVLh6YMzjlsTEGCaJBC+6Yg0ph +3tZvWKkOddA8h+ou4AQfxw0pU97iB3MeUkOg1rX+62vF3N4q+OhDcjinUBziNL+Z +7b5iTdKsB5wtyOABTqH7BICZKgH8m6NhererK32fFHaqgBk80WWbPULK9qnwd5eN +swl3exMeBTF3YBxLqYiFbjA1hXVdRpiPsSTO9BZgh354UCuOyQHiPROD8CfHQXPS +0fYF4/PQxHJ6gRLgzDCIhxjH3+VnM2v7P+kE7mRDiQIcBBABCgAGBQJMXbUJAAoJ +EF0yjQgqqrFAW1IP/34jHzczNIZcVxGKeDpG7OxYaP6Uvjmo/LLI70ONz3o4WR/Y +5KjbM9L8qcIJZVH81OYkhADuEtajTQQ3cwds6WIcohVANH3srq6F3DSu+A6Y/0Fv +Eb9NW4QHf0Nde+nIoE6YundI0Q093VLHZxwd9+OxDXnUsUGD/Dq3m2Dv++Hj9wVb +4Vb3xbpoUUsdCoHgFyuNsfYtG7kLvWkwUE3bbLZrCENZYmN5GPswQK+YThuE/nbk +vFV0qUp0KMQsw0UI4+3LC8bmWZdv8/4mTbcYfJN1bLxD2ipO1p0FXl5Ae5ck7MFU +syX8Ft9d8y97Gg1aevS0XvNhMdt4yEQFFo6lH6CmGC/a35C2TB/VFF5DIWaHTb3q +OCQEEiT8QmLjJhFPlSRSkBeYd9oxyJcS3yVnUl0DitPxJlTrk8w/fAEmocnVe1qO +EFVg+C90Vf89jhOiPvfbmmSK/BDeDJA3mwaQm646grEisrmezFIOrEaQ0+vE8XBU +JUG5nnBjnRQdP8+0at+IJyq9UOVpuCL4Qk0Wl+kasZC4EfNPWIc+HY7/5xcjBgyC +TnAzbYj30r0ru8G1J9wut5SCQB1xQJNlBd82C4sJ5c80uJJigDIaDDv7acfVh2d3 +ShqQBCb1Dv8zygiH3bIKxfQg9gyPzm4jusduwCxjX4ACQyq9WC7xNCk0aXMziQIc +BBABCgAGBQJMZbgcAAoJEDIkf7tArR+mS7AP/2+AOz9t4pBuzOzsfKseFzeOj8ZB +qedeyiSjD5T1PW5iUr/WUz6SnLmpXhZ80b9rqfUXVpVqTlY1tvrJrcLW6SswwZnU +B4okRpZUmoR3o7C7Z/0NEqcUl2cyirRW+1Mogji9p2LXMadQ4oUOtAhTlHyrpNCX +Y9US/7UxyFgCBt+ivNdjZ3NehYmPPP4EIOkaBhCc7AFKD8Rpyyso35GKqhP+lpeB +AfYAM9v5D0+0vh3bS40rIOGcag8ZPraA+Mza8ktXsTMSt46eMyO1OBiqH7cufiLw +OilqjNn1HAvT3AOj3erIBYGMMDyY/piHgWw1zxQI+NGCj+2lJGwfDXa4PVXR63NW +Aa1vUkiZ7hibM5P1qrqXU+x1aSTlu1wU3xrTnpJrfIU7dCRBtJQ5o1N5xsNogFW6 +CEsqRgGRReu6kq28sMUpTTRd9GZdwuU44xSiEO3SdqCgDQOimj4GaC0GL0uOD8/i +78CJUqLk1nilg3ajmTtBALNtwY/Zz7RyVL13qES2X4/SHzIw/lq9UqBgAOzywRm1 +j9Wy3XbhlJwqZ26nWU0c8R1EC1Rhn92YoMTvLZuBMao2OMx6hXAGHZDN2CjvWRAN +io9cDK7FDr+GJEVsfxL4dQtUPPNfv3V66iP6VFYEIRgOT41l7HhyprZDywe+dHN6 +T2j0fX/PTeX39rT/iQIcBBMBCAAGBQJMX6ppAAoJEMJW+9UAIh6TKKUP/j+oSRQy +GmZWsSErMlT9eW8kH4LN+GFqnn6Pka1Y1ZS55UnmAe+bb5mfhOEFKuSXMdXlr+gD +xPYL46VMyHpvqMMPAsH3IY/9nV7/RObMI8Rt0tIAWuB7QBL2kz0SntDRtxt900d5 +x84ph2BjwZbGWL63wXv35HNRTfXynMVyD8Geu0M3NYamHLVngQXf2wYEH4AO1Umo +izGmo0BMClEIV9oY3mFbAtXQ1im2tlnMB2IrtvZcGZOj+ydqcxkSDmzxEMUi13pP +FmPirKlbsU8GdeTB7JV+KozUsK0zdSxMko4r7V7PretZ39Sc7YacCKgwjFyz5cHn +24KxLBsnKUbKm2gw6Q/8lO84I6gF/ffkT5V7ozOj3qVZmerFLfMlrM6vJTTkg126 +1IaBArmrk49UZewODrayM4918ZIQxBHJ75CguK3rmdVFrIkzB5TTrnCzAbmHPNJ5 +oHCxGoRUilJ1rqpvqtaHvqd5ZG+DBhz6VaC54pNZzyAx/SQ35DO1zkL0QVokXvDe +0fbfldKw/qr/2HdESmwCs6p+lc4bb42Vk5ESlSngCE9Nnc7VtOk85hmqLHT6r9jf +bLOdrcbRhGpeHzOFlAcIMb4gs++nQEt3AHe9p1PmDDSdF+gongnWJtsyUv1ioGqt +uaRz7GecyPPmNDCHhWM0+Cetd4G6JG9c8Y6biQI5BBMBCAAkAhsDAh4BAheABQsJ +CAcDBRUKCQgLBRYCAwEABQJKOLWZAhkBAAoJEDkUtTL0376ZUBwP9j6/aRx1jhD/ +XpVLX/s7Uvi0ReK+io8Q6G7aJ+JOu8WFFs5pgX5wjwrIfwVm8coHd6i41bZlfYSv +aF2MPIPhrG2lrvrfZnaYx0KoiLpAMbiJQIVJvSNmECNhET1FGip3LIu/CkhhWJWC +q/MXMqkmaW7iaZAk6B0f7KtV2ZIWgdadw1ZVm4brAR6Voufun0XuQ32VC+kfdJzF +huW5mWjgd8Ts9Pqo7veSOKkhM4xDiqEKANgEZNseJlputLPxihsbsQqYTwMQbFkt +pnFtl9wlLPIcd6jHYpgMCXBqjdfhlOfqYKfsMkpgt0pSfh3039XDq+4HU/1mAUfD +CVmtHekW1q8LsHOMfhp2Pe5OOSWe0F5OL8dbbQrVVBEbuxBK/8M2ksqCrgxaPtW+ +hNl4aNoiWYPoCG1djRPbELpePkkUZcew6lRiwrHRZ53PlXEWGPrSstyE7AGv08o7 ++4yIARlduTpRf9MdIm9hOnLlDCEV/xydkwbZBGNvl7OgBLYSHBiY7tYIOYdJB/Yf +UkbWqo2b/DKyYmP5EJodMluphR5ubWBKxHZaIGCOgTW9bSMyXo7O7/0HZWlyYwbN +v7ltixY4LCsPTsaGY115NtozP+IaReMwfSVx/CkdeIE7sZ0Hrw5+vpzuFfPkJbqN +oqAYD4iPdRNmAvt7V+hBs/qrsmwbyZmJAhwEEAEIAAYFAkxv+KAACgkQnQteWx7s +jw4o8g//RZN6tg/28Ym4A0yGKh3+FR59TvuS6U3/CTXcR9E275YDpKg81Q5UTxfn +/3QKGvHkzV0W6cqj4EX34LME2IyESxY9mOOvnJyDlvE4Zz7h5l2TRIKJ+rv5Zc9M +re4hZaNLgKHp57CePibse7i2SQX7O0JNXX9QAEzYfhusrU84GpMAp1kRnRx3KdLT +VHcB/9/r9cixAK7fKhfSqUE3+mB7y/AG75TCD/19ZWPUS3r3qvsJpxoTJA52RcUF +9deVzquGd8Iu8PoZW80qcV0qSEg+0tk63ALXkmAlI64pC6iEfYyJD0tg/IidV8kW +uPwraT5knI2S+T0ubeKcFp9ltCbaGMSyR+j6Wei+2CUqXriB/uuaJa6aZcHpH1I7 +sqEtAoJ8sNkl57m9w96JmoKJSJOrx2S7Lu+FJQe4P/WXct8wumYj+IawfU443zGY +U6iqbY6KhzGj57SAUQEsfodbOe7AOmwGNZrnTrsUqQWtMwYPOm6tegplSRjHNphA +Q/qvNDbRrC3DxZ+MZaPVd+jSVyyeRnS7pWqlcVl6v74iekLeRs5FTRblEmAczWXl +6pgK37xAHafXT+vmfuLawDpXczgrvU2eJZugLIL31aXOqD0YcjkUWNd1tZCqktUc +Sha3Owrto53CgHb6uVkq/XGvEk/aoLUY1s59SqKNJxbBGrVrv+iJAhwEEgEIAAYF +AkxwHCEACgkQ5K/rxhu0sol43Q//ZxVxm4PeH2Il1jFiNN5lZftD4vGgEkQuQ2Ky +YvaJOyW25X//ybnq9fcMFtWzJd/Moz19o994n7O9F70ggusOghPBAqFtMS5Ypyj7 +zH19HcGTxQL1mx624KdFpOLOvhFb6p0IuLMZoIBNWL/d6aP03xCS25giiknktNpK +Tu0gF3YnckZFiJ7/1Cku9yxRMgTuk4lhKdq99XOrjXCTdcQK/Pj89AkpXZNMxYyd +1fQqkEeOY32zpmdKr153cI5XN+udUytVNm26dlTKQAYHDtyvAyvbZSFzvzIS1aqv +3EmeeorK3R1Bb18aZMh34TeZ5A4gLK5rNc/6ouaHn6cLDBjPs3UTXKCkmtSbr88+ +DsUyBqAl6Th8qBHP4JIPYiLK2nUv5ZDop17RpBzfns71KdgDedkw2T+yKeRUoZwE +k5SpABpEtsFITwkxHq/E1QSUzr4SwRrU4l6sWxssxPlSB9W3MLMKQKVDlbzK+sih +0fip3VRWo4Y3RDnu/iabUHKFOjhiFe7KzBvwaT+IXanNf0FTFtGekWieJf4Yes8S +4suSSFEU5P0gUinpjZmWGvPeWCGE4cdTa+ggDEBSNv2w9db/TkVF+SiFAVw9PNla +7kbcj2GWbwap1eEZl0XoM1UghR4IcJJkudRnhXyrtd9DQIU5zVDXh5qDEUP8Cd7w +h6ZXDtCJAhwEEAEKAAYFAkx0KswACgkQqXp3Arr5HvUfwQ/8DfSSXIhRQG5vhcsL +SWMibVcB28ig8UAQ1lWOMJEF0/4zGGw2cayGC2eJhjv2efHEDLSoXgSbgd2Ah1Oa +W7/lwywY9emsf1lqjcVUbfj0uExixIcfKNkUK0Yliopfg5Qu1FbJlLjbasD5oW7K +q/uHimGikxv9ULI3GAUcjqICbiNpgdlmrutEiTej0yBt3IMs2Dpn/PLD3M5l7Oe+ +sc/ziEWi8+sSzUhx/TDISruX6YAYO1hXStmoJI8nMk0JBOBf4UeGsgptf/pBDo9J +XFwC6SJkOa7KVPYr488K/wvSP3exIo5I69A3ndLXBym2rUStx1H7gl9XM6vxXuWF +7jYeU+qhlnKnKucVvY87qwRgQwS5CV+7FQp9wGWnQ/Swai4uFXPp9OfIdBV6t9pZ +wEcSwUDAW3APNlWDn8DE264rgXxuFZ+0i8uecIaJnQDJFerwoQ30taSk4AehJAxz +NfPIgHnzZLWXN6ZjxUO2zMPV7mUFJ67QEDCyNDRIQKqmKwCPZRZtE6QQm+CWlWL6 +d+XMVkqf4yIsQruWkMwZmPjitzAXdshYCPqNejJ1jKialqv3mKzHhcHia3cgyRPF +Lgly8B+8wg+sYLywte8ej9+88YpL/F9MXDZLihdic5UJrrAGPoVJn+1kzNaySx/p +RYpxmzRz5LYJ8QUiYLG7Q8GiKFqJAhwEEAECAAYFAkx25FwACgkQryKDqnbirHvD +3g//ddqpPudkZSxLDiA6HothEgwdcgT9BDwaWf71AkFiaYiHwTDsNFEtaas0Z70B +jIg4yWtlkUv3DkdDh9V2mtL0V5c8rTHCRyrQ7wVOhwn217hbyN5roCreTOHjY8OI +oDmbz4nESXtcm+CDy0IOm4alaIgnd8tJ7eRYg6KYLUkMmUIsUSMaO5bYzUp/MA54 +jB3ySgVdmiLHuA287/S4VWIC6p6jcnkEhaXubrSZC/Hl3tMCDfhhZOAjtzfu3cb8 +cGm1DmRvMF8+TxwBE/U5pHPD230Ew5jn+pG4KMCGnAutKE25Vg4ZYaP4lOhBuYah +ysSC/7AtONLGLGuAMaD9nMwmJ4RzndJ5tQhWV8uIibiQ30M11aTddvIzMuO1gBj/ +PhovsHGmnkUqTnpC4aHjm4YguTzMa7nAjNIHgUlHmZAq4R4rMoZHuTe7KeFTdj+g +jn+LhNZ0qcYTuMZQCRXiNsKNUBneIL/FjHPHkryxj2eX3Y6WzA0uTVv2QWZcEWRt +CoA5HGmUftxuqVnUTK+zkB2p3cSGt4ZMm4uUrX6sdjFvwRUc1kMB96sdPUR5kAEe +PIwEwzGFcTE1yeYRulWHPUpYDPr5noV2BSNL57gAfIDwo6ryDwCF8uRkVvUkIGrU +ZO0xpQG/XEA8lswcTte9ldsOkTJif7r+QOI65MwAP9X95BiJAhwEEAEKAAYFAkx+ +A5EACgkQdRq13aeWeczQ/w/+M5ywoButhn+qrrDmmpu1EdrN7+iJMnuWuul2Oo9n +lv0lUTgQPszJR9ljIQ81Gf1O3ZBJTedLQ9chU5uACxEXuoHVwzzfQGsiGvrIBG9m +DxhChaSEnP4oyRcs5z8h8rrRSbVEmlBvJ09kAiBHaCvGU252rWqS9zZoXvY29Gpe +VtoDLemrAEYcGuqVDx5XQdWY2x7vQ2pUFJvQBvdadY1nBXj2gzQ8C9ZmrGw4jO6C +Z4xTq/NB+ek0X2zwPVuo8DjUdwKAA/5tDrGb2tQAXqNWH7MW+23rGgwT3Db92e+M +qQrn/PVUXTKNG+t6RD9a24ChDTn1B0mhNuxJr0mpJumcyME00Wgvuwyt6ZHEKxKf +T+nThgeAGo9t9SDTSnJ7UN5K93J6cHHTgOyGE2uHh0jMtohiD4j+GZVuxhvRLIWv +zMgHtKLctmibEtp8pSN1ksbsHhdH2g73vblD2IYbw6q9hwrLwnzk2wsbxXbruN0M +haOAZ8hV3B4Txr0aP13l5IRIAxxx04K/vCfEykbil6HNQ6Uy/5e/lYPWY36e6vK8 +xgQH8KU7Clp49nU2rx7KXNCtC4TsSNEDXTK0TDF9smqqDcPTn3i3/jIx5DzAz5F7 +NEUiCZA4XsRDYveYP/5wS5E05X2/hssGam+Kdbonc6r7Z0EgAeoVvDw2C0bepiaa +GeGJAhwEEwEIAAYFAkyY0j0ACgkQT59tVQ7WEiq/aRAA52zBbQaKtdHS4pNZnvWW +2VadG8oz3ELzRKq7dExrfaSx2CfqcXuuITNnFiyNu4W4GjYljioWZAL+Yz5FmCjj +T9mZbq5vE9ol6mfC78eUgpjl6NETRAveHIgylNVbPvdCS7tKmOTzbJAfQ4Mrp2If +c1cr9y7Ajr7qR6ycFMCkIxBojo7IM9KmNRyzzC2PuzhZmuuesT8fe2wsSnH1SQon +kwtkXK/RG2LW+hYJt08yxDIspj9ZBaBMThWZ10ycD3KM+SJ+WFCX3PBExdsUxTO+ +iyoV+Tw2HUbzWdjePGGPRvc22r4Q4ZDNt+MCvJJB0bwcBm1GaN1TGIfP7ZjhE1n0 +iceb+3LlG9LNBRMOCmJhgGgEdZHKzGiugujdemm1ce46t+lvNZmAATXm6SekJ3J0 +bq5m/k/2qbKq187oyZ8MVB69NioZI3PhOyX69OGJvY9OamlsRfhyxWeobDlfILU+ +J/HFEpsb0fsRa2nh+Z471spl7z3PjKf61HpYdJy1HunT307BtDK/RsS9DcglybyT +jatnODHzHGFR0uHvJVPqYZoq8Lac4TJ5je9ShZYWA8km29vOZJCvTCyneyDSS7SL +cDV95gJU9qc36UlCVXMQm52Q2bAYrw78GuAb8nEohhU9+qUy09Vs3+KY01fDicr4 +CKAy6c2cAzOfJI92OcYjrSeJAhwEEAEIAAYFAkylgXgACgkQnDFQPG2GY5aJNg/+ +Kb7q/9UgdVVF4ZujftQ4jjZ1eYwR2X9NauNSE8ISaIF6q6i4eVORMSPddwVa5obj +6QFajwJYP9jcLhvgDN/ilRxAaZZVTk9P9w5IJfHxiCsdtnYZD1+QlJ8lyPfuhRgJ +4tNyRcGp09vAznkSYmw/UfiserM+O9KrWjBqYpIio2XrohT9Tv6b2f7xEWeggl5k +xQJ7+t2z5AyBFLUE17F8yoi11G6AuQ1/KW2PkG0GYnLEN4AL3qbVCMdeVOWkti5u +9cJsXtdC/SkcKRRyWhVoSjkiq3DFrTdAGGzYvSlirH6+YfDXbH0pga6e1pOtg/lP +6G2qR2H7+QaRBsc1ifaxAVdlv4SdpRaKO7F4ppmNg6yqLU2hjRjLZX8kLsNm3rhJ +/2bzHeZKSWTItbp6TimVn+rV0PQsGxgZ1WnMuIQwuNVMpmnW3BlZCW2mOtVYN9th +38qshk4ZVrRrHNcn2+5h8A35G+9Yyvbsmog18t7iD+QdfTIqL+Rs30Xa6lZlo3dv +qb5fm8t+doXsxkNYL2sXgAmtzyOx8yDMlyK3bqDP45vU+HzV10PPzK0JxU/MMxwh +z4yihM2dW9iuNfRTSwtUCYFencvfSxwgDNTd1xeQOS0iEdS07kigl7/TVDNPnLSC +YHWsgcP8cLitjRlk7xDdXkZ3n1mLCDHqBuqxrtDiM5GJAhwEEAEKAAYFAkys9mQA +CgkQBuqgZuOXgy/pvQ/9FyoHCJFy1TYvguREFTh7BGNbUiFaEiELdJ9YjX2enL1i +jB6sd+Gnsb5yMTd8VD+Y/vEF5cjZA0qwyi53CNB//8GWOb15rTSvRANBxhC6uuF+ +KBAesNFJFccJAYOthk1VnaXl/UHNx5H7uV3vdk63Squb+ussLv3C1lDHfKCNDbEs +9jY/bvjCo0jBDJ8gFaIHPvurvClIZtjaTBevJ2onCU8Cpum/SRSyvcVIhbEc3mCO +FWVpbCbOcdjrLVeOnUyPQD6vnANeMfARv6zMa/4cmYfMUsr+2U5EpNuu1KUWP6Tn +8ipEvOseYLsCWZ/QWlrJUwUnu83dH3XmUtqT3iB/v1yPWPRZz2422FULWR+/Fmil +ilFAdeFqx+2OevtK7nvva12jrQRXI5Udky2Z40OH0vDuFX6h9tFQjM2VjxhHPWY6 +rzk2WM8bgw5+7jsbKcscLP5hT35aczJEP5k/bcZjni9u+97g1uFF3GbRsqO8rn+s +2tJ120fhCKOCb3Mt7WIPuOIPWerkhhKro8gQ4IUx7sTs3vyOrOmAozZJeONGkUwm +fp7r2qWQGooRxZCSQ5J1roQHIm7rUVI6QQSGQxTC9NnMUAvC0bCysgJDRvaV5gfy +mSHS37xYNTaxKkFTed+kIPutfAOixFOUcaaylCkovm99g356UX5GWawfxGIpZ/SJ +AhwEEAEKAAYFAkzL5scACgkQSwd3I5KdQsNhcw/+Ow4uDteR1xhEnoiXWKZ/5l8j +HkzaQ43ftsNzgcXdFoMdI8Q0J439KJjQ771zS29N1Kehtdj3WUpu8U2fZIYfQ9+/ +56/06xv/jbZw3ONFhSgWTWS3Z5NUFkFpFjTPe5WAONuo8S1aQCRoUktMeOMr36gy +b/qjDf6IooTMVWbNP2xDUNluv04OjsJ3lC4aB02lQDVt1Vw9bL1RVXRdFI7Jbh4j +8AFQWHQV73pvp5uwYPYJUrPADKrj8eWW9mXO2mvz5FxQxj1AFXbVeJIndSp6yu4t +tkBVkVphKWItE0rCmqL7+mR3rhNzGzGPyfRXAmKDnZLavleMmv1Sj6gq3svzaNea +Pm73e41X86iC3Rt0c/uF5WR98Ng3mG3vPvID9ohquAZ3BR9tXqF9ecyNODVa7CDi +gowjfTUoC1otjhmxFvj0f7voKhV/aC4iU33IjpK6Yw7JbJc0PTm/n1DU1WULdTwh +q9J9t619cgchkgsyfWuQfz8A4WLmDt5qcH2s9MFArPvyMYQpFVusYQI1bdq4EbjC +VjXwN/Gw0DRtx1nQunVdvRyDlX8uv1JkiN+6SAqQR897rQwGQ6yOjuH87iVXCB5y +WStVfkvxYj+k2cowucEPi6mTzk+hTv2Jl3qCSnUt5NLm0cNOcsFXCqql7IIeg5Ut +F5sCGjinaSXRo6RqRVKJAhwEEAEIAAYFAkzMcTYACgkQJQUzzKKbdk/0JA//XeOz +bzOI2lWg9MRQxVyJwUCge+97O9QFXxjkiGYlFSNe8Lhf6QsEAuiqqNVpE9LYpZwn +vj17VT5pPxq6q9KPdy4a284DG/7SCX4l/uAeI8otHlCJLZuatMHSKPNTrbd5aR/4 +8/z6i5IkbFPSqAe0yKJyoiamgSgUQ4f3Tn6dNtt5IATrzL/EjH4PxPcslGqK40fb +BAQ1i0U0pXtnh6xDfiPwiZIMn9u4I+IK6YJhseDzVvxKd0nZij3Y13teoA5jJP8e +UPrywHCwej62jTAIRKkvTxafMLVx2cX98TLRxKf3s33zTQC9P5a3iT/FFCqDNReI +5Dpcq0QhULeYSph2TlOM9aPG5pb0mJy34f6V2NdV4iGOzEncEi4lV2qY8LVMP5MN +JYb3Ey+x4Aw2kibdwi93BxLv0gWGD3e08i7f6Wh+lEphKNH7YAIHzivEdyao3ZV1 +7rrEoirEYGeSCyuzJvuRNFmyk7drUwKiKgIY6i3V7/JEAAMNciANO91JK/Ex0oJ+ +6YzDzp4USwlivunL45YicZtCz3sXYlqKdZbLAb0ndYY9/UYtzB7RFmOqS9U04CFg +9MuatEjABYQiOnBichWkWthX/iOZQDY+XEYOAKscwC1SdDLrzxLZZShynFXMxmeL +P910xFlfAsQJTC8VtNLA6RSdpQM5duv/klQQu9uJAhwEEAEIAAYFAkxnzZoACgkQ +PQeHqq9sYd2v3A//WTcQ/GaMva3ha5iOhXDA7j4TlzPxF58RqkGlQ3g5z/ZfN/+e +txS3WNubeHyZI88w2/mAM2kO/HzrlpOY2MS5W+4WXI/fwfS9oCcVfPMoneNaxxuk +Ced6KlODYTgQscLGQQ+9ndcKe0nFptDONZ1YclKPR1Atp/2GUMTdF+7ApGe1x4Pn +i/72ucsMvjb7/RtQ0/CX7d5vUIdvq8f62ruDdxS8jjS7Jp3cW1jOdatmkUZqbnUP +tD5WCww1W7tpcsYUaqv/lCUI1OA330Pn1OeO34x4uL4gGJp2cAvY5/7hxP+KtopN +w7lr07JdMX9QIP9Q9kE4G/jDeyKi62Ic1ZIGy3P4NYiFd9/K/45SX/Cvl7frqNRb +WZtguwNVO8p5u27s4kZa+KXAQIg3hvgYGnow+yK9jAr0zx4GyXLrv7P0CDsNnN45 +uv5xRoqoy1BAmVmM2/Rj74BuL4T+8vnmiDXL7mTD8mt0FbrRreTgc/LqeClIzFeW +qE5kT2obBTAVfoupmCqlX4Pbs3rIfdYQ+nvJ5vhEMluSnxUjZyOOVLc4YMTJcvRF +5abttIK9wL1U1svRU3mj4olgCq5/GQSulANe5pYp6dzGlTLZXbZ/bY7GcKTiBRRL +GJmEWMocLTXykgAnhbRt4R14aCdb25wuV20IGBPuASlfW7EotnUHARpBSzmJAhwE +EAEKAAYFAk4v87UACgkQbmCLY32JZ+kkSw/+PzHx3+WQwvLl1cCOytnM1PX3rEpk +xTpU6L5cTXCFviP0JhfdFcfdqaLHHschZTDaIXKN/nV672X26ZH8PCgqb5Z6k2mq +3+/AD1taOkglBdj87345XBPvwbBPKCCSfNsQ7QF6qKZTjrvCRukZbSDSVS2/0dfs ++eBbuqw6L1nTSYtFa8Ouh5iG3PebJPNqkUnt1UCQziD78KV+RIwX1Z3D1qGw4MNJ +XZYykVlhdgceETJH5S3j2zumATLNDFwZ3Rb71j0J1VHFfOpnEYiaaRL/qbbGnsjU +7zQICXixB5noKNAWjyLVdS0vtNyTLMlM9iMOEX/gXsd26vqq+Qat/UcA+tC63uFv +2as8JIrwLFlOuQ/SnADbvGwVbo08l/Ny4JyMSuvHS0QQSg6QZAIPtQeE72eeq72c +THPkvxoXngZpCWXwAiJM9MQfqfYgTpQTzLXzu4Vyhs+sLDIBpIHtZ7DX/jbTa7TL +TDMnKunVzUCFDE5ZWANP+SJFbDDnkSYx4ksy5DoiIqeskhNeYRzWjse/pvrt5F7x +wwl486nEkyjjXZeTE1k8281JXOASfrZZyanPlkr88hKxn8DNtkvuNGiQXmZB/caC +s4z3R1wu4iPuwFNJFLouviKHFavYlNPlb8ly80ZT5Yi3iTeFEn20WwhRqEq1YPbQ +2Fr3KC0NLTOHECSJAhwEEAEIAAYFAk4wP0gACgkQsxGM74rqj+50Zw/+PwrZnn5c +S3hnS/jXHz+S5zrELVtRxM4abJV8+A0+MyUxecQdSHIuf1xF4RR//0o9wGyqhv2M +GiHpluQSKcUs/pK8DDXmr+xV89tPc3CBcYG8DzRiouPuMhQP8g9LiTJXzvoWO9GH +WloZ8+E+FPxi13xsuFfXTja3d3qNT2F5L+xg970LHaUh8NhOuZ2Bn20Rs340j/qd +SqLDaCmTrsi/kS5/F6bCD4YaDyepSjr13M12sMSAQ655H2gsOAlB6SU+SE7a+2/V +pH0LKVreiQQpwLKn0sPgRx5ExqX1EqhCtHJfFUXqhZWELPI6TtB58utC4waXTnSP +q+6Z8vSsuffrWYgtaWbcSBajzRsaPNp3VW/0alfh15bhpeFDHIrpZiMrPX/Tnqvc +hGlsFG0kRhckH3mu1rzeqq+YLmIUvQxfaD/sxO3vnZLD2rKR7LL0aeG+NbZGZONi +oFKf1mQBJ5Ht3rj3xRpJfHkNoKDykToAKFr7E848wrlH0rGCISTLILdNO666+1I8 +dPSWtaOJ+GsUrCYCNDqkOSxvIoD0GyLC8RbQkrERMpA0a41STsi0VspxeRkEQKQ/ +XG+r8bVcmEmRAYAi+SG4/Dqv1NU8BfTmTYBEUejNDfPDJHAQjE18KX0i9yCxfTVD +GGFA9jLrdeKtqmygfegguf43+20cG+P1KNeJBBwEEAECAAYFAk4waA4ACgkQUMNj +TTopHPkrZx/8DaQYpS+ZmA/AAiw/70i27glxPklKcIEPCLb43ioHu+5lyOaXZKf6 +sFy9r4Y+X+ANrT6k14tu0l2Dj25Pf7WC0lxbanrlpG5xPZRlTyojFuucHA9w1613 +90yiA7WjpWwKHid6DfZcYRv390Y2aczvAGvFKS1070Yv0f1UDtN6yQq1fTg3C6yx +xsnyhgObC0o5e9x8O5LpIwKw4k+QYyc41YLwr0VYYzLNa6gOLezZHfC3/1NZMi5g +EAaLzZ+HXgQ5EVfOT3gLOsoCtK2PQve6GMwwKEakLplnamOx6u37x0rjg7EpeNmn +4jcSXX6ln82Gy7YwNo6/EObugCsCyr90M2LSRc5AF6IEmuKuBLUN9klRmWosnR70 +mEXCTwXXhfpoH+5YwuYVVl7s016GTK/23XbDRHHFLOrXxdJRwxVs/5XtdJx4U2Zh +plOHag0Snh7bLasJx+Qm/bVmfXYRQmBL/7hJcAkhEwXrBGA0Zxl/xl3nGCYg601n +ovPhaUSFOOHadkNQn4bdlTOZ5/8zoRDSRK47dfLtGx+IQWtUavZ51VRTHC0U0bFU +ke9uEAYDJ6UVXcGnbZS/+9lO+tld6H3RMNub23KMLH/4mZ7HtPs8drGLgdmI2hQc +V9vCTO3o0FFR/ULgVRvgPA/DvpKUh0ahfVi46q04FJRu1lLoOmBVJbAIm4aZSCoy +7iRpS5rHRa+Vj+IeBlSR6k/9jKpqNFVK7ynXCQk46rZi7939cGMbwtaDsRg8Vr5l +KdfMn/xNtj/kf5mOUDySdcxKIIMC2qKR39JGU2kLEGw+Mk1efN3XckAIkknyGVb0 +/KcgRsYxBpi+he8jh9dWiWnJ/+awtSEnazqKQRVmweHEKFM5/kzUYLEf23NFgBxD +AwC1ui9CJjxJCtgIsZ8xTCtDxHjSCCFzNTe3mhhPB/FI/hGE1iKlxwYf1GxLczdo +u9I3udUn2n34+DgeN0r0Q5sAjvDetN91ngZ3w2wwgJYTaWxhXqH18PCmPyTuAgHs +M8LBIP4TpBrz4GQb0fql6hZ76KdTWeGXlJlm0NVLGwEmi+aSvvkGM08dOm1MD0Lp +XcQ6qMgFFMbPdDoDCdgn4y0tBIsok2hp/0bkxyM7BUxwiKaw5cqe0O0TriSsTunX ++Q+R1tP54e16kHZB9jXlQlAjTIpUnl8eDrou+8tAcWomGvb7qGKZGTXbC04Q9NC1 +oyA9C0AK2+GHMvuITgX+uGfCNAKp1sIpH1C1P0HM0n5XVZlFq2/0HJWJbEat0CY7 +rwS6Lu7sTaj2nD3dFX7WP54QcuRjPqpoo/tQtZe+EvRpvEk2NZsHYR1xXYoY2QoU +y7+1IS6XKFCkWkMxe7CH7dp7YBpniQdm1okCHAQQAQoABgUCTjCf5gAKCRA6k2GW +wJXZQY/9D/9xgzGcTbPP8hKQ5uLG7Oeun1ffL0ImKBrTTo/xMAcxYQo+E/L3Ll7I +13m+9gUkROcMoNv8w1PcSRDmLYPs+wi3aupjaK/pLGa9MOcC9QbeEkAjfSotGyt/ +YjcosIIioMEl5jxCOfPXshIrer2YYFHRAsT4FXYXjDa5KL5Q9qsQEVq+W5OQE70a +uCHQnLkbJOSeZZlZY5a76p6HxYIVignxCg3wkZ8sYUCXFBy6eeKfIu3KdEYoidgz +jwL/ZOnR9xDc48kYQr+WMUWp0HYQZNRuhQm90bchMF/0CEBGLkybsVD+98UmSmeX +qENRFAcaiUN2qC0LKXIvmO0TPw/t6tJ9FxYrTosa6ct1IMxJYSlV1Lj5DtZmjirR +UQS2Upz8k7FLg354PFBfk4ntjcp/NzUCPdmNvf2leCVawych8VlkN2Lp69lC4HSo +C1JsNHu1dBFrk2om3ZQKw3ji2HBsPM04MeSAXwIB8Zdy0ij3vMkxbU1CCDQwStqf +0Jpwptp4MkDIPqDZXXsjdq7AKY0YreibNb07mBu7hdzasZaE7wAsI9r/hzi+IpBq +zCfhmpR09xchUhpQB0LURuQyurQswYH/ufOFcV3p2MF13W4LWBoBvk+HQxe+PhBH +9dZqmGqWmYKB1wBeXmWTZ2uOZBIveYp9MrBENgyqR+UCPv5prmjSIYkCHAQQAQIA +BgUCTjEI/gAKCRBowHi+iPgM2rzfEAC3kMEpvpZeAa0uga3q981JDeYW68iM8Umn +mixWXlpG7dEUCbW4zgZXBJu91ESnWEyx53Vlqazp/wJt3S/OQ//ax2A1vucgU+Ev +MUIzuG75/0RAUi8htTchGWzV/mmrCziztKZdS9MeLST8iXhOk/lh26d+PDKycS5n +TMDRct5/gHQ5dFiMZZHpKBtSJ+CFrnHa1K3/VBuriz+VwKuig0XBFP5P9FtbiLaa +EwOxZlOv6kjQ0TYvsMZMd3hMaFgvTHJImciV9jUmIfpPaDpuE/lxehSRAJWxHttZ +R/si/Vbtd+U4uZrCT2FvdlWrHa+81Z3bldVi0jKWJTQXLN+vIJu0o1ChnqMWVdCf +/NbIz24fPhaeatkSdqciJ9gbxfxJwj5qMfnZwdpNLSKkx2O5HS7wCUfVG4uBlaFO +7tJSNjfHaSYD7h+2oRI7iwQquvh9gdMlQUQqUVkXKIXcdgm3HnpbZWo6m02+tMWU +3DSl33uGyks8g82rD/9jkb4x92rFS8wo+aTTufhQPErabIivT7o+3JJ4D5bPsplb +/bXcr6HCHI4mPORYJp07uvmOHt7nuHkEyPX/4eqxKDCM6YHWjYYZDTqG7KY6PkdE +GMeQvQHL5zt42wHwX+H/nMR6k8phUF21Ob2ijI76V0dMh7mU8GnhpV8tkJU+TXJI +TVP4o3kZgYkCHAQTAQoABgUCTjXnZQAKCRDQF4x2fQae5p9lD/48VVdfGcAmsaOE +tkcEWNVlYzLc2IonJE+5d0hT1bLffGq+/54f1s25gBN5ABKJqoLLQyIjHV5Q0nbY +cE5bbivatdLguYsNqkFA8LRmjDnKZA7JMsS6J6A4B5WCZDPNxQ1E35kws512gVuM +2HJglz742EcEL0rU6KjMJFXVBEb7EG63a26OQDm47WCZrPk3ADnqN4CjgYgcB//F +lgz/9W8VvkLB2TXgJHBKv9pWrkXxKqyigmZkxn1U92adoQS+nLVpEyAYOpmY5hN0 +v+NlPqK48hMiGQIexNozKiYkrPs6cCoamkuI8bTIQqZybag8w9L6hwSmyOz4SUiW +8A66zx/SxvbP8R7kEKCFxQeVXesLSl1oInDPdralZ/UmDswAXOj+1MBu3QsDt8Ec +UF8nbI+pX8IZlFCCbWdLfk6H0sxyUNeMhEOBMHFK/Y/ZuXL8dLqNq2GzaT9eQwrj +Pabc+M894tbADKsBG0fCpUNY0rjPwIQzAhW6w+ecLRLPQF2gEpwYlSizYIgod11a +jMOMP86Kr9xG1JZCJ7h0Y+NJZ8rPdwTPyPdKoYUbTGmbvkfBLmjZOFcqXlESEzSF +FH4iU5c5Qq9JgzxfZV7tH3yUBg2jWhDBtOqeqt5cbjTnuYohOD/ITLRsEKdrKf4s +heBrYQYqtt/XwmNiAklcorSxoJPplokCHAQQAQgABgUCTjZ/CQAKCRC7OmgBhkmq +BiaBEACfakvclpC08tbRvGWmh+FR49ojRXVG56n4yDu1Pnm5BwkXKtPDFgbT0Bl+ +PymFYPyNU6g27CHlsAFX1V7bhJ0TiD1pdeEqhug6eFgjuVI0OZ8eiaRu2jNKQ250 +W4F5G432KodG/h+Q8y1yb/32+tAwXQfqRPeNd3cGu9YO4fhePHFitBMIwdyadogr +6h77IDerBrF9g1TDCXC4qFPI3/PrbfdckqIpAGmItzQn49i4kHIjleTRaDf50gtz +7Y3CyH+Y1hVRxZUM9D+viqHvCLmZQ1H+/4uJ6Hcn2ZmA6EGx7F/kW54l6ehJ+fI9 +DrElYkFI3uJU/gBFmsPKbip6liKP7d6AqufykLEj4R6QAmlaVJlJwnxJqeDtCAVp +YcImsXuIdtf4Ohm4ruSNj/vpbnUIxXGi3Kkl8f2dmlUl8BctD7czYlry1gsVAmn1 +XEDLLu5gE5v0JJ56O2SJb4Ns7ULuHDlVDYHIjc4HDWC4s5Lp4rlCXAex+eVnU274 +koaABS7mEumDTgnelP2n2fe+1X3CfeIJwM8+IQ5VnJjXydTjho0l8gdktWK1buH0 +Zu0u5cYaK9WrSXEcVLuIc6p8CfK6B1cHV7tel5K6NsJxxLw7ra48NpLa9CrFKRvG +Esuekn0ncekm/Ofig2rJGQ2+1obJq8jxhpHvNmXD+g2c5rZj1okCHAQQAQoABgUC +Tj1J4wAKCRAm48h1p0Qg7yYiD/wP5KId0sLXzUM7OG52B5OknAOD0eI5sGMwLJqn +U8HtXjxluRXH9EQyJhgvCgaAhMN4xpnk7+JDLHAsqZ4hFJmTPjwqFdVEofNPklFq +ZCi0lHGV4VYVZpcqT1Vozn/CGOlq1SMECWr0i3klH0p8kLWNGXy/5s/5E3eDIgRK +BqnVHWKTmOhWwOl/iBo2ofin2zNGzaCYoCtFvE+vQfiuATSuu3DtsjVQDOeyJgrp +TSJicuP3SoEzFr9cAIA0qB39c/lbRa2De7O8PVEMzYY85Pn1ZrAR8FyNeL0mlE4q +kVxfpnU5s5g2mTK8H+9KhnGm29Bt9n0spTopcvC2pWM/4Jo7xUBWpiGuI91TUP9x +1V3n5cptfBMnnXMngrqxm9cfzI8dMOpMQOd+JSd5SpCJeI1lkUMMP1QtUwelYuEp +nfN7AIdj4qq0aB267QwxSDKSsylyPR7l0rHK6fDFKvdW3q0MMV3lttumimRpw8U9 +n/gUxdZjk3WA2rsF/zVdYrRZgJ5YhzKkAuc4x+k16VJ6L6l4sdGqpM2GhUT2y4ca +FAthxFpQrtRE6tNnxm1Q8QdGgzJw6x8AHtdEyjAQWA6UKScSMxp2SBOLXldDFuol +tKKddLkU3QJgZDLCGWMBxYSmHZ/XtEHNQRmoYVJzemEKrSq5ZqlYvwk8aAtCTnm0 +r2hDgokCHAQTAQoABgUCTklNnwAKCRCe3MmR2atFfrg2D/9wp+DOfTVpoh0goucM +UhViM9wbhcbnfoXXqJKEK4HmWYOi08IgKtjUGDox6ZmlZ0tkDx371SP8eDFZmxtw +9jbmSgKFZKu2wYdO2fkBBBPYfPczPgacts/BlACb9cVWD97p+bbvH5B9l3VCQe78 +qidiz5Gs62vYSliehTY+NU+eoJ6DTmbD2iXjdZyTjqI7GNP5RG+8OfkwxqLylVIk +CVP/wWGv0dnvqC9QYMVJEYipW0zlTzM1OzCZZLbcLcR9eaZZAQpZQIwhXdN/vxEA +2u6iYRXAf8v27z1QZfzzYWnpX6IwYhxc3gV1XMQHH0aKXlht3N2StAcFDtdXplCr +RjbJn4vkCLc/Mmfl+PhPj0NRDtMhr8GSfqpflhAZlEPKsjGc0oDrBuvDDp+pM0MR +0yx+xFvz9h11GJ2pAw3+33DRJ7KvGWsNtjAl5hcG85m2vp0/NgfidfKFblPEuyq4 +WpW9WJKxLw3nI86d58loIYP+IARj5u1pb9VlckGHk2GU4Qo8Re+vns4Y3GgMBBWE +y87cxGow39x/oBubuH5wzkAXxCKJli3+CJNKR4QAw14I3kGjn6UyvWZc7oNVXrik +mRxjxdRRTh9Xfc45HYu+ni+tUNAf9xTe7XaEDdpQeIbotQ9FFgWbdoRwOvcjymV5 +dkNXocacoY4ohU2FuO6H5OuRNokCHAQQAQIABgUCTlO6swAKCRAH/EiRBCumWlSQ +EADUSb0kN7G3xXRnxoj5BWhCdIsERXcubnVTpfsGbum2uERBZB7Qf8mw2/pJDCZ0 +FQN4W9RRK3n4hWCLLU3qAkiyzPYmxrms4d35fqwZ0aNCee0bhuyBLrQD5FeQSRAq +Lbsn3ZA/orbjqO1cjJYTcBqLcZ1Sv7mPujAlMYyZ2IQO6aLsxvpjRbFS8Ez0CO4Y ++RwsXMXWieznkITHNGVIfcItfQjVUlRsMbEGTMlp8CN3kumpikbYIRtm7pBNeS8J +QNQ2v0C3UQM1WaW2i+b1X5y4DOLreXtdn0WXy+BEV2+7WnLuHRz+/0KSpDyu09rf +c3yYGUQCH3vwes67q60e5dOucNu54Bk4CsW0YdaTosXg3YhzeeOk6GIrYFwswZMJ +n7YIUGRfmUNeppYUCyrAJ4mn3x9ug24o7V9khim52OYRy3WV2S+Bz3IFGnRI1oan +l0t6VWBrPZCYIFGH3Rq9yqaXy7jsLTOq4VzQJslGW0qFhbJuUTvMwqMSwfOnUalt +C2k9Qp2lSuTiL2v5lvj0zrgAD8LMO8uXa7PJ/RbKomi7uL1j1kRBbP+L64KANxXX +jD1mESilp0zWdvxQbD7TnlfKKS+2Bxtm3RcZMQSDcJZJnLYFJCLI/WkmiP6t6YcK +9cKvFM2WbcfctHjutfhdP7of1KGmi5P4a4ltcodP7qnr/YkCHAQQAQIABgUCTm+f +rwAKCRC4KiF6/f4J8lUgEACdwu5odMkW4r2fdK4HW5QYycrJQSiKM+OUhA+Yloo+ +2Hkq2pcrHdGrRRUw1+g2K/dIbwWRXoUi8287hoafLICjeypSud0b73TMPIyDzJPA +RBNBA22smNNr2LR5RaxF6L165L+c3FFBzJGNcXlP2A2ge6iH0L9UIx1LbcG/RkXD +EFnwbXB/gmhCktlBXwocWNB+JLc/IjzvunxIWwmT8cZ39S8KsbCtvlGF8mrBV5yy +lXkUT/8sAqgxE0yALGSvZP1ZH3hOjwzdCzoOnHzQRVxu0ozuPCpQR9V3sflG3uYU +jvH0tIDyjcHygygvor4pZHvKQ5aSzqgxsEOui4RIL3tdALpRovtDPalFn8aV2tc0 +QdP7u+znOIeG22btUv5MLuZi+TXKCYY6eeW/S6kuR1CD49SmiRxRn/ceIIIUuWAP +mXM9ii2UJYgV9Lwb81K/Oq0g6dk3P7e3ypGlM4Ehjokk1A5LKBv3fNnQfydOxhXF +jOPvMZK4zb4AwrlBgKcAEdKB6BjchNsU9RWaUcSUKblfT9AGJXkQktSOIEiQnvmg +uxJt2+UFS2/NO0wPqM/DkLFNNs/E4aj3JWPOK4QuGre0A4fgxHc7Ky4RXPdbXeSZ +JonQnwDgozTLAGirgW/XX6R1ruuewCIgWYW0yml7T/Ytbkm23At+lPGVIHMokD/2 +8okCHAQQAQIABgUCULOgUQAKCRCq+K4WMF1uLHdvD/9v2znzCi9ZHyq72hSvG9tD +cJwRh5181X2XhruyR2uITQQ+ANYcy8GLeEW3m1457wAESB0zKTQ1JjTUX1TNO55d +7vNbKLyS/qTqb3KtEd4RTMz4CsD04KoMOvDN6UR4Fcw+qUr+/orbU+DFzZNWfuuf +pMVdPnMVCVaGL55G5hR6UzmgvGQtU8m61LT8seY0poRwHJEKhvOuKPEAXmDFKSMf +WCWFtS0n2OUWgZyF+i95j/eHpf0iwh8ZjLXMdYp+uyzwyvJJYTEQsHiWCMANnwYc +xz/fAwwfbD2FPrE29ncfUj/ZpRUxmpUiTUHmgQcxoDFOQUiSXEQBAb7W+5njprQC +O9hqq7ejzBvnqHnm9MlGoLGGwJeTZae0gLlgMQeAnTLELgxLKkHAUDfhMl1vh7lM +ULnl6jBywHbN8K8/+PPAeB3UAH57bvZZxiwQ9Ju8buIVxdJjuJREmOMAK2CP51nB +hcedRG7c3yfUkcYdUQ+Dt2KelN4tN+mo3Loh/NM3bH7lUF1i9modrBPTjiqAkwIl +/nfyfjmnoiKPQ/XNxLUNhl6zgo+wiA3LtcMQp76WPLiIZsJ1w+ldGQVvNbd8v0Sd +NzA2AJwQAATPvuEQQhfKJccEdE6MMNUa5547U7ERD42NQLJF6LbpTpdfMXMlsqBo +249vY0OGYtebz/0Sgmb3gIkCHAQQAQgABgUCTn2qDQAKCRDbvp1NmdKgBIYVD/4i +4v9/fG5UKRcLO63eOITuqeS0e6Nvc4YqFxWWT4P8yZKGxhLb+pjxEAvWQtOjxch3 +ZnKl8Am8HVWNzyM8YDeIOkZnE5JJ6d6BDjyTMKG6s6ZMfO1jdtxWt1E9rFrMd8RD +KAp969+7N2lntwcLk0AwdqrpDO4Ti9ea0xNaddA7/QrWqMi3Yzb4ROjJWxdRyGnp +vWNpaz3kZLpb3BYfbu4fXBG0hengEjdcV4fAT4pFFzijrvwFxih3x7ygywFi7yVF +ihvUJPRKkqctkM5Y2D2vI0N5UJ4JQk18dSRfR5V04ESXim+Mv/kLFuWoFv8sT01/ +XNytLy+RDTKwfBYOK4J97UjO1Fsdl3B68/y+svx/gRRikzOjxUmS5FBwiyOOk3eT +wE+aCse9qlfxcOSwZPidkJUS/7AkL6gk4i6IhxUTdsb+VGDXvG+Z5kEdd9Gp/R3f +mxuOVd44OPFBGuVjhijTfa1X6NATKobtyhykSHj5n7L0KG01cZlQf2w2OI+6M6Se +Znoj4P7V1i4KkiI04Xf9AJOEAlce50oBSqu7DszEEqc0IyztnJtl6HTZmT8feIWH +ssZ+XFaA9wvdQe94xqjDXyhQoqu4LgWNFimP1Sum3Z5Hfx0vxTGXRCucenQr2jWv +LZvyP7YL1McjLNMEo+81alWq99LM8xKSaEYnRRGQTIkCHAQQAQgABgUCTpDyywAK +CRB2K1e7eEIGrd9PD/9ASpYye4ll1cBBLBOA2MoM2b8gsOfJB0XO81bFDDz2+6CN +evxPErn6mpHvKDuPogMB9D5XeV1rEAskU/wibyxOzzPR/SoLoN4Ocww+dNQcjgG5 +7NP1X1Wf8D3717pdHngA7M93MaSdHXf2oMvex7aoxLM8uWJYjZYKYMwHi5np/zqh +9+iacHqFwDyCXKSSz1ojaibv7h2c3cSzx25VbnkJMTtlmY5hCYtZRicFuuCDN1DI +CidRmQ0B4Zxpno52c6k7C06gIKQlWZWYRVIBv1jQuMAJzxMAifRZN6GiihZCOr/m +cGkNbcBW+Kd4y84gKrt0zfEuCP3gQHYxgvNRLfgiRSNKXqKE4zFvClRozoMZy0rL +LzgHe29/jO2Cwn0HmTNav9GdiJs976RychhNQ0sEsVy9NyVQ/Ttmr2M1zWXQgUZp +ch/q2pc9jKYE/z7eUqbz8jUyoQ3S3U54EaLogWMS7oGi/u2eAckPnOOb9RPv01A2 +KYsdRxnOdVeYYkaxvtWwguS8I1vR7MoSKfsX2QomjHl4XfIkVYWChy3jF3GcSMhs +b+0bt/w5zazL8TpGCMwIqpmP6I/ZkbwQuGM8dzn5YLMIvysqc+1QuCrsD8eJ25sr +35LnfIrbGF6P5bm95aGlnrVIsH7kuAna9LW6myoESXr3cfyb4EayqdqMcMI9A4kC +HAQQAQIABgUCUhJgUwAKCRDY7tfzyDv6mluoD/9LjOxZv0Nb7R9WVVV6g70+pZ0F +D/pQrhxlQtfW80yhIuiR3/Q76P+atToX42yXpuIqY1tbkhkSfCdNSzO8PrzDdMYE +Hj84BnmBY4pnP6eN2FiC2AgCA2DFYz2avuDpl7MTxf/lN9jpNJm4a0FN3nUkhQBX +Ni8XQ8TScLHfHwFj9HydG+jHDoN0J7nfyOOuPHvCQTSqElgpuKHgrcDcUD9vxh8m +pM2btbtq6bFTyZ+ywpTPhrSZZuVKx80DobDOdGH1UFtQFJ550debCETTSYESKqtS +HZGxmzVjn4+eEJPSMnSeSHVsUJSH/7fmz40lZcyS3VWQVMkvbH7ZTr3DJyoMLBK0 +GpqAuJ0WxxzJXHGySOc4lUYAlklyfaMY3LmEE2Ccxa6J3Fq8lRUddBkhDJm1fOeY +ZRTcIkd1Vo3Xw9JwCUP9Cy7WZ+0YPqv+A90BIBDKTS5yaHQjAtQMumYxMFWEpmDP +IirtkqNFdUNYCZaQUOjG/DsCoyXtkWjJ3EJf2D0msrWQuNyaHcAS3zqSYcaoRWe+ +bw+0FFNggCWGa8rpbcaWzCyOahz+xLXvCb+C6BuAM0N2dhaItHfOEHO6wXGCL2Z8 +LzD4HCaKiTW4GEspl2EYtyxnD39gpBOBhIr+7JtCXle9nDKdmVig16Iq8sI4KRFv +19qpMSm2YCIhu1NIxYkCHAQQAQgABgUCUg4nNAAKCRBHcSFx8u1i+20BD/9WAob2 +AlkqFJNorwjxIJMt4O0qw/w9bunaV5tU1Kx5v2OhnZ3CNQvuJpJOFvZoH2wLSYFe +eE7Qfa2EqBBcHz1CEgCZlrCk8wUXM3snGGXcDB4NO6WeOMWMiB4pJCdko/u3wVLx +VhlQs7ZtZyIPPqON1P3ZkkNu8F+g53jtSpKXf/TXDIIc91hNAWQyDAyCAsGh2O4c +naLU4WOg17LUy0VPehLCRp84/td4xURnSRiZ5fSCJDulAZRifW3Lj9aRgcJenuwz +VVtQbRzFBRUOdyC1Yb8A9xfNPE2ViHca5Gsl/y70MMXKkD8KT0/zlosS7mvk4yan +SR7yVEr+MuAWGSbb/t4FBeXIRPT+1qxSSdbCVYALSSmkSm2KV27blWlMXHNz3FvC +w70fWWidlwjBOSOLHTOYknRGWHS1LLVNkEvBEvGWCFMXF7zm/+iE/Lmmv/wLre75 +IR8D5i6kq11QHEt2g+JG3qLD7ybXkhHdcBP5whW7jGEYd1n7R0Dxvx5PoHsAEDlS +xzBTbptOJsoH8h/K6hK+mt8LdLoGz4isH5HxHoyctgAxfhqPVu0FvZFXp1ej8a0p +VEOzhPVtaCmNgBkN0peM+Tgr1xkKRrqpjH5nA/Fy4OEwR3/19uz8s2fX1RiNy/Ab +81CwrBP+qkE4ba3qsxgJY5ZGXBu/pOeHt11f6okCHAQQAQoABgUCUg4lTAAKCRCn +PgBVVY+43YfrD/0YcXbGFjYRdD8Fdi7IvC3TbkxFba5Ik0dVo64BzGoQbxh6mUcN +wrLtHv3V1Puu4rUccxgf2muUoUUIRnVQaHuDTTURZgHXiA8c5qS+HTB6VG4OpPjE +jVMY+TfbEUSMoENGyECXNjk6dFkJJX0U5hzJkVnKRIQxqgpbWjsqi3VLxpdhpOwa +4DrrnJjzeVfuyYkds8oNeWg1dKMHYw1nNo9nt99w7dhhMsfSlB4mqzY9VAojcFnm +RvakC9Y+KAJOb7eciTWCr8rR/IX+QijWTvJMJCH6VOopvlDyqhZRq4qNMCUjd8tM +nQxMeRawu21DUNqjkCfb9XRorRAStiusCG/O2sDOPAx9NCMXQ2BXrPH4+O15P0bC +uPx12V92vtejJg2cswyFf9qdYzEWqmL230NnToChkXEFL1ehMYIwBTkkOBl8xss0 +Q6jfF1LMIHGl4TX7CHgDBhHpKZpr/2tg0KvO9CDiTZt/BZRCNzAIPDvY+apcntC+ +xpsT86g50pTBHKHEM7UApoexH8fGWiOvUgGFW60hl+9byqoRshzlBNaDkyDy5EHL +7iphIjUqbYdft6JovPuw91yIGiXPzSqxvrlwycjJw3XyLIY6GRDxzeFbRIY9ZNKG +4WfZEeIxEhOhFjK6OJ1Co2On3rR4j9VZdmeCLhcQ4vCSfHjckRSvCfiMPokCHAQQ +AQoABgUCUhDOrAAKCRBOcWDtSsjuHVl2EACl4ZDDTrS+LXNjSGUY1tArHlzPwvfy +5gqCy/ChFSkaeUqpYLGZG+Sr5uLYe7qvoMbbmR3rOtVUq2aqiXOw31w7JkRhvWmN +0dWChrdAPcIprDhyrTH7xyBp6+YHbTWAwqJE+wBzLM+T6EvsLfYQjpSzVeETRGZs +y7huXbIgEe4aPPwgXdu5c+jv4yJcPnqtkdhR3zTUqoN2dYKXmCx+UPNGEmzkzdEA +r4cXXzJR9hDFnpd5x9iewr7VlGE3+SwYuDxTU57BPl5mVT2CeXrA6ofJ7FmYyo30 +bPAe9w6plldVBCOGCk/grMhr2BITBf6HqZxlMw64p+cQswnByo+0FgBnwA42i5XC +OC5pYu3d+C3F2pgbw6rDaRt51y9y2mudsbX7aR7m1VFkUFEqsvc8JACsre4vBLjL +6fbBZdcV1WQqnr5Q3kT2z8kcrRXzKSEOMXmQvDoMPFndsZ8nIGFyP2fJ5iQC3/MY +hfHeYnsL9jg/m26zenX7qrLft7qAfzRtR7kVf4hr7EM4gSWgqQLZaWUzLNFof5HI +kCg8KhF7ltaDGzpCowILiawdl6Pgfp7LQtrQXX/ZUfGD8MPZLeUVpf2koB35Dkzy +WHMRdFXxW7MBz6nL6U7eqNWBgeve89jM7A4eWnxqNKuTwSy6xFdCQvIz9+m1nTq5 +7qUD9cmSsj3S4IkCHAQQAQoABgUCUhKLRAAKCRAgZMU2QcJeXfi3D/4sLzyTD+q6 +guQMVcn15R3vPjaHcL+/1o5a6qRge8vG4Ar8qBBjfZPdSv/YDj0a+arYKW0HhmTQ +vcheSky+cx8FvWKcxZoPdzcQUzjfUipLxMD0ripvlqkZ92IpejTpPMuUyzQJedzh ++4/v4eNcK43G9tXSX3gV6toFBLmkW3xT9VU9JpHMFz5mkdIDKrmUNHIQf7jQXLZQ +kxT27F4HgiZCLgOl8m9/Bn4o34mMahw0MuPdGmmjcpeNh9MyQFZkhR371mrczUp0 +0tx0tWEAMSfuZ714Y3tMOqBQ9KlaAFdULQXD9ym7htl0iDFvnBWQ78ghY5c2GpHs +Ln9s1P/JfnFPRcPl7qzhmbMrDKdSUjHTEPb8y1dTZLvMxSBTJGo9fo6vG67FnhYO +oVsUXQJoiiJLNLjbQkzBIbeU6exqnZkJPfQnQc9bpVtIAr9uqqD5IbTdU2dTnkqt +VESQc6BrYV/klA+ZkGCVz0SoER2JpN5E1RSlAgEnZ7pufRO2UfdqaUKtbmhXOZ8g +OdpDcrhwc9/vbs/tpbnNX0311GTUWUGGzWejUva+KT82TlIjWr/heiLMhvlibtTc +2RanmZs7fBGROUSlhbO/fj/wEvUZrFEGrohHWZ18OJsNlFpCAgEnbxjMxtedSI7H ++Sc8klqr8q2DvhorB178+sVxi9dxH1nTxYkCHAQQAQIABgUCUt4MVQAKCRB1l3ip +o2tJTzA5D/46J4pZqDzq/Fu2gr021DxIR9MzwpMxyDUpDsP1t5Mi/B8zzY/FekgO +Lwqevi0BVk+uaMLJrv6akUueQryGbpR1xQoQvpWcDrvRg4MYiCq/lRpX8FoStBkf +b/ACvxnpb0VvGG2+5z9JTX1ORVEkd83XPuISu9zHAZjKkPsWOwnYIGOK6z1EH4cq +A7TECQTY8QHbyLArhkaI64UyLaia7reHU5Ynz0vXfQy3aVA5kt5qZOC0COayPa+1 +QOjGMetWtPbG/mFAMa9GRPy3Vb5Uvf+tLEUXnUU6gE9x1+pII2mig+JOSsx6PP3b +P19wpbJ/+fybZ9lsSHv/MQ4hQTiDC1OutsZwwyxaz/U2oKEuFb36DyH1AKSWBh5I +hPTZzbJEBf4YqTM3QRikfDAZwXieOH7eEmYKh4s2sIv/F/96+uuyRq2Zb7Y7PDec +M3rcpjymj1STAENQWM4aKT6gY+57hJA1j8dGQhZ6fsUb88etj7y/VW2It3yK9Wv/ +iRUi9BfZIz5N1+ioZ/MwaBUkUNr/k5zqx2VZM2ggogDUDvmGNTZmpzsTmV8tYDZO +7XGVnPkKuoTE8b50ckXX1qY450xE3g1U61oiXOXbQKxxoG2LHBRBSAaRYHjObRWM +PaKxBeve7nyvuICraiZLJf4KOcEEubqCHQGhkQJLHm/0F+TFL4Lsr4kCHAQQAQIA +BgUCUzgqvgAKCRCPDnwrRSLjhxKKD/oChpBNUcvxog2QgeEBj8Q27KzHUNqQTv7J +fZvkBwHYKIFFU6gG3mjb/dG5Bt5NuB3MCKdiYUixB/6Ic/Vezios34ozJZBog5tG +AY5Fq68TOb+H8djbmPLoUukAzkdMvjJ0zvl5uAu3Eda33P7GeWB+lOn0nqitAY7R +ozuBEqNGmnmAbpe1RX0pklYgb9Phhp15hnag6BmHu3p1pT9xFWHXM553z9u3yJ2n +HbNA+2nsV06G7mKawnRNcTMWyf0QSSmQxJTHh4B3uzk0cbr7dMF6fOPWtQCKDmh+ +H4v94lgV56xZwCcYejgRNhOTi0vUcJGYl5UbobhEpNTblaH3v9OvwfQH57C5hqaQ +D3oMvWH8SdHIwaXrCuouQOS1YQPX4GNScWreDa4zcf1I4i9/0d56bslUQd2p1fGn +bBKLKCJc8foM6tbUMqs6cr5aZrpoUC1xawrCbieOJKAIIs+TJlKBK+GBS/ovRRAN +phBUeFED4HlkKpMa5vYO35wkLvJB0osOzpXVYUD1KOew/hKdvaNz4EaMq/QsTpnZ +GCXwjNQLmpEWl2BeXVm8pE5IR4o0mmjN0le7Y/f3uk20KAZ0vmpNucyuDgG7Bs3r +gmaZAU1LigsvhYJeKJwxjWCJLUHk003xzjs3ZlDyfrAYekLzEzZnPGiRU8g/r7/S +Wq+mRaPTtIkCHAQQAQIABgUCU/0IpQAKCRCXupznYaCWO5/ZD/4qmgCO3ljneEkK +0FgiKNN8elbckO1a8D14hsztE//M5sbgaEpP3ldxPknSR6YMD18uXw4JIVkmsPEB ++sQgFSX7Hw8pk488InvZmnrA+ebk4KLKiFqfEdKAyXFaLWOFrv1lSwQ0h0QMwL7O +WmqUkCEKwXw/IzuH/Rev1PvlXoj9eEwd3iC9vzEacaOqyBgO63EATfihlDm7zEMJ +0qSvDsh5zkFMA/lbrJI2szxi7eKjXM4bJBGdcSxwXRNJH6vW/vv+8nc/C3BmZ5Iq +IXi/GLQxAhF+70tGUmMN0V8/FPTyMM2qKzViY03vjFgXiXj0Alo7/v/dNgHeXP5f +i6essSkg0CLSTBMmJ7w7BQqlWdwlBRJMSXZX3m9Xigdwxyw197E4nFAZ2SfOernb ++9B6FutuD5qigEgYtoWjsTTjuzs3p9wnOOsDDIG8e234+7kQUQvFDnWPRKUPH5UH +aYZ+MBMzcFqC/jQ441V7vgEOjlGGn/KT5lDRJg6VeH9DhBYkOPQ/h2VT0nBCbiUQ +8viSlkieoqx9Wxx9On28AWsUar2pg6w8BpdDQSd+sY09rErR5TqmEmIRZn8HHtKO +GPzOq4O4g3Zj1AZBKig7GVfN6nGPiY2YvdasUzwZEAt6ZkVbmgD14hM752HfBGwb +aE7k/imHDiGI64clbg+SWhnuHWlcJYkCHAQQAQIABgUCVAYznwAKCRD200lbsK6a +AgWGEACb6JocKQjSyUq7XXEHpwhrXj00d/DFp+TVE6DGnGgAF7LeR/iFVBdQWSil +Ug9ooAK94YJUdSfg5/3w1qdfTiOGp5bp8QwbtYvxAVjcyGHHoRsBI+WuvRhTQ3OQ +fJjRyLLERn8WOrdYOuKxj7LaKDFXgvKxDsjTOYtLHXQ6nyDW50mrBl+WXiTnt1eG +KVxmVrNXAg2guoLoQdVKlYXkx+nOPd/P7Hy+sKND30eP4XO7MiqwV3uQvDqdqdqC +Lcc0XPa58yWg0AtO03RGw3zynEJMWfZxampOJ9XfRc+B/Ii0JlvLHNxCng2g4tK5 +Zt6bj2hvItq4IokSAVp3S7i+M7lELlWPM46DNfY6Jm2viMThF/jFrl5+1oGLl77B +pYaQ0uwvhuIJS9yEydIirZkx463A0Tpk5ZGTW/BxoyDUMqwaVE6q+0ndvDleN3Hf +bLcIiY4XuRd5kxM+nv25PpCAc+DDJZHtKUsr5atmIFx4ZuK9ki4TxytOMenV7a9k +cg5Gw5bZzPlrrk8p2PM4x6EwlsYNwdtchFTuhXyibXqGTnlLPMyJ2StaSypi8KVP +VDyIXUxqNiBOrUx10DVUhQDBoZxGfMNaYoLQsU5acYLzn7fPGXU7hWI/LcqtPfHt +sPWYrZ9OX9OurxNaY3dPY9I1yGG5ZdVOwwxjpRqM0ZJHlpkBo4kCHAQQAQIABgUC +VAtLbgAKCRABUJ1cq0r9P0AiD/42TtGLEqL7JfTmCBrOFL4Wb6esKf9Z2x4K5a5f +QhWOG3I8llwjGf8XmUDYBRRGOa+X7d4TkBnohi3R4RnDOuDHvvIDQswOi+p7dMmH +x2wTlYGMCtt0TXRhYStcteQUsqp0SGi5HQPlKnQWAA9C8W3c6HuH/u7PN1rAFljf +q96jgQ3xD8eDkixOS0bET0LFlfEnZ/2GLwN+qV20zTpOpXvp19gX2OPvvlWsZUCo +MWmz7J4T3l90ZhBlp0TsuhzpO4AtnFN3tub/KAoxLzqk99dYBU0cN3Hcd53M7qnJ +A6k6lDBcPU3TxaikuaKpewbIRS4pSHUMFoT/6553cccbie4CcFTLp3UWGHtS+6i8 +d6fXyq08J15f5da6AHPrTjFT9CQA08CgXrGPWaeDj9ocX0zVGOFPukXJfB7lUZeW +fIg5iYFaMUJAQfeuWIAvRXvMDgwXd3ioFOZWDE+MYcL7UuZGuXN0jZknGq7EpSRb +QsT3G3SdIw819GgSmNmUazBQJtop/n+fI5HkWgYEHbCpz/YWsuBtWoW80tUXUD9o +unBTObE3NVBkhDUK8JzpWXofW6plarYBYIFYPapQZHKm0TIwZhi8uTBgBZ+MnlAk +sMBXAsrxI36GuOFTF3U3gtBz1aZhCROT/YNInKBBpP/O67rtNyaX7Q+tQGz1JIwN +vMepYIkCHAQQAQgABgUCUt7XvAAKCRDaSVj2EeFJ6cguEACdxICxgHkis29e84Ls +vBW4TQINoDHSOzBa+GCeHv5vketNOJLd5oqfoYoyPY2E49oXSXm+q4BR1gsC7ekf +xrifzc0h1dX0MoNPpENaW4fwEVnoQnleunu++jUmWGzHq/sZBth9Ssx0XH3Nwl+b +PS235w2AThmEtNW0nqTTtRl6lfduSaSFNpBQCaDTSTTgf7YaiP4f1EOs2IKAae4u +qOIlhltbsdRvCvWg7frcVUNs5hPwhucdsovVJqhdMxzlaS9aD8XDQp+qH/9GXobH +HQ9pHWaOpNz3l9lNzVKVpmlLhaknPNaqufP/PpTPY2ynuSzcAf/VAscIxaSyRoqp +0PBjRtfhlyjKkrgSt/e/GbLnh8o6NoVrvK/JI9xQhiczWFyReThDLnF3nTL0K5n+ +L4J7KYhdNBGqa3YDfMfMQvsSCE7fyCcTVa06dPVgwK6qHHQQ0EfrON9PM+L6Z0R7 +ALaVuYyyVS+3JqPS1reY8aET+7bWuKhfkWKnkY77X9aBNuU9/SThx0XUGcc64s7T ++SF6Z9Or49e0eynBOoco5cR/SOshI0nuYsl4/AXNEr4Z5c1nFoTPETYe9BmKKdbV +hRrIqFG6uFEg//wOSHZujsqX31qImn+jmgciJRSgX7bZZ/03sjGbGpLFlGUebe7/ +u9WOBSUqTasdHw8Cx6eaxUK2RIkCHAQQAQgABgUCUuT5pQAKCRCCQpTNAhfo2IQk +D/0WcUtt+pkUr82P7O9dMwGddFLSySM98rY/tHiX/RFljUB2dMl8JlYKa9JoZGbo +zqltaoQSnHLRWtHpOL0AtljDPLFxq7b2++B9msuW1uO8T9e6uRfchjvXJOHUMTYm +akaSpoU1aYdu4b1goTfmPuSKWS5rAS1bjSjLKtjbeRUn0jGwrfASFRpC2LiH/QG4 +mRQl+0nEfbXSwyf4NMBmEOlTLMebh5p73Pr8h1wtw3RR39NPGfTjZEFkRCliNKuC +Dk84ZkoH9DVBgVlk59LGNfSGS3jkz5UQChtZmBTMsL96kGqfmo9CbgkUkYp1StJA +AkwAen1zHDB7OPsI+DXTzDkrFHFsxjRibCWt3mfRNhAHWEPJ2xoXsUMOB6CtArFg +7xleZqh4flrGxDvqCrue1eBojpWWI8UeSiWik95aJH1bIcLFwx0iX+ZFGtVlwg9Q +AqZrUTG/C7dpH0cnd80x3ksSkEgPzqbKjRTxdZrBu0zCrdDvs9K1A8Vhut6XTPhk +69bhzf8W3vPMF4K2lB2gRzaw7Otwnq7zUFu0Yy/QJuKiuNAD7Nn75OBkv+HQcENQ +5HvKlkb90cehGBkopMV63d8C+6Hkvv3MkvNRW6Oyy1OqrCdzeU699Ee09enBlcHa +nXk9bdfUDB3Q1egfG56nKdzj+22/IRvO92pLjGO3QtMeUokCHAQQAQgABgUCUuZv +6AAKCRD7hjJRqG+eR8zSEADHWuAZjcfnd2ND0DpAySHHz5WeJ1ojgWaJNoVv9tRV +m/CUz721P2aTKP+EOfODO9IUk0QbByuZgWmQqw7mTpeuwrxWhJKvZaWdK1yBlWaw +uovBcM+ztBMmMc0A87QjNS5IVh3Z0+SOoHBwoNxd7uSZlRGe7a/2cDNbaWhyb2Zh +WuaDFGjWHGgpxAh28HjhImt0PqxYCvSQ6Z/JLuH3H3Dkvp/2okEv/iTqQ2p8PCj9 +NsfwPKq+GJe+Y2Y24K6yMROb+UlRRIfv/Sxa+9x7UHq9d/1UgynN5Cw6i8gYuw5y +XusxxGKekxJotxMLIEhp7Z8Nb0JQS70o6BDcSI9kduQnWPRQMaGceo607HyKxZ28 +Koah/o14UwN/BRfHpP0hY7mx5cHZgAp0LtXilrTaLyGHrUb3o0IXkWlUuXMMHI8f +H6Q0gvr1yiRsE4xLvauC3/NETcDG5b27ma1qfyPuzxixZmX57fAx7aONrEtwyObR +ze/vB+cwh7enQPlX+xia4PUSViTUV/Pb9KULjr6NYD6ha2TWDzGAV30D8//1PJMd +o1cciZdtVWxqHQ4kFBOzB8PRG3jHZy5ZLCzD/WZvbItn5p3NywPpDFw9Zm9zs0IK +XpKSE1ctLnXUc4jRrFooaFrn3dh6Q51+arXkziz8X5uFHOqwYtioJmJWkYlEztzH +x4kCHAQQAQgABgUCVAQXNQAKCRDUFq0VrGtD/t69D/49iVte6ktC0ZYypf6z5dzT +aXr+p8OYQWfj7iHpqoAFzWYAc4UYl8CTdZtZPXx1fzki0ls0i0ffKooeQ5Td5joQ +0Zpglctmy5iFbVL34Rqr01Vgm5zPyXzAP4QUkNNOcaIlXJt1IuN3OP1RKY1A540O ++8UpkTR6CUAaHjynDBo5cW8EDqhWw3HgZ7+BUkEmE/SAB5EnDZJ3bMT6d2gpEKR1 +Np2D/3bQGY2SdU/YM/lLrIDUOSOwMfn5AU/QsSvOI6A2xtdqY7v2ym2Gpd+TP9sY +dlBoG7d68DQkySNOoFhiSxmCXQRwF/ee40cpR7/3EInRXCr8l/37Ua7Ce4yqeYE+ +vZ9LWlIVqDNlql1yNgGZSPUxDQUPHEIILkxWDmRWqUOt/OOMPw9jXnA6JeLRrlMj +CGPWVWr5XwN25JMydYQwDKwpZilkqicEUUzkclMbUCWuritZ7QW/Jo1PUtXjJOlq +4QcfJAOcrYgbQFHzgRVnrDS7k+nB81hxuZtWXxotL/RvAgxIPnkG0Gio7o5yTV+s +Fx4n4RWQMjHW0bCkF2MYQ+6F50UYR33lCvnf8EA8l9CpF7IUaWW3Ygf9ejBFa5Nr +XtEaC3EFzzjrFOpdHhGATP5DEYgJAlBijLqntoFUV054dOpecFpdBYR43pwbDMg8 +C73jaMLtY9JBa50yDK7pQIkCHAQQAQgABgUCVAYndwAKCRDnYATFzvDJTJUFD/9o +KS5D/EnjrQl85Wm4MNIMKqI8qt+PTcmKOUsJD1lide9QE27u7C/Gt6JblvyfgiEn +m27GUqbORJUivMGYyIQKnbUZswsUCEBmfjFsN99Nxrz/EG1xUSPNQMwQCKx41rwQ +wczU/7reJA/xxhdooovaMc+QJ8s1GBOEcLjxbnhovRcniYroOmM6KyufP6x3s3S3 +B/pYkLHay3coNDcU2fGSIr6I+B1wXlufpGchI4eIO4AMpZ+IhhVGUBgrzIyIFOKt +51reLbJ/gr06Mb915erLfQvoKn+UZqxyP7mbjyxS6Cbo6qq5PIF49bzMWtD7y3qt +vQ6sIk3GxB9aRXV4BDMmuI0uGJWVRWHCGsSIGzlfaPtLbjCPxvJyX0DTwYm2izNS +0TFU9UT5o6nWe6ihKWfpG8LtmsfIVfvBY88+OvITk/w/XYFlxxM/I+M6sqRQZfaA +Co7i4IWroBtOJ+NoR6+VqfahWdSSeDpwgqxcBZ0mT5tzBd90HnrbxUIMACRBPy5P +0/KjbrK58wPalg+cZliZVdKEFBIfI2eD/2xtJQoD8zi6ihpxqw5a4njgwOimGbUQ +G0UNnA3kHU3Su713io2RkwFhpboV6jm/0sGU7GlFe/6oEJtpOIIQ4ubz26rYwgOU +l9Lk2PuEEfUORbnBbEyC4HEMXp5yxfGFEYGx0DZ/O4kCHAQQAQgABgUCVAoDJgAK +CRBVQpft+cylhe4rEAC0iuUbdASGTF8wnWzBbwzOfdLoJev/+D/WDQw1dsR6JDlD +j7/aFS/ZEwYiY3nOzrzKA2GxIvlS5HZkKr+WjkYIuDL3Qn5YtzJGQWYlbBb0YyNK +IJHe0qya4Kui+zZSSo/KIacFk5xwgyaBgkkjWVP15pUAz4dT4gBzboGGqqM58HGR +hROVpI0QGceRJ/ZpgcMqjCz8Escb5KOaTgc9E/84Io1d+Zv6irWj/8WeeuLsrej5 +jc3bLVu7uUNZbBMhgQD1ae4xBKyt3MPb3EEmecaHP4Haq1BmKpeDZxfC/jF8muaO +qs/9vXD+E4x4JHSjyGLbpKceLw1qojlgKRiItbhD2WD8tjKLGQ3KocUW/XqCgMzT +pSwLjtGeucqa6dMXA3nWxe2qdgV/VvHGbzd90oOhVZjP5DEAlCyt9JOn4gbWnXDK +sKUhxns5bNBtz9zE/VEWF31zOenpuiQ6lfFm36lntS0BK9VlOmCInXLi+WqRRWXd +wRjSCKTLw3qqIdzz/TNR5aKeV4RFxmqZXxEEgqzJ4gfAXRiJ5I1FKSSSIoS6ZpZH +scFaYGg7X24vo3uhctrHWBMzAiuZElYRsX+agX7cnDw/V8K2Nzp2ZNZGPo7C2Lj7 +HQkIF1GBhmeOYJtS0rUmKU98HEsDG6sAAwYp0g/2Zw78frAblxr0l1AaHWOBu4kC +HAQQAQoABgUCVASv3QAKCRB8/NjNJXch6dYUD/9/3OCXn/wTY4vOf39fXu3KZWPq +jBOXPcqzBPbbvPBMnYAKAz9BJcHZYweIuDw3XS+h5L4dhCiEXdpy8ujahyo5ZCys +7d91eP8/YKb45H1kPJp4/RRdzJmUqz0GCgi8gs7rT5CMz/caQlGrmRQtsUXXkqBR +HvFgSDlG2IPOPk4m1RdXc2/yaP4+FiYJkhIGQBsOJc4JZNZCIiDNE2neXCbOdXGz +jPvhFEPeMgSUGbXnMa0c0RdSJBYVO/tLQY31tE9iTRi6FG+N9KC8twhMfMSapULV +8sIakjyUnrmiqCbUgcqgMPsCPAWPFkhW+4LReiSC+Dxf5vk8teR/5dFzcbUp/qUK +A6LO1LlD+OnqlBzUe8VclIRyADmEJ3OFr1w2pTRd1j3eQ5Toha5WPQQHha1C8P1G +hPB93y56VCOEopjvCA1SYxcteT1YNm1wMOkK7152PIE3OlXOzPPocKVzMhRpkM9x +vtm6Q7dbsYGpC6oXUAfrPHab9Pk0X+rnurk7kb9LIT9N/+QngmQ0cVmyNXHPphxy +QKtqyL4MEzJUBqjE6h2MlQePWdMLH2ZL1b1l1tXSKlIrCL+D7C5AiwrheI/6m8K6 +2fh8NqnTOxFlns6AxPMYGoMBac/HlQSTwG7BEPjSNFuZYXtUMUf5fsGu1N/nAjVQ +K0vENybQXSfSsFqwW4kCIgQQAQoADAUCVA4dngWDA8JnAAAKCRDM0u2U0hc56Xfj +D/9BfB7jOJld3wTlRXbPPVYfxx+g34o6NU3RFgzfvjevglrEYajSU6eoCDVk+hl+ +DBcfqf0O2TgDsl9IgJ0SWi7bNKyawDiRIU4ws9/MdgIpLoMkaWTx/D/4X4Qphk9W +4MAXzt02nExPmxZoE3csQPaJBXc/PPsRfiANM0UK/4kN271FIgmgHMEDnTn6Tntk +s3UmlA88TSphKwIBQcqo9d+aqWij3uCrWL3lcPgq9jfl4O0h33oZTe34B/YL/QNI +fr3D8flKLu/lGPRNJ0+hYyhZ+8LczBInf4H8VYy69KL5ecoL9YVi5zQctSePwpEj +VQKb2fiG8+z6dmxuAKD56/u3h1vaC14A/qzlQqYwVjLd/oI0NVrljHH4oLIK3NPQ +v4UDGhAfmxnrQ9Y7037JbhkKBzwDUhYjUiZrxQJz4dQYMdytNqy5rqRKpe+MhaFT +e96A42d7SvfsQ3BcWAYmGuPrG0pWxUftZ6a++UuxIJb1OspQXjQVBAxMRPVmehzB +pc8dXevGijs7J3NSsxUl5Wr5SV/TJBiIs/QT+AVY3dp9fFjJA+2k68Ed7q7/QQvg +GRmcNIUe61eRO5ugVTI0iPRK3ksKywphHWcGRRE/luwgEGJwZAXfx7qKrlhLNEuy +RO57fnKDRZYHFNVUnXTsflYam6AI/AzzhA5XjH934IqqjIkCHAQQAQIABgUCVMoc +ZgAKCRCfuSYnJLF9KYbvEAC2qxFQlsK822kTicbtoix8n7t285g879Yc4wHf0/EC +u/mDmzecEwDtX2m+Z/+rdp1QEFgcx34vHZCLoiMO1l7KW7ZGHTyTixjAVxvBTXr+ +baoZmufycDqmrhOIpuZGCIbbPsxQdrqjyltymtHmTZze80Oh3obYurQWkJO6ppzh +gj34i2WXW02YN3K6lcwBjMiqmJwbJLr3m1LpifcRk7SFYC0jejMN6cNLsKmmL9j2 +ovkqWu/c7ah2l+iSQqDfKX4qyDauTZaVo3glOPDiMJxa0F9rARLReTtGub3nceDH +3uNpWLNU0fooeujpn66/X3u+LD2V2Xs8qX7FBzczzaNvAw6JEGS2oj7i3MuYRPrO +9Blfk2J6bs6UOiDx6hDMl26ASXbUQOYg0s0O45fcvi/3i36mXdEtqYBhJ+eDgNP2 +t5UKT4326jjl3X0SBCT+ELyUqyKEReRuI/WLRAARJmQyydZwzeQB407XLRgzXZdh +JQmhUuHiRIQr6hEhQsFAyD03NlZexR/5rTglKbDJB/VZDDTkd925rpMYomg+KM3Q +emWh/apMbL8KawsFVVR4XZ74XfYZ71qCOhO3aNhF1qAXm2YmO6bbg6aEqrEnNraJ +4D1zdH0z+j4oZo+V278vIz2zM00RPtEPmFdpXLlck6y77jVnF61zTje/A33L7IpL +PIkCHAQQAQgABgUCVBDo+gAKCRC7IKwg4LfWvq5fEACKqsBGrzJ5mrtdwbxEfvU6 +MHMRu5ztDZS5ngW7C7+bkWx4TNg3ofbudjFh6NGUrtwPyQRpaVGCDgSB64PKB/nJ +MDIp4wTFkcDsk8FRxce2ar/5IIdokvEGXGJx2AO6i/ivNLLJs2q/Ym+reqAaR88J +9iqMGV3iiWF7sstKjCvu+94AAmrsc6EbPxEWPjEZh8vB0IJt/4130vTTgsuoUG29 +yeuMjuYggEcAtPwiicBspLt6Wl5ROgHZnpFPWpCB9lxn5BB9oD4DEniJ40KLt0YY +VG0MOE5oTmuV/NR9kuOqEaAERkOIDNO7eQKzwHH9bEIq1gH+zUtC4W4/A8x4rmKJ +SgoFdy5pcrUTXXsu3bpueejBwJ+iWgv050NneWf7o/lvl+BPVK5IrQpgBhf+bc/l +OngXbQNWhVkPMN06yBaffU0mVpZ2vobpAb135J2Hl0ueS8aGE/kMopleLhjK0L7V +YcnifDjyNWHkEJuNYGjH1u9NFxR6X+T6D93xDr8jw/tHE1xxViDDoBCdvKh+J/5A +V7kjrYqiTCGBxmFnHP/v8klwaBo1YbpiBLrtKmmJEDzPrYUgXdgf2+siH7zZCK6d +Mz68WdeKrQriki3KNeNcNe8Zx9vNtoFkSUdhlKipf+vXJ6Ogw6fs+OoWtny4jqrg +VUidgUD7driEqPpesW1+qYkCHAQQAQoABgUCVApymwAKCRCII3pqU6sbLlw0D/4m +L9ZRqkxAAQxbbqtQQ7PzxN4n/doRR/k+x1dKyHllcMbx7zI3skLVZq8MBNc/beuu +zZDrb1zpiaWppCls2AYVMuhhF+YySxMdNua9ud+AYcRUOPPjkrgV69Aa8AZGc0DY +oSXe8CVAlGv6xltMqQ40ryXrigblHrplLd5/1reyUvwGMg7CyH7kPRUlBMYB7INv +ZJeoQ7ahFf3FP/yFTR6N1jFhYUU37CTGdnGd3BekqMETPsYvBc0ct+ZXcABHbTF7 +OtUbHNbwjySCmw4lAdG7jX0f6WjqPEEdb5RHD6mYYPcdV19vKvbyek6MivuAbH7b +fi9wmNVnZvKQ8VwuIqNwfcOE6Vj6DD2v23Je97dN9s2Xm9Tn/Fck1EOlc/WsJXcL +a3UPcrNQt9koi+8nwEuSUAKkjV7Et3Gitmh1HbX5DmUNUriLEahEgvKWsr7np2Wc +L6XQOXkkS0/anA+xwLnsKFgzYIoyDEwbVJ8TVCg9Q0Or6qhB+Tlnz67HLWf6KbNF +RnuTFGOlatWTr9hZITRNPMbyfbcv3PGGBd7Pe4+DRXZj+0klWMIYoyVexs+LYZPQ +porBwiFaTnKPsuCjApmcVzoIfioWsHLPLOseoCgXkHgbKr3lCP4B9tAiwwphEQBz +fCjXhGpgJHjpIALuasm/uRtdTpxPT5Hkw1Xwdckpx4kBnAQQAQgABgUCTGSyiAAK +CRAiOuBVvZThVN/CDACqYplDW4ejVCm8lEESM2AYIXL2aUsx7gs7o73vV+JbSHo0 +lUYiP81l6rEiIMzFTBePY/EsMjrkk07wUv741gSDU1P/SCZHRl8nztbW7dHgrTk4 +v7mhBqG3UPcXtb3nVURsMiZMNh0wzdDt001w4g9KOnCWG27PAGvYhafzuqR5Y1XK +zJQKRByMNUjBnDPGxPzvwgAhP24jxRhl+7aD/1saLS2aY0xY2rkk4ODWewZmJkBa +UjZMJT6Va4JjfKoGnnGoLHz6sK6h6zmH+7JUStbXaofUofrxp0nFme6S3w3z7Rnq +K9q0i7n6pq2lFPqPKY2ll1YYqOMeJWK+W1XJHJiDu+/q52sdXSv2+gmwaxakUtwO +QLPl6lgfVpj6vD9Kagv08wYWQ7VfE9xszvgrLxLN3wnR4spDSfzW5L9ORgk7Ew4O +WW6oPxcIOgcPxWBBe4PXyAiFWFPZ3HcK98c+ImjwVNqZ9D++bqRzxkasfwa67LWQ +FRzkXFsgF0mfzEcAHm+JAhwEEAECAAYFAkxeoCAACgkQHnWacmqf3XQHuBAAlUSa +jdJ56zAF3NKmlY45ZcoSLodwsJDgLhIdqZEowZ+UatPqfFNVYjUyjRKejX2EIdAp +cYMTRS0K6hbJj5gpuKOM0096XJ0z22ZdL/Q2EyMuIYO7CAlmPs438NamMqMVqd1W +Cvky7ileidxghyrCQP/4lugBRvfk1567qVqsZre78VQrWddyr7rBsP+oDJIXrhFN +RdQU8xbQrLSueBsghAG4wmznsXFR60xtA0SvsRipdGeY+aVEBLeX5gHilTv/EWFM +6JDHqu7YlW7amm463MbnFfhqIHARWCaUc2wLbq0ZsAf6AcJsyGfoPtRss5xj0XGj +1dCftIjI98LlrV9pALcD34kHpwAKOJ05dNVUl6UBOmcb3Sx6aZbTETI8meSowyQW +nKC85h+4k0FNE5gsoTSvc1ARiWvtXjewVf+9A8Ru/QckMjz9bQ27y3JAXLDWwLiO +WWO5PP03AI6Itz3gWcW5/xEsiwfV+CMowVgjizLFc/czedGJ1kPeqmmyEgc3z/aR +3hA8ai2uLfszWuS+kYnTCRfz5EhxobhHco6uta8kUP0u4ZMnCQDkt2G6XoVrSKOM +K+6e6BgFzM/urO6B2jA7yoUXk0BBCcu7LPiW8Kd3Y+cZF7tKQxsKa/LNUFMyTtN3 +QTCUUx/EYFBcJ7hlRPPLJjzLVqgzceYRL1zjeOqJAhwEEAECAAYFAlMvARQACgkQ +QzAWmVLVVtsdDRAAhmMUnk0dXQg7LffUNacroqVgEc4MfHl4VaWKxtdJhFEH/+6r +RZ44yYeFdj666x3fHGsQlRPk6yUK719SuGeO37VtqIqpQSHFSHyZnlZGiYBKGQVx +q9Fb+pAsO+aj33RzZYok6Zlo5v2pLkJHKK6GT+orHtx7eC7sxISU9deb9fcYi2Eh +zwL4GOLMHDR5tGS801k7YzjSvnBiP59zKtl9j4c/j3lf1CsvtP26PyUQP91Ykkv0 +IDploQcb9I1OKpJJHxPvcGO7rpH4TbyIk/ACuUT2+wr69YNsyGzmvQluHlrVSd/Z +cMxWM2xF9F4ey/ZgYxAs6zY/IMz8c319g1BuW6EWhtlVLrxBmCX9P0uDjIXFnSSM +sCS9C7Yns83RAAuGn32UWF77VukO+DMc6I4ePqDVhwcIVxOqtN8JiUPrUzYHU3DG +686a1JwKPg4mxtJcGrc+9fI2eUKVeuJNdoL/R1A6SEKxrjYIb3mPwf4/zpw3lqNb +TEHQFZy2gAVLnIC6188OuI6TePbmBmPZ6oiGDt2295ccLmOits/XnHbwlr38aAJf +644AW2iF+7PTOWqD2JfKmmunmodHSFJWGsH9j6/mW7Da+pq/8P461lRM1R6r5Hbl +jVEer9kUOs4++/pO0RZG1w/6//yi2HI4dSBazEyDMYOQWYXci+GcDJvsiv6JAhwE +EgEKAAYFAkp5xecACgkQ9TaqcBEdVxZWcRAAvUX5XiTSKq3PWwUpCw79JAiGNix3 +Nosso3MnfmU+j2GWUf4xB3PLIPPjIUOnXSSHY0NNYGkEhKz6hsTQhXt2AnXlizpp +qkI71mj7+L7rinshNKGk3rNmT4hFHdET1SwlfuYobh5PxX3AZy8sC2asXgcfQFn/ +bHh3T1T3fmiBhqp0HklI3CbjrWpkfljsGgtkdPaEqLohLYf7wfgSV+0HPCkLSJjW +1wpeFKMcXzj+Jgy8Rb/wZXRKmxNN77jpiL5Srvy3MaddGTWG7WxJQEPgMVGG16+t +udgkHk6kFcWsdHXHEQ/AWjbwCFS3DSxIPMCXbIQaPKSwljsWpLIuxufzTkBIXngP +Ok2jQ9HDjVyDutq77TUbvLJ2hPOxULAqvn4FQh7Fx7P+6zV0x5o3WPLVzJIMgKqP +m+jr//yi/BaONKUDPSDteAiWuT2S14hZ2O2sZASIyq+7INCSLKQ4sUQsZth3JoD7 +CwNCuDR2eQmxUG3p3EcvmQCsXnDZ4cQk/+boZOdCTCw7n+jJHBgFqmNEQHu4mrzT +jsZeF5GT+9gc2MsNnPOTPLmAaVW0CwR0/Z1gPJkkB8WbHBV4JD7FqXqmBWcTnNtd +ekpgOumC4TL1zd+mT7fChlJBEr5G4IcUotKKCaimvWcSRg5JxXJkdpMrIQOPpdGt +Lt2a+EIJUlHajdy0Lkx1Y2FzIE51c3NiYXVtIDxsdWNhcy5udXNzYmF1bUB1bml2 +LW5hbmN5Mi5mcj6JAh8EMAEKAAkFAlLZRi4CHSAACgkQORS1MvTfvpmGKw/7BeXz +AlZTMsllEv3d24XXpl60ucHiqudOxzDE+3MwWsCihRrvau7I5Rp41lNKJl2JB7c1 +ksZOVV+WW1BsJ9mTUwAoAezbo5FX5+lsGIr8nAIwvDYhEUmhgpt8GqVQ+xxgCWp6 +UYcTL0bzld0edvCZB7afD0AYVJtUb3866tbjnm6ltq20cX66OKDiqOPE+XXQ4c4F +LFWZFE4tVCUfGNu6C/F1EiRMbleKn2r90KhKHMrV9SbID+Alqi8i9ZR4GVedTWtK +gtgAcqU2+PAGt97wCLtQJ5oGoP0qp7l7JbL9KHac4xRkhto6Z0/3QVkiNeh5Xv5D +8xMt5Vs49yHABIpRtR1cD4TtyE8ZJGVag/H0XXeTTJ8AFCn1Uo5/EH/Hl5RqjiBm +hyo2JRT02keoZpCHzQqXbzrysXMVDZL0RRUvY/l9+wR0usFdpafphqiwaY03Im69 ++He1jzuoOUzDxx/g+9pR0lLr9ZUsIsqeD4Lbn083B0tRNEJJ9hsSzbXaLdpbcJTp +C86HC0ZNshpRmDs0FP5GZ7Pxl1tHjTZh5ywc3gp7o+rSD8ok6TDr6ffbDDzOnAQm +rhmwb/SUCxeukpLPdVmC8ARsGsZUib/Wjvxb/HGEp9gNjv8VsdMGD0p3yE/0AOOZ +nC5dgRwFCKAyCxviEc/4sLxOwcuVfdn+atYMwca0MEx1Y2FzIE51c3NiYXVtIChY +TVBQL0phYmJlcikgPGx1Y2FzQG51c3NiYXVtLmZyPokBHAQQAQIABgUCSljGEQAK +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 +/xLoVArx4tV3IZpDcoO1SsOcVz8RH1MWGnIs/9vtVwDHqcbnV/ifOmGYF5yqeKEh +drhaZdFkvlxaB+1PUhBst0LpANYuqlTZf4UcqxKoQKD33AuYgymNXGKjkBOwUIz1 +hZpi/YxaKYC9zFI9BFUO0Lg/JlHAPVnzex0ofFIyfbOEsNAZLsMt5zaxEq0jcJHK +0GHRRXQ1KOFRMc+oi3aLcpSbf86UNYk+2aQk4GxE6gl1QbSKrrUr7gm+QVlFpSc8 +44FkxfjonHFtPVVn0R7LLt+6bkdgTLWcYJW50xH7jB+GkapZnppHQhT4XPyvTkAe +qUCSlVWDhWG+8DKOeyFgTeeSINc7jKVl+cfesHFFUxQuGbkHzzZLL8kH/zyoAePI +n6+wPE6jWRyT/m0XVILnkoYmKu52FCkD9K1QEv0er2yJAhwEEAEIAAYFAksbkREA +CgkQfFas/pR4l9hw1w/7BKfiHA3vfibaIpSNJesNjAmBtscnAfkqYUFz/epBZoKK +R9knAmPZCUfMLGFtXSwm51pORzrCEUVj72LGGmOjWAnzKDm1w49Ao8vmbR19K+DU +zpXcO9akHxsgSH/4HuBlEq5D7lajoQQXQhjnHWAAgwK7QQ1gyDVxngSeGeEmvihK +mEVApfgkqx7nXX+SKIuw56DAeZYxDZVYXq4ipQvNYOXa7182XPZhdDNtp4hjihZt +QF4fHTEfuPU9glmj2EYTzaFZFFqNHYMAR8l3vXAUiZ/9Ra9wMfiOpNsFqollldGA +N4vV02XDgDR09EX1duL7Mue32Dl4QlD+eI3ssyl+54RwHUXG8bUglFBGxil4KhzQ +jAm5LZ8S9DTUtOOgUDPytz+b0mn47Q0diG0p4/txlNGrYDVIeRsID6EN7fe0/GB0 +jeII3Lr84lHRpGXHpjLvwRSBceaRNYXIk8bxtskg6ZU/RRLoPm5uFvIyF2uEetS5 +SQ5ERePiItwIwgXKcWho7iK94fG7uEEoBW89tzK/uwIug+BnwmznSe31qBzxwcH1 +/7qGvv1sKGDWS2mEdMkSNt91UYTa9IuV5CE494rj/I5LhFKtL7GEqEA4hX9JOEU2 +oeWqPz6/gb76atYNLvWPZLhC9Qxp8JD+vQfRu1Os0H7XGQOKpPns1ZWSiC2epLCJ +AhwEEAEIAAYFAktkTfMACgkQ2SnymSvvCjP6uxAAmaC9M1m8L5BN5ZNFjKYbR7Vy +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 +gGBi6YUfeoKbfkt0bJxQchpAAozDTAuMVy8Tsm7kzcQ4jafF4EUlxKs+siLl4Mnp +V5Ioupsc58VSf6NXHHuJbShUiSCef7ZKFybbg3wBj64CrsoeocI6Zk/HOXPaFOKH +XFSEp293AbivO6Oxp+lMjQ2F14rONQeYo1sKZ7nK0duvDfRUN+bW4nKfcybdTg9S +pgZ3hnZM131YnHvnnL28GwTv2us1w89PuLJOJPhyHgki0U4epcso0js7g40OKNXr +0WEsu9Nav+QeHrBditN/JBTjEGgQHQam2ehQwsMwN033Bc1PHGYJ7XuhfT5QRSWR +2aQiEF86AE60Ikx1Y2FzIE51c3NiYXVtIDxsZWFkZXJAZGViaWFuLm9yZz6JAh8E +MAEKAAkFAlUwr3UCHSAACgkQORS1MvTfvpk2bw//VxAAcMNvO/fiIudWLWS8u8L1 +sQJQmwc7YlpeUb6m9HEA5QOKEk84SxA7CPBgtTvJ+z7dVlG6v0Pg7NwG3OtmIK/2 +IXB1W8qzhIVSEjhD5swQcTZqorW+f+S2w2gNt2Om+1Ps7CmQVdI2cOApGos3CCPg +nbs6W8si65WRZL0y/SqubtAC1efs2clCTnELUjDaHV5u7SbnDPoUuqnZvysvNNhd +HEMxCp+DKPvTZjU5kSAr9wn4r8mUjNH5Uf7hJciVgsa7AX9d3OInYS1bGh8YIEVc +VbQqK9rJwDKSGD5I0H7XRxBqy4BaRJLQQulXgEbNXUenKTdhUlq4ZNKqeqVvsZo7 +0ahV4QBQY4qhuQkc/IwpaQg6e/AoppcA/O3pIKo2JS3aeyWRafkmszuR8VG7VOEd +QKSVCrnt4t1jo+2Kz1l6OKXsJKR49J9cPLaMTDmMhwGJGW+8P2EhUFbC98bMN6De +StINp3MH+JiO8p4sI2wep4uB3ux9OyoGbQ4ql2ukEXQWIBSa7nmEEqH7a1BZPU5A +S/Nfdk+f3SrxrWuh/Zj8+0D7jfUa+88LHP/cKTSv+x1kr8N+X/UCu/I6MdNDSQSP +8Zm0EdublY9pGKvG9EtwSQQxJFCrQDbcFk4eJiz3tMKkt9lb51qKCRvlNBp/2qLf +PYmV3+NyszeFH0EkYIe0MEx1Y2FzIE51c3NiYXVtIDxsdWNhcy5udXNzYmF1bUB1 +bml2LWxvcnJhaW5lLmZyPokCOAQTAQoAIgUCUtlF7AIbAwYLCQgHAwIGFQgCCQoL +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 +=MNV/ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/archives/virtualbox.key.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/archives/virtualbox.key.chroot new file mode 100644 index 0000000..b37d3f8 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/archives/virtualbox.key.chroot @@ -0,0 +1,7416 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +cFmEHsjRN+dCxEL75y8HDpyvJHlH1R9saSZuM7v/x8KKpPNCnSkictjaC1FTiQIc +BBABCAAGBQJMYfReAAoJEHcx/Mxj5OJ3m4wP/j0WuQ0f033p0nJ8Kp0TLkFcK99d +DLmijZxEyvO6leGhwDmF1XDK4asAwQvFlxf9iQicvHp0ZoAn/6j2AGezfTuXlZQX +KBC3HqjyHVsHnIOV/yWYTi+ZUyVxPxtK68t4LIQu+qrGRcPYgpiFpygQjth21gv0 +d3hmr0XnalyAsvQLWWLClmFvHlvHxp6DIlZvv+FXFHqsHh60HkNmthryARuCLnsh +XcSh92oLwVUtiAIPY+hK+2AHtyS4UCmE/0iR17coFgDYik9RZaX4GKSNh17sxJ+N +aHmEYnpU7it0YA2Cf9VWge2q1Pq2wDpPxu1H+3fo3PnNL0IsnQqyK/OEaN2CgCvr +LJ1GA2tvK+S4wy0sc6d+/OfL36n3EfTiHv4AWiWRg6OVa8FMRJFKv38m3ergEvzB +iptYSFucDM70V7AzrDZWNl73bXeVvd0X5qzS4ArbqdGiZ32qqa19NyXd0jxRmr/U +14iWmNXL0FtbAVZJDmlIaoLs+Dnk4sW/XkwLu1XGLNbddScvGsSSEoJQbDJLExNC +S5irZ3Xgw7Tmj7ZkBxYWKGu4UnFysp/z7RVFRwfuohm7lkVO05utJ72QLdqv7zMH +UTUoyLnv/+8KD25+cK07OjJw4vYMtBz5xQxxx+wizwMmZfTMV5LSBF8mSdmhw4ce +t7/xUj1tKKoNQsPUiQIcBBABCAAGBQJMYhx3AAoJEGc6A+TB25IfpncQAKb/U41q +zoZf1VYPDW9TBV9axJTQ3sAwfsq5H/sIUe5qDFeiz7DRCATXU4mydJjFQW6yMXxc +KddMBFYS+gBGBQw1Ay8360hOU+qe08vAL94pYlBvXm5ZMbUKZ4odblnlckrPVOm0 +4G3CxnQ3RTBk7GYmtXTNH/V7UZ61uBg4kaJxfxzTdU6vUUMZB1yGUfn7RXBbj2sy +pzSi+J1h0aLtd/vbA+WB8P6/XyQ3QiAMlXWF7sJWfZVZWxb9bf6oMQ0nG6zPFxU5 +GeilUOrjIZC4aVBVW0UZ35HMX1vFXg9z8oYiYEv5Qw4TPJRWYcqIdXYTgtpvDszC +oxNIqZxvoYxkCN7IS5aNSsviEfvOrNTYCUfr8GqqN6qnHKje/f0l9zYVpj+TAsT0 +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 +Ok2jQ9HDjVyDutq77TUbvLJ2hPOxULAqvn4FQh7Fx7P+6zV0x5o3WPLVzJIMgKqP +m+jr//yi/BaONKUDPSDteAiWuT2S14hZ2O2sZASIyq+7INCSLKQ4sUQsZth3JoD7 +CwNCuDR2eQmxUG3p3EcvmQCsXnDZ4cQk/+boZOdCTCw7n+jJHBgFqmNEQHu4mrzT +jsZeF5GT+9gc2MsNnPOTPLmAaVW0CwR0/Z1gPJkkB8WbHBV4JD7FqXqmBWcTnNtd +ekpgOumC4TL1zd+mT7fChlJBEr5G4IcUotKKCaimvWcSRg5JxXJkdpMrIQOPpdGt +Lt2a+EIJUlHajdy0Lkx1Y2FzIE51c3NiYXVtIDxsdWNhcy5udXNzYmF1bUB1bml2 +LW5hbmN5Mi5mcj6JAh8EMAEKAAkFAlLZRi4CHSAACgkQORS1MvTfvpmGKw/7BeXz +AlZTMsllEv3d24XXpl60ucHiqudOxzDE+3MwWsCihRrvau7I5Rp41lNKJl2JB7c1 +ksZOVV+WW1BsJ9mTUwAoAezbo5FX5+lsGIr8nAIwvDYhEUmhgpt8GqVQ+xxgCWp6 +UYcTL0bzld0edvCZB7afD0AYVJtUb3866tbjnm6ltq20cX66OKDiqOPE+XXQ4c4F +LFWZFE4tVCUfGNu6C/F1EiRMbleKn2r90KhKHMrV9SbID+Alqi8i9ZR4GVedTWtK +gtgAcqU2+PAGt97wCLtQJ5oGoP0qp7l7JbL9KHac4xRkhto6Z0/3QVkiNeh5Xv5D +8xMt5Vs49yHABIpRtR1cD4TtyE8ZJGVag/H0XXeTTJ8AFCn1Uo5/EH/Hl5RqjiBm +hyo2JRT02keoZpCHzQqXbzrysXMVDZL0RRUvY/l9+wR0usFdpafphqiwaY03Im69 ++He1jzuoOUzDxx/g+9pR0lLr9ZUsIsqeD4Lbn083B0tRNEJJ9hsSzbXaLdpbcJTp +C86HC0ZNshpRmDs0FP5GZ7Pxl1tHjTZh5ywc3gp7o+rSD8ok6TDr6ffbDDzOnAQm +rhmwb/SUCxeukpLPdVmC8ARsGsZUib/Wjvxb/HGEp9gNjv8VsdMGD0p3yE/0AOOZ +nC5dgRwFCKAyCxviEc/4sLxOwcuVfdn+atYMwca0MEx1Y2FzIE51c3NiYXVtIChY +TVBQL0phYmJlcikgPGx1Y2FzQG51c3NiYXVtLmZyPokBHAQQAQIABgUCSljGEQAK +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 +/xLoVArx4tV3IZpDcoO1SsOcVz8RH1MWGnIs/9vtVwDHqcbnV/ifOmGYF5yqeKEh +drhaZdFkvlxaB+1PUhBst0LpANYuqlTZf4UcqxKoQKD33AuYgymNXGKjkBOwUIz1 +hZpi/YxaKYC9zFI9BFUO0Lg/JlHAPVnzex0ofFIyfbOEsNAZLsMt5zaxEq0jcJHK +0GHRRXQ1KOFRMc+oi3aLcpSbf86UNYk+2aQk4GxE6gl1QbSKrrUr7gm+QVlFpSc8 +44FkxfjonHFtPVVn0R7LLt+6bkdgTLWcYJW50xH7jB+GkapZnppHQhT4XPyvTkAe +qUCSlVWDhWG+8DKOeyFgTeeSINc7jKVl+cfesHFFUxQuGbkHzzZLL8kH/zyoAePI +n6+wPE6jWRyT/m0XVILnkoYmKu52FCkD9K1QEv0er2yJAhwEEAEIAAYFAksbkREA +CgkQfFas/pR4l9hw1w/7BKfiHA3vfibaIpSNJesNjAmBtscnAfkqYUFz/epBZoKK +R9knAmPZCUfMLGFtXSwm51pORzrCEUVj72LGGmOjWAnzKDm1w49Ao8vmbR19K+DU +zpXcO9akHxsgSH/4HuBlEq5D7lajoQQXQhjnHWAAgwK7QQ1gyDVxngSeGeEmvihK +mEVApfgkqx7nXX+SKIuw56DAeZYxDZVYXq4ipQvNYOXa7182XPZhdDNtp4hjihZt +QF4fHTEfuPU9glmj2EYTzaFZFFqNHYMAR8l3vXAUiZ/9Ra9wMfiOpNsFqollldGA +N4vV02XDgDR09EX1duL7Mue32Dl4QlD+eI3ssyl+54RwHUXG8bUglFBGxil4KhzQ +jAm5LZ8S9DTUtOOgUDPytz+b0mn47Q0diG0p4/txlNGrYDVIeRsID6EN7fe0/GB0 +jeII3Lr84lHRpGXHpjLvwRSBceaRNYXIk8bxtskg6ZU/RRLoPm5uFvIyF2uEetS5 +SQ5ERePiItwIwgXKcWho7iK94fG7uEEoBW89tzK/uwIug+BnwmznSe31qBzxwcH1 +/7qGvv1sKGDWS2mEdMkSNt91UYTa9IuV5CE494rj/I5LhFKtL7GEqEA4hX9JOEU2 +oeWqPz6/gb76atYNLvWPZLhC9Qxp8JD+vQfRu1Os0H7XGQOKpPns1ZWSiC2epLCJ +AhwEEAEIAAYFAktkTfMACgkQ2SnymSvvCjP6uxAAmaC9M1m8L5BN5ZNFjKYbR7Vy +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 +gGBi6YUfeoKbfkt0bJxQchpAAozDTAuMVy8Tsm7kzcQ4jafF4EUlxKs+siLl4Mnp +V5Ioupsc58VSf6NXHHuJbShUiSCef7ZKFybbg3wBj64CrsoeocI6Zk/HOXPaFOKH +XFSEp293AbivO6Oxp+lMjQ2F14rONQeYo1sKZ7nK0duvDfRUN+bW4nKfcybdTg9S +pgZ3hnZM131YnHvnnL28GwTv2us1w89PuLJOJPhyHgki0U4epcso0js7g40OKNXr +0WEsu9Nav+QeHrBditN/JBTjEGgQHQam2ehQwsMwN033Bc1PHGYJ7XuhfT5QRSWR +2aQiEF86AE60Ikx1Y2FzIE51c3NiYXVtIDxsZWFkZXJAZGViaWFuLm9yZz6JAh8E +MAEKAAkFAlUwr3UCHSAACgkQORS1MvTfvpk2bw//VxAAcMNvO/fiIudWLWS8u8L1 +sQJQmwc7YlpeUb6m9HEA5QOKEk84SxA7CPBgtTvJ+z7dVlG6v0Pg7NwG3OtmIK/2 +IXB1W8qzhIVSEjhD5swQcTZqorW+f+S2w2gNt2Om+1Ps7CmQVdI2cOApGos3CCPg +nbs6W8si65WRZL0y/SqubtAC1efs2clCTnELUjDaHV5u7SbnDPoUuqnZvysvNNhd +HEMxCp+DKPvTZjU5kSAr9wn4r8mUjNH5Uf7hJciVgsa7AX9d3OInYS1bGh8YIEVc +VbQqK9rJwDKSGD5I0H7XRxBqy4BaRJLQQulXgEbNXUenKTdhUlq4ZNKqeqVvsZo7 +0ahV4QBQY4qhuQkc/IwpaQg6e/AoppcA/O3pIKo2JS3aeyWRafkmszuR8VG7VOEd +QKSVCrnt4t1jo+2Kz1l6OKXsJKR49J9cPLaMTDmMhwGJGW+8P2EhUFbC98bMN6De +StINp3MH+JiO8p4sI2wep4uB3ux9OyoGbQ4ql2ukEXQWIBSa7nmEEqH7a1BZPU5A +S/Nfdk+f3SrxrWuh/Zj8+0D7jfUa+88LHP/cKTSv+x1kr8N+X/UCu/I6MdNDSQSP +8Zm0EdublY9pGKvG9EtwSQQxJFCrQDbcFk4eJiz3tMKkt9lb51qKCRvlNBp/2qLf +PYmV3+NyszeFH0EkYIe0MEx1Y2FzIE51c3NiYXVtIDxsdWNhcy5udXNzYmF1bUB1 +bml2LWxvcnJhaW5lLmZyPokCOAQTAQoAIgUCUtlF7AIbAwYLCQgHAwIGFQgCCQoL +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 +=MNV/ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/archives/virtualbox.list.binary b/Vagrant/resources/malcolm/malcolm-iso/config/archives/virtualbox.list.binary new file mode 100644 index 0000000..143cf44 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/archives/virtualbox.list.binary @@ -0,0 +1 @@ +deb https://people.debian.org/~lucas/virtualbox-buster/ ./ diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/archives/virtualbox.list.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/archives/virtualbox.list.chroot new file mode 100644 index 0000000..143cf44 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/archives/virtualbox.list.chroot @@ -0,0 +1 @@ +deb https://people.debian.org/~lucas/virtualbox-buster/ ./ diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0168-firefox-install.hook.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0168-firefox-install.hook.chroot new file mode 100755 index 0000000..efe0a7f --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0168-firefox-install.hook.chroot @@ -0,0 +1,37 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +export LC_ALL=C.UTF-8 +export LANG=C.UTF-8 + +curl -o /tmp/firefox.tar.bz2 -L "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" +if [ $(file -b --mime-type /tmp/firefox.tar.bz2) = 'application/x-bzip2' ]; then + mkdir -p /opt + rm -rvf /opt/firefox + tar -xvf /tmp/firefox.tar.bz2 -C /opt/ + rm -vf /tmp/firefox.tar.bz2 + if [[ -f /opt/firefox/firefox ]]; then + rm -vf /usr/local/bin/firefox + ln -vrs /opt/firefox/firefox /usr/local/bin/firefox + dpkg -s firefox-esr >/dev/null 2>&1 && apt-get -y --purge remove firefox-esr || true + cat << 'EOF' > /usr/share/applications/firefox.desktop +[Desktop Entry] +Name=Firefox +Comment=Web Browser +GenericName=Web Browser +X-GNOME-FullName=Firefox Web Browser +Exec=/opt/firefox/firefox %u +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=/opt/firefox/browser/chrome/icons/default/default128.png +Categories=Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https; +StartupWMClass=Firefox +StartupNotify=true +EOF + fi +fi # /tmp/firefox.tar.bz2 check + +rm -f /tmp/firefox.tar.bz2 diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0169-pip-installs.hook.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0169-pip-installs.hook.chroot new file mode 100755 index 0000000..3537261 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0169-pip-installs.hook.chroot @@ -0,0 +1,8 @@ +#!/bin/sh + +export LC_ALL=C.UTF-8 +export LANG=C.UTF-8 + +# python 3 +pip3 install --no-compile --no-cache-dir --force-reinstall --upgrade \ + debinterface==3.4.0 diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0900-setup-rc-local.hook.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0900-setup-rc-local.hook.chroot new file mode 100755 index 0000000..e12f8a4 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0900-setup-rc-local.hook.chroot @@ -0,0 +1,20 @@ +#!/bin/bash + +sed -i 's/^exit 0//' /etc/rc.local 2>/dev/null + +cat << 'EOF' >> /etc/rc.local + +# other agg-specific initialization prior to starting up +/usr/local/bin/agg-init.sh + +# hddtemp daemon for querying HDD temperatures +/usr/sbin/hddtemp --daemon --numeric --quiet --unit=C -4 --listen=127.0.0.1 --port=7634 /dev/sd? + +systemctl mask ctrl-alt-del.target + +exit 0 +EOF + +sed -i "1i #!/bin/sh" /etc/rc.local + +chmod +x /etc/rc.local /usr/local/bin/*.sh /usr/local/bin/configure-*.py diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0910-agg-build.hook.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0910-agg-build.hook.chroot new file mode 100755 index 0000000..adfcc86 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0910-agg-build.hook.chroot @@ -0,0 +1,54 @@ +#!/bin/bash + +BEATS_VER="7.10.2" +BEATS_OSS="-oss" +BEATS_DEB_URL_TEMPLATE_REPLACER="XXXXX" +BEATS_DEB_URL_TEMPLATE="https://artifacts.elastic.co/downloads/beats/$BEATS_DEB_URL_TEMPLATE_REPLACER/$BEATS_DEB_URL_TEMPLATE_REPLACER$BEATS_OSS-$BEATS_VER-amd64.deb" + +DOCKER_COMPOSE_VER="1.29.1" +DOCKER_COMPOSE_URL="https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VER/docker-compose-$(uname -s)-$(uname -m)" + +# install docker-compose +curl -o /usr/local/bin/docker-compose -sSL "$DOCKER_COMPOSE_URL" && chmod 755 /usr/local/bin/docker-compose + +# tweak some dashboards for, then install filebeat/metricbeat/auditbeat/packetbeat +for BEAT in filebeat metricbeat auditbeat packetbeat; do + BEATS_URL="$(echo "$BEATS_DEB_URL_TEMPLATE" | sed "s/$BEATS_DEB_URL_TEMPLATE_REPLACER/$BEAT/g")" + BEATS_DEB="$BEAT-$BEATS_VER-amd64.deb" + BEATS_NEW_DEB="$BEAT-dark-$BEATS_VER-amd64.deb" + BEATS_TMP_DIR="$BEAT-deb" + pushd /tmp && \ + curl -f -L -o "$BEATS_DEB" "$BEATS_URL" && \ + dpkg-deb -x "$BEATS_DEB" "$BEATS_TMP_DIR" && \ + dpkg-deb -e "$BEATS_DEB" "$BEATS_TMP_DIR/DEBIAN" && \ + sed -i 's@\(\\"darkTheme\\" *: *\)false@\1true@g' "$BEATS_TMP_DIR"/usr/share/$BEAT/kibana/?/dashboard/*.json && \ + ( [[ "$BEAT" == "metricbeat" ]] && sed -i -e "s@ |\\\\\\\n\[Containers overview\](#/dashboard/CPU-slash-Memory-per-container)@@g" "$BEATS_TMP_DIR"/usr/share/$BEAT/kibana/?/dashboard/* || true ) && \ + pushd "$BEATS_TMP_DIR" && ( rm -f DEBIAN/md5sums && find . -type f ! -regex '.*.hg.*' ! -regex '.*?debian-binary.*' ! -regex '.*?DEBIAN.*' -print0 | xargs -l -0 md5sum >> DEBIAN/md5sums ) && popd && \ + dpkg-deb -b "$BEATS_TMP_DIR" "$BEATS_NEW_DEB" && \ + rm -rf "$BEATS_TMP_DIR" && \ + dpkg -i "$BEATS_NEW_DEB" && \ + rm -rf "$BEATS_TMP_DIR" "$BEATS_DEB" "$BEATS_NEW_DEB" && \ + popd +done + +# add symlinks to our custom dashboards +FILES=$(shopt -s nullglob dotglob; echo /usr/share/filebeat/kibana/7/dashboard-custom/*) +if (( ${#FILES} )) ; then + ln -s -r -f /usr/share/filebeat/kibana/7/dashboard-custom/* /usr/share/filebeat/kibana/7/dashboard/ +fi +FILES=$(shopt -s nullglob dotglob; echo /usr/share/metricbeat/kibana/7/dashboard-custom/*) +if (( ${#FILES} )) ; then + ln -s -r -f /usr/share/metricbeat/kibana/7/dashboard-custom/* /usr/share/metricbeat/kibana/7/dashboard/ +fi +FILES=$(shopt -s nullglob dotglob; echo /usr/share/auditbeat/kibana/7/dashboard-custom/*) +if (( ${#FILES} )) ; then + ln -s -r -f /usr/share/auditbeat/kibana/7/dashboard-custom/* /usr/share/auditbeat/kibana/7/dashboard/ +fi + +### + +# set up capabilities for network-related tools +chown root:netdev /usr/share/auditbeat/bin/auditbeat && \ + setcap 'CAP_AUDIT_READ+eip' /usr/share/auditbeat/bin/auditbeat + +### diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0911-get-stig-scripts.hook.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0911-get-stig-scripts.hook.chroot new file mode 100755 index 0000000..a20c650 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0911-get-stig-scripts.hook.chroot @@ -0,0 +1,14 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# clone STIG-4-Debian, harbian-audit and debian-cis and clean up some stuff we don't need +mkdir -p /opt +git clone --depth 1 --recursive --single-branch https://github.com/hardenedlinux/STIG-4-Debian /opt/STIG-4-Debian +git clone --depth 1 --recursive --single-branch https://github.com/hardenedlinux/harbian-audit /opt/harbian-audit +git clone --depth 1 --recursive --single-branch https://github.com/ovh/debian-cis /opt/debian-cis +sed -i "s#CIS_ROOT_DIR=.*#CIS_ROOT_DIR='/opt/harbian-audit'#" /opt/harbian-audit/debian/default.cfg +sed -i "s#CIS_ROOT_DIR=.*#CIS_ROOT_DIR='/opt/debian-cis'#" /opt/debian-cis/debian/default +# cp /opt/harbian-audit/debian/default.cfg /etc/default/cis-hardening +# cp /opt/debian-cis/debian/default /etc/default/cis-hardening +rm -rf /opt/STIG-4-Debian/.git /opt/harbian-audit/.git /opt/debian-cis/.git diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0990-remove-unwanted-pkg.hook.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0990-remove-unwanted-pkg.hook.chroot new file mode 100755 index 0000000..a89bd79 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0990-remove-unwanted-pkg.hook.chroot @@ -0,0 +1,45 @@ +#!/bin/bash + +# remove development packages +apt-get -y --purge remove build-essential $(dpkg --get-selections | grep -v deinstall$ | cut -f1 | grep -P -- '-dev(:\w+)?$' | grep -Pv -- '^(dpkg|libgcc)') || true + +# remove unwanted packages +apt-get -y --purge remove bluez-firmware \ + cracklib-runtime \ + deluge \ + enchant \ + ffmpeg \ + gdb \ + git \ + gnome-accessibility-themes \ + gucharmap \ + libasound2-plugins \ + libcupsfilters1 \ + libcupsimage2 \ + libx264* \ + libx265* \ + lxmusic \ + mailutils \ + mpv \ + pavucontrol \ + prelink \ + pulseaudio \ + smplayer \ + xdg-user-dirs \ + yelp \ + youtube-dl || true + +apt-get -y autoremove +apt-get clean + +# remove any residual configs +dpkg -l | awk '/^rc/ { print $2 }' | xargs -r -l dpkg --purge + +# disable automatic/initial running of some services (but don't abort if we fail) +systemctl disable systemd-timesyncd.service || true +systemctl disable ctrl-alt-del.target || true +systemctl disable hddtemp.service || true +systemctl disable apt-daily.service || true +systemctl disable apt-daily.timer || true +systemctl disable apt-daily-upgrade.timer || true +systemctl disable apt-daily-upgrade.service || true diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0991-security-performance.hook.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0991-security-performance.hook.chroot new file mode 100755 index 0000000..9770698 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/hooks/normal/0991-security-performance.hook.chroot @@ -0,0 +1,173 @@ +#!/bin/bash + +# configure firewall +sed -i "s/LOGLEVEL=.*/LOGLEVEL=off/" /etc/ufw/ufw.conf +sed -i 's/DEFAULT_FORWARD_POLICY=.*/DEFAULT_FORWARD_POLICY="ACCEPT"/' /etc/default/ufw +sed -i "s/#net\/ipv4\/ip_forward=1/net\/ipv4\/ip_forward=1/" /etc/ufw/sysctl.conf +read -r -d '' MASQUERADECFG <<- EOM +# NAT table rules +*nat +:POSTROUTING ACCEPT [0:0] +-A POSTROUTING ! -o docker0 -s 172.29.0.0/16 -j MASQUERADE +COMMIT +EOM +awk '1' <(echo "$MASQUERADECFG") /etc/ufw/before.rules > /tmp/before.rules && \ + cat /tmp/before.rules > /etc/ufw/before.rules && \ + rm -f /tmp/before.rules +/usr/sbin/ufw --force enable +/usr/sbin/ufw default deny incoming +/usr/sbin/ufw default allow outgoing +UFW_ALLOW_RULES=( + https + ntp + ssh + 5044 + 5601/tcp + 9200/tcp +) +for i in ${UFW_ALLOW_RULES[@]}; do + ufw allow "$i" +done + +# docker (disallow overriding firewall) +mkdir -p /etc/docker/ +cat << 'EOF' > /etc/docker/daemon.json +{ + "iptables": false, + "default-address-pools":[ + {"base":"172.29.0.0/16","size":24} + ] +} +EOF + +# performance parameters for networking, disk, etc. +cat << 'EOF' >> /etc/sysctl.conf +# don't restrict dmesg to root +kernel.dmesg_restrict=0 + +# the maximum number of open file handles +fs.file-max=2097152 + +# increase maximums for inotify watches +fs.inotify.max_user_watches=131072 +fs.inotify.max_queued_events=131072 +fs.inotify.max_user_instances=512 + +# the maximum number of memory map areas a process may have +vm.max_map_count=262144 + +# decrease "swappiness" (swapping out runtime memory vs. dropping pages) +vm.swappiness=1 + +# the % of system memory fillable with "dirty" pages before flushing +vm.dirty_background_ratio=40 + +# maximum % of dirty system memory before committing everything +vm.dirty_ratio=80 + +net.core.netdev_max_backlog=250000 +net.core.optmem_max=33554432 +net.core.rmem_default=425984 +net.core.rmem_max=33554432 +net.core.somaxconn=65535 +net.core.wmem_default=425984 +net.core.wmem_max=33554432 +net.ipv4.tcp_rmem=10240 425984 33554432 +net.ipv4.tcp_wmem=10240 425984 33554432 +net.ipv4.udp_mem=10240 425984 33554432 + +net.ipv4.conf.all.accept_redirects=0 +net.ipv4.conf.all.accept_source_route=0 +net.ipv4.conf.all.send_redirects=0 +net.ipv4.conf.default.accept_redirects=0 +net.ipv4.conf.default.accept_source_route=0 +net.ipv4.conf.default.send_redirects=0 +net.ipv4.icmp_echo_ignore_broadcasts=1 +net.ipv4.ip_forward=1 +net.ipv6.conf.all.accept_source_route=0 +net.ipv6.conf.all.accept_ra=0 +net.ipv6.conf.default.accept_ra=0 +net.ipv6.conf.all.disable_ipv6=1 +net.ipv6.conf.default.disable_ipv6=1 +net.ipv6.conf.lo.disable_ipv6=1 +EOF + +# password requirement hardening +sed -i -e 's/[[:space:]]*nullok[[:alnum:]_]*//g' /etc/pam.d/common-auth +sed -i -r "s/(pam_faildelay.so.*delay)[[:space:]]*=[[:space:]]*[[:digit:]]+/\1=4000000/g" /etc/pam.d/login +sed -i -r "s/([[:space:]]*session[[:space:]]*)[[:alnum:]_]*([[:space:]]*pam_lastlog.so[[:space:]]*)/\1required\2\tshowfailed/g" /etc/pam.d/login +sed -i "s/^[[:space:]]*password[[:space:]]*requisite[[:space:]]*pam_pwquality\.so.*/password requisite pam_pwquality.so retry=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 difok=8 minclass=4 maxrepeat=2 maxclassrepeat=4 minlen=15/g" /etc/pam.d/common-password + +# enable cryptsetup support on boot +sed -i "s/#CRYPTSETUP=.*/CRYPTSETUP=y/" /etc/cryptsetup-initramfs/conf-hook + +# enable guests to mount vmware/etc. fuse-based mounts with allow_other +sed -i "s/#user_allow_other.*/user_allow_other/" /etc/fuse.conf + +# some permissions +find /etc/audit -type d -exec chmod 750 "{}" \; +find /etc/audit -type f -exec chmod 640 "{}" \; +chmod 600 /etc/ssh/sshd_config + +# set DIR_MODE to 750 for new users +sed -i "s/^DIR_MODE=.*/DIR_MODE=0750/" /etc/adduser.conf + +# new directories default to 750, new files to 640 +echo -e "\n\n# new directories default to 700, new files to 600" >> /etc/profile +echo "umask 077" >> /etc/profile +echo "export UMASK=077" >> /etc/profile + +# enable cron logging +sed -r -i "s@^#(cron\.\*\s+.*/var/log/cron\.log)@\1@" /etc/rsyslog.conf + +# enable rsyslog forwarding to localhost:9514 over UDP (for filebeat syslog input) +echo >> /etc/rsyslog.conf +echo '*.* @127.0.0.1:9514' >> /etc/rsyslog.conf +echo >> /etc/rsyslog.conf + +# put sudoers log into its own logfile +awk 'FNR==NR{ if (/^Defaults/) p=NR; next} 1; FNR==p{ print "Defaults\t!syslog\nDefaults\tlogfile=/var/log/sudo.log" }' /etc/sudoers /etc/sudoers > /tmp/newsudoers +mv /tmp/newsudoers /etc/sudoers && chmod 440 /etc/sudoers +cat << 'EOF' > /etc/logrotate.d/sudoers +/var/log/sudo.log +{ + weekly + missingok + rotate 4 + compress + delaycompress + copytruncate + minsize 100k +} +EOF + +# tweak some auditd settings +sed -r -i "s/((disk_full_action|disk_error_action)\s*=\s*).*/\1 SYSLOG/" /etc/audit/auditd.conf +sed -r -i "s/(network_failure_action\s*=\s*).*/\1 syslog/" /etc/audisp/audisp-remote.conf + +# disable ntp for now, and disable servers, but it could be turned back on later +systemctl disable ntp || true +sed -i "s/^\(pool \)/# \1/" /etc/ntp.conf +sed -i "s/^\(restrict -6\)/# \1/" /etc/ntp.conf +sed -i "s/^\(restrict ::1\)/# \1/" /etc/ntp.conf +sed -r -i "s/^(NTPD_OPTS=).*/\1'-4 -g'/" /etc/default/ntp +usermod -d /var/lib/ntp ntp + +# disable htpdate service, we're going to use cron instead +systemctl disable htpdate || true +sed -i "s/#[[:space:]]*HTP_IFUP=.*/HTP_IFUP=no/" /etc/default/htpdate +sed -i "s/#[[:space:]]*HTP_DAEMON=.*/HTP_DAEMON=no/" /etc/default/htpdate + +# remove identifying operating system information from /etc/issue +truncate -s 0 /etc/motd +sed -i "s/Debian/Hedgehog/g" /etc/issue +sed -i "s/Debian/Hedgehog/g" /etc/issue.net + +# set up /etc/os-release information (override values in /etc/os-release with custom values) +if [[ -f /etc/skel/Malcolm/.os-info ]]; then + awk ' + BEGIN {FS = OFS = "="} + {v1[$1] = $2} + END {for (key in v1) {print key, v1[key]}} + ' /etc/os-release /etc/skel/Malcolm/.os-info | sort | sponge /etc/os-release +fi diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/boot/grub/grub.cfg b/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/boot/grub/grub.cfg new file mode 100644 index 0000000..ebbbc0e --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/boot/grub/grub.cfg @@ -0,0 +1,52 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +set default=0 +set timeout=-1 + +loadfont $prefix/dejavu-bold-16.pf2 +loadfont $prefix/dejavu-bold-14.pf2 +loadfont $prefix/unicode.pf2 + +set gfxmode=auto +insmod all_video +insmod gfxterm + +set color_normal=cyan/black +set color_highlight=yellow/black +set menu_color_normal=black/light-gray +set menu_color_highlight=yellow/dark-gray + +terminal_output gfxterm + +insmod play +play 960 440 1 0 4 440 1 + +menuentry "Live system" { + linux /live/vmlinuz boot=live components username=analyst nosplash random.trust_cpu=on elevator=deadline cgroup_enable=memory swapaccount=1 cgroup.memory=nokmem + initrd /live/initrd.img +} + +menuentry "Install Malcolm (quick install)" { + linux /install/vmlinuz preseed/file=/cdrom/install/preseed_multipar.cfg auto=true priority=high vga=normal locales=en_US.UTF-8 keyboard-layouts=us + initrd /install/initrd.gz +} + +menuentry "Install Malcolm (encrypted quick install)" { + linux /install/vmlinuz preseed/file=/cdrom/install/preseed_multipar_crypto.cfg auto=true priority=high vga=normal locales=en_US.UTF-8 keyboard-layouts=us + initrd /install/initrd.gz +} + +menuentry "Install Malcolm (advanced configuration)" { + linux /install/vmlinuz preseed/file=/cdrom/install/preseed_minimal.cfg auto=true priority=high vga=normal + initrd /install/initrd.gz +} + +menuentry "Install Malcolm (virtual machine single partition quick install)" { + linux /install/vmlinuz preseed/file=/cdrom/install/preseed_vmware.cfg auto=true priority=high vga=normal locales=en_US.UTF-8 keyboard-layouts=us + initrd /install/initrd.gz +} + +menuentry "Rescue system in text mode" { + linux /install/vmlinuz rescue/enable=true vga=normal + initrd /install/initrd.gz +} diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/install/preseed_base.cfg b/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/install/preseed_base.cfg new file mode 100644 index 0000000..287ff59 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/install/preseed_base.cfg @@ -0,0 +1,50 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +d-i hw-detect/load_firmware boolean true +d-i clock-setup/utc boolean true +d-i time/zone string Universal +d-i clock-setup/ntp boolean false +d-i clock-setup/ntp-server string 0.debian.pool.ntp.org + +d-i popularity-contest/participate boolean false + +localepurge localepurge/dontbothernew boolean false +localepurge localepurge/mandelete boolean true +localepurge localepurge/none_selected boolean false +localepurge localepurge/nopurge multiselect en, en_US, en_us.UTF-8, C.UTF-8 +localepurge localepurge/quickndirtycalc boolean true +localepurge localepurge/remove_no note +localepurge localepurge/showfreedspace boolean false +localepurge localepurge/use-dpkg-feature boolean false +localepurge localepurge/verbose boolean false + +# d-i passwd/username string analyst +# d-i passwd/user-fullname string analyst +d-i passwd/user-default-groups string audio cdrom video netdev plugdev docker vboxsf +d-i passwd/root-login boolean true + +# crypted passwords via: mkpasswd -m sha-512 -S $(pwgen -ns 16 1) +# uncomment to preseed passwords; otherwise installer will prompt +# d-i passwd/user-password-crypted password $6$FmMaqNyrr4TFmnJA$I2AViJlyJnRRq6G2omVVUIbvhfMGzS7iXxiexrzvMAtl5sE/kCzdKhWHTfQI2eh.HNTr5EY8gl/eGY2fwOa2u/ +# d-i passwd/root-password-crypted password $6$IdgQYj2LVNUML3O1$sW2W75vVk4K4c1XAjqfrswL7GlhXWCW3jf5MVzMYAloY/soCpctkzQLKy0TXo4IS8bvGw4SJH5yZG1ZpHmRVB1 + +d-i apt-setup/use_mirror boolean false +d-i finish-install/reboot_in_progress note + +d-i preseed/late_command string \ + echo 'deb http://deb.debian.org/debian buster main contrib non-free' > /target/etc/apt/sources.list; \ + echo 'deb http://security.debian.org/debian-security buster/updates main contrib non-free' >> /target/etc/apt/sources.list; \ + echo 'deb http://deb.debian.org/debian buster-updates main contrib non-free' >> /target/etc/apt/sources.list; \ + in-target bash /usr/local/bin/agg-init.sh; \ + in-target bash -c "(dmidecode -s system-product-name | grep -q VMware) || apt-get purge -y open-vm-tools-desktop"; \ + in-target bash -c "(dmidecode -s system-product-name | grep -q VirtualBox) || apt-get purge -y virtualbox-guest*"; \ + in-target sed -r -i 's@(^.+\s+/(tmp|var/tmp)\s+ext4\s+.*defaults)@\1,nosuid,nodev,noexec@g' /etc/fstab; \ + in-target sed -r -i 's@(^.+/media/cdrom[0-9]*.+)(noauto)(.*)@\1\2,nosuid,nodev,noexec\3@g' /etc/fstab; \ + in-target sed -r -i 's@(^.+\s+/(home)\s+ext4\s+.*defaults)@\1,nosuid,nodev@g' /etc/fstab; \ + in-target bash -c "( echo '\EFI\debian\grubx64.efi' > /boot/efi/startup.nsh ) || true"; \ + in-target sed -i 's#^\(GRUB_CMDLINE_LINUX_DEFAULT="quiet\)"$#\1 random.trust_cpu=on elevator=deadline cgroup_enable=memory swapaccount=1 cgroup.memory=nokmem apparmor=1 security=apparmor ipv6.disable=1 audit=1"#' /etc/default/grub; \ + in-target sed -i 's#^\(GRUB_CMDLINE_LINUX="\)"$#\1apparmor=1 security=apparmor audit=1"#' /etc/default/grub; \ + in-target sed -i 's#^\(GRUB_DISTRIBUTOR=\).*$#\1"Hedgehog"#' /etc/default/grub; \ + in-target cp /usr/share/images/desktop-base/Malcolm_background.png /boot/grub; \ + in-target bash /usr/local/bin/preseed_late_user_config.sh; \ + in-target grub-mkconfig -o /boot/grub/grub.cfg; diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/install/preseed_multipar.cfg b/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/install/preseed_multipar.cfg new file mode 100644 index 0000000..77092e6 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/install/preseed_multipar.cfg @@ -0,0 +1,151 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +d-i debian-installer/locale string en_US.UTF-8 +d-i console-setup/ask_detect boolean false +d-i keyboard-configuration/xkb-keymap skip-config +d-i keyboard-configuration/layout string "American English" + +d-i preseed/include string preseed_base.cfg + +################################################################################################### +# install root filesystem on smallest non-USB disk + +d-i partman/early_command string \ + ROOT_DISK=$(sh /preseed_partman_determine_disk.sh); \ + pvremove -ff -y "$ROOT_DISK"*; \ + debconf-set partman-auto/disk "$ROOT_DISK"; \ + debconf-set grub-installer/bootdev "$ROOT_DISK"; \ + sed -i.bak 's/-f $id\/skip_erase/-d $id/g' /lib/partman/lib/crypto-base.sh; + +d-i grub-installer/only_debian boolean true +d-i grub-installer/with_other_os boolean true + +d-i partman-auto/method string lvm +d-i partman-auto-lvm/new_vg_name string main +d-i partman-auto-lvm/guided_size string max + +d-i partman-lvm/device_remove_lvm boolean true +d-i partman-lvm/confirm boolean true +d-i partman-lvm/confirm_nooverwrite boolean true + +d-i partman-md/device_remove_md boolean true +d-i partman-md/confirm boolean true +d-i partman-md/confirm_nooverwrite boolean true + +d-i partman-partitioning/confirm_write_new_label boolean true +d-i partman/choose_partition select finish +d-i partman/confirm boolean true +d-i partman/confirm_nooverwrite boolean true +d-i partman-basicmethods/method_only boolean false +d-i partman-efi/non_efi_system boolean true + +d-i partman-basicfilesystems/choose_label string gpt +d-i partman-basicfilesystems/default_label string gpt +d-i partman-partitioning/choose_label string gpt +d-i partman-partitioning/default_label string gpt +d-i partman/choose_label string gpt +d-i partman/default_label string gpt + +d-i partman/mount_style select uuid + +d-i partman-auto/choose_recipe select custom +d-i partman-auto/expert_recipe string \ + custom :: \ + 1 1 1 free \ + $bios_boot{ } \ + method{ biosgrub } \ + . \ + 256 256 256 fat32 \ + $primary{ } \ + $iflabel{ gpt } \ + $reusemethod{ } \ + method{ efi } format{ } \ + mountpoint{ /boot/efi } \ + . \ + 1024 1024 1024 ext4 \ + $primary{ } \ + $bootable{ } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /boot } \ + . \ + 8192 8241 16384 linux-swap \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ swap } \ + method{ swap } \ + format{ } \ + . \ + 12000 16000 24000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ root } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ / } \ + . \ + 18000 24000 28000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ var } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /var } \ + . \ + 2000 4000 6000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ varlog } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /var/log } \ + . \ + 2000 4000 6000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ varlogaudit } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /var/log/audit } \ + . \ + 2000 4000 6000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ vartmp } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /var/tmp } \ + . \ + 2000 4000 6000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ tmp } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /tmp } \ + . \ + 6000 8000 1000000000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ home } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /home } \ + . +################################################################################################### diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/install/preseed_vmware.cfg b/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/install/preseed_vmware.cfg new file mode 100644 index 0000000..df4663d --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/install/preseed_vmware.cfg @@ -0,0 +1,91 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +d-i debian-installer/locale string en_US.UTF-8 +d-i console-setup/ask_detect boolean false +d-i keyboard-configuration/xkb-keymap skip-config +d-i keyboard-configuration/layout string "American English" + +d-i preseed/include string preseed_base.cfg + +################################################################################################### +# install root filesystem on smallest non-USB disk + +d-i partman/early_command string \ + ROOT_DISK=$(sh /preseed_partman_determine_disk.sh); \ + pvremove -ff -y "$ROOT_DISK"*; \ + debconf-set partman-auto/disk "$ROOT_DISK"; \ + debconf-set grub-installer/bootdev "$ROOT_DISK"; \ + sed -i.bak 's/-f $id\/skip_erase/-d $id/g' /lib/partman/lib/crypto-base.sh; + +d-i grub-installer/only_debian boolean true +d-i grub-installer/with_other_os boolean true + +d-i partman-auto/method string lvm +d-i partman-auto-lvm/new_vg_name string main +d-i partman-auto-lvm/guided_size string max + +d-i partman-lvm/device_remove_lvm boolean true +d-i partman-lvm/confirm boolean true +d-i partman-lvm/confirm_nooverwrite boolean true + +d-i partman-md/device_remove_md boolean true +d-i partman-md/confirm boolean true +d-i partman-md/confirm_nooverwrite boolean true + +d-i partman-partitioning/confirm_write_new_label boolean true +d-i partman/choose_partition select finish +d-i partman/confirm boolean true +d-i partman/confirm_nooverwrite boolean true +d-i partman-basicmethods/method_only boolean false +d-i partman-efi/non_efi_system boolean true + +d-i partman-basicfilesystems/choose_label string gpt +d-i partman-basicfilesystems/default_label string gpt +d-i partman-partitioning/choose_label string gpt +d-i partman-partitioning/default_label string gpt +d-i partman/choose_label string gpt +d-i partman/default_label string gpt + +d-i partman/mount_style select uuid + +d-i partman-auto/choose_recipe select custom +d-i partman-auto/expert_recipe string \ + custom :: \ + 1 1 1 free \ + $bios_boot{ } \ + method{ biosgrub } \ + . \ + 256 256 256 fat32 \ + $primary{ } \ + $iflabel{ gpt } \ + $reusemethod{ } \ + method{ efi } format{ } \ + mountpoint{ /boot/efi } \ + . \ + 1024 1024 1024 ext4 \ + $primary{ } \ + $bootable{ } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /boot } \ + . \ + 8192 8241 16384 linux-swap \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ swap } \ + method{ swap } \ + format{ } \ + . \ + 12000 16000 1000000000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ root } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ / } \ + . +################################################################################################### diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/isolinux/advanced.cfg b/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/isolinux/advanced.cfg new file mode 100644 index 0000000..7430392 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/isolinux/advanced.cfg @@ -0,0 +1,29 @@ +label live +menu label ^Live system +kernel /live/vmlinuz +append boot=live components username=analyst nosplash random.trust_cpu=on elevator=deadline cgroup_enable=memory swapaccount=1 cgroup.memory=nokmem initrd=/live/initrd.img -- + +label install +menu label ^Install Malcolm (quick install) +kernel /install/vmlinuz +append file=/preseed_multipar.cfg initrd=/install/initrd.gz auto=true priority=high locales=en_US.UTF-8 keyboard-layouts=us -- + +label installenc +menu label ^Install Malcolm (encrypted quick install) +kernel /install/vmlinuz +append file=/preseed_multipar_crypto.cfg initrd=/install/initrd.gz auto=true priority=high locales=en_US.UTF-8 keyboard-layouts=us -- + +label installadv +menu label ^Install Malcolm (advanced configuration) +kernel /install/vmlinuz +append file=/preseed_minimal.cfg initrd=/install/initrd.gz auto=true priority=high -- + +label installvm +menu label ^Install Malcolm (virtual machine single partition quick install) +kernel /install/vmlinuz +append file=/preseed_vmware.cfg initrd=/install/initrd.gz auto=true priority=high locales=en_US.UTF-8 keyboard-layouts=us -- + +label rescue +menu label ^Rescue system in text mode +kernel /install/vmlinuz +append rescue/enable=true initrd=/install/initrd.gz -- diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/isolinux/install.cfg b/Vagrant/resources/malcolm/malcolm-iso/config/includes.binary/isolinux/install.cfg new file mode 100644 index 0000000..e69de29 diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/audit/rules.d/audit.rules b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/audit/rules.d/audit.rules new file mode 100644 index 0000000..004f048 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/audit/rules.d/audit.rules @@ -0,0 +1,146 @@ +## First rule - delete all +-D + +## Increase the buffers to survive stress events. +## Make this bigger for busy systems +-b 8192 + +## This determine how long to wait in burst of events +--backlog_wait_time 0 + +## Set failure mode to syslog +-f 1 + +# exclusions + +-a always,exclude -F msgtype=AVC +-a always,exclude -F msgtype=CRYPTO_KEY_USER +-a always,exclude -F msgtype=CWD +-a always,exclude -F msgtype=EOE + +# commands + +-a always,exit -F path=/bin/fusermount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/bin/mount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/bin/pmount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/bin/pumount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/bin/su -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/bin/umount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/etc/audisp/audisp-remote.conf -F perm=wa -k config_file_change +-a always,exit -F path=/etc/audit/auditd.conf -F perm=wa -k config_file_change +-a always,exit -F path=/etc/default/grub -F perm=wa -k config_file_change +-a always,exit -F path=/etc/fstab -F perm=wa -k config_file_change +-a always,exit -F path=/etc/hosts.deny -F perm=wa -k config_file_change +-a always,exit -F path=/etc/login.defs -F perm=wa -k config_file_change +-a always,exit -F path=/etc/profile -F perm=wa -k config_file_change +-a always,exit -F path=/etc/sysctl.conf -F perm=wa -k config_file_change +-a always,exit -F path=/sbin/apparmor_parser -F perm=x -F auid>=1000 -F auid!=4294967295 -k MAC-policy +-a always,exit -F path=/sbin/pam_tally -F perm=wxa -F auid>=1000 -F auid!=4294967295 -k privileged-pam +-a always,exit -F path=/sbin/pam_tally2 -F perm=wxa -F auid>=1000 -F auid!=4294967295 -k privileged-pam +-a always,exit -F path=/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-passwd +-a always,exit -F path=/sbin/unix_update -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-unix-update +-a always,exit -F path=/usr/bin/bsd-write -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/chacl -F perm=x -F auid>=1000 -F auid!=4294967295 -k perm_chng +-a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-passwd +-a always,exit -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/chfn -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/chfn -F perm=x -F auid>=500 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-cron +-a always,exit -F path=/usr/bin/dotlock.mailutils -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/expiry -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/fusermount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-passwd +-a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/ntfs-3g -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-passwd +-a always,exit -F path=/usr/bin/pkexec -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/pmount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/pumount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/setfacl -F perm=x -F auid>=1000 -F auid!=4294967295 -k perm_chng +-a always,exit -F path=/usr/bin/ssh-agent -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-ssh +-a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/sudoedit -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/wall -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/dbus-1.0/dbus-daemon-launch-helper -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/eject/dmcrypt-get-device -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-ssh +-a always,exit -F path=/usr/lib/policykit-1/polkit-agent-helper-1 -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/x86_64-linux-gnu/utempter/utempter -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/xorg/Xorg.wrap -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/addgroup -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/adduser -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/exim4 -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/groupadd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/mount.cifs -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/netfilter-persistent -F perm=x -F auid>=1000 -F auid!=4294967295 -k nft_persistent_use +-a always,exit -F path=/usr/sbin/nft -F perm=x -F auid>=1000 -F auid!=4294967295 -k nft_cmd_use +-a always,exit -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-pam +-a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-postfix +-a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-postfix +-a always,exit -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/setsebool -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/useradd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/usermod -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-usermod +-a always,exit -F path=/usr/sbin/visudo -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged + +# privileged files + +-w /bin/kmod -p x -k modules +-w /etc/apparmor.d/ -p wa -k MAC-policy +-w /etc/apparmor/ -p wa -k MAC-policy +-w /etc/group -p wa -k identity +-w /etc/gshadow -p wa -k identity +-w /etc/hosts -p wa -k system-locale +-w /etc/issue -p wa -k system-locale +-w /etc/issue.net -p wa -k system-locale +-w /etc/localtime -p wa -k time-change +-w /etc/network -p wa -k system-locale +-w /etc/nftables.conf -p wa -k nft_config_file_change +-w /etc/opasswd -p wa -k usergroup_modification +-w /etc/passwd -p wa -k identity +-w /etc/security/opasswd -p wa -k identity +-w /etc/shadow -p wa -k identity +-w /etc/sudoers -p wa -k sudoers +-w /etc/sudoers.d/ -p wa -k sudoers +-w /sbin/insmod -p x -k modules +-w /sbin/modprobe -p x -k modules +-w /sbin/rmmod -p x -k modules +-w /var/log/btmp -p wa -k session +-w /var/log/faillog -p wa -k logins +-w /var/log/lastlog -p wa -k logins +-w /var/log/sudo.log -p wa -k sudoaction +-w /var/log/tallylog -p wa -k logins +-w /var/log/wtmp -p wa -k session +-w /var/run/faillock -p wa -k logins +-w /var/run/utmp -p wa -k session + +# syscalls + +-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change +-a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod +-a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod +-a always,exit -F arch=b64 -S clock_settime -k time-change +-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access +-a always,exit -F arch=b64 -S open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access +-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access +-a always,exit -F arch=b64 -S open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access +-a always,exit -F arch=b64 -S execve -C gid!=egid -F key=execpriv +-a always,exit -F arch=b64 -S execve -C uid!=euid -F key=execpriv +-a always,exit -F arch=b64 -S init_module -S delete_module -S create_module -S finit_module -k modules +-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=4294967295 -k mounts +-a always,exit -F arch=b64 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=1000 -F auid!=4294967295 -k perm_mod +-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -S rmdir -F auid>=1000 -F auid!=4294967295 -k delete +-a always,exit -F dir=/etc/audit/rules.d/ -F perm=wa -k config_file_change +-a always,exit -F dir=/etc/pam.d/ -F perm=wa -k config_file_change +-a always,exit -F dir=/etc/profile.d/ -F perm=wa -k config_file_change +-a always,exit -F dir=/etc/security/ -F perm=wa -k config_file_change +-a exit,always -F arch=b64 -S sethostname -S setdomainname -k system-locale + +# Make the configuration immutable -- reboot is required to change audit rules +-e 2 diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/bash.bash_aliases b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/bash.bash_aliases new file mode 100644 index 0000000..fd66ee0 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/bash.bash_aliases @@ -0,0 +1,29 @@ +# some more ls aliases + +#safety +alias mv='mv -i' +alias rm='rm -I -v' +alias cp='cp -i' +alias chmod='chmod --preserve-root' +alias chown='chown --preserve-root' + +#convenience +alias ls="ls --block-size=\"'1\" --color=auto --group-directories-first" +alias la='ls -A' +alias l='ls -oah' +alias ll='ls -l --si --color=auto --group-directories-first' +alias lt='ls -ltr' +alias lld='ls -lUd */' +alias lsize='ls -lSrh' +alias df='df -Th' +alias ln='ln -s' +alias ..='cd ..' +alias cd..='cd ..' +alias cd-='cd -' +alias cdp='cd -P' +alias dump='hexdump -C' +alias findbroken='find . -type l ! -exec test -r {} \; -print' +alias utime='date +%s' +alias dutop='du -csh ./* 2>/dev/null | sort -rh' +alias mountcol='mount | column -t' +alias dmesg='dmesg -wHx' diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/bash.bash_functions b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/bash.bash_functions new file mode 100644 index 0000000..81572d1 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/bash.bash_functions @@ -0,0 +1,400 @@ +######################################################################## +# text processing +######################################################################## +function cols () { + first="awk '{print " + last="}'" + cmd="${first}" + commatime="" + for var in "$@" + do + if [ -z $commatime ] + then + commatime="no" + cmd=${cmd}\$${var} + else + cmd=${cmd}\,\$${var} + fi + done + cmd="${cmd}${last}" + eval $cmd +} + +function headtail () { + awk -v offset="$1" '{ if (NR <= offset) print; else { a[NR] = $0; delete a[NR-offset] } } END { { print "--------------------------------" } for (i=NR-offset+1; i<=NR; i++) print a[i] }' ; +} + +function wait_file() { + local file="$1"; shift + local wait_seconds="${1:-10}"; shift # 10 seconds as default timeout + + until test $((wait_seconds--)) -eq 0 -o -f "$file" ; do sleep 1; done + + ((++wait_seconds)) +} + +function taildiff () { + LEFT_FILE=$1 + RIGHT_FILE=$2 + RIGHT_LINES=$(wc -l "$RIGHT_FILE" | cut -d ' ' -f1) + diff -bwBy --suppress-common-lines <(head -n $RIGHT_LINES "$LEFT_FILE") <(head -n $RIGHT_LINES "$RIGHT_FILE") +} + +function fs() { + if du -b /dev/null > /dev/null 2>&1; then + local arg=-sbh; + else + local arg=-sh; + fi + if [[ -n "$@" ]]; then + du $arg -- "$@"; + else + du $arg .[^.]* ./*; + fi; +} + +function lin () { + sed -n $1p +} + +function fsize () { + echo "$1" | awk 'function human(x) { + s=" B KiB MiB GiB TiB EiB PiB YiB ZiB" + while (x>=1024 && length(s)>1) + {x/=1024; s=substr(s,5)} + s=substr(s,1,4) + xf=(s==" B ")?"%5d ":"%0.2f" + return sprintf( xf"%s", x, s) + } + {gsub(/^[0-9]+/, human($1)); print}' +} + +function multigrep() { local IFS='|'; grep -rinE "$*" . ; } + +function ord() { printf "%d\n" "'$1"; } + +function chr() { printf \\$(($1/64*100+$1%64/8*10+$1%8))\\n; } + +######################################################################## +# math +######################################################################## +function calc () { python -c "from math import *; n = $1; print n; print '$'+hex(trunc(n))[2:]; print '&'+oct(trunc(n))[1:]; print '%'+bin(trunc(n))[2:];"; } + +function add () { + awk '{s+=$1} END {print s}' +} + +######################################################################## +# directory navigation/file manipulation +######################################################################## +function cd() { if [[ "$1" =~ ^\.\.+$ ]];then local a dir;a=${#1};while [ $a -ne 1 ];do dir=${dir}"../";((a--));done;builtin cd $dir;else builtin cd "$@";fi ;} + +function fcd() { [ -f $1 ] && { cd $(dirname $1); } || { cd $1 ; } } + +function up { cd $(eval printf '../'%.0s {1..$1}) && pwd; } + +function realgo() { fcd $(realpath $(which $1)) && pwd ; } + +function realwhich() { realpath $(which $1) ; } + +function renmod() { + FILENAME="$@"; + TIMESTAMP=$(date -d @$(stat -c%Y "$FILENAME") +"%Y%m%d%H%M%S") + mv -iv "$FILENAME" "$FILENAME.$TIMESTAMP" +} + +function upto() { + local EXPRESSION="$1" + if [ -z "$EXPRESSION" ]; then + echo "A folder expression must be provided." >&2 + return 1 + fi + if [ "$EXPRESSION" = "/" ]; then + cd "/" + return 0 + fi + local CURRENT_FOLDER="$(pwd)" + local MATCHED_DIR="" + local MATCHING=true + + while [ "$MATCHING" = true ]; do + if [[ "$CURRENT_FOLDER" =~ "$EXPRESSION" ]]; then + MATCHED_DIR="$CURRENT_FOLDER" + CURRENT_FOLDER=$(dirname "$CURRENT_FOLDER") + else + MATCHING=false + fi + done + if [ -n "$MATCHED_DIR" ]; then + cd "$MATCHED_DIR" + return 0 + else + echo "No Match." >&2 + return 1 + fi +} + +# complete upto +_upto () { + # necessary locals for _init_completion + local cur prev words cword + _init_completion || return + + COMPREPLY+=( $( compgen -W "$( echo ${PWD//\// } )" -- $cur ) ) +} +complete -F _upto upto + +######################################################################## +# history +######################################################################## +function h() { if [ -z "$1" ]; then history; else history | grep -i "$@"; fi; } + +######################################################################## +# searching +######################################################################## +function fname() { find . -iname "*$@*"; } + +######################################################################## +# examine running processes +######################################################################## +function auxer() { + ps aux | grep -i "$(echo "$1" | sed "s/^\(.\)\(.*$\)/\[\1\]\2/")" +} + +function psgrep() { + ps axuf | grep -v grep | grep "$@" -i --color=auto; +} + +function killtree() { + if [ "$1" ] + then + kill $(pstree -p $1 | sed 's/(/\n(/g' | grep '(' | sed 's/(\(.*\)).*/\1/' | tr "\n" " ") + else + echo "No PID specified">&2 + fi +} + +function howmuchmem () { + PROCNAME="$@"; + RAMKILOBYTES=($(ps axo rss,comm|grep $PROCNAME| awk '{ TOTAL += $1 } END { print TOTAL }')); + RAMBYTES=$(echo "$RAMKILOBYTES*1024" | bc); + RAM=$(fsize $RAMBYTES); + echo "$RAM"; +} + +function mempercent () { + PROCNAME="$@"; + ps -eo pmem,comm | grep "$PROCNAME" | awk '{sum+=$1} END {print sum " % of RAM"}' +} + +function htopid () { + PROCPID="$1" + htop -p $(pstree -p $PROCPID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }') +} + +function lport () { + if [ "$1" ] + then + netstat -anp 2>/dev/null|grep "$1"|grep LISTEN|awk '{print $4}'|grep -P -o "\d+"|grep -v "^0$" + else + echo "No process specified">&2 + fi +} + +######################################################################## +# APT package management +######################################################################## +function aptsearch() { apt-cache search "$1"; } + +function aptsize() { + dpkg-query --show --showformat='${Package;-50}\t${Installed-Size} ${Status}\n' | sort -k 2 -n | grep -v deinstall +} + +######################################################################## +# date/time +######################################################################## +function dateu() +{ + if [ "$1" ] + then + echo $(date -u -d @$1); + else + echo "No UNIX time specified">&2 + fi +} + +function udate() +{ + if [ "$1" ] + then + date -u +%s -d "$1" + else + date -u +%s + fi +} + +function sec2dhms() { + declare -i SS="$1" D=$(( SS / 86400 )) H=$(( SS % 86400 / 3600 )) M=$(( SS % 3600 / 60 )) S=$(( SS % 60 )) [ "$D" -gt 0 ] && echo -n "${D}:" [ "$H" -gt 0 ] && printf "%02g:" "$H" printf "%02g:%02g\n" "$M" "$S" +} + +######################################################################## +# system +######################################################################## +function ddisousb() { + if [ "$1" ] && [[ -r "$1" ]] ; then + if [ "$2" ] && [[ -r "$2" ]] ; then + echo "dd if=\"$1\" of=\"$2\" bs=4M status=progress oflag=sync" + dd if="$1" of="$2" bs=4M status=progress oflag=sync + else + echo "No destination device specified">&2 + fi + else + echo "No iso file specified">&2 + fi +} + +function find_linux_root_device() { + local PDEVICE=`stat -c %04D /` + for file in $(find /dev -type b 2>/dev/null) ; do + local CURRENT_DEVICE=$(stat -c "%02t%02T" $file) + if [ $CURRENT_DEVICE = $PDEVICE ]; then + ROOTDEVICE="$file" + break; + fi + done + echo "$ROOTDEVICE" +} + +function rotationals() { + for f in /sys/block/sd?/queue/rotational; do printf "$f is "; cat $f; done +} + +function schedulers() { + for f in /sys/block/sd?/queue/scheduler; do printf "$f is "; cat $f; done +} + +function watch_file_size() { + perl -e ' + $file = shift; die "no file [$file]" unless ((-f $file) || (-d $file)); + $isDir = (-d $file); + $sleep = shift; $sleep = 1 unless $sleep =~ /^[0-9]+$/; + $format = "%0.2f %0.2f\n"; + while(1){ + if ($isDir) { + $size = `du -0scb $file`; + $size =~ s/\s+.*//; + } else { + $size = ((stat($file))[7]); + } + $change = $size - $lastsize; + printf $format, $size/1024/1024, $change/1024/1024/$sleep; + sleep $sleep; + $lastsize = $size; + }' "$1" "$2" +} + +function dux() { + du -x --max-depth=1|sort -rn|awk -F / -v c=$COLUMNS 'NR==1{t=$1} NR>1{r=int($1/t*c+.5); b="\033[1;31m"; for (i=0; i/dev/null 2>&1 && "$TMUX" attach || echo "No tmux sessions found" + else + SID="$1"; shift + "$TMUX" attach -t "$SID" "$@" + fi + + else + "$TMUX" "$@" + fi +} + +function screen() { + tmux "$@" +} + +######################################################################## +# helper functions for docker +######################################################################## +# run a new container and remove it when done +function drun() { + docker run -t -i -P --rm \ + "$@" +} + +# Get latest container ID +alias dl="docker ps -l -q" + +# Get container process +alias dps="docker ps" + +# Get process included stop container +alias dpa="docker ps -a" + +# Get images +alias di="docker images | tail -n +2" +alias dis="docker images | tail -n +2 | cols 1 2 | sed \"s/ /:/\"" + +# Get container IP +alias dip="docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'" + +# Execute in existing interactive container, e.g., $dex base /bin/bash +alias dex="docker exec -i -t" + +# backup *all* docker images! +function docker_backup() { + for IMAGE in `dis`; do export FN=$(echo "$IMAGE" | sed -e 's/[^A-Za-z0-9._-]/_/g') ; docker save "$IMAGE" | pv | pigz > "$FN.tgz" ; done +} + +# pull updates for docker images +function dockup() { + di | cols 1 2 | tr ' ' ':' | xargs -r -l docker pull +} + +function dxl() { + CONTAINER=$(docker ps -l -q) + docker exec -i -t $CONTAINER "$@" +} + +# list virtual networks +alias dnl="docker network ls" + +# inspect virtual networks +alias dnins="docker network inspect $@" + +# Stop all containers +function dstop() { docker stop $(docker ps -a -q); } + +# list docker registry catalog +function dregls () { + curl -k -X GET "https://"$1"/v2/_catalog" +} diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/chromium/policies/managed/policy.json b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/chromium/policies/managed/policy.json new file mode 100644 index 0000000..23f6f8b --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/chromium/policies/managed/policy.json @@ -0,0 +1,17 @@ +{ + "AllowDinosaurEasterEgg": false, + "BrowserSignin": false, + "EnableMediaRouter": false, + "HomepageIsNewTabPage": false, + "HomepageLocation": "about:blank", + "NewTabPageLocation": "about:blank", + "PromotionalTabsEnabled": false, + "RestoreOnStartup": 4, + "RestoreOnStartupURLs": [ + "about:blank" + ], + "RestrictSigninToPattern": ".*@example.com", + "SafeBrowsingExtendedReportingEnabled": false, + "ShowCastIconInToolbar": false, + "SyncDisabled": true +} diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/docker/daemon.json b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/docker/daemon.json new file mode 100644 index 0000000..fca9fa8 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/docker/daemon.json @@ -0,0 +1,4 @@ +{ + "graph" : "/home/docker" +} + diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/installer b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/installer new file mode 100644 index 0000000..53c9180 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/installer @@ -0,0 +1 @@ +malcolm diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/live/config.conf b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/live/config.conf new file mode 100644 index 0000000..5400a46 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/live/config.conf @@ -0,0 +1,6 @@ +LIVE_LOCALES="en_US.UTF-8" +LIVE_HOSTNAME="malcolm-live" +LIVE_USERNAME="analyst" +LIVE_USER_FULLNAME="Malcolm Live Analyst" +LIVE_USER_DEFAULT_GROUPS="adm audio cdrom disk docker netdev plugdev sudo video vboxsf" + diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/login.defs b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/login.defs new file mode 100644 index 0000000..84e42c4 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/login.defs @@ -0,0 +1,341 @@ +# +# /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 077 + +# +# 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 + +# +# 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 + +# +# 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 in no. +# +DEFAULT_HOME yes +CREATE_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 DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +ENCRYPT_METHOD SHA512 + +# +# Only used 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 forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside 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 + +################# 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/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/security/limits.d/limits.conf b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/security/limits.d/limits.conf new file mode 100644 index 0000000..0f7ffc0 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/security/limits.d/limits.conf @@ -0,0 +1,8 @@ +* soft nofile 65535 +* hard nofile 65535 +* soft memlock unlimited +* hard memlock unlimited +* soft core 0 +* hard core 0 +* hard maxlogins 10 + diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.Xresources b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.Xresources new file mode 100644 index 0000000..644545c --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.Xresources @@ -0,0 +1,2 @@ +xscreensaver.mode: blank +xscreensaver.lock: true diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.bashrc b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.bashrc new file mode 100644 index 0000000..a4b80d2 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.bashrc @@ -0,0 +1,86 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# new directories default to 700, new files to 600 +umask 077 +export UMASK=077 + +# If not running interactively, don't do anything +[ -z "$PS1" ] && return + +# don't put duplicate lines in the history and ignore same sucessive entries. +export HISTCONTROL=ignoreboth:erasedups +export HISTIGNORE="&:ls:ll:cd:history:h:[bf]g:exit:pwd:clear" +export HISTFILESIZE=1000000000 +export HISTSIZE=1000000 +export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] " + +# 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 /usr/bin/lesspipe ] && eval "$(lesspipe)" + +# 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/$HOME/~}\007"' + ;; +*) + ;; +esac + +# enable programmable completion features +if [ -f /etc/bash_completion ]; then + . /etc/bash_completion +fi + +############################################################################### +# PATH +############################################################################### +if [ -d ~/bin ]; then + PATH=~/bin:$PATH +fi + +if [ -d ~/.local/bin ]; then + PATH=~/.local/bin:$PATH +fi + +export PATH + +############################################################################### +# ALIASES AND FUNCTIONS +############################################################################### +if [ -f /etc/bash.bash_aliases ]; then + . /etc/bash.bash_aliases +fi + +if [ -f /etc/bash.bash_functions ]; then + . /etc/bash.bash_functions +fi + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +if [ -f ~/.bash_functions ]; then + . ~/.bash_functions +fi + +############################################################################### +# BASH OPTIONS +############################################################################### +shopt -s extglob +shopt -s dotglob +shopt -s cdspell +shopt -s histverify +shopt -s histappend +shopt -u progcomp +PROMPT_COMMAND="history -a;$PROMPT_COMMAND" + +############################################################################### +# BASH PROMPT +############################################################################### +PS1="\[\033[00;32m\]\u\[\033[00;34m\]@\h\[\033[1;30m\]:\[\033[00;35m\]\W\[\033[00m\]\[\033[01;37m\]\$ \[\033[00;37m\]" diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/clipit/clipitrc b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/clipit/clipitrc new file mode 100644 index 0000000..72f917d --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/clipit/clipitrc @@ -0,0 +1,27 @@ +[rc] +use_copy=true +use_primary=false +synchronize=false +automatic_paste=false +show_indexes=false +save_uris=true +use_rmb_menu=false +save_history=false +history_limit=50 +history_timeout_seconds=300 +history_timeout=true +items_menu=10 +statics_show=false +statics_items=0 +hyperlinks_only=true +confirm_clear=false +single_line=true +reverse_history=true +item_length=0 +ellipsize=0 +history_key=H +actions_key=A +menu_key=P +search_key=F +offline_key=O +offline_mode=false diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/gtk-3.0/settings.ini b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/gtk-3.0/settings.ini new file mode 100644 index 0000000..8f78856 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/gtk-3.0/settings.ini @@ -0,0 +1,15 @@ +[Settings] +gtk-theme-name=Adwaita-dark +gtk-icon-theme-name=gnome +gtk-font-name=Sans 10 +gtk-cursor-theme-size=18 +gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=1 +gtk-menu-images=1 +gtk-enable-event-sounds=0 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle=hintslight +gtk-xft-rgba=rgb diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/lxpanel/LXDE/panels/malcolm b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/lxpanel/LXDE/panels/malcolm new file mode 100644 index 0000000..0784e5c --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/lxpanel/LXDE/panels/malcolm @@ -0,0 +1,149 @@ +# lxpanel config file. Manually editing is not recommended. +# Use preference dialog in lxpanel to adjust config when you can. + +Global { + edge=top + monitor=0 + height=32 + align=left + widthtype=percent + width=100 + transparent=0 + background=0 + autohide=0 + heightwhenhidden=4 + tintcolor=#a0a0a0 + alpha=255 + setpartialstrut=1 + iconsize=24 +} +Plugin { + type=menu + Config { + system { + } + separator { + } + item { + command=run + } + separator { + } + item { + command=logout + image=gnome-logout + } + image=/usr/share/icons/gnome/32x32/places/start-here.png + } +} +Plugin { + type=separator + Config { + } +} +Plugin { + type=launchtaskbar + Config { + Button { + id=terminator.desktop + } + Button { + id=firefox.desktop + } + Button { + id=malcolm-readme.desktop + } + Button { + id=malcolm-moloch.desktop + } + Button { + id=malcolm-kibana.desktop + } + Button { + id=malcolm-upload.desktop + } + Button { + id=malcolm-mapping.desktop + } + Button { + id=malcolm-users.desktop + } + Button { + id=malcolm-cyberchef.desktop + } + Button { + id=malcolm-start.desktop + } + Button { + id=malcolm-restart.desktop + } + Button { + id=malcolm-logs.desktop + } + Button { + id=malcolm-stop.desktop + } + IconsOnly=0 + FlatButton=0 + UseMouseWheel=0 + GroupedTasks=1 + DisableUpscale=0 + UseSmallerIcons=-1 + spacing=1 + ShowAllDesks=0 + } +} +Plugin { + type=space + Config { + } + expand=1 +} +Plugin { + type=separator + Config { + } +} +Plugin { + type=pager + Config { + } +} +Plugin { + type=separator + Config { + } +} +Plugin { + type=dclock + Config { + ClockFmt=%R + TooltipFmt=%A %x + BoldFont=0 + IconOnly=0 + CenterText=0 + } +} +Plugin { + type=separator + Config { + } +} +Plugin { + type=tray + Config { + } +} +Plugin { + type=separator + Config { + } +} +Plugin { + type=launchbar + Config { + Button { + id=lxde-logout.desktop + } + } +} diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/lxsession/LXDE/desktop.conf b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/lxsession/LXDE/desktop.conf new file mode 100644 index 0000000..473cafe --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/lxsession/LXDE/desktop.conf @@ -0,0 +1,48 @@ +[Session] +window_manager=openbox-lxde +disable_autostart=no +polkit/command=lxpolkit +clipboard/command=lxclipboard +xsettings_manager/command=build-in +proxy_manager/command=build-in +keyring/command=ssh-agent +quit_manager/command=lxsession-logout +lock_manager/command=lxlock +terminal_manager/command=lxterminal + +[GTK] +sNet/ThemeName=Adwaita-dark +sNet/IconThemeName=gnome +sGtk/FontName=Sans 10 +iGtk/ToolbarStyle=3 +iGtk/ButtonImages=1 +iGtk/MenuImages=1 +iGtk/CursorThemeSize=18 +iXft/Antialias=1 +iXft/Hinting=1 +sXft/HintStyle=hintslight +sXft/RGBA=rgb +iNet/EnableEventSounds=1 +iNet/EnableInputFeedbackSounds=1 +sGtk/ColorScheme= +iGtk/ToolbarIconSize=3 +sGtk/CursorThemeName=DMZ-White + +[Mouse] +AccFactor=20 +AccThreshold=10 +LeftHanded=0 + +[Keyboard] +Delay=500 +Interval=30 +Beep=1 + +[State] +guess_default=true + +[Dbus] +lxde=true + +[Environment] +menu_prefix=lxde- diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf new file mode 100644 index 0000000..ec314f5 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf @@ -0,0 +1,14 @@ +[*] +wallpaper_mode=crop +wallpaper_common=1 +wallpaper=/usr/share/images/desktop-base/Malcolm_background.png +desktop_bg=#000000 +desktop_fg=#ffffff +desktop_shadow=#000000 +desktop_font=Sans 12 +show_wm_menu=0 +sort=mtime;ascending; +show_documents=0 +show_trash=0 +show_mounts=1 + diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/pcmanfm/LXDE/pcmanfm.conf b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/pcmanfm/LXDE/pcmanfm.conf new file mode 100644 index 0000000..2de8f2d --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.config/pcmanfm/LXDE/pcmanfm.conf @@ -0,0 +1,26 @@ +[config] +bm_open_method=0 + +[volume] +mount_on_startup=0 +mount_removable=0 +autorun=0 + +[ui] +always_show_tabs=0 +max_tab_chars=32 +win_width=640 +win_height=480 +splitter_pos=150 +media_in_new_tab=0 +desktop_folder_new_win=0 +change_tab_on_drop=1 +close_on_unmount=1 +focus_previous=0 +side_pane_mode=places +view_mode=list +show_hidden=0 +sort=name;ascending; +toolbar=newtab;navigation;home; +show_statusbar=1 +pathbar_mode_buttons=0 \ No newline at end of file diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.hushlogin b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.hushlogin new file mode 100644 index 0000000..e69de29 diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.selected_editor b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.selected_editor new file mode 100644 index 0000000..eb70eec --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.selected_editor @@ -0,0 +1 @@ +SELECTED_EDITOR="/usr/bin/vim.tiny" diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.tmux.conf b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.tmux.conf new file mode 100644 index 0000000..f423f16 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.tmux.conf @@ -0,0 +1,47 @@ +unbind C-b +set -g prefix C-a +bind a send-prefix + +bind-key C-a last-window + +# Make shift+arrows, ctrl+arrows etc work in Vim. +set -g xterm-keys on + +# See if this fixes slow ESC issues. +# http://unix.stackexchange.com/questions/23138/esc-key-causes-a-small-delay-in-terminal-due-to-its-alt-behavior +set -s escape-time 0 + +# Start window and pane indices at 1. +set -g base-index 1 +set -g pane-base-index 1 + +# Status bar styling and content. +set -g status-bg black +set -g status-fg white +set -g status-left '#S ' + +# Highlight the active window in the status bar. +set-window-option -g window-status-current-bg yellow +set-window-option -g window-status-current-fg black + +# More intuitive split-window mappings. +bind "'" split-window -h +bind - split-window -v + +# Maximize pane, e.g. for copying. +bind-key z resize-pane -Z + +# Switch pane and zoom +# https://twitter.com/tskogberg/status/792025881573199872 +bind C-z select-pane -t :.+ \; resize-pane -Z + +# toggle synchronize panes +bind C-x set-window-option synchronize-panes\; display-message "synchronize-panes is now #{?pane_synchronized,on,off}" + +# Reload tmux conf. +unbind r +bind r source-file ~/.tmux.conf\; display "Reloaded conf." + +# Use vim keybindings in copy mode +setw -g mode-keys vi + diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.vimrc b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.vimrc new file mode 100644 index 0000000..d75734c --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.vimrc @@ -0,0 +1,2 @@ +set nocompatible + diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.xscreensaver b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.xscreensaver new file mode 100644 index 0000000..c070f5e --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/skel/.xscreensaver @@ -0,0 +1,281 @@ +# XScreenSaver Preferences File +# Written by xscreensaver-demo 5.36 for sensor on Wed Jul 3 15:35:13 2019. +# https://www.jwz.org/xscreensaver/ + +timeout: 0:10:00 +cycle: 0:10:00 +lock: True +lockTimeout: 0:00:00 +passwdTimeout: 0:00:30 +visualID: default +installColormap: True +verbose: False +timestamp: True +splash: True +splashDuration: 0:00:05 +demoCommand: xscreensaver-demo +prefsCommand: xscreensaver-demo -prefs +nice: 10 +memoryLimit: 0 +fade: False +unfade: False +fadeSeconds: 0:00:03 +fadeTicks: 20 +captureStderr: True +ignoreUninstalledPrograms:True +font: *-medium-r-*-140-*-m-* +dpmsEnabled: False +dpmsQuickOff: False +dpmsStandby: 2:00:00 +dpmsSuspend: 2:00:00 +dpmsOff: 4:00:00 +grabDesktopImages: False +grabVideoFrames: False +chooseRandomImages: False +imageDirectory: + +mode: blank +selected: -1 + +textMode: date +textLiteral: XScreenSaver +textFile: +textProgram: fortune +textURL: http://planet.debian.org/rss20.xml + +programs: \ + maze -root \n\ +- GL: superquadrics -root \n\ + attraction -root \n\ + blitspin -root \n\ + greynetic -root \n\ + helix -root \n\ + hopalong -root \n\ + imsmap -root \n\ +- noseguy -root \n\ +- pyro -root \n\ + qix -root \n\ +- rocks -root \n\ + rorschach -root \n\ + decayscreen -root \n\ + flame -root \n\ + halo -root \n\ + slidescreen -root \n\ + pedal -root \n\ + bouboule -root \n\ +- braid -root \n\ + coral -root \n\ + deco -root \n\ + drift -root \n\ +- fadeplot -root \n\ + galaxy -root \n\ + goop -root \n\ + grav -root \n\ + ifs -root \n\ + unicode -root \n\ +- GL: jigsaw -root \n\ + julia -root \n\ +- kaleidescope -root \n\ +- GL: moebius -root \n\ + moire -root \n\ +- GL: morph3d -root \n\ + mountain -root \n\ + munch -root \n\ + penrose -root \n\ +- GL: pipes -root \n\ + rd-bomb -root \n\ +- GL: rubik -root \n\ +- sierpinski -root \n\ + slip -root \n\ +- GL: sproingies -root \n\ + starfish -root \n\ + strange -root \n\ + swirl -root \n\ + triangle -root \n\ + xjack -root \n\ + xlyap -root \n\ +- GL: atlantis -root \n\ + bsod -root \n\ +- GL: bubble3d -root \n\ +- GL: cage -root \n\ +- crystal -root \n\ + cynosure -root \n\ + discrete -root \n\ + distort -root \n\ + epicycle -root \n\ + flow -root \n\ +- GL: glplanet -root \n\ + interference -root \n\ + kumppa -root \n\ +- GL: lament -root \n\ + moire2 -root \n\ +- GL: sonar -root \n\ +- GL: stairs -root \n\ + truchet -root \n\ +- vidwhacker -root \n\ + blaster -root \n\ + bumps -root \n\ + ccurve -root \n\ + compass -root \n\ + deluxe -root \n\ +- demon -root \n\ +- GL: extrusion -root \n\ +- loop -root \n\ + penetrate -root \n\ + petri -root \n\ + phosphor -root \n\ +- GL: pulsar -root \n\ + ripples -root \n\ + shadebobs -root \n\ +- GL: sierpinski3d -root \n\ + spotlight -root \n\ + squiral -root \n\ + wander -root \n\ +- webcollage -root \n\ + xflame -root \n\ + xmatrix -root \n\ +- GL: gflux -root \n\ +- nerverot -root \n\ + xrayswarm -root \n\ + xspirograph -root \n\ +- GL: circuit -root \n\ +- GL: dangerball -root \n\ +- GL: engine -root \n\ +- GL: flipscreen3d -root \n\ +- GL: gltext -root \n\ +- GL: menger -root \n\ +- GL: molecule -root \n\ + rotzoomer -root \n\ + speedmine -root \n\ +- GL: starwars -root \n\ +- GL: stonerview -root \n\ + vermiculate -root \n\ + whirlwindwarp -root \n\ + zoom -root \n\ + anemone -root \n\ + apollonian -root \n\ +- GL: boxed -root \n\ +- GL: cubenetic -root \n\ +- GL: endgame -root \n\ + euler2d -root \n\ + fluidballs -root \n\ +- GL: flurry -root \n\ +- GL: glblur -root \n\ +- GL: glsnake -root \n\ + halftone -root \n\ +- GL: juggler3d -root \n\ +- GL: lavalite -root \n\ +- polyominoes -root \n\ +- GL: queens -root \n\ +- GL: sballs -root \n\ +- GL: spheremonics -root \n\ +- thornbird -root \n\ + twang -root \n\ +- GL: antspotlight -root \n\ + apple2 -root \n\ +- GL: atunnel -root \n\ + barcode -root \n\ +- GL: blinkbox -root \n\ +- GL: blocktube -root \n\ +- GL: bouncingcow -root \n\ + cloudlife -root \n\ +- GL: cubestorm -root \n\ + eruption -root \n\ +- GL: flipflop -root \n\ +- GL: flyingtoasters -root \n\ + fontglide -root \n\ +- GL: gleidescope -root \n\ +- GL: glknots -root \n\ +- GL: glmatrix -root \n\ +- GL: glslideshow -root \n\ +- GL: hypertorus -root \n\ +- GL: jigglypuff -root \n\ + metaballs -root \n\ +- GL: mirrorblob -root \n\ + piecewise -root \n\ +- GL: polytopes -root \n\ + pong -root \n\ + popsquares -root \n\ +- GL: surfaces -root \n\ + xanalogtv -root \n\ + abstractile -root \n\ + anemotaxis -root \n\ +- GL: antinspect -root \n\ + fireworkx -root \n\ + fuzzyflakes -root \n\ + interaggregate -root \n\ + intermomentary -root \n\ + memscroller -root \n\ +- GL: noof -root \n\ + pacman -root \n\ +- GL: pinion -root \n\ +- GL: polyhedra -root \n\ +- GL: providence -root \n\ + substrate -root \n\ + wormhole -root \n\ +- GL: antmaze -root \n\ +- GL: boing -root \n\ + boxfit -root \n\ +- GL: carousel -root \n\ + celtic -root \n\ +- GL: crackberg -root \n\ +- GL: cube21 -root \n\ + fiberlamp -root \n\ +- GL: fliptext -root \n\ +- GL: glhanoi -root \n\ +- GL: tangram -root \n\ +- GL: timetunnel -root \n\ +- GL: glschool -root \n\ +- GL: topblock -root \n\ +- GL: cubicgrid -root \n\ + cwaves -root \n\ +- GL: gears -root \n\ +- GL: glcells -root \n\ +- GL: lockward -root \n\ + m6502 -root \n\ +- GL: moebiusgears -root \n\ +- GL: voronoi -root \n\ +- GL: hypnowheel -root \n\ +- GL: klein -root \n\ +- lcdscrub -root \n\ +- GL: photopile -root \n\ +- GL: skytentacles -root \n\ +- GL: rubikblocks -root \n\ +- GL: companioncube -root \n\ +- GL: hilbert -root \n\ +- GL: tronbit -root \n\ +- GL: geodesic -root \n\ + hexadrop -root \n\ +- GL: kaleidocycle -root \n\ +- GL: quasicrystal -root \n\ +- GL: unknownpleasures -root \n\ + binaryring -root \n\ +- GL: cityflow -root \n\ +- GL: geodesicgears -root \n\ +- GL: projectiveplane -root \n\ +- GL: romanboy -root \n\ + tessellimage -root \n\ +- GL: winduprobot -root \n\ +- GL: splitflap -root \n\ +- GL: cubestack -root \n\ +- GL: cubetwist -root \n\ +- GL: discoball -root \n\ +- GL: dymaxionmap -root \n\ +- GL: energystream -root \n\ +- GL: hexstrut -root \n\ +- GL: hydrostat -root \n\ +- GL: raverhoop -root \n\ +- GL: splodesic -root \n\ +- GL: unicrud -root \n\ + + +pointerPollTime: 0:00:05 +pointerHysteresis: 10 +windowCreationTimeout:0:00:30 +initialDelay: 0:00:00 +GetViewPortIsFullOfLies:False +procInterrupts: True +xinputExtensionDev: False +overlayStderr: True +authWarningSlack: 20 + diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/ssh/sshd_config b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/ssh/sshd_config new file mode 100644 index 0000000..84e3114 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/ssh/sshd_config @@ -0,0 +1,127 @@ +# $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $ + +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin + +# 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. + +Protocol 2 +#Port 22 +AddressFamily inet +#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 +Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr +MACs hmac-sha2-256,hmac-sha2-512 +KexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256 +#RekeyLimit default none + +# Logging +#SyslogFacility AUTH +LogLevel INFO + +# Authentication: + +LoginGraceTime 60 +PermitRootLogin no +StrictModes yes +MaxAuthTries 4 +#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 yes +# Don't read the user's ~/.rhosts and ~/.shosts files +IgnoreRhosts yes + +# To disable tunneled clear text passwords, change to no here! +PasswordAuthentication no +PermitEmptyPasswords no + +# Change to yes to enable challenge-response passwords (beware issues with +# some PAM modules and threads) +ChallengeResponseAuthentication 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 ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +UsePAM yes + +RhostsRSAAuthentication no +#AllowAgentForwarding yes +#AllowTcpForwarding yes +#GatewayPorts no +X11Forwarding no +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PermitTTY yes +PrintMotd no +PrintLastLog yes +#TCPKeepAlive yes +#UseLogin no +UsePrivilegeSeparation sandbox +PermitUserEnvironment no +Compression no +ClientAliveInterval 300 +ClientAliveCountMax 0 +#UseDNS no +#PidFile /var/run/sshd.pid +#MaxStartups 10:30:100 +#PermitTunnel no +#ChrootDirectory none +#VersionAddendum none + +Banner=/etc/issue + +# 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/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/xdg/lxsession/LXDE/autostart b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/xdg/lxsession/LXDE/autostart new file mode 100644 index 0000000..4beadc3 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/etc/xdg/lxsession/LXDE/autostart @@ -0,0 +1,4 @@ +@lxpanel --profile LXDE +@pcmanfm --desktop --profile LXDE +@xscreensaver -no-splash +@/usr/local/bin/docker-load-wait.sh diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/root/.selected_editor b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/root/.selected_editor new file mode 100644 index 0000000..eb70eec --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/root/.selected_editor @@ -0,0 +1 @@ +SELECTED_EDITOR="/usr/bin/vim.tiny" diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/root/.vimrc b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/root/.vimrc new file mode 100644 index 0000000..cd52193 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/root/.vimrc @@ -0,0 +1 @@ +set nocompatible diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-cyberchef.desktop b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-cyberchef.desktop new file mode 100644 index 0000000..8b912a4 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-cyberchef.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Malcolm - CyberChef +Exec=/opt/firefox/firefox https://localhost/cyberchef/ +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=applications-science.png +Categories=Network; +StartupWMClass=Firefox +StartupNotify=true diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-kibana.desktop b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-kibana.desktop new file mode 100644 index 0000000..f7059f1 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-kibana.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Malcolm - Kibana +Exec=/opt/firefox/firefox https://localhost/kibana/ +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=/usr/share/icons/hicolor/48x48/kibana.png +Categories=Network; +StartupWMClass=Firefox +StartupNotify=true diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-logs.desktop b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-logs.desktop new file mode 100644 index 0000000..41e731b --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-logs.desktop @@ -0,0 +1,8 @@ +#!/usr/bin/env xdg-open +[Desktop Entry] +Name=Malcolm Debug Logs +Exec=lxterminal --command=/bin/bash\ -l\ -c\ "/usr/bin/python3\ ~/Malcolm/scripts/control.py\ --logs" +Comment=Monitor the debug output of Malcolm containers +Terminal=false +Type=Application +Icon=terminal.png diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-mapping.desktop b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-mapping.desktop new file mode 100644 index 0000000..1ec8d86 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-mapping.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Malcolm - Host and Subnet Name Mapping +Exec=/opt/firefox/firefox https://localhost/name-map-ui/ +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=server.png +Categories=Network; +StartupWMClass=Firefox +StartupNotify=true diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-moloch.desktop b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-moloch.desktop new file mode 100644 index 0000000..fbbceb2 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-moloch.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Malcolm - Arkime +Exec=/opt/firefox/firefox https://localhost/ +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=/usr/share/icons/hicolor/128x128/moloch.png +Categories=Network; +StartupWMClass=Firefox +StartupNotify=true diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-readme.desktop b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-readme.desktop new file mode 100644 index 0000000..62f5afc --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-readme.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Malcolm - README +Exec=/opt/firefox/firefox https://localhost/readme +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=help-browser +Categories=Network; +StartupWMClass=Firefox +StartupNotify=true diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-restart.desktop b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-restart.desktop new file mode 100644 index 0000000..1329aa8 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-restart.desktop @@ -0,0 +1,8 @@ +#!/usr/bin/env xdg-open +[Desktop Entry] +Name=Restart Malcolm +Exec=lxterminal --command=/bin/bash\ -l\ -c\ "/usr/bin/python3\ ~/Malcolm/scripts/control.py\ --restart" +Comment=Restart Malcolm +Terminal=false +Type=Application +Icon=redo.png diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-start.desktop b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-start.desktop new file mode 100644 index 0000000..c4a3861 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-start.desktop @@ -0,0 +1,8 @@ +#!/usr/bin/env xdg-open +[Desktop Entry] +Name=Start Malcolm +Exec=lxterminal --command=/bin/bash\ -l\ -c\ "/usr/bin/python3\ ~/Malcolm/scripts/control.py\ --start" +Comment=Start Malcolm +Terminal=false +Type=Application +Icon=/usr/share/icons/hicolor/64x64/malcolm.png diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-stop.desktop b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-stop.desktop new file mode 100644 index 0000000..16d8b05 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-stop.desktop @@ -0,0 +1,8 @@ +#!/usr/bin/env xdg-open +[Desktop Entry] +Name=Stop Malcolm +Exec=lxterminal --command=/bin/bash\ -l\ -c\ "/usr/bin/python3\ ~/Malcolm/scripts/control.py\ --stop" +Comment=Stop Malcolm +Terminal=false +Type=Application +Icon=exit.png diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-upload.desktop b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-upload.desktop new file mode 100644 index 0000000..1860f2d --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-upload.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Malcolm - Upload +Exec=/opt/firefox/firefox https://localhost/upload/ +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=up.png +Categories=Network; +StartupWMClass=Firefox +StartupNotify=true diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-users.desktop b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-users.desktop new file mode 100644 index 0000000..1c8c9b5 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/applications/malcolm-users.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Malcolm - User Management +Exec=/opt/firefox/firefox https://localhost:488/ +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=config-users.png +Categories=Network; +StartupWMClass=Firefox +StartupNotify=true diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/auditbeat/kibana/7/dashboard-custom/Auditbeat-auditd-overview-custom.json b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/auditbeat/kibana/7/dashboard-custom/Auditbeat-auditd-overview-custom.json new file mode 100644 index 0000000..1bb9304 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/auditbeat/kibana/7/dashboard-custom/Auditbeat-auditd-overview-custom.json @@ -0,0 +1,142 @@ +{ + "version": "7.6.2", + "objects": [ + { + "id": "072befc0-ffba-11e8-a854-ad7782ef6a55", + "type": "dashboard", + "updated_at": "2019-12-23T19:07:39.093Z", + "version": "WzE2MDIsMV0=", + "attributes": { + "description": "Summary of Linux kernel audit events.", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"version\":true,\"highlightAll\":true}" + }, + "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}", + "panelsJSON": "[{\"gridData\":{\"x\":0,\"y\":0,\"w\":28,\"h\":26,\"i\":\"1\"},\"version\":\"7.3.0\",\"panelIndex\":\"1\",\"panelRefName\":\"panel_0\"},{\"gridData\":{\"x\":28,\"y\":0,\"w\":20,\"h\":26,\"i\":\"4\"},\"version\":\"7.3.0\",\"panelIndex\":\"4\",\"panelRefName\":\"panel_1\"},{\"gridData\":{\"x\":0,\"y\":26,\"w\":48,\"h\":38,\"i\":\"5\"},\"version\":\"7.3.0\",\"panelIndex\":\"5\",\"embeddableConfig\":{\"columns\":[\"beat.hostname\",\"auditd.summary.actor.primary\",\"auditd.summary.actor.secondary\",\"auditd.summary.object.type\",\"event.action\",\"auditd.summary.object.primary\",\"auditd.summary.object.secondary\",\"auditd.summary.how\",\"auditd.result\"]},\"panelRefName\":\"panel_2\"}]", + "timeRestore": false, + "title": "[Auditbeat auditd] Overview dashboard", + "version": 1 + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "97680df0-c1c0-11e7-8995-936807a28b16" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "08679220-c25a-11e7-8692-232bd1143e8a" + }, + { + "name": "panel_2", + "type": "search", + "id": "0f10c430-c1c3-11e7-8995-936807a28b16" + } + ], + "migrationVersion": { + "dashboard": "7.3.0" + } + }, + { + "id": "97680df0-c1c0-11e7-8995-936807a28b16", + "type": "visualization", + "updated_at": "2019-12-23T19:07:39.093Z", + "version": "WzE1OTksMV0=", + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "title": "Event Actions [Auditbeat Auditd Overview]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"type\":\"metrics\",\"params\":{\"bar_color_rules\":[{\"id\":\"5bfc71a0-c1bd-11e7-938f-ab0645b6c431\"}],\"gauge_color_rules\":[{\"id\":\"5d20a650-c1bd-11e7-938f-ab0645b6c431\"}],\"background_color_rules\":[{\"id\":\"58c95a20-c1bd-11e7-938f-ab0645b6c431\"}],\"time_field\":\"@timestamp\",\"index_pattern\":\"auditbeat-*\",\"gauge_inner_width\":10,\"series\":[{\"line_width\":1,\"terms_field\":\"event.action\",\"point_size\":1,\"color\":\"#68BC00\",\"label\":\"Actions\",\"metrics\":[{\"type\":\"count\",\"id\":\"6b9fb2d0-c1bc-11e7-938f-ab0645b6c431\"}],\"seperate_axis\":0,\"split_mode\":\"terms\",\"chart_type\":\"line\",\"stacked\":\"none\",\"axis_position\":\"right\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"fill\":0.5}],\"axis_formatter\":\"number\",\"interval\":\"auto\",\"filter\":{\"query\":\"event.module:auditd\",\"language\":\"lucene\"},\"legend_position\":\"left\",\"show_legend\":1,\"show_grid\":1,\"gauge_style\":\"half\",\"axis_position\":\"left\",\"gauge_width\":10,\"type\":\"timeseries\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\"},\"aggs\":[],\"title\":\"Event Actions [Auditbeat Auditd Overview]\"}" + }, + "references": [], + "migrationVersion": { + "visualization": "7.4.2" + } + }, + { + "id": "08679220-c25a-11e7-8692-232bd1143e8a", + "type": "visualization", + "updated_at": "2019-12-23T19:07:39.093Z", + "version": "WzE2MDAsMV0=", + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "title": "Event Categories [Auditbeat Auditd]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"type\":\"pie\",\"params\":{\"legendPosition\":\"right\",\"type\":\"pie\",\"isDonut\":true,\"addTooltip\":true,\"addLegend\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"event.category\",\"customLabel\":\"Category\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"event.action\",\"customLabel\":\"Action\",\"order\":\"desc\",\"size\":20},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Event Categories [Auditbeat Auditd]\"}", + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "auditbeat-*" + }, + { + "type": "search", + "name": "search_0", + "id": "0f10c430-c1c3-11e7-8995-936807a28b16" + } + ], + "migrationVersion": { + "visualization": "7.4.2" + } + }, + { + "id": "0f10c430-c1c3-11e7-8995-936807a28b16", + "type": "search", + "updated_at": "2019-12-23T19:07:39.093Z", + "version": "WzE2MDEsMV0=", + "attributes": { + "columns": [ + "beat.hostname", + "auditd.summary.actor.primary", + "auditd.summary.actor.secondary", + "event.action", + "auditd.summary.object.type", + "auditd.summary.object.primary", + "auditd.summary.object.secondary", + "auditd.summary.how", + "auditd.result" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"query\":{\"match\":{\"event.module\":{\"query\":\"auditd\",\"type\":\"phrase\"}}},\"meta\":{\"value\":\"auditd\",\"disabled\":false,\"alias\":null,\"params\":{\"query\":\"auditd\",\"type\":\"phrase\"},\"key\":\"event.module\",\"negate\":false,\"type\":\"phrase\",\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"$state\":{\"store\":\"appState\"}}],\"version\":true,\"highlightAll\":true,\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "Audit Event Table [Auditbeat Auditd]", + "version": 1 + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "auditbeat-*" + }, + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern", + "id": "auditbeat-*" + } + ], + "migrationVersion": { + "search": "7.4.0" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/filebeat/kibana/7/dashboard-custom/Filebeat-syslog-custom.json b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/filebeat/kibana/7/dashboard-custom/Filebeat-syslog-custom.json new file mode 100644 index 0000000..ba4da7d --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/filebeat/kibana/7/dashboard-custom/Filebeat-syslog-custom.json @@ -0,0 +1,167 @@ +{ + "version": "7.6.2", + "objects": [ + { + "id": "1ca59220-ffb0-11e8-a854-ad7782ef6a55", + "type": "dashboard", + "updated_at": "2019-12-23T19:04:34.880Z", + "version": "WzE0MzcsMV0=", + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}" + }, + "optionsJSON": "{\"darkTheme\":true,\"hidePanelTitles\":false,\"useMargins\":false}", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":27,\"w\":48,\"h\":41,\"i\":\"1\"},\"panelIndex\":\"1\",\"title\":\"Syslog Events\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":30,\"y\":0,\"w\":18,\"h\":27,\"i\":\"3\"},\"panelIndex\":\"3\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":17,\"y\":0,\"w\":13,\"h\":27,\"i\":\"4\"},\"panelIndex\":\"4\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_2\"},{\"gridData\":{\"x\":0,\"y\":0,\"w\":17,\"h\":27,\"i\":\"5\"},\"version\":\"7.3.0\",\"panelIndex\":\"5\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "timeRestore": false, + "title": "[Filebeat] Syslog dashboard", + "version": 1 + }, + "references": [ + { + "name": "panel_0", + "type": "search", + "id": "c1e3d120-ffb0-11e8-a854-ad7782ef6a55" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "462e04d0-ffb3-11e8-a854-ad7782ef6a55" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "cc3f9cf0-ffb3-11e8-a854-ad7782ef6a55" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "96e77ef0-ffb4-11e8-a854-ad7782ef6a55" + } + ], + "migrationVersion": { + "dashboard": "7.3.0" + } + }, + { + "id": "c1e3d120-ffb0-11e8-a854-ad7782ef6a55", + "type": "search", + "updated_at": "2019-12-23T19:04:34.880Z", + "version": "WzE0MzMsMV0=", + "attributes": { + "columns": [ + "host.name", + "syslog.severity_label", + "syslog.facility_label", + "process.program", + "message" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"_exists_:syslog\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Filebeat] Syslog search", + "version": 1 + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "filebeat-*" + } + ], + "migrationVersion": { + "search": "7.4.0" + } + }, + { + "id": "462e04d0-ffb3-11e8-a854-ad7782ef6a55", + "type": "visualization", + "updated_at": "2019-12-23T19:04:34.880Z", + "version": "WzE0MzQsMV0=", + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "[Filebeat] Syslog by Host Timeline", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"[Filebeat] Syslog by Host Timeline\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"timeRange\":{\"from\":\"now-15m\",\"to\":\"now\",\"mode\":\"quick\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"host.name\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Host\"}}]}", + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c1e3d120-ffb0-11e8-a854-ad7782ef6a55" + } + ], + "migrationVersion": { + "visualization": "7.4.2" + } + }, + { + "id": "cc3f9cf0-ffb3-11e8-a854-ad7782ef6a55", + "type": "visualization", + "updated_at": "2019-12-23T19:04:34.880Z", + "version": "WzE0MzUsMV0=", + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "[Filebeat] Syslog Process Cloud", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"[Filebeat] Syslog Process Cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"log\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":72,\"showLabel\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"process.program\",\"size\":25,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Process\"}}]}", + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c1e3d120-ffb0-11e8-a854-ad7782ef6a55" + } + ], + "migrationVersion": { + "visualization": "7.4.2" + } + }, + { + "id": "96e77ef0-ffb4-11e8-a854-ad7782ef6a55", + "type": "visualization", + "updated_at": "2019-12-23T19:04:34.880Z", + "version": "WzE0MzYsMV0=", + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "[Filebeat] Syslog Facility by Host Pie Chart", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"[Filebeat] Syslog Facility by Host Pie Chart\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"labels\":{\"show\":false,\"values\":true,\"last_level\":false,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"syslog.facility_label\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Syslog Facility\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"host.name\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Host\"}}]}", + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c1e3d120-ffb0-11e8-a854-ad7782ef6a55" + } + ], + "migrationVersion": { + "visualization": "7.4.2" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/icons/hicolor/128x128/moloch.png b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/icons/hicolor/128x128/moloch.png new file mode 100644 index 0000000..26e3f76 Binary files /dev/null and b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/icons/hicolor/128x128/moloch.png differ diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/icons/hicolor/48x48/kibana.png b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/icons/hicolor/48x48/kibana.png new file mode 100644 index 0000000..ed8daed Binary files /dev/null and b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/icons/hicolor/48x48/kibana.png differ diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/protologbeat/kibana/7/dashboard/Protologbeat-temperatures-dashboard.json b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/protologbeat/kibana/7/dashboard/Protologbeat-temperatures-dashboard.json new file mode 100644 index 0000000..f439289 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/protologbeat/kibana/7/dashboard/Protologbeat-temperatures-dashboard.json @@ -0,0 +1,112 @@ +{ + "objects": [ + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"index\":\"protologbeat-*\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "Temperature Timeline", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"Temperature Timeline\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"grid\":{\"categoryLines\":true,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Max cpu_temp_avg\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Maximum CPU °C\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":false,\"interpolate\":\"cardinal\"},{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":false,\"interpolate\":\"cardinal\",\"data\":{\"id\":\"3\",\"label\":\"Maximum Other °C\"},\"valueAxis\":\"ValueAxis-1\"},{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":false,\"interpolate\":\"cardinal\",\"data\":{\"id\":\"4\",\"label\":\"Maximum GPU °C\"},\"valueAxis\":\"ValueAxis-1\"},{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":false,\"interpolate\":\"cardinal\",\"data\":{\"id\":\"8\",\"label\":\"Maximum Storage °C\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"cpu_temp_avg\",\"customLabel\":\"Maximum CPU °C\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"timeRange\":{\"from\":\"now-12h\",\"to\":\"now\",\"mode\":\"quick\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"time_zone\":\"America/Denver\",\"drop_partials\":false,\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"other_temp_avg\",\"customLabel\":\"Maximum Other °C\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"gpu_temp_avg\",\"customLabel\":\"Maximum GPU °C\"}},{\"id\":\"8\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"hdd_temp_avg\",\"customLabel\":\"Maximum Storage °C\"}}]}" + }, + "id": "752a7e30-03af-11e9-bf7f-6138c205dfb3", + "type": "visualization", + "updated_at": "2018-12-20T18:16:43.966Z", + "version": 1 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "Host Chooser", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"Host Chooser\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1545248066352\",\"indexPattern\":\"protologbeat-*\",\"fieldName\":\"host.name\",\"parent\":\"\",\"label\":\"Host\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"}}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}" + }, + "id": "293d13a0-03c5-11e9-b42b-a7822d24ca20", + "type": "visualization", + "updated_at": "2018-12-19T19:34:54.681Z", + "version": 1 + }, + { + "attributes": { + "columns": [ + "host.name", + "cpu_temp_avg", + "hdd_temp_avg", + "other_temp_avg" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"index\":\"protologbeat-*\",\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "sort": [ + "@timestamp", + "desc" + ], + "title": "Protologbeat search", + "version": 1 + }, + "id": "65345580-03c5-11e9-b42b-a7822d24ca20", + "type": "search", + "updated_at": "2018-12-20T18:16:42.939Z", + "version": 1 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"index\":\"protologbeat-*\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "CPU and Storage Temperature Gauge", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 60\":\"rgb(0,104,55)\",\"60 - 70\":\"rgb(255,255,190)\",\"70 - 90\":\"rgb(165,0,38)\"}}}", + "version": 1, + "visState": "{\"title\":\"CPU and Storage Temperature Gauge\",\"type\":\"gauge\",\"params\":{\"type\":\"gauge\",\"addTooltip\":true,\"addLegend\":false,\"isDisplayWarning\":false,\"gauge\":{\"verticalSplit\":false,\"extendRange\":true,\"percentageMode\":false,\"gaugeType\":\"Arc\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"Labels\",\"colorsRange\":[{\"from\":0,\"to\":60},{\"from\":60,\"to\":70},{\"from\":70,\"to\":90}],\"invertColors\":false,\"labels\":{\"show\":true,\"color\":\"black\"},\"scale\":{\"show\":true,\"labels\":false,\"color\":\"#333\"},\"type\":\"meter\",\"style\":{\"bgWidth\":0.9,\"width\":0.9,\"mask\":false,\"bgMask\":false,\"maskBars\":50,\"bgFill\":\"#eee\",\"bgColor\":false,\"subText\":\"\",\"fontSize\":60,\"labelColor\":true}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"cpu_temp_avg\",\"customLabel\":\"Maximum CPU °C\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"hdd_temp_avg\",\"customLabel\":\"Maximum Storage °C\"}}]}" + }, + "id": "db628ba0-03c5-11e9-b42b-a7822d24ca20", + "type": "visualization", + "updated_at": "2018-12-20T18:16:43.991Z", + "version": 1 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"index\":\"protologbeat-*\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "Maximum Sensor CPU and Storage Temperatures", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"Maximum Sensor CPU and Storage Temperatures\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"},\"valueAxis\":\"ValueAxis-1\"},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100,\"rotate\":0},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\",\"defaultYExtents\":false},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Maximum CPU °C\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Maximum CPU °C\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true},{\"show\":true,\"mode\":\"normal\",\"type\":\"histogram\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"data\":{\"id\":\"3\",\"label\":\"Maximum Storage °C\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"orderBucketsBySum\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"cpu_temp_avg\",\"customLabel\":\"Maximum CPU °C\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"host.name\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Sensor Name\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"hdd_temp_avg\",\"customLabel\":\"Maximum Storage °C\"}}]}" + }, + "id": "923c3ce0-03c6-11e9-b42b-a7822d24ca20", + "type": "visualization", + "updated_at": "2018-12-20T18:16:43.961Z", + "version": 1 + }, + { + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}" + }, + "optionsJSON": "{\"darkTheme\":true,\"hidePanelTitles\":false,\"useMargins\":false}", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":31,\"w\":48,\"h\":35,\"i\":\"1\"},\"id\":\"752a7e30-03af-11e9-bf7f-6138c205dfb3\",\"panelIndex\":\"1\",\"type\":\"visualization\",\"version\":\"6.5.3\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":0,\"w\":20,\"h\":11,\"i\":\"2\"},\"id\":\"293d13a0-03c5-11e9-b42b-a7822d24ca20\",\"panelIndex\":\"2\",\"title\":\"Sensor Filter\",\"type\":\"visualization\",\"version\":\"6.5.3\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":66,\"w\":48,\"h\":29,\"i\":\"3\"},\"id\":\"65345580-03c5-11e9-b42b-a7822d24ca20\",\"panelIndex\":\"3\",\"title\":\"Sensor Metrics\",\"type\":\"search\",\"version\":\"6.5.3\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":11,\"w\":20,\"h\":20,\"i\":\"4\"},\"id\":\"db628ba0-03c5-11e9-b42b-a7822d24ca20\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.5.3\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":20,\"y\":0,\"w\":28,\"h\":31,\"i\":\"5\"},\"id\":\"923c3ce0-03c6-11e9-b42b-a7822d24ca20\",\"panelIndex\":\"5\",\"type\":\"visualization\",\"version\":\"6.5.3\"}]", + "timeRestore": false, + "title": "Sensor Temperature dashboard", + "version": 1 + }, + "id": "3c519150-03c5-11e9-b42b-a7822d24ca20", + "type": "dashboard", + "updated_at": "2018-12-20T18:16:43.882Z", + "version": 1 + } + ], + "version": "6.5.3" +} diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/protologbeat/kibana/7/index-pattern/protologbeat.json b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/protologbeat/kibana/7/index-pattern/protologbeat.json new file mode 100644 index 0000000..d686f2c --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/includes.chroot/usr/share/protologbeat/kibana/7/index-pattern/protologbeat.json @@ -0,0 +1,16 @@ +{ + "objects": [ + { + "attributes": { + "fieldFormatMap": "{\"@timestamp\":{\"id\":\"date\"}}", + "fields": "[{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"counter\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"cpu_rpm_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"cpu_volt_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"cpu_temp_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"gpu_rpm_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"gpu_volt_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"gpu_temp_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"hdd_temp_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"other_rpm_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"other_volt_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"other_temp_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"sensors.adapter\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"sensors.class\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"sensors.label\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"sensors.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"sensors.units\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"sensors.value\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"beat.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"beat.hostname\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"event.timezone\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"beat.version\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"@timestamp\",\"scripted\":false,\"searchable\":true,\"type\":\"date\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"tags\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"fields\",\"scripted\":false,\"searchable\":true},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"error.message\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"error.code\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"error.type\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.provider\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.instance_id\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.instance_name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.machine_type\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.availability_zone\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.project_id\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.region\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"docker.container.id\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"docker.container.image\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"docker.container.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"docker.container.labels\",\"scripted\":false,\"searchable\":true},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.id\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.architecture\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.os.platform\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.os.version\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.os.family\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.ip\",\"scripted\":false,\"searchable\":true},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.mac\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.pod.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.pod.uid\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.namespace\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.node.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.labels\",\"scripted\":false,\"searchable\":true},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.annotations\",\"scripted\":false,\"searchable\":true},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.container.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.container.image\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"_id\",\"scripted\":false,\"searchable\":false,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"_type\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"_index\",\"scripted\":false,\"searchable\":false,\"type\":\"string\"},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"_score\",\"scripted\":false,\"searchable\":false,\"type\":\"number\"}]", + "timeFieldName": "@timestamp", + "title": "protologbeat-*" + }, + "id": "protologbeat-*", + "type": "index-pattern", + "version": 1 + } + ], + "version": "6.5.3" +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/apps.list.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/apps.list.chroot new file mode 100644 index 0000000..d8e853c --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/apps.list.chroot @@ -0,0 +1,6 @@ +file-roller +galculator +mousepad +mupdf +terminator +xdiskusage \ No newline at end of file diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/desktopmanager.list.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/desktopmanager.list.chroot new file mode 100644 index 0000000..7a1dc55 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/desktopmanager.list.chroot @@ -0,0 +1,20 @@ +arandr +dconf-cli +fonts-symbola +libnotify-bin +lightdm +lxde +lxpanel +lxsession +open-vm-tools-desktop +x11-apps +x11-session-utils +x11-xfs-utils +x11-xserver-utils +xinit +xorg +xscreensaver +xserver-xorg +xserver-xorg-core +xserver-xorg-video-qxl +xserver-xorg-video-vmware diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/docker.list.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/docker.list.chroot new file mode 100644 index 0000000..a4472cf --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/docker.list.chroot @@ -0,0 +1,3 @@ +docker-ce +docker-ce-cli +containerd.io \ No newline at end of file diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/grub.list.binary b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/grub.list.binary new file mode 100644 index 0000000..bed168d --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/grub.list.binary @@ -0,0 +1,3 @@ +grub-pc-bin +grub-efi-amd64-bin +grub-efi-amd64 diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/net.list.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/net.list.chroot new file mode 100644 index 0000000..de886bf --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/net.list.chroot @@ -0,0 +1,22 @@ +curl +ethtool +htpdate +iproute2 +iputils-arping +iputils-ping +iputils-tracepath +libcurl4 +libssh2-1 +macchanger +netcat-openbsd +ntp +openssh-client +openssh-server +openvpn +rsync +snmp +ssh-askpass +socat +traceroute +ufw +wget diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/python.list.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/python.list.chroot new file mode 100644 index 0000000..291138d --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/python.list.chroot @@ -0,0 +1,9 @@ +python3 +python3-pip +python3-bs4 +python3-colorama +python3-netifaces +python3-psutil +python3-pycryptodome +python3-dialog +python3-requests \ No newline at end of file diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/system.list.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/system.list.chroot new file mode 100644 index 0000000..991d2aa --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/system.list.chroot @@ -0,0 +1,147 @@ +accountsservice +apache2-utils +apparmor +apparmor-profiles +apparmor-utils +apt +arj +atop +audispd-plugins +auditd +bash-completion +bc +bcrypt +bridge-utils +btrfs-progs +busybox +bzip2 +ccache +cifs-utils +coreutils +cpio +cpufrequtils +cracklib-runtime +cryptsetup +cryptsetup-bin +curl +debsums +dialog +dmidecode +dosfstools +ebtables +efibootmgr +eject +fatresize +fonts-dejavu +fuse +fuseext2 +fusefat +fuseiso +fusesmb +gawk +gdb +gdebi +gettext +ghostscript +ghostscript-x +git +gnupg +gnupg1 +gnupg2 +gpart +gparted +gvfs +gvfs-backends +gvfs-daemons +gvfs-fuse +gzip +hddtemp +hdparm +hfsplus +hfsprogs +hfsutils +htop +hwdata +javascript-common +less +libffi6 +libffi-dev +libgtk2.0-bin +libnl-3-200 +libnl-genl-3-200 +libnl-route-3-200 +libpam-pwquality +libssl-dev +libykpers-1-1 +libyubikey0 +lm-sensors +localepurge +lshw +lsof +lvm2 +lzma +make +mcrypt +md5deep +menu +miscfiles +moreutils +mtools +multitail +ncdu +neofetch +net-tools +ntfs-3g +openssl +p7zip +p7zip-full +p7zip-rar +parprouted +partclone +parted +pciutils +pcregrep +pigz +pmount +policykit-1 +prelink +procps +psmisc +pv +pwgen +rar +rtkit +samba-libs +screen +sed +sharutils +shed +smartmontools +smbclient +sparse +speedometer +squashfs-tools +strace +sudo +swig +sysstat +tar +tmux +tofrodos +tree +udisks2 +unrar +unzip +upower +usbutils +user-setup +uuid-runtime +whois +xbitmaps +xfsprogs +xsltproc +xz-utils +zenity +zenity-common +zip +zlib1g-dev diff --git a/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/vbox.list.chroot b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/vbox.list.chroot new file mode 100644 index 0000000..64fbb9c --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/config/package-lists/vbox.list.chroot @@ -0,0 +1,3 @@ +virtualbox-guest-dkms +virtualbox-guest-utils +virtualbox-guest-x11 \ No newline at end of file diff --git a/Vagrant/resources/malcolm/malcolm-iso/vagrant/Vagrantfile b/Vagrant/resources/malcolm/malcolm-iso/vagrant/Vagrantfile new file mode 100644 index 0000000..a650875 --- /dev/null +++ b/Vagrant/resources/malcolm/malcolm-iso/vagrant/Vagrantfile @@ -0,0 +1,63 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +unless Vagrant.has_plugin?("vagrant-reload") + raise 'vagrant-reload plugin is not installed!' +end + +# hack: https://github.com/hashicorp/vagrant/issues/8878#issuecomment-345112810 +class VagrantPlugins::ProviderVirtualBox::Action::Network + def dhcp_server_matches_config?(dhcp_server, config) + true + end +end + +Vagrant.configure("2") do |config| + + config.vm.box = "bento/debian-10" + + config.vm.network "private_network", type: "dhcp" + + config.vm.synced_folder '.', '/vagrant', disabled: true + config.vm.synced_folder "../..", "/malcolm-build" + + if Vagrant.has_plugin?("vagrant-vbguest") + config.vbguest.auto_update = false + end + + config.vm.provider "virtualbox" do |vb| + vb.memory = "8192" + vb.cpus = 4 + end + + config.vm.provision "shell", inline: <<-STEP1 + dpkg-reconfigure debconf -f noninteractive -p critical + export DEBIAN_FRONTEND=noninteractive + apt-mark hold grub-pc + apt-get -qqy update + apt-get -y dist-upgrade + sed -i "s/main/main contrib non-free/g" /etc/apt/sources.list + echo "deb http://httpredir.debian.org/debian/ buster-backports main contrib non-free" >> /etc/apt/sources.list + echo "deb-src http://httpredir.debian.org/debian/ buster-backports main contrib non-free" >> /etc/apt/sources.list + apt-get -qqy update + export KERNEL_VERSION=$(apt-cache search linux-image-5.10 | grep -Pv -- '(-(rt|cloud)-amd64|amd64-(dbg|unsigned))' | sort -r --sort=version | awk '{print $1}' | head -n 1 | sed 's/^linux-image-//' | sed 's/-amd64$//') + apt-get -t buster-backports -y install \ + linux-image-$KERNEL_VERSION-amd64 linux-headers-$KERNEL_VERSION-amd64 linux-headers-$KERNEL_VERSION-common \ + dkms build-essential linux-kbuild-5.10 linux-compiler-gcc-8-x86 \ + firmware-linux firmware-linux-nonfree firmware-misc-nonfree firmware-amd-graphics + ls /dev/disk/by-id/ata-* | grep -v '\\-part' | head -n 1 | xargs -r -l grub-install + STEP1 + config.vm.provision :reload + + config.vm.provision "shell", inline: <<-STEP2 + export DEBIAN_FRONTEND=noninteractive + apt-get -qqy update + apt-get -t buster-backports -y install \ + rsync git live-build debootstrap xorriso squashfs-tools genisoimage pandoc imagemagick \ + apt-transport-https ca-certificates curl gnupg2 software-properties-common + curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - + add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" + apt-get -qqy update + apt-get -y install docker-ce docker-ce-cli containerd.io + usermod -a -G docker vagrant + STEP2 +end diff --git a/Vagrant/resources/malcolm/moloch-logs/.gitignore b/Vagrant/resources/malcolm/moloch-logs/.gitignore new file mode 100644 index 0000000..a5baada --- /dev/null +++ b/Vagrant/resources/malcolm/moloch-logs/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore + diff --git a/Vagrant/resources/malcolm/moloch-raw/.gitignore b/Vagrant/resources/malcolm/moloch-raw/.gitignore new file mode 100644 index 0000000..a5baada --- /dev/null +++ b/Vagrant/resources/malcolm/moloch-raw/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore + diff --git a/Vagrant/resources/malcolm/moloch/etc/config.ini b/Vagrant/resources/malcolm/moloch/etc/config.ini new file mode 100644 index 0000000..ec95452 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/etc/config.ini @@ -0,0 +1,1219 @@ +# Arkime config.ini file +# Latest settings documentation: https://github.com/arkime/arkime/wiki/Settings +# See also https://github.com/arkime/arkime/blob/master/release/config.ini.sample +# + +[default] +elasticsearch=http://elasticsearch:9200 +cronQueries=true +rotateIndex=daily +passwordSecret=Malcolm +httpRealm=Arkime +interface=eth0 +wiseHost=127.0.0.1 +wisePort=8081 +pcapDir=/data/pcap/processed +readTruncatedPackets=true +maxFileSizeG=1 +tcpTimeout=600 +tcpSaveTimeout=720 +udpTimeout=30 +icmpTimeout=10 +maxStreams=1000000 +maxPackets=10000 +freeSpaceG=10% +viewPort=8005 +geoLite2Country=/data/moloch/etc/GeoLite2-Country.mmdb +geoLite2ASN=/data/moloch/etc/GeoLite2-ASN.mmdb +rirFile=/data/moloch/etc/ipv4-address-space.csv +ouiFile=/data/moloch/etc/oui.txt +dropUser=arkime +dropGroup=arkime +# implicit auto-creation of users for Arkime (see https://github.com/arkime/arkime/pull/1120) +# The userAutoCreateTmpl should more or less match what's in /etc/user_settings.json +# which is what's used when creating the default admin user. +userNameHeader=http_auth_http_user +userAutoCreateTmpl={"userId": "${this.http_auth_http_user}", "userName": "${this.http_auth_http_user}", "enabled": true, "createEnabled": false, "webEnabled": true, "headerAuthEnabled": true, "emailSearch": true, "removeEnabled": false, "packetSearch": true, "hideStats": false, "hideFiles": false, "hidePcap": false, "disablePcapDownload": false, "settings": { "timezone": "local", "detailFormat": "last", "showTimestamps": "last", "sortColumn": "start", "sortDirection": "desc", "spiGraph": "protocol", "connSrcField": "srcIp", "connDstField": "dstIp", "numPackets": "last", "theme" : "custom1: #222222,#E2E2E2,#FFFFFF,#00789E,#004A79,#017D73,#092B40,#42b7c5,#2A7580,#ecb30a,#333333,#89ADCC,#6D6D6D,#FFE7E7,#ECFEFF", "manualQuery": false }, "views": { "Public IP Addresses": { "expression": "(country.dst == EXISTS!) || (country.src == EXISTS!) || (ip.dst == EXISTS! && ip.dst != 0.0.0.0/8 && ip.dst != 10.0.0.0/8 && ip.dst != 100.64.0.0/10 && ip.dst != 127.0.0.0/8 && ip.dst != 169.254.0.0/16 && ip.dst != 172.16.0.0/12 && ip.dst != 192.0.0.0/24 && ip.dst != 192.0.2.0/24 && ip.dst != 192.88.99.0/24 && ip.dst != 192.168.0.0/16 && ip.dst != 198.18.0.0/15 && ip.dst != 198.51.100.0/24 && ip.dst != 203.0.113.0/24 && ip.dst != 224.0.0.0/4 && ip.dst != 232.0.0.0/8 && ip.dst != 233.0.0.0/8 && ip.dst != 234.0.0.0/8 && ip.dst != 239.0.0.0/8 && ip.dst != 240.0.0.0/4 && ip.dst != 255.255.255.255 && ip.dst != :: && ip.dst != ::1 && ip.dst != ff00::/8 && ip.dst != fe80::/10 && ip.dst != fc00::/7 && ip.dst != fd00::/8) || (ip.src == EXISTS! && ip.src != 0.0.0.0/8 && ip.src != 10.0.0.0/8 && ip.src != 100.64.0.0/10 && ip.src != 127.0.0.0/8 && ip.src != 169.254.0.0/16 && ip.src != 172.16.0.0/12 && ip.src != 192.0.0.0/24 && ip.src != 192.0.2.0/24 && ip.src != 192.88.99.0/24 && ip.src != 192.168.0.0/16 && ip.src != 198.18.0.0/15 && ip.src != 198.51.100.0/24 && ip.src != 203.0.113.0/24 && ip.src != 224.0.0.0/4 && ip.src != 232.0.0.0/8 && ip.src != 233.0.0.0/8 && ip.src != 234.0.0.0/8 && ip.src != 239.0.0.0/8 && ip.src != 240.0.0.0/4 && ip.src != 255.255.255.255 && ip.src != :: && ip.src != ::1 && ip.src != ff00::/8 && ip.src != fe80::/10 && ip.src != fc00::/7 && ip.src != fd00::/8)" }, "PCAP Files": { "expression": "zeek.logType != EXISTS!" }, "Zeek Logs": { "expression": "zeek.logType == EXISTS!" }, "Zeek conn.log": { "expression": "zeek.logType == conn" }, "Zeek Exclude conn.log": { "expression": "zeek.logType == EXISTS! && zeek.logType != conn" } }, "tableStates": { "sessionsNew": { "order": [ [ "firstPacket", "desc" ] ], "visibleHeaders": [ "protocol", "zeek.logType", "firstPacket", "lastPacket", "src", "srcPort", "dst", "dstPort", "totPackets", "dbby", "tags", "info" ] } } } +parseSMTP=true +parseSMB=true +parseQSValue=false +supportSha256=false +maxReqBody=64 +config.reqBodyOnlyUtf8=true +smtpIpHeaders=X-Originating-IP:;X-Barracuda-Apparent-Source-IP: +parsersDir=/data/moloch/parsers +pluginsDir=/data/moloch/plugins +plugins=wise.so +viewerPlugins=wise.js +spiDataMaxIndices=7 +packetThreads=2 +pcapWriteMethod=simple +pcapWriteSize=262143 +dbBulkSize=300000 +compressES=false +maxESConns=30 +maxESRequests=500 +packetsPerPoll=50000 +antiSynDrop=true +logEveryXPackets=100000 +logUnknownProtocols=false +logESRequests=true +logFileCreation=true +# temporarily disabling viewer autocomplete to see if it helps slugishness +valueAutoComplete=false + +[custom-fields] +# see https://docs.zeek.org/en/stable/script-reference/log-files.html for Zeek logfile documentation + +# id information +zeek.uid=db:zeek.uid;kind:termfield;friendly:Zeek Connection ID;help:Zeek Connection ID +zeek.community_id=db:zeek.community_id;kind:termfield;friendly:Zeek Connection Community ID;help:Zeek Connection Community ID +zeek.logType=db:zeek.logType;kind:termfield;friendly:Zeek Log Type;help:Zeek Log Type +zeek.ts=db:zeek.ts;kind:termfield;friendly:Timestamp;help:Zeek Timestamp +host.name=db:host.name;kind:termfield;friendly:Zeek Node;help:Zeek Node + +# basic connection information +zeek.orig_h=db:zeek.orig_h;kind:termfield;friendly:Originating host;help:Originating Host +zeek.orig_p=db:zeek.orig_p;kind:integer;friendly:Originating port;help:Originating Port +zeek.orig_l2_addr=db:zeek.orig_l2_addr;kind:termfield;friendly:Originating MAC;help:Originating MAC +zeek.orig_l2_oui=db:zeek.orig_l2_oui;kind:termfield;friendly:Originating OUI;help:Originating OUI +zeek.orig_hostname=db:zeek.orig_hostname;kind:termfield;friendly:Originating Host Name;help:Originating Host Name +zeek.orig_segment=db:zeek.orig_segment;kind:termfield;friendly:Originating Network Segment;help:Originating Network Segment +zeek.source_ip_reverse_dns=db:zeek.source_ip_reverse_dns;kind:termfield;friendly:Originating IP Reverse DNS;help:Originating IP Reverse DNS +zeek.source_geo.city_name=db:zeek.source_geo.city_name;kind:termfield;friendly:Originating GeoIP City;help:Originating GeoIP City +zeek.source_geo.country_name=db:zeek.source_geo.country_name;kind:termfield;friendly:Originating GeoIP Country;help:Originating GeoIP Country +zeek.resp_h=db:zeek.resp_h;kind:termfield;friendly:Responding host;help:Responding Host +zeek.resp_p=db:zeek.resp_p;kind:integer;friendly:Responding port;help:Responding Port +zeek.resp_l2_addr=db:zeek.resp_l2_addr;kind:termfield;friendly:Responding MAC;help:Responding MAC +zeek.resp_l2_oui=db:zeek.resp_l2_oui;kind:termfield;friendly:Responding OUI;help:Responding OUI +zeek.resp_hostname=db:zeek.resp_hostname;kind:termfield;friendly:Responding Host Name;help:Responding Host Name +zeek.resp_segment=db:zeek.resp_segment;kind:termfield;friendly:Responding Network Segment;help:Responding Network Segment +zeek.destination_ip_reverse_dns=db:zeek.destination_ip_reverse_dns;kind:termfield;friendly:Responding IP Reverse DNS;help:Responding IP Reverse DNS +zeek.destination_geo.city_name=db:zeek.destination_geo.city_name;kind:termfield;friendly:Responding GeoIP City;help:Responding GeoIP City +zeek.destination_geo.country_name=db:zeek.destination_geo.country_name;kind:termfield;friendly:Responding GeoIP Country;help:Responding GeoIP Country +zeek.proto=db:zeek.proto;kind:lotermfield;friendly:Protocol;help:Protocol +zeek.service=db:zeek.service;kind:termfield;friendly:Service;help:Service +zeek.service_version=db:zeek.service_version;kind:termfield;friendly:Service Version;help:Service Version +zeek.action=db:zeek.action;kind:termfield;friendly:Action;help:Action +zeek.result=db:zeek.result;kind:termfield;friendly:Result;help:Result +zeek.user=db:zeek.user;kind:termfield;friendly:User;help:User +zeek.password=db:zeek.password;kind:termfield;friendly:Password;help:Password +zeek.freq_score_v1=db:zeek_dns.freq_score_v1;kind:termfield;friendly:Freq Score v1;help:Freq Score v1 +zeek.freq_score_v2=db:zeek_dns.freq_score_v2;kind:termfield;friendly:Freq Score v2;help:Freq Score v2 + +# file information +zeek.fuid=db:zeek.fuid;kind:termfield;friendly:File ID;help:File ID +zeek.filename=db:zeek.filename;kind:termfield;friendly:File Name;help:File Name +zeek.filetype=db:zeek.filetype;kind:termfield;friendly:File Magic;help:File Magic + +# conn.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/conn/main.zeek.html#type-Conn::Info +zeek_conn.duration=db:zeek_conn.duration;kind:termfield;friendly:Duration;help:Duration +zeek_conn.orig_bytes=db:zeek_conn.orig_bytes;kind:integer;friendly:Originating Bytes;help:Originating Bytes +zeek_conn.resp_bytes=db:zeek_conn.resp_bytes;kind:integer;friendly:Responding Bytes;help:Responding Bytes +zeek_conn.conn_state=db:zeek_conn.conn_state;kind:termfield;friendly:Connection State Code;help:Connection State Code +zeek_conn.conn_state_description=db:zeek_conn.conn_state_description;kind:termfield;friendly:conn Connection State;help:conn Connection State +zeek_conn.local_orig=db:zeek_conn.local_orig;kind:termfield;friendly:Local Originator;help:Local Originator +zeek_conn.local_resp=db:zeek_conn.local_resp;kind:termfield;friendly:Local Responder;help:Local Responder +zeek_conn.missed_bytes=db:zeek_conn.missed_bytes;kind:integer;friendly:Missed Bytes;help:Missed Bytes +zeek_conn.history=db:zeek_conn.history;kind:termfield;friendly:Connection Flags History;help:Connection Flags History +zeek_conn.orig_pkts=db:zeek_conn.orig_pkts;kind:integer;friendly:Originating Packets;help:Originating Packets +zeek_conn.orig_ip_bytes=db:zeek_conn.orig_ip_bytes;kind:integer;friendly:Originating IP Bytes;help:Originating IP Bytes +zeek_conn.resp_pkts=db:zeek_conn.resp_pkts;kind:integer;friendly:Responding Packets;help:Responding Packets +zeek_conn.resp_ip_bytes=db:zeek_conn.resp_ip_bytes;kind:integer;friendly:Responding IP Bytes;help:Responding IP Bytes +zeek_conn.tunnel_parents=db:zeek_conn.tunnel_parents;kind:termfield;friendly:Tunnel Connection ID;help:Tunnel Connection ID +zeek_conn.vlan=db:zeek_conn.vlan;kind:integer;friendly:Outer VLAN;help:Outer VLAN +zeek_conn.inner_vlan=db:zeek_conn.inner_vlan;kind:integer;friendly:Inner VLAN;help:Inner VLAN + +# bacnet.log +# https://github.com/cisagov/ICSNPP +zeek_bacnet.bvlc_function=db:zeek_bacnet.bvlc_function;kind:termfield;friendly:BVLC Function;help:BVLC Function +zeek_bacnet.pdu_type=db:zeek_bacnet.pdu_type;kind:termfield;friendly:APDU Service Type;help:APDU Service Type +zeek_bacnet.pdu_service=db:zeek_bacnet.pdu_service;kind:termfield;friendly:APDU Service Choice;help:APDU Service Choice +zeek_bacnet.invoke_id=db:zeek_bacnet.invoke_id;kind:integer;friendly:Invoke ID;help:Invoke ID +zeek_bacnet.result_code=db:zeek_bacnet.result_code;kind:termfield;friendly:Result Code;help:Result Code + +# bacnet_discovery.log +# https://github.com/cisagov/ICSNPP +zeek_bacnet_discovery.pdu_service=db:zeek_bacnet_discovery.pdu_service;kind:termfield;friendly:APDU Service;help:APDU Service +zeek_bacnet_discovery.object_type=db:zeek_bacnet_discovery.object_type;kind:termfield;friendly:Object Type;help:Object Type +zeek_bacnet_discovery.instance_number=db:zeek_bacnet_discovery.instance_number;kind:integer;friendly:Instance Number;help:Instance Number +zeek_bacnet_discovery.vendor=db:zeek_bacnet_discovery.vendor;kind:termfield;friendly:Vendor Name;help:Vendor Name +zeek_bacnet_discovery.range=db:zeek_bacnet_discovery.range;kind:termfield;friendly:Range;help:Range +zeek_bacnet_discovery.range_low=db:zeek_bacnet_discovery.range_low;kind:integer;friendly:Range Low;help:Range Low +zeek_bacnet_discovery.range_high=db:zeek_bacnet_discovery.range_high;kind:integer;friendly:Range High;help:Range High +zeek_bacnet_discovery.object_name=db:zeek_bacnet_discovery.object_name;kind:termfield;friendly:Object Name;help:Object Name + +# bacnet_property.log +# https://github.com/cisagov/ICSNPP +zeek_bacnet_property.pdu_service=db:zeek_bacnet_property.pdu_service;kind:termfield;friendly:APDU Service;help:APDU Service +zeek_bacnet_property.object_type=db:zeek_bacnet_property.object_type;kind:termfield;friendly:Object Type;help:Object Type +zeek_bacnet_property.instance_number=db:zeek_bacnet_property.instance_number;kind:integer;friendly:Instance Number;help:Instance Number +zeek_bacnet_property.property=db:zeek_bacnet_property.property;kind:termfield;friendly:Property Type;help:Property Type +zeek_bacnet_property.array_index=db:zeek_bacnet_property.array_index;kind:integer;friendly:Array Index;help:Array Index +zeek_bacnet_property.value=db:zeek_bacnet_property.value;kind:termfield;friendly:Value;help:Value + +# bestguess.log +zeek_bestguess.name=db:zeek_bestguess.name;kind:termfield;friendly:Best Guess Name;help:Best Guess Name +zeek_bestguess.category=db:zeek_bestguess.category;kind:termfield;friendly:Best Guess Category;help:Best Guess Category + +# bsap_ip_header.log +# https://github.com/cisagov/ICSNPP/tree/master/zeek_bsap_ip_parser +zeek_bsap_ip_header.num_msg=db:zeek_bsap_ip_header.num_msg;kind:termfield;friendly:Functions per Message;help:Functions per Message +zeek_bsap_ip_header.type_name=db:zeek_bsap_ip_header.type_name;kind:integer;friendly:Message Type;help:Message Type + +# bsap_ip_rdb.log +# https://github.com/cisagov/ICSNPP/tree/master/zeek_bsap_ip_parser +zeek_bsap_ip_rdb.app_func_code=db:zeek_bsap_ip_rdb.app_func_code;kind:termfield;friendly:Application Function;help:Application Function +zeek_bsap_ip_rdb.data_len=db:zeek_bsap_ip_rdb.data_len;kind:integer;friendly:Data Length;help:Data Length +zeek_bsap_ip_rdb.data=db:zeek_bsap_ip_rdb.data;kind:termfield;friendly:Subfunction Data;help:Subfunction Data +zeek_bsap_ip_rdb.func_code=db:zeek_bsap_ip_rdb.func_code;kind:termfield;friendly:Application Subfunction;help:Application Subfunction +zeek_bsap_ip_rdb.header_size=db:zeek_bsap_ip_rdb.header_size;kind:integer;friendly:Header Length;help:Header Length +zeek_bsap_ip_rdb.mes_seq=db:zeek_bsap_ip_rdb.mes_seq;kind:integer;friendly:Message Sequence;help:Message Sequence +zeek_bsap_ip_rdb.node_status=db:zeek_bsap_ip_rdb.node_status;kind:integer;friendly:Node Status;help:friendly:Node Status +zeek_bsap_ip_rdb.res_seq=db:zeek_bsap_ip_rdb.res_seq;kind:integer;friendly:Response Sequence;help:Response Sequence +zeek_bsap_ip_rdb.sequence=db:zeek_bsap_ip_rdb.sequence;kind:integer;friendly:Function Sequence;help:Function Sequence + +# bsap_ip_unknown.log +# https://github.com/cisagov/ICSNPP/tree/master/zeek_bsap_ip_parser +zeek_bsap_ip_unknown.data=db:zeek_bsap_ip_unknown.data;kind:termfield;friendly:Unknown Data;help:Unknown Data + +# bsap_serial_header.log +# https://github.com/cisagov/ICSNPP/tree/master/zeek_bsap_serial_parser +zeek_bsap_serial_header.ctl=db:zeek_bsap_serial_header.ctl;kind:integer;friendly:Control Byte;help:Control Byte +zeek_bsap_serial_header.dadd=db:zeek_bsap_serial_header.dadd;kind:integer;friendly:Destination Address;help:Destination Address +zeek_bsap_serial_header.dfun=db:zeek_bsap_serial_header.dfun;kind:termfield;friendly:Destination Function;help:Destination Function +zeek_bsap_serial_header.nsb=db:zeek_bsap_serial_header.nsb;kind:integer;friendly:Node Status;help:Node Statussb +zeek_bsap_serial_header.sadd=db:zeek_bsap_serial_header.sadd;kind:integer;friendly:Source Address;help:Source Address +zeek_bsap_serial_header.seq=db:zeek_bsap_serial_header.seq;kind:integer;friendly:Message Sequence;help:Message Sequence +zeek_bsap_serial_header.ser=db:zeek_bsap_serial_header.ser;kind:termfield;friendly:Message Serial Number;help:Message Serial Number +zeek_bsap_serial_header.sfun=db:zeek_bsap_serial_header.sfun;kind:termfield;friendly:Source Function;help:Source Function +zeek_bsap_serial_header.type_name=db:zeek_bsap_serial_header.type_name;kind:termfield;friendly:Message Type;help:Message Type + +# bsap_serial_rdb.log +# https://github.com/cisagov/ICSNPP/tree/master/zeek_bsap_serial_parser +zeek_bsap_serial_rdb.data=db:zeek_bsap_serial_rdb.data;kind:termfield;friendly:RDB Function Data;help:RDB Function Data +zeek_bsap_serial_rdb.func_code=db:zeek_bsap_serial_rdb.func_code;kind:termfield;friendly:RDB Function;help:RDB Function + +# bsap_serial_rdb_ext.log +# https://github.com/cisagov/ICSNPP/tree/master/zeek_bsap_serial_parser +zeek_bsap_serial_rdb_ext.data=db:zeek_bsap_serial_rdb_ext.data;kind:termfield;friendly:RDB Ext Function Data;help:RDB Ext Function Data +zeek_bsap_serial_rdb_ext.dfun=db:zeek_bsap_serial_rdb_ext.dfun;kind:termfield;friendly:Destination Function;help:Destination Function +zeek_bsap_serial_rdb_ext.extfun=db:zeek_bsap_serial_rdb_ext.extfun;kind:termfield;friendly:RDB Ext Function;help:RDB Ext Function +zeek_bsap_serial_rdb_ext.nsb=db:zeek_bsap_serial_rdb_ext.nsb;kind:integer;friendly:Node Status;help:Node Status +zeek_bsap_serial_rdb_ext.seq=db:zeek_bsap_serial_rdb_ext.seq;kind:integer;friendly:Message Sequence;help:Message Sequence +zeek_bsap_serial_rdb_ext.sfun=db:zeek_bsap_serial_rdb_ext.sfun;kind:termfield;friendly:Source Function;help:Source Function + +# bsap_serial_unknown.log +# https://github.com/cisagov/ICSNPP/tree/master/zeek_bsap_serial_parser +zeek_bsap_serial_unknown.data=db:zeek_bsap_serial_unknown.data;kind:termfield;friendly:Unknown Data;help:Unknown Data + +# cip.log +# https://github.com/cisagov/ICSNPP +zeek_cip.cip_sequence_count=db:zeek_cip.cip_sequence_count;kind:integer;friendly:CIP Sequence Number;help:CIP Sequence Number +zeek_cip.direction=db:zeek_cip.direction;kind:termfield;friendly:Direction;help:Direction +zeek_cip.cip_service=db:zeek_cip.cip_service;kind:termfield;friendly:CIP Service;help:CIP Service +zeek_cip.cip_status=db:zeek_cip.cip_status;kind:termfield;friendly:CIP Status;help:CIP Status +zeek_cip.class_id=db:zeek_cip.class_id;kind:termfield;friendly:Class ID;help:Class ID +zeek_cip.class_name=db:zeek_cip.class_name;kind:termfield;friendly:Class Name;help:Class Name +zeek_cip.instance_id=db:zeek_cip.instance_id;kind:termfield;friendly:Instance ID;help:Instance ID +zeek_cip.attribute_id=db:zeek_cip.attribute_id;kind:termfield;friendly:Attribute ID;help:Attribute ID +zeek_cip.data_id=db:zeek_cip.data_id;kind:termfield;friendly:Data ID;help:Data ID +zeek_cip.other_id=db:zeek_cip.other_id;kind:termfield;friendly:Other ID;help:Other ID + +# cip_identity.log +# https://github.com/cisagov/ICSNPP +zeek_cip_identity.encapsulation_version=db:zeek_cip_identity.encapsulation_version;kind:integer;friendly:Encapsulation Version;help:Encapsulation Version +zeek_cip_identity.socket_address=db:zeek_cip_identity.socket_address;kind:termfield;friendly:Socket Address;help:Socket Address +zeek_cip_identity.socket_address_geo.city_name=db:zeek_cip_identity.socket_address_geo.city_name;kind:termfield;friendly:Socket Address GeoIP City;help:Socket Address GeoIP City +zeek_cip_identity.socket_address_geo.country_name=db:zeek_cip_identity.socket_address_geo.country_name;kind:termfield;friendly:Socket Address GeoIP Country;help:Socket Address GeoIP Country +zeek_cip_identity.socket_address_asn=db:zeek_cip_identity.socket_address_asn;kind:termfield;friendly:Socket Address ASN;help:Socket Address ASN +zeek_cip_identity.socket_port=db:zeek_cip_identity.socket_port;kind:integer;friendly:Socket Port;help:Socket Port +zeek_cip_identity.vendor_id=db:zeek_cip_identity.vendor_id;kind:integer;friendly:Vendor ID;help:Vendor ID +zeek_cip_identity.vendor_name=db:zeek_cip_identity.vendor_name;kind:termfield;friendly:Vendor Name;help:Vendor Name +zeek_cip_identity.device_type_id=db:zeek_cip_identity.device_type_id;kind:integer;friendly:Device Type ID;help:Device Type ID +zeek_cip_identity.device_type_name=db:zeek_cip_identity.device_type_name;kind:termfield;friendly:Device Type Name;help:Device Type Name +zeek_cip_identity.product_code=db:zeek_cip_identity.product_code;kind:integer;friendly:Product Code;help:Product Code +zeek_cip_identity.revision=db:zeek_cip_identity.revision;kind:termfield;friendly:Device Revision;help:Device Revision +zeek_cip_identity.device_status=db:zeek_cip_identity.device_status;kind:termfield;friendly:Device Status;help:Device Status +zeek_cip_identity.serial_number=db:zeek_cip_identity.serial_number;kind:termfield;friendly:Serial Number;help:Serial Number +zeek_cip_identity.product_name=db:zeek_cip_identity.product_name;kind:termfield;friendly:Product Name;help:Product Name +zeek_cip_identity.device_state=db:zeek_cip_identity.device_state;kind:termfield;friendly:Device State;help:Device State + +# cip_io.log +# https://github.com/cisagov/ICSNPP +zeek_cip_io.connection_id=db:zeek_cip_io.connection_id;kind:termfield;friendly:Connection ID;help:Connection ID +zeek_cip_io.sequence_number=db:zeek_cip_io.sequence_number;kind:integer;friendly:Sequence Number;help:Sequence Number +zeek_cip_io.data_length=db:zeek_cip_io.data_length;kind:integer;friendly:Data Length;help:Data Length +zeek_cip_io.io_data=db:zeek_cip_io.io_data;kind:termfield;friendly:Transport Data;help:Transport Data + +# dce_rpc.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/dce-rpc/main.zeek.html#type-DCE_RPC::Info +zeek_dce_rpc.rtt=db:zeek_dce_rpc.rtt;kind:termfield;friendly:Round Trip Time;help:Round Trip Time +zeek_dce_rpc.named_pipe=db:zeek_dce_rpc.named_pipe;kind:termfield;friendly:Remote Pipe;help:Remote Pipe +zeek_dce_rpc.endpoint=db:zeek_dce_rpc.endpoint;kind:termfield;friendly:Endpoint;help:Endpoint +zeek_dce_rpc.operation=db:zeek_dce_rpc.operation;kind:termfield;friendly:Operation;help:Operation + +# dhcp.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/dhcp/main.zeek.html#type-DHCP::Info +zeek_dhcp.mac=db:zeek_dhcp.mac;kind:termfield;friendly:Client MAC;help:Client MAC +zeek_dhcp.assigned_ip=db:zeek_dhcp.assigned_ip;kind:termfield;friendly:Assigned IP;help:Assigned IP +zeek_dhcp.lease_time=db:zeek_dhcp.lease_time;kind:termfield;friendly:Lease Time;help:Lease Time +zeek_dhcp.trans_id=db:zeek_dhcp.trans_id;kind:termfield;friendly:dhcp Transaction ID;help:dhcp Transaction ID +zeek_dhcp.client_fqdn=db:zeek_dhcp.client_fqdn;kind:termfield;friendly:Client FQDN;help:Client FQDN +zeek_dhcp.client_message=db:zeek_dhcp.client_message;kind:termfield;friendly:Client Message;help:Client Message +zeek_dhcp.domain=db:zeek_dhcp.domain;kind:termfield;friendly:Domain;help:Domain +zeek_dhcp.duration=db:zeek_dhcp.duration;kind:termfield;friendly:Duration;help:Duration +zeek_dhcp.host_name=db:zeek_dhcp.host_name;kind:termfield;friendly:Hostname;help:Hostname +zeek_dhcp.msg_types=db:zeek_dhcp.msg_types;kind:termfield;friendly:Message Types;help:Message Types +zeek_dhcp.requested_ip=db:zeek_dhcp.requested_ip;kind:termfield;friendly:Requested IP;help:Requested IP +zeek_dhcp.server_message=db:zeek_dhcp.server_message;kind:termfield;friendly:Server Message;help:Server Message +zeek_dhcp.client_software=db:zeek_dhcp.client_software;kind:termfield;friendly:Client Software;help:Client Software +zeek_dhcp.server_software=db:zeek_dhcp.server_software;kind:termfield;friendly:Server Software;help:Server Software + +# dnp3.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/dnp3/main.zeek.html#type-DNP3::Info +zeek_dnp3.fc_request=db:zeek_dnp3.fc_request;kind:termfield;friendly:Request Function Message;help:Request Function Message +zeek_dnp3.fc_reply=db:zeek_dnp3.fc_reply;kind:termfield;friendly:Reply Function Message;help:Reply Function Message +zeek_dnp3.iin=db:zeek_dnp3.iin;kind:termfield;friendly:Internal Indication Number;help:Internal Indication Number +zeek_dnp3.iin_flags=db:zeek_dnp3.iin_flags;kind:termfield;friendly:Internal Indicators;help:Internal Indicators + +# dnp3_control.log +# https://github.com/cisagov/ICSNPP +zeek_dnp3_control.block_type=db:zeek_dnp3_control.block_type;kind:termfield;friendly:Control Block Type;help:Control Block Type +zeek_dnp3_control.function_code=db:zeek_dnp3_control.function_code;kind:termfield;friendly:DNP3 Function Code;help:DNP3 Function Code +zeek_dnp3_control.index_number=db:zeek_dnp3_control.index_number;kind:integer;friendly:Object Index Number;help:Object Index Number +zeek_dnp3_control.trip_control_code=db:zeek_dnp3_control.trip_control_code;kind:termfield;friendly:Trip Control Code;help:Trip Control Code +zeek_dnp3_control.operation_type=db:zeek_dnp3_control.operation_type;kind:termfield;friendly:Operation Type;help:Operation Type +zeek_dnp3_control.execute_count=db:zeek_dnp3_control.execute_count;kind:integer;friendly:Execute Count;help:Execute Count +zeek_dnp3_control.on_time=db:zeek_dnp3_control.on_time;kind:integer;friendly:On Time;help:On Time +zeek_dnp3_control.off_time=db:zeek_dnp3_control.off_time;kind:integer;friendly:Off Time;help:Off Time +zeek_dnp3_control.status_code=db:zeek_dnp3_control.status_code;kind:termfield;friendly:Status Code;help:Status Code + +# dnp3_objects.log +# https://github.com/cisagov/ICSNPP +zeek_dnp3_objects.function_code=db:zeek_dnp3_objects.function_code;kind:termfield;friendly:Function Code;help:Function Code +zeek_dnp3_objects.object_type=db:zeek_dnp3_objects.object_type;kind:termfield;friendly:Object Type;help:Object Type +zeek_dnp3_objects.object_count=db:zeek_dnp3_objects.object_count;kind:integer;friendly:Object Count;help:Object Count +zeek_dnp3_objects.range_low=db:zeek_dnp3_objects.range_low;kind:integer;friendly:Range Low;help:Range Low +zeek_dnp3_objects.range_high=db:zeek_dnp3_objects.range_high;kind:integer;friendly:Range High;help:Range High + +# dns.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/dns/main.zeek.html#type-DNS::Info +zeek_dns.trans_id=db:zeek_dns.trans_id;kind:termfield;friendly:Transaction ID;help:Transaction ID +zeek_dns.rtt=db:zeek_dns.rtt;kind:termfield;friendly:Round Trip Time;help:Round Trip Time +zeek_dns.query=db:zeek_dns.query;kind:termfield;friendly:Query;help:Query +zeek_dns.qclass=db:zeek_dns.qclass;kind:termfield;friendly:Query Class Code;help:Query Class Code +zeek_dns.qclass_name=db:zeek_dns.qclass_name;kind:termfield;friendly:Query Class;help:Query Class +zeek_dns.qtype=db:zeek_dns.qtype;kind:termfield;friendly:Query Type Code;help:Query Type Code +zeek_dns.qtype_name=db:zeek_dns.qtype_name;kind:termfield;friendly:Query Type;help:Query Type +zeek_dns.rcode=db:zeek_dns.rcode;kind:integer;friendly:Response Code;help:Response Code +zeek_dns.rcode_name=db:zeek_dns.rcode_name;kind:termfield;friendly:Response;help:Response +zeek_dns.AA=db:zeek_dns.AA;kind:termfield;friendly:Authoritative Answer Bit;help:Authoritative Answer Bit +zeek_dns.TC=db:zeek_dns.TC;kind:termfield;friendly:Truncation Bit;help:Truncation Bit +zeek_dns.RD=db:zeek_dns.RD;kind:termfield;friendly:Recursion Desired Bit;help:Recursion Desired Bit +zeek_dns.RA=db:zeek_dns.RA;kind:termfield;friendly:Recursion Available Bit;help:Recursion Available Bit +zeek_dns.Z=db:zeek_dns.Z;kind:termfield;friendly:Z Bit;help:Z Bit +zeek_dns.answers=db:zeek_dns.answers;kind:termfield;friendly:Answer;help:Answer +zeek_dns.TTLs=db:zeek_dns.TTLs;kind:termfield;friendly:TTL;help:TTL +zeek_dns.rejected=db:zeek_dns.rejected;kind:termfield;friendly:Rejected;help:Rejected + +# dpd.log +# https://docs.zeek.org/en/stable/scripts/base/frameworks/dpd/main.zeek.html#type-DPD::Info +zeek_dpd.service=db:zeek_dpd.service;kind:termfield;friendly:Protocol;help:Protocol +zeek_dpd.failure_reason=db:zeek_dpd.failure_reason;kind:termfield;friendly:Failure Reason;help:Failure Reason + +# enip.log +# https://github.com/cisagov/ICSNPP +zeek_enip.enip_command=db:zeek_enip.enip_command;kind:termfield;friendly:EthernetIP Command;help:EthernetIP Command +zeek_enip.length=db:zeek_enip.length;kind:integer;friendly:Packet Length;help:Packet Length +zeek_enip.session_handle=db:zeek_enip.session_handle;kind:termfield;friendly:Session Number;help:Session Number +zeek_enip.enip_status=db:zeek_enip.enipstatus;kind:termfield;friendly:EthernetIP Status;help:EthernetIP Status +zeek_enip.sender_context=db:zeek_enip.sender_context;kind:termfield;friendly:Sender Context;help:Sender Context +zeek_enip.options=db:zeek_enip.options;kind:termfield;friendly:Options;help:Options + +# ecat_registers.log +# https://github.com/cisagov/ICSNPP +zeek_ecat_registers.command=db:zeek_ecat_registers.command;kind:termfield;friendly:Command;help:Command +zeek_ecat_registers.slave_addr=db:zeek_ecat_registers.slave_addr;kind:termfield;friendly:Slave Address;help:Slave Address +zeek_ecat_registers.register_type=db:zeek_ecat_registers.register_type;kind:termfield;friendly:Register Information;help:Register Information +zeek_ecat_registers.register_addr=db:zeek_ecat_registers.register_addr;kind:termfield;friendly:Register Address;help:Register Address +zeek_ecat_registers.data=db:zeek_ecat_registers.data;kind:termfield;friendly:Data;help:Data + +# ecat_log_address.log +# https://github.com/cisagov/ICSNPP +zeek_ecat_log_address.log_addr=db:zeek_ecat_log_address.log_addr;kind:termfield;friendly:Data Address;help:Data Address +zeek_ecat_log_address.length=db:zeek_ecat_log_address.length;kind:integer;friendly:Data Length;help:Data Length +zeek_ecat_log_address.command=db:zeek_ecat_log_address.command;kind:termfield;friendly:Command;help:Command +zeek_ecat_log_address.data=db:zeek_ecat_log_address.data;kind:termfield;friendly:Data;help:Data + +# ecat_dev_info.log +# https://github.com/cisagov/ICSNPP +zeek_ecat_dev_info.slave_id=db:zeek_ecat_dev_info.slave_id;kind:termfield;friendly:Slave Address;help:Slave Address +zeek_ecat_dev_info.revision=db:zeek_ecat_dev_info.revision;kind:termfield;friendly:Revision;help:Revision +zeek_ecat_dev_info.dev_type=db:zeek_ecat_dev_info.dev_type;kind:termfield;friendly:Device Type;help:Device Type +zeek_ecat_dev_info.build=db:zeek_ecat_dev_info.build;kind:termfield;friendly:Build Version;help:Build Version +zeek_ecat_dev_info.fmmucnt=db:zeek_ecat_dev_info.fmmucnt;kind:termfield;friendly:Fieldbus MMU Channels;help:Fieldbus MMU Channels +zeek_ecat_dev_info.smcount=db:zeek_ecat_dev_info.smcount;kind:termfield;friendly:Sync Managers;help:Sync Managers +zeek_ecat_dev_info.ports=db:zeek_ecat_dev_info.ports;kind:termfield;friendly:Port Descriptor;help:Port Descriptor +zeek_ecat_dev_info.dpram=db:zeek_ecat_dev_info.dpram;kind:termfield;friendly:RAM Size;help:RAM Size +zeek_ecat_dev_info.features=db:zeek_ecat_dev_info.features;kind:termfield;friendly:Features;help:Features + +# ecat_aoe_info.log +# https://github.com/cisagov/ICSNPP +zeek_ecat_aoe_info.resp_port=db:zeek_ecat_aoe_info.resp_port;kind:termfield;friendly:Target Port;help:Target Port +zeek_ecat_aoe_info.orig_port=db:zeek_ecat_aoe_info.orig_port;kind:termfield;friendly:Sender Port;help:Sender Port +zeek_ecat_aoe_info.command=db:zeek_ecat_aoe_info.command;kind:termfield;friendly:Command;help:Command +zeek_ecat_aoe_info.state=db:zeek_ecat_aoe_info.state;kind:termfield;friendly:State Flags;help:State Flags +zeek_ecat_aoe_info.data=db:zeek_ecat_aoe_info.data;kind:termfield;friendly:Data;help:Data + +# ecat_coe_info.log +# https://github.com/cisagov/ICSNPP +zeek_ecat_coe_info.number=db:zeek_ecat_coe_info.number;kind:termfield;friendly:Message Number;help:Message Number +zeek_ecat_coe_info.type=db:zeek_ecat_coe_info.type;kind:termfield;friendly:Message Type;help:Message Type +zeek_ecat_coe_info.req_resp=db:zeek_ecat_coe_info.req_resp;kind:termfield;friendly:Request or Response;help:Request or Response +zeek_ecat_coe_info.index=db:zeek_ecat_coe_info.index;kind:termfield;friendly:Message Index;help:Message Index +zeek_ecat_coe_info.subindex=db:zeek_ecat_coe_info.subindex;kind:termfield;friendly:Message Subindex;help:Message Subindex +zeek_ecat_coe_info.dataoffset=db:zeek_ecat_coe_info.dataoffset;kind:termfield;friendly:Data Offset;help:Data Offset + +# ecat_foe_info.log +# https://github.com/cisagov/ICSNPP +zeek_ecat_foe_info.opcode=db:zeek_ecat_foe_info.opcode;kind:termfield;friendly:Operation;help:Operation +zeek_ecat_foe_info.reserved=db:zeek_ecat_foe_info.reserved;kind:termfield;friendly:Reserver;help:Reserver +zeek_ecat_foe_info.packet_num=db:zeek_ecat_foe_info.packet_num;kind:termfield;friendly:Packet Number;help:Packet Number +zeek_ecat_foe_info.error_code=db:zeek_ecat_foe_info.error_code;kind:termfield;friendly:Error Code;help:Error Code +zeek_ecat_foe_info.filename=db:zeek_ecat_foe_info.filename;kind:termfield;friendly:File Name;help:File Name +zeek_ecat_foe_info.data=db:zeek_ecat_foe_info.data;kind:termfield;friendly:Data;help:Data + +# ecat_soe_info.log +# https://github.com/cisagov/ICSNPP +zeek_ecat_soe_info.opcode=db:zeek_ecat_soe_info.opcode;kind:termfield;friendly:Operation;help:Operation +zeek_ecat_soe_info.incomplete=db:zeek_ecat_soe_info.incomplete;kind:termfield;friendly:Incomplete;help:Incomplete +zeek_ecat_soe_info.error=db:zeek_ecat_soe_info.error;kind:termfield;friendly:Error Message;help:Error Message +zeek_ecat_soe_info.drive_num=db:zeek_ecat_soe_info.drive_num;kind:termfield;friendly:Drive Number;help:Drive Number +zeek_ecat_soe_info.element=db:zeek_ecat_soe_info.element;kind:termfield;friendly:Element Flags;help:Element Flags +zeek_ecat_soe_info.index=db:zeek_ecat_soe_info.index;kind:termfield;friendly:Message Index;help:Message Index + +# ecat_arp_info.log +# https://github.com/cisagov/ICSNPP +zeek_ecat_arp_info.arp_type=db:zeek_ecat_arp_info.arp_type;kind:termfield;friendly:ARP Command;help:ARP Command +zeek_ecat_arp_info.orig_proto_addr=db:zeek_ecat_arp_info.orig_proto_addr;kind:termfield;friendly:Originating host;help:Originating host +zeek_ecat_arp_info.orig_hw_addr=db:zeek_ecat_arp_info.orig_hw_addr;kind:termfield;friendly:Originating MAC;help:Originating MAC +zeek_ecat_arp_info.resp_proto_addr=db:zeek_ecat_arp_info.resp_proto_addr;kind:termfield;friendly:Responding host;help:Responding host +zeek_ecat_arp_info.resp_hw_addr=db:zeek_ecat_arp_info.resp_hw_addr;kind:termfield;friendly:Responding MAC;help:Responding MAC + +# files.log +# https://docs.zeek.org/en/stable/scripts/base/frameworks/files/main.zeek.html#type-Files::Info +zeek_files.tx_hosts=db:zeek_files.tx_hosts;kind:termfield;friendly:Transmitter;help:Transmitter +zeek_files.rx_hosts=db:zeek_files.rx_hosts;kind:termfield;friendly:Receiver;help:Receiver +zeek_files.conn_uids=db:zeek_files.conn_uids;kind:termfield;friendly:Connection ID;help:Connection ID +zeek_files.source=db:zeek_files.source;kind:termfield;friendly:Source;help:Source +zeek_files.depth=db:zeek_files.depth;kind:integer;friendly:Source Depth;help:Source Depth +zeek_files.analyzers=db:zeek_files.analyzers;kind:termfield;friendly:Analyzer;help:Analyzer +zeek_files.mime_type=db:zeek_files.mime_type;kind:termfield;friendly:File Magic;help:File Magic +zeek_files.filename=db:zeek_files.filename;kind:termfield;friendly:Filename;help:Filename +zeek_files.duration=db:zeek_files.duration;kind:termfield;friendly:Analysis Duration;help:Analysis Duration +zeek_files.local_orig=db:zeek_files.local_orig;kind:termfield;friendly:Local Originator;help:Local Originator +zeek_files.is_orig=db:zeek_files.is_orig;kind:termfield;friendly:Originator is Transmitter;help:Originator is Transmitter +zeek_files.seen_bytes=db:zeek_files.seen_bytes;kind:integer;friendly:Bytes Analyzed;help:Bytes Analyzed +zeek_files.total_bytes=db:zeek_files.total_bytes;kind:integer;friendly:Total Bytes;help:Total Bytes +zeek_files.missing_bytes=db:zeek_files.missing_bytes;kind:integer;friendly:Missed Bytes;help:Missed Bytes +zeek_files.overflow_bytes=db:zeek_files.overflow_bytes;kind:integer;friendly:Overflow Bytes;help:Overflow Bytes +zeek_files.timedout=db:zeek_files.timedout;kind:termfield;friendly:Analysis Timed Out;help:Analysis Timed Out +zeek_files.parent_fuid=db:zeek_files.parent_fuid;kind:termfield;friendly:Parent File ID;help:Parent File ID +zeek_files.md5=db:zeek_files.md5;kind:termfield;friendly:MD5 Digest;help:MD5 Digest +zeek_files.sha1=db:zeek_files.sha1;kind:termfield;friendly:SHA1 Digest;help:SHA1 Digest +zeek_files.sha256=db:zeek_files.sha256;kind:termfield;friendly:SHA256 Digest;help:SHA256 Digest +zeek_files.extracted=db:zeek_files.extracted;kind:termfield;friendly:Extracted Filename;help:Extracted Filename +zeek_files.extracted_cutoff=db:zeek_files.extracted_cutoff;kind:termfield;friendly:Truncated;help:Truncated +zeek_files.extracted_size=db:zeek_files.extracted_size;kind:integer;friendly:Extracted Bytes;help:Extracted Bytes + +# ftp.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/ftp/info.zeek.html#type-FTP::Info +zeek_ftp.command=db:zeek_ftp.command;kind:termfield;friendly:Command;help:Command +zeek_ftp.arg=db:zeek_ftp.arg;kind:termfield;friendly:Argument;help:Argument +zeek_ftp.mime_type=db:zeek_ftp.mime_type;kind:termfield;friendly:File Magic;help:File Magic +zeek_ftp.file_size=db:zeek_ftp.file_size;kind:integer;friendly:File Size;help:File Size +zeek_ftp.reply_code=db:zeek_ftp.reply_code;kind:integer;friendly:Reply Code;help:Reply Code +zeek_ftp.reply_msg=db:zeek_ftp.reply_msg;kind:termfield;friendly:Reply;help:Reply +zeek_ftp.data_channel_passive=db:zeek_ftp.data_channel_passive;kind:termfield;friendly:Passive;help:Passive +zeek_ftp.data_channel_orig_h=db:zeek_ftp.data_channel_orig_h;kind:termfield;friendly:Data Originating Host;help:Data Originating Host +zeek_ftp.data_channel_resp_h=db:zeek_ftp.data_channel_resp_h;kind:termfield;friendly:Data Responding Host;help:Data Responding Host +zeek_ftp.data_channel_resp_p=db:zeek_ftp.data_channel_resp_p;kind:integer;friendly:Data Responding Port;help:Data Responding Port + +# gquic.log +# https://github.com/salesforce/GQUIC_Protocol_Analyzer/blob/master/scripts/Salesforce/GQUIC/main.bro +zeek_gquic.version=db:zeek_gquic.version;kind:termfield;friendly:QUIC version;help:gquic version +zeek_gquic.server_name=db:zeek_gquic.server_name;kind:termfield;friendly:Server Name;help:gquic server_name +zeek_gquic.user_agent=db:zeek_gquic.user_agent;kind:termfield;friendly:User Agent;help:gquic user_agent +zeek_gquic.tag_count=db:zeek_gquic.tag_count;kind:integer;friendly:Tag Count;help:gquic tag_count +zeek_gquic.cyu=db:zeek_gquic.cyu;kind:termfield;friendly:CYU Fingerprint;help:gquic cyu +zeek_gquic.cyutags=db:zeek_gquic.cyutags;kind:termfield;friendly:CYU Fingerprint Digest;help:gquic cyutags + +# http.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/http/main.zeek.html#type-HTTP::Info +zeek_http.trans_depth=db:zeek_http.trans_depth;kind:integer;friendly:Pipeline Depth;help:Pipeline Depth +zeek_http.method=db:zeek_http.method;kind:termfield;friendly:Request Method;help:Request Method +zeek_http.host=db:zeek_http.host;kind:termfield;friendly:Host Header;help:Host Header +zeek_http.uri=db:zeek_http.uri;kind:termfield;friendly:URI;help:URI +zeek_http.referrer=db:zeek_http.referrer;kind:termfield;friendly:Referrer Header;help:Referrer Header +zeek_http.version=db:zeek_http.version;kind:termfield;friendly:Version;help:Version +zeek_http.user_agent=db:zeek_http.user_agent;kind:termfield;friendly:User Agent;help:User Agent +zeek_http.origin=db:zeek_http.origin;kind:termfield;friendly:Origin Header;help:Origin Header +zeek_http.request_body_len=db:zeek_http.request_body_len;kind:integer;friendly:Request Body Length;help:Request Body Length +zeek_http.response_body_len=db:zeek_http.response_body_len;kind:integer;friendly:Response Body Length;help:Response Body Length +zeek_http.status_code=db:zeek_http.status_code;kind:integer;friendly:Status Code;help:Status Code +zeek_http.status_msg=db:zeek_http.status_msg;kind:termfield;friendly:Status Message;help:Status Message +zeek_http.info_code=db:zeek_http.info_code;kind:integer;friendly:Informational Code;help:Informational Code +zeek_http.info_msg=db:zeek_http.info_msg;kind:termfield;friendly:Informational Message;help:Informational Message +zeek_http.tags=db:zeek_http.tags;kind:termfield;friendly:HTTP Tag;help:HTTP Tag +zeek_http.proxied=db:zeek_http.proxied;kind:termfield;friendly:Proxy Header;help:Proxy Header +zeek_http.orig_fuids=db:zeek_http.orig_fuids;kind:termfield;friendly:Originating File ID;help:Originating File ID +zeek_http.orig_filenames=db:zeek_http.orig_filenames;kind:termfield;friendly:Originating Filename;help:Originating Filename +zeek_http.orig_mime_types=db:zeek_http.orig_mime_types;kind:termfield;friendly:Originating File Magic;help:Originating File Magic +zeek_http.resp_fuids=db:zeek_http.resp_fuids;kind:termfield;friendly:Responding File ID;help:Responding File ID +zeek_http.resp_filenames=db:zeek_http.resp_filenames;kind:termfield;friendly:Responding Filename;help:Responding Filename +zeek_http.resp_mime_types=db:zeek_http.resp_mime_types;kind:termfield;friendly:Responding File Magic;help:Responding File Magic +zeek_http.post_username=db:zeek_http.post_username;kind:termfield;friendly:POST User;help:POST User +zeek_http.post_password_plain=db:zeek_http.post_password_plain;kind:termfield;friendly:POST Password;help:POST Password + +# intel.log +# https://docs.zeek.org/en/stable/scripts/base/frameworks/intel/main.zeek.html#type-Intel::Info +zeek_intel.indicator=db:zeek_intel.indicator;kind:termfield;friendly:Indicator;help:Indicator +zeek_intel.indicator_type=db:zeek_intel.indicator_type;kind:termfield;friendly:Indicator Type;help:Indicator Type +zeek_intel.seen_where=db:zeek_intel.seen_where;kind:termfield;friendly:Where Discovered;help:Where Discovered +zeek_intel.seen_node=db:zeek_intel.seen_node;kind:termfield;friendly:Discovered Node;help:Discovered Node +zeek_intel.matched=db:zeek_intel.matched;kind:termfield;friendly:Match Indicator;help:Match Indicator +zeek_intel.sources=db:zeek_intel.sources;kind:termfield;friendly:Match Source;help:Match Source +zeek_intel.file_mime_type=db:zeek_intel.file_mime_type;kind:termfield;friendly:File Magic;help:File Magic +zeek_intel.file_description=db:zeek_intel.file_description;kind:termfield;friendly:File Description;help:File Description + +# ipsec.log +# https://github.com/zeek/spicy-analyzers/blob/main/analyzer/protocol/ipsec/main.zeek +zeek_ipsec.is_orig=db:zeek_ipsec.is_orig;kind:termfield;friendly:Is Originator;help:Is Originator +zeek_ipsec.initiator_spi=db:zeek_ipsec.initiator_spi;kind:termfield;friendly:Initiator SPI;help:Initiator SPI +zeek_ipsec.responder_spi=db:zeek_ipsec.responder_spi;kind:termfield;friendly:Responder SPI;help:Responder SPI +zeek_ipsec.maj_ver=db:zeek_ipsec.maj_ver;kind:integer;friendly:Major Version;help:Major Version +zeek_ipsec.min_ver=db:zeek_ipsec.min_ver;kind:integer;friendly:Minor Version;help:Minor Version +zeek_ipsec.exchange_type=db:zeek_ipsec.exchange_type;kind:integer;friendly:Exchange Type;help:Exchange Type +zeek_ipsec.flag_e=db:zeek_ipsec.flag_e;kind:termfield;friendly:Flag E;help:Flag E +zeek_ipsec.flag_c=db:zeek_ipsec.flag_c;kind:termfield;friendly:Flag C;help:Flac C +zeek_ipsec.flag_a=db:zeek_ipsec.flag_a;kind:termfield;friendly:Flag A;help:Flag A +zeek_ipsec.flag_i=db:zeek_ipsec.flag_i;kind:termfield;friendly:Flag I;help:Flag I +zeek_ipsec.flag_v=db:zeek_ipsec.flag_v;kind:termfield;friendly:Flag V;help:Flag V +zeek_ipsec.flag_r=db:zeek_ipsec.flag_r;kind:termfield;friendly:Flag R;help:Flag R +zeek_ipsec.flags=db:zeek_ipsec.flags;kind:termfield;friendly:Flags;help:Flags +zeek_ipsec.message_id=db:zeek_ipsec.message_id;kind:termfield;friendly:Message ID;help:Message ID +zeek_ipsec.vendor_ids=db:zeek_ipsec.vendor_ids;kind:termfield;friendly:Vendor ID;help:Vendor ID +zeek_ipsec.notify_messages=db:zeek_ipsec.notify_messages;kind:termfield;friendly:Notify Message Type;help:Notify Message Type +zeek_ipsec.transforms=db:zeek_ipsec.transforms;kind:termfield;friendly:Transform;help:Transform +zeek_ipsec.ke_dh_groups=db:zeek_ipsec.ke_dh_groups;kind:integer;friendly:KE DH Group;help:KE DH Group +zeek_ipsec.proposals=db:zeek_ipsec.proposals;kind:integer;friendly:Proposal;help:Proposal +zeek_ipsec.certificates=db:zeek_ipsec.certificates;kind:termfield;friendly:Certificate Hash;help:Certificate Hash +zeek_ipsec.transform_attributes=db:zeek_ipsec.transform_attributes;kind:termfield;friendly:Transform Attribute;help:Transform Attribute +zeek_ipsec.length=db:zeek_ipsec.length;kind:integer;friendly:Message Length;help:Message Length +zeek_ipsec.hash=db:zeek_ipsec.hash;kind:termfield;friendly:Transaction Hash;help:Transaction Hash + +# irc.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/irc/main.zeek.html#type-IRC::Info +zeek_irc.nick=db:zeek_irc.nick;kind:termfield;friendly:Nickname;help:Nickname +zeek_irc.command=db:zeek_irc.command;kind:termfield;friendly:Command;help:Command +zeek_irc.value=db:zeek_irc.value;kind:termfield;friendly:Value;help:Value +zeek_irc.addl=db:zeek_irc.addl;kind:termfield;friendly:Additional Data;help:Additional Data +zeek_irc.dcc_file_name=db:zeek_irc.dcc_file_name;kind:termfield;friendly:DCC Filename;help:DCC Filename +zeek_irc.dcc_file_size=db:zeek_irc.dcc_file_size;kind:integer;friendly:DCC File Size;help:DCC File Size +zeek_irc.dcc_mime_type=db:zeek_irc.dcc_mime_type;kind:termfield;friendly:DCC File Magic;help:DCC File Magic + +# iso_cotp.log +# https://github.com/amzn/zeek-plugin-s7comm/blob/master/scripts/main.zeek +zeek_iso_cotp.pdu_type=db:zeek_iso_cotp.pdu_type;kind:termfield;friendly:PDU Type;help:PDU Type + +# kerberos.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/krb/main.zeek.html#type-KRB::Info +zeek_kerberos.cname=db:zeek_kerberos.cname;kind:termfield;friendly:Client;help:Client +zeek_kerberos.sname=db:zeek_kerberos.sname;kind:termfield;friendly:Service;help:Service +zeek_kerberos.success=db:zeek_kerberos.success;kind:termfield;friendly:Success;help:Success +zeek_kerberos.error_msg=db:zeek_kerberos.error_msg;kind:termfield;friendly:Error Message;help:Error Message +zeek_kerberos.from=db:zeek_kerberos.from;kind:termfield;friendly:Ticket Valid From;help:Ticket Valid From +zeek_kerberos.till=db:zeek_kerberos.till;kind:termfield;friendly:Ticket Valid Till;help:Ticket Valid Till +zeek_kerberos.cipher=db:zeek_kerberos.cipher;kind:termfield;friendly:Encryption Type;help:Encryption Type +zeek_kerberos.forwardable=db:zeek_kerberos.forwardable;kind:termfield;friendly:Forwardable;help:Forwardable +zeek_kerberos.renewable=db:zeek_kerberos.renewable;kind:termfield;friendly:Renewable;help:Renewable +zeek_kerberos.request_type=db:zeek_kerberos.request_type;kind:termfield;friendly:Request Type;help:Request Type +zeek_kerberos.client_cert_subject=db:zeek_kerberos.client_cert_subject;kind:termfield;friendly:Client Certificate Subject;help:Client Certificate Subject +zeek_kerberos.client_cert_fuid=db:zeek_kerberos.client_cert_fuid;kind:termfield;friendly:Client Certificate File ID;help:Client Certificate File ID +zeek_kerberos.server_cert_subject=db:zeek_kerberos.server_cert_subject;kind:termfield;friendly:Server Certificate Subject;help:Server Certificate Subject +zeek_kerberos.server_cert_fuid=db:zeek_kerberos.server_cert_fuid;kind:termfield;friendly:Server Certificate File ID;help:Server Certificate File ID + +# known_certs.log +# https://docs.zeek.org/en/stable/scripts/policy/protocols/ssl/known-certs.zeek.html#type-Known::CertsInfo +zeek_known_certs.subject=db:zeek_known_certs.subject;kind:termfield;friendly:Certificate Subject;help:Certificate Subject +zeek_known_certs.issuer_subject=db:zeek_known_certs.issuer_subject;kind:termfield;friendly:Issuer Subject;help:Issuer Subject +zeek_known_certs.serial=db:zeek_known_certs.serial;kind:termfield;friendly:Serial Number;help:Serial Number + +# known_modbus.log +# https://docs.zeek.org/en/stable/scripts/policy/protocols/modbus/known-masters-slaves.zeek.html#type-Known::ModbusInfo +zeek_known_modbus.device_type=db:zeek_known_modbus.device_type;kind:termfield;friendly:Role;help:Role + +# ldap.log +# https://github.com/mmguero-dev/spicy-analyzers/blob/main/analyzer/protocol/ldap/ldap.zeek +zeek_ldap.message_id=db:zeek_ldap.message_id;kind:termfield;friendly:Message ID;help:Message ID +zeek_ldap.version=db:zeek_ldap.version;kind:integer;friendly:LDAP Version;help:LDAP Version +zeek_ldap.operation=db:zeek_ldap.operation;kind:termfield;friendly:Operation;help:Operation +zeek_ldap.result_code=db:zeek_ldap.result_code;kind:termfield;friendly:Result Code;help:Result Code +zeek_ldap.result_message=db:zeek_ldap.result_message;kind:termfield;friendly:Diagnostic Message;help:Diagnostic Message +zeek_ldap.object=db:zeek_ldap.object;kind:termfield;friendly:Object;help:Object +zeek_ldap.argument=db:zeek_ldap.argument;kind:termfield;friendly:Arguments;help:Arguments + +# ldap_search.log +# https://github.com/mmguero-dev/spicy-analyzers/blob/main/analyzer/protocol/ldap/ldap.zeek +zeek_ldap_search.message_id=db:zeek_ldap_search.message_id;kind:termfield;friendly:Message ID;help:Message ID +zeek_ldap_search.scope=db:zeek_ldap_search.scope;kind:termfield;friendly:Scope;help:Scope +zeek_ldap_search.deref=db:zeek_ldap_search.deref;kind:termfield;friendly:Dereference Alias;help:Dereference Alias +zeek_ldap_search.base_object=db:zeek_ldap_search.base_object;kind:termfield;friendly:Base Object;help:Base Object +zeek_ldap_search.result_count=db:zeek_ldap_search.result_count;kind:integer;friendly:Result Count;help:Result Count +zeek_ldap_search.result_code=db:zeek_ldap_search.result_code;kind:termfield;friendly:Result Code;help:Result Code +zeek_ldap_search.result_message=db:zeek_ldap_search.result_message;kind:termfield;friendly:Diagnostic Message;help:Diagnostic Message + +# login.log - custom login.log module (rudimentary, login/rlogin/rsh analyzers are old and not the greatest) +zeek_login.success=db:zeek_login.success;kind:termfield;friendly:Successful Login;help:Successful Login +zeek_login.confused=db:zeek_login.confused;kind:termfield;friendly:Analyzer Confused;help:Analyzer Confused +zeek_login.client_user=db:zeek_login.client_user;kind:termfield;friendly:Client User;help:Client User + +# modbus.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/modbus/main.zeek.html#type-Modbus::Info +zeek_modbus.func=db:zeek_modbus.func;kind:termfield;friendly:Function;help:Function +zeek_modbus.exception=db:zeek_modbus.exception;kind:termfield;friendly:Exception;help:Exception + +# modbus_detailed.log +# https://github.com/cisagov/ICSNPP +zeek_modbus_detailed.unit_id=db:modbus_detailed.unit_id;kind:integer;friendly:Unit/Slave ID;help:Unit/Slave ID +zeek_modbus_detailed.func=db:modbus_detailed.func;kind:termfield;friendly:Modbus Function Code;help:Modbus Function Code +zeek_modbus_detailed.network_direction=db:modbus_detailed.network_direction;kind:termfield;friendly:Request or Response;help:Request or Response +zeek_modbus_detailed.address=db:modbus_detailed.address;kind:integer;friendly:Starting Memory Address;help:Starting Memory Address +zeek_modbus_detailed.quantity=db:modbus_detailed.quantity;kind:integer;friendly:Number of Values;help:Number of Values +zeek_modbus_detailed.values=db:modbus_detailed.values;kind:termfield;friendly:Values;help:Values + +# modbus_mask_write_register.log +# https://github.com/cisagov/ICSNPP +zeek_modbus_mask_write_register.unit_id=db:modbus_mask_write_register.unit_id;kind:integer;friendly:Unit/Slave ID;help:Unit/Slave ID +zeek_modbus_mask_write_register.func=db:modbus_mask_write_register.func;kind:termfield;friendly:Modbus Function Code;help:Modbus Function Code +zeek_modbus_mask_write_register.network_direction=db:modbus_mask_write_register.network_direction;kind:termfield;friendly:Request or Response;help:Request or Response +zeek_modbus_mask_write_register.address=db:modbus_mask_write_register.address;kind:integer;friendly:Starting Memory Address;help:Starting Memory Address +zeek_modbus_mask_write_register.and_mask=db:modbus_mask_write_register.and_mask;kind:integer;friendly:Boolean AND mask to apply to target register;help:Boolean AND mask to apply to target register +zeek_modbus_mask_write_register.or_mask=db:modbus_mask_write_register.or_mask;kind:integer;friendly:Boolean OR mask to apply to target register;help:Boolean OR mask to apply to target register + +# modbus_read_write_multiple_registers.log +# https://github.com/cisagov/ICSNPP +zeek_modbus_read_write_multiple_registers.unit_id=db:modbus_read_write_multiple_registers.unit_id;kind:integer;friendly:Unit/Slave ID;help:Unit/Slave ID +zeek_modbus_read_write_multiple_registers.func=db:modbus_read_write_multiple_registers.func;kind:termfield;friendly:Modbus Function Code;help:Modbus Function Code +zeek_modbus_read_write_multiple_registers.network_direction=db:modbus_read_write_multiple_registers.network_direction;kind:termfield;friendly:Request or Response;help:Request or Response +zeek_modbus_read_write_multiple_registers.write_start_address=db:modbus_read_write_multiple_registers.write_start_address;kind:integer;friendly:Starting address of the registers to write to;help:Starting address of the registers to write to +zeek_modbus_read_write_multiple_registers.write_registers=db:modbus_read_write_multiple_registers.write_registers;kind:termfield;friendly:Register values written;help:Register values written +zeek_modbus_read_write_multiple_registers.read_start_address=db:modbus_read_write_multiple_registers.read_start_address;kind:integer;friendly:Starting address of the registers to read;help:Starting address of the registers to read +zeek_modbus_read_write_multiple_registers.read_quantity=db:modbus_read_write_multiple_registers.read_quantity;kind:integer;friendly:Number of registers to read;help:Number of registers to read +zeek_modbus_read_write_multiple_registers.read_registers=db:modbus_read_write_multiple_registers.read_registers;kind:termfield;friendly:Register values read;help:Register values read + +# modbus_register_change.log +# https://docs.zeek.org/en/stable/scripts/policy/protocols/modbus/track-memmap.zeek.html#type-Modbus::MemmapInfo +zeek_modbus_register_change.register=db:zeek_modbus_register_change.register;kind:integer;friendly:Register;help:Register +zeek_modbus_register_change.old_val=db:zeek_modbus_register_change.old_val;kind:integer;friendly:Old Value;help:Old Value +zeek_modbus_register_change.new_val=db:zeek_modbus_register_change.new_val;kind:integer;friendly:New Value;help:New Value +zeek_modbus_register_change.delta=db:zeek_modbus_register_change.delta;kind:termfield;friendly:Change Interval;help:Change Interval + +# mqtt_connect.log +# https://docs.zeek.org/en/stable/scripts/policy/protocols/mqtt/main.zeek.html#type-MQTT::ConnectInfo +zeek_mqtt_connect.proto_name=db:zeek_mqtt_connect.proto_name;kind:termfield;friendly:MQTT Protocol;help:MQTT Protocol +zeek_mqtt_connect.proto_version=db:zeek_mqtt_connect.proto_version;kind:termfield;friendly:Protocol Version;help:Protocol Version +zeek_mqtt_connect.client_id=db:zeek_mqtt_connect.client_id;kind:termfield;friendly:Client ID;help:Client ID +zeek_mqtt_connect.connect_status=db:zeek_mqtt_connect.connect_status;kind:termfield;friendly:Connect Status;help:Connect Status +zeek_mqtt_connect.will_topic=db:zeek_mqtt_connect.will_topic;kind:termfield;friendly:LWT Topic;help:Last Will and Testament Topic +zeek_mqtt_connect.will_payload=db:zeek_mqtt_connect.will_payload;kind:termfield;friendly:LWT Payload;help:Last Will and Testament Payload + +# mqtt_publish.log +# https://docs.zeek.org/en/stable/scripts/policy/protocols/mqtt/main.zeek.html#type-MQTT::PublishInfo +zeek_mqtt_publish.from_client=db:zeek_mqtt_publish.from_client;kind:termfield;friendly:From Client;help:From Client +zeek_mqtt_publish.retain=db:zeek_mqtt_publish.retain;kind:termfield;friendly:Retain Flag;help:Retain Flag +zeek_mqtt_publish.qos=db:zeek_mqtt_publish.qos;kind:termfield;friendly:QoS Level;help:QoS Level +zeek_mqtt_publish.status=db:zeek_mqtt_publish.status;kind:termfield;friendly:Message Status;help:Message Status +zeek_mqtt_publish.topic=db:zeek_mqtt_publish.topic;kind:termfield;friendly:Topic;help:Topic +zeek_mqtt_publish.payload=db:zeek_mqtt_publish.payload;kind:termfield;friendly:Payload;help:Payload +zeek_mqtt_publish.payload_len=db:zeek_mqtt_publish.payload_len;kind:integer;friendly:Payload Length;help:Payload Length + +# mqtt_subscribe.log +# https://docs.zeek.org/en/stable/scripts/policy/protocols/mqtt/main.zeek.html#type-MQTT::SubscribeInfo +zeek_mqtt_subscribe.action=db:zeek_mqtt_subscribe.action;kind:termfield;friendly:Action;help:Action +zeek_mqtt_subscribe.topics=db:zeek_mqtt_subscribe.topics;kind:termfield;friendly:Topic;help:Topic +zeek_mqtt_subscribe.qos_levels=db:zeek_mqtt_subscribe.qos_levels;kind:integer;friendly:QoS Level Requested;help:QoS Level Requested +zeek_mqtt_subscribe.granted_qos_level=db:zeek_mqtt_subscribe.granted_qos_level;kind:integer;friendly:QoS Level Granted;help:QoS Level Granted +zeek_mqtt_subscribe.ack=db:zeek_mqtt_subscribe.ack;kind:termfield;friendly:ACKed;help:ACKed + +# mysql.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/mysql/main.zeek.html#type-MySQL::Info +zeek_mysql.cmd=db:zeek_mysql.cmd;kind:termfield;friendly:Command;help:Command +zeek_mysql.arg=db:zeek_mysql.arg;kind:termfield;friendly:Argument;help:Argument +zeek_mysql.success=db:zeek_mysql.success;kind:termfield;friendly:Success;help:Success +zeek_mysql.rows=db:zeek_mysql.rows;kind:integer;friendly:Rows Affected;help:Rows Affected +zeek_mysql.response=db:zeek_mysql.response;kind:termfield;friendly:Response;help:Response + +# notice.log +# https://docs.zeek.org/en/stable/scripts/base/frameworks/notice/main.zeek.html#type-Notice::Info +zeek_notice.file_mime_type=db:zeek_notice.file_mime_type;kind:termfield;friendly:File Magic;help:File Magic +zeek_notice.file_desc=db:zeek_notice.file_desc;kind:termfield;friendly:File Description;help:File Description +zeek_notice.note=db:zeek_notice.note;kind:termfield;friendly:Notice Type;help:Notice Type +zeek_notice.category=db:zeek_notice.category;kind:termfield;friendly:Category;help:Category +zeek_notice.sub_category=db:zeek_notice.sub_category;kind:termfield;friendly:Subcategory;help:Subcategory +zeek_notice.msg=db:zeek_notice.msg;kind:termfield;friendly:Message;help:Message +zeek_notice.sub=db:zeek_notice.sub;kind:termfield;friendly:Submessage;help:Submessage +zeek_notice.src=db:zeek_notice.src;kind:termfield;friendly:Notice Source;help:Notice Source +zeek_notice.dst=db:zeek_notice.dst;kind:termfield;friendly:Notice Destination;help:Notice Destination +zeek_notice.p=db:zeek_notice.p;kind:integer;friendly:Notice Port;help:Notice Port +zeek_notice.n=db:zeek_notice.n;kind:integer;friendly:Notice Count or Code;help:Notice Count or Code +zeek_notice.peer_descr=db:zeek_notice.peer_descr;kind:termfield;friendly:Remote Peer;help:Remote Peer +zeek_notice.actions=db:zeek_notice.actions;kind:termfield;friendly:Action;help:Action +zeek_notice.suppress_for=db:zeek_notice.suppress_for;kind:termfield;friendly:Suppress Interval;help:Suppress Interval +zeek_notice.dropped=db:zeek_notice.dropped;kind:termfield;friendly:Dropped;help:Dropped +zeek_notice.remote_location_country_code=db:zeek_notice.remote_location_country_code;kind:termfield;friendly:Notice Country Code;help:Notice Country Code +zeek_notice.remote_location_region=db:zeek_notice.remote_location_region;kind:termfield;friendly:Notice Region;help:Notice Region +zeek_notice.remote_location_city=db:zeek_notice.remote_location_city;kind:termfield;friendly:Notice City;help:Notice City +zeek_notice.remote_location_latitude=db:zeek_notice.remote_location_latitude;kind:termfield;friendly:Notice Latitude;help:Notice Latitude +zeek_notice.remote_location_longitude=db:zeek_notice.remote_location_longitude;kind:termfield;friendly:Notice Longitude;help:Notice Longitude + +# ntlm.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/ntlm/main.zeek.html#type-NTLM::Info +zeek_ntlm.host=db:zeek_ntlm.host;kind:termfield;friendly:Client Hostname;help:Client Hostname +zeek_ntlm.domain=db:zeek_ntlm.domain;kind:termfield;friendly:Client Domain Name;help:Client Domain Name +zeek_ntlm.success=db:zeek_ntlm.success;kind:termfield;friendly:Authentication Success;help:Authentication Success +zeek_ntlm.status=db:zeek_ntlm.status;kind:termfield;friendly:Status;help:Status +zeek_ntlm.server_nb_computer=db:zeek_ntlm.server_nb_computer;kind:termfield;friendly:Server CHALLENGE NetBIOS;help:Server CHALLENGE NetBIOS +zeek_ntlm.server_dns_computer=db:zeek_ntlm.server_dns_computer;kind:termfield;friendly:Server CHALLENGE DNS;help:Server CHALLENGE DNS +zeek_ntlm.server_tree=db:zeek_ntlm.server_tree;kind:termfield;friendly:Server CHALLENGE Tree;help:Server CHALLENGE Tree + +# ntp.log +# https://docs.zeek.org/en/latest/scripts/base/protocols/ntp/main.zeek.html#type-NTP::Info +zeek_ntp.version=db:zeek_ntp.version;kind:integer;friendly:NTP Version;help:NTP Version +zeek_ntp.mode=db:zeek_ntp.mode;kind:termfield;friendly:NTP Mode Code;help:NTP Mode Code +zeek_ntp.mode_str=db:zeek_ntp.mode_str;kind:termfield;friendly:NTP Mode;help:NTP Mode +zeek_ntp.stratum=db:zeek_ntp.stratum;kind:termfield;friendly:Stratum;help:Stratum +zeek_ntp.poll=db:zeek_ntp.poll;kind:termfield;friendly:Poll Interval;help:Poll Interval +zeek_ntp.precision=db:zeek_ntp.precision;kind:termfield;friendly:Clock Precision;help:Clock Precision +zeek_ntp.root_delay=db:zeek_ntp.root_delay;kind:termfield;friendly:Synchronizing Distance;help:Synchronizing Distance +zeek_ntp.root_disp=db:zeek_ntp.root_disp;kind:termfield;friendly:Estimated Drift Rate;help:Estimated Drift Rate +zeek_ntp.ref_id=db:zeek_ntp.ref_id;kind:termfield;friendly:Reference Clock Identifier;help:Reference Clock Identifier +zeek_ntp.ref_time=db:zeek_ntp.ref_time;kind:termfield;friendly:Reference Timestamp;help:Reference Timestamp +zeek_ntp.org_time=db:zeek_ntp.org_time;kind:termfield;friendly:Originate Timestamp;help:Originate Timestamp +zeek_ntp.rec_time=db:zeek_ntp.rec_time;kind:termfield;friendly:Receive Timestamp;help:Receive Timestamp +zeek_ntp.xmt_time=db:zeek_ntp.xmt_time;kind:termfield;friendly:Transmit Timestamp;help:Transmit Timestamp +zeek_ntp.num_exts=db:zeek_ntp.num_exts;kind:integer;friendly:Extension Fields;help:Extension Fields + +# pe.log +# https://docs.zeek.org/en/stable/scripts/base/files/pe/main.zeek.html#type-PE::Info +zeek_pe.machine=db:zeek_pe.machine;kind:termfield;friendly:Target Machine;help:Target Machine +zeek_pe.compile_ts=db:zeek_pe.compile_ts;kind:termfield;friendly:Compile Timestamp;help:Compile Timestamp +zeek_pe.os=db:zeek_pe.os;kind:termfield;friendly:Target OS;help:Target Operating System +zeek_pe.subsystem=db:zeek_pe.subsystem;kind:termfield;friendly:Target Subsystem;help:Target Subsystem +zeek_pe.is_exe=db:zeek_pe.is_exe;kind:termfield;friendly:Executable;help:Is an executable (vs. an object file) +zeek_pe.is_64bit=db:zeek_pe.is_64bit;kind:termfield;friendly:64 Bit;help:Is a 64-bit object +zeek_pe.uses_aslr=db:zeek_pe.uses_aslr;kind:termfield;friendly:Uses ASLR;help:Uses Address Space Layout Randomization +zeek_pe.uses_dep=db:zeek_pe.uses_dep;kind:termfield;friendly:Uses DEP;help:Uses Data Execution Prevention +zeek_pe.uses_code_integrity=db:zeek_pe.uses_code_integrity;kind:termfield;friendly:Enforces Integrity Checks;help:Enforces Code Integrity Checks +zeek_pe.uses_seh=db:zeek_pe.uses_seh;kind:termfield;friendly:Uses SEH;help:Uses Structured Exception Handling +zeek_pe.has_import_table=db:zeek_pe.has_import_table;kind:termfield;friendly:Has Import Table;help:Has Import Table +zeek_pe.has_export_table=db:zeek_pe.has_export_table;kind:termfield;friendly:Has Export Table;help:Has Export Table +zeek_pe.has_cert_table=db:zeek_pe.has_cert_table;kind:termfield;friendly:Has Certificate Table;help:Has Attribute Certificate Table +zeek_pe.has_debug_data=db:zeek_pe.has_debug_data;kind:termfield;friendly:Has Debug Table;help:Has Debug Table +zeek_pe.section_names=db:zeek_pe.section_names;kind:termfield;friendly:Sections;help:Sections + +# profinet.log +# https://github.com/amzn/zeek-plugin-profinet/blob/master/scripts/main.zeek +zeek_profinet.operation_type=db:zeek_profinet.operation_type;kind:termfield;friendly:Operation;help:Operation +zeek_profinet.block_version=db:zeek_profinet.block_version;kind:termfield;friendly:Block Version;help:Block Version +zeek_profinet.slot_number=db:zeek_profinet.slot_number;kind:integer;friendly:Slot;help:Slot +zeek_profinet.subslot_number=db:zeek_profinet.subslot_number;kind:integer;friendly:Subslot;help:Subslot +zeek_profinet.index=db:zeek_profinet.index;kind:termfield;friendly:Index;help:Index + +# profinet_dce_rpc.log +# https://github.com/amzn/zeek-plugin-profinet/blob/master/scripts/main.zeek +zeek_profinet_dce_rpc.version=db:zeek_profinet_dce_rpc.version;kind:integer;friendly:Version;help:Version +zeek_profinet_dce_rpc.packet_type=db:zeek_profinet_dce_rpc.packet_type;kind:termfield;friendly:Packet Type;help:Packet Type +zeek_profinet_dce_rpc.object_uuid=db:zeek_profinet_dce_rpc.object_uuid;kind:termfield;friendly:Object UUID;help:Object UUID +zeek_profinet_dce_rpc.interface_uuid=db:zeek_profinet_dce_rpc.interface_uuid;kind:termfield;friendly:Interface UUID;help:Interface UUID +zeek_profinet_dce_rpc.activity_uuid=db:zeek_profinet_dce_rpc.activity_uuid;kind:termfield;friendly:Activity UUID;help:Activity UUID +zeek_profinet_dce_rpc.server_boot_time=db:zeek_profinet_dce_rpc.server_boot_time;kind:integer;friendly:Server Boot Time;help:Server Boot Time +zeek_profinet_dce_rpc.operation=db:zeek_profinet_dce_rpc.operation;kind:termfield;friendly:Operation;help:Operation + +# radius.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/radius/main.zeek.html#type-RADIUS::Info +zeek_radius.mac=db:zeek_radius.mac;kind:termfield;friendly:MAC Address;help:MAC Address +zeek_radius.framed_addr=db:zeek_radius.framed_addr;kind:termfield;friendly:Framed Address;help:Framed Address +zeek_radius.tunnel_client=db:zeek_radius.tunnel_client;kind:termfield;friendly:Initiator Address;help:Initiator Address +zeek_radius.connect_info=db:zeek_radius.connect_info;kind:termfield;friendly:Connect Info;help:Connect Info +zeek_radius.reply_msg=db:zeek_radius.reply_msg;kind:termfield;friendly:Reply Message;help:Reply Message +zeek_radius.result=db:zeek_radius.result;kind:termfield;friendly:Result;help:Result +zeek_radius.ttl=db:zeek_radius.ttl;kind:termfield;friendly:TTL;help:TTL + +# rdp.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/rdp/main.zeek.html#type-RDP::Info +zeek_rdp.cookie=db:zeek_rdp.cookie;kind:termfield;friendly:Cookie;help:Cookie +zeek_rdp.result=db:zeek_rdp.result;kind:termfield;friendly:Connection Result;help:Connection Result +zeek_rdp.security_protocol=db:zeek_rdp.security_protocol;kind:termfield;friendly:Security Protocol;help:Security Protocol +zeek_rdp.client_channels=db:zeek_rdp.client_channels;kind:termfield;friendly:Channel;help:Channel +zeek_rdp.keyboard_layout=db:zeek_rdp.keyboard_layout;kind:termfield;friendly:Keyboard Layout;help:Keyboard Layout +zeek_rdp.client_build=db:zeek_rdp.client_build;kind:termfield;friendly:Client Version;help:Client Version +zeek_rdp.client_name=db:zeek_rdp.client_name;kind:termfield;friendly:Client Name;help:Client Name +zeek_rdp.client_dig_product_id=db:zeek_rdp.client_dig_product_id;kind:termfield;friendly:Client Product ID;help:Client Product ID +zeek_rdp.desktop_width=db:zeek_rdp.desktop_width;kind:integer;friendly:Desktop Width;help:Desktop Width +zeek_rdp.desktop_height=db:zeek_rdp.desktop_height;kind:integer;friendly:Desktop Height;help:Desktop Height +zeek_rdp.requested_color_depth=db:zeek_rdp.requested_color_depth;kind:termfield;friendly:Color Depth;help:Color Depth +zeek_rdp.cert_type=db:zeek_rdp.cert_type;kind:termfield;friendly:Certificate Type;help:Certificate Type +zeek_rdp.cert_count=db:zeek_rdp.cert_count;kind:integer;friendly:Certificate Count;help:Certificate Count +zeek_rdp.cert_permanent=db:zeek_rdp.cert_permanent;kind:termfield;friendly:Certificate is Permanent;help:Certificate is Permanent +zeek_rdp.encryption_level=db:zeek_rdp.encryption_level;kind:termfield;friendly:Encryption Level;help:Encryption Level +zeek_rdp.encryption_method=db:zeek_rdp.encryption_method;kind:termfield;friendly:Encryption Method;help:Encryption Method + +# rfb.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/rfb/main.zeek.html#type-RFB::Info +zeek_rfb.client_major_version=db:zeek_rfb.client_major_version;kind:termfield;friendly:Client Major Version;help:Client Major Version +zeek_rfb.client_minor_version=db:zeek_rfb.client_minor_version;kind:termfield;friendly:Client Minor Version;help:Client Minor Version +zeek_rfb.server_major_version=db:zeek_rfb.server_major_version;kind:termfield;friendly:Server Major Version;help:Server Major Version +zeek_rfb.server_minor_version=db:zeek_rfb.server_minor_version;kind:termfield;friendly:Server Minor Version;help:Server Minor Version +zeek_rfb.authentication_method=db:zeek_rfb.authentication_method;kind:termfield;friendly:Authentication Method;help:Authentication Method +zeek_rfb.auth=db:zeek_rfb.auth;kind:termfield;friendly:Authentication Success;help:Authentication Success +zeek_rfb.share_flag=db:zeek_rfb.share_flag;kind:termfield;friendly:Shared Session;help:Shared Session +zeek_rfb.desktop_name=db:zeek_rfb.desktop_name;kind:termfield;friendly:Desktop Name;help:Desktop Name +zeek_rfb.width=db:zeek_rfb.width;kind:integer;friendly:Desktop Width;help:Desktop Width +zeek_rfb.height=db:zeek_rfb.height;kind:integer;friendly:Desktop Height;help:Desktop Height + +# s7comm.log +# https://github.com/amzn/zeek-plugin-s7comm/blob/master/scripts/main.zeek +zeek_s7comm.rosctr=db:zeek_s7comm.rosctr;kind:termfield;friendly:Message Type;help:Message Type +zeek_s7comm.parameter=db:zeek_s7comm.parameter;kind:termfield;friendly:Parameters;help:Parameters +zeek_s7comm.parameters.class=db:zeek_s7comm.parameters.class;kind:termfield;friendly:Class;help:Class +zeek_s7comm.parameters.code=db:zeek_s7comm.parameters.code;kind:termfield;friendly:Code;help:Code +zeek_s7comm.parameters.group=db:zeek_s7comm.parameters.group;kind:termfield;friendly:Group;help:Group +zeek_s7comm.parameters.mode=db:zeek_s7comm.parameters.mode;kind:termfield;friendly:Mode;help:Mode +zeek_s7comm.parameters.sub=db:zeek_s7comm.parameters.sub;kind:termfield;friendly:Sub;help:Sub +zeek_s7comm.parameters.type=db:zeek_s7comm.parameters.type;kind:termfield;friendly:Type;help:Type +zeek_s7comm.item_count=db:zeek_s7comm.item_count;kind:integer;friendly:Data Entries;help:Total number of data entries +zeek_s7comm.data_info=db:zeek_s7comm.data_info;kind:termfield;friendly:Data Entry;help:Data of first entry + +# signatures.log +zeek_signatures.note=db:zeek_signatures.note;kind:termfield;friendly:Note;help:Note +zeek_signatures.signature_id=db:zeek_signatures.signature_id;kind:termfield;friendly:Signature ID;help:Signature ID +zeek_signatures.event_message=db:zeek_signatures.event_message;kind:termfield;friendly:Message;help:Message +zeek_signatures.sub_message=db:zeek_signatures.sub_message;kind:termfield;friendly:Submessage;help:Submessage +zeek_signatures.signature_count=db:zeek_signatures.signature_count;kind:integer;friendly:Signatures Matched;help:Signatures Matched +zeek_signatures.host_count=db:zeek_signatures.host_count;kind:integer;friendly:Host or Engine Count;help:Host or Engine Count +zeek_signatures.engine=db:zeek_signatures.engine;kind:termfield;friendly:Scan Engines;help:Scan Engines +zeek_signatures.hits=db:zeek_signatures.hits;kind:termfield;friendly:Hits;help:Hits + +# sip.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/sip/main.zeek.html#type-SIP::Info +zeek_sip.trans_depth=db:zeek_sip.trans_depth;kind:integer;friendly:Pipeline Depth;help:Pipeline Depth +zeek_sip.method=db:zeek_sip.method;kind:termfield;friendly:Request Method;help:Request Method +zeek_sip.uri=db:zeek_sip.uri;kind:termfield;friendly:URI;help:URI +zeek_sip.date=db:zeek_sip.date;kind:termfield;friendly:Request Date Header;help:Request Date Header +zeek_sip.request_from=db:zeek_sip.request_from;kind:termfield;friendly:Request From Header;help:Request From Header +zeek_sip.request_to=db:zeek_sip.request_to;kind:termfield;friendly:Request To Header;help:Request To Header +zeek_sip.response_from=db:zeek_sip.response_from;kind:termfield;friendly:Response From Header;help:Response From Header +zeek_sip.response_to=db:zeek_sip.response_to;kind:termfield;friendly:Response To Header;help:Response To Header +zeek_sip.reply_to=db:zeek_sip.reply_to;kind:termfield;friendly:Reply-To Header;help:Reply-To Header +zeek_sip.call_id=db:zeek_sip.call_id;kind:termfield;friendly:Client Call-ID Header;help:Client Call-ID Header +zeek_sip.seq=db:zeek_sip.seq;kind:termfield;friendly:Client CSeq Header;help:Client CSeq Header +zeek_sip.subject=db:zeek_sip.subject;kind:termfield;friendly:Client Subject Header;help:Client Subject Header +zeek_sip.request_path=db:zeek_sip.request_path;kind:termfield;friendly:Request Path;help:Request Path +zeek_sip.response_path=db:zeek_sip.response_path;kind:termfield;friendly:Response Path;help:Response Path +zeek_sip.user_agent=db:zeek_sip.user_agent;kind:termfield;friendly:User Agent;help:User Agent +zeek_sip.status_code=db:zeek_sip.status_code;kind:termfield;friendly:Status Code;help:Status Code +zeek_sip.status_msg=db:zeek_sip.status_msg;kind:termfield;friendly:Status Message;help:Status Message +zeek_sip.warning=db:zeek_sip.warning;kind:termfield;friendly:Warning Header;help:Warning Header +zeek_sip.request_body_len=db:zeek_sip.request_body_len;kind:integer;friendly:Request Body Length;help:Request Body Length +zeek_sip.response_body_len=db:zeek_sip.response_body_len;kind:integer;friendly:Response Body Length;help:Response Body Length +zeek_sip.content_type=db:zeek_sip.content_type;kind:termfield;friendly:Content Type Header;help:Content Type Header +zeek_sip.version=db:zeek_sip.version;kind:termfield;friendly:Version;help:Version + +# smb_cmd.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/smb/main.zeek.html#type-SMB::CmdInfo +zeek_smb_cmd.command=db:zeek_smb_cmd.command;kind:termfield;friendly:Command;help:Command +zeek_smb_cmd.sub_command=db:zeek_smb_cmd.sub_command;kind:termfield;friendly:Subcommand;help:Subcommand +zeek_smb_cmd.argument=db:zeek_smb_cmd.argument;kind:termfield;friendly:Argument;help:Argument +zeek_smb_cmd.status=db:zeek_smb_cmd.status;kind:termfield;friendly:Status;help:Status +zeek_smb_cmd.rtt=db:zeek_smb_cmd.rtt;kind:termfield;friendly:Round Trip Time;help:Round Trip Time +zeek_smb_cmd.version=db:zeek_smb_cmd.version;kind:termfield;friendly:Version;help:Version +zeek_smb_cmd.tree=db:zeek_smb_cmd.tree;kind:termfield;friendly:Tree;help:Tree +zeek_smb_cmd.tree_service=db:zeek_smb_cmd.tree_service;kind:termfield;friendly:Tree Service;help:Tree Service + +# smb_files.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/smb/main.zeek.html#type-SMB::FileInfo +zeek_smb_files.action=db:zeek_smb_files.action;kind:termfield;friendly:Action;help:Action +zeek_smb_files.path=db:zeek_smb_files.path;kind:termfield;friendly:File Path;help:File Path +zeek_smb_files.name=db:zeek_smb_files.name;kind:termfield;friendly:File Name;help:File Name +zeek_smb_files.size=db:zeek_smb_files.size;kind:integer;friendly:File Size;help:File Size +zeek_smb_files.prev_name=db:zeek_smb_files.prev_name;kind:termfield;friendly:Previous File Name;help:Previous File Name +zeek_smb_files.times_modified=db:zeek_smb_files.times_modified;kind:termfield;friendly:Write Time;help:Write Time +zeek_smb_files.times_accessed=db:zeek_smb_files.times_accessed;kind:termfield;friendly:Access Time;help:Access Time +zeek_smb_files.times_created=db:zeek_smb_files.times_created;kind:termfield;friendly:Creation Time;help:Creation Time +zeek_smb_files.times_changed=db:zeek_smb_files.times_changed;kind:termfield;friendly:Modified Time;help:Modified Time +zeek_smb_files.data_offset_req=db:zeek_smb_files.data_offset_req;kind:integer;friendly:Data Offset Requested;help:Data Offset Requested +zeek_smb_files.data_len_req=db:zeek_smb_files.data_len_req;kind:integer;friendly:Data Length Requested;help:Data Length Requested +zeek_smb_files.data_len_rsp=db:zeek_smb_files.data_len_rsp;kind:integer;friendly:Data Length In Response;help:Data Length In Response + +# smb_mapping.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/smb/main.zeek.html#type-SMB::TreeInfo +zeek_smb_mapping.path=db:zeek_smb_mapping.path;kind:termfield;friendly:Tree Path;help:Tree Path +zeek_smb_mapping.resource_type=db:zeek_smb_mapping.resource_type;kind:termfield;friendly:Resource Type;help:Resource Type +zeek_smb_mapping.native_file_system=db:zeek_smb_mapping.native_file_system;kind:termfield;friendly:File System;help:File System +zeek_smb_mapping.share_type=db:zeek_smb_mapping.share_type;kind:termfield;friendly:Share Type;help:Share Type + +# smtp.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/smtp/main.zeek.html#type-SMTP::Info +zeek_smtp.trans_depth=db:zeek_smtp.trans_depth;kind:integer;friendly:Transaction Depth;help:Transaction Depth +zeek_smtp.helo=db:zeek_smtp.helo;kind:termfield;friendly:HELO;help:HELO +zeek_smtp.mailfrom=db:zeek_smtp.mailfrom;kind:termfield;friendly:FROM Addresses;help:FROM Addresses +zeek_smtp.rcptto=db:zeek_smtp.rcptto;kind:termfield;friendly:RCPT TO;help:RCPT TO +zeek_smtp.date=db:zeek_smtp.date;kind:termfield;friendly:Date;help:Date +zeek_smtp.from=db:zeek_smtp.from;kind:termfield;friendly:FROM;help:FROM +zeek_smtp.to=db:zeek_smtp.to;kind:termfield;friendly:TO;help:TO +zeek_smtp.cc=db:zeek_smtp.cc;kind:termfield;friendly:CC;help:CC +zeek_smtp.reply_to=db:zeek_smtp.reply_to;kind:termfield;friendly:Reply-To;help:Reply-To +zeek_smtp.msg_id=db:zeek_smtp.msg_id;kind:termfield;friendly:MsgId;help:MsgId +zeek_smtp.in_reply_to=db:zeek_smtp.in_reply_to;kind:termfield;friendly:In-Reply-To;help:In-Reply-To +zeek_smtp.subject=db:zeek_smtp.subject;kind:termfield;friendly:Subject;help:Subject +zeek_smtp.x_originating_ip=db:zeek_smtp.x_originating_ip;kind:termfield;friendly:X-Originating-IP;help:X-Originating-IP +zeek_smtp.first_received=db:zeek_smtp.first_received;kind:termfield;friendly:First Received;help:First Received +zeek_smtp.second_received=db:zeek_smtp.second_received;kind:termfield;friendly:Second Received;help:Second Received +zeek_smtp.last_reply=db:zeek_smtp.last_reply;kind:termfield;friendly:Last Reply;help:Last Reply +zeek_smtp.last_reply_code=db:zeek_smtp.last_reply_code;kind:termfield;friendly:Last Reply Code;help:Last Reply Code +zeek_smtp.last_reply_msg=db:zeek_smtp.last_reply_msg;kind:termfield;friendly:Last Reply Message;help:Last Reply Message +zeek_smtp.path=db:zeek_smtp.path;kind:termfield;friendly:Tranmission Path;help:Tranmission Path +zeek_smtp.user_agent=db:zeek_smtp.user_agent;kind:termfield;friendly:User Agent;help:User Agent +zeek_smtp.tls=db:zeek_smtp.tls;kind:termfield;friendly:TLS;help:TLS +zeek_smtp.is_webmail=db:zeek_smtp.is_webmail;kind:termfield;friendly:Is Webmail;help:Is Webmail + +# snmp.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/snmp/main.zeek.html#type-SNMP::Info +zeek_snmp.duration=db:zeek_snmp.duration;kind:termfield;friendly:Duration;help:Duration +zeek_snmp.version=db:zeek_snmp.version;kind:termfield;friendly:Version;help:Version +zeek_snmp.community=db:zeek_snmp.community;kind:termfield;friendly:Community;help:Community +zeek_snmp.get_requests=db:zeek_snmp.get_requests;kind:integer;friendly:Get Requests;help:Get Requests +zeek_snmp.get_bulk_requests=db:zeek_snmp.get_bulk_requests;kind:integer;friendly:Get Bulk Requests;help:Get Bulk Requests +zeek_snmp.get_responses=db:zeek_snmp.get_responses;kind:integer;friendly:Get Responses;help:Get Responses +zeek_snmp.set_requests=db:zeek_snmp.set_requests;kind:integer;friendly:Set Requests;help:Set Requests +zeek_snmp.display_string=db:zeek_snmp.display_string;kind:termfield;friendly:Display String;help:Display String +zeek_snmp.up_since=db:zeek_snmp.up_since;kind:termfield;friendly:Up Since Timestamp;help:Up Since Timestamp + +# socks.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/socks/main.zeek.html#type-SOCKS::Info +zeek_socks.version=db:zeek_socks.version;kind:integer;friendly:Version;help:Version +zeek_socks.server_status=db:zeek_socks.server_status;kind:termfield;friendly:Server Status;help:Server Status +zeek_socks.request_host=db:zeek_socks.request_host;kind:termfield;friendly:Client Address;help:Client Address +zeek_socks.request_name=db:zeek_socks.request_name;kind:termfield;friendly:Client Name;help:Client Name +zeek_socks.request_port=db:zeek_socks.request_port;kind:integer;friendly:Client Port;help:Client Port +zeek_socks.bound_host=db:zeek_socks.bound_host;kind:termfield;friendly:Server Address;help:Server Address +zeek_socks.bound_name=db:zeek_socks.bound_name;kind:termfield;friendly:Server Name;help:Server Name +zeek_socks.bound_port=db:zeek_socks.bound_port;kind:integer;friendly:Server Port;help:Server Port + +# software.log +# https://docs.zeek.org/en/stable/scripts/base/frameworks/software/main.zeek.html#type-Software::Info +zeek_software.software_type=db:zeek_software.software_type;kind:termfield;friendly:Software Type;help:Software Type +zeek_software.name=db:zeek_software.name;kind:termfield;friendly:Software Name;help:Software Name +zeek_software.version_major=db:zeek_software.version_major;kind:integer;friendly:Major Version;help:Major Version +zeek_software.version_minor=db:zeek_software.version_minor;kind:integer;friendly:Minor Version;help:Minor Version +zeek_software.version_minor2=db:zeek_software.version_minor2;kind:integer;friendly:Minor Subversion;help:Minor Subversion +zeek_software.version_minor3=db:zeek_software.version_minor3;kind:integer;friendly:Minor Patch;help:Minor Patch +zeek_software.version_addl=db:zeek_software.version_addl;kind:termfield;friendly:Additional Version;help:Additional Version +zeek_software.unparsed_version=db:zeek_software.unparsed_version;kind:termfield;friendly:Version;help:Version + +# ssh.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/ssh/main.zeek.html#type-SSH::Info +zeek_ssh.version=db:zeek_ssh.version;kind:integer;friendly:Version;help:Version +zeek_ssh.auth_success=db:zeek_ssh.auth_success;kind:termfield;friendly:Authentication Success;help:Authentication Success +zeek_ssh.auth_attempts=db:zeek_ssh.auth_attempts;kind:integer;friendly:Authentication Attempts;help:Authentication Attempts +zeek_ssh.direction=db:zeek_ssh.direction;kind:termfield;friendly:Connection Direction;help:Connection Direction +zeek_ssh.client=db:zeek_ssh.client;kind:termfield;friendly:Client Version;help:Client Version +zeek_ssh.server=db:zeek_ssh.server;kind:termfield;friendly:Server Version;help:Server Version +zeek_ssh.cipher_alg=db:zeek_ssh.cipher_alg;kind:termfield;friendly:Cipher;help:Cipher Algorithm +zeek_ssh.mac_alg=db:zeek_ssh.mac_alg;kind:termfield;friendly:Signing Algorithm;help:Signing Algorithm +zeek_ssh.compression_alg=db:zeek_ssh.compression_alg;kind:termfield;friendly:Compression Algorithm;help:Compression Algorithm +zeek_ssh.kex_alg=db:zeek_ssh.kex_alg;kind:termfield;friendly:Key Exchange Algorithm;help:Key Exchange Algorithm +zeek_ssh.host_key_alg=db:zeek_ssh.host_key_alg;kind:termfield;friendly:Server Host Key Algorithm;help:Server Host Key Algorithm +zeek_ssh.host_key=db:zeek_ssh.host_key;kind:termfield;friendly:Server Key Fingerprint;help:Server Key Fingerprint +zeek_ssh.remote_location_country_code=db:zeek_ssh.remote_location_country_code;kind:termfield;friendly:SSH Remote Country Code;help:SSH Remote Country Code +zeek_ssh.remote_location_region=db:zeek_ssh.remote_location_region;kind:termfield;friendly:SSH Remote Region;help:SSH Remote Region +zeek_ssh.remote_location_city=db:zeek_ssh.remote_location_city;kind:termfield;friendly:SSH Remote City;help:SSH Remote City +zeek_ssh.remote_location_latitude=db:zeek_ssh.remote_location_latitude;kind:termfield;friendly:SSH Remote Latitude;help:SSH Remote Latitude +zeek_ssh.remote_location_longitude=db:zeek_ssh.remote_location_longitude;kind:termfield;friendly:SSH Remote Longitude;help:SSH Remote Longitude +zeek_ssh.hasshVersion=db:zeek_ssh.hasshVersion;kind:termfield;friendly:HASSH Version;help:HASSH Version +zeek_ssh.hassh=db:zeek_ssh.hassh;kind:termfield;friendly:HASSH Client Fingerprint;help:HASSH Client Fingerprint +zeek_ssh.hasshServer=db:zeek_ssh.hasshServer;kind:termfield;friendly:HASSH Server Fingerprint;help:HASSH Server Fingerprint +zeek_ssh.hasshAlgorithms=db:zeek_ssh.hasshAlgorithms;kind:termfield;friendly:HASSH Client Algorithms;help:HASSH Client Algorithms +zeek_ssh.hasshServerAlgorithms=db:zeek_ssh.hasshServerAlgorithms;kind:termfield;friendly:HASSH Server Algorithms;help:HASSH Server Algorithms +zeek_ssh.cshka=db:zeek_ssh.cshka;kind:termfield;friendly:HASSH Client Host Key Algorithms;help:HASSH Client Host Key Algorithms +zeek_ssh.sshka=db:zeek_ssh.sshka;kind:termfield;friendly:HASSH Server Host Key Algorithms;help:HASSH Server Host Key Algorithms + +# ssl.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/ssl/main.zeek.html#type-SSL::Info +zeek_ssl.ssl_version=db:zeek_ssl.ssl_version;kind:termfield;friendly:Version;help:Version +zeek_ssl.cipher=db:zeek_ssl.cipher;kind:termfield;friendly:Cipher;help:Cipher +zeek_ssl.curve=db:zeek_ssl.curve;kind:termfield;friendly:Elliptic Curve;help:Elliptic Curve +zeek_ssl.server_name=db:zeek_ssl.server_name;kind:termfield;friendly:Server Name;help:Server Name +zeek_ssl.resumed=db:zeek_ssl.resumed;kind:termfield;friendly:Resumed;help:Resumed +zeek_ssl.last_alert=db:zeek_ssl.last_alert;kind:termfield;friendly:Last Alert;help:Last Alert +zeek_ssl.next_protocol=db:zeek_ssl.next_protocol;kind:termfield;friendly:Next Protocol;help:Next Protocol +zeek_ssl.established=db:zeek_ssl.established;kind:termfield;friendly:Established;help:Established +zeek_ssl.cert_chain_fuids=db:zeek_ssl.cert_chain_fuids;kind:termfield;friendly:Certificate Chain File ID;help:Certificate Chain File ID +zeek_ssl.client_cert_chain_fuids=db:zeek_ssl.client_cert_chain_fuids;kind:termfield;friendly:Client Certificate File ID;help:Client Certificate File ID +zeek_ssl.issuer_full=db:zeek_ssl.issuer_full;kind:termfield;friendly:Issuer;help:Issuer +zeek_ssl.subject.C=db:zeek_ssl.subject.C;kind:termfield;friendly:Subject Country;help:Subject Country +zeek_ssl.subject.CN=db:zeek_ssl.subject.CN;kind:termfield;friendly:Subject Common Name;help:Subject Common Name +zeek_ssl.subject.description=db:zeek_ssl.subject.description;kind:termfield;friendly:Subject Description;help:Subject Description +zeek_ssl.subject.emailAddress=db:zeek_ssl.subject.emailAddress;kind:termfield;friendly:Subject Email Address;help:Subject Email Address +zeek_ssl.subject_full=db:zeek_ssl.subject_full;kind:termfield;friendly:Subject;help:Subject +zeek_ssl.subject.GN=db:zeek_ssl.subject.GN;kind:termfield;friendly:Subject Given Name;help:Subject Given Name +zeek_ssl.subject.initials=db:zeek_ssl.subject.initials;kind:termfield;friendly:Subject Initials;help:Subject Initials +zeek_ssl.subject.L=db:zeek_ssl.subject.L;kind:termfield;friendly:Subject Locality;help:Subject Locality +zeek_ssl.subject.O=db:zeek_ssl.subject.O;kind:termfield;friendly:Subject Organization;help:Subject Organization +zeek_ssl.subject.OU=db:zeek_ssl.subject.OU;kind:termfield;friendly:Subject Organization Unit;help:Subject Organization Unit +zeek_ssl.subject.postalCode=db:zeek_ssl.subject.postalCode;kind:termfield;friendly:Subject Postal Code;help:Subject Postal Code +zeek_ssl.subject.pseudonym=db:zeek_ssl.subject.pseudonym;kind:termfield;friendly:Subject Pseudonym;help:Subject Pseudonym +zeek_ssl.subject.serialNumber=db:zeek_ssl.subject.serialNumber;kind:termfield;friendly:Subject Serial Number;help:Subject Serial Number +zeek_ssl.subject.SN=db:zeek_ssl.subject.SN;kind:termfield;friendly:Subject Surname;help:Subject Surname +zeek_ssl.subject.ST=db:zeek_ssl.subject.ST;kind:termfield;friendly:Subject State;help:Subject State +zeek_ssl.subject.street=db:zeek_ssl.subject.street;kind:termfield;friendly:Subject Street;help:Subject Street +zeek_ssl.subject.title=db:zeek_ssl.subject.title;kind:termfield;friendly:Subject Title;help:Subject Title +zeek_ssl.issuer.CN=db:zeek_ssl.issuer.CN;kind:termfield;friendly:Issuer Common Name;help:Issuer Common Name +zeek_ssl.issuer.C=db:zeek_ssl.issuer.C;kind:termfield;friendly:Issuer Country;help:Issuer Country +zeek_ssl.issuer.O=db:zeek_ssl.issuer.O;kind:termfield;friendly:Issuer Organization;help:Issuer Organization +zeek_ssl.issuer.OU=db:zeek_ssl.issuer.OU;kind:termfield;friendly:Issuer Organization Unit;help:Issuer Organization Unit +zeek_ssl.issuer.ST=db:zeek_ssl.issuer.ST;kind:termfield;friendly:Issuer State;help:Issuer State +zeek_ssl.issuer.SN=db:zeek_ssl.issuer.SN;kind:termfield;friendly:Issuer Surname;help:Issuer Surname +zeek_ssl.issuer.L=db:zeek_ssl.issuer.L;kind:termfield;friendly:Issuer Locality;help:Issuer Locality +zeek_ssl.issuer.DC=db:zeek_ssl.issuer.DC;kind:termfield;friendly:Issuer Distinguished Name;help:Issuer Distinguished Name +zeek_ssl.issuer.GN=db:zeek_ssl.issuer.GN;kind:termfield;friendly:Issuer Given Name;help:Issuer Given Name +zeek_ssl.issuer.pseudonym=db:zeek_ssl.issuer.pseudonym;kind:termfield;friendly:Issuer Pseudonym;help:Issuer Pseudonym +zeek_ssl.issuer.serialNumber=db:zeek_ssl.issuer.serialNumber;kind:termfield;friendly:Issuer Serial Number;help:Issuer Serial Number +zeek_ssl.issuer.title=db:zeek_ssl.issuer.title;kind:termfield;friendly:Issuer Title;help:Issuer Title +zeek_ssl.issuer.initials=db:zeek_ssl.issuer.initials;kind:termfield;friendly:Issuer Initials;help:Issuer Initials +zeek_ssl.issuer.emailAddress=db:zeek_ssl.issuer.emailAddress;kind:termfield;friendly:Issuer Email Address;help:Issuer Email Address +zeek_ssl.client_subject_full=db:zeek_ssl.client_subject_full;kind:termfield;friendly:Client Subject;help:Client Subject +zeek_ssl.client_subject.CN=db:zeek_ssl.client_subject.CN;kind:termfield;friendly:Client Subject Common Name;help:Client Subject Common Name +zeek_ssl.client_subject.C=db:zeek_ssl.client_subject.C;kind:termfield;friendly:Client Subject Country;help:Client Subject Country +zeek_ssl.client_subject.O=db:zeek_ssl.client_subject.O;kind:termfield;friendly:Client Subject Organization;help:Client Subject Organization +zeek_ssl.client_subject.OU=db:zeek_ssl.client_subject.OU;kind:termfield;friendly:Client Subject Organization Unit;help:Client Subject Organization Unit +zeek_ssl.client_subject.ST=db:zeek_ssl.client_subject.ST;kind:termfield;friendly:Client Subject State;help:Client Subject State +zeek_ssl.client_subject.SN=db:zeek_ssl.client_subject.SN;kind:termfield;friendly:Client Subject Surname;help:Client Subject Surname +zeek_ssl.client_subject.L=db:zeek_ssl.client_subject.L;kind:termfield;friendly:Client Subject Locality;help:Client Subject Locality +zeek_ssl.client_subject.GN=db:zeek_ssl.client_subject.GN;kind:termfield;friendly:Client Subject Given Name;help:Client Subject Given Name +zeek_ssl.client_subject.pseudonym=db:zeek_ssl.client_subject.pseudonym;kind:termfield;friendly:Client Subject Pseudonym;help:Client Subject Pseudonym +zeek_ssl.client_subject.serialNumber=db:zeek_ssl.client_subject.serialNumber;kind:termfield;friendly:Client Subject Serial Number;help:Client Subject Serial Number +zeek_ssl.client_subject.title=db:zeek_ssl.client_subject.title;kind:termfield;friendly:Client Subject Title;help:Client Subject Title +zeek_ssl.client_subject.initials=db:zeek_ssl.client_subject.initials;kind:termfield;friendly:Client Subject Initials;help:Client Subject Initials +zeek_ssl.client_subject.emailAddress=db:zeek_ssl.client_subject.emailAddress;kind:termfield;friendly:Client Subject Email Address;help:Client Subject Email Address +zeek_ssl.client_issuer_full=db:zeek_ssl.client_issuer_full;kind:termfield;friendly:Client Issuer;help:Client Issuer +zeek_ssl.client_issuer.CN=db:zeek_ssl.client_issuer.CN;kind:termfield;friendly:Client Issuer Common Name;help:Client Issuer Common Name +zeek_ssl.client_issuer.C=db:zeek_ssl.client_issuer.C;kind:termfield;friendly:Client Issuer Country;help:Client Issuer Country +zeek_ssl.client_issuer.O=db:zeek_ssl.client_issuer.O;kind:termfield;friendly:Client Issuer Organization;help:Client Issuer Organization +zeek_ssl.client_issuer.OU=db:zeek_ssl.client_issuer.OU;kind:termfield;friendly:Client Issuer Organization Unit;help:Client Issuer Organization Unit +zeek_ssl.client_issuer.ST=db:zeek_ssl.client_issuer.ST;kind:termfield;friendly:Client Issuer State;help:Client Issuer State +zeek_ssl.client_issuer.SN=db:zeek_ssl.client_issuer.SN;kind:termfield;friendly:Client Issuer Surname;help:Client Issuer Surname +zeek_ssl.client_issuer.L=db:zeek_ssl.client_issuer.L;kind:termfield;friendly:Client Issuer Locality;help:Client Issuer Locality +zeek_ssl.client_issuer.DC=db:zeek_ssl.client_issuer.DC;kind:termfield;friendly:Client Issuer Distinguished Name;help:Client Issuer Distinguished Name +zeek_ssl.client_issuer.GN=db:zeek_ssl.client_issuer.GN;kind:termfield;friendly:Client Issuer Given Name;help:Client Issuer Given Name +zeek_ssl.client_issuer.pseudonym=db:zeek_ssl.client_issuer.pseudonym;kind:termfield;friendly:Client Issuer Pseudonym;help:Client Issuer Pseudonym +zeek_ssl.client_issuer.serialNumber=db:zeek_ssl.client_issuer.serialNumber;kind:termfield;friendly:Client Issuer Serial Number;help:Client Issuer Serial Number +zeek_ssl.client_issuer.title=db:zeek_ssl.client_issuer.title;kind:termfield;friendly:Client Issuer Title;help:Client Issuer Title +zeek_ssl.client_issuer.initials=db:zeek_ssl.client_issuer.initials;kind:termfield;friendly:Client Issuer Initials;help:Client Issuer Initials +zeek_ssl.client_issuer.emailAddress=db:zeek_ssl.client_issuer.emailAddress;kind:termfield;friendly:Client Issuer Email Address;help:Client Issuer Email Address +zeek_ssl.validation_status=db:zeek_ssl.validation_status;kind:termfield;friendly:Validation Status;help:Validation Status +zeek_ssl.ja3=db:zeek_ssl.ja3;kind:termfield;friendly:JA3 Fingerprint;help:JA3 Fingerprint +zeek_ssl.ja3s=db:zeek_ssl.ja3s;kind:termfield;friendly:JA3S Fingerprint;help:JA3S Fingerprint +zeek_ssl.ja3_desc=db:zeek_ssl.ja3_desc;kind:termfield;friendly:JA3 Fingerprint Lookup;help:JA3 Fingerprint Lookup +zeek_ssl.ja3s_desc=db:zeek_ssl.ja3s_desc;kind:termfield;friendly:JA3S Fingerprint Lookup;help:JA3S Fingerprint Lookup + +# syslog.log +# https://docs.zeek.org/en/stable/scripts/base/protocols/syslog/main.zeek.html#type-Syslog::Info +zeek_syslog.facility=db:zeek_syslog.facility;kind:termfield;friendly:Facility;help:Facility +zeek_syslog.severity=db:zeek_syslog.severity;kind:termfield;friendly:Severity;help:Severity +zeek_syslog.message=db:zeek_syslog.message;kind:termfield;friendly:Message;help:Message + +# tds.log - https://github.com/amzn/zeek-plugin-tds +# https://github.com/amzn/zeek-plugin-tds/blob/master/scripts/main.zeek +zeek_tds.command=db:zeek_tds.command;kind:termfield;friendly:Command;help:Command + +# tds_rpc.log - https://github.com/amzn/zeek-plugin-tds +# https://github.com/amzn/zeek-plugin-tds/blob/master/scripts/main.zeek +zeek_tds_rpc.procedure_name=db:zeek_tds_rpc.procedure_name;kind:termfield;friendly:Procedure;help:Procedure +zeek_tds_rpc.parameters=db:zeek_tds_rpc.parameters;kind:termfield;friendly:Parameters;help:Parameters + +# tds_sql_batch.log - https://github.com/amzn/zeek-plugin-tds +# https://github.com/amzn/zeek-plugin-tds/blob/master/scripts/main.zeek +zeek_tds_sql_batch.header_type=db:zeek_tds_sql_batch.header_type;kind:termfield;friendly:Header Type;help:Header Type +zeek_tds_sql_batch.query=db:zeek_tds_sql_batch.query;kind:termfield;friendly:Query;help:Query + +# tftp.log +# https://github.com/zeek/spicy-tftp +zeek_tftp.block_acked=db:zeek_tftp.block_acked;kind:integer;friendly:Highest Block ACKed;help:Highest Block ACKed +zeek_tftp.block_sent=db:zeek_tftp.block_sent;kind:integer;friendly:Highest Block Sent;help:Highest Block Sent +zeek_tftp.error_code=db:zeek_tftp.error_code;kind:integer;friendly:Error Code;help:Error Code +zeek_tftp.error_msg=db:zeek_tftp.error_msg;kind:integer;friendly:Error Message;help:Error Message +zeek_tftp.fname=db:zeek_tftp.fname;kind:termfield;friendly:File Name;help:File Name +zeek_tftp.mode=db:zeek_tftp.mode;kind:termfield;friendly:Transfer Mode;help:Transfer Mode +zeek_tftp.size=db:zeek_tftp.size;kind:termfield;friendly:Transfer Size;help:Transfer Size +zeek_tftp.uid_data=db:zeek_tftp.uid_data;kind:termfield;friendly:Data Connection ID;help:Data Connection ID +zeek_tftp.wrq=db:zeek_tftp.wrq;kind:termfield;friendly:Write Request;help:Write Request + +# tunnel.log +# https://docs.zeek.org/en/stable/scripts/base/frameworks/tunnels/main.zeek.html#type-Tunnel::Info +zeek_tunnel.tunnel_type=db:zeek_tunnel.tunnel_type;kind:termfield;friendly:Tunnel Type;help:Tunnel Type +zeek_tunnel.action=db:zeek_tunnel.action;kind:termfield;friendly:Action;help:Action + +# weird.log +# https://docs.zeek.org/en/stable/scripts/base/frameworks/notice/weird.zeek.html#type-Weird::Info +zeek_weird.name=db:zeek_weird.name;kind:termfield;friendly:Name;help:Name +zeek_weird.addl=db:zeek_weird.addl;kind:termfield;friendly:Additional Info;help:Additional Info +zeek_weird.notice=db:zeek_weird.notice;kind:termfield;friendly:Notice;help:Generated a notice +zeek_weird.peer=db:zeek_weird.peer;kind:termfield;friendly:Remote Peer;help:Remote Peer + +# wireguard.log +# https://github.com/zeek/spicy-analyzers/tree/main/analyzer/protocol/wireguard +zeek_wireguard.established=db:zeek_wireguard.established;kind:termfield;friendly:Established;help:Established +zeek_wireguard.initiations=db:zeek_wireguard.initiations;kind:integer;friendly:Initiation Packets;help:Initiation Packets +zeek_wireguard.responses=db:zeek_wireguard.responses;kind:integer;friendly:Response Packets;help:Response Packets + +# x509.log +# https://docs.zeek.org/en/stable/scripts/base/files/x509/main.zeek.html#type-X509::Info +zeek_x509.certificate_version=db:zeek_x509.certificate_version;kind:integer;friendly:Version;help:Version +zeek_x509.certificate_serial=db:zeek_x509.certificate_serial;kind:termfield;friendly:Serial Number;help:Serial Number +zeek_x509.certificate_subject_full=db:zeek_x509.certificate_subject_full;kind:termfield;friendly:Subject;help:Subject +zeek_x509.certificate_subject.CN=db:zeek_x509.certificate_subject.CN;kind:termfield;friendly:Subject Common Name;help:Subject Common Name +zeek_x509.certificate_subject.C=db:zeek_x509.certificate_subject.C;kind:termfield;friendly:Subject Country;help:Subject Country +zeek_x509.certificate_subject.description=db:zeek_x509.certificate_subject.description;kind:termfield;friendly:Subject Description;help:Subject Description +zeek_x509.certificate_subject.postalCode=db:zeek_x509.certificate_subject.postalCode;kind:termfield;friendly:Subject Postal Code;help:Subject Postal Code +zeek_x509.certificate_subject.street=db:zeek_x509.certificate_subject.street;kind:termfield;friendly:Subject Street;help:Subject Street +zeek_x509.certificate_subject.O=db:zeek_x509.certificate_subject.O;kind:termfield;friendly:Subject Organization;help:Subject Organization +zeek_x509.certificate_subject.OU=db:zeek_x509.certificate_subject.OU;kind:termfield;friendly:Subject Organization Unit;help:Subject Organization Unit +zeek_x509.certificate_subject.ST=db:zeek_x509.certificate_subject.ST;kind:termfield;friendly:Subject State;help:Subject State +zeek_x509.certificate_subject.SN=db:zeek_x509.certificate_subject.SN;kind:termfield;friendly:Subject Surname;help:Subject Surname +zeek_x509.certificate_subject.L=db:zeek_x509.certificate_subject.L;kind:termfield;friendly:Subject Locality;help:Subject Locality +zeek_x509.certificate_subject.DC=db:zeek_x509.certificate_subject.DC;kind:termfield;friendly:Subject Distinguished Name;help:Subject Distinguished Name +zeek_x509.certificate_subject.GN=db:zeek_x509.certificate_subject.GN;kind:termfield;friendly:Subject Given Name;help:Subject Given Name +zeek_x509.certificate_subject.pseudonym=db:zeek_x509.certificate_subject.pseudonym;kind:termfield;friendly:Subject Pseudonym;help:Subject Pseudonym +zeek_x509.certificate_subject.serialNumber=db:zeek_x509.certificate_subject.serialNumber;kind:termfield;friendly:Subject Serial Number;help:Subject Serial Number +zeek_x509.certificate_subject.title=db:zeek_x509.certificate_subject.title;kind:termfield;friendly:Subject Title;help:Subject Title +zeek_x509.certificate_subject.initials=db:zeek_x509.certificate_subject.initials;kind:termfield;friendly:Subject Initials;help:Subject Initials +zeek_x509.certificate_subject.emailAddress=db:zeek_x509.certificate_subject.emailAddress;kind:termfield;friendly:Subject Email Address;help:Subject Email Address +zeek_x509.certificate_issuer_full=db:zeek_x509.certificate_issuer_full;kind:termfield;friendly:Issuer;help:Issuer +zeek_x509.certificate_issuer.CN=db:zeek_x509.certificate_issuer.CN;kind:termfield;friendly:Issuer Common Name;help:Issuer Common Name +zeek_x509.certificate_issuer.DC=db:zeek_x509.certificate_issuer.DC;kind:termfield;friendly:Issuer Common Name;help:Issuer Distinguished Name +zeek_x509.certificate_issuer.C=db:zeek_x509.certificate_issuer.C;kind:termfield;friendly:Issuer Country;help:Issuer Country +zeek_x509.certificate_issuer.O=db:zeek_x509.certificate_issuer.O;kind:termfield;friendly:Issuer Organization;help:Issuer Organization +zeek_x509.certificate_issuer.OU=db:zeek_x509.certificate_issuer.OU;kind:termfield;friendly:Issuer Organization Unit;help:Issuer Organization Unit +zeek_x509.certificate_issuer.ST=db:zeek_x509.certificate_issuer.ST;kind:termfield;friendly:Issuer State;help:Issuer State +zeek_x509.certificate_issuer.SN=db:zeek_x509.certificate_issuer.SN;kind:termfield;friendly:Issuer Surname;help:Issuer Surname +zeek_x509.certificate_issuer.L=db:zeek_x509.certificate_issuer.L;kind:termfield;friendly:Issuer Locality;help:Issuer Locality +zeek_x509.certificate_issuer.GN=db:zeek_x509.certificate_issuer.GN;kind:termfield;friendly:Issuer Given Name;help:Issuer Given Name +zeek_x509.certificate_issuer.pseudonym=db:zeek_x509.certificate_issuer.pseudonym;kind:termfield;friendly:Issuer Pseudonym;help:Issuer Pseudonym +zeek_x509.certificate_issuer.serialNumber=db:zeek_x509.certificate_issuer.serialNumber;kind:termfield;friendly:Issuer Serial Number;help:Issuer Serial Number +zeek_x509.certificate_issuer.title=db:zeek_x509.certificate_issuer.title;kind:termfield;friendly:Issuer Title;help:Issuer Title +zeek_x509.certificate_issuer.initials=db:zeek_x509.certificate_issuer.initials;kind:termfield;friendly:Issuer Initials;help:Issuer Initials +zeek_x509.certificate_issuer.emailAddress=db:zeek_x509.certificate_issuer.emailAddress;kind:termfield;friendly:Issuer Email Address;help:Issuer Email Address +zeek_x509.certificate_not_valid_before=db:zeek_x509.certificate_not_valid_before;kind:termfield;friendly:Not Valid Before;help:Not Valid Before +zeek_x509.certificate_not_valid_after=db:zeek_x509.certificate_not_valid_after;kind:termfield;friendly:Not Valid After;help:Not Valid After +zeek_x509.certificate_key_alg=db:zeek_x509.certificate_key_alg;kind:termfield;friendly:Key Algorithm;help:Key Algorithm +zeek_x509.certificate_sig_alg=db:zeek_x509.certificate_sig_alg;kind:termfield;friendly:Signature Algorithm;help:Signature Algorithm +zeek_x509.certificate_key_type=db:zeek_x509.certificate_key_type;kind:termfield;friendly:Key Type;help:Key Type +zeek_x509.certificate_key_length=db:zeek_x509.certificate_key_length;kind:integer;friendly:Key Bitlength;help:Key Bitlength +zeek_x509.certificate_exponent=db:zeek_x509.certificate_exponent;kind:termfield;friendly:RSA Exponent;help:RSA Exponent +zeek_x509.certificate_curve=db:zeek_x509.certificate_curve;kind:termfield;friendly:Elliptic Curve;help:Elliptic Curve +zeek_x509.san_dns=db:zeek_x509.san_dns;kind:termfield;friendly:SAN DNS;help:Subject Alternative Name DNS +zeek_x509.san_uri=db:zeek_x509.san_uri;kind:termfield;friendly:SAN URI;help:Subject Alternative Name URI +zeek_x509.san_email=db:zeek_x509.san_email;kind:termfield;friendly:SAN Email;help:Subject Alternative Name Email +zeek_x509.san_ip=db:zeek_x509.san_ip;kind:termfield;friendly:SAN IP;help:Subject Alternative Name IP +zeek_x509.basic_constraints_ca=db:zeek_x509.basic_constraints_ca;kind:termfield;friendly:CA Flag;help:CA Flag +zeek_x509.basic_constraints_path_len=db:zeek_x509.basic_constraints_path_len;kind:integer;friendly:Maximum Path Length;help:Maximum Path Length + +[custom-views] +zeek_bacnet=require:zeek_bacnet;title:Zeek bacnet.log;fields:zeek_bacnet.bvlc_function,zeek_bacnet.pdu_type,zeek_bacnet.pdu_service,zeek_bacnet.invoke_id,zeek_bacnet.result_code +zeek_bacnet_discovery=require:zeek_bacnet_discovery;title:Zeek bacnet_discovery.log;fields:zeek_bacnet_discovery.pdu_service,zeek_bacnet_discovery.object_type,zeek_bacnet_discovery.instance_number,zeek_bacnet_discovery.vendor,zeek_bacnet_discovery.range,zeek_bacnet_discovery.range_low,zeek_bacnet_discovery.range_high,zeek_bacnet_discovery.object_name +zeek_bacnet_property=require:zeek_bacnet_property;title:Zeek bacnet_property.log;fields:zeek_bacnet_property.pdu_service,zeek_bacnet_property.object_type,zeek_bacnet_property.instance_number,zeek_bacnet_property.property,zeek_bacnet_property.array_index,zeek_bacnet_property.value +zeek_bestguess=require:zeek_bestguess;title:Zeek bestguess.log;fields:zeek_bestguess.name,zeek_bestguess.category +zeek_bsap_ip_header=require:zeek_bsap_ip_header;title:Zeek bsap_ip_header.log;fields:zeek_bsap_ip_header.num_msg,zeek_bsap_ip_header.type_name +zeek_bsap_ip_rdb=require:zeek_bsap_ip_rdb;title:Zeek bsap_ip_rdb.log;fields:zeek_bsap_ip_rdb.app_func_code,zeek_bsap_ip_rdb.data,zeek_bsap_ip_rdb.data_len,zeek_bsap_ip_rdb.func_code,zeek_bsap_ip_rdb.header_size,zeek_bsap_ip_rdb.mes_seq,zeek_bsap_ip_rdb.node_status,zeek_bsap_ip_rdb.res_seq,zeek_bsap_ip_rdb.sequence +zeek_bsap_ip_unknown=require:zeek_bsap_ip_unknown;title:Zeek bsap_ip_unknown.log;fields:zeek_bsap_ip_unknown.data +zeek_bsap_serial_header=require:zeek_bsap_serial_header;title:Zeek bsap_serial_header.log;fields:zeek_bsap_serial_header.ctl,zeek_bsap_serial_header.dadd,zeek_bsap_serial_header.dfun,zeek_bsap_serial_header.nsb,zeek_bsap_serial_header.sadd,zeek_bsap_serial_header.seq,zeek_bsap_serial_header.ser,zeek_bsap_serial_header.sfun,zeek_bsap_serial_header.type_name +zeek_bsap_serial_rdb=require:zeek_bsap_serial_rdb;title:Zeek bsap_serial_rdb.log;fields:zeek_bsap_serial_rdb.data,zeek_bsap_serial_rdb.func_code +zeek_bsap_serial_rdb_ext=require:zeek_bsap_serial_rdb_ext;title:Zeek bsap_serial_rdb_ext.log;fields:zeek_bsap_serial_rdb_ext.data,zeek_bsap_serial_rdb_ext.dfun,zeek_bsap_serial_rdb_ext.extfun,zeek_bsap_serial_rdb_ext.nsb,zeek_bsap_serial_rdb_ext.seq,zeek_bsap_serial_rdb_ext.sfun +zeek_bsap_serial_unknown=require:zeek_bsap_serial_unknown;title:Zeek bsap_serial_unknown.log;fields:zeek_bsap_serial_unknown.data +zeek_cip=require:zeek_cip;title:Zeek cip.log;fields:zeek_cip.cip_sequence_count,zeek_cip.direction,zeek_cip.cip_service,zeek_cip.cip_status,zeek_cip.class_id,zeek_cip.class_name,zeek_cip.instance_id,zeek_cip.attribute_id,zeek_cip.data_id,zeek_cip.other_id +zeek_cip_identity=require:zeek_cip_identity;title:Zeek cip_identity.log;fields:zeek_cip_identity.encapsulation_version,zeek_cip_identity.socket_address,zeek_cip_identity.socket_address_geo.city_name,zeek_cip_identity.socket_address_geo.country_name,zeek_cip_identity.socket_address_asn,zeek_cip_identity.socket_port,zeek_cip_identity.vendor_id,zeek_cip_identity.vendor_name,zeek_cip_identity.device_type_id,zeek_cip_identity.device_type_name,zeek_cip_identity.product_code,zeek_cip_identity.revision,zeek_cip_identity.device_status,zeek_cip_identity.serial_number,zeek_cip_identity.product_name,zeek_cip_identity.device_state +zeek_cip_io=require:zeek_cip_io;title:Zeek cip_io.log;fields:zeek_cip_io.connection_id,zeek_cip_io.sequence_number,zeek_cip_io.data_length,zeek_cip_io.io_data +zeek_conn=require:zeek_conn;title:Zeek conn.log;fields:zeek_conn.duration,zeek_conn.orig_bytes,zeek_conn.resp_bytes,zeek_conn.conn_state,zeek_conn.conn_state_description,zeek_conn.local_orig,zeek_conn.local_resp,zeek_conn.missed_bytes,zeek_conn.history,zeek_conn.orig_pkts,zeek_conn.orig_ip_bytes,zeek_conn.resp_pkts,zeek_conn.resp_ip_bytes,zeek_conn.tunnel_parents,zeek_conn.vlan,zeek_conn.inner_vlan +zeek_dce_rpc=require:zeek_dce_rpc;title:Zeek dce_rpc.log;fields:zeek_dce_rpc.rtt,zeek_dce_rpc.named_pipe,zeek_dce_rpc.endpoint,zeek_dce_rpc.operation +zeek_dhcp=require:zeek_dhcp;title:Zeek dhcp.log;fields:zeek_dhcp.mac,zeek_dhcp.assigned_ip,zeek_dhcp.lease_time,zeek_dhcp.trans_id,zeek_dhcp.client_fqdn,zeek_dhcp.client_message,zeek_dhcp.domain,zeek_dhcp.duration,zeek_dhcp.host_name,zeek_dhcp.msg_types,zeek_dhcp.requested_ip,zeek_dhcp.server_message,zeek_dhcp.client_software,zeek_dhcp.server_software +zeek_dnp3=require:zeek_dnp3;title:Zeek dnp3.log;fields:zeek_dnp3.fc_request,zeek_dnp3.fc_reply,zeek_dnp3.iin,zeek_dnp3.iin_flags +zeek_dnp3_control=require:zeek_dnp3_control;title:Zeek dnp3_control.log;fields:zeek_dnp3_control.block_type,zeek_dnp3_control.function_code,zeek_dnp3_control.index_number,zeek_dnp3_control.trip_control_code,zeek_dnp3_control.operation_type,zeek_dnp3_control.execute_count,zeek_dnp3_control.on_time,zeek_dnp3_control.off_time,zeek_dnp3_control.status_code +zeek_dnp3_objects=require:zeek_dnp3_objects;title:Zeek dnp3_objects.log;fields:zeek_dnp3_objects.function_code,zeek_dnp3_objects.object_type,zeek_dnp3_objects.object_count,zeek_dnp3_objects.range_low,zeek_dnp3_objects.range_high +zeek_dns=require:zeek_dns;title:Zeek dns.log;fields:zeek_dns.trans_id,zeek_dns.rtt,zeek_dns.query,zeek_dns.qclass,zeek_dns.qclass_name,zeek_dns.qtype,zeek_dns.qtype_name,zeek_dns.rcode,zeek_dns.rcode_name,zeek_dns.AA,zeek_dns.TC,zeek_dns.RD,zeek_dns.RA,zeek_dns.Z,zeek_dns.answers,zeek_dns.TTLs,zeek_dns.rejected +zeek_dpd=require:zeek_dpd;title:Zeek dpd.log;fields:zeek_dpd.service,zeek_dpd.failure_reason +zeek_ecat_registers=require:zeek_ecat_registers;title:Zeek ecat_registers.log;fields:zeek_ecat_registers.command,zeek_ecat_registers.slave_addr,zeek_ecat_registers.register_type,zeek_ecat_registers.register_addr,zeek_ecat_registers.data +zeek_ecat_log_address=require:zeek_ecat_log_address;title:Zeek ecat_log_address.log;fields:zeek_ecat_log_address.log_addr,zeek_ecat_log_address.length,zeek_ecat_log_address.command,zeek_ecat_log_address.data +zeek_ecat_dev_info=require:zeek_ecat_dev_info;title:Zeek ecat_dev_info.log;fields:zeek_ecat_dev_info.slave_id,zeek_ecat_dev_info.revision,zeek_ecat_dev_info.dev_type,zeek_ecat_dev_info.build,zeek_ecat_dev_info.fmmucnt,zeek_ecat_dev_info.smcount,zeek_ecat_dev_info.ports,zeek_ecat_dev_info.dpram,zeek_ecat_dev_info.features +zeek_ecat_aoe_info=require:zeek_ecat_aoe_info;title:Zeek ecat_aoe_info.log;fields:zeek_ecat_aoe_info.resp_port,zeek_ecat_aoe_info.orig_port,zeek_ecat_aoe_info.command,zeek_ecat_aoe_info.state,zeek_ecat_aoe_info.data +zeek_ecat_coe_info=require:zeek_ecat_coe_info;title:Zeek ecat_coe_info.log;fields:zeek_ecat_coe_info.number,zeek_ecat_coe_info.type,zeek_ecat_coe_info.req_resp,zeek_ecat_coe_info.index,zeek_ecat_coe_info.subindex,zeek_ecat_coe_info.dataoffset +zeek_ecat_foe_info=require:zeek_ecat_foe_info;title:Zeek ecat_foe_info.log;fields:zeek_ecat_foe_info.opcode,zeek_ecat_foe_info.reserved,zeek_ecat_foe_info.packet_num,zeek_ecat_foe_info.error_code,zeek_ecat_foe_info.filename,zeek_ecat_foe_info.data +zeek_ecat_soe_info=require:zeek_ecat_soe_info;title:Zeek ecat_soe_info.log;fields:zeek_ecat_soe_info.opcode,zeek_ecat_soe_info.incomplete,zeek_ecat_soe_info.error,zeek_ecat_soe_info.drive_num,zeek_ecat_soe_info.element,zeek_ecat_soe_info.index +zeek_ecat_arp_info=require:zeek_ecat_arp_info;title:Zeek ecat_arp_info.log;fields:zeek_ecat_arp_info.arp_type,zeek_ecat_arp_info.orig_proto_addr,zeek_ecat_arp_info.orig_hw_addr,zeek_ecat_arp_info.resp_proto_addr,zeek_ecat_arp_info.resp_hw_addr +zeek_enip=require:zeek_enip;title:Zeek enip.log;fields:zeek_enip.enip_command,zeek_enip.length,zeek_enip.session_handle,zeek_enip.enip_status,zeek_enip.sender_context,zeek_enip.options +zeek_files=require:zeek_files;title:Zeek files.log;fields:zeek_files.tx_hosts,zeek_files.rx_hosts,zeek_files.conn_uids,zeek_files.source,zeek_files.depth,zeek_files.analyzers,zeek_files.mime_type,zeek_files.filename,zeek_files.duration,zeek_files.local_orig,zeek_files.is_orig,zeek_files.seen_bytes,zeek_files.total_bytes,zeek_files.missing_bytes,zeek_files.overflow_bytes,zeek_files.timedout,zeek_files.parent_fuid,zeek_files.md5,zeek_files.sha1,zeek_files.sha256,zeek_files.extracted,zeek_files.extracted_cutoff,zeek_files.extracted_size +zeek_ftp=require:zeek_ftp;title:Zeek ftp.log;fields:zeek_ftp.command,zeek_ftp.arg,zeek_ftp.mime_type,zeek_ftp.file_size,zeek_ftp.reply_code,zeek_ftp.reply_msg,zeek_ftp.data_channel_passive,zeek_ftp.data_channel_orig_h,zeek_ftp.data_channel_resp_h,zeek_ftp.data_channel_resp_p +zeek_gquic=require:zeek_gquic;title:Zeek gquic.log;fields:zeek_gquic.version,zeek_gquic.server_name,zeek_gquic.user_agent,zeek_gquic.tag_count,zeek_gquic.cyu,zeek_gquic.cyutags +zeek_http=require:zeek_http;title:Zeek http.log;fields:zeek_http.trans_depth,zeek_http.method,zeek_http.host,zeek_http.uri,zeek_http.origin,zeek_http.post_password_plain,zeek_http.post_username,zeek_http.referrer,zeek_http.version,zeek_http.user_agent,zeek_http.request_body_len,zeek_http.response_body_len,zeek_http.status_code,zeek_http.status_msg,zeek_http.info_code,zeek_http.info_msg,zeek_http.tags,zeek_http.proxied,zeek_http.orig_fuids,zeek_http.orig_filenames,zeek_http.orig_mime_types,zeek_http.resp_fuids,zeek_http.resp_filenames,zeek_http.resp_mime_types +zeek_intel=require:zeek_intel;title:Zeek intel.log;fields:zeek_intel.indicator,zeek_intel.indicator_type,zeek_intel.seen_where,zeek_intel.seen_node,zeek_intel.matched,zeek_intel.sources,zeek_intel.file_mime_type,zeek_intel.file_description +zeek_ipsec=require:zeek_ipsec;title:Zeek ipsec.log;fields:zeek_ipsec.is_orig,zeek_ipsec.initiator_spi,zeek_ipsec.responder_spi,zeek_ipsec.maj_ver,zeek_ipsec.min_ver,zeek_ipsec.exchange_type,zeek_ipsec.flag_e,zeek_ipsec.flag_c,zeek_ipsec.flag_a,zeek_ipsec.flag_i,zeek_ipsec.flag_v,zeek_ipsec.flag_r,zeek_ipsec.flags,zeek_ipsec.message_id,zeek_ipsec.vendor_ids,zeek_ipsec.notify_messages,zeek_ipsec.transforms,zeek_ipsec.ke_dh_groups,zeek_ipsec.proposals,zeek_ipsec.certificates,zeek_ipsec.transform_attributes,zeek_ipsec.length,zeek_ipsec.hash +zeek_irc=require:zeek_irc;title:Zeek irc.log;fields:zeek_irc.nick,zeek_irc.command,zeek_irc.value,zeek_irc.addl,zeek_irc.dcc_file_name,zeek_irc.dcc_file_size,zeek_irc.dcc_mime_type +zeek_iso_cotp=require:zeek_iso_cotp;title:Zeek iso_cotp.log;fields:zeek_iso_cotp.pdu_type +zeek_kerberos=require:zeek_kerberos;title:Zeek kerberos.log;fields:zeek_kerberos.cname,zeek_kerberos.sname,zeek_kerberos.success,zeek_kerberos.error_msg,zeek_kerberos.from,zeek_kerberos.till,zeek_kerberos.cipher,zeek_kerberos.forwardable,zeek_kerberos.renewable,zeek_kerberos.request_type,zeek_kerberos.client_cert_subject,zeek_kerberos.client_cert_fuid,zeek_kerberos.server_cert_subject,zeek_kerberos.server_cert_fuid +zeek_known_certs=require:zeek_known_certs;title:Zeek known_certs.log;fields:zeek_known_certs.subject,zeek_known_certs.issuer_subject,zeek_known_certs.serial +zeek_known_modbus=require:zeek_known_modbus;title:Zeek zeek_known_modbus.log;fields:zeek_known_modbus.device_type +zeek_ldap=require:zeek_ldap;title:Zeek ldap.log;fields:zeek_ldap.message_id,zeek_ldap.version,zeek_ldap.operation,zeek_ldap.result_code,zeek_ldap.result_message,zeek_ldap.object,zeek_ldap.argument +zeek_ldap_search=require:zeek_ldap_search;title:Zeek ldap_search.log;fields:zeek_ldap_search.message_id,zeek_ldap_search.scope,zeek_ldap_search.deref,zeek_ldap_search.base_object,zeek_ldap_search.result_count,zeek_ldap_search.result_code,zeek_ldap_search.result_message +zeek_login=require:zeek_login;title:Zeek login.log;fields:zeek_login.client_user,zeek_login.confused,zeek_login.success +zeek_modbus=require:zeek_modbus;title:Zeek modbus.log;fields:zeek_modbus.func,zeek_modbus.exception +zeek_modbus_detailed=require:zeek_modbus_detailed;title:Zeek modbus_detailed.log;fields:zeek_modbus_detailed.unit_id,zeek_modbus_detailed.func,zeek_modbus_detailed.network_direction,zeek_modbus_detailed.address,zeek_modbus_detailed.quantity,zeek_modbus_detailed.values +zeek_modbus_mask_write_register=require:zeek_modbus_mask_write_register;title:Zeek modbus_mask_write_register.log;fields:zeek_modbus_mask_write_register.unit_id,zeek_modbus_mask_write_register.func,zeek_modbus_mask_write_register.network_direction,zeek_modbus_mask_write_register.address,zeek_modbus_mask_write_register.and_mask,zeek_modbus_mask_write_register.or_mask +zeek_modbus_read_write_multiple_registers=require:zeek_modbus_read_write_multiple_registers;title:Zeek modbus_read_write_multiple_registers.log;fields:zeek_modbus_read_write_multiple_registers.unit_id,zeek_modbus_read_write_multiple_registers.func,zeek_modbus_read_write_multiple_registers.network_direction,zeek_modbus_read_write_multiple_registers.write_start_address,zeek_modbus_read_write_multiple_registers.write_registers,zeek_modbus_read_write_multiple_registers.read_start_address,zeek_modbus_read_write_multiple_registers.read_quantity,zeek_modbus_read_write_multiple_registers.read_registers +zeek_modbus_register_change=require:zeek_modbus_register_change;title:Zeek modbus_register_change.log;fields:zeek_modbus_register_change.register,zeek_modbus_register_change.old_val,zeek_modbus_register_change.new_val,zeek_modbus_register_change.delta +zeek_mqtt_connect=require:zeek_mqtt_connect;title:Zeek mqtt_connect.log;fields:zeek_mqtt_connect.proto_name,zeek_mqtt_connect.proto_version,zeek_mqtt_connect.client_id,zeek_mqtt_connect.connect_status,zeek_mqtt_connect.will_topic,zeek_mqtt_connect.will_payload +zeek_mqtt_publish=require:zeek_mqtt_publish;title:Zeek mqtt_publish.log;fields:zeek_mqtt_publish.from_client,zeek_mqtt_publish.retain,zeek_mqtt_publish.qos,zeek_mqtt_publish.status,zeek_mqtt_publish.topic,zeek_mqtt_publish.payload,zeek_mqtt_publish.payload_len +zeek_mqtt_subscribe=require:zeek_mqtt_subscribe;title:Zeek mqtt_subscribe.log;fields:zeek_mqtt_subscribe.action,zeek_mqtt_subscribe.topics,zeek_mqtt_subscribe.qos_levels,zeek_mqtt_subscribe.granted_qos_level,zeek_mqtt_subscribe.ack +zeek_mysql=require:zeek_mysql;title:Zeek mysql.log;fields:zeek_mysql.cmd,zeek_mysql.arg,zeek_mysql.success,zeek_mysql.rows,zeek_mysql.response +zeek_notice=require:zeek_notice;title:Zeek notice.log;fields:zeek_notice.file_mime_type,zeek_notice.file_desc,zeek_notice.note,zeek_notice.msg,zeek_notice.sub,zeek_notice.src,zeek_notice.dst,zeek_notice.p,zeek_notice.n,zeek_notice.peer_descr,zeek_notice.actions,zeek_notice.suppress_for,zeek_notice.dropped,zeek_notice.remote_location_country_code,zeek_notice.remote_location_region,zeek_notice.remote_location_latitude,zeek_notice.remote_location_longitude,zeek_notice.category,zeek_notice.sub_category +zeek_ntlm=require:zeek_ntlm;title:Zeek ntlm.log;fields:zeek_ntlm.host,zeek_ntlm.domain,zeek_ntlm.success,zeek_ntlm.status,zeek_ntlm.server_nb_computer,zeek_ntlm.server_dns_computer,zeek_ntlm.server_tree +zeek_ntp=require:zeek_ntp;title:Zeek ntp.log;fields:zeek_ntp.version,zeek_ntp.mode,zeek_ntp.mode_str,zeek_ntp.stratum,zeek_ntp.poll,zeek_ntp.precision,zeek_ntp.root_delay,zeek_ntp.root_disp,zeek_ntp.ref_id,zeek_ntp.ref_time,zeek_ntp.org_time,zeek_ntp.rec_time,zeek_ntp.xmt_time,zeek_ntp.num_exts +zeek_pe=require:zeek_pe;title:Zeek pe.log;fields:zeek_pe.machine,zeek_pe.compile_ts,zeek_pe.os,zeek_pe.subsystem,zeek_pe.is_exe,zeek_pe.is_64bit,zeek_pe.uses_aslr,zeek_pe.uses_dep,zeek_pe.uses_code_integrity,zeek_pe.uses_seh,zeek_pe.has_import_table,zeek_pe.has_export_table,zeek_pe.has_cert_table,zeek_pe.has_debug_data,zeek_pe.section_names +zeek_profinet=require:zeek_profinet;title:Zeek profinet.log;fields:zeek_profinet.operation_type,zeek_profinet.block_version,zeek_profinet.slot_number,zeek_profinet.subslot_number,zeek_profinet.index +zeek_profinet_dce_rpc=require:zeek_profinet_dce_rpc;title:Zeek profinet_dce_rpc.log;fields:zeek_profinet_dce_rpc.version,zeek_profinet_dce_rpc.packet_type,zeek_profinet_dce_rpc.object_uuid,zeek_profinet_dce_rpc.interface_uuid,zeek_profinet_dce_rpc.activity_uuid,zeek_profinet_dce_rpc.server_boot_time,zeek_profinet_dce_rpc.operation +zeek_radius=require:zeek_radius;title:Zeek radius.log;fields:zeek_radius.mac,zeek_radius.framed_addr,zeek_radius.tunnel_client,zeek_radius.connect_info,zeek_radius.reply_msg,zeek_radius.result,zeek_radius.ttl +zeek_rdp=require:zeek_rdp;title:Zeek rdp.log;fields:zeek_rdp.cookie,zeek_rdp.result,zeek_rdp.security_protocol,zeek_rdp.client_channels,zeek_rdp.keyboard_layout,zeek_rdp.client_build,zeek_rdp.client_name,zeek_rdp.client_dig_product_id,zeek_rdp.desktop_width,zeek_rdp.desktop_height,zeek_rdp.requested_color_depth,zeek_rdp.cert_type,zeek_rdp.cert_count,zeek_rdp.cert_permanent,zeek_rdp.encryption_level,zeek_rdp.encryption_method +zeek_rfb=require:zeek_rfb;title:Zeek rfb.log;fields:zeek_rfb.client_major_version,zeek_rfb.client_minor_version,zeek_rfb.server_major_version,zeek_rfb.server_minor_version,zeek_rfb.authentication_method,zeek_rfb.auth,zeek_rfb.share_flag,zeek_rfb.desktop_name,zeek_rfb.width,zeek_rfb.height +zeek_s7comm=require:zeek_s7comm;title:Zeek s7comm.log;fields:zeek_s7comm.rosctr,zeek_s7comm.parameter,zeek_s7comm.parameters.class,zeek_s7comm.parameters.code,zeek_s7comm.parameters.group,zeek_s7comm.parameters.mode,zeek_s7comm.parameters.sub,zeek_s7comm.parameters.type,zeek_s7comm.item_count,zeek_s7comm.data_info +zeek_signatures=require:zeek_signatures;title:Zeek signatures.log;fields:zeek_signatures.note,zeek_signatures.signature_id,zeek_signatures.engine,zeek_signatures.event_message,zeek_signatures.sub_message,zeek_signatures.signature_count,zeek_signatures.host_count +zeek_sip=require:zeek_sip;title:Zeek sip.log;fields:zeek_sip.trans_depth,zeek_sip.method,zeek_sip.uri,zeek_sip.date,zeek_sip.request_from,zeek_sip.request_to,zeek_sip.response_from,zeek_sip.response_to,zeek_sip.reply_to,zeek_sip.call_id,zeek_sip.seq,zeek_sip.subject,zeek_sip.request_path,zeek_sip.response_path,zeek_sip.user_agent,zeek_sip.status_code,zeek_sip.status_msg,zeek_sip.warning,zeek_sip.request_body_len,zeek_sip.response_body_len,zeek_sip.content_type,zeek_sip.version +zeek_smb_cmd=require:zeek_smb_cmd;title:Zeek smb_cmd.log;fields:zeek_smb_cmd.command,zeek_smb_cmd.sub_command,zeek_smb_cmd.argument,zeek_smb_cmd.status,zeek_smb_cmd.rtt,zeek_smb_cmd.version,zeek_smb_cmd.user,zeek_smb_cmd.tree,zeek_smb_cmd.tree_service +zeek_smb_files=require:zeek_smb_files;title:Zeek smb_files.log;fields:zeek_smb_files.action,zeek_smb_files.path,zeek_smb_files.name,zeek_smb_files.size,zeek_smb_files.prev_name,zeek_smb_files.times_modified,zeek_smb_files.times_accessed,zeek_smb_files.times_created,zeek_smb_files.times_changed,zeek_smb_files.data_offset_req,zeek_smb_files.data_len_req,zeek_smb_files.data_len_rsp +zeek_smb_mapping=require:zeek_smb_mapping;title:Zeek smb_mapping.log;fields:zeek_smb_mapping.path,zeek_smb_mapping.resource_type,zeek_smb_mapping.native_file_system,zeek_smb_mapping.share_type +zeek_smtp=require:zeek_smtp;title:Zeek smtp.log;fields:zeek_smtp.trans_depth,zeek_smtp.helo,zeek_smtp.mailfrom,zeek_smtp.rcptto,zeek_smtp.date,zeek_smtp.from,zeek_smtp.to,zeek_smtp.cc,zeek_smtp.reply_to,zeek_smtp.msg_id,zeek_smtp.in_reply_to,zeek_smtp.subject,zeek_smtp.x_originating_ip,zeek_smtp.first_received,zeek_smtp.second_received,zeek_smtp.last_reply,zeek_smtp.last_reply_code,zeek_smtp.last_reply_msg,zeek_smtp.path,zeek_smtp.user_agent,zeek_smtp.tls,zeek_smtp.is_webmail +zeek_snmp=require:zeek_snmp;title:Zeek snmp.log;fields:zeek_snmp.duration,zeek_snmp.version,zeek_snmp.community,zeek_snmp.get_requests,zeek_snmp.get_bulk_requests,zeek_snmp.get_responses,zeek_snmp.set_requests,zeek_snmp.display_string,zeek_snmp.up_since +zeek_socks=require:zeek_socks;title:Zeek socks.log;fields:zeek_socks.version,zeek_socks.server_status,zeek_socks.request_host,zeek_socks.request_name,zeek_socks.request_port,zeek_socks.bound_host,zeek_socks.bound_name,zeek_socks.bound_port +zeek_software=require:zeek_software;title:Zeek software.log;fields:zeek_software.software_type,zeek_software.name,zeek_software.version_major,zeek_software.version_minor,zeek_software.version_minor2,zeek_software.version_minor3,zeek_software.version_addl,zeek_software.unparsed_version +zeek_ssh=require:zeek_ssh;title:Zeek ssh.log;fields:zeek_ssh.version,zeek_ssh.auth_success,zeek_ssh.auth_attempts,zeek_ssh.direction,zeek_ssh.client,zeek_ssh.server,zeek_ssh.cipher_alg,zeek_ssh.mac_alg,zeek_ssh.compression_alg,zeek_ssh.kex_alg,zeek_ssh.host_key_alg,zeek_ssh.host_key,zeek_ssh.remote_location_country_code,zeek_ssh.remote_location_region,zeek_ssh.remote_location_city,zeek_ssh.remote_location_latitude,zeek_ssh.remote_location_longitude,zeek_ssh.hassh,zeek_ssh.hasshServer,zeek_ssh.hasshAlgorithms,zeek_ssh.hasshServerAlgorithms,zeek_ssh.cshka,zeek_ssh.sshka +zeek_ssl=require:zeek_ssl;title:Zeek ssl.log;fields:zeek_ssl.ssl_version,zeek_ssl.cipher,zeek_ssl.curve,zeek_ssl.server_name,zeek_ssl.resumed,zeek_ssl.last_alert,zeek_ssl.next_protocol,zeek_ssl.established,zeek_ssl.ja3,zeek_ssl.ja3_desc,zeek_ssl.ja3s,zeek_ssl.ja3s_desc,zeek_ssl.cert_chain_fuids,zeek_ssl.client_cert_chain_fuids,zeek_ssl.subject.CN,zeek_ssl.subject.C,zeek_ssl.subject.O,zeek_ssl.subject.OU,zeek_ssl.subject.ST,zeek_ssl.subject.SN,zeek_ssl.subject.L,zeek_ssl.subject.GN,zeek_ssl.subject.pseudonym,zeek_ssl.subject.serialNumber,zeek_ssl.subject.title,zeek_ssl.subject.initials,zeek_ssl.subject.emailAddress,zeek_ssl.subject.description,zeek_ssl.subject.postalCode,zeek_ssl.subject.street,zeek_ssl.client_subject.CN,zeek_ssl.client_subject.C,zeek_ssl.client_subject.O,zeek_ssl.client_subject.OU,zeek_ssl.client_subject.ST,zeek_ssl.client_subject.SN,zeek_ssl.client_subject.L,zeek_ssl.client_subject.GN,zeek_ssl.client_subject.pseudonym,zeek_ssl.client_subject.serialNumber,zeek_ssl.client_subject.title,zeek_ssl.client_subject.initials,zeek_ssl.client_subject.emailAddress,zeek_ssl.issuer.CN,zeek_ssl.issuer.C,zeek_ssl.issuer.O,zeek_ssl.issuer.OU,zeek_ssl.issuer.ST,zeek_ssl.issuer.SN,zeek_ssl.issuer.L,zeek_ssl.issuer.DC,zeek_ssl.issuer.GN,zeek_ssl.issuer.pseudonym,zeek_ssl.issuer.serialNumber,zeek_ssl.issuer.title,zeek_ssl.issuer.initials,zeek_ssl.issuer.emailAddress,zeek_ssl.client_issuer.CN,zeek_ssl.client_issuer.C,zeek_ssl.client_issuer.O,zeek_ssl.client_issuer.OU,zeek_ssl.client_issuer.ST,zeek_ssl.client_issuer.SN,zeek_ssl.client_issuer.L,zeek_ssl.client_issuer.DC,zeek_ssl.client_issuer.GN,zeek_ssl.client_issuer.pseudonym,zeek_ssl.client_issuer.serialNumber,zeek_ssl.client_issuer.title,zeek_ssl.client_issuer.initials,zeek_ssl.client_issuer.emailAddress,zeek_ssl.validation_status +zeek_syslog=require:zeek_syslog;title:Zeek syslog.log;fields:zeek_syslog.facility,zeek_syslog.severity,zeek_syslog.message +zeek_tds=require:zeek_tds;title:Zeek tds.log;fields:zeek_tds.command +zeek_tds_rpc=require:zeek_tds_rpc;title:Zeek tds_rpc.log;fields:zeek_tds_rpc.procedure_name,zeek_tds_rpc.parameters +zeek_tds_sql_batch=require:zeek_tds_sql_batch;title:Zeek tds_sql_batch.log;fields:zeek_tds_sql_batch.header_type,zeek_tds_sql_batch.query +zeek_tftp=require:zeek_tftp;title:Zeek tftp.log;fields:zeek_tftp.block_acked,zeek_tftp.block_sent,zeek_tftp.error_code,zeek_tftp.error_msg,zeek_tftp.fname,zeek_tftp.mode,zeek_tftp.size,zeek_tftp.uid_data,zeek_tftp.wrq +zeek_tunnel=require:zeek_tunnel;title:Zeek tunnel.log;fields:zeek_tunnel.tunnel_type,zeek_tunnel.action +zeek_weird=require:zeek_weird;title:Zeek weird.log;fields:zeek_weird.name,zeek_weird.addl,zeek_weird.notice,zeek_weird.peer +zeek_wireguard=require:zeek_wireguard;title:Zeek wireguard.log;fields:zeek_wireguard.established,zeek_wireguard.initiations,zeek_wireguard.responses +zeek_x509=require:zeek_x509;title:Zeek x509.log;fields:zeek_x509.certificate_version,zeek_x509.certificate_serial,zeek_x509.certificate_subject.CN,zeek_x509.certificate_subject.C,zeek_x509.certificate_subject.O,zeek_x509.certificate_subject.OU,zeek_x509.certificate_subject.ST,zeek_x509.certificate_subject.SN,zeek_x509.certificate_subject.L,zeek_x509.certificate_subject.DC,zeek_x509.certificate_subject.GN,zeek_x509.certificate_subject.pseudonym,zeek_x509.certificate_subject.serialNumber,zeek_x509.certificate_subject.title,zeek_x509.certificate_subject.initials,zeek_x509.certificate_subject.emailAddress,zeek_x509.certificate_subject.description,zeek_x509.certificate_subject.postalCode,zeek_x509.certificate_subject.street,zeek_x509.certificate_issuer.CN,zeek_x509.certificate_issuer.DC,zeek_x509.certificate_issuer.C,zeek_x509.certificate_issuer.O,zeek_x509.certificate_issuer.OU,zeek_x509.certificate_issuer.ST,zeek_x509.certificate_issuer.SN,zeek_x509.certificate_issuer.L,zeek_x509.certificate_issuer.GN,zeek_x509.certificate_issuer.pseudonym,zeek_x509.certificate_issuer.serialNumber,zeek_x509.certificate_issuer.title,zeek_x509.certificate_issuer.initials,zeek_x509.certificate_issuer.emailAddress,zeek_x509.certificate_not_valid_before,zeek_x509.certificate_not_valid_after,zeek_x509.certificate_key_alg,zeek_x509.certificate_sig_alg,zeek_x509.certificate_key_type,zeek_x509.certificate_key_length,zeek_x509.certificate_exponent,zeek_x509.certificate_curve,zeek_x509.san_dns,zeek_x509.san_uri,zeek_x509.san_email,zeek_x509.san_ip,zeek_x509.basic_constraints_ca,zeek_x509.basic_constraints_path_len diff --git a/Vagrant/resources/malcolm/moloch/etc/user_settings.json b/Vagrant/resources/malcolm/moloch/etc/user_settings.json new file mode 100644 index 0000000..618d8aa --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/etc/user_settings.json @@ -0,0 +1,69 @@ +{ + "doc": { + "enabled": true, + "createEnabled": true, + "webEnabled": true, + "headerAuthEnabled": true, + "emailSearch": true, + "removeEnabled": true, + "packetSearch": true, + "hideStats": false, + "hideFiles": false, + "hidePcap": false, + "disablePcapDownload": false, + "settings": { + "timezone": "local", + "detailFormat": "last", + "showTimestamps": "last", + "sortColumn": "start", + "sortDirection": "desc", + "spiGraph": "protocol", + "connSrcField": "srcIp", + "connDstField": "dstIp", + "numPackets": "last", + "theme" : "custom1: #222222,#E2E2E2,#FFFFFF,#00789E,#004A79,#017D73,#092B40,#42b7c5,#2A7580,#ecb30a,#333333,#89ADCC,#6D6D6D,#FFE7E7,#ECFEFF", + "manualQuery": false + }, + "views": { + "Public IP Addresses": { + "expression": "(country.dst == EXISTS!) || (country.src == EXISTS!) || (ip.dst == EXISTS! && ip.dst != 0.0.0.0/8 && ip.dst != 10.0.0.0/8 && ip.dst != 100.64.0.0/10 && ip.dst != 127.0.0.0/8 && ip.dst != 169.254.0.0/16 && ip.dst != 172.16.0.0/12 && ip.dst != 192.0.0.0/24 && ip.dst != 192.0.2.0/24 && ip.dst != 192.88.99.0/24 && ip.dst != 192.168.0.0/16 && ip.dst != 198.18.0.0/15 && ip.dst != 198.51.100.0/24 && ip.dst != 203.0.113.0/24 && ip.dst != 224.0.0.0/4 && ip.dst != 232.0.0.0/8 && ip.dst != 233.0.0.0/8 && ip.dst != 234.0.0.0/8 && ip.dst != 239.0.0.0/8 && ip.dst != 240.0.0.0/4 && ip.dst != 255.255.255.255 && ip.dst != :: && ip.dst != ::1 && ip.dst != ff00::/8 && ip.dst != fe80::/10 && ip.dst != fc00::/7 && ip.dst != fd00::/8) || (ip.src == EXISTS! && ip.src != 0.0.0.0/8 && ip.src != 10.0.0.0/8 && ip.src != 100.64.0.0/10 && ip.src != 127.0.0.0/8 && ip.src != 169.254.0.0/16 && ip.src != 172.16.0.0/12 && ip.src != 192.0.0.0/24 && ip.src != 192.0.2.0/24 && ip.src != 192.88.99.0/24 && ip.src != 192.168.0.0/16 && ip.src != 198.18.0.0/15 && ip.src != 198.51.100.0/24 && ip.src != 203.0.113.0/24 && ip.src != 224.0.0.0/4 && ip.src != 232.0.0.0/8 && ip.src != 233.0.0.0/8 && ip.src != 234.0.0.0/8 && ip.src != 239.0.0.0/8 && ip.src != 240.0.0.0/4 && ip.src != 255.255.255.255 && ip.src != :: && ip.src != ::1 && ip.src != ff00::/8 && ip.src != fe80::/10 && ip.src != fc00::/7 && ip.src != fd00::/8)" + }, + "PCAP Files": { + "expression": "zeek.logType != EXISTS!" + }, + "Zeek Logs": { + "expression": "zeek.logType == EXISTS!" + }, + "Zeek conn.log": { + "expression": "zeek.logType == conn" + }, + "Zeek Exclude conn.log": { + "expression": "zeek.logType == EXISTS! && zeek.logType != conn" + } + }, + "tableStates": { + "sessionsNew": { + "order": [ + [ + "firstPacket", + "desc" + ] + ], + "visibleHeaders": [ + "protocol", + "zeek.logType", + "firstPacket", + "lastPacket", + "src", + "srcPort", + "dst", + "dstPort", + "totPackets", + "dbby", + "tags", + "info" + ] + } + } + } +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/moloch/etc/wise.ini b/Vagrant/resources/malcolm/moloch/etc/wise.ini new file mode 100644 index 0000000..e3a35f6 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/etc/wise.ini @@ -0,0 +1,16 @@ +# Arkime WISE data source config file +# See also https://github.com/arkime/arkime/wiki/WISE +# https://github.com/arkime/arkime/blob/master/release/wise.ini.sample +# + +[wiseService] +port = 8081 +excludeDomains=*.bl.barracudabrts.com;*.zen.spamhaus.org;*.in-addr.arpa;*.avts.mcafee.com;*.avqs.mcafee.com;*.bl.barracuda.com;*.lbl8.mailshell.net;*.dnsbl.sorbs.net;*.s.sophosxl.net;*.metric.gstatic.com;*.ip6.arpa + +[zeeklogs] +key= + +[right-click] +VTIP=url:https://www.virustotal.com/en/ip-address/%TEXT%/information/;name:Virus Total IP;category:ip +VTHOST=url:https://www.virustotal.com/en/domain/%HOST%/information/;name:Virus Total Host;category:host +VTURL=url:https://www.virustotal.com/latest-scan/%URL%;name:Virus Total URL;category:url diff --git a/Vagrant/resources/malcolm/moloch/moloch_regression_test_harness/Dockerfiles/arkime.Dockerfile b/Vagrant/resources/malcolm/moloch/moloch_regression_test_harness/Dockerfiles/arkime.Dockerfile new file mode 100644 index 0000000..c5b047a --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/moloch_regression_test_harness/Dockerfiles/arkime.Dockerfile @@ -0,0 +1,73 @@ +FROM debian:buster-slim AS build + +ENV DEBIAN_FRONTEND noninteractive + +ENV GITHUB_URL "https://github.com/arkime/arkime/" +ENV GITHUB_BRANCH "master" +ENV ARKIMEDIR "/data/moloch" +ENV ARKIMEUSER "arkime" + +USER root + +RUN apt-get -q update && \ + apt-get install -q -y --no-install-recommends \ + binutils \ + bison \ + cmake \ + curl \ + file \ + flex \ + g++ \ + gcc \ + gettext \ + git \ + groff \ + groff-base \ + libcap-dev \ + libjson-perl \ + libkrb5-dev \ + libmaxminddb-dev \ + libpcap0.8-dev \ + libssl-dev \ + libtool \ + libwww-perl \ + libyaml-dev \ + make \ + patch \ + python \ + python-dev \ + rename \ + sudo \ + swig \ + vim-tiny \ + wget \ + zlib1g-dev + +RUN mkdir /data && \ + groupadd --gid 1000 $ARKIMEUSER && \ + useradd -M --uid 1000 --gid 1000 --home $ARKIMEDIR --no-create-home $ARKIMEUSER && \ + chown -R $ARKIMEUSER:$ARKIMEUSER /data && \ + usermod -aG sudo $ARKIMEUSER && \ + sed -i /etc/sudoers -re 's/^%sudo.*/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g' && \ + sed -i /etc/sudoers -re 's/^root.*/root ALL=(ALL:ALL) NOPASSWD: ALL/g' + +USER $ARKIMEUSER + +RUN git clone --recursive --depth=1 --single-branch -b "$GITHUB_BRANCH" "$GITHUB_URL" "$ARKIMEDIR" && \ + cd "$ARKIMEDIR" && \ + bash -c 'for i in /data/patches/*; do patch -p 1 -r - --no-backup-if-mismatch < $i || true; done' && \ + export PATH="$ARKIMEDIR/bin:$ARKIMEDIR/node-v10.21.0-linux-x64/bin:${PATH}" && \ + sudo ln -sfr $ARKIMEDIR/bin/npm /usr/local/bin/npm && \ + sudo ln -sfr $ARKIMEDIR/bin/node /usr/local/bin/node && \ + sudo ln -sfr $ARKIMEDIR/bin/npx /usr/local/bin/npx && \ + ./easybutton-build.sh && \ + (make check || true) && \ + sudo npm -g install jison + +ENV PATH="/data:$ARKIMEDIR/bin:$ARKIMEDIR/node-v10.21.0-linux-x64/bin:${PATH}" + +EXPOSE 8000 8005 8081 + +WORKDIR $ARKIMEDIR/tests + +CMD bash diff --git a/Vagrant/resources/malcolm/moloch/moloch_regression_test_harness/docker-compose.yml b/Vagrant/resources/malcolm/moloch/moloch_regression_test_harness/docker-compose.yml new file mode 100644 index 0000000..9aa4b54 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/moloch_regression_test_harness/docker-compose.yml @@ -0,0 +1,47 @@ +version: '3.7' + +services: + elasticsearch: + image: docker.elastic.co/elasticsearch/elasticsearch-od:7.10.2 + restart: "no" + environment: + logger.level : 'INFO' + bootstrap.memory_lock : 'true' + ES_JAVA_OPTS : '-Xms4g -Xmx4g -Xss256k -Djava.security.egd=file:/dev/./urandom' + discovery.type : 'single-node' + # cluster.initial_master_nodes : 'elasticsearch' + cluster.routing.allocation.disk.threshold_enabled : 'false' + cluster.routing.allocation.node_initial_primaries_recoveries : 8 + expose: + - 9200 + ulimits: + memlock: + soft: -1 + hard: -1 + cap_add: + - IPC_LOCK + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9200"] + interval: 30s + timeout: 15s + retries: 3 + start_period: 30s + network_mode: host + arkime: + build: + context: . + dockerfile: Dockerfiles/arkime.Dockerfile + image: arkimetest:latest + restart: "no" + ulimits: + memlock: + soft: -1 + hard: -1 + depends_on: + - elasticsearch + expose: + - 8000 + - 8005 + - 8081 + network_mode: host + command: tail -F /dev/null diff --git a/Vagrant/resources/malcolm/moloch/patch/fields_db_max_2048.patch b/Vagrant/resources/malcolm/moloch/patch/fields_db_max_2048.patch new file mode 100644 index 0000000..bef33df --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/patch/fields_db_max_2048.patch @@ -0,0 +1,26 @@ +diff --git a/capture/moloch.h b/capture/moloch.h +index ef1327ee..773ae80e 100644 +--- a/capture/moloch.h ++++ b/capture/moloch.h +@@ -310,7 +310,7 @@ enum MolochRotate { + */ + + #define MOLOCH_FIELD_NOT_FOUND -1 +-#define MOLOCH_FIELDS_DB_MAX 512 ++#define MOLOCH_FIELDS_DB_MAX 2048 + #define MOLOCH_FIELDS_CNT_MIN MOLOCH_FIELDS_DB_MAX + #define MOLOCH_FIELDS_CNT_MAX (MOLOCH_FIELDS_DB_MAX*2) + #define MOLOCH_FIELD_EXSPECIAL_START (MOLOCH_FIELDS_CNT_MAX) +diff --git a/capture/plugins/wise.c b/capture/plugins/wise.c +index 34a83d6a..001b6866 100644 +--- a/capture/plugins/wise.c ++++ b/capture/plugins/wise.c +@@ -111,7 +111,7 @@ typedef struct wiseitem_head { + uint32_t wil_count; + } WiseItemHead_t; + +-#define WISE_MAX_REQUEST_ITEMS 512 ++#define WISE_MAX_REQUEST_ITEMS MOLOCH_FIELDS_DB_MAX + typedef struct wiserequest { + BSB bsb; + WiseItem_t *items[WISE_MAX_REQUEST_ITEMS]; diff --git a/Vagrant/resources/malcolm/moloch/patch/footer_links.patch b/Vagrant/resources/malcolm/moloch/patch/footer_links.patch new file mode 100644 index 0000000..65f4588 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/patch/footer_links.patch @@ -0,0 +1,14 @@ +diff --git a/viewer/vueapp/src/components/utils/Footer.vue b/viewer/vueapp/src/components/utils/Footer.vue +index 55b2dbdb..8e6338da 100644 +--- a/viewer/vueapp/src/components/utils/Footer.vue ++++ b/viewer/vueapp/src/components/utils/Footer.vue +@@ -4,7 +4,8 @@ +

+ + Arkime v{{molochVersion}} | +- arkime.com ++ arkime.com | ++ Malcolm + + | {{ responseTime | commaString }}ms + diff --git a/Vagrant/resources/malcolm/moloch/patch/remove_upload.patch b/Vagrant/resources/malcolm/moloch/patch/remove_upload.patch new file mode 100644 index 0000000..8eb19d0 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/patch/remove_upload.patch @@ -0,0 +1,24 @@ +diff --git a/viewer/vueapp/src/router/index.js b/viewer/vueapp/src/router/index.js +index 02494926..a3c974f9 100644 +--- a/viewer/vueapp/src/router/index.js ++++ b/viewer/vueapp/src/router/index.js +@@ -11,7 +11,6 @@ import Spiview from '@/components/spiview/Spiview'; + import Spigraph from '@/components/spigraph/Spigraph'; + import Connections from '@/components/connections/Connections'; + import Settings from '@/components/settings/Settings'; +-import Upload from '@/components/upload/Upload'; + import Hunt from '@/components/hunt/Hunt'; + import Moloch404 from '@/components/utils/404'; + +@@ -86,11 +85,6 @@ const router = new Router({ + name: 'Settings', + component: Settings + }, +- { +- path: '/upload', +- name: 'Upload', +- component: Upload +- }, + { + path: '/hunt', + name: 'Hunt', diff --git a/Vagrant/resources/malcolm/moloch/patch/spi_sort_zeek.patch b/Vagrant/resources/malcolm/moloch/patch/spi_sort_zeek.patch new file mode 100644 index 0000000..4231870 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/patch/spi_sort_zeek.patch @@ -0,0 +1,13 @@ +diff --git a/viewer/vueapp/src/components/spiview/Spiview.vue b/viewer/vueapp/src/components/spiview/Spiview.vue +index 51378987..facfe7e9 100644 +--- a/viewer/vueapp/src/components/spiview/Spiview.vue ++++ b/viewer/vueapp/src/components/spiview/Spiview.vue +@@ -841,6 +841,8 @@ export default { + + // sorted list of categories for the view + this.categoryList = Object.keys(this.categoryObjects).sort(); ++ this.categoryList.splice(this.categoryList.indexOf('zeek'), 1); ++ this.categoryList.unshift('zeek'); + this.categoryList.splice(this.categoryList.indexOf('general'), 1); + this.categoryList.unshift('general'); + diff --git a/Vagrant/resources/malcolm/moloch/patch/user_agent.patch b/Vagrant/resources/malcolm/moloch/patch/user_agent.patch new file mode 100644 index 0000000..abcd23c --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/patch/user_agent.patch @@ -0,0 +1,30 @@ +diff --git a/capture/http.c b/capture/http.c +index c39f7a0c..a2032880 100644 +--- a/capture/http.c ++++ b/capture/http.c +@@ -227,6 +227,8 @@ unsigned char *moloch_http_send_sync(void *serverV, const char *method, const ch + curl_easy_setopt(easy, CURLOPT_HTTPGET, 1L); + } + ++ curl_easy_setopt(easy, CURLOPT_USERAGENT, "arkime"); ++ + if (headerList) { + curl_easy_setopt(easy, CURLOPT_HTTPHEADER, headerList); + } +@@ -828,6 +830,7 @@ gboolean moloch_http_send(void *serverV, const char *method, const char *key, in + curl_easy_setopt(request->easy, CURLOPT_CLOSESOCKETFUNCTION, moloch_http_curl_close_callback); + curl_easy_setopt(request->easy, CURLOPT_ACCEPT_ENCODING, ""); // https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html + curl_easy_setopt(request->easy, CURLOPT_TCP_KEEPALIVE, 1L); ++ curl_easy_setopt(request->easy, CURLOPT_USERAGENT, "arkime"); + + if (request->headerList) { + curl_easy_setopt(request->easy, CURLOPT_HTTPHEADER, request->headerList); +@@ -947,7 +950,7 @@ void moloch_http_set_retries(void *serverV, uint16_t retries) + server->maxRetries = retries; + } + /******************************************************************************/ +-void moloch_http_set_client_cert(void *serverV, char* clientCert, ++void moloch_http_set_client_cert(void *serverV, char* clientCert, + char* clientKey, char* clientKeyPass) + { + MolochHttpServer_t *server = serverV; diff --git a/Vagrant/resources/malcolm/moloch/patch/viewer_wider_field_detail.patch b/Vagrant/resources/malcolm/moloch/patch/viewer_wider_field_detail.patch new file mode 100644 index 0000000..8a9d9c0 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/patch/viewer_wider_field_detail.patch @@ -0,0 +1,22 @@ +diff --git a/viewer/vueapp/src/components/sessions/SessionDetail.vue b/viewer/vueapp/src/components/sessions/SessionDetail.vue +index 72517d44..c75c5cc4 100644 +--- a/viewer/vueapp/src/components/sessions/SessionDetail.vue ++++ b/viewer/vueapp/src/components/sessions/SessionDetail.vue +@@ -1049,7 +1049,7 @@ export default { + .session-detail dt { + float: left; + clear: left; +- width: 160px; ++ width: 320px; + text-align: right; + margin-right: 6px; + line-height: 1.7; +@@ -1057,7 +1057,7 @@ export default { + } + + .session-detail dd { +- margin-left: 165px; ++ margin-left: 325px; + } + + /* more items link */ diff --git a/Vagrant/resources/malcolm/moloch/patch_debug/js_debug_build.patch.debug b/Vagrant/resources/malcolm/moloch/patch_debug/js_debug_build.patch.debug new file mode 100644 index 0000000..ea5cbc1 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/patch_debug/js_debug_build.patch.debug @@ -0,0 +1,61 @@ +diff --git a/Makefile.am b/Makefile.am +index bc2b9fe0..978409cf 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -2,7 +2,7 @@ SUBDIRS = . capture db viewer parliament release + install-exec-local: + npm install + @INSTALL@ -D package.json @prefix@/package.json +- (cd @prefix@ ; npm install --production) ++ (cd @prefix@ ; npm install) + + config: + @prefix@/bin/Configure +diff --git a/Makefile.in b/Makefile.in +index 45354dc9..bde5e4ec 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -282,7 +282,7 @@ capture/molochconfig.h: capture/stamp-h1 + capture/stamp-h1: $(top_srcdir)/capture/molochconfig.h.in $(top_builddir)/config.status + @rm -f capture/stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status capture/molochconfig.h +-$(top_srcdir)/capture/molochconfig.h.in: $(am__configure_deps) ++$(top_srcdir)/capture/molochconfig.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f capture/stamp-h1 + touch $@ +@@ -747,7 +747,7 @@ uninstall-am: + install-exec-local: + npm install + @INSTALL@ -D package.json @prefix@/package.json +- (cd @prefix@ ; npm install --production) ++ (cd @prefix@ ; npm install) + + config: + @prefix@/bin/Configure +diff --git a/parliament/Makefile.in b/parliament/Makefile.in +index e5224bed..aa2c3ec9 100644 +--- a/parliament/Makefile.in ++++ b/parliament/Makefile.in +@@ -13,7 +13,7 @@ install: + npm install + npm run build + $(CP) -pr public dist notifiers $(PARLIAMENTDIR) +- (cd $(PARLIAMENTDIR) ; npm install --production) ++ (cd $(PARLIAMENTDIR) ; npm install) + + distclean realclean clean: + rm -rf node_modules +diff --git a/viewer/Makefile.in b/viewer/Makefile.in +index 1e7f65fb..6de24568 100644 +--- a/viewer/Makefile.in ++++ b/viewer/Makefile.in +@@ -16,7 +16,7 @@ install: + npm run bundle:min + $(CP) -pr views public $(VIEWERDIR) + $(CP) -pr vueapp/dist "$(VIEWERDIR)/vueapp" +- (cd $(VIEWERDIR) ; npm install --production) ++ (cd $(VIEWERDIR) ; npm install) + + distclean realclean clean: + rm -rf node_modules diff --git a/Vagrant/resources/malcolm/moloch/patch_debug/moloch_extra_auth_debug.patch b/Vagrant/resources/malcolm/moloch/patch_debug/moloch_extra_auth_debug.patch new file mode 100644 index 0000000..20e7ea1 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/patch_debug/moloch_extra_auth_debug.patch @@ -0,0 +1,23 @@ +diff -Naur a/viewer/viewer.js b/viewer/viewer.js +--- a/viewer/viewer.js 2018-10-03 13:08:06.228039893 -0600 ++++ b/viewer/viewer.js 2018-10-03 13:10:44.327829524 -0600 +@@ -221,8 +221,11 @@ + } + + // Header auth ++ console.log("DEBUG 1 - checking userNameHeader of", internals.userNameHeader, "in", req.headers, "for", req.url); + if (internals.userNameHeader !== undefined) { ++ console.log("DEBUG 2 - checking userNameHeader of", internals.userNameHeader, "in", req.headers, "for", req.url); + if (req.headers[internals.userNameHeader] !== undefined) { ++ console.log("DEBUG 3 - checking userNameHeader of", internals.userNameHeader, "in", req.headers, "for", req.url); + var userName = req.headers[internals.userNameHeader]; + Db.getUserCache(userName, function(err, suser) { + if (err) {return res.send("ERROR - getUser - user: " + userName + " err:" + err);} +@@ -239,6 +242,7 @@ + console.log("DEBUG - Couldn't find userNameHeader of", internals.userNameHeader, "in", req.headers, "for", req.url); + } + } ++ console.log("DEBUG 4 - after userNameHeader of", internals.userNameHeader, "in", req.headers, "for", req.url); + + // Browser auth + req.url = req.url.replace("/", Config.basePath()); diff --git a/Vagrant/resources/malcolm/moloch/scripts/bs4_remove_div.py b/Vagrant/resources/malcolm/moloch/scripts/bs4_remove_div.py new file mode 100755 index 0000000..aee5595 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/scripts/bs4_remove_div.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from __future__ import print_function + +from bs4 import BeautifulSoup +import argparse +import os +import sys + +################################################################################################### +debug = False +PY3 = (sys.version_info.major >= 3) +scriptName = os.path.basename(__file__) +scriptPath = os.path.dirname(os.path.realpath(__file__)) +origPath = os.getcwd() + +################################################################################################### +if not PY3: + if hasattr(__builtins__, 'raw_input'): input = raw_input + +try: + FileNotFoundError +except NameError: + FileNotFoundError = IOError + +################################################################################################### +# print to stderr +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + +################################################################################################### +# convenient boolean argument parsing +def str2bool(v): + if v.lower() in ('yes', 'true', 't', 'y', '1'): + return True + elif v.lower() in ('no', 'false', 'f', 'n', '0'): + return False + else: + raise argparse.ArgumentTypeError('Boolean value expected.') + +################################################################################################### +# main +def main(): + global debug + + parser = argparse.ArgumentParser(description=scriptName, add_help=False, usage='{} '.format(scriptName)) + parser.add_argument('-v', '--verbose', dest='debug', type=str2bool, nargs='?', const=True, default=False, help="Verbose output") + parser.add_argument('-i', '--input', required=True, metavar='', type=str, help='Input file') + parser.add_argument('-o', '--output', required=True, metavar='', type=str, help='Output file') + parser.add_argument('-c', '--div-class', required=True, dest='divClass', metavar='', type=str, default='', help='div class to remove') + parser.add_argument('-p', '--parser', required=False, dest='parser', metavar='', type=str, default='html.parser', help='BeautifulSoup parser') + parser.add_argument('-e', '--encoding', required=False, dest='encoding', metavar='', type=str, default='utf-8', help='Encoding for output file') + try: + parser.error = parser.exit + args = parser.parse_args() + except SystemExit: + parser.print_help() + exit(2) + + debug = args.debug + if debug: + eprint(os.path.join(scriptPath, scriptName)) + eprint("Arguments: {}".format(sys.argv[1:])) + eprint("Arguments: {}".format(args)) + else: + sys.tracebacklimit = 0 + + soup = BeautifulSoup(open(args.input), args.parser) + for div in soup.find_all("div", { 'class' : args.divClass }): + div.decompose() + + with open(args.output, 'wb') as f: + f.write(soup.prettify(args.encoding)) + +if __name__ == '__main__': + main() diff --git a/Vagrant/resources/malcolm/moloch/scripts/initmoloch.sh b/Vagrant/resources/malcolm/moloch/scripts/initmoloch.sh new file mode 100755 index 0000000..d3eeb99 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/scripts/initmoloch.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +rm -f /var/run/moloch/initialized /var/run/moloch/runwise + +echo "Giving Elasticsearch time to start..." +/data/elastic_search_status.sh 2>&1 && echo "Elasticsearch is running!" + +# download and/or update geo updates +$ARKIMEDIR/bin/moloch_update_geo.sh + +# start and wait patiently for WISE +if [[ "$WISE" = "on" ]] ; then + touch /var/run/moloch/runwise + echo "Giving WISE time to start..." + sleep 5 + until curl -sSf --output /dev/null "http://127.0.0.1:8081/fields?ver=1" + do + echo "Waiting for WISE to start" + sleep 1 + done + echo "WISE is running!" + echo +fi + +# initialize the contents of the Elasticearch database if it has never been initialized (ie., the users_v# table hasn't been created) +if [[ $(curl -fs -XGET -H'Content-Type: application/json' "http://$ES_HOST:$ES_PORT/_cat/indices/users_v*" | wc -l) < 1 ]]; then + + echo "Initializing Elasticsearch database..." + + $ARKIMEDIR/db/db.pl http://$ES_HOST:$ES_PORT initnoprompt + + # this password isn't going to be used by Arkime, nginx will do the auth instead + $ARKIMEDIR/bin/moloch_add_user.sh "${MALCOLM_USERNAME}" "${MALCOLM_USERNAME}" "ignored" --admin --webauthonly --webauth + + # this is a hacky way to get all of the Arkime-parseable field definitions put into E.S. + touch /tmp/not_a_packet.pcap + $ARKIMEDIR/bin/moloch-capture --packetcnt 0 -r /tmp/not_a_packet.pcap >/dev/null 2>&1 + rm -f /tmp/not_a_packet.pcap + + #set some default settings I want for moloch + curl -sS -H'Content-Type: application/json' -XPOST http://$ES_HOST:$ES_PORT/users_v7/user/$MALCOLM_USERNAME/_update -d "@$ARKIMEDIR/etc/user_settings.json" + + echo -e "\nElasticsearch database initialized!\n" + +else + echo "Elasticsearch database previously initialized!" + echo + + if /data/moloch-needs-upgrade.sh 2>&1; then + echo "Elasticsearch database needs to be upgraded for $ARKIME_VERSION!" + $ARKIMEDIR/db/db.pl http://$ES_HOST:$ES_PORT upgradenoprompt + echo "Elasticsearch database upgrade complete!" + echo + + else + echo "Elasticsearch database is up-to-date for Arkime version $ARKIME_VERSION!" + echo + + fi # if /data/moloch-needs-upgrade.sh +fi # if/else Elasticsearch database initialized + +# increase Elasticsearch max shards per node from default if desired +if [[ -n $ES_MAX_SHARDS_PER_NODE ]]; then + # see https://github.com/elastic/elasticsearch/issues/40803 + curl -sS -H'Content-Type: application/json' -XPUT http://$ES_HOST:$ES_PORT/_cluster/settings -d "{ \"persistent\": { \"cluster.max_shards_per_node\": \"$ES_MAX_SHARDS_PER_NODE\" } }" +fi + +# before running viewer, call _refresh to make sure everything is available for search first +curl -sS -XPOST http://$ES_HOST:$ES_PORT/_refresh + +touch /var/run/moloch/initialized + +# the (viewer|wise)_service.sh scripts will start/restart those processes diff --git a/Vagrant/resources/malcolm/moloch/scripts/moloch-needs-upgrade.sh b/Vagrant/resources/malcolm/moloch/scripts/moloch-needs-upgrade.sh new file mode 100755 index 0000000..6304ed4 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/scripts/moloch-needs-upgrade.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# this script returns: +# 0 - an UPGRADE IS NEEDED for Arkime indices +# 1 - an UPGRADE IS NOT NEEDED for Arkime indices +RETURN_CODE=1 + +set -e + +# see Arkime's db.pl (https://github.com/arkime/arkime/blob/master/db/db.pl) near the bottom for this list + declare -A ARKIME_INDEX_CURRENT_VERSIONS=( + [dstats_v]=dstats_v4 + [fields_v]=fields_v3 + [files_v]=files_v6 + [hunts_v]=hunts_v2 + [lookups_v]=lookups_v1 + [queries_v]=queries_v3 + [sequence_v]=sequence_v3 + [stats_v]=stats_v4 + [users_v]=users_v7 +) + +# get a list of all current indices and loop over them +while read INDEX_NAME; do + + # for each current index, check to see if it's one of the Arkime indices (prefixed by + # the key of ARKIME_INDEX_CURRENT_VERSIONS) + for INDEX_PREFIX in "${!ARKIME_INDEX_CURRENT_VERSIONS[@]}"; do + if [[ ${INDEX_NAME} = ${INDEX_PREFIX}* ]]; then + + # if this is a Arkime index, make sure the version matches what we think it should + if [[ ${INDEX_NAME} != ${ARKIME_INDEX_CURRENT_VERSIONS[$INDEX_PREFIX]} ]]; then + RETURN_CODE=0 + echo "${INDEX_NAME}:${ARKIME_INDEX_CURRENT_VERSIONS[$INDEX_PREFIX]}" 1>&2 + break + fi # compare INDEX_NAME vs. full Arkime index name with version + + fi # compare INDEX_NAME vs. INDEX_PREFIX + done # loop over ARKIME_INDEX_CURRENT_VERSIONS + +done <<<$(curl -fsS -H"Content-Type: application/json" -XGET "http://$ES_HOST:$ES_PORT/_cat/indices?v" | tail -n +2 | awk '{print $3}') + +exit $RETURN_CODE diff --git a/Vagrant/resources/malcolm/moloch/scripts/moloch_update_geo.sh b/Vagrant/resources/malcolm/moloch/scripts/moloch_update_geo.sh new file mode 100755 index 0000000..4a0a963 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/scripts/moloch_update_geo.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +cd "${ARKIMEDIR:-/data/moloch}"/etc + +wget -nv --no-check-certificate -O ipv4-address-space.csv_new https://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.csv && \ + mv -f ipv4-address-space.csv_new ipv4-address-space.csv || \ + rm -f ipv4-address-space.csv_new + +wget -nv -O oui.txt_new https://raw.githubusercontent.com/wireshark/wireshark/master/manuf && \ + mv -f oui.txt_new oui.txt || \ + rm -f oui.txt_new + +# MaxMind now requires a (free) license key to download the free versions of +# their GeoIP databases. This should be provided as an environment variable. +# see https://dev.maxmind.com/geoip/geoipupdate/#Direct_Downloads +# see https://github.com/arkime/arkime/issues/1350 +# see https://github.com/arkime/arkime/issues/1352 +if [ ${#MAXMIND_GEOIP_DB_LICENSE_KEY} -gt 1 ]; then + for DB in ASN Country City; do + curl -s -S -L -o "GeoLite2-$DB.mmdb.tar.gz" "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-$DB&license_key=$MAXMIND_GEOIP_DB_LICENSE_KEY&suffix=tar.gz" && \ + tar xf "GeoLite2-$DB.mmdb.tar.gz" --wildcards --no-anchored '*.mmdb' --strip=1 && \ + chmod 644 "GeoLite2-$DB.mmdb" && \ + rm -f "GeoLite2-$DB.mmdb.tar.gz" + done +fi diff --git a/Vagrant/resources/malcolm/moloch/scripts/viewer_service.sh b/Vagrant/resources/malcolm/moloch/scripts/viewer_service.sh new file mode 100755 index 0000000..a93ade1 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/scripts/viewer_service.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + + +while true; do + if [[ -f /var/run/moloch/initialized && "$VIEWER" == "on" ]]; then + echo "Launch viewer..." + cd $ARKIMEDIR/viewer + $ARKIMEDIR/bin/node viewer.js -c $ARKIMEDIR/etc/config.ini | tee -a $ARKIMEDIR/logs/viewer.log 2>&1 + fi + sleep 5 +done diff --git a/Vagrant/resources/malcolm/moloch/scripts/wipemoloch.sh b/Vagrant/resources/malcolm/moloch/scripts/wipemoloch.sh new file mode 100755 index 0000000..883cce8 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/scripts/wipemoloch.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + + +echo "Checking Elasticsearch..." +/data/elastic_search_status.sh 2>&1 && echo "Elasticsearch is running!" + +#Wipe is the same initalize except it keeps users intact +echo WIPE | /data/moloch/db/db.pl http://$ES_HOST:$ES_PORT wipe + +#this is a hacky way to get all of the parseable field definitions put into E.S. +touch /tmp/not_a_packet.pcap +$ARKIMEDIR/bin/moloch-capture --packetcnt 0 -r /tmp/not_a_packet.pcap >/dev/null 2>&1 +rm -f /tmp/not_a_packet.pcap diff --git a/Vagrant/resources/malcolm/moloch/scripts/wise_service.sh b/Vagrant/resources/malcolm/moloch/scripts/wise_service.sh new file mode 100755 index 0000000..9e90af2 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/scripts/wise_service.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + + +while true; do + if [[ ("$WISE" == "on") && (-f /var/run/moloch/runwise) && (-f $ARKIMEDIR/etc/wise.ini) ]]; then + echo "Launch wise..." + pushd $ARKIMEDIR/wiseService >/dev/null 2>&1 + $ARKIMEDIR/bin/node wiseService.js -c $ARKIMEDIR/etc/wise.ini + popd >/dev/null 2>&1 + fi + sleep 5 +done diff --git a/Vagrant/resources/malcolm/moloch/supervisord.conf b/Vagrant/resources/malcolm/moloch/supervisord.conf new file mode 100644 index 0000000..0714e8b --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/supervisord.conf @@ -0,0 +1,79 @@ +; Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +[unix_http_server] +file=/tmp/supervisor.sock ; (the path to the socket file) +chmod=0700 + +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisord.pid + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[program:initialize] +command=/data/initmoloch.sh +startsecs=0 +startretries=0 +autorestart=false +stopasgroup=true +killasgroup=true +directory=%(ENV_ARKIMEDIR)s +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:wise] +command=/data/wise_service.sh +startsecs=0 +startretries=0 +stopasgroup=true +killasgroup=true +directory=%(ENV_ARKIMEDIR)s/wiseService +stdout_logfile=%(ENV_ARKIMEDIR)s/logs/wise.log +redirect_stderr=true + +[program:viewer] +command=/data/viewer_service.sh +startsecs=0 +startretries=0 +stopasgroup=true +killasgroup=true +directory=%(ENV_ARKIMEDIR)s +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:pcap-moloch] +command=python3 /data/pcap_moloch_processor.py + --verbose "%(ENV_PCAP_PIPELINE_DEBUG)s" + --extra-verbose "%(ENV_PCAP_PIPELINE_DEBUG_EXTRA)s" + --start-sleep 10 + --threads %(ENV_ARKIME_ANALYZE_PCAP_THREADS)s + --publisher "%(ENV_PCAP_MONITOR_HOST)s" + --pcap-directory /data/pcap/processed + --moloch /data/moloch/bin/moloch-capture + --autotag "%(ENV_AUTO_TAG)s" + --managed "%(ENV_MANAGE_PCAP_FILES)s" +startsecs=15 +startretries=1 +stopasgroup=true +killasgroup=true +directory=%(ENV_ARKIMEDIR)s +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:readme] +command=python3 -m http.server 8000 +directory=%(ENV_ARKIMEDIR)s/doc +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true diff --git a/Vagrant/resources/malcolm/moloch/wise/source.zeeklogs.js b/Vagrant/resources/malcolm/moloch/wise/source.zeeklogs.js new file mode 100644 index 0000000..5d2c873 --- /dev/null +++ b/Vagrant/resources/malcolm/moloch/wise/source.zeeklogs.js @@ -0,0 +1,988 @@ +var wiseSource = require('./wiseSource.js') + , util = require('util') + ; + +////////////////////////////////////////////////////////////////////////////////// +// Arkime WISE Data Source definition for Zeek logs. +// +// Part of Malcolm (https://github.com/idaholab/malcolm) +// +// Data may be populated with Malcolm's Zeek Logstash filters: +// (particularly https://raw.githubusercontent.com/idaholab/Malcolm/master/logstash/pipeline-main/11_zeek_logs.conf) +// +// Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. +// see https://raw.githubusercontent.com/idaholab/Malcolm/master/License.txt +////////////////////////////////////////////////////////////////////////////////// +function ZeekLogs (api, section) { + ZeekLogs.super_.call(this, api, section); + + // there are several files where the definitions of fields live: make sure to keep them in sync + // - source.zeeklogs.js (this file) + // - Arkime's config.ini + // - Kibana's zeek_template.json + + // todo: look at expressions for things that have parents (tunnelling, parent files, etc.) + // todo: look at IP types and use ipPrint? + + // add right-clicks + var allFields = [ + "communityId", + "host.name", + "ip.protocol", + "mac.dst", + "mac.src", + "node", + "oui.dst", + "oui.src", + "protocols", + "rootId", + "tags", + "zeek.action", + "zeek.community_id", + "zeek.destination_geo.city_name", + "zeek.destination_geo.country_name", + "zeek.destination_ip_reverse_dns", + "zeek.filename", + "zeek.filetype", + "zeek.freq_score_v1", + "zeek.freq_score_v2", + "zeek.fuid", + "zeek.logType", + "zeek.orig_h", + "zeek.orig_hostname", + "zeek.orig_l2_addr", + "zeek.orig_l2_oui", + "zeek.orig_p", + "zeek.orig_segment", + "zeek.password", + "zeek.proto", + "zeek.resp_h", + "zeek.resp_hostname", + "zeek.resp_l2_addr", + "zeek.resp_l2_oui", + "zeek.resp_p", + "zeek.resp_segment", + "zeek.result", + "zeek.service", + "zeek.service_version", + "zeek.source_geo.city_name", + "zeek.source_geo.country_name", + "zeek.source_ip_reverse_dns", + "zeek.ts", + "zeek.uid", + "zeek.user", + "zeek_bacnet.bvlc_function", + "zeek_bacnet.invoke_id", + "zeek_bacnet.pdu_type", + "zeek_bacnet.pdu_service", + "zeek_bacnet.result_code", + "zeek_bacnet_discovery.instance_number", + "zeek_bacnet_discovery.object_type", + "zeek_bacnet_discovery.object_name", + "zeek_bacnet_discovery.pdu_service", + "zeek_bacnet_discovery.range", + "zeek_bacnet_discovery.range_low", + "zeek_bacnet_discovery.range_high", + "zeek_bacnet_discovery.vendor", + "zeek_bacnet_property.array_index", + "zeek_bacnet_property.instance_number", + "zeek_bacnet_property.object_type", + "zeek_bacnet_property.pdu_service", + "zeek_bacnet_property.property", + "zeek_bacnet_property.value", + "zeek_bestguess.name", + "zeek_bestguess.category", + "zeek_bsap_ip_header.num_msg", + "zeek_bsap_ip_header.type_name", + "zeek_bsap_ip_rdb.app_func_code", + "zeek_bsap_ip_rdb.data", + "zeek_bsap_ip_rdb.data_len", + "zeek_bsap_ip_rdb.func_code", + "zeek_bsap_ip_rdb.header_size", + "zeek_bsap_ip_rdb.mes_seq", + "zeek_bsap_ip_rdb.node_status", + "zeek_bsap_ip_rdb.res_seq", + "zeek_bsap_ip_rdb.sequence", + "zeek_bsap_ip_unknown.data", + "zeek_bsap_serial_header.ctl", + "zeek_bsap_serial_header.dadd", + "zeek_bsap_serial_header.dfun", + "zeek_bsap_serial_header.nsb", + "zeek_bsap_serial_header.sadd", + "zeek_bsap_serial_header.seq", + "zeek_bsap_serial_header.ser", + "zeek_bsap_serial_header.sfun", + "zeek_bsap_serial_header.type_name", + "zeek_bsap_serial_rdb.data", + "zeek_bsap_serial_rdb.func_code", + "zeek_bsap_serial_rdb_ext.data", + "zeek_bsap_serial_rdb_ext.dfun", + "zeek_bsap_serial_rdb_ext.extfun", + "zeek_bsap_serial_rdb_ext.nsb", + "zeek_bsap_serial_rdb_ext.seq", + "zeek_bsap_serial_rdb_ext.sfun", + "zeek_bsap_serial_unknown.data", + "zeek_cip.attribute_id", + "zeek_cip.cip_sequence_count", + "zeek_cip.cip_service", + "zeek_cip.cip_status", + "zeek_cip.class_id", + "zeek_cip.class_name", + "zeek_cip.data_id", + "zeek_cip.direction", + "zeek_cip.instance_id", + "zeek_cip.other_id", + "zeek_cip_identity.device_state", + "zeek_cip_identity.device_status", + "zeek_cip_identity.device_type_id", + "zeek_cip_identity.device_type_name", + "zeek_cip_identity.encapsulation_version", + "zeek_cip_identity.product_code", + "zeek_cip_identity.product_name", + "zeek_cip_identity.revision", + "zeek_cip_identity.serial_number", + "zeek_cip_identity.socket_address", + "zeek_cip_identity.socket_address_geo.city_name", + "zeek_cip_identity.socket_address_geo.country_name", + "zeek_cip_identity.socket_address_asn", + "zeek_cip_identity.socket_port", + "zeek_cip_identity.vendor_id", + "zeek_cip_identity.vendor_name", + "zeek_cip_io.connection_id", + "zeek_cip_io.data_length", + "zeek_cip_io.sequence_number", + "zeek_cip_io.io_data", + "zeek_conn.conn_state", + "zeek_conn.conn_state_description", + "zeek_conn.duration", + "zeek_conn.history", + "zeek_conn.inner_vlan", + "zeek_conn.local_orig", + "zeek_conn.local_resp", + "zeek_conn.missed_bytes", + "zeek_conn.orig_bytes", + "zeek_conn.orig_ip_bytes", + "zeek_conn.orig_pkts", + "zeek_conn.resp_bytes", + "zeek_conn.resp_ip_bytes", + "zeek_conn.resp_pkts", + "zeek_conn.tunnel_parents", + "zeek_conn.vlan", + "zeek_dce_rpc.endpoint", + "zeek_dce_rpc.named_pipe", + "zeek_dce_rpc.operation", + "zeek_dce_rpc.rtt", + "zeek_dhcp.assigned_ip", + "zeek_dhcp.client_fqdn", + "zeek_dhcp.client_message", + "zeek_dhcp.client_software", + "zeek_dhcp.domain", + "zeek_dhcp.duration", + "zeek_dhcp.host_name", + "zeek_dhcp.lease_time", + "zeek_dhcp.mac", + "zeek_dhcp.msg_types", + "zeek_dhcp.requested_ip", + "zeek_dhcp.server_message", + "zeek_dhcp.server_software", + "zeek_dhcp.trans_id", + "zeek_dnp3.fc_reply", + "zeek_dnp3.fc_request", + "zeek_dnp3.iin", + "zeek_dnp3.iin_flags", + "zeek_dnp3_control.block_type", + "zeek_dnp3_control.function_code", + "zeek_dnp3_control.index_number", + "zeek_dnp3_control.trip_control_code", + "zeek_dnp3_control.operation_type", + "zeek_dnp3_control.execute_count", + "zeek_dnp3_control.on_time", + "zeek_dnp3_control.off_time", + "zeek_dnp3_control.status_code", + "zeek_dnp3_objects.function_code", + "zeek_dnp3_objects.object_type", + "zeek_dnp3_objects.object_count", + "zeek_dnp3_objects.range_low", + "zeek_dnp3_objects.range_high", + "zeek_dns.AA", + "zeek_dns.answers", + "zeek_dns.qclass", + "zeek_dns.qclass_name", + "zeek_dns.qtype", + "zeek_dns.qtype_name", + "zeek_dns.query", + "zeek_dns.RA", + "zeek_dns.rcode", + "zeek_dns.rcode_name", + "zeek_dns.RD", + "zeek_dns.rejected", + "zeek_dns.rtt", + "zeek_dns.TC", + "zeek_dns.trans_id", + "zeek_dns.TTLs", + "zeek_dns.Z", + "zeek_dpd.failure_reason", + "zeek_dpd.service", + "zeek_ecat_aoe_info.command", + "zeek_ecat_aoe_info.data", + "zeek_ecat_aoe_info.orig_port", + "zeek_ecat_aoe_info.resp_port", + "zeek_ecat_aoe_info.state", + "zeek_ecat_arp_info.arp_type", + "zeek_ecat_arp_info.orig_hw_addr", + "zeek_ecat_arp_info.orig_proto_addr", + "zeek_ecat_arp_info.resp_hw_addr", + "zeek_ecat_arp_info.resp_proto_addr", + "zeek_ecat_coe_info.dataoffset", + "zeek_ecat_coe_info.index", + "zeek_ecat_coe_info.number", + "zeek_ecat_coe_info.req_resp", + "zeek_ecat_coe_info.subindex", + "zeek_ecat_coe_info.type", + "zeek_ecat_dev_info.build", + "zeek_ecat_dev_info.dev_type", + "zeek_ecat_dev_info.dpram", + "zeek_ecat_dev_info.features", + "zeek_ecat_dev_info.fmmucnt", + "zeek_ecat_dev_info.ports", + "zeek_ecat_dev_info.revision", + "zeek_ecat_dev_info.slave_id", + "zeek_ecat_dev_info.smcount", + "zeek_ecat_foe_info.data", + "zeek_ecat_foe_info.error_code", + "zeek_ecat_foe_info.filename", + "zeek_ecat_foe_info.opcode", + "zeek_ecat_foe_info.packet_num", + "zeek_ecat_foe_info.reserved", + "zeek_ecat_log_address.command", + "zeek_ecat_log_address.data", + "zeek_ecat_log_address.length", + "zeek_ecat_log_address.log_addr", + "zeek_ecat_registers.command", + "zeek_ecat_registers.data", + "zeek_ecat_registers.register_addr", + "zeek_ecat_registers.register_type", + "zeek_ecat_registers.slave_addr", + "zeek_ecat_soe_info.drive_num", + "zeek_ecat_soe_info.element", + "zeek_ecat_soe_info.error", + "zeek_ecat_soe_info.incomplete", + "zeek_ecat_soe_info.index", + "zeek_ecat_soe_info.opcode", + "zeek_enip.enip_command", + "zeek_enip.enip_status", + "zeek_enip.length", + "zeek_enip.options", + "zeek_enip.sender_context", + "zeek_enip.session_handle", + "zeek_files.analyzers", + "zeek_files.conn_uids", + "zeek_files.depth", + "zeek_files.duration", + "zeek_files.extracted", + "zeek_files.extracted_cutoff", + "zeek_files.extracted_size", + "zeek_files.filename", + "zeek_files.is_orig", + "zeek_files.local_orig", + "zeek_files.md5", + "zeek_files.mime_type", + "zeek_files.missing_bytes", + "zeek_files.overflow_bytes", + "zeek_files.parent_fuid", + "zeek_files.rx_hosts", + "zeek_files.seen_bytes", + "zeek_files.sha1", + "zeek_files.sha256", + "zeek_files.source", + "zeek_files.timedout", + "zeek_files.total_bytes", + "zeek_files.tx_hosts", + "zeek_ftp.arg", + "zeek_ftp.command", + "zeek_ftp.data_channel_orig_h", + "zeek_ftp.data_channel_passive", + "zeek_ftp.data_channel_resp_h", + "zeek_ftp.data_channel_resp_p", + "zeek_ftp.file_size", + "zeek_ftp.mime_type", + "zeek_ftp.reply_code", + "zeek_ftp.reply_msg", + "zeek_gquic.cyu", + "zeek_gquic.cyutags", + "zeek_gquic.server_name", + "zeek_gquic.tag_count", + "zeek_gquic.user_agent", + "zeek_gquic.version", + "zeek_http.host", + "zeek_http.info_code", + "zeek_http.info_msg", + "zeek_http.method", + "zeek_http.orig_filenames", + "zeek_http.orig_fuids", + "zeek_http.orig_mime_types", + "zeek_http.origin", + "zeek_http.post_password_plain", + "zeek_http.post_username", + "zeek_http.proxied", + "zeek_http.referrer", + "zeek_http.request_body_len", + "zeek_http.resp_filenames", + "zeek_http.resp_fuids", + "zeek_http.resp_mime_types", + "zeek_http.response_body_len", + "zeek_http.status_code", + "zeek_http.status_msg", + "zeek_http.tags", + "zeek_http.trans_depth", + "zeek_http.uri", + "zeek_http.user_agent", + "zeek_http.version", + "zeek_intel.file_description", + "zeek_intel.file_mime_type", + "zeek_intel.indicator", + "zeek_intel.indicator_type", + "zeek_intel.matched", + "zeek_intel.seen_node", + "zeek_intel.seen_where", + "zeek_intel.sources", + 'zeek_ipsec.is_orig', + 'zeek_ipsec.initiator_spi', + 'zeek_ipsec.responder_spi', + 'zeek_ipsec.maj_ver', + 'zeek_ipsec.min_ver', + 'zeek_ipsec.exchange_type', + 'zeek_ipsec.flag_e', + 'zeek_ipsec.flag_c', + 'zeek_ipsec.flag_a', + 'zeek_ipsec.flag_i', + 'zeek_ipsec.flag_v', + 'zeek_ipsec.flag_r', + 'zeek_ipsec.flags', + 'zeek_ipsec.message_id', + 'zeek_ipsec.vendor_ids', + 'zeek_ipsec.notify_messages', + 'zeek_ipsec.transforms', + 'zeek_ipsec.ke_dh_groups', + 'zeek_ipsec.proposals', + 'zeek_ipsec.certificates', + 'zeek_ipsec.transform_attributes', + 'zeek_ipsec.length', + 'zeek_ipsec.hash', + "zeek_irc.addl", + "zeek_irc.command", + "zeek_irc.dcc_file_name", + "zeek_irc.dcc_file_size", + "zeek_irc.dcc_mime_type", + "zeek_irc.nick", + "zeek_irc.value", + "zeek_iso_cotp.pdu_type", + "zeek_kerberos.cipher", + "zeek_kerberos.client_cert_fuid", + "zeek_kerberos.client_cert_subject", + "zeek_kerberos.cname", + "zeek_kerberos.error_msg", + "zeek_kerberos.forwardable", + "zeek_kerberos.from", + "zeek_kerberos.renewable", + "zeek_kerberos.request_type", + "zeek_kerberos.server_cert_fuid", + "zeek_kerberos.server_cert_subject", + "zeek_kerberos.sname", + "zeek_kerberos.success", + "zeek_kerberos.till", + "zeek_known_certs.issuer_subject", + "zeek_known_certs.serial", + "zeek_known_certs.subject", + "zeek_known_modbus.device_type", + "zeek_ldap.message_id", + "zeek_ldap.version", + "zeek_ldap.operation", + "zeek_ldap.result_code", + "zeek_ldap.result_message", + "zeek_ldap.object", + "zeek_ldap.argument", + "zeek_ldap_search.message_id", + "zeek_ldap_search.scope", + "zeek_ldap_search.deref", + "zeek_ldap_search.base_object", + "zeek_ldap_search.result_count", + "zeek_ldap_search.result_code", + "zeek_ldap_search.result_message", + "zeek_login.client_user", + "zeek_login.confused", + "zeek_login.success", + "zeek_modbus.exception", + "zeek_modbus.func", + "zeek_modbus_detailed.unit_id", + "zeek_modbus_detailed.func", + "zeek_modbus_detailed.network_direction", + "zeek_modbus_detailed.address", + "zeek_modbus_detailed.quantity", + "zeek_modbus_detailed.values", + "zeek_modbus_mask_write_register.unit_id", + "zeek_modbus_mask_write_register.func", + "zeek_modbus_mask_write_register.network_direction", + "zeek_modbus_mask_write_register.address", + "zeek_modbus_mask_write_register.and_mask", + "zeek_modbus_mask_write_register.or_mask", + "zeek_modbus_read_write_multiple_registers.unit_id", + "zeek_modbus_read_write_multiple_registers.func", + "zeek_modbus_read_write_multiple_registers.network_direction", + "zeek_modbus_read_write_multiple_registers.write_start_address", + "zeek_modbus_read_write_multiple_registers.write_registers", + "zeek_modbus_read_write_multiple_registers.read_start_address", + "zeek_modbus_read_write_multiple_registers.read_quantity", + "zeek_modbus_read_write_multiple_registers.read_registers", + "zeek_modbus_register_change.delta", + "zeek_modbus_register_change.new_val", + "zeek_modbus_register_change.old_val", + "zeek_modbus_register_change.register", + "zeek_mqtt_connect.client_id", + "zeek_mqtt_connect.connect_status", + "zeek_mqtt_connect.proto_name", + "zeek_mqtt_connect.proto_version", + "zeek_mqtt_connect.will_payload", + "zeek_mqtt_connect.will_topic", + "zeek_mqtt_publish.from_client", + "zeek_mqtt_publish.payload", + "zeek_mqtt_publish.payload_len", + "zeek_mqtt_publish.qos", + "zeek_mqtt_publish.retain", + "zeek_mqtt_publish.status", + "zeek_mqtt_publish.topic", + "zeek_mqtt_subscribe.ack", + "zeek_mqtt_subscribe.action", + "zeek_mqtt_subscribe.granted_qos_level", + "zeek_mqtt_subscribe.qos_levels", + "zeek_mqtt_subscribe.topics", + "zeek_mysql.arg", + "zeek_mysql.cmd", + "zeek_mysql.response", + "zeek_mysql.rows", + "zeek_mysql.success", + "zeek_notice.actions", + "zeek_notice.category", + "zeek_notice.dropped", + "zeek_notice.dst", + "zeek_notice.file_desc", + "zeek_notice.file_mime_type", + "zeek_notice.msg", + "zeek_notice.n", + "zeek_notice.note", + "zeek_notice.p", + "zeek_notice.peer_descr", + "zeek_notice.remote_location_city", + "zeek_notice.remote_location_country_code", + "zeek_notice.remote_location_latitude", + "zeek_notice.remote_location_longitude", + "zeek_notice.remote_location_region", + "zeek_notice.src", + "zeek_notice.sub", + "zeek_notice.sub_category", + "zeek_notice.suppress_for", + "zeek_ntlm.domain", + "zeek_ntlm.host", + "zeek_ntlm.server_dns_computer", + "zeek_ntlm.server_nb_computer", + "zeek_ntlm.server_tree", + "zeek_ntlm.status", + "zeek_ntlm.success", + "zeek_ntp.mode", + "zeek_ntp.mode_str", + "zeek_ntp.num_exts", + "zeek_ntp.org_time", + "zeek_ntp.poll", + "zeek_ntp.precision", + "zeek_ntp.rec_time", + "zeek_ntp.ref_id", + "zeek_ntp.ref_time", + "zeek_ntp.root_delay", + "zeek_ntp.root_disp", + "zeek_ntp.stratum", + "zeek_ntp.version", + "zeek_ntp.xmt_time", + "zeek_pe.compile_ts", + "zeek_pe.has_cert_table", + "zeek_pe.has_debug_data", + "zeek_pe.has_export_table", + "zeek_pe.has_import_table", + "zeek_pe.is_64bit", + "zeek_pe.is_exe", + "zeek_pe.machine", + "zeek_pe.os", + "zeek_pe.section_names", + "zeek_pe.subsystem", + "zeek_pe.uses_aslr", + "zeek_pe.uses_code_integrity", + "zeek_pe.uses_dep", + "zeek_pe.uses_seh", + "zeek_profinet.block_version", + "zeek_profinet.index", + "zeek_profinet.operation_type", + "zeek_profinet.slot_number", + "zeek_profinet.subslot_number", + "zeek_profinet_dce_rpc.activity_uuid", + "zeek_profinet_dce_rpc.interface_uuid", + "zeek_profinet_dce_rpc.object_uuid", + "zeek_profinet_dce_rpc.operation", + "zeek_profinet_dce_rpc.packet_type", + "zeek_profinet_dce_rpc.server_boot_time", + "zeek_profinet_dce_rpc.version", + "zeek_radius.connect_info", + "zeek_radius.framed_addr", + "zeek_radius.mac", + "zeek_radius.reply_msg", + "zeek_radius.result", + "zeek_radius.ttl", + "zeek_radius.tunnel_client", + "zeek_rdp.cert_count", + "zeek_rdp.cert_permanent", + "zeek_rdp.cert_type", + "zeek_rdp.client_build", + "zeek_rdp.client_channels", + "zeek_rdp.client_dig_product_id", + "zeek_rdp.client_name", + "zeek_rdp.cookie", + "zeek_rdp.desktop_height", + "zeek_rdp.desktop_width", + "zeek_rdp.encryption_level", + "zeek_rdp.encryption_method", + "zeek_rdp.keyboard_layout", + "zeek_rdp.requested_color_depth", + "zeek_rdp.result", + "zeek_rdp.security_protocol", + "zeek_rfb.auth", + "zeek_rfb.authentication_method", + "zeek_rfb.client_major_version", + "zeek_rfb.client_minor_version", + "zeek_rfb.desktop_name", + "zeek_rfb.height", + "zeek_rfb.server_major_version", + "zeek_rfb.server_minor_version", + "zeek_rfb.share_flag", + "zeek_rfb.width", + "zeek_s7comm.data_info", + "zeek_s7comm.item_count", + "zeek_s7comm.parameter", + "zeek_s7comm.parameters.class", + "zeek_s7comm.parameters.code", + "zeek_s7comm.parameters.group", + "zeek_s7comm.parameters.mode", + "zeek_s7comm.parameters.sub", + "zeek_s7comm.parameters.type", + "zeek_s7comm.rosctr", + "zeek_signatures.engine", + "zeek_signatures.event_message", + "zeek_signatures.hits", + "zeek_signatures.host_count", + "zeek_signatures.note", + "zeek_signatures.signature_count", + "zeek_signatures.signature_id", + "zeek_signatures.sub_message", + "zeek_sip.call_id", + "zeek_sip.content_type", + "zeek_sip.date", + "zeek_sip.method", + "zeek_sip.reply_to", + "zeek_sip.request_body_len", + "zeek_sip.request_from", + "zeek_sip.request_path", + "zeek_sip.request_to", + "zeek_sip.response_body_len", + "zeek_sip.response_from", + "zeek_sip.response_path", + "zeek_sip.response_to", + "zeek_sip.seq", + "zeek_sip.status_code", + "zeek_sip.status_msg", + "zeek_sip.subject", + "zeek_sip.trans_depth", + "zeek_sip.uri", + "zeek_sip.user_agent", + "zeek_sip.version", + "zeek_sip.warning", + "zeek_smb_cmd.argument", + "zeek_smb_cmd.command", + "zeek_smb_cmd.rtt", + "zeek_smb_cmd.status", + "zeek_smb_cmd.sub_command", + "zeek_smb_cmd.tree", + "zeek_smb_cmd.tree_service", + "zeek_smb_cmd.user", + "zeek_smb_cmd.version", + "zeek_smb_files.action", + "zeek_smb_files.data_len_req", + "zeek_smb_files.data_len_rsp", + "zeek_smb_files.data_offset_req", + "zeek_smb_files.name", + "zeek_smb_files.path", + "zeek_smb_files.prev_name", + "zeek_smb_files.size", + "zeek_smb_files.times_accessed", + "zeek_smb_files.times_changed", + "zeek_smb_files.times_created", + "zeek_smb_files.times_modified", + "zeek_smb_mapping.native_file_system", + "zeek_smb_mapping.path", + "zeek_smb_mapping.resource_type", + "zeek_smb_mapping.share_type", + "zeek_smtp.cc", + "zeek_smtp.date", + "zeek_smtp.first_received", + "zeek_smtp.from", + "zeek_smtp.helo", + "zeek_smtp.in_reply_to", + "zeek_smtp.is_webmail", + "zeek_smtp.last_reply", + "zeek_smtp.last_reply_code", + "zeek_smtp.last_reply_msg", + "zeek_smtp.mailfrom", + "zeek_smtp.msg_id", + "zeek_smtp.path", + "zeek_smtp.rcptto", + "zeek_smtp.reply_to", + "zeek_smtp.second_received", + "zeek_smtp.subject", + "zeek_smtp.tls", + "zeek_smtp.to", + "zeek_smtp.trans_depth", + "zeek_smtp.user_agent", + "zeek_smtp.x_originating_ip", + "zeek_snmp.community", + "zeek_snmp.display_string", + "zeek_snmp.duration", + "zeek_snmp.get_bulk_requests", + "zeek_snmp.get_requests", + "zeek_snmp.get_responses", + "zeek_snmp.set_requests", + "zeek_snmp.up_since", + "zeek_snmp.version", + "zeek_socks.bound_host", + "zeek_socks.bound_name", + "zeek_socks.bound_port", + "zeek_socks.request_host", + "zeek_socks.request_name", + "zeek_socks.request_port", + "zeek_socks.server_status", + "zeek_socks.version", + "zeek_software.name", + "zeek_software.software_type", + "zeek_software.unparsed_version", + "zeek_software.version_addl", + "zeek_software.version_major", + "zeek_software.version_minor", + "zeek_software.version_minor2", + "zeek_software.version_minor3", + "zeek_ssh.auth_attempts", + "zeek_ssh.auth_success", + "zeek_ssh.cipher_alg", + "zeek_ssh.client", + "zeek_ssh.compression_alg", + "zeek_ssh.cshka", + "zeek_ssh.direction", + "zeek_ssh.hassh", + "zeek_ssh.hasshAlgorithms", + "zeek_ssh.hasshServer", + "zeek_ssh.hasshServerAlgorithms", + "zeek_ssh.hasshVersion", + "zeek_ssh.host_key", + "zeek_ssh.host_key_alg", + "zeek_ssh.kex_alg", + "zeek_ssh.mac_alg", + "zeek_ssh.remote_location_city", + "zeek_ssh.remote_location_country_code", + "zeek_ssh.remote_location_latitude", + "zeek_ssh.remote_location_longitude", + "zeek_ssh.remote_location_region", + "zeek_ssh.server", + "zeek_ssh.sshka", + "zeek_ssh.version", + "zeek_ssl.cert_chain_fuids", + "zeek_ssl.cipher", + "zeek_ssl.client_cert_chain_fuids", + "zeek_ssl.client_issuer.C", + "zeek_ssl.client_issuer.CN", + "zeek_ssl.client_issuer.DC", + "zeek_ssl.client_issuer.emailAddress", + "zeek_ssl.client_issuer.GN", + "zeek_ssl.client_issuer.initials", + "zeek_ssl.client_issuer.L", + "zeek_ssl.client_issuer.O", + "zeek_ssl.client_issuer.OU", + "zeek_ssl.client_issuer.pseudonym", + "zeek_ssl.client_issuer.serialNumber", + "zeek_ssl.client_issuer.SN", + "zeek_ssl.client_issuer.ST", + "zeek_ssl.client_issuer.title", + "zeek_ssl.client_issuer_full", + "zeek_ssl.client_subject.C", + "zeek_ssl.client_subject.CN", + "zeek_ssl.client_subject.emailAddress", + "zeek_ssl.client_subject.GN", + "zeek_ssl.client_subject.initials", + "zeek_ssl.client_subject.L", + "zeek_ssl.client_subject.O", + "zeek_ssl.client_subject.OU", + "zeek_ssl.client_subject.pseudonym", + "zeek_ssl.client_subject.serialNumber", + "zeek_ssl.client_subject.SN", + "zeek_ssl.client_subject.ST", + "zeek_ssl.client_subject.title", + "zeek_ssl.client_subject_full", + "zeek_ssl.curve", + "zeek_ssl.established", + "zeek_ssl.issuer.C", + "zeek_ssl.issuer.CN", + "zeek_ssl.issuer.DC", + "zeek_ssl.issuer.emailAddress", + "zeek_ssl.issuer.GN", + "zeek_ssl.issuer.initials", + "zeek_ssl.issuer.L", + "zeek_ssl.issuer.O", + "zeek_ssl.issuer.OU", + "zeek_ssl.issuer.pseudonym", + "zeek_ssl.issuer.serialNumber", + "zeek_ssl.issuer.SN", + "zeek_ssl.issuer.ST", + "zeek_ssl.issuer.title", + "zeek_ssl.issuer_full", + "zeek_ssl.ja3", + "zeek_ssl.ja3_desc", + "zeek_ssl.ja3s", + "zeek_ssl.ja3s_desc", + "zeek_ssl.last_alert", + "zeek_ssl.next_protocol", + "zeek_ssl.resumed", + "zeek_ssl.server_name", + "zeek_ssl.ssl_version", + "zeek_ssl.subject.C", + "zeek_ssl.subject.CN", + "zeek_ssl.subject.description", + "zeek_ssl.subject.emailAddress", + "zeek_ssl.subject.GN", + "zeek_ssl.subject.initials", + "zeek_ssl.subject.L", + "zeek_ssl.subject.O", + "zeek_ssl.subject.OU", + "zeek_ssl.subject.postalCode", + "zeek_ssl.subject.pseudonym", + "zeek_ssl.subject.serialNumber", + "zeek_ssl.subject.SN", + "zeek_ssl.subject.ST", + "zeek_ssl.subject.street", + "zeek_ssl.subject.title", + "zeek_ssl.subject_full", + "zeek_ssl.validation_status", + "zeek_syslog.facility", + "zeek_syslog.message", + "zeek_syslog.severity", + "zeek_tds.command", + "zeek_tds_rpc.parameters", + "zeek_tds_rpc.procedure_name", + "zeek_tds_sql_batch.header_type", + "zeek_tds_sql_batch.query", + "zeek_tftp.block_acked", + "zeek_tftp.block_sent", + "zeek_tftp.error_code", + "zeek_tftp.error_msg", + "zeek_tftp.fname", + "zeek_tftp.mode", + "zeek_tftp.size", + "zeek_tftp.uid_data", + "zeek_tftp.wrq", + "zeek_tunnel.action", + "zeek_tunnel.tunnel_type", + "zeek_weird.addl", + "zeek_weird.name", + "zeek_weird.notice", + "zeek_weird.peer", + "zeek_wireguard.established", + "zeek_wireguard.initiations", + "zeek_wireguard.responses", + "zeek_x509.basic_constraints_ca", + "zeek_x509.basic_constraints_path_len", + "zeek_x509.certificate_curve", + "zeek_x509.certificate_exponent", + "zeek_x509.certificate_issuer.C", + "zeek_x509.certificate_issuer.CN", + "zeek_x509.certificate_issuer.DC", + "zeek_x509.certificate_issuer.emailAddress", + "zeek_x509.certificate_issuer.GN", + "zeek_x509.certificate_issuer.initials", + "zeek_x509.certificate_issuer.L", + "zeek_x509.certificate_issuer.O", + "zeek_x509.certificate_issuer.OU", + "zeek_x509.certificate_issuer.pseudonym", + "zeek_x509.certificate_issuer.serialNumber", + "zeek_x509.certificate_issuer.SN", + "zeek_x509.certificate_issuer.ST", + "zeek_x509.certificate_issuer.title", + "zeek_x509.certificate_issuer_full", + "zeek_x509.certificate_key_alg", + "zeek_x509.certificate_key_length", + "zeek_x509.certificate_key_type", + "zeek_x509.certificate_not_valid_after", + "zeek_x509.certificate_not_valid_before", + "zeek_x509.certificate_serial", + "zeek_x509.certificate_sig_alg", + "zeek_x509.certificate_subject.C", + "zeek_x509.certificate_subject.CN", + "zeek_x509.certificate_subject.DC", + "zeek_x509.certificate_subject.description", + "zeek_x509.certificate_subject.emailAddress", + "zeek_x509.certificate_subject.GN", + "zeek_x509.certificate_subject.initials", + "zeek_x509.certificate_subject.L", + "zeek_x509.certificate_subject.O", + "zeek_x509.certificate_subject.OU", + "zeek_x509.certificate_subject.postalCode", + "zeek_x509.certificate_subject.pseudonym", + "zeek_x509.certificate_subject.serialNumber", + "zeek_x509.certificate_subject.SN", + "zeek_x509.certificate_subject.ST", + "zeek_x509.certificate_subject.street", + "zeek_x509.certificate_subject.title", + "zeek_x509.certificate_subject_full", + "zeek_x509.certificate_version", + "zeek_x509.san_dns", + "zeek_x509.san_email", + "zeek_x509.san_ip", + "zeek_x509.san_uri" + ]; + var allFieldsStr = allFields.join(','); + + // add URL link for assigned transport protocol numbers + var protoFieldsStr = allFields.filter(value => /^(network\.transport|zeek.proto|ip\.protocol)$/i.test(value)).join(','); + this.api.addRightClick("malcolm_websearch_proto", {name:"Protocol Registry", url:'https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml', fields:protoFieldsStr}); + + // add right-click for searching IANA for services + var serviceFieldsStr = allFields.filter(value => /^(zeek\.service|protocols?|network\.protocol)$/i.test(value)).join(','); + this.api.addRightClick("malcolm_websearch_service", {name:"Service Registry", url:'https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=%TEXT%', fields:serviceFieldsStr}); + + // add right-click for searching VirusTotal for other IP addresses + var ipFieldsStr = allFields.filter(value => /[_\.-](h|ip)$/i.test(value)).join(','); + this.api.addRightClick("malcolm_websearch_ip", {name:"VirusTotal IP", url:"https://www.virustotal.com/en/ip-address/%TEXT%/information", fields:ipFieldsStr}); + + // add right-click for searching IANA for ports + var portFieldsStr = allFields.filter(value => /(^|src|dst|source|dest|destination|[\b_\.-])p(ort)?s?$/i.test(value)).join(','); + this.api.addRightClick("malcolm_websearch_port", {name:"Port Registry", url:'https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=%TEXT%', fields:portFieldsStr}); + this.api.addRightClick("malcolm_websearch_port_moloch", {name:"Port Registry", url:'https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=%TEXT%', category:"port"}); + + // add right-click for searching VirusTotal for hash signatures + var hashFieldsStr = allFields.filter(value => /(^|[\b_\.-])(md5|sha(1|256|384|512))\b/i.test(value)).join(','); + this.api.addRightClick("malcolm_vt_fields_hash", {name:"VirusTotal Hash", url:"https://www.virustotal.com/gui/file/%TEXT%/detection", fields:hashFieldsStr}); + this.api.addRightClick("malcolm_vt_fields_hash_moloch", {name:"VirusTotal Hash", url:"https://www.virustotal.com/gui/file/%TEXT%/detection", category:"md5"}); + + // add right-click for searching the web for signature IDs + var sigFieldsStr = allFields.filter(value => /(^|[\b_\.-])(hit|signature(_?id))?s?$/i.test(value)).join(','); + this.api.addRightClick("malcolm_websearch_sig", {name:"Web Search", url:'https://duckduckgo.com/?q="%TEXT%"', fields:sigFieldsStr}); + + // add right-click for searching ARIN for ASN + var asnFieldsStr = allFields.filter(value => /(as\.number|(src|dst)ASN|asn\.(src|dst))$/i.test(value)).join(','); + this.api.addRightClick("malcolm_websearch_asn", {name:"ARIN ASN", url:'https://search.arin.net/rdap/?query=%TEXT%&searchFilter=asn', fields:asnFieldsStr}); + + // add right-click for searching mime/media/content types + var mimeFieldsStr = allFields.filter(value => /(^zeek\.filetype$|mime[_\.-]?type)/i.test(value)).join(','); + this.api.addRightClick("malcolm_websearch_mime", {name:"Media Type Registry", url:'https://www.iana.org/assignments/media-types/%TEXT%', fields:mimeFieldsStr}); + + // add right-click for extracted/quarantined files from zeek + var carvedFieldsStr = allFields.filter(value => /^zeek_files\.extracted$/i.test(value)).join(','); + this.api.addRightClick("malcolm_carved_file_quarantined", {name:"Download (if quarantined)", url:"/dl-extracted-files/quarantine/%TEXT%", fields:carvedFieldsStr}); + this.api.addRightClick("malcolm_carved_file_preserved", {name:"Download (if preserved)", url:"/dl-extracted-files/preserved/%TEXT%", fields:carvedFieldsStr}); + + // add right-clicks for pivoting into Kibana from Arkime (see nginx.conf) + var filterLabel = "Kibana %DBFIELD%"; + var filterUrl = "idmol2kib/filter?start=%ISOSTART%&stop=%ISOSTOP%&field=%DBFIELD%&value=%TEXT%"; + + this.api.addRightClick("malcolm_kibana_cat_ip", {name:filterLabel, url:"idmol2kib/filter?start=%ISOSTART%&stop=%ISOSTOP%&field=%DBFIELD%&value=%TEXT%", category:"ip"}); + this.api.addRightClick("malcolm_kibana_cat_port", {name:filterLabel, url:filterUrl, category:"port"}); + this.api.addRightClick("malcolm_kibana_cat_country", {name:filterLabel, url:filterUrl, category:"country"}); + this.api.addRightClick("malcolm_kibana_cat_host", {name:filterLabel, url:filterUrl, category:"host"}); + this.api.addRightClick("malcolm_kibana_cat_md5", {name:filterLabel, url:filterUrl, category:"md5"}); + this.api.addRightClick("malcolm_kibana_cat_user", {name:filterLabel, url:filterUrl, category:"user"}); + this.api.addRightClick("malcolm_kibana_fields_zeek", {name:filterLabel, url:filterUrl, fields:allFieldsStr}); + + // add right-click for viewing original JSON document + this.api.addRightClick("malcolm_session_json_source", {name:"View JSON Document", url:"sessions.json?expression=id=%TEXT%&fields=*&%DATE%", fields:"id"}); + + this.api.addView("zeek_common", + "if (session.zeek)\n" + + + // id information + " div.sessionDetailMeta.bold Zeek Common Fields\n" + + " dl.sessionDetailMeta(suffix=\"IDs\")\n" + + " +arrayList(session.zeek, 'uid', 'Zeek Connection ID', 'zeek.uid')\n" + + " +arrayList(session.zeek, 'community_id', 'Zeek Connection Community ID', 'zeek.community_id')\n" + + " +arrayList(session.zeek, 'logType', 'Zeek Log Type', 'zeek.logType')\n" + + " +arrayList(session.host, 'name', 'Zeek Node', 'host.name')\n" + + + // basic connection information + " if (session.zeek.orig_h || session.zeek.orig_p || session.zeek.orig_l2_addr || session.zeek.resp_h || " + + " session.zeek.resp_p || session.zeek.resp_l2_addr || session.zeek.proto || session.zeek.service || " + + " session.zeek.service_version || session.zeek.user || session.zeek.password || " + + " session.zeek.action || session.zeek.result || session.zeek.freq_score_v1 || session.zeek.freq_score_v2 )\n" + + " dl.sessionDetailMeta(suffix=\"Basic Connection Info\")\n" + + " +arrayList(session.zeek, 'orig_h', 'Originating Host', 'zeek.orig_h')\n" + + " +arrayList(session.zeek, 'orig_l2_addr', 'Originating MAC', 'zeek.orig_l2_addr')\n" + + " +arrayList(session.zeek, 'orig_l2_oui', 'Originating OUI', 'zeek.orig_l2_oui')\n" + + " +arrayList(session.zeek, 'orig_hostname', 'Originating Host Name', 'zeek.orig_hostname')\n" + + " +arrayList(session.zeek, 'source_ip_reverse_dns', 'Originating Host rDNS', 'zeek.source_ip_reverse_dns')\n" + + " +arrayList(session.zeek, 'orig_segment', 'Originating Network Segment', 'zeek.orig_segment')\n" + + " +arrayList(session.zeek.source_geo, 'country_name', 'Originating GeoIP Country', 'zeek.source_geo.country_name')\n" + + " +arrayList(session.zeek.source_geo, 'city_name', 'Originating GeoIP City', 'zeek.source_geo.city_name')\n" + + " +arrayList(session.zeek, 'resp_h', 'Responding Host', 'zeek.resp_h')\n" + + " +arrayList(session.zeek, 'resp_l2_addr', 'Responding MAC', 'zeek.resp_l2_addr')\n" + + " +arrayList(session.zeek, 'resp_l2_oui', 'Responding OUI', 'zeek.resp_l2_oui')\n" + + " +arrayList(session.zeek, 'resp_hostname', 'Responding Host Name', 'zeek.resp_hostname')\n" + + " +arrayList(session.zeek, 'destination_ip_reverse_dns', 'Responding Host rDNS', 'zeek.destination_ip_reverse_dns')\n" + + " +arrayList(session.zeek, 'resp_segment', 'Responding Network Segment', 'zeek.resp_segment')\n" + + " +arrayList(session.zeek.destination_geo, 'country_name', 'Responding GeoIP Country', 'zeek.destination_geo.country_name')\n" + + " +arrayList(session.zeek.destination_geo, 'city_name', 'Responding GeoIP City', 'zeek.destination_geo.city_name')\n" + + " +arrayList(session.zeek, 'orig_p', 'Originating Port', 'zeek.orig_p')\n" + + " +arrayList(session.zeek, 'resp_p', 'Responding Port', 'zeek.resp_p')\n" + + " +arrayList(session.zeek, 'proto', 'Protocol', 'zeek.proto')\n" + + " +arrayList(session.zeek, 'service', 'Service', 'zeek.service')\n" + + " +arrayList(session.zeek, 'service_version', 'Service Version', 'zeek.service_version')\n" + + " +arrayList(session.zeek, 'action', 'Action', 'zeek.action')\n" + + " +arrayList(session.zeek, 'result', 'Result', 'zeek.result')\n" + + " +arrayList(session.zeek, 'user', 'User', 'zeek.user')\n" + + " +arrayList(session.zeek, 'password', 'Password', 'zeek.password')\n" + + " +arrayList(session.zeek, 'freq_score_v1', 'Freq Score v1', 'zeek.freq_score_v1')\n" + + " +arrayList(session.zeek, 'freq_score_v2', 'Freq Score v2', 'zeek.freq_score_v2')\n" + + + // file information + " if (session.zeek.fuid || session.zeek.filename || session.zeek.filetype)\n" + + " dl.sessionDetailMeta(suffix=\"File IDs\")\n" + + " +arrayList(session.zeek, 'fuid', 'File ID', 'zeek.fuid')\n" + + " +arrayList(session.zeek, 'filename', 'File Name', 'zeek.filename')\n" + + " +arrayList(session.zeek, 'filetype', 'File Magic', 'zeek.filetype')\n" + + + // #################################################################### + " br\n"); + + // Add the source as available + this.api.addSource("zeek", this); +} +util.inherits(ZeekLogs, wiseSource); + +ZeekLogs.prototype.load = function() { + var self = this; + this.data.clear(); +}; + +ZeekLogs.prototype.getDomain = function(domain, cb) { +}; + +ZeekLogs.prototype.getIp = function(ip, cb) { +}; + +ZeekLogs.prototype.getMd5 = function(md5, cb) { +}; + +ZeekLogs.prototype.getEmail = function(email, cb) { +}; + +exports.initSource = function(api) { + var source = new ZeekLogs(api, "zeek"); +}; diff --git a/Vagrant/resources/malcolm/name-map-ui/config/fpm-pool.conf b/Vagrant/resources/malcolm/name-map-ui/config/fpm-pool.conf new file mode 100644 index 0000000..a3a6b28 --- /dev/null +++ b/Vagrant/resources/malcolm/name-map-ui/config/fpm-pool.conf @@ -0,0 +1,56 @@ +[global] +; Log to /dev/fd/1 for docker +error_log = /dev/fd/1 + +[www] +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = 127.0.0.1:9000 + +; Enable status page +pm.status_path = /fpm-status + +; Ondemand process manager +pm = ondemand + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 100 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +pm.max_requests = 1000 + +; Make sure the FPM workers can reach the environment variables for configuration +clear_env = no + +; Catch output from PHP +catch_workers_output = yes + +; Remove the 'child 10 said into stderr' prefix in the log and only show the actual message +decorate_workers_output = no + +; Enable ping page to use in healthcheck +ping.path = /fpm-ping diff --git a/Vagrant/resources/malcolm/name-map-ui/config/nginx.conf b/Vagrant/resources/malcolm/name-map-ui/config/nginx.conf new file mode 100644 index 0000000..b93d077 --- /dev/null +++ b/Vagrant/resources/malcolm/name-map-ui/config/nginx.conf @@ -0,0 +1,92 @@ +worker_processes 1; +error_log stderr warn; +pid /tmp/nginx.pid; + +events { + worker_connections 1024; +} + +http { + include mime.types; + default_type application/octet-stream; + + # Define custom log format to include reponse times + log_format main_timed '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for" ' + '$request_time $upstream_response_time $pipe $upstream_cache_status'; + + access_log /var/log/nginx/access.log main_timed; + error_log /var/log/nginx/error.log notice; + + keepalive_timeout 65; + + # Write temporary files to /tmp so they can be created as a non-privileged user + client_body_temp_path /tmp/client_temp; + proxy_temp_path /tmp/proxy_temp_path; + fastcgi_temp_path /tmp/fastcgi_temp; + uwsgi_temp_path /tmp/uwsgi_temp; + scgi_temp_path /tmp/scgi_temp; + + # Default server definition + server { + listen 8080 default_server; + server_name _; + + sendfile off; + + root /var/www/html; + index index.php index.html; + + location / { + # First attempt to serve request as file, then + # as directory, then fall back to index.php + try_files $uri $uri/ /index.php?q=$uri&$args; + } + + location ~* maps/.+\.(txt|json)$ { + expires -1; + add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; + } + + # Redirect server error pages to the static page /50x.html + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /var/lib/nginx/html; + } + + # Pass the PHP scripts to PHP-FPM listening on 127.0.0.1:9000 + location ~ \.php$ { + try_files $uri =404; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass 127.0.0.1:9000; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_index index.php; + include fastcgi_params; + } + + location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { + expires 5d; + } + + # Deny access to . files, for security + location ~ /\. { + log_not_found off; + deny all; + } + + # Allow fpm ping and status from localhost + location ~ ^/(fpm-status|fpm-ping)$ { + access_log off; + allow 127.0.0.1; + deny all; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + fastcgi_pass 127.0.0.1:9000; + } + } + + # Include other server configs + include /etc/nginx/conf.d/*.conf; +} diff --git a/Vagrant/resources/malcolm/name-map-ui/config/php.ini b/Vagrant/resources/malcolm/name-map-ui/config/php.ini new file mode 100644 index 0000000..d91b958 --- /dev/null +++ b/Vagrant/resources/malcolm/name-map-ui/config/php.ini @@ -0,0 +1,7 @@ +[PHP] +file_uploads = On +upload_max_filesize = 64M +max_file_uploads = 4 + +[Date] +date.timezone="UTC" diff --git a/Vagrant/resources/malcolm/name-map-ui/config/supervisor_logstash_ctl.conf b/Vagrant/resources/malcolm/name-map-ui/config/supervisor_logstash_ctl.conf new file mode 100644 index 0000000..27cc1da --- /dev/null +++ b/Vagrant/resources/malcolm/name-map-ui/config/supervisor_logstash_ctl.conf @@ -0,0 +1,10 @@ +; Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisord-logstash.pid + +[supervisorctl] +serverurl=http://logstash:9001 diff --git a/Vagrant/resources/malcolm/name-map-ui/config/supervisord.conf b/Vagrant/resources/malcolm/name-map-ui/config/supervisord.conf new file mode 100644 index 0000000..9ad29b5 --- /dev/null +++ b/Vagrant/resources/malcolm/name-map-ui/config/supervisord.conf @@ -0,0 +1,72 @@ +; Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +[unix_http_server] +file=/tmp/supervisor-main.sock ; (the path to the socket file) +chmod=0700 + +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisor-main.pid + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor-main.sock + +[program:php-fpm] +command=/usr/sbin/php-fpm7 -F +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true +autorestart=false +startretries=0 + +[program:nginx] +command=/usr/sbin/nginx -g 'daemon off;' +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true +autorestart=false +startretries=0 + +[program:logaccess] +command=/usr/bin/tail -F /var/log/nginx/access.log +startsecs=10 +startretries=2000000000 +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/null +stdout_logfile_maxbytes=0 +redirect_stderr=false + +[program:logerrors] +command=/usr/bin/tail -F /var/log/nginx/error.log +startsecs=10 +startretries=2000000000 +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/null +stdout_logfile_maxbytes=0 +redirect_stderr=false + +[program:watch-upload] +command=/bin/bash -c "sleep 15 && /usr/local/bin/name-map-save-watch.sh" +startsecs=20 +startretries=1 +stopasgroup=true +killasgroup=true +directory=/var/www/html/upload +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true diff --git a/Vagrant/resources/malcolm/name-map-ui/scripts/name-map-save-watch.sh b/Vagrant/resources/malcolm/name-map-ui/scripts/name-map-save-watch.sh new file mode 100755 index 0000000..2f0d412 --- /dev/null +++ b/Vagrant/resources/malcolm/name-map-ui/scripts/name-map-save-watch.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +PROCESS_DIR=${NAME_MAP_SAVE_DIR:-/var/www/html/upload/} +DEST_MAP=${NAME_MAP_JSON:-/var/www/html/maps/net-map.json} + +inotifywait -m -e close_write --format '%w%f' "${PROCESS_DIR}" | while read NEWFILE +do + sleep 0.1 + # verify that the file is json|txt and that it is valid JSON + FILEMIME=$(file -b --mime-type "$NEWFILE") + if ( echo "$FILEMIME" | grep -q -e "\(application/json\|text/plain\)" ) && ( python3 -mjson.tool "$NEWFILE" >/dev/null 2>&1 ); then + # move the new net-map.json file into its final location + # (done like this with "tee" since we may not be able to cp overwrite a volume-mounted file) + (>/dev/null tee "$DEST_MAP" < "$NEWFILE") && echo "\"$NEWFILE\" -> \"$DEST_MAP\"" + rm -f "$NEWFILE" + else + # invalid or unhandled file type uploaded, delete it + (>&2 rm -f "$NEWFILE") && echo "Removed \"$NEWFILE\" (\"$FILEMIME\"): invalid file type or format" + fi +done diff --git a/Vagrant/resources/malcolm/name-map-ui/site/index.html b/Vagrant/resources/malcolm/name-map-ui/site/index.html new file mode 100644 index 0000000..e581b52 --- /dev/null +++ b/Vagrant/resources/malcolm/name-map-ui/site/index.html @@ -0,0 +1,523 @@ + + + + + + + + + + + + + + + + Host and Network Segment Name Mapping + + + + +

+
+
+ +

Host and Network Segment Name Mapping

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeAddressNameTag + +
+ + + + + + + + + + + + +
+ + + + + + + + + +
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/Vagrant/resources/malcolm/name-map-ui/site/mapping.css b/Vagrant/resources/malcolm/name-map-ui/site/mapping.css new file mode 100644 index 0000000..053994e --- /dev/null +++ b/Vagrant/resources/malcolm/name-map-ui/site/mapping.css @@ -0,0 +1,229 @@ +/* Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. */ + +html { + font-family: sans-serif; + line-height: 1.15; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 0.9375rem; + font-weight: 400; + line-height: 1.5; + color: #cecece; + text-align: left; + background-color: #272B30; +} + +body, +div, +dl, +dt, +dd, +ul, +ol, +li, +h1, +h2, +h3, +h4, +h5, +h6, +pre, +form, +fieldset, +input, +textarea, +p, +blockquote, +th, +td { + margin-top: 0; + margin-bottom: 0.5rem +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +fieldset, +img { + border: 0; +} + +img.center { + display: block; + margin-left: auto; + margin-right: auto; + width: 50%; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 0.5rem +} + +caption, +th { + text-align: left; +} + +header { + float: left; + margin-bottom: 20px; + width: 100%; +} + +address { + margin-bottom: 1rem; + line-height: inherit +} + +#container { + width: 800px; + margin-top: auto; + margin-bottom: auto; + margin-right: auto; + margin-left: auto; +} + +.c1 { + width: 800px; + float: left; +} + +.c2 { + width: 355px; + float: left; +} + +.c3 { + width: 235px; + float: left; +} + +p { + margin-top: 0; + margin-bottom: 1rem +} + +h1 { + letter-spacing: 1px; + text-align: center; + text-shadow: #262729 0 -1px 0; +} + +h2 { + color: #bbb; + text-shadow: #262729 0 -1px 0; + font-weight: 300; + text-align: center; +} + +input { + padding: 2px 10px; + border-radius: 10px; + border: solid 1px #555; + float: left; + margin-right: 10px; + margin-bottom: 15px; +} + +input:focus { + border: none; + outline: none; + color: #007bff; + font-weight: bold; + border-top: solid 1px #aaa; + border-right: solid 1px #e6e6e6; + border-bottom: solid 1px #e6e6e6; + border-left: solid 1px #aaa; +} + +table { + width: 100%; + margin-bottom: 10px; +} + +th { + background-color: rgba(23, 25, 28, .8); + border: solid 1px rgba(255, 255, 255, .1); + padding: 10px 10px; + text-align: center; + font-weight: bold; + color: #ddd; + width: auto; +} + +tr:hover { + background-color: #454c54; +} + +td { + padding: 10px 10px; + border: solid 1px rgba(255, 255, 255, .1); + width: auto; +} + +td.update, +td.remove, +td.type { + text-align: center; +} + +td.address { + font-family: monospace; +} + +button.add-btn, +button.update-btn, +button.cancel-btn, +button.edit-item-btn, +button.remove-item-btn { + font-size: 1.33rem; + border: 2px #ddd; + border-radius: 4px; +} + +button.save-btn, +button.export-btn, +button.import-btn, +button.restart-btn { + font-size: 0.9rem; +} + +#container.mapping-page { + margin-top: 10px; +} + +#mapping { + margin-bottom: 20px; +} + +#mapping td.update, +#mapping td.remove { + width: 130px; +} + +#mapping td.add { + width: 300px; + text-align: center; +} + +#mapping td.foot { + text-align: center; +} + +#mapping input { + width: 130px; + margin: 0; + border-radius: 5px; +} + +#mapping input.search { + width: 185px; +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/name-map-ui/site/restart-logstash.php b/Vagrant/resources/malcolm/name-map-ui/site/restart-logstash.php new file mode 100644 index 0000000..fe1bb40 --- /dev/null +++ b/Vagrant/resources/malcolm/name-map-ui/site/restart-logstash.php @@ -0,0 +1,6 @@ +$output"; +} +?> diff --git a/Vagrant/resources/malcolm/name-map-ui/site/upload.html b/Vagrant/resources/malcolm/name-map-ui/site/upload.html new file mode 100644 index 0000000..01bdc73 --- /dev/null +++ b/Vagrant/resources/malcolm/name-map-ui/site/upload.html @@ -0,0 +1,8 @@ + + +
+ Choose a file to upload: + +
+ + diff --git a/Vagrant/resources/malcolm/name-map-ui/site/upload.php b/Vagrant/resources/malcolm/name-map-ui/site/upload.php new file mode 100644 index 0000000..98f8524 --- /dev/null +++ b/Vagrant/resources/malcolm/name-map-ui/site/upload.php @@ -0,0 +1,57 @@ + 67108864) { + throw new RuntimeException('Exceeded filesize limit'); + } + + // check upload MIME type + $finfo = new finfo(FILEINFO_MIME_TYPE); + $fmime = $finfo->file($_FILES['upfile']['tmp_name']); + if (false === $ext = array_search($fmime, + array('json' => 'application/json', + 'txt' => 'text/plain'), + true)) { + throw new RuntimeException(sprintf('Invalid file format: "%s"', $fmime)); + } + + // give file unique name based on sha + $ftmpname = $_FILES['upfile']['tmp_name']; + $fdstname = sprintf('./upload/%s.%s', + sha1_file($_FILES['upfile']['tmp_name']), + $ext); + if (!move_uploaded_file($ftmpname, $fdstname)) { + throw new RuntimeException(sprintf('Failed to move uploaded file ("%s" -> "%s")', $ftmpname, $fdstname)); + } + + echo 'Success'; + +} catch (RuntimeException $e) { + error_log ($e->getMessage()); + echo $e->getMessage(); +} + +?> \ No newline at end of file diff --git a/Vagrant/resources/malcolm/net-map.json b/Vagrant/resources/malcolm/net-map.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/Vagrant/resources/malcolm/net-map.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Vagrant/resources/malcolm/nginx/ca-trust/.gitignore b/Vagrant/resources/malcolm/nginx/ca-trust/.gitignore new file mode 100644 index 0000000..a5baada --- /dev/null +++ b/Vagrant/resources/malcolm/nginx/ca-trust/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore + diff --git a/Vagrant/resources/malcolm/nginx/certs/.gitignore b/Vagrant/resources/malcolm/nginx/certs/.gitignore new file mode 100644 index 0000000..a5baada --- /dev/null +++ b/Vagrant/resources/malcolm/nginx/certs/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore + diff --git a/Vagrant/resources/malcolm/nginx/htpasswd b/Vagrant/resources/malcolm/nginx/htpasswd new file mode 100644 index 0000000..06dc03a --- /dev/null +++ b/Vagrant/resources/malcolm/nginx/htpasswd @@ -0,0 +1 @@ +vagrant:$2y$05$EKbzasbwZS/S9cM71hCvsulXyvGObG6fTS3h04MwmwOe4C7P1Zk3C diff --git a/Vagrant/resources/malcolm/nginx/nginx.conf b/Vagrant/resources/malcolm/nginx/nginx.conf new file mode 100644 index 0000000..e0a8140 --- /dev/null +++ b/Vagrant/resources/malcolm/nginx/nginx.conf @@ -0,0 +1,308 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +daemon off; + +worker_processes 1; + +events { worker_connections 1024; } + +http { + + include /etc/nginx/mime.types; + sendfile on; + + client_max_body_size 20m; + + fastcgi_buffers 16 64k; + fastcgi_buffer_size 256k; + fastcgi_read_timeout 300s; + fastcgi_busy_buffers_size 384k; + fastcgi_request_buffering off; + + proxy_connect_timeout 180s; + proxy_read_timeout 300s; + proxy_send_timeout 300s; + proxy_buffer_size 512k; + proxy_buffers 16 4m; + proxy_busy_buffers_size 16m; + + # if LDAP authentication is enabled, this will configure the ldap_server section + include /etc/nginx/nginx_ldap_rt.conf; + + upstream docker-arkime { + server arkime:8005; + } + + upstream docker-malcolm-readme { + server arkime:8000; + } + + upstream docker-upload { + server upload:80; + } + + upstream docker-htadmin { + server htadmin:80; + } + + upstream docker-kibana { + server kibana:5601; + } + + upstream docker-kibana-maps { + server kibana-helper:28991; + } + + upstream docker-elasticsearch { + server elasticsearch:9200; + } + + upstream docker-logstash-stats { + server logstash:9600; + } + + upstream docker-name-map-ui { + server name-map-ui:8080; + } + + upstream docker-extracted-file-http-server { + server file-monitor:8440; + } + + # htadmin (htpasswd/user management) + server { + listen 488 ssl; + ssl_certificate /etc/nginx/certs/cert.pem; + ssl_certificate_key /etc/nginx/certs/key.pem; + + location / { + proxy_pass http://docker-htadmin; + proxy_redirect off; + proxy_set_header Host htadmin.malcolm.local; + } + } + + # Arkime interface + server { + listen 443 ssl; + ssl_certificate /etc/nginx/certs/cert.pem; + ssl_certificate_key /etc/nginx/certs/key.pem; + + # use either auth_basic or auth_ldap + include /etc/nginx/nginx_auth_rt.conf; + + # Malcolm readme + location /readme { + proxy_pass http://docker-malcolm-readme/README.html; + proxy_redirect off; + proxy_set_header Host arkime.malcolm.local; + } + + # Malcolm file upload + location /upload { + proxy_http_version 1.1; + proxy_set_header Connection ""; + proxy_pass http://docker-upload/; + proxy_redirect off; + proxy_set_header Host upload.malcolm.local; + proxy_request_buffering off; + proxy_buffering off; + client_max_body_size 20G; + } + location /server/php { + proxy_http_version 1.1; + proxy_set_header Connection ""; + proxy_pass http://docker-upload/server/php/; + proxy_redirect off; + proxy_set_header Host upload.malcolm.local; + proxy_request_buffering off; + proxy_buffering off; + client_max_body_size 20G; + } + + # Logstash statistics + location ~* ^/logstash\b(.*) { + proxy_pass http://docker-logstash-stats/_node/stats$1; + proxy_redirect off; + proxy_set_header Host arkime.malcolm.local; + } + + # Arkime -> Kibana shortcut + location ~* ^/idmol2kib(.*) { + + set $filter_start_time now-1d; + if ($arg_start != '') { + set $filter_start_time \'$arg_start\'; + } + + set $filter_stop_time now; + if ($arg_stop != '') { + set $filter_stop_time \'$arg_stop\'; + } + + set $filter_field undefined; + if ($arg_field != '') { + set $filter_field $arg_field; + } + + set $filter_value undefined; + if ($arg_value != '') { + set $filter_value $arg_value; + } + + rewrite ^/idmol2kib/(.*) /kibana/app/discover#/?_g=(refreshInterval:(pause:!t,value:0),time:(from:$filter_start_time,mode:absolute,to:$filter_stop_time))&_a=(columns:!(_source),filters:!((meta:(alias:!n,disabled:!f,index:'sessions2-*',key:$filter_field,negate:!f,params:(query:'$filter_value',type:phrase),type:phrase,value:'$filter_value'),query:(match:($filter_field:(query:'$filter_value',type:phrase))))),index:'sessions2-*',interval:auto,query:(language:lucene,query:''),sort:!(firstPacket,desc)) redirect; + proxy_pass http://docker-kibana; + proxy_redirect off; + proxy_set_header Host kibana.malcolm.local; + } + + # Kibana -> Arkime shortcut + location ~* /idkib2mol/(.*) { + rewrite ^.*/idkib2mol/(.*) /sessions?expression=($1) redirect; + proxy_pass http://docker-arkime; + proxy_redirect off; + proxy_set_header Host arkime.malcolm.local; + proxy_set_header http_auth_http_user $remote_user; + proxy_set_header Authorization ""; + } + + # Kibana/Arkime -> extracted file download + location ~* /dl-extracted-files/(.*) { + rewrite ^.*/dl-extracted-files/(.*) /extracted-files/$1 redirect; + proxy_pass http://docker-extracted-file-http-server; + proxy_redirect off; + proxy_set_header Host file-monitor.malcolm.local; + } + + # already prepended /kibana to match the server.basePath in kibana's YML config file + location /kibana { + proxy_pass http://docker-kibana; + proxy_redirect off; + proxy_set_header Host kibana.malcolm.local; + } + + # otherwise (from old kibana bookmarks), prepend /kibana to match the server.basePath in kibana's YML config file + location /app { + proxy_pass http://docker-kibana/kibana/app; + proxy_redirect off; + proxy_set_header Host kibana.malcolm.local; + } + + # offline region maps for kibana + location /world.geojson { + proxy_pass http://docker-kibana-maps; + proxy_redirect off; + proxy_set_header Host kibana-helper.malcolm.local; + } + + # name-map-ui (UI for mapping names to network hosts and subnets) + location /name-map-ui { + proxy_pass http://docker-name-map-ui/; + proxy_redirect off; + proxy_set_header Host name-map-ui.malcolm.local; + proxy_cache off; + } + + location ~* ^/extracted-files\b(.*) { + proxy_pass http://docker-extracted-file-http-server$1; + proxy_redirect off; + proxy_set_header Host file-monitor.malcolm.local; + } + + location = /favicon.ico { + alias /etc/nginx/favicon.ico; + } + + # Fix cyberchef JS module(s) + # https://localhost/moloch/session/190924-KgO9H30qhdREw7ltsDXn1Rgp/modules/Regex.js + location ~* ^/moloch/session/.*/(modules/.*\.js) { + proxy_hide_header Content-Type; + proxy_set_header Content-Type "application/javascript"; + add_header Content-Type "application/javascript"; + default_type application/javascript; + add_header X-Content-Type-Options 'nosniff'; + proxy_pass http://docker-arkime/cyberchef/$1; + proxy_redirect off; + proxy_set_header Host arkime.malcolm.local; + proxy_set_header http_auth_http_user $remote_user; + proxy_set_header Authorization ""; + } + + location / { + proxy_pass http://docker-arkime; + proxy_redirect off; + proxy_set_header Host arkime.malcolm.local; + proxy_set_header http_auth_http_user $remote_user; + proxy_set_header Authorization ""; + } + } + + # Kibana interface + server { + listen 5601 ssl; + ssl_certificate /etc/nginx/certs/cert.pem; + ssl_certificate_key /etc/nginx/certs/key.pem; + + # use either auth_basic or auth_ldap + include /etc/nginx/nginx_auth_rt.conf; + + location = /favicon.ico { + alias /etc/nginx/favicon.ico; + } + + # Kibana -> Arkime shortcut + location ~* /idkib2mol/(.*) { + rewrite ^.*/idkib2mol/(.*) /sessions?expression=($1) redirect; + proxy_pass http://docker-arkime; + proxy_redirect off; + proxy_set_header Host arkime.malcolm.local; + proxy_set_header http_auth_http_user $remote_user; + proxy_set_header Authorization ""; + } + + # Kibana -> extracted file download + location ~* /dl-extracted-files/(.*) { + rewrite ^.*/dl-extracted-files/(.*) /extracted-files/$1 redirect; + proxy_pass http://docker-extracted-file-http-server; + proxy_redirect off; + proxy_set_header Host file-monitor.malcolm.local; + } + + # already prepended /kibana to match the server.basePath in kibana's YML config file + location /kibana { + proxy_pass http://docker-kibana; + proxy_redirect off; + proxy_set_header Host kibana.malcolm.local; + } + + # otherwise prepend /kibana to match the server.basePath in kibana's YML config file + location / { + rewrite ^/(.*) /kibana/$1; + proxy_pass http://docker-kibana; + proxy_redirect off; + proxy_set_header Host kibana.malcolm.local; + } + } + + # Elasticsearch API + server { + listen 9200 ssl; + ssl_certificate /etc/nginx/certs/cert.pem; + ssl_certificate_key /etc/nginx/certs/key.pem; + + # use either auth_basic or auth_ldap + include /etc/nginx/nginx_auth_rt.conf; + + location = /favicon.ico { + alias /etc/nginx/favicon.ico; + } + + location / { + proxy_pass http://docker-elasticsearch; + proxy_redirect off; + proxy_set_header Host es.malcolm.local; + client_max_body_size 50m; + } + } + +} diff --git a/Vagrant/resources/malcolm/nginx/nginx_auth_basic.conf b/Vagrant/resources/malcolm/nginx/nginx_auth_basic.conf new file mode 100644 index 0000000..ea20659 --- /dev/null +++ b/Vagrant/resources/malcolm/nginx/nginx_auth_basic.conf @@ -0,0 +1,2 @@ +auth_basic "Authentication Required"; +auth_basic_user_file /etc/nginx/.htpasswd; diff --git a/Vagrant/resources/malcolm/nginx/nginx_auth_ldap.conf b/Vagrant/resources/malcolm/nginx/nginx_auth_ldap.conf new file mode 100644 index 0000000..13e0b07 --- /dev/null +++ b/Vagrant/resources/malcolm/nginx/nginx_auth_ldap.conf @@ -0,0 +1,2 @@ +auth_ldap "LDAP Authentication Required"; +auth_ldap_servers ad_server; diff --git a/Vagrant/resources/malcolm/nginx/nginx_ldap.conf b/Vagrant/resources/malcolm/nginx/nginx_ldap.conf new file mode 100644 index 0000000..da0ac4d --- /dev/null +++ b/Vagrant/resources/malcolm/nginx/nginx_ldap.conf @@ -0,0 +1,20 @@ +# This is a sample configuration for the ldap_server section of nginx.conf. +# Yours will vary depending on how your Active Directory/LDAP server is configured. +# See https://github.com/kvspb/nginx-auth-ldap#available-config-parameters for options. + +ldap_server ad_server { + url "ldap://ds.example.com:3268/DC=example,DC=com?sAMAccountName?sub?(objectClass=person)"; + + binddn "bind_dn"; + binddn_passwd "bind_dn_password"; + + group_attribute member; + group_attribute_is_dn on; + require group "CN=malcolm,OU=groups,DC=example,DC=com"; + require valid_user; + satisfy all; +} + +auth_ldap_cache_enabled on; +auth_ldap_cache_expiration_time 10000; +auth_ldap_cache_size 1000; diff --git a/Vagrant/resources/malcolm/nginx/scripts/docker_entrypoint.sh b/Vagrant/resources/malcolm/nginx/scripts/docker_entrypoint.sh new file mode 100755 index 0000000..ea2973c --- /dev/null +++ b/Vagrant/resources/malcolm/nginx/scripts/docker_entrypoint.sh @@ -0,0 +1,212 @@ +#!/bin/bash +set -e + +# Warn if the DOCKER_HOST socket does not exist +if [[ $DOCKER_HOST = unix://* ]]; then + socket_file=${DOCKER_HOST#unix://} + if ! [ -S $socket_file ]; then + cat >&2 <<-EOT + ERROR: you need to share your Docker host socket with a volume at $socket_file + Typically you should run your container with: \`-v /var/run/docker.sock:$socket_file:ro\` + See the jwilder/nginx-proxy documentation at http://git.io/vZaGJ +EOT + socketMissing=1 + fi +fi + +# Compute the DNS resolvers for use in the templates - if the IP contains ":", it's IPv6 and must be enclosed in [] +export RESOLVERS=$(awk '$1 == "nameserver" {print ($2 ~ ":")? "["$2"]": $2}' ORS=' ' /etc/resolv.conf | sed 's/ *$//g') +if [ "x$RESOLVERS" = "x" ]; then + echo "Warning: unable to determine DNS resolvers for nginx" >&2 + unset RESOLVERS +fi + +# If the user has run the default command and the socket doesn't exist, fail +if [ "$socketMissing" = 1 -a "$1" = 'supervisord' -a "$2" = '-c' -a "$3" = '/etc/supervisord.conf' ]; then + exit 1 +fi + +# set up for NGINX HTTP basic vs. LDAP/LDAPS/LDAP+StartTLS auth + +# a blank file just to use as an "include" placeholder for the nginx's LDAP config when LDAP is not used +NGINX_BLANK_CONF=/etc/nginx/nginx_blank.conf + +# "include" file for auth_basic, prompt, and .htpasswd location +NGINX_BASIC_AUTH_CONF=/etc/nginx/nginx_auth_basic.conf + +# "include" file for auth_ldap, prompt, and "auth_ldap_servers" name +NGINX_LDAP_AUTH_CONF=/etc/nginx/nginx_auth_ldap.conf + +# volume-mounted user configuration containing "ldap_server ad_server" section with URL, binddn, etc. +NGINX_LDAP_USER_CONF=/etc/nginx/nginx_ldap.conf + +# runtime "include" file for auth method (link to either NGINX_BASIC_AUTH_CONF or NGINX_LDAP_AUTH_CONF) +NGINX_RUNTIME_AUTH_CONF=/etc/nginx/nginx_auth_rt.conf + +# runtime "include" file for ldap config (link to either NGINX_BLANK_CONF or (possibly modified) NGINX_LDAP_USER_CONF) +NGINX_RUNTIME_LDAP_CONF=/etc/nginx/nginx_ldap_rt.conf + +# config file for stunnel if using stunnel to issue LDAP StartTLS function +STUNNEL_CONF=/etc/stunnel/stunnel.conf + +CA_TRUST_HOST_DIR=/etc/nginx/ca-trust +CA_TRUST_RUN_DIR=/var/run/ca-trust + +# copy trusted CA certs to runtime directory and c_rehash them to create symlinks +STUNNEL_CA_PATH_LINE="" +STUNNEL_VERIFY_LINE="" +STUNNEL_CHECK_HOST_LINE="" +STUNNEL_CHECK_IP_LINE="" +NGINX_LDAP_CA_PATH_LINE="" +NGINX_LDAP_CHECK_REMOTE_CERT_LINE="" +mkdir -p "$CA_TRUST_RUN_DIR" +# attempt to make sure trusted CA certs dir is readable by unprivileged nginx worker +chmod 755 "$CA_TRUST_RUN_DIR" || true +CA_FILES=$(shopt -s nullglob dotglob; echo "$CA_TRUST_HOST_DIR"/*) +if (( ${#CA_FILES} )) ; then + rm -f "$CA_TRUST_RUN_DIR"/* + pushd "$CA_TRUST_RUN_DIR" >/dev/null 2>&1 + if cp "$CA_TRUST_HOST_DIR"/* ./ ; then + + # attempt to make sure trusted CA certs are readable by unprivileged nginx worker + chmod 644 * || true + + # create hash symlinks + c_rehash -compat . + + # variables for stunnel config + STUNNEL_CA_PATH_LINE="CApath = $CA_TRUST_RUN_DIR" + [[ -n $NGINX_LDAP_TLS_STUNNEL_VERIFY_LEVEL ]] && STUNNEL_VERIFY_LINE="verify = $NGINX_LDAP_TLS_STUNNEL_VERIFY_LEVEL" || STUNNEL_VERIFY_LINE="verify = 2" + [[ -n $NGINX_LDAP_TLS_STUNNEL_CHECK_HOST ]] && STUNNEL_CHECK_HOST_LINE="checkHost = $NGINX_LDAP_TLS_STUNNEL_CHECK_HOST" + [[ -n $NGINX_LDAP_TLS_STUNNEL_CHECK_IP ]] && STUNNEL_CHECK_IP_LINE="checkIP = $NGINX_LDAP_TLS_STUNNEL_CHECK_IP" + + # variables for nginx config + NGINX_LDAP_CA_PATH_LINE=" ssl_ca_dir $CA_TRUST_RUN_DIR;" + ( [[ -n $NGINX_LDAP_TLS_STUNNEL_CHECK_HOST ]] || [[ -n $NGINX_LDAP_TLS_STUNNEL_CHECK_IP ]] ) && NGINX_LDAP_CHECK_REMOTE_CERT_LINE=" ssl_check_cert on;" || NGINX_LDAP_CHECK_REMOTE_CERT_LINE=" ssl_check_cert chain;" + fi + popd >/dev/null 2>&1 +fi + +if [[ -z $NGINX_BASIC_AUTH ]] || [[ "$NGINX_BASIC_AUTH" == "true" ]]; then + # doing HTTP basic auth instead of ldap + + # point nginx_auth_rt.conf to nginx_auth_basic.conf + ln -sf "$NGINX_BASIC_AUTH_CONF" "$NGINX_RUNTIME_AUTH_CONF" + + # ldap configuration is empty + ln -sf "$NGINX_BLANK_CONF" "$NGINX_RUNTIME_LDAP_CONF" + +else + # point nginx_auth_rt.conf to nginx_auth_ldap.conf + ln -sf "$NGINX_LDAP_AUTH_CONF" "$NGINX_RUNTIME_AUTH_CONF" + + # parse URL information out of user ldap configuration + # example: + # url "ldap://localhost:3268/DC=ds,DC=example,DC=com?sAMAccountName?sub?(objectClass=person)"; + # "url" quote protocol h/p uri + # ↓ ↓ ↓ ↓ ↓ + PATTERN='^(\s*url\s+)([''"]?)(\w+)://([^/]+)(/.*)$' + + unset HEADER + unset OPEN_QUOTE + unset PROTOCOL + unset REMOTE_HOST + unset REMOTE_PORT + unset URI_TO_END + + URL_LINE_NUM=0 + READ_LINE_NUM=0 + while IFS= read -r LINE; do + READ_LINE_NUM=$((READ_LINE_NUM+1)) + if [[ $LINE =~ $PATTERN ]]; then + URL_LINE_NUM=$READ_LINE_NUM + HEADER=${BASH_REMATCH[1]} + OPEN_QUOTE=${BASH_REMATCH[2]} + PROTOCOL=${BASH_REMATCH[3]} + REMOTE=${BASH_REMATCH[4]} + REMOTE_ARR=(${REMOTE//:/ }) + [[ -n ${REMOTE_ARR[0]} ]] && REMOTE_HOST=${REMOTE_ARR[0]} + [[ -n ${REMOTE_ARR[1]} ]] && REMOTE_PORT=${REMOTE_ARR[1]} || REMOTE_PORT=3268 + URI_TO_END=${BASH_REMATCH[5]} + break + fi + done < "$NGINX_LDAP_USER_CONF" + + if [[ "$NGINX_LDAP_TLS_STUNNEL" == "true" ]]; then + # user provided LDAP configuration, but we need to tweak it and set up stunnel to issue StartTLS + + if [[ -z $REMOTE_HOST ]]; then + # missing LDAP info needed to configure tunnel, abort + exit 1 + fi + + # pick a random local port to listen on for the client side of the tunnel + read PORT_LOWER POWER_UPPER < /proc/sys/net/ipv4/ip_local_port_range + LOCAL_PORT=$(shuf -i $PORT_LOWER-$POWER_UPPER -n 1) + + # create PEM key for stunnel (this key doesn't matter as we're only using stunnel in client mode) + pushd /tmp >/dev/null 2>&1 + openssl genrsa -out key.pem 2048 + openssl req -new -x509 -key key.pem -out cert.pem -days 3650 -subj "/CN=$(hostname)/O=Malcolm/C=US" + cat key.pem cert.pem > /etc/stunnel/stunnel.pem + chmod 600 /etc/stunnel/stunnel.pem + rm -f key.pem cert.pem + popd >/dev/null 2>&1 + + # configure stunnel + cat < "$STUNNEL_CONF" +setuid = nginx +setgid = nginx +pid = /tmp/stunnel.pid +socket = l:TCP_NODELAY=1 +socket = r:TCP_NODELAY=1 +client = yes +foreground = yes +cert = /etc/stunnel/stunnel.pem +$STUNNEL_CA_PATH_LINE +$STUNNEL_VERIFY_LINE +$STUNNEL_CHECK_HOST_LINE +$STUNNEL_CHECK_IP_LINE + +[stunnel.ldap_start_tls] +accept = localhost:$LOCAL_PORT +connect = $REMOTE_HOST:$REMOTE_PORT +protocol = ldap +EOF + + # rewrite modified copy of user ldap configuration to point to local end of tunnel instead of remote + rm -f "$NGINX_RUNTIME_LDAP_CONF" + touch "$NGINX_RUNTIME_LDAP_CONF" + chmod 600 "$NGINX_RUNTIME_LDAP_CONF" + READ_LINE_NUM=0 + while IFS= read -r LINE; do + READ_LINE_NUM=$((READ_LINE_NUM+1)) + if (( $URL_LINE_NUM == $READ_LINE_NUM )); then + echo "${HEADER}${OPEN_QUOTE}ldap://localhost:${LOCAL_PORT}${URI_TO_END}" >> "$NGINX_RUNTIME_LDAP_CONF" + else + echo "$LINE" >> "$NGINX_RUNTIME_LDAP_CONF" + fi + done < "$NGINX_LDAP_USER_CONF" + + else + # we're doing either LDAP or LDAPS, but not StartTLS, so we don't need to use stunnel. + # however, we do want to set SSL CA trust stuff if specified, so do that + rm -f "$NGINX_RUNTIME_LDAP_CONF" + touch "$NGINX_RUNTIME_LDAP_CONF" + chmod 600 "$NGINX_RUNTIME_LDAP_CONF" + READ_LINE_NUM=0 + while IFS= read -r LINE; do + READ_LINE_NUM=$((READ_LINE_NUM+1)) + echo "$LINE" >> "$NGINX_RUNTIME_LDAP_CONF" + if (( $URL_LINE_NUM == $READ_LINE_NUM )); then + echo "$NGINX_LDAP_CHECK_REMOTE_CERT_LINE" >> "$NGINX_RUNTIME_LDAP_CONF" + echo "$NGINX_LDAP_CA_PATH_LINE" >> "$NGINX_RUNTIME_LDAP_CONF" + fi + done < "$NGINX_LDAP_USER_CONF" + + fi # stunnel/starttls vs. ldap/ldaps + +fi # basic vs. ldap + +# start supervisor (which will spawn nginx, stunnel, etc.) or whatever the default command is +exec "$@" diff --git a/Vagrant/resources/malcolm/nginx/supervisord.conf b/Vagrant/resources/malcolm/nginx/supervisord.conf new file mode 100644 index 0000000..df00e69 --- /dev/null +++ b/Vagrant/resources/malcolm/nginx/supervisord.conf @@ -0,0 +1,64 @@ +; Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +[unix_http_server] +file=/tmp/supervisor.sock ; (the path to the socket file) +chmod=0700 + +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisord.pid + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[program:nginx] +command=/usr/sbin/nginx +startsecs=10 +startretries=2000000000 +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:logaccess] +command=/usr/bin/tail -F /var/log/nginx/access.log +user=%(ENV_PUSER)s +startsecs=10 +startretries=2000000000 +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/null +stdout_logfile_maxbytes=0 +redirect_stderr=false + +[program:logerrors] +command=/usr/bin/tail -F /var/log/nginx/error.log +user=%(ENV_PUSER)s +startsecs=10 +startretries=2000000000 +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/null +stdout_logfile_maxbytes=0 +redirect_stderr=false + +[program:stunnel] +command=/usr/bin/stunnel /etc/stunnel/stunnel.conf +startsecs=10 +startretries=2000000000 +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true +autostart=%(ENV_NGINX_LDAP_TLS_STUNNEL)s diff --git a/Vagrant/resources/malcolm/pcap-capture/scripts/netsniff-roll.sh b/Vagrant/resources/malcolm/pcap-capture/scripts/netsniff-roll.sh new file mode 100755 index 0000000..c83b197 --- /dev/null +++ b/Vagrant/resources/malcolm/pcap-capture/scripts/netsniff-roll.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +lastmod(){ + expr $(date +%s) - $(stat -c %X "$1") +} + +shopt -s nullglob + +PCAP_ROTATE_MINUTES=${PCAP_ROTATE_MINUTES:-15} +PCAP_ROTATE_SECONDS=$(echo "$PCAP_ROTATE_MINUTES*60" | bc) + +# we want to HUP any netsniff-ng process that has been writing to the +# same file for >= PCAP_ROTATE_SECONDS. netsniff-ng itself takes care +# of rolling the file based on filesize, this way we won't interfere +# with that because we'll be looking at the actual file time itself + +declare -A NETSNIFF_LAST_HUP_TIMES_BY_PID + +while true; do + sleep 10 + + NETSNIFF_PIDS=$(pidof netsniff-ng) + for NETSNIFF_PID in $NETSNIFF_PIDS; do + + unset OUTPUT_DIR + unset PCAP_PREFIX + + NOW_DATE_UNIX="$(date +%s)" + + # if this netsniff-ng was previously HUP'ed, read out which PCAP file caused it + if [ ${NETSNIFF_LAST_HUP_TIMES_BY_PID[$NETSNIFF_PID]+_} ]; then + PID_LAST_HUP_TIME=${NETSNIFF_LAST_HUP_TIMES_BY_PID[$NETSNIFF_PID]} + PID_LAST_HUP_SECONDS_AGO=$((NOW_DATE_UNIX-PID_LAST_HUP_TIME)) + else + PID_LAST_HUP_SECONDS_AGO=86400 + fi + + # no reason to even check if this PID has been HUP'ed more recently than the threshold + if (( $PID_LAST_HUP_SECONDS_AGO >= $PCAP_ROTATE_SECONDS )); then + + # when was this netsniff-ng started (we don't want to roll based on leftover pcap files from a previous instance) + PROC_START_DATE_STR="$(ps -q $NETSNIFF_PID -o lstart=)" + PROC_START_DATE_UNIX="$(date +%s -d "$PROC_START_DATE_STR")" + PROC_START_SECONDS_AGO=$((NOW_DATE_UNIX-PROC_START_DATE_UNIX)) + + # see what arguments this netsniff-ng was started with + NETSNIFF_ARGS=($(cat /proc/$NETSNIFF_PID/cmdline | tr '\000' ' ' | python -c 'import shlex; print shlex.split(None)' | tr -d '[],')) + NETSNIFF_ARGS_LEN=${#NETSNIFF_ARGS[@]} + + # extract the --out directory and --prefix prefix for the file(s) being written to by this netsniff-ng + # (we would just use /proc/$NETSNIFF_PID/fd/ but in docker we can't resolve the symlink) + CURR_IDX=0 + for ARG in ${NETSNIFF_ARGS[@]}; do + if (( CURR_IDX > 0 )) && (( CURR_IDX < NETSNIFF_ARGS_LEN - 1 )); then + if [[ "$ARG" = "'-o'" ]] || [[ "$ARG" = "'--out'" ]]; then + OUTPUT_DIR=$(sed -e "s/^'//" -e "s/'$//" <<< "${NETSNIFF_ARGS[(( CURR_IDX + 1 ))]}") + elif [[ "$ARG" = "'-P'" ]] || [[ "$ARG" = "'--prefix'" ]]; then + PCAP_PREFIX=$(sed -e "s/^'//" -e "s/'$//" <<< "${NETSNIFF_ARGS[(( CURR_IDX + 1 ))]}") + fi + fi + CURR_IDX=$((CURR_IDX+1)) + done + + if [[ -n $OUTPUT_DIR ]] && [[ -n $PCAP_PREFIX ]]; then + # for the file(s) being written to by this netsniff-ng, if the creation time (okay, + # access time, but nobody's "accessed" it since it was created) is longer ago than + # PCAP_ROTATE_SECONDS then we're gonna HUP it + NEEDS_HUP=0 + MAX_SEC_SINCE_MOD=0 + for PCAP_FILE in "$OUTPUT_DIR/$PCAP_PREFIX"*; do + SEC_SINCE_MOD=$(lastmod "$PCAP_FILE") + # if this file is younger than the netsniff-ng process AND older than the rotate threshold + if (( $SEC_SINCE_MOD <= $PROC_START_SECONDS_AGO )) && (( $SEC_SINCE_MOD >= $PCAP_ROTATE_SECONDS )); then + NEEDS_HUP=$((NEEDS_HUP+1)) + (( $SEC_SINCE_MOD > $MAX_SEC_SINCE_MOD )) && MAX_SEC_SINCE_MOD=$SEC_SINCE_MOD + fi + done + if (( $NEEDS_HUP > 0 )); then + kill -s HUP $NETSNIFF_PID && echo "Rolling netsniff-ng ($PCAP_PREFIX...) at $MAX_SEC_SINCE_MOD seconds" + NETSNIFF_LAST_HUP_TIMES_BY_PID[$NETSNIFF_PID]=$NOW_DATE_UNIX + fi + fi # $OUTPUT_DIR and $PCAP_PREFIX + + fi # $PID_LAST_HUP_SECONDS_AGO and $PCAP_ROTATE_SECONDS + + done # for NETSNIFF_PID in $NETSNIFF_PIDS + +done # while true diff --git a/Vagrant/resources/malcolm/pcap-capture/scripts/supervisor.sh b/Vagrant/resources/malcolm/pcap-capture/scripts/supervisor.sh new file mode 100755 index 0000000..9d0b9e5 --- /dev/null +++ b/Vagrant/resources/malcolm/pcap-capture/scripts/supervisor.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + + +set -e + +CONFIG_DIR="/etc/supervisor.d" +CONFIG_FILE="/etc/supervisord.conf" +CAPTURE_GROUPS_FILE="capture-groups.conf" + +function join_by { local IFS="$1"; shift; echo "$*"; } + +# Create config files for each capture interface for the various capture programs (tcpdump, netsniff) +# so that supervisord can manage instances of each of these programs for each interface. +# bro is now managed by broctl (via brodeploy.sh) rather than individually by supervisord so that +# we can use pf_ring +function CreateCaptureConfigs() { + + declare -a CAPTURE_PROGS=("tcpdump" "netsniff") + + if [[ -d "$CONFIG_DIR" ]]; then + rm -f "$CONFIG_DIR"/"$CAPTURE_GROUPS_FILE" + + for PROG in "${CAPTURE_PROGS[@]}"; do + declare -a PROG_GROUP=() + + # remove any old .conf files for this capture program, we'll create them all fresh + rm -f "$CONFIG_DIR"/$PROG*.conf + if [[ -n $PCAP_IFACE ]]; then + + # for each capture interface, expand the capture program's template and substitute for the $IFACE variable + for IFACE in ${PCAP_IFACE//,/ }; do + if [[ -r "$CONFIG_DIR"/$PROG.template ]]; then + + # expand $IFACE into interface name in a new configuration file + export $IFACE + sed -e "s/[$]IFACE/${IFACE}/g" "$CONFIG_DIR"/$PROG.template > "$CONFIG_DIR"/$PROG-"$IFACE".conf + + # get new program name for group inclusion + INSTANCE_NAME="$(grep '^\[program:' "$CONFIG_DIR"/$PROG-"$IFACE".conf | sed "s/^\[program://" | sed "s/\]$//")" + PROG_GROUP+=($INSTANCE_NAME) + + fi # capture program template exists + done # loop over capture interfaces + + fi # capture interface(s) defined + + if (( ${#PROG_GROUP[@]} )); then + GROUP_PROGS="$(join_by , "${PROG_GROUP[@]}")" + # define group config file + echo "[group:$PROG]" >> "$CONFIG_DIR"/"$CAPTURE_GROUPS_FILE" + echo "programs=$GROUP_PROGS" >> "$CONFIG_DIR"/"$CAPTURE_GROUPS_FILE" + echo "" >> "$CONFIG_DIR"/"$CAPTURE_GROUPS_FILE" + fi + + done # loop over capture programs + fi # config dir exists +} + +function SetCaptureCapabilities() { + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /sbin/ethtool || true + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/sbin/tcpdump || true + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip CAP_IPC_LOCK+eip CAP_SYS_ADMIN+eip' /usr/sbin/netsniff-ng || true +} + +CreateCaptureConfigs +SetCaptureCapabilities + +if [[ -z $PCAP_ROTATE_SECONDS ]] && [[ -n $PCAP_ROTATE_MINUTES ]]; then + export PCAP_ROTATE_SECONDS=$(echo "$PCAP_ROTATE_MINUTES * 60" | bc) +fi + +supervisord -c "$CONFIG_FILE" -n diff --git a/Vagrant/resources/malcolm/pcap-capture/supervisord.conf b/Vagrant/resources/malcolm/pcap-capture/supervisord.conf new file mode 100644 index 0000000..9806741 --- /dev/null +++ b/Vagrant/resources/malcolm/pcap-capture/supervisord.conf @@ -0,0 +1,33 @@ +; Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +[unix_http_server] +file=/tmp/supervisor.sock ; (the path to the socket file) +chmod=0700 + +[supervisord] +nodaemon=true +user=root +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisord.pid + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[program:netsniff-roll] +startsecs=15 +command=/usr/local/bin/netsniff-roll.sh +user=%(ENV_PUSER)s +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true +autostart=%(ENV_PCAP_ENABLE_NETSNIFF)s +directory=%(ENV_PCAP_PATH)s + +[include] +files = /etc/supervisor.d/*.conf diff --git a/Vagrant/resources/malcolm/pcap-capture/templates/netsniff.template b/Vagrant/resources/malcolm/pcap-capture/templates/netsniff.template new file mode 100644 index 0000000..b69c083 --- /dev/null +++ b/Vagrant/resources/malcolm/pcap-capture/templates/netsniff.template @@ -0,0 +1,9 @@ +[program:netsniff-$IFACE] +command=/usr/sbin/netsniff-ng -i "$IFACE" -T "%(ENV_PCAP_NETSNIFF_MAGIC)s" -o "%(ENV_PCAP_PATH)s" -P "netsniff-$IFACE_" -F "%(ENV_PCAP_ROTATE_MEGABYTES)sMiB" --silent "%(ENV_PCAP_FILTER)s" +user=%(ENV_PUSER)s +startsecs=5 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_PCAP_ENABLE_NETSNIFF)s +directory=%(ENV_PCAP_PATH)s diff --git a/Vagrant/resources/malcolm/pcap-capture/templates/tcpdump.template b/Vagrant/resources/malcolm/pcap-capture/templates/tcpdump.template new file mode 100644 index 0000000..7061fdf --- /dev/null +++ b/Vagrant/resources/malcolm/pcap-capture/templates/tcpdump.template @@ -0,0 +1,9 @@ +[program:tcpdump-$IFACE] +command=/usr/sbin/tcpdump -i "$IFACE" -s %(ENV_PCAP_SNAPLEN)s -w "tcpdump-$IFACE_%(ENV_PCAP_TCPDUMP_FILENAME_PATTERN)s" -G %(ENV_PCAP_ROTATE_SECONDS)s -C %(ENV_PCAP_ROTATE_MEGABYTES)s -K -n "%(ENV_PCAP_FILTER)s" +user=%(ENV_PUSER)s +startsecs=5 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_PCAP_ENABLE_TCPDUMP)s +directory=%(ENV_PCAP_PATH)s diff --git a/Vagrant/resources/malcolm/pcap-monitor/scripts/watch-pcap-uploads-folder.sh b/Vagrant/resources/malcolm/pcap-monitor/scripts/watch-pcap-uploads-folder.sh new file mode 100755 index 0000000..f581637 --- /dev/null +++ b/Vagrant/resources/malcolm/pcap-monitor/scripts/watch-pcap-uploads-folder.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +PCAP_BASE_PATH=${PCAP_PATH:-"/pcap"} +ZEEK_BASE_PATH=${ZEEK_PATH:-"/zeek"} + +PROCESS_DIR="$PCAP_BASE_PATH/processed" +PCAP_UPLOAD_DIR="$PCAP_BASE_PATH/upload" +ZEEK_UPLOAD_DIR="$ZEEK_BASE_PATH/upload" +mkdir -p "$PCAP_UPLOAD_DIR" + +# as new pcaps are closed for writing in /pcap/upload, move them to /pcap/processed for processing +inotifywait -m -e close_write --format '%w%f' "${PCAP_UPLOAD_DIR}" | while read NEWFILE +do + FILEMAGIC=$(file -b "$NEWFILE") + FILEMIME=$(file -b --mime-type "$NEWFILE") + if [[ "$FILEMIME" == 'application/vnd.tcpdump.pcap' ]] || [[ "$FILEMIME" == 'application/x-pcapng' ]] || [[ "$FILEMAGIC" == *"pcap-ng"* ]]; then + # a pcap file to be processed by dropping it into $PROCESS_DIR + sleep 0.1 && chown ${PUID:-${DEFAULT_UID}}:${PGID:-${DEFAULT_GID}} "$NEWFILE" && (>&2 mv -v "$NEWFILE" "$PROCESS_DIR/") + + elif [[ -d "$ZEEK_UPLOAD_DIR" ]] && ( echo "$FILEMIME" | grep --quiet -P "(application/gzip|application/x-gzip|application/x-7z-compressed|application/x-bzip2|application/x-cpio|application/x-lzip|application/x-lzma|application/x-rar-compressed|application/x-tar|application/x-xz|application/zip)" ); then + # looks like this is a compressed file, we're assuming it's a zeek log archive to be processed by filebeat + sleep 0.1 && chown ${PUID:-${DEFAULT_UID}}:${PGID:-${DEFAULT_GID}} "$NEWFILE" && (>&2 mv -v "$NEWFILE" "$ZEEK_UPLOAD_DIR/") + + else + # unhandled file type uploaded, delete it + sleep 0.1 && (>&2 rm "$NEWFILE") + echo "Removed \"$NEWFILE\", unhandled file type \"$FILEMIME\"" + + fi +done diff --git a/Vagrant/resources/malcolm/pcap-monitor/supervisord.conf b/Vagrant/resources/malcolm/pcap-monitor/supervisord.conf new file mode 100644 index 0000000..69aad42 --- /dev/null +++ b/Vagrant/resources/malcolm/pcap-monitor/supervisord.conf @@ -0,0 +1,46 @@ +; Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +[unix_http_server] +file=/tmp/supervisor.sock ; (the path to the socket file) +chmod=0700 + +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisord.pid + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[program:watch-upload] +command=/bin/bash -c "sleep 30 && /usr/local/bin/watch-pcap-uploads-folder.sh" +startsecs=35 +startretries=1 +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true + +[program:pcap-publisher] +command=python3 /usr/local/bin/pcap_watcher.py + --verbose "%(ENV_PCAP_PIPELINE_DEBUG)s" + --extra-verbose "%(ENV_PCAP_PIPELINE_DEBUG_EXTRA)s" + --elasticsearch "%(ENV_ELASTICSEARCH_URL)s" + --elasticsearch-wait + --moloch-node arkime + --ignore-existing "%(ENV_PCAP_PIPELINE_IGNORE_PREEXISTING)s" + --start-sleep 60 + --directory "%(ENV_PCAP_PATH)s"/processed +user=%(ENV_PUSER)s +startsecs=65 +startretries=1 +stopasgroup=true +killasgroup=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +redirect_stderr=true diff --git a/Vagrant/resources/malcolm/pcap/processed/.gitignore b/Vagrant/resources/malcolm/pcap/processed/.gitignore new file mode 100644 index 0000000..a5baada --- /dev/null +++ b/Vagrant/resources/malcolm/pcap/processed/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore + diff --git a/Vagrant/resources/malcolm/pcap/upload/.gitignore b/Vagrant/resources/malcolm/pcap/upload/.gitignore new file mode 100644 index 0000000..a5baada --- /dev/null +++ b/Vagrant/resources/malcolm/pcap/upload/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore + diff --git a/Vagrant/resources/malcolm/scripts/auth_setup b/Vagrant/resources/malcolm/scripts/auth_setup new file mode 120000 index 0000000..c910cf9 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/auth_setup @@ -0,0 +1 @@ +./control.py \ No newline at end of file diff --git a/Vagrant/resources/malcolm/scripts/beats/.gitignore b/Vagrant/resources/malcolm/scripts/beats/.gitignore new file mode 100644 index 0000000..3b77c9e --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/.gitignore @@ -0,0 +1,3 @@ +.vagrant +data +logs diff --git a/Vagrant/resources/malcolm/scripts/beats/README.md b/Vagrant/resources/malcolm/scripts/beats/README.md new file mode 100644 index 0000000..d1356c9 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/README.md @@ -0,0 +1,181 @@ +# Using Beats to forward host logs to Malcolm + +Because Malcolm uses components of the open source data analysis platform [Elastic Stack](https://www.elastic.co/elastic-stack), it can accept various host logs sent from [Beats](https://www.elastic.co/beats/#the-beats-family), Elastic Stack's lightweight data shippers. These Beats generally include prebuilt Kibana dashboards for each of their respective data sets. + +## Examples + +Some examples include: + +* [Auditbeat](https://www.elastic.co/beats/auditbeat) + - [`auditd` logs](https://www.elastic.co/guide/en/beats/auditbeat/master/auditbeat-module-auditd.html) on Linux hosts + - [file integrity monitoring](https://www.elastic.co/guide/en/beats/auditbeat/master/auditbeat-module-file_integrity.html) on Linux, macOS (Darwin) and Windows hosts + - [system state](https://www.elastic.co/guide/en/beats/auditbeat/master/auditbeat-module-system.html) including host, process, login, package, socket and user information on Linux, with some data sets supported on macOS and Windows hosts (apparently not available with the [Open Source Elastic license](https://www.elastic.co/subscriptions)) +* [Filebeat](https://www.elastic.co/beats/filebeat) + - [system logs](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-system.html) (syslog and authentication logs) on Linux hosts + - log output from [many products](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html) across Beats-supported platforms + - arbitrary textual [log files](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-log.html) +* [Metricbeat](https://www.elastic.co/beats/metricbeat) + - [system](https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-module-system.html) resource utilization and process information + - metrics from [many products](https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-modules.html) across Beats-supported platforms +* [Packetbeat](https://www.elastic.co/beats/packetbeat) + - host-based packet inspection for [many protocols](https://www.elastic.co/guide/en/beats/packetbeat/current/configuration-protocols.html) (supports `libpcap` on Linux, [macOS](https://formulae.brew.sh/formula/libpcap) and [Windows](https://nmap.org/npcap/); and `af_packet` on Linux) +* [Winlogbeat](https://www.elastic.co/downloads/beats/winlogbeat) +* [Custom](https://www.elastic.co/guide/en/beats/devguide/current/index.html) Beats +* [Community-contributed](https://www.elastic.co/guide/en/beats/devguide/current/community-beats.html) Beats + +## Convenience configuration scripts and sample configurations + +Two scripts are provided here for your convenience in configuring and running Beats to forward log data to Malcolm: [beat_config.py](./beat_config.py) and [beat_run.py](./beat_run.py). These Python scripts should run on Linux, macOS and Windows hosts with either Python 2 or Python 3. + +Sample configurations are also provided for several beats for [Linux](./linux_vm_example) and [Windows](./windows_vm_example) hosts, as well as `Vagrantfile`s for setting up and running [VirtualBox](https://www.virtualbox.org/) VMs under [Vagrant](https://www.vagrantup.com/intro). + +For further information, downloads, documentation or support for Beats, see the [Beats Platform Reference](https://www.elastic.co/guide/en/beats/libbeat/current/beats-reference.html) or the [Beats category](https://discuss.elastic.co/c/elastic-stack/beats) on the Elastic forums. + +### Example: Windows configuration and run + +``` +PS C:\Program Files\winlogbeat> dir + + Directory: C:\Program Files\winlogbeat + +Mode LastWriteTime Length Name +---- ------------- ------ ---- +d----- 7/27/2020 8:49 AM kibana +d----- 7/27/2020 8:49 AM module +-a---- 3/26/2020 5:33 AM 41 .build_hash.txt +-a---- 7/27/2020 8:50 AM 25799 beat_common.py +-a---- 7/27/2020 8:50 AM 2525 beat_config.py +-a---- 7/27/2020 8:50 AM 2244 beat_run.py +-a---- 3/26/2020 5:32 AM 163122 fields.yml +-a---- 7/27/2020 8:49 AM 878 install-service-winlogbeat.ps1 +-a---- 3/26/2020 4:44 AM 13675 LICENSE.txt +-a---- 3/26/2020 4:44 AM 328580 NOTICE.txt +-a---- 3/26/2020 5:33 AM 825 README.md +-a---- 3/26/2020 5:33 AM 254 uninstall-service-winlogbeat.ps1 +-a---- 3/26/2020 5:33 AM 47818752 winlogbeat.exe +-a---- 3/26/2020 5:32 AM 47900 winlogbeat.reference.yml +-a---- 7/27/2020 8:50 AM 1349 winlogbeat.yml + + +PS C:\Program Files\winlogbeat> .\beat_config.py -c .\winlogbeat.yml -b winlogbeat + +Append connectivity boilerplate to .\winlogbeat.yml? (y/N): y + +Created winlogbeat keystore + +Configure winlogbeat Elasticsearch connectivity? (Y/n): y + +Enter Elasticsearch connection protocol (http or https) [https]: https + +Enter Elasticsearch SSL verification (none (for self-signed certificates) or full) [none]: none + +Enter Elasticsearch connection host: 172.15.0.41:9200 + +Configure winlogbeat Kibana connectivity? (Y/n): y + +Enter Kibana connection protocol (http or https) [https]: https + +Enter Kibana SSL verification (none (for self-signed certificates) or full) [none]: none + +Enter Kibana connection host: 172.15.0.41:5601 + +Configure winlogbeat Kibana dashboards? (Y/n): y + +Enter directory containing Kibana dashboards [C:\Program Files\winlogbeat\kibana]: C:\Program Files\winlogbeat\kibana + +Enter HTTP/HTTPS server username: sensor +Enter password for sensor: +Enter password for sensor (again): + +Generated keystore for winlogbeat +BEAT_KIBANA_SSL_VERIFY +BEAT_ES_HOST +BEAT_ES_PROTOCOL +BEAT_ES_SSL_VERIFY +BEAT_KIBANA_HOST +BEAT_HTTP_PASSWORD +BEAT_HTTP_USERNAME +BEAT_KIBANA_DASHBOARDS_ENABLED +BEAT_KIBANA_DASHBOARDS_PATH +BEAT_KIBANA_PROTOCOL + +PS C:\Program Files\winlogbeat> .\beat_run.py -c .\winlogbeat.yml -b winlogbeat + +2020-07-27T09:00:17.472-0700 INFO instance/beat.go:622 Home path: [C:\Program Files\winlogbeat] Config path: [C:\Program Files\winlogbeat] Data path: [C:\Program Files\winlogbeat] Logs path: [C:\Program Files\winlogbeat\logs] +2020-07-27T09:00:17.474-0700 INFO instance/beat.go:630 Beat ID: c38487f0-ea87-477b-aa93-376eb40949f4 +… +^C +KeyboardInterrupt +2020-07-27T09:00:24.783-0700 INFO instance/beat.go:445 winlogbeat stopped. +``` + +### Example: Linux configuration and run + +``` +root@vagrant:/opt/filebeat# ls -l +total 4 +-rw------- 1 root root 431 Jul 27 16:08 filebeat.yml + +root@vagrant:/opt/filebeat# beat_config.py -c ./filebeat.yml -b filebeat + +Append connectivity boilerplate to ./filebeat.yml? (y/N): y + +Create symlink to module path /usr/share/filebeat/module as /opt/filebeat/module? (Y/n): y + +Created filebeat keystore + +Configure filebeat Elasticsearch connectivity? (Y/n): y + +Enter Elasticsearch connection protocol (http or https) [https]: https + +Enter Elasticsearch SSL verification (none (for self-signed certificates) or full) [none]: none + +Enter Elasticsearch connection host: 172.15.0.41:9200 + +Configure filebeat Kibana connectivity? (Y/n): y + +Enter Kibana connection protocol (http or https) [https]: https + +Enter Kibana SSL verification (none (for self-signed certificates) or full) [none]: none + +Enter Kibana connection host: 172.15.0.41:5601 + +Configure filebeat Kibana dashboards? (Y/n): y + +Enter directory containing Kibana dashboards [/usr/share/filebeat/kibana]: /usr/share/filebeat/kibana + +Enter HTTP/HTTPS server username: sensor +Enter password for sensor: +Enter password for sensor (again): + +Generated keystore for filebeat +BEAT_KIBANA_PROTOCOL +BEAT_KIBANA_SSL_VERIFY +BEAT_ES_PROTOCOL +BEAT_ES_SSL_VERIFY +BEAT_KIBANA_DASHBOARDS_ENABLED +BEAT_KIBANA_DASHBOARDS_PATH +BEAT_ES_HOST +BEAT_HTTP_PASSWORD +BEAT_HTTP_USERNAME +BEAT_KIBANA_HOST + +root@vagrant:/opt/filebeat# beat_run.py -c ./filebeat.yml -b filebeat + +2020-07-27T16:12:43.270Z INFO instance/beat.go:622 Home path: [/opt/filebeat] Config path: [/opt/filebeat] Data path: [/opt/filebeat/data] Logs path: [/opt/filebeat/logs] +2020-07-27T16:12:43.270Z INFO instance/beat.go:630 Beat ID: 759019e0-705c-4a16-87a2-52e9a5f6e799 +… +^C +KeyboardInterrupt +2020-07-27T16:13:10.816Z INFO beater/filebeat.go:443 Stopping filebeat +``` + +# Copyright + +[Malcolm](https://github.com/idaholab/Malcolm) is Copyright 2021 Battelle Energy Alliance, LLC, and is developed and released through the cooperation of the Cybersecurity and Infrastructure Security Agency of the U.S. Department of Homeland Security. + +See [`License.txt`](https://raw.githubusercontent.com/idaholab/Malcolm/master/License.txt) for the terms of its release. + +### Contact information of author(s): + +[Seth Grover](mailto:malcolm.netsec@gmail.com?subject=Malcolm) diff --git a/Vagrant/resources/malcolm/scripts/beats/beat_common.py b/Vagrant/resources/malcolm/scripts/beats/beat_common.py new file mode 100644 index 0000000..bc614f3 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/beat_common.py @@ -0,0 +1,622 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +from __future__ import print_function + +import getpass +import inspect +import os +import platform +import re +import sys +import time + +from collections import defaultdict + +from subprocess import (PIPE, STDOUT, Popen, CalledProcessError) + +################################################################################################### +ScriptPath = os.path.dirname(os.path.realpath(__file__)) + +################################################################################################### +# python 2/3 portability +PY3 = (sys.version_info.major >= 3) + +# bind raw_input to input in older versions of python +try: + input = raw_input +except NameError: + pass + +try: + FileNotFoundError +except NameError: + FileNotFoundError = IOError + +################################################################################################### +PLATFORM_WINDOWS = "Windows" +PLATFORM_MAC = "Darwin" +PLATFORM_LINUX = "Linux" +PLATFORM_LINUX_CENTOS = 'centos' +PLATFORM_LINUX_DEBIAN = 'debian' +PLATFORM_LINUX_FEDORA = 'fedora' +PLATFORM_LINUX_UBUNTU = 'ubuntu' + +OPERATION_RUN = 'run' +OPERATION_CONFIGURE = 'config' + +BEAT_ES_HOST = "BEAT_ES_HOST" +BEAT_ES_PROTOCOL = "BEAT_ES_PROTOCOL" +BEAT_ES_SSL_VERIFY = "BEAT_ES_SSL_VERIFY" +BEAT_HTTP_PASSWORD = "BEAT_HTTP_PASSWORD" +BEAT_HTTP_USERNAME = "BEAT_HTTP_USERNAME" +BEAT_KIBANA_DASHBOARDS_ENABLED = "BEAT_KIBANA_DASHBOARDS_ENABLED" +BEAT_KIBANA_DASHBOARDS_PATH = "BEAT_KIBANA_DASHBOARDS_PATH" +BEAT_KIBANA_HOST = "BEAT_KIBANA_HOST" +BEAT_KIBANA_PROTOCOL = "BEAT_KIBANA_PROTOCOL" +BEAT_KIBANA_SSL_VERIFY = "BEAT_KIBANA_SSL_VERIFY" + +BEAT_YML_TEMPLATE = """ +#================================ General ====================================== +fields_under_root: true + +#================================ Outputs ====================================== + +#-------------------------- Elasticsearch output ------------------------------- +output.elasticsearch: + enabled: true + hosts: ["${BEAT_ES_HOST}"] + protocol: "${BEAT_ES_PROTOCOL}" + username: "${BEAT_HTTP_USERNAME}" + password: "${BEAT_HTTP_PASSWORD}" + ssl.verification_mode: "${BEAT_ES_SSL_VERIFY}" + +setup.template.enabled: true +setup.template.overwrite: false +setup.template.settings: + index.number_of_shards: 1 + index.number_of_replicas: 0 + +#============================== Dashboards ===================================== +setup.dashboards.enabled: "${BEAT_KIBANA_DASHBOARDS_ENABLED}" +setup.dashboards.directory: "${BEAT_KIBANA_DASHBOARDS_PATH}" + +#============================== Kibana ===================================== +setup.kibana: + host: "${BEAT_KIBANA_HOST}" + protocol: "${BEAT_KIBANA_PROTOCOL}" + username: "${BEAT_HTTP_USERNAME}" + password: "${BEAT_HTTP_PASSWORD}" + ssl.verification_mode: "${BEAT_KIBANA_SSL_VERIFY}" + +#================================ Logging ====================================== +logging.metrics.enabled: false +""" + +################################################################################################### +# print to stderr +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + +################################################################################################### +# get interactive user response to Y/N question +def YesOrNo(question, default=None, forceInteraction=False, acceptDefault=False): + + if default == True: + questionStr = "\n{} (Y/n): ".format(question) + elif default == False: + questionStr = "\n{} (y/N): ".format(question) + else: + questionStr = "\n{} (y/n): ".format(question) + + if acceptDefault and (default is not None) and (not forceInteraction): + reply = '' + else: + while True: + reply = str(input(questionStr)).lower().strip() + if (len(reply) > 0) or (default is not None): + break + + if (len(reply) == 0): + reply = 'y' if default else 'n' + + if reply[0] == 'y': + return True + elif reply[0] == 'n': + return False + else: + return YesOrNo(question, default=default) + +################################################################################################### +# get interactive user response +def AskForString(question, default=None, forceInteraction=False, acceptDefault=False): + + if acceptDefault and (default is not None) and (not forceInteraction): + reply = default + else: + reply = str(input('\n{}: '.format(question))).strip() + + return reply + +################################################################################################### +# get interactive password (without echoing) +def AskForPassword(prompt): + reply = getpass.getpass(prompt=prompt) + return reply + +################################################################################################### +# convenient boolean argument parsing +def str2bool(v): + if v.lower() in ('yes', 'true', 't', 'y', '1'): + return True + elif v.lower() in ('no', 'false', 'f', 'n', '0'): + return False + else: + raise ValueError('Boolean value expected') + +################################################################################################### +# determine if a program/script exists and is executable in the system path +def Which(cmd, debug=False): + result = any(os.access(os.path.join(path, cmd), os.X_OK) for path in os.environ["PATH"].split(os.pathsep)) + if (not result) and (platform.system() == PLATFORM_WINDOWS): + result = os.access(os.path.join(os.getcwd(), cmd), os.X_OK) + if debug: + eprint("Which {} returned {}".format(cmd, result)) + return result + +################################################################################################### +# run command with arguments and return its exit code, stdout, and stderr +def check_output_input(*popenargs, **kwargs): + + if 'stdout' in kwargs: + raise ValueError('stdout argument not allowed, it will be overridden') + + if 'stderr' in kwargs: + raise ValueError('stderr argument not allowed, it will be overridden') + + if 'input' in kwargs and kwargs['input']: + if 'stdin' in kwargs: + raise ValueError('stdin and input arguments may not both be used') + inputdata = kwargs['input'] + kwargs['stdin'] = PIPE + else: + inputdata = None + kwargs.pop('input', None) + + process = Popen(*popenargs, stdout=PIPE, stderr=PIPE, **kwargs) + try: + output, errput = process.communicate(inputdata) + except: + process.kill() + process.wait() + raise + + retcode = process.poll() + + return retcode, output, errput + +################################################################################################### +# run command with arguments and return its exit code, stdout, and stderr +def run_process(command, stdout=True, stderr=True, stdin=None, retry=0, retrySleepSec=5, cwd=None, env=None, debug=False): + + retcode = -1 + output = [] + + try: + # run the command + retcode, cmdout, cmderr = check_output_input(command, input=stdin.encode() if (PY3 and stdin) else stdin, cwd=cwd, env=env) + + # split the output on newlines to return a list + if PY3: + if stderr and (len(cmderr) > 0): output.extend(cmderr.decode(sys.getdefaultencoding()).split('\n')) + if stdout and (len(cmdout) > 0): output.extend(cmdout.decode(sys.getdefaultencoding()).split('\n')) + else: + if stderr and (len(cmderr) > 0): output.extend(cmderr.split('\n')) + if stdout and (len(cmdout) > 0): output.extend(cmdout.split('\n')) + + except (FileNotFoundError, OSError, IOError) as e: + if stderr: + output.append("Command {} not found or unable to execute".format(command)) + + if debug: + eprint("{}{} returned {}: {}".format(command, "({})".format(stdin[:80] + bool(stdin[80:]) * '...' if stdin else ""), retcode, output)) + + if (retcode != 0) and retry and (retry > 0): + # sleep then retry + time.sleep(retrySleepSec) + return run_process(command, stdout, stderr, stdin, retry-1, retrySleepSec, cwd, env, debug) + else: + return retcode, output + +################################################################################################### +class Beatbox(object): + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def __init__(self, debug=False, ymlFileSpec=None, beatName=None, acceptDefaults=False): + self.debug = debug + self.acceptDefaults = acceptDefaults + self.platform = platform.system() + self.ymlFileSpec = ymlFileSpec + self.ymlFilePath = os.path.dirname(ymlFileSpec) + self.beatName = beatName + self.beatExe = beatName + self.beatInstallDir = None + self.defaultKibanaDashboardDir = None + self.keystoreItems = defaultdict(str) + for initItem in [BEAT_ES_HOST, + BEAT_ES_PROTOCOL, + BEAT_ES_SSL_VERIFY, + BEAT_HTTP_PASSWORD, + BEAT_HTTP_USERNAME, + BEAT_KIBANA_DASHBOARDS_ENABLED, + BEAT_KIBANA_DASHBOARDS_PATH, + BEAT_KIBANA_HOST, + BEAT_KIBANA_PROTOCOL, + BEAT_KIBANA_SSL_VERIFY]: + self.keystoreItems[initItem] = '' + self.keystorePath = None + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def __del__(self): + # nothing for now + pass + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def run_process(self, command, stdout=True, stderr=True, stdin=None, retry=0, retrySleepSec=5): + return run_process(command, stdout=stdout, stderr=stderr, stdin=stdin, retry=retry, retrySleepSec=retrySleepSec, debug=self.debug) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def build_beat_command(self, command): + if not Which(self.beatExe, debug=self.debug): + raise Exception("Beat executable {} does not exist".format(self.beatExe)) + + if not os.path.isfile(self.ymlFileSpec): + raise Exception("Beat configuration {} does not exist".format(self.ymlFileSpec)) + + # convert paths to absolutes + ymlFileSpec = os.path.abspath(self.ymlFileSpec) + ymlFilePath = os.path.dirname(ymlFileSpec) + + beatCmd = [self.beatExe, '--path.home', ymlFilePath, '--path.config', ymlFilePath, '--path.data', ymlFilePath if (self.platform == PLATFORM_WINDOWS) else os.path.join(ymlFilePath, 'data'), '--path.logs', os.path.join(ymlFilePath, 'logs'), '-c', ymlFileSpec, '-E', "keystore.path='{}'".format(self.keystorePath)] + + return beatCmd + command if isinstance(command, list) else beatCmd + [ command ] + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def run_beat_command(self, command, stdout=True, stderr=True, stdin=None, retry=0, retrySleepSec=5): + return self.run_process(self.build_beat_command(command), stdout=stdout, stderr=stderr, stdin=stdin, retry=retry, retrySleepSec=retrySleepSec) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def configure_beat_yml(self): + if self.debug: + eprint("{}: {}".format(self.__class__.__name__, inspect.currentframe().f_code.co_name)) + + if (self.ymlFileSpec is not None): + + if os.path.isfile(self.ymlFileSpec): + # if it doesn't look like connectivity stuff (at last BEAT_ES_PROTOCOL) is in the YML file, offer to append it + if ((len(list(filter(lambda x: BEAT_ES_PROTOCOL in x, [line.rstrip('\n') for line in open(self.ymlFileSpec)]))) == 0) and + YesOrNo("Append connectivity boilerplate to {}?".format(self.ymlFileSpec), default=False, acceptDefault=self.acceptDefaults)): + with open(self.ymlFileSpec, 'a') as ymlFile: + ymlFile.write(BEAT_YML_TEMPLATE) + + else: + # generate a boilerplate spec file (output configured, no modules) if the YML file doesn't exist + with open(self.ymlFileSpec, 'w') as ymlFile: + ymlFile.write(BEAT_YML_TEMPLATE) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def configure_keystore(self): + if self.debug: + eprint("{}: {}".format(self.__class__.__name__, inspect.currentframe().f_code.co_name)) + + # check if keystore already exists + err, out = self.run_beat_command(['keystore', 'list']) + if (err == 0) and (len(out) > 0): + if not YesOrNo("{} keystore already exists, overwrite?".format(self.beatName), default=False, acceptDefault=self.acceptDefaults): + raise Exception("Configuration cancelled by user") + + # create keystore + err, out = self.run_beat_command(['keystore', 'create', '--force']) + if (err == 0): + eprint('\n'.join(out)) + else: + raise Exception("Keystore creation failed: {}".format(out)) + + # prompt for and store configuration items + for destination in ['Elasticsearch', 'Kibana']: + + if YesOrNo("Configure {} {} connectivity?".format(self.beatName, destination), default=True, acceptDefault=self.acceptDefaults): + + # protocol + tmpVal, tmpDefault = '', 'https' + while tmpVal not in ['http', 'https']: + tmpVal = AskForString("Enter {} connection protocol (http or https) [{}]".format(destination, tmpDefault), default=tmpDefault, acceptDefault=self.acceptDefaults).lower() + if (len(tmpVal) == 0): tmpVal = tmpDefault + self.keystoreItems[BEAT_ES_PROTOCOL.replace('_ES_', '_KIBANA_' if (destination == 'Kibana') else '_ES_')] = tmpVal + + # SSL verification + tmpVal, tmpDefault = '', 'none' + while tmpVal not in ['none', 'full']: + tmpVal = AskForString("Enter {} SSL verification (none (for self-signed certificates) or full) [{}]".format(destination, tmpDefault), default=tmpDefault, acceptDefault=self.acceptDefaults).lower() + if (len(tmpVal) == 0): tmpVal = tmpDefault + self.keystoreItems[BEAT_ES_SSL_VERIFY.replace('_ES_', '_KIBANA_' if (destination == 'Kibana') else '_ES_')] = tmpVal + + # host + tmpVal, tmpDefault = '', '' + while (len(tmpVal) == 0): + tmpVal = AskForString("Enter {} connection host".format(destination), default=tmpDefault, acceptDefault=self.acceptDefaults) + self.keystoreItems[BEAT_ES_HOST.replace('_ES_', '_KIBANA_' if (destination == 'Kibana') else '_ES_')] = tmpVal + + if (BEAT_KIBANA_HOST in self.keystoreItems): + + # configure kibana dashboards + if YesOrNo("Configure {} Kibana dashboards?".format(self.beatName), default=True, acceptDefault=self.acceptDefaults): + self.keystoreItems[BEAT_KIBANA_DASHBOARDS_ENABLED] = 'true' + + # kibana dashboards + tmpVal, tmpDefault = '', self.defaultKibanaDashboardDir + while (len(tmpVal) == 0): + tmpVal = AskForString("Enter directory containing Kibana dashboards [{}]".format(tmpDefault), default=tmpDefault, acceptDefault=self.acceptDefaults) + if (len(tmpVal) == 0): tmpVal = tmpDefault + self.keystoreItems[BEAT_KIBANA_DASHBOARDS_PATH] = tmpVal + + # username + tmpVal, tmpDefault = '', '' + while (len(tmpVal) == 0): + tmpVal = AskForString("Enter HTTP/HTTPS server username", default=tmpDefault, acceptDefault=self.acceptDefaults) + self.keystoreItems[BEAT_HTTP_USERNAME] = tmpVal + + # password + tmpVal, tmpValConfirm = '', 'xxxx' + while (len(tmpVal) == 0) and (tmpVal != tmpValConfirm): + tmpVal = AskForPassword("Enter password for {}: ".format(self.keystoreItems[BEAT_HTTP_USERNAME])) + tmpValConfirm = AskForPassword("Enter password for {} (again): ".format(self.keystoreItems[BEAT_HTTP_USERNAME])) + if (tmpVal != tmpValConfirm): + eprint('Passwords do not match') + tmpVal, tmpValConfirm = '', 'xxxx' + self.keystoreItems[BEAT_HTTP_PASSWORD] = tmpVal + + # write values to keystore + for key, value in self.keystoreItems.items(): + err, out = self.run_beat_command(['keystore', 'add', key, '--stdin', '--force'], stdin=value) + if (err != 0): + raise Exception("Failed to add {} to {} keystore: {}".format(key, self.beatName, out)) + + # list keystore + err, out = self.run_beat_command(['keystore', 'list']) + if (err == 0): + eprint('Generated keystore for {}'.format(self.beatName)) + eprint('\n'.join(out)) + else: + raise Exception("Failed to enumerate keystore: {}".format(out)) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def beat_run(self): + if self.debug: + eprint("{}: {}".format(self.__class__.__name__, inspect.currentframe().f_code.co_name)) + + process = Popen(self.build_beat_command(['run', '-e']), stdout=PIPE) + while True: + output = process.stdout.readline() + if (len(output) == 0) and (process.poll() is not None): + break + if output: + print(output.decode().strip()) + else: + time.sleep(0.5) + process.poll() + +################################################################################################### +class LinuxBeatbox(Beatbox): + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def __init__(self, debug=False, ymlFileSpec=None, beatName=None): + if PY3: + super().__init__(debug=debug, ymlFileSpec=ymlFileSpec, beatName=beatName) + else: + super(LinuxBeatbox, self).__init__(debug=debug, ymlFileSpec=ymlFileSpec, beatName=beatName) + + if not Which(self.beatExe, debug=self.debug): + self.beatExe = self.beatExe.lower() if (self.beatExe is not None) else self.beatName.lower() + + self.beatInstallDir = "/usr/share/{}".format(self.beatName) + self.defaultKibanaDashboardDir = os.path.join(self.beatInstallDir, 'kibana') + self.keystorePath = os.path.join(os.path.join(os.path.dirname(os.path.abspath(self.ymlFileSpec)), 'data'), "{}.keystore".format(self.beatName)) + + self.distro = None + self.codename = None + self.release = None + + # determine the distro (e.g., ubuntu) and code name (e.g., bionic) if applicable + + # check /etc/os-release values first + if os.path.isfile('/etc/os-release'): + osInfo = dict() + + with open("/etc/os-release", 'r') as f: + for line in f: + try: + k, v = line.rstrip().split("=") + osInfo[k] = v.strip('"') + except: + pass + + if ('NAME' in osInfo) and (len(osInfo['NAME']) > 0): + distro = osInfo['NAME'].lower().split()[0] + + if ('VERSION_CODENAME' in osInfo) and (len(osInfo['VERSION_CODENAME']) > 0): + codename = osInfo['VERSION_CODENAME'].lower().split()[0] + + if ('VERSION_ID' in osInfo) and (len(osInfo['VERSION_ID']) > 0): + release = osInfo['VERSION_ID'].lower().split()[0] + + # try lsb_release next + if (self.distro is None): + err, out = self.run_process(['lsb_release', '-is'], stderr=False) + if (err == 0) and (len(out) > 0): + self.distro = out[0].lower() + + if (self.codename is None): + err, out = self.run_process(['lsb_release', '-cs'], stderr=False) + if (err == 0) and (len(out) > 0): + self.codename = out[0].lower() + + if (self.release is None): + err, out = self.run_process(['lsb_release', '-rs'], stderr=False) + if (err == 0) and (len(out) > 0): + self.release = out[0].lower() + + # try release-specific files + if (self.distro is None): + if os.path.isfile('/etc/centos-release'): + distroFile = '/etc/centos-release' + if os.path.isfile('/etc/redhat-release'): + distroFile = '/etc/redhat-release' + elif os.path.isfile('/etc/issue'): + distroFile = '/etc/issue' + else: + distroFile = None + if (distroFile is not None): + with open(distroFile, 'r') as f: + distroVals = f.read().lower().split() + distroNums = [x for x in distroVals if x[0].isdigit()] + self.distro = distroVals[0] + if (self.release is None) and (len(distroNums) > 0): + self.release = distroNums[0] + + if (self.distro is None): + self.distro = "linux" + + if self.debug: + eprint("distro: {}{}{}".format(self.distro, + " {}".format(self.codename) if self.codename else "", + " {}".format(self.release) if self.release else "")) + + if not self.codename: self.codename = self.distro + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def configure_beat_yml(self): + if PY3: + super().configure_beat_yml() + else: + super(LinuxBeatbox, self).configure_beat_yml() + + localModulePath = os.path.join(os.path.abspath(self.ymlFilePath), 'module') + installedModulePath = os.path.join(self.beatInstallDir, 'module') + if ((not os.path.exists(localModulePath)) and + (os.path.isdir(installedModulePath)) and + YesOrNo("Create symlink to module path {} as {}?".format(installedModulePath, localModulePath), default=True, acceptDefault=self.acceptDefaults)): + os.symlink(installedModulePath, localModulePath) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def configure_keystore(self): + if PY3: + super().configure_keystore() + else: + super(LinuxBeatbox, self).configure_keystore() + + pass + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def beat_run(self): + if PY3: + super().beat_run() + else: + super(LinuxBeatbox, self).beat_run() + + pass + +################################################################################################### +class WindowsBeatbox(Beatbox): + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def __init__(self, debug=False, ymlFileSpec=None, beatName=None): + if PY3: + super().__init__(debug=debug, ymlFileSpec=ymlFileSpec, beatName=beatName) + else: + super(WindowsBeatbox, self).__init__(debug=debug, ymlFileSpec=ymlFileSpec, beatName=beatName) + + if not Which(self.beatExe, debug=self.debug): + self.beatExe = self.beatExe + '.exe' if (self.beatExe is not None) else self.beatName + '.exe' + + self.beatInstallDir = os.path.abspath(self.ymlFilePath) + self.defaultKibanaDashboardDir = os.path.join(self.beatInstallDir, 'kibana') + self.keystorePath = os.path.join(os.path.dirname(os.path.abspath(self.ymlFileSpec)), "{}.keystore".format(self.beatName)) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def configure_beat_yml(self): + if PY3: + super().configure_beat_yml() + else: + super(WindowsBeatbox, self).configure_beat_yml() + + pass + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def configure_keystore(self): + if PY3: + super().configure_keystore() + else: + super(WindowsBeatbox, self).configure_keystore() + + pass + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def beat_run(self): + if PY3: + super().beat_run() + else: + super(WindowsBeatbox, self).beat_run() + + pass + +################################################################################################### +class MacBeatbox(Beatbox): + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def __init__(self, debug=False, ymlFileSpec=None, beatName=None): + if PY3: + super().__init__(debug=debug, ymlFileSpec=ymlFileSpec, beatName=beatName) + else: + super(MacBeatbox, self).__init__(debug=debug, ymlFileSpec=ymlFileSpec, beatName=beatName) + + if not Which(self.beatExe, debug=self.debug): + self.beatExe = self.beatExe.lower() if (self.beatExe is not None) else self.beatName.lower() + + self.beatInstallDir = "/Library/Application Support/elastic/{}".format(self.beatName) + self.defaultKibanaDashboardDir = os.path.join(self.beatInstallDir, 'kibana') + self.keystorePath = os.path.join(os.path.join(os.path.dirname(os.path.abspath(self.ymlFileSpec)), 'data'), "{}.keystore".format(self.beatName)) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def configure_beat_yml(self): + if PY3: + super().configure_beat_yml() + else: + super(MacBeatbox, self).configure_beat_yml() + + localModulePath = os.path.join(os.path.abspath(self.ymlFilePath), 'module') + installedModulePath = os.path.join(self.beatInstallDir, 'module') + if ((not os.path.exists(localModulePath)) and + (os.path.isdir(installedModulePath)) and + YesOrNo("Create symlink to module path {} as {}?".format(installedModulePath, localModulePath), default=True, acceptDefault=self.acceptDefaults)): + os.symlink(installedModulePath, localModulePath) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def configure_keystore(self): + if PY3: + super().configure_keystore() + else: + super(MacBeatbox, self).configure_keystore() + + pass + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def beat_run(self): + if PY3: + super().beat_run() + else: + super(MacBeatbox, self).beat_run() + + pass \ No newline at end of file diff --git a/Vagrant/resources/malcolm/scripts/beats/beat_config.py b/Vagrant/resources/malcolm/scripts/beats/beat_config.py new file mode 100755 index 0000000..84f9751 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/beat_config.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +from __future__ import print_function + +import argparse +import os +import platform +import sys +from beat_common import * + +################################################################################################### +ScriptName = os.path.basename(__file__) + +################################################################################################### +# main +def main(): + + # extract arguments from the command line + # print (sys.argv[1:]); + parser = argparse.ArgumentParser(description='Beat configure script', add_help=False, usage='{} '.format(ScriptName)) + parser.add_argument('-v', '--verbose', dest='debug', type=str2bool, nargs='?', const=True, default=False, help="Verbose output") + parser.add_argument('-b', '--beat', required=True, dest='beatName', metavar='', type=str, default=None, help='Beat name') + parser.add_argument('-c', '--config-file', required=False, dest='configFile', metavar='', type=str, default=None, help='Beat YML file to configure') + parser.add_argument('-d', '--defaults', dest='acceptDefault', type=str2bool, nargs='?', const=True, default=False, help="Accept defaults to prompts without user interaction") + + try: + parser.error = parser.exit + args = parser.parse_args() + except SystemExit: + parser.print_help() + exit(2) + + if args.debug: + eprint(os.path.join(ScriptPath, ScriptName)) + eprint("Arguments: {}".format(sys.argv[1:])) + eprint("Arguments: {}".format(args)) + else: + sys.tracebacklimit = 0 + + args.beatName = args.beatName.lower() + if not args.beatName.endswith('beat'): + args.beatName = args.beatName + 'beat' + + if (args.configFile is None): + args.configFile = args.beatName + '.yml' + + installerPlatform = platform.system() + if installerPlatform == PLATFORM_LINUX: + Beatbox = LinuxBeatbox(debug=args.debug, ymlFileSpec=args.configFile, beatName=args.beatName) + elif installerPlatform == PLATFORM_MAC: + Beatbox = MacBeatbox(debug=args.debug, ymlFileSpec=args.configFile, beatName=args.beatName) + elif installerPlatform == PLATFORM_WINDOWS: + Beatbox = WindowsBeatbox(debug=args.debug, ymlFileSpec=args.configFile, beatName=args.beatName) + + success = False + if hasattr(Beatbox, 'configure_beat_yml'): success = Beatbox.configure_beat_yml() + if hasattr(Beatbox, 'configure_keystore'): success = Beatbox.configure_keystore() + + return success + +if __name__ == '__main__': + main() diff --git a/Vagrant/resources/malcolm/scripts/beats/beat_run.py b/Vagrant/resources/malcolm/scripts/beats/beat_run.py new file mode 100755 index 0000000..a2c91c9 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/beat_run.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +from __future__ import print_function + +import argparse +import os +import platform +import sys +from beat_common import * + +################################################################################################### +ScriptName = os.path.basename(__file__) + +################################################################################################### +# main +def main(): + + # extract arguments from the command line + # print (sys.argv[1:]); + parser = argparse.ArgumentParser(description='Beat local execution script', add_help=False, usage='{} '.format(ScriptName)) + parser.add_argument('-v', '--verbose', dest='debug', type=str2bool, nargs='?', const=True, default=False, help="Verbose output") + parser.add_argument('-b', '--beat', required=True, dest='beatName', metavar='', type=str, default=None, help='Beat name') + parser.add_argument('-c', '--config-file', required=False, dest='configFile', metavar='', type=str, default=None, help='Beat YML config file') + + try: + parser.error = parser.exit + args = parser.parse_args() + except SystemExit: + parser.print_help() + exit(2) + + if args.debug: + eprint(os.path.join(ScriptPath, ScriptName)) + eprint("Arguments: {}".format(sys.argv[1:])) + eprint("Arguments: {}".format(args)) + else: + sys.tracebacklimit = 0 + + args.beatName = args.beatName.lower() + if not args.beatName.endswith('beat'): + args.beatName = args.beatName + 'beat' + + if (args.configFile is None): + args.configFile = args.beatName + '.yml' + + installerPlatform = platform.system() + if installerPlatform == PLATFORM_LINUX: + Beatbox = LinuxBeatbox(debug=args.debug, ymlFileSpec=args.configFile, beatName=args.beatName) + elif installerPlatform == PLATFORM_MAC: + Beatbox = MacBeatbox(debug=args.debug, ymlFileSpec=args.configFile, beatName=args.beatName) + elif installerPlatform == PLATFORM_WINDOWS: + Beatbox = WindowsBeatbox(debug=args.debug, ymlFileSpec=args.configFile, beatName=args.beatName) + + success = False + if hasattr(Beatbox, 'beat_run'): success = Beatbox.beat_run() + + return success + +if __name__ == '__main__': + main() diff --git a/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/Vagrantfile b/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/Vagrantfile new file mode 100644 index 0000000..49f3a2e --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/Vagrantfile @@ -0,0 +1,89 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +unless Vagrant.has_plugin?("vagrant-reload") + raise 'vagrant-reload plugin is not installed!' +end + +# hack: https://github.com/hashicorp/vagrant/issues/8878#issuecomment-345112810 +class VagrantPlugins::ProviderVirtualBox::Action::Network + def dhcp_server_matches_config?(dhcp_server, config) + true + end +end + +Vagrant.configure("2") do |config| + + config.vm.box = "bento/ubuntu-20.04" + + config.vm.network "private_network", type: "dhcp" + + config.vm.synced_folder ".", "/vagrant", disabled: true + + if Vagrant.has_plugin?("vagrant-vbguest") + config.vbguest.auto_update = false + end + + config.vm.provider "virtualbox" do |vb| + vb.customize ["modifyvm", :id, "--nictype1", "virtio" ] + vb.customize ["modifyvm", :id, "--nicpromisc1", "allow-all"] + vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] + vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] + vb.customize ["modifyvm", :id, "--memory", 2048] + vb.customize ["modifyvm", :id, "--cpus", 2] + vb.customize ["modifyvm", :id, "--vram", 32] + vb.customize ["modifyvm", :id, "--ioapic", "on"] + vb.customize ["modifyvm", :id, "--nestedpaging", "on"] + vb.customize ["modifyvm", :id, "--pae", "on"] + vb.customize ["modifyvm", :id, "--hwvirtex", "on"] + vb.customize ["modifyvm", :id, "--nested-hw-virt", "on"] + end + + config.vm.provision "shell", inline: <<-STEP1 + export DEBIAN_FRONTEND=noninteractive + export BEAT_VERSION=7.6.2 + apt-get update + apt-get install -y auditd gnupg2 curl ca-certificates libcap2-bin libpcap0.8 python3-minimal python-is-python3 + curl -sSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add - + echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" >> /etc/apt/sources.list + apt-get update + for BEAT in auditbeat filebeat packetbeat metricbeat; do + apt-get install -y $BEAT-oss=$BEAT_VERSION + done; + STEP1 + + config.vm.provision "file", source: "./audit.rules", destination: "/tmp/audit.rules" + + config.vm.provision "file", source: "../beat_run.py", destination: "/tmp/beat_run.py" + config.vm.provision "file", source: "../beat_config.py", destination: "/tmp/beat_config.py" + config.vm.provision "file", source: "../beat_common.py", destination: "/tmp/beat_common.py" + ["auditbeat","filebeat","packetbeat","metricbeat"].to_enum.with_index(1).each do |beat, i| + config.vm.provision "file", source: "./#{beat}.yml", destination: "/tmp/#{beat}.yml" + end + + config.vm.provision "shell", inline: <<-STEP2 + export DEBIAN_FRONTEND=noninteractive + + mv /tmp/beat*.py /usr/local/bin/ + chown root:root /usr/local/bin/beat*.py + chmod 755 /usr/local/bin/beat_config.py /usr/local/bin/beat_run.py + chmod 644 /usr/local/bin/beat_common.py + + filebeat modules enable system + + mv /tmp/audit.rules /etc/audit/rules.d/audit.rules + find /etc/audit -type d -exec chmod 750 "{}" \\; + find /etc/audit -type f -exec chmod 640 "{}" \\; + + for BEAT in auditbeat filebeat packetbeat metricbeat; do + mkdir -p /opt/$BEAT + mv /tmp/$BEAT.yml /opt/$BEAT/ + chown -R root:root /opt/$BEAT + chmod 700 /opt/$BEAT + chmod 600 /opt/$BEAT/* + done; + STEP2 + + config.vm.provision :reload + +end diff --git a/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/audit.rules b/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/audit.rules new file mode 100644 index 0000000..004f048 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/audit.rules @@ -0,0 +1,146 @@ +## First rule - delete all +-D + +## Increase the buffers to survive stress events. +## Make this bigger for busy systems +-b 8192 + +## This determine how long to wait in burst of events +--backlog_wait_time 0 + +## Set failure mode to syslog +-f 1 + +# exclusions + +-a always,exclude -F msgtype=AVC +-a always,exclude -F msgtype=CRYPTO_KEY_USER +-a always,exclude -F msgtype=CWD +-a always,exclude -F msgtype=EOE + +# commands + +-a always,exit -F path=/bin/fusermount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/bin/mount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/bin/pmount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/bin/pumount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/bin/su -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/bin/umount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/etc/audisp/audisp-remote.conf -F perm=wa -k config_file_change +-a always,exit -F path=/etc/audit/auditd.conf -F perm=wa -k config_file_change +-a always,exit -F path=/etc/default/grub -F perm=wa -k config_file_change +-a always,exit -F path=/etc/fstab -F perm=wa -k config_file_change +-a always,exit -F path=/etc/hosts.deny -F perm=wa -k config_file_change +-a always,exit -F path=/etc/login.defs -F perm=wa -k config_file_change +-a always,exit -F path=/etc/profile -F perm=wa -k config_file_change +-a always,exit -F path=/etc/sysctl.conf -F perm=wa -k config_file_change +-a always,exit -F path=/sbin/apparmor_parser -F perm=x -F auid>=1000 -F auid!=4294967295 -k MAC-policy +-a always,exit -F path=/sbin/pam_tally -F perm=wxa -F auid>=1000 -F auid!=4294967295 -k privileged-pam +-a always,exit -F path=/sbin/pam_tally2 -F perm=wxa -F auid>=1000 -F auid!=4294967295 -k privileged-pam +-a always,exit -F path=/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-passwd +-a always,exit -F path=/sbin/unix_update -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-unix-update +-a always,exit -F path=/usr/bin/bsd-write -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/chacl -F perm=x -F auid>=1000 -F auid!=4294967295 -k perm_chng +-a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-passwd +-a always,exit -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/chfn -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/chfn -F perm=x -F auid>=500 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-cron +-a always,exit -F path=/usr/bin/dotlock.mailutils -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/expiry -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/fusermount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-passwd +-a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/ntfs-3g -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-passwd +-a always,exit -F path=/usr/bin/pkexec -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/pmount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/pumount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/setfacl -F perm=x -F auid>=1000 -F auid!=4294967295 -k perm_chng +-a always,exit -F path=/usr/bin/ssh-agent -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-ssh +-a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/sudoedit -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/wall -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/dbus-1.0/dbus-daemon-launch-helper -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/eject/dmcrypt-get-device -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-ssh +-a always,exit -F path=/usr/lib/policykit-1/polkit-agent-helper-1 -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/x86_64-linux-gnu/utempter/utempter -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/xorg/Xorg.wrap -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/addgroup -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/adduser -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/exim4 -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/groupadd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/mount.cifs -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/netfilter-persistent -F perm=x -F auid>=1000 -F auid!=4294967295 -k nft_persistent_use +-a always,exit -F path=/usr/sbin/nft -F perm=x -F auid>=1000 -F auid!=4294967295 -k nft_cmd_use +-a always,exit -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-pam +-a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-postfix +-a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-postfix +-a always,exit -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/setsebool -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/useradd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/usermod -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-usermod +-a always,exit -F path=/usr/sbin/visudo -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged + +# privileged files + +-w /bin/kmod -p x -k modules +-w /etc/apparmor.d/ -p wa -k MAC-policy +-w /etc/apparmor/ -p wa -k MAC-policy +-w /etc/group -p wa -k identity +-w /etc/gshadow -p wa -k identity +-w /etc/hosts -p wa -k system-locale +-w /etc/issue -p wa -k system-locale +-w /etc/issue.net -p wa -k system-locale +-w /etc/localtime -p wa -k time-change +-w /etc/network -p wa -k system-locale +-w /etc/nftables.conf -p wa -k nft_config_file_change +-w /etc/opasswd -p wa -k usergroup_modification +-w /etc/passwd -p wa -k identity +-w /etc/security/opasswd -p wa -k identity +-w /etc/shadow -p wa -k identity +-w /etc/sudoers -p wa -k sudoers +-w /etc/sudoers.d/ -p wa -k sudoers +-w /sbin/insmod -p x -k modules +-w /sbin/modprobe -p x -k modules +-w /sbin/rmmod -p x -k modules +-w /var/log/btmp -p wa -k session +-w /var/log/faillog -p wa -k logins +-w /var/log/lastlog -p wa -k logins +-w /var/log/sudo.log -p wa -k sudoaction +-w /var/log/tallylog -p wa -k logins +-w /var/log/wtmp -p wa -k session +-w /var/run/faillock -p wa -k logins +-w /var/run/utmp -p wa -k session + +# syscalls + +-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change +-a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod +-a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod +-a always,exit -F arch=b64 -S clock_settime -k time-change +-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access +-a always,exit -F arch=b64 -S open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access +-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access +-a always,exit -F arch=b64 -S open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access +-a always,exit -F arch=b64 -S execve -C gid!=egid -F key=execpriv +-a always,exit -F arch=b64 -S execve -C uid!=euid -F key=execpriv +-a always,exit -F arch=b64 -S init_module -S delete_module -S create_module -S finit_module -k modules +-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=4294967295 -k mounts +-a always,exit -F arch=b64 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=1000 -F auid!=4294967295 -k perm_mod +-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -S rmdir -F auid>=1000 -F auid!=4294967295 -k delete +-a always,exit -F dir=/etc/audit/rules.d/ -F perm=wa -k config_file_change +-a always,exit -F dir=/etc/pam.d/ -F perm=wa -k config_file_change +-a always,exit -F dir=/etc/profile.d/ -F perm=wa -k config_file_change +-a always,exit -F dir=/etc/security/ -F perm=wa -k config_file_change +-a exit,always -F arch=b64 -S sethostname -S setdomainname -k system-locale + +# Make the configuration immutable -- reboot is required to change audit rules +-e 2 diff --git a/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/auditbeat.yml b/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/auditbeat.yml new file mode 100644 index 0000000..9c4c6a9 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/auditbeat.yml @@ -0,0 +1,154 @@ +# See https://www.elastic.co/guide/en/beats/auditbeat/current/auditbeat-reference-yml.html + +# ============================================================================== + +auditbeat.modules: + +#------------------------------- auditd Module ------------------------------- + +- module: auditd + socket_type: multicast + resolve_ids: true + failure_mode: log + backlog_limit: 16384 + rate_limit: 0 + include_raw_message: false + include_warnings: false + backpressure_strategy: auto + # audit_rule_files: [ '${path.config}/audit.rules.d/*.conf' ] + # no rules specified, auditd will run and manage rules + # see https://www.elastic.co/guide/en/beats/auditbeat/master/auditbeat-module-auditd.html + + # don't forward some things that are always going to be happening to cut down on noise + # and some other approved common stuff that would clutter the logs + processors: + - drop_event: + when: + and: + - equals: + auditd.message_type: 'syscall' + - equals: + auditd.summary.object.type: 'file' + - or: + - and: + - or: + - equals: + auditd.data.syscall: 'open' + - equals: + auditd.data.syscall: 'openat' + - regexp: + auditd.summary.object.primary: '^/(proc/|etc/localtime|usr/lib/x86_64-linux-gnu/gconv/gconv-modules\.cache)' + - or: + - equals: + auditd.summary.how: '/usr/share/auditbeat/bin/auditbeat' + - and: + - or: + - equals: + auditd.data.syscall: 'open' + - equals: + auditd.data.syscall: 'openat' + - not: + has_fields: ['auditd.summary.object.primary'] + - and: + - equals: + auditd.data.syscall: 'open' + - regexp: + auditd.summary.object.primary: '^/.+/__pycache__/$' + - equals: + auditd.summary.how: 'python3.8' + + +- module: file_integrity + paths: + - /bin + - /etc + - /sbin + - /usr/bin + - /usr/local/bin + - /usr/sbin + recursive: true + +# TODO: system module is apparently only available in the non-OSS basic license :-( + +# - module: system +# datasets: +# - host # General host information, e.g. uptime, IPs +# - user # User information +# - login # Logins/logouts +# - package # dpkg/rpm package manager logs +# period: 1m +# state.period: 12h +# user.detect_password_changes: true + +# - module: system +# datasets: +# - process # Started and stopped processes +# - socket # Opened and closed sockets +# period: 1s + +# # drop noise +# processors: +# - drop_event: +# when: +# or: +# - and: +# - equals: +# event.module: 'system' +# - equals: +# event.dataset: 'socket' +# - equals: +# destination.ip: '127.0.0.1' +# - equals: +# source.ip: '127.0.0.1' +# - and: +# - equals: +# event.module: 'system' +# - equals: +# event.dataset: 'socket' +# - equals: +# destination.ip: "${BEAT_ES_HOST}" +# - and: +# - equals: +# event.module: 'system' +# - equals: +# event.dataset: 'socket' +# - equals: +# destination.ip: "${BEAT_KIBANA_HOST}" +# - and: +# - equals: +# event.module: 'system' +# - equals: +# event.dataset: 'process' +# - or: +# - equals: +# process.executable: '/bin/sleep' +# - equals: +# process.executable: '/usr/bin/sort' +# - equals: +# process.executable: '/usr/bin/tail' +# - equals: +# process.executable: '/usr/bin/clear' +# - equals: +# process.executable: '/usr/bin/head' +# - equals: +# process.executable: '/bin/date' +# - equals: +# process.executable: '/bin/ls' +# - equals: +# process.executable: '/usr/bin/stat' +# - equals: +# process.executable: '/usr/bin/cut' +# - equals: +# process.executable: '/usr/bin/xargs' +# - equals: +# process.executable: '/usr/bin/tr' +# - equals: +# process.executable: '/bin/grep' +# - equals: +# process.executable: '/bin/sed' +# - equals: +# process.executable: '/bin/df' +# - equals: +# process.executable: '/usr/bin/du' +# - equals: +# process.executable: '/usr/bin/gawk' diff --git a/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/filebeat.yml b/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/filebeat.yml new file mode 100644 index 0000000..1260e49 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/filebeat.yml @@ -0,0 +1,14 @@ +# See https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-system.html +# https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-reference-yml.html + +# ============================================================================== + +filebeat.modules: + +#------------------------------- System Module ------------------------------- + +- module: system + syslog: + enabled: true + auth: + enabled: true diff --git a/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/metricbeat.yml b/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/metricbeat.yml new file mode 100644 index 0000000..bae2cf1 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/metricbeat.yml @@ -0,0 +1,44 @@ +# See https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-reference-yml.html + +# ============================================================================== + +metricbeat.config.modules: + path: ${path.config}/conf.d/*.yml + reload.period: 10s + reload.enabled: false + +metricbeat.max_start_delay: 10s + +metricbeat.modules: + +#------------------------------- System Module ------------------------------- + +- module: system + period: 30s + metricsets: + - cpu # CPU usage + - load # CPU load averages + - memory # Memory usage + - network # Network IO + - process # Per process metrics + - process_summary # Process summary + - uptime # System Uptime + - diskio # Disk IO + enabled: true + processes: ['.*'] + process.include_top_n: + enabled: true + by_cpu: 10 + by_memory: 10 + + cpu.metrics: ["percentages"] + core.metrics: ["percentages"] + +- module: system + period: 1m + metricsets: + - filesystem # File system usage for each mountpoint + - fsstat # File system summary metrics + processors: + - drop_event.when.regexp: + system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib|boot)($|/)' diff --git a/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/packetbeat.yml b/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/packetbeat.yml new file mode 100644 index 0000000..599ab72 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/linux_vm_example/packetbeat.yml @@ -0,0 +1,87 @@ +# See https://www.elastic.co/guide/en/beats/packetbeat/current/packetbeat-reference-yml.html + +# ============================================================================== + +#------------------------------- network device ------------------------------ + +packetbeat.interfaces.device: any +packetbeat.interfaces.type: pcap +packetbeat.interfaces.snaplen: 65535 + +#------------------------------- flows --------------------------------------- + +packetbeat.flows: + enabled: true + timeout: 30s + period: 10s + +#------------------------------- transaction protocols ----------------------- + +packetbeat.protocols: +- type: icmp + enabled: true + +- type: amqp + enabled: true + ports: [5672] + +- type: cassandra + enabled: true + ports: [9042] + +- type: dhcpv4 + enabled: true + ports: [67, 68] + +- type: dns + enabled: true + ports: [53] + include_authorities: true + include_additionals: true + +- type: http + enabled: true + ports: [80, 8080, 8000, 5000, 8002] + +- type: memcache + enabled: true + ports: [11211] + +- type: mysql + enabled: true + ports: [3306,3307] + +- type: pgsql + enabled: true + ports: [5432] + +- type: redis + enabled: true + ports: [6379] + +- type: thrift + enabled: true + ports: [9090] + +- type: mongodb + enabled: true + ports: [27017] + +- type: nfs + enabled: true + ports: [2049] + +- type: tls + enabled: true + ports: + - 443 # HTTPS + - 993 # IMAPS + - 995 # POP3S + - 5223 # XMPP over SSL + - 8883 # Secure MQTT + - 9243 # Elasticsearch + +#------------------------------- monitored processes ------------------------- + +packetbeat.procs.enabled: true +packetbeat.ignore_outgoing: false diff --git a/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/Malcolm_Windows_Forwarder_Download_and_Config.ps1 b/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/Malcolm_Windows_Forwarder_Download_and_Config.ps1 new file mode 100644 index 0000000..480ef9f --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/Malcolm_Windows_Forwarder_Download_and_Config.ps1 @@ -0,0 +1,188 @@ +# configure a windows host to forward auditbeat and winlogbeat logs +# to Malcolm (see https://github.com/idaholab/Malcolm/tree/master/scripts/beats) + +$beatversion = "7.6.2" + +################################################################################ +# Uninstall-Beat +# +# - Remove previous traces of this beat +# +function Uninstall-Beat { + param( [string]$beat ) + + try { + & "C:\\Program Files\\$beat\\uninstall-service-$beat.ps1" + } + catch { + } + remove-item "C:\\Program Files\\$beat" -Recurse -erroraction 'silentlycontinue'; + +} + +################################################################################ +# Download-Beat +# +# - Download $beat-$beatversion-windows-x86_64.zip from artifacts.elastic.co +# - Unzip to C:\Program Files\beat +# - Download sample config for $beat from idaholab/Malcolm to C:\Program Files\beat +# +function Download-Beat { + param( [string]$beat ) + + Invoke-WebRequest -Uri https://artifacts.elastic.co/downloads/beats/$beat/$beat-oss-$beatversion-windows-x86_64.zip -OutFile $beat-$beatversion-windows-x86_64.zip -UseBasicParsing + Expand-Archive -LiteralPath $beat-$beatversion-windows-x86_64.zip -DestinationPath 'C:\\Program Files' + Remove-Item $beat-$beatversion-windows-x86_64.zip + Rename-Item "C:\\Program Files\\$beat-$beatversion-windows-x86_64" "C:\\Program Files\\$beat" + ((Get-Content -path "C:\\Program Files\\$beat\\install-service-$beat.ps1" -Raw) -replace 'ProgramData','Program Files') | Set-Content -Path "C:\\Program Files\\$beat\\install-service-$beat.ps1" + ((Get-Content -path "C:\\Program Files\\$beat\\install-service-$beat.ps1" -Raw) -replace ' -path',' --path') | Set-Content -Path "C:\\Program Files\\$beat\\install-service-$beat.ps1" + + Invoke-WebRequest -UseBasicParsing -OutFile "C:\\Program Files\\$beat\\$beat.yml" -Uri https://raw.githubusercontent.com/idaholab/Malcolm/master/scripts/beats/windows_vm_example/$beat.yml + (Get-Content "C:\\Program Files\\$beat\\$beat.yml") | Set-Content "C:\\Program Files\\$beat\\$beat.yml" +} + +################################################################################ +# Connectivity boilerplate to add to the sample .yml files downloaded from +# idaholab/Malcolm +# +$beat_boilerplate = @' + +#================================ General ====================================== +fields_under_root: true + +#================================ Outputs ====================================== + +#-------------------------- Elasticsearch output ------------------------------- +output.elasticsearch: + enabled: true + hosts: ["${BEAT_ES_HOST}"] + protocol: "${BEAT_ES_PROTOCOL}" + username: "${BEAT_HTTP_USERNAME}" + password: "${BEAT_HTTP_PASSWORD}" + ssl.verification_mode: "${BEAT_ES_SSL_VERIFY}" + +setup.template.enabled: true +setup.template.overwrite: false +setup.template.settings: + index.number_of_shards: 1 + index.number_of_replicas: 0 + +#============================== Dashboards ===================================== +setup.dashboards.enabled: "${BEAT_KIBANA_DASHBOARDS_ENABLED}" +setup.dashboards.directory: "${BEAT_KIBANA_DASHBOARDS_PATH}" + +#============================== Kibana ===================================== +setup.kibana: + host: "${BEAT_KIBANA_HOST}" + protocol: "${BEAT_KIBANA_PROTOCOL}" + username: "${BEAT_HTTP_USERNAME}" + password: "${BEAT_HTTP_PASSWORD}" + ssl.verification_mode: "${BEAT_KIBANA_SSL_VERIFY}" + +#================================ Logging ====================================== +logging.metrics.enabled: false +'@ + +################################################################################ +# Run-Beat-Command +# +# - Run C:\Program Files\$beat\$beat.exe with correct defaults for config paths +# - specify beat, command array and (optionally) stdin string +# +function Run-Beat-Command { + param( [string]$beat, [array]$command, [string]$stdin) + + $exe = "C:\\Program Files\\$beat\\$beat.exe" + $exe_config = '--path.home', "C:\\Program Files\\$beat", '--path.config', "C:\\Program Files\\$beat", '--path.data', "C:\\Program Files\\$beat", '--path.logs', "C:\\Program Files\\$beat\\logs", '-c', "C:\\Program Files\\$beat\\$beat.yml", '-E', "keystore.path='C:\\Program Files\\$beat\\$beat.keystore'" + + if (!$stdin) { + & $exe $exe_config $command + } else { + $stdin.Trim() | & $exe $exe_config $command + } + +} + +################################################################################ +# Configure config .yml and keystore for beat in "C:\\Program Files\\$beat" +# +function Configure-Beat { + param( [string]$beat ) + + cd "C:\\Program Files\\$beat" + + Run-Beat-Command $beat @("keystore","create","--force") $null + + Add-Content -Path "C:\\Program Files\\$beat\\$beat.yml" -Value $beat_boilerplate + + do { + $es_host = Read-Host "Specify the Elasticsearch IP:port (e.g., 192.168.0.123:9200)" + $es_host = $es_host.Trim() + } while (!$es_host) + + do { + $kb_host = Read-Host "Specify the Kibana IP:port (e.g., 192.168.0.123:5601)" + $kb_host = $kb_host.Trim() + } while (!$kb_host) + + do { + $es_user = Read-Host "Specify the Elasticsearch/Kibana username" + $es_user = $es_user.Trim() + } while (!$es_user) + + do { + $es_pass = Read-Host "Specify the Elasticsearch/Kibana password" -AsSecureString + $es_pass_confirm = Read-Host "Specify the Elasticsearch/Kibana password (again)" -AsSecureString + $pwd1_text = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($es_pass)) + $pwd2_text = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($es_pass_confirm)) + } while ($pwd1_text -ne $pwd2_text) + $es_pass = ([Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($es_pass))).Trim() + + Run-Beat-Command $beat @("keystore","add","BEAT_ES_PROTOCOL","--stdin","--force") "https" + Run-Beat-Command $beat @("keystore","add","BEAT_KIBANA_PROTOCOL","--stdin","--force") "https" + Run-Beat-Command $beat @("keystore","add","BEAT_ES_SSL_VERIFY","--stdin","--force") "none" + Run-Beat-Command $beat @("keystore","add","BEAT_KIBANA_SSL_VERIFY","--stdin","--force") "none" + Run-Beat-Command $beat @("keystore","add","BEAT_KIBANA_DASHBOARDS_ENABLED","--stdin","--force") "true" + Run-Beat-Command $beat @("keystore","add","BEAT_KIBANA_DASHBOARDS_PATH","--stdin","--force") "C:\\Program Files\\$beat\\kibana" + Run-Beat-Command $beat @("keystore","add","BEAT_ES_HOST","--stdin","--force") "$es_host" + Run-Beat-Command $beat @("keystore","add","BEAT_KIBANA_HOST","--stdin","--force") "$kb_host" + Run-Beat-Command $beat @("keystore","add","BEAT_HTTP_USERNAME","--stdin","--force") "$es_user" + Run-Beat-Command $beat @("keystore","add","BEAT_HTTP_PASSWORD","--stdin","--force") "$es_pass" + + Run-Beat-Command $beat @("keystore","list") $null + + $confirmation = Read-Host "Install $beat as a system service (y/n)" + if ($confirmation -eq 'y') { + & "C:\\Program Files\\$beat\\install-service-$beat.ps1" + } +} + +################################################################################ +# Main +# +function Main { + param( [array]$beats) + $tempdir = New-TemporaryFile + remove-item $tempdir; + new-item -type directory -path $tempdir; + cd $tempdir; + + foreach ($beat in $beats) { + cd $tempdir; + + Uninstall-Beat $beat + Download-Beat $beat + Configure-Beat $beat + } + + cd $Env:Temp; + remove-item $tempdir -Recurse; +} + +################################################################################ +# +if ($args.count -eq 0) { + Main @("auditbeat","winlogbeat") +} else { + Main $args +} diff --git a/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/Vagrantfile b/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/Vagrantfile new file mode 100644 index 0000000..c04ab35 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/Vagrantfile @@ -0,0 +1,94 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +unless Vagrant.has_plugin?("vagrant-reload") + raise 'vagrant-reload plugin is not installed!' +end + +# hack: https://github.com/hashicorp/vagrant/issues/8878#issuecomment-345112810 +class VagrantPlugins::ProviderVirtualBox::Action::Network + def dhcp_server_matches_config?(dhcp_server, config) + true + end +end + +Vagrant.configure("2") do |config| + + config.vm.box = "StefanScherer/windows_10" + + config.vm.network "private_network", type: "dhcp" + + config.vm.synced_folder ".", "c:/vagrant_shared", disabled: true + + if Vagrant.has_plugin?("vagrant-vbguest") + config.vbguest.auto_update = false + end + + config.vm.communicator = "winrm" + + config.winrm.username = "vagrant" + config.winrm.password = "vagrant" + + config.vm.guest = :windows + config.windows.halt_timeout = 15 + + # port forward WinRM and RDP + config.vm.network :forwarded_port, guest: 3389, host: 3389, id: "rdp", auto_correct: true + config.vm.network :forwarded_port, guest: 5985, host: 5985, id: "winrm", auto_correct: true + + config.vm.provider :virtualbox do |vb, override| + vb.gui = true + vb.customize ["modifyvm", :id, "--memory", 4096] + vb.customize ["modifyvm", :id, "--cpus", 2] + vb.customize ["modifyvm", :id, "--vram", 256] + vb.customize ["modifyvm", :id, "--ioapic", "on"] + vb.customize ["modifyvm", :id, "--nestedpaging", "on"] + vb.customize ["modifyvm", :id, "--pae", "on"] + vb.customize ["modifyvm", :id, "--hwvirtex", "on"] + vb.customize ["modifyvm", :id, "--nested-hw-virt", "on"] + vb.customize ["modifyvm", :id, "--graphicscontroller", "vboxsvga"] + vb.customize ["modifyvm", :id, "--accelerate2dvideo", "on"] + vb.customize ["modifyvm", :id, "--accelerate3d", "on"] + vb.customize ["modifyvm", :id, "--clipboard", "bidirectional"] + vb.customize ["setextradata", "global", "GUI/SuppressMessages", "all" ] + vb.customize ["modifyvm", :id, "--usb", "on"] + vb.customize ["modifyvm", :id, "--usbehci", "on"] + vb.customize ["modifyvm", :id, "--audio", "pulse", "--audiocontroller", "hda"] + end + + config.vm.provision "shell", inline: <<-STEP1 + New-Item -Path 'HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows' -Name CloudContent | Out-Null + New-ItemProperty -Path 'HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\CloudContent' -Name 'DisableWindowsConsumerFeatures' -PropertyType DWORD -Value '1' -Force | Out-Null + New-Item -Path 'HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\' -Name 'Windows Search' | Out-Null + New-ItemProperty -Path 'HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Windows Search' -Name 'AllowCortana' -PropertyType DWORD -Value '0' -Force | Out-Null + Set-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\SQMClient\\Windows' CEIPEnable 0 | Out-Null + schtasks /Change /TN 'Microsoft\\Windows\\Customer Experience Improvement Program\\UsbCeip' /Disable | Out-Null + + taskkill /f /im OneDrive.exe + C:/Windows/SysWOW64/OneDriveSetup.exe /uninstall + STEP1 + config.vm.provision :reload + + config.vm.provision "shell", inline: <<-STEP2 + Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) + choco install -y chocolateygui 7zip.install conemu firefox hackfont putty.install python sublimetext3 sysinternals + + $beats = @("auditbeat","winlogbeat","packetbeat","metricbeat") + foreach ($beat in $beats) { + Invoke-WebRequest -Uri https://artifacts.elastic.co/downloads/beats/$beat/$beat-oss-7.6.2-windows-x86_64.zip -OutFile $beat-7.6.2-windows-x86_64.zip -UseBasicParsing + Expand-Archive -LiteralPath $beat-7.6.2-windows-x86_64.zip -DestinationPath 'C:\\Program Files' + Remove-Item $beat-7.6.2-windows-x86_64.zip + Rename-Item "C:\\Program Files\\$beat-7.6.2-windows-x86_64" "C:\\Program Files\\$beat" + ((Get-Content -path "C:\\Program Files\\$beat\\install-service-$beat.ps1" -Raw) -replace 'ProgramData','Program Files') | Set-Content -Path "C:\\Program Files\\$beat\\install-service-$beat.ps1" + ((Get-Content -path "C:\\Program Files\\$beat\\install-service-$beat.ps1" -Raw) -replace ' -path',' --path') | Set-Content -Path "C:\\Program Files\\$beat\\install-service-$beat.ps1" + } + STEP2 + + ["auditbeat","winlogbeat","packetbeat","metricbeat"].to_enum.with_index(1).each do |beat, i| + config.vm.provision "file", source: "./#{beat}.yml", destination: "C:\\Program Files\\#{beat}\\#{beat}.yml" + config.vm.provision "file", source: "../beat_run.py", destination: "C:\\Program Files\\#{beat}\\beat_run.py" + config.vm.provision "file", source: "../beat_config.py", destination: "C:\\Program Files\\#{beat}\\beat_config.py" + config.vm.provision "file", source: "../beat_common.py", destination: "C:\\Program Files\\#{beat}\\beat_common.py" + end +end + diff --git a/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/auditbeat.yml b/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/auditbeat.yml new file mode 100644 index 0000000..7581e24 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/auditbeat.yml @@ -0,0 +1,79 @@ +# See https://www.elastic.co/guide/en/beats/auditbeat/current/auditbeat-reference-yml.html + +# Thanks to "The Windows File Auditing Logging Cheat Sheet" at +# https://www.malwarearchaeology.com/cheat-sheets + +# ============================================================================== + +auditbeat.modules: + +#------------------------------- file_integrity Module ----------------------- + +- module: file_integrity + paths: + - C:/Program Files + - C:/Program Files/Internet Explorer + - C:/Program Files/Common Files + - C:/Program Files (x86) + - C:/Program Files (x86) /Common Files + - C:/ProgramData + - C:/Windows + - C:/Windows/System32 + - C:/Windows/System32/Drivers + - C:/Windows/System32/Drivers/etc + - C:/Windows/System32/Sysprep + - C:/Windows/System32/wbem + - C:/Windows/System32/WindowsPowerShell/v1.0 + - C:/Windows/Web + - C:/Windows/SysWOW64 + - C:/Windows/SysWOW64/Drivers + - C:/Windows/SysWOW64/wbem + - C:/Windows/SysWOW64/WindowsPowerShell/v1.0 + recursive: false + +- module: file_integrity + paths: + - C:/Boot + - C:/Perflogs + - C:/Users/All Users/Microsoft/Windows/Start Menu/Programs/Startup + - C:/Users/Public + # todo: wildcards handled? + # - C:/Users/*/AppData/Local + # - C:/Users/*/AppData/Local/Temp + # - C:/Users/*/AppData/LocalLow + # - C:/Users/*/AppData/Roaming + - C:/Windows/Scripts + - C:/Windows/System + - C:/Windows/System32/GroupPolicy/Machine/Scripts/Startup + - C:/Windows/System32/GroupPolicy/Machine/Scripts/Shutdown + - C:/Windows/System32/GroupPolicy/User/Scripts/Logon + - C:/Windows/System32/GroupPolicy/User/Scripts/Logoff + - C:/Windows/System32/Repl + recursive: true + + # examples for exclusions if things are noisy + # exclude_files: + # - '(?i)\.blf$' + # - '(?i)\.dat$' + # - '(?i)\.lnk$' + # - '(?i)\.log\w*$' + # - '(?i)\.mum$' + # - '(?i)\.regtrans-ms$' + # - '(?i)\.swp$' + # - '(?i)\.tmp$' + # - '(?i)beat\.(lock|yml(\.new)?|db)$' + # - '(?i)\\(assembly|CatRoot|CbsTemp|databases?|Deleted|diagnostics?|Log(File)?s?|Notifications?|Packages?|Prefetch|schemas?|servicing|Sessions?|SleepStudy|SoftwareDistribution|Tasks?|Temp|tracing|wbem|WinMetadata|WinSAT|WinSxS)\\?' + # - '(?i)cache' + +# TODO: system module is apparently only available in the non-OSS basic license :-( + +# - module: system +# datasets: +# - host # General host information, e.g. uptime, IPs +# period: 1m +# state.period: 1h + +# - module: system +# datasets: +# - process # Started and stopped processes +# period: 1s diff --git a/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/metricbeat.yml b/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/metricbeat.yml new file mode 100644 index 0000000..d0f0547 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/metricbeat.yml @@ -0,0 +1,65 @@ +# See https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-reference-yml.html + +# ============================================================================== + +metricbeat.config.modules: + path: ${path.config}/conf.d/*.yml + reload.period: 10s + reload.enabled: false + +metricbeat.max_start_delay: 10s + +metricbeat.modules: + +#------------------------------- System Module ------------------------------- + +- module: system + period: 30s + metricsets: + - cpu # CPU usage + - memory # Memory usage + - network # Network IO + - process # Per process metrics + - process_summary # Process summary + - uptime # System Uptime + - diskio # Disk IO + enabled: true + processes: ['.*'] + process.include_top_n: + enabled: true + by_cpu: 10 + by_memory: 10 + + cpu.metrics: ["percentages"] + core.metrics: ["percentages"] + +- module: system + period: 1m + metricsets: + - filesystem # File system usage for each mountpoint + - fsstat # File system summary metrics + enabled: true + +- module: windows + metricsets: ["perfmon"] + enabled: true + period: 10s + perfmon.ignore_non_existent_counters: false + perfmon.group_measurements_by_instance: true + perfmon.queries: + - object: "Process" + instance: ["svchost*", "conhost*"] + counters: + - name: "% Processor Time" + field: time.processor.pct + format: "float" + perfmon.counters: + - instance_label: processor.name + instance_name: total + measurement_label: processor.time.total.pct + query: '\Processor Information(_Total)\% Processor Time' + +- module: windows + metricsets: ["service"] + enabled: true + period: 60s \ No newline at end of file diff --git a/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/packetbeat.yml b/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/packetbeat.yml new file mode 100644 index 0000000..9d24474 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/packetbeat.yml @@ -0,0 +1,90 @@ +# See https://www.elastic.co/guide/en/beats/packetbeat/current/packetbeat-reference-yml.html + +# ============================================================================== + +# packetbeat.exe requires Npcap (https://nmap.org/npcap/#download) to be installed + + +#------------------------------- network device ------------------------------ + +packetbeat.interfaces.device: 0 +packetbeat.interfaces.type: pcap +packetbeat.interfaces.snaplen: 65535 + +#------------------------------- flows --------------------------------------- + +packetbeat.flows: + enabled: true + timeout: 30s + period: 10s + +#------------------------------- transaction protocols ----------------------- + +packetbeat.protocols: +- type: icmp + enabled: true + +- type: amqp + enabled: true + ports: [5672] + +- type: cassandra + enabled: true + ports: [9042] + +- type: dhcpv4 + enabled: true + ports: [67, 68] + +- type: dns + enabled: true + ports: [53] + include_authorities: true + include_additionals: true + +- type: http + enabled: true + ports: [80, 8080, 8000, 5000, 8002] + +- type: memcache + enabled: true + ports: [11211] + +- type: mysql + enabled: true + ports: [3306,3307] + +- type: pgsql + enabled: true + ports: [5432] + +- type: redis + enabled: true + ports: [6379] + +- type: thrift + enabled: true + ports: [9090] + +- type: mongodb + enabled: true + ports: [27017] + +- type: nfs + enabled: true + ports: [2049] + +- type: tls + enabled: true + ports: + - 443 # HTTPS + - 993 # IMAPS + - 995 # POP3S + - 5223 # XMPP over SSL + - 8883 # Secure MQTT + - 9243 # Elasticsearch + +#------------------------------- monitored processes ------------------------- + +packetbeat.procs.enabled: true +packetbeat.ignore_outgoing: false diff --git a/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/winlogbeat.yml b/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/winlogbeat.yml new file mode 100644 index 0000000..c58d668 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/beats/windows_vm_example/winlogbeat.yml @@ -0,0 +1,43 @@ +# see https://www.elastic.co/guide/en/beats/winlogbeat/master/winlogbeat-reference-yml.html + +# also see some of these excellent cheat sheets for Windows logging: +# https://www.malwarearchaeology.com/cheat-sheets + +# ============================================================================== + +#------------------------------- event logs ---------------------------------- + +winlogbeat.event_logs: + - name: AMSI/Operational + - name: Application + ignore_older: 72h + - name: ForwardedEvents + tags: ["forwarded"] + - name: Internet Explorer + - name: Microsoft-Windows-LSA/Operational + - name: Microsoft-Windows-PowerShell/Admin + - name: Microsoft-Windows-PowerShell/Operational + - name: Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational + - name: Microsoft-Windows-Windows Defender/Operational + - name: Microsoft-Windows-Windows Defender/WHC + - name: Microsoft-Windows-Windows Firewall With Advanced Security/Firewall + - name: Microsoft-Windows-WMI-Activity/Operational + - name: OpenSSH/Admin + - name: OpenSSH/Operational + + # TODO: the Security and Sysmon modules are apparently only available in the non-OSS basic license :-( + + # - name: Security + # processors: + # - script: + # lang: javascript + # id: security + # file: ${path.home}/module/security/config/winlogbeat-security.js + # - name: System + # - name: Windows PowerShell + # - name: Microsoft-Windows-Sysmon/Operational + # processors: + # - script: + # lang: javascript + # id: sysmon + # file: ${path.home}/module/sysmon/config/winlogbeat-sysmon.js diff --git a/Vagrant/resources/malcolm/scripts/build.sh b/Vagrant/resources/malcolm/scripts/build.sh new file mode 100755 index 0000000..e89fb12 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/build.sh @@ -0,0 +1,119 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +if [ -z "$BASH_VERSION" ]; then + echo "Wrong interpreter, please run \"$0\" with bash" + exit 1 +fi + +[[ "$(uname -s)" = 'Darwin' ]] && REALPATH=grealpath || REALPATH=realpath +[[ "$(uname -s)" = 'Darwin' ]] && DIRNAME=gdirname || DIRNAME=dirname +[[ "$(uname -s)" = 'Darwin' ]] && GREP=ggrep || GREP=grep +if ! (type "$REALPATH" && type "$DIRNAME" && type "$GREP") > /dev/null; then + echo "$(basename "${BASH_SOURCE[0]}") requires $REALPATH and $DIRNAME and $GREP" + exit 1 +fi + +if docker-compose version >/dev/null 2>&1; then + DOCKER_COMPOSE_BIN=docker-compose + DOCKER_BIN=docker +elif $GREP -q Microsoft /proc/version && docker-compose.exe version >/dev/null 2>&1; then + DOCKER_COMPOSE_BIN=docker-compose.exe + DOCKER_BIN=docker.exe +fi + +if [ "$1" ]; then + CONFIG_FILE="$1" + DOCKER_COMPOSE_COMMAND="$DOCKER_COMPOSE_BIN -f "$CONFIG_FILE"" + shift # use remainder of arguments for services +else + CONFIG_FILE="docker-compose.yml" + DOCKER_COMPOSE_COMMAND="$DOCKER_COMPOSE_BIN" +fi + +function filesize_in_image() { + FILESPEC="$2" + IMAGE="$($GREP -P "^\s+image:.*$1" docker-compose-standalone.yml | awk '{print $2}')" + $DOCKER_BIN run --rm --entrypoint /bin/sh "$IMAGE" -c "stat --printf='%s' \"$FILESPEC\" 2>/dev/null || stat -c '%s' \"$FILESPEC\" 2>/dev/null" +} + +# force-navigate to Malcolm base directory (parent of scripts/ directory) +SCRIPT_PATH="$($DIRNAME $($REALPATH -e "${BASH_SOURCE[0]}"))" +pushd "$SCRIPT_PATH/.." >/dev/null 2>&1 + +# make sure docker is installed, at this point it's required +if ! $DOCKER_BIN info >/dev/null 2>&1 ; then + echo "Docker is not installed, or not runable as this user." + echo "Install docker (install.py may help with that) and try again later." + exit 1 +fi + +# make sure docker-compose is installed, at this point it's required +if ! $DOCKER_COMPOSE_BIN version >/dev/null 2>&1 ; then + echo "Docker Compose is not installed, or not runable as this user." + echo "Install docker-compose (install.py may help with that) and try again later." + exit 1 +fi + +unset CONFIRMATION +read -p "Malcolm Docker images will now be built and/or pulled, force full clean (non-cached) rebuild [y/N]? " CONFIRMATION +CONFIRMATION=${CONFIRMATION:-N} + +BUILD_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" +MALCOLM_VERSION="$($GREP -P "^\s+image:\s*malcolm" "$CONFIG_FILE" | awk '{print $2}' | cut -d':' -f2 | uniq -c | sort -nr | awk '{print $2}' | head -n 1)" +VCS_REVISION="$(git rev-parse --short HEAD 2>/dev/null || echo unknown)" + +[[ ! -f ./auth.env ]] && touch ./auth.env + +# MaxMind now requires a (free) license key to download the free versions of their GeoIP databases. +if [ ${#MAXMIND_GEOIP_DB_LICENSE_KEY} -gt 1 ]; then + # prefer a local environment variable + MAXMIND_API_KEY="$MAXMIND_GEOIP_DB_LICENSE_KEY" +else + # but default to what they have saved in the docker-compose YML file + MAXMIND_API_KEY="$($GREP -P "^\s*MAXMIND_GEOIP_DB_LICENSE_KEY\s*:\s" "$CONFIG_FILE" | cut -d: -f2 | tr -d '[:space:]'\'\" | head -n 1)" +fi + +# for some debug branches this may be used to download artifacts from github +if [ ${#GITHUB_OAUTH_TOKEN} -gt 1 ]; then + # prefer a local environment variable + GITHUB_TOKEN="$GITHUB_OAUTH_TOKEN" +else + # nope + GITHUB_TOKEN="0" +fi + +if [[ $CONFIRMATION =~ ^[Yy] ]]; then + $DOCKER_COMPOSE_COMMAND build --force-rm --no-cache --build-arg MAXMIND_GEOIP_DB_LICENSE_KEY="$MAXMIND_API_KEY" --build-arg GITHUB_OAUTH_TOKEN="$GITHUB_TOKEN" --build-arg BUILD_DATE="$BUILD_DATE" --build-arg MALCOLM_VERSION="$MALCOLM_VERSION" --build-arg VCS_REVISION="$VCS_REVISION" "$@" +else + $DOCKER_COMPOSE_COMMAND build --build-arg MAXMIND_GEOIP_DB_LICENSE_KEY="$MAXMIND_API_KEY" --build-arg GITHUB_OAUTH_TOKEN="$GITHUB_TOKEN" --build-arg BUILD_DATE="$BUILD_DATE" --build-arg MALCOLM_VERSION="$MALCOLM_VERSION" --build-arg VCS_REVISION="$VCS_REVISION" "$@" +fi + +# we're going to do some validation that some things got pulled/built correctly +FILES_IN_IMAGES=( + "/usr/share/filebeat/filebeat.yml;filebeat-oss" + "/var/lib/clamav/main.cvd;file-monitor" + "/var/lib/clamav/daily.cvd;file-monitor" + "/var/lib/clamav/bytecode.cvd;file-monitor" + "/var/www/upload/js/jquery.fileupload.js;file-upload" + "/opt/freq_server/freq_server.py;freq" + "/var/www/htadmin/index.php;htadmin" + "/usr/share/logstash/config/oui-logstash.txt;logstash" + "/etc/ip_protocol_numbers.yaml;logstash" + "/etc/ja3.yaml;logstash" + "/data/moloch/etc/GeoLite2-ASN.mmdb;arkime" + "/data/moloch/etc/GeoLite2-Country.mmdb;arkime" + "/data/moloch/etc/ipv4-address-space.csv;arkime" + "/data/moloch/etc/oui.txt;arkime" + "/data/moloch/bin/moloch-capture;arkime" + "/var/www/html/list.min.js;name-map-ui" + "/var/www/html/jquery.min.js;name-map-ui" + "/opt/zeek/bin/zeek;zeek" + "/opt/spicy/lib/libspicy.so;zeek" +) +for i in ${FILES_IN_IMAGES[@]}; do + FILE="$(echo "$i" | cut -d';' -f1)" + IMAGE="$(echo "$i" | cut -d';' -f2)" + (( "$(filesize_in_image $IMAGE "$FILE")" > 0 )) || { echo "Failed to create \"$FILE\" in \"$IMAGE\""; exit 1; } +done diff --git a/Vagrant/resources/malcolm/scripts/control.py b/Vagrant/resources/malcolm/scripts/control.py new file mode 100755 index 0000000..3fc15b7 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/control.py @@ -0,0 +1,886 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +import argparse +import errno +import getpass +import glob +import json +import os +import platform +import re +import shutil +import stat +import sys + +from malcolm_common import * +from collections import defaultdict, namedtuple +from subprocess import (PIPE, STDOUT, Popen, check_call, CalledProcessError) +try: + from contextlib import nullcontext +except ImportError: + class nullcontext(object): + def __init__(self, enter_result=None): + self.enter_result = enter_result + def __enter__(self): + return self.enter_result + def __exit__(self, *args): + pass + +################################################################################################### +ScriptName = os.path.basename(__file__) + +pyPlatform = platform.system() + +args = None +dockerBin = None +dockerComposeBin = None +opensslBin = None + +################################################################################################### +try: + from colorama import init as ColoramaInit, Fore, Back, Style + ColoramaInit() + coloramaImported = True +except: + coloramaImported = False + +################################################################################################### +# perform a service-keystore operation in a Docker container +# +# service - the service in the docker-compose YML file +# keystore_args - arguments to pass to the service-keystore binary in the container +# run_process_kwargs - keyword arguments to pass to run_process +# +# returns True (success) or False (failure) +# +def keystore_op(service, dropPriv=False, *keystore_args, **run_process_kwargs): + global args + global dockerBin + global dockerComposeBin + + err = -1 + results = [] + + # the elastic containers all follow the same naming pattern for these executables + keystoreBinProc = f"/usr/share/{service}/bin/{service}-keystore" + + # if we're using docker-uid-gid-setup.sh to drop privileges as we spin up a container + dockerUidGuidSetup = "/usr/local/bin/docker-uid-gid-setup.sh" + + # docker-compose use local temporary path + osEnv = os.environ.copy() + osEnv['TMPDIR'] = MalcolmTmpPath + + # open up the docker-compose file and "grep" for the line where the keystore file + # is bind-mounted into the service container (once and only once). the bind + # mount needs to exist in the YML file and the local directory containing the + # keystore file needs to exist (although the file itself might not yet). + # also get PUID and PGID variables from the docker-compose file. + localKeystore = None + localKeystoreDir = None + localKeystorePreExists = False + volumeKeystore = None + volumeKeystoreDir = None + uidGidDict = defaultdict(str) + + try: + + composeFileLines = list() + uidGidDict['PUID'] = f'{os.getuid()}' if (pyPlatform != PLATFORM_WINDOWS) else '1000' + uidGidDict['PGID'] = f'{os.getgid()}' if (pyPlatform != PLATFORM_WINDOWS) else '1000' + with open(args.composeFile, 'r') as f: + allLines = f.readlines() + composeFileLines = [x for x in allLines if re.search(fr'-.*?{service}.keystore\s*:.*{service}.keystore', x)] + uidGidDict.update(dict(x.split(':') for x in [''.join(x.split()) for x in allLines if re.search(fr'^\s*P[UG]ID\s*:\s*\d+\s*$', x)])) + + if (len(composeFileLines) == 1) and (len(composeFileLines[0]) > 0): + matches = re.search(fr'-\s*(?P.*?{service}.keystore)\s*:\s*(?P.*?{service}.keystore)', composeFileLines[0]) + if matches: + localKeystore = os.path.realpath(matches.group('localKeystore')) + localKeystoreDir = os.path.dirname(localKeystore) + volumeKeystore = matches.group('volumeKeystore') + volumeKeystoreDir = os.path.dirname(volumeKeystore) + + if (localKeystore is not None) and (volumeKeystore is not None) and os.path.isdir(localKeystoreDir): + localKeystorePreExists = os.path.isfile(localKeystore) + + dockerCmd = None + + # determine if Malcolm is running; if so, we'll use docker-compose exec, other wise we'll use docker run + err, out = run_process([dockerComposeBin, '-f', args.composeFile, 'ps', '-q', service], env=osEnv, debug=args.debug) + out[:] = [x for x in out if x] + if (err == 0) and (len(out) > 0): + # Malcolm is running, we can use an existing container + + # assemble the service-keystore command + dockerCmd = [dockerComposeBin, 'exec', + + # if using stdin, indicate the container is "interactive", else noop (duplicate --rm) + '-T' if ('stdin' in run_process_kwargs and run_process_kwargs['stdin']) else '', + + # execute as UID:GID in docker-compose.yml file + '-u', f'{uidGidDict["PUID"]}:{uidGidDict["PGID"]}' + + # the work directory in the container is the directory to contain the keystore file + '-w', volumeKeystoreDir, + + # the service name + service, + + # the executable filespec + keystoreBinProc] + + else: + # Malcolm isn't running, do 'docker run' to spin up a temporary container to run the ocmmand + + # "grep" the docker image out of the service's image: value from the docker-compose YML file + serviceImage = None + composeFileLines = list() + with open(args.composeFile, 'r') as f: + composeFileLines = [x for x in f.readlines() if f'image: malcolmnetsec/{service}' in x] + if (len(composeFileLines) > 0) and (len(composeFileLines[0]) > 0): + imageLineValues = composeFileLines[0].split() + if (len(imageLineValues) > 1): + serviceImage = imageLineValues[1] + + if serviceImage is not None: + # assemble the service-keystore command + dockerCmd = [dockerBin, 'run', + + # remove the container when complete + '--rm', + + # if using stdin, indicate the container is "interactive", else noop + '-i' if ('stdin' in run_process_kwargs and run_process_kwargs['stdin']) else '', + + # if dropPriv, dockerUidGuidSetup will take care of dropping privileges for the correct UID/GID + # if NOT dropPriv, enter with the keystore executable directly + '--entrypoint', dockerUidGuidSetup if dropPriv else keystoreBinProc, + '--env', f'DEFAULT_UID={uidGidDict["PUID"]}', + '--env', f'DEFAULT_GID={uidGidDict["PGID"]}', + '--env', f'PUSER_CHOWN={volumeKeystoreDir}', + + # rw bind mount the local directory to contain the keystore file to the container directory + '-v', f'{localKeystoreDir}:{volumeKeystoreDir}:rw', + + # the work directory in the container is the directory to contain the keystore file + '-w', volumeKeystoreDir, + + # if dropPriv, execute as root, as docker-uid-gid-setup.sh will drop privileges for us + # if NOT dropPriv, execute as UID:GID in docker-compose.yml file + '-u', 'root' if dropPriv else f'{uidGidDict["PUID"]}:{uidGidDict["PGID"]}', + + # the service image name grepped from the YML file + serviceImage] + + if dropPriv: + # the keystore executable filespec (as we used dockerUidGuidSetup as the entrypoint) + dockerCmd.append(keystoreBinProc) + + else: + raise Exception(f'Unable to identify docker image for {service} in {args.composeFile}') + + if (dockerCmd is not None): + + # append whatever other arguments to pass to the executable filespec + if keystore_args: + dockerCmd.extend(list(keystore_args)) + + dockerCmd[:] = [x for x in dockerCmd if x] + + # execute the command, passing through run_process_kwargs to run_process as expanded keyword arguments + err, results = run_process(dockerCmd, env=osEnv, debug=args.debug, **run_process_kwargs) + if (err != 0) or (not os.path.isfile(localKeystore)): + raise Exception(f'Error processing command {service} keystore: {results}') + + else: + raise Exception(f'Unable formulate keystore command for {service} in {args.composeFile}') + + else: + raise Exception(f'Unable to identify a unique keystore file bind mount for {service} in {args.composeFile}') + + except Exception as e: + if (err == 0): + err = -1 + + # don't be so whiny if the "create" failed just because it already existed or a 'remove' failed on a nonexistant item + if ((not args.debug) and + list(keystore_args) and + (len(list(keystore_args)) > 0) and + (list(keystore_args)[0].lower() in ('create', 'remove')) and + localKeystorePreExists): + pass + else: + eprint(e) + + # success = (error == 0) + return (err == 0), results + +################################################################################################### +def status(): + global args + global dockerComposeBin + + # docker-compose use local temporary path + osEnv = os.environ.copy() + osEnv['TMPDIR'] = MalcolmTmpPath + + err, out = run_process([dockerComposeBin, '-f', args.composeFile, 'ps'], env=osEnv, debug=args.debug) + if (err == 0): + print("\n".join(out)) + else: + eprint("Failed to display Malcolm status\n") + eprint("\n".join(out)) + exit(err) + +################################################################################################### +def logs(): + global args + global dockerBin + global dockerComposeBin + + # noisy logs (a lot of it is NGINX logs from health checks) + ignoreRegEx = re.compile(r""" + .+( + deprecated + | DEPRECATION + | eshealth + | remov(ed|ing)\s+(old\s+file|dead\s+symlink|empty\s+directory) + | update_mapping + | throttling\s+index + | executing\s+attempt_(transition|set_replica_count)\s+for + | but\s+there\s+are\s+no\s+living\s+connections + | saved_objects + | /kibana/(api/ui_metric/report|internal/search/es) + | retry\.go.+(send\s+unwait|done$) + | scheduling\s+job\s*id.+opendistro-ism + | descheduling\s+job\s*id + | updating\s+number_of_replicas + | running\s+full\s+sweep + | (async|output)\.go.+(reset\s+by\s+peer|Connecting\s+to\s+backoff|backoff.+established$) + | \b(d|es)?stats\.json + | /_ns_/nstest\.html + | esindices/list + | _cat/indices + | use_field_mapping + | reaped\s+unknown\s+pid + | Successfully\s+handled\s+GET\s+request\s+for\s+'/' + | GET\s+/(_cat/health|api/status|sessions2-).+HTTP/[\d\.].+\b200\b + | POST\s+/(d?stats/(d?stat|_doc|_search)|_bulk|fields/(field/)?_search).+HTTP/[\d\.].+\b20[01]\b + | POST\s+HTTP/[\d\.].+\b200\b + | POST\s+/server/php/\s+HTTP/\d+\.\d+"\s+\d+\s+\d+.*:8443/ + | curl.+localhost.+GET\s+/api/status\s+200 + | "GET\s+/\s+HTTP/1\.\d+"\s+200\s+- + | \b1.+GET\s+/\s+.+401.+curl + ) + """, re.VERBOSE | re.IGNORECASE) + + serviceRegEx = re.compile(r'^(?P.+?\|)\s*(?P.*)$') + + # increase COMPOSE_HTTP_TIMEOUT to be ridiculously large so docker-compose never times out the TTY doing debug output + osEnv = os.environ.copy() + osEnv['COMPOSE_HTTP_TIMEOUT'] = '100000000' + # docker-compose use local temporary path + osEnv['TMPDIR'] = MalcolmTmpPath + + err, out = run_process([dockerComposeBin, '-f', args.composeFile, 'ps'], env=osEnv, debug=args.debug) + print("\n".join(out)) + + process = Popen([dockerComposeBin, '-f', args.composeFile, 'logs', '-f'], env=osEnv, stdout=PIPE) + while True: + output = process.stdout.readline() + if (len(output) == 0) and (process.poll() is not None): + break + if output: + outputStr = output.decode().strip() + outputStrEscaped = EscapeAnsi(outputStr) + if ignoreRegEx.match(outputStrEscaped): + pass ### print(f'!!!!!!!: {outputStr}') + else: + serviceMatch = serviceRegEx.search(outputStrEscaped) + serviceMatchFmt = serviceRegEx.search(outputStr) if coloramaImported else serviceMatch + serviceStr = serviceMatchFmt.group('service') if (serviceMatchFmt is not None) else '' + messageStr = serviceMatch.group('message') if (serviceMatch is not None) else '' + outputJson = LoadStrIfJson(messageStr) + if (outputJson is not None): + + # if there's a timestamp in the JSON, move it outside of the JSON to the beginning of the log string + timeKey = None + if 'time' in outputJson: + timeKey = 'time' + elif 'timestamp' in outputJson: + timeKey = 'timestamp' + elif '@timestamp' in outputJson: + timeKey = '@timestamp' + timeStr = '' + if timeKey is not None: + timeStr = f"{outputJson[timeKey]} " + outputJson.pop(timeKey, None) + + if ('job.schedule' in outputJson) and ('job.position' in outputJson) and ('job.command' in outputJson): + + # this is a status output line from supercronic, let's format and clean it up so it fits in better with the rest of the logs + + # remove some clutter for the display + for noisyKey in ['level', 'channel', 'iteration', 'job.position', 'job.schedule']: + outputJson.pop(noisyKey, None) + + # if it's just command and message, format those NOT as JSON + jobCmd = outputJson['job.command'] + jobStatus = outputJson['msg'] + if (len(outputJson.keys()) == 2) and ('job.command' in outputJson) and ('msg' in outputJson): + # if it's the most common status (starting or job succeeded) then don't print unless debug mode + if args.debug or ((jobStatus != 'starting') and (jobStatus != 'job succeeded')): + print(f"{serviceStr}{Style.RESET_ALL if coloramaImported else ''} {timeStr} {jobCmd}: {jobStatus}") + else: + pass + + else: + # standardize and print the JSON output + print(f"{serviceStr}{Style.RESET_ALL if coloramaImported else ''} {timeStr}{json.dumps(outputJson)}") + + elif ('kibana' in serviceStr): + # this is an output line from kibana, let's clean it up a bit: remove some clutter for the display + for noisyKey in ['type', 'tags', 'pid', 'method', 'prevState', 'prevMsg']: + outputJson.pop(noisyKey, None) + + # standardize and print the JSON output + print(f"{serviceStr}{Style.RESET_ALL if coloramaImported else ''} {timeStr}{json.dumps(outputJson)}") + + else: + # standardize and print the JSON output + print(f"{serviceStr}{Style.RESET_ALL if coloramaImported else ''} {timeStr}{json.dumps(outputJson)}") + + else: + # just a regular non-JSON string, print as-is + print(outputStr if coloramaImported else outputStrEscaped) + + else: + time.sleep(0.5) + process.poll() + +################################################################################################### +def stop(wipe=False): + global args + global dockerBin + global dockerComposeBin + + # docker-compose use local temporary path + osEnv = os.environ.copy() + osEnv['TMPDIR'] = MalcolmTmpPath + + if wipe: + # attempt to DELETE _template/zeek_template in Elasticsearch + err, out = run_process([dockerComposeBin, '-f', args.composeFile, 'exec', 'arkime', 'bash', '-c', 'curl -fs --output /dev/null -H"Content-Type: application/json" -XDELETE "http://$ES_HOST:$ES_PORT/_template/zeek_template"'], env=osEnv, debug=args.debug) + + # if stop.sh is being called with wipe.sh (after the docker-compose file) + # then also remove named and anonymous volumes (not external volumes, of course) + err, out = run_process([dockerComposeBin, '-f', args.composeFile, 'down', '--volumes'][:5 if wipe else -1], env=osEnv, debug=args.debug) + if (err == 0): + eprint("Stopped Malcolm\n") + else: + eprint("Malcolm failed to stop\n") + eprint("\n".join(out)) + exit(err) + + if wipe: + # delete elasticsearch database + shutil.rmtree(os.path.join(MalcolmPath, 'elasticsearch/nodes'), ignore_errors=True) + + # delete data files (backups, zeek logs, arkime logs, PCAP files, captured PCAP files) + for dataDir in ['elasticsearch-backup', 'zeek-logs', 'moloch-logs', 'pcap', 'moloch-raw']: + for root, dirnames, filenames in os.walk(os.path.join(MalcolmPath, dataDir), topdown=True, onerror=None): + for file in filenames: + fileSpec = os.path.join(root, file) + if (os.path.isfile(fileSpec) or os.path.islink(fileSpec)) and (not file.startswith('.git')): + try: + os.remove(fileSpec) + except: + pass + + # clean up empty directories + for dataDir in [os.path.join('elasticsearch-backup', 'logs'), os.path.join('zeek-logs', 'processed'), os.path.join('zeek-logs', 'current')]: + RemoveEmptyFolders(dataDir, removeRoot=False) + + eprint("Malcolm has been stopped and its data cleared\n") + +################################################################################################### +def start(): + global args + global dockerBin + global dockerComposeBin + + # make sure the auth files exist. if we are in an interactive shell and we're + # missing any of the auth files, prompt to create them now + if sys.__stdin__.isatty() and (not MalcolmAuthFilesExist()): + authSetup() + + # still missing? sorry charlie + if (not MalcolmAuthFilesExist()): + raise Exception('Malcolm administrator account authentication files are missing, please run ./scripts/auth_setup to generate them') + + # touch the metadata file + open(os.path.join(MalcolmPath, os.path.join('htadmin', 'metadata')), 'a').close() + + # if the elasticsearch and logstash keystore don't exist exist, create empty ones + if not os.path.isfile(os.path.join(MalcolmPath, os.path.join('elasticsearch', 'elasticsearch.keystore'))): + keystore_op('elasticsearch', True, 'create') + if not os.path.isfile(os.path.join(MalcolmPath, os.path.join('logstash', os.path.join('certs', 'logstash.keystore')))): + keystore_op('logstash', True, 'create') + + # make sure permissions are set correctly for the nginx worker processes + for authFile in [os.path.join(MalcolmPath, os.path.join('nginx', 'htpasswd')), + os.path.join(MalcolmPath, os.path.join('htadmin', 'config.ini')), + os.path.join(MalcolmPath, os.path.join('htadmin', 'metadata'))]: + # chmod 644 authFile + os.chmod(authFile, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH) + for authFile in [os.path.join(MalcolmPath, os.path.join('nginx', 'nginx_ldap.conf'))]: + # chmod 600 authFile + os.chmod(authFile, stat.S_IRUSR | stat.S_IWUSR) + + # make sure some directories exist before we start + for path in [os.path.join(MalcolmPath, 'elasticsearch'), + os.path.join(MalcolmPath, 'elasticsearch-backup'), + os.path.join(MalcolmPath, os.path.join('nginx', 'ca-trust')), + os.path.join(MalcolmPath, os.path.join('pcap', 'upload')), + os.path.join(MalcolmPath, os.path.join('pcap', 'processed')), + os.path.join(MalcolmPath, os.path.join('zeek-logs', 'current')), + os.path.join(MalcolmPath, os.path.join('zeek-logs', 'upload')), + os.path.join(MalcolmPath, os.path.join('zeek-logs', 'processed')), + os.path.join(MalcolmPath, os.path.join('zeek-logs', 'extract_files'))]: + try: + os.makedirs(path) + except OSError as exc: + if (exc.errno == errno.EEXIST) and os.path.isdir(path): + pass + else: + raise + + # increase COMPOSE_HTTP_TIMEOUT to be ridiculously large so docker-compose never times out the TTY doing debug output + osEnv = os.environ.copy() + osEnv['COMPOSE_HTTP_TIMEOUT'] = '100000000' + # docker-compose use local temporary path + osEnv['TMPDIR'] = MalcolmTmpPath + + # start docker + err, out = run_process([dockerComposeBin, '-f', args.composeFile, 'up', '--detach'], env=osEnv, debug=args.debug) + if (err == 0): + eprint("Started Malcolm\n\n") + eprint("In a few minutes, Malcolm services will be accessible via the following URLs:") + eprint("------------------------------------------------------------------------------") + eprint(" - Arkime: https://localhost/") + eprint(" - Kibana: https://localhost/kibana/") + eprint(" - PCAP upload (web): https://localhost/upload/") + eprint(" - PCAP upload (sftp): sftp://username@127.0.0.1:8022/files/") + eprint(" - Host and subnet name mapping editor: https://localhost/name-map-ui/\n") + eprint(" - Account management: https://localhost:488/\n") + else: + eprint("Malcolm failed to start\n") + eprint("\n".join(out)) + exit(err) + +################################################################################################### +def authSetup(wipe=False): + global args + global dockerBin + global dockerComposeBin + global opensslBin + + if YesOrNo('Store administrator username/password for local Malcolm access?', default=True): + + # prompt username and password + usernamePrevious = None + password = None + passwordConfirm = None + passwordEncrypted = '' + username = AskForString("Administrator username") + + while True: + password = AskForPassword(f"{username} password: ") + passwordConfirm = AskForPassword(f"{username} password (again): ") + if (password == passwordConfirm): + break + eprint("Passwords do not match") + + # get previous admin username to remove from htpasswd file if it's changed + authEnvFile = os.path.join(MalcolmPath, 'auth.env') + if os.path.isfile(authEnvFile): + prevAuthInfo = defaultdict(str) + with open(authEnvFile, 'r') as f: + for line in f: + try: + k, v = line.rstrip().split("=") + prevAuthInfo[k] = v.strip('"') + except: + pass + if (len(prevAuthInfo['MALCOLM_USERNAME']) > 0): + usernamePrevious = prevAuthInfo['MALCOLM_USERNAME'] + + # get openssl hash of password + err, out = run_process([opensslBin, 'passwd', '-1', '-stdin'], stdin=password, stderr=False, debug=args.debug) + if (err == 0) and (len(out) > 0) and (len(out[0]) > 0): + passwordEncrypted = out[0] + else: + raise Exception('Unable to generate password hash with openssl') + + # write auth.env (used by htadmin and file-upload containers) + with open(authEnvFile, 'w') as f: + f.write("# Malcolm Administrator username and encrypted password for nginx reverse proxy (and upload server's SFTP access)\n") + f.write(f'MALCOLM_USERNAME={username}\n') + f.write(f'MALCOLM_PASSWORD={passwordEncrypted}\n') + os.chmod(authEnvFile, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH) + + # create or update the htpasswd file + htpasswdFile = os.path.join(MalcolmPath, os.path.join('nginx', 'htpasswd')) + htpasswdCmd = ['htpasswd', + '-i', + '-B', + htpasswdFile, + username] + if not os.path.isfile(htpasswdFile): + htpasswdCmd.insert(1, '-c') + err, out = run_process(htpasswdCmd, stdin=password, stderr=True, debug=args.debug) + if (err != 0): + raise Exception(f'Unable to generate htpasswd file: {out}') + + # if the admininstrator username has changed, remove the previous administrator username from htpasswd + if (usernamePrevious is not None) and (usernamePrevious != username): + htpasswdLines = list() + with open(htpasswdFile, 'r') as f: + htpasswdLines = f.readlines() + with open(htpasswdFile, 'w') as f: + for line in htpasswdLines: + if not line.startswith(f"{usernamePrevious}:"): + f.write(line) + + # configure default LDAP stuff (they'll have to edit it by hand later) + ldapConfFile = os.path.join(MalcolmPath, os.path.join('nginx', 'nginx_ldap.conf')) + if not os.path.isfile(ldapConfFile): + ldapDefaults = defaultdict(str) + if os.path.isfile(os.path.join(MalcolmPath, '.ldap_config_defaults')): + ldapDefaults = defaultdict(str) + with open(os.path.join(MalcolmPath, '.ldap_config_defaults'), 'r') as f: + for line in f: + try: + k, v = line.rstrip().split("=") + ldapDefaults[k] = v.strip('"').strip("'") + except: + pass + ldapProto = ldapDefaults.get("LDAP_PROTO", "ldap://") + ldapHost = ldapDefaults.get("LDAP_HOST", "ds.example.com") + ldapPort = ldapDefaults.get("LDAP_PORT", "3268") + ldapType = ldapDefaults.get("LDAP_SERVER_TYPE", "winldap") + if (ldapType == "openldap"): + ldapUri = 'DC=example,DC=com?uid?sub?(objectClass=posixAccount)' + ldapGroupAttr = "memberUid" + ldapGroupAttrIsDN = "off" + else: + ldapUri = 'DC=example,DC=com?sAMAccountName?sub?(objectClass=person)' + ldapGroupAttr = "member" + ldapGroupAttrIsDN = "on" + with open(ldapConfFile, 'w') as f: + f.write('# This is a sample configuration for the ldap_server section of nginx.conf.\n') + f.write('# Yours will vary depending on how your Active Directory/LDAP server is configured.\n') + f.write('# See https://github.com/kvspb/nginx-auth-ldap#available-config-parameters for options.\n\n') + f.write('ldap_server ad_server {\n') + f.write(f' url "{ldapProto}{ldapHost}:{ldapPort}/{ldapUri}";\n\n') + f.write(' binddn "bind_dn";\n') + f.write(' binddn_passwd "bind_dn_password";\n\n') + f.write(f' group_attribute {ldapGroupAttr};\n') + f.write(f' group_attribute_is_dn {ldapGroupAttrIsDN};\n') + f.write(' require group "CN=malcolm,OU=groups,DC=example,DC=com";\n') + f.write(' require valid_user;\n') + f.write(' satisfy all;\n') + f.write('}\n\n') + f.write('auth_ldap_cache_enabled on;\n') + f.write('auth_ldap_cache_expiration_time 10000;\n') + f.write('auth_ldap_cache_size 1000;\n') + os.chmod(ldapConfFile, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH) + + # populate htadmin config file + with open(os.path.join(MalcolmPath, os.path.join('htadmin', 'config.ini')), 'w') as f: + f.write('; HTAdmin config file.\n\n') + f.write('[application]\n') + f.write('; Change this to customize your title:\n') + f.write('app_title = Malcolm User Management\n\n') + f.write('; htpasswd file\n') + f.write('secure_path = ./config/htpasswd\n') + f.write('; metadata file\n') + f.write('metadata_path = ./config/metadata\n\n') + f.write('; administrator user/password (htpasswd -b -c -B ...)\n') + f.write(f'admin_user = {username}\n\n') + f.write('; username field quality checks\n') + f.write(';\n') + f.write('min_username_len = 4\n') + f.write('max_username_len = 12\n\n') + f.write('; Password field quality checks\n') + f.write(';\n') + f.write('min_password_len = 6\n') + f.write('max_password_len = 20\n\n') + + # touch the metadata file + open(os.path.join(MalcolmPath, os.path.join('htadmin', 'metadata')), 'a').close() + + # generate HTTPS self-signed certificates + if YesOrNo('(Re)generate self-signed certificates for HTTPS access', default=True): + with pushd(os.path.join(MalcolmPath, os.path.join('nginx', 'certs'))): + # remove previous files + for oldfile in glob.glob("*.pem"): + os.remove(oldfile) + + # generate dhparam ------------------------------- + err, out = run_process([opensslBin, 'dhparam', '-out', 'dhparam.pem', '2048'], stderr=True, debug=args.debug) + if (err != 0): + raise Exception(f'Unable to generate dhparam.pem file: {out}') + + # generate key/cert ------------------------------- + err, out = run_process([opensslBin, 'req', '-subj', '/CN=localhost', '-x509', '-newkey', 'rsa:4096', '-nodes', '-keyout', 'key.pem', '-out', 'cert.pem', '-days', '3650'], stderr=True, debug=args.debug) + if (err != 0): + raise Exception(f'Unable to generate key.pem/cert.pem file(s): {out}') + + # generate beats/logstash self-signed certificates + logstashPath = os.path.join(MalcolmPath, os.path.join('logstash', 'certs')) + filebeatPath = os.path.join(MalcolmPath, os.path.join('filebeat', 'certs')) + if YesOrNo('(Re)generate self-signed certificates for a remote log forwarder', default=True): + with pushd(logstashPath): + + # make clean to clean previous files + for pat in ['*.srl', '*.csr', '*.key', '*.crt', '*.pem']: + for oldfile in glob.glob(pat): + os.remove(oldfile) + + # ----------------------------------------------- + # generate new ca/server/client certificates/keys + # ca ------------------------------- + err, out = run_process([opensslBin, 'genrsa', '-out', 'ca.key', '2048'], stderr=True, debug=args.debug) + if (err != 0): raise Exception(f'Unable to generate ca.key: {out}') + + err, out = run_process([opensslBin, 'req', '-x509', '-new', '-nodes', '-key', 'ca.key', '-sha256', '-days', '9999', '-subj', '/C=US/ST=ID/O=sensor/OU=ca', '-out', 'ca.crt'], stderr=True, debug=args.debug) + if (err != 0): raise Exception(f'Unable to generate ca.crt: {out}') + + # server ------------------------------- + err, out = run_process([opensslBin, 'genrsa', '-out', 'server.key', '2048'], stderr=True, debug=args.debug) + if (err != 0): raise Exception(f'Unable to generate server.key: {out}') + + err, out = run_process([opensslBin, 'req', '-sha512', '-new', '-key', 'server.key', '-out', 'server.csr', '-config', 'server.conf'], stderr=True, debug=args.debug) + if (err != 0): raise Exception(f'Unable to generate server.csr: {out}') + + err, out = run_process([opensslBin, 'x509', '-days', '3650', '-req', '-sha512', '-in', 'server.csr', '-CAcreateserial', '-CA', 'ca.crt', '-CAkey', 'ca.key', '-out', 'server.crt', '-extensions', 'v3_req', '-extfile', 'server.conf'], stderr=True, debug=args.debug) + if (err != 0): raise Exception(f'Unable to generate server.crt: {out}') + + shutil.move("server.key", "server.key.pem") + err, out = run_process([opensslBin, 'pkcs8', '-in', 'server.key.pem', '-topk8', '-nocrypt', '-out', 'server.key'], stderr=True, debug=args.debug) + if (err != 0): raise Exception(f'Unable to generate server.key: {out}') + + # client ------------------------------- + err, out = run_process([opensslBin, 'genrsa', '-out', 'client.key', '2048'], stderr=True, debug=args.debug) + if (err != 0): raise Exception(f'Unable to generate client.key: {out}') + + err, out = run_process([opensslBin, 'req', '-sha512', '-new', '-key', 'client.key', '-out', 'client.csr', '-config', 'client.conf'], stderr=True, debug=args.debug) + if (err != 0): raise Exception(f'Unable to generate client.csr: {out}') + + err, out = run_process([opensslBin, 'x509', '-days', '3650', '-req', '-sha512', '-in', 'client.csr', '-CAcreateserial', '-CA', 'ca.crt', '-CAkey', 'ca.key', '-out', 'client.crt', '-extensions', 'v3_req', '-extensions', 'usr_cert', '-extfile', 'client.conf'], stderr=True, debug=args.debug) + if (err != 0): raise Exception(f'Unable to generate client.crt: {out}') + # ----------------------------------------------- + + # mkdir filebeat/certs if it doesn't exist + try: + os.makedirs(filebeatPath) + except OSError as exc: + if (exc.errno == errno.EEXIST) and os.path.isdir(filebeatPath): + pass + else: + raise + + # remove previous files in filebeat/certs + for oldfile in glob.glob(os.path.join(filebeatPath, "*")): + os.remove(oldfile) + + # copy the ca so logstasn and filebeat both have it + shutil.copy2(os.path.join(logstashPath, "ca.crt"), filebeatPath) + + # move the client certs for filebeat + for f in ['client.key', 'client.crt']: + shutil.move(os.path.join(logstashPath, f), filebeatPath) + + # remove leftovers + for pat in ['*.srl', '*.csr', '*.pem']: + for oldfile in glob.glob(pat): + os.remove(oldfile) + + # create and populate keystore for remote + if YesOrNo('Store username/password for forwarding Logstash events to a secondary, external Elasticsearch instance', default=False): + + # prompt username and password + esPassword = None + esPasswordConfirm = None + esUsername = AskForString("External Elasticsearch username") + + while True: + esPassword = AskForPassword(f"{esUsername} password: ") + esPasswordConfirm = AskForPassword(f"{esUsername} password (again): ") + if (esPassword == esPasswordConfirm): + break + eprint("Passwords do not match") + + # create logstash keystore file, don't complain if it already exists, and set the keystore items + keystore_op('logstash', False, 'create', stdin='N') + keystore_op('logstash', False, 'remove', 'ES_EXTERNAL_USER', '--force') + keystore_op('logstash', False, 'add', 'ES_EXTERNAL_USER', '--stdin', '--force', stdin=esUsername) + keystore_op('logstash', False, 'remove', 'ES_EXTERNAL_PASSWORD', '--force') + keystore_op('logstash', False, 'add', 'ES_EXTERNAL_PASSWORD', '--stdin', '--force', stdin=esPassword) + success, results = keystore_op('logstash', False, 'list') + results = [x.upper() for x in results if x and (not x.upper().startswith('WARNING')) and (not x.upper().startswith('KEYSTORE')) and (not x.upper().startswith('USING BUNDLED JDK'))] + if success and ('ES_EXTERNAL_USER' in results) and ('ES_EXTERNAL_PASSWORD' in results): + eprint(f"External Elasticsearch instance variables stored: {', '.join(results)}") + else: + eprint("Failed to store external Elasticsearch instance variables:\n") + eprint("\n".join(results)) + + # Open Distro for Elasticsearch authenticate sender account credentials + # https://opendistro.github.io/for-elasticsearch-docs/docs/alerting/monitors/#authenticate-sender-account + if YesOrNo('Store username/password for email alert sender account (see https://opendistro.github.io/for-elasticsearch-docs/docs/alerting/monitors/#authenticate-sender-account)', default=False): + + # prompt username and password + emailPassword = None + emailPasswordConfirm = None + emailSender = AskForString("Open Distro alerting email sender name") + emailUsername = AskForString("Email account username") + + while True: + emailPassword = AskForPassword(f"{emailUsername} password: ") + emailPasswordConfirm = AskForPassword(f"{emailUsername} password (again): ") + if (emailPassword == emailPasswordConfirm): + break + eprint("Passwords do not match") + + # create elasticsearch keystore file, don't complain if it already exists, and set the keystore items + usernameKey = f'opendistro.alerting.destination.email.{emailSender}.username' + passwordKey = f'opendistro.alerting.destination.email.{emailSender}.password' + + keystore_op('elasticsearch', True, 'create', stdin='N') + keystore_op('elasticsearch', True, 'remove', usernameKey) + keystore_op('elasticsearch', True, 'add', usernameKey, '--stdin', stdin=emailUsername) + keystore_op('elasticsearch', True, 'remove', passwordKey) + keystore_op('elasticsearch', True, 'add', passwordKey, '--stdin', stdin=emailPassword) + success, results = keystore_op('elasticsearch', True, 'list') + results = [x for x in results if x and (not x.upper().startswith('WARNING')) and (not x.upper().startswith('KEYSTORE'))] + if success and (usernameKey in results) and (passwordKey in results): + eprint(f"Email alert sender account variables stored: {', '.join(results)}") + else: + eprint("Failed to store email alert sender account variables:\n") + eprint("\n".join(results)) + +################################################################################################### +# main +def main(): + global args + global dockerBin + global dockerComposeBin + global opensslBin + + # extract arguments from the command line + # print (sys.argv[1:]); + parser = argparse.ArgumentParser(description='Malcolm control script', add_help=False, usage=f'{ScriptName} ') + parser.add_argument('-v', '--verbose', dest='debug', type=str2bool, nargs='?', const=True, default=False, help="Verbose output") + parser.add_argument('-f', '--file', required=False, dest='composeFile', metavar='', type=str, default='docker-compose.yml', help='docker-compose YML file') + parser.add_argument('-l', '--logs', dest='cmdLogs', type=str2bool, nargs='?', const=True, default=False, help="Tail Malcolm logs") + parser.add_argument('--start', dest='cmdStart', type=str2bool, nargs='?', const=True, default=False, help="Start Malcolm") + parser.add_argument('--restart', dest='cmdRestart', type=str2bool, nargs='?', const=True, default=False, help="Stop and restart Malcolm") + parser.add_argument('--stop', dest='cmdStop', type=str2bool, nargs='?', const=True, default=False, help="Stop Malcolm") + parser.add_argument('--wipe', dest='cmdWipe', type=str2bool, nargs='?', const=True, default=False, help="Stop Malcolm and delete all data") + parser.add_argument('--auth', dest='cmdAuthSetup', type=str2bool, nargs='?', const=True, default=False, help="Configure Malcolm authentication") + parser.add_argument('--status', dest='cmdStatus', type=str2bool, nargs='?', const=True, default=False, help="Display status of Malcolm components") + + try: + parser.error = parser.exit + args = parser.parse_args() + except SystemExit: + parser.print_help() + exit(2) + + if args.debug: + eprint(os.path.join(ScriptPath, ScriptName)) + eprint(f"Arguments: {sys.argv[1:]}") + eprint(f"Arguments: {args}") + eprint("Malcolm path:", MalcolmPath) + else: + sys.tracebacklimit = 0 + + with pushd(MalcolmPath): + + # don't run this as root + if (pyPlatform != PLATFORM_WINDOWS) and ((os.getuid() == 0) or (os.geteuid() == 0) or (getpass.getuser() == 'root')): + raise Exception(f'{ScriptName} should not be run as root') + + # create local temporary directory for docker-compose because we may have noexec on /tmp + try: + os.makedirs(MalcolmTmpPath) + except OSError as exc: + if (exc.errno == errno.EEXIST) and os.path.isdir(MalcolmTmpPath): + pass + else: + raise + + # docker-compose use local temporary path + osEnv = os.environ.copy() + osEnv['TMPDIR'] = MalcolmTmpPath + + # make sure docker/docker-compose is available + dockerBin = 'docker.exe' if ((pyPlatform == PLATFORM_WINDOWS) and Which('docker.exe')) else 'docker' + dockerComposeBin = 'docker-compose.exe' if ((pyPlatform == PLATFORM_WINDOWS) and Which('docker-compose.exe')) else 'docker-compose' + err, out = run_process([dockerBin, 'info'], debug=args.debug) + if (err != 0): + raise Exception(f'{ScriptName} requires docker, please run install.py') + err, out = run_process([dockerComposeBin, '-f', args.composeFile, 'version'], env=osEnv, debug=args.debug) + if (err != 0): + raise Exception(f'{ScriptName} requires docker-compose, please run install.py') + + # identify openssl binary + opensslBin = 'openssl.exe' if ((pyPlatform == PLATFORM_WINDOWS) and Which('openssl.exe')) else 'openssl' + + # if executed via a symlink, figure out what was intended via the symlink name + if os.path.islink(os.path.join(ScriptPath, ScriptName)): + if (ScriptName == "logs"): + args.cmdLogs = True + elif (ScriptName == "status"): + args.cmdStatus = True + elif (ScriptName == "start"): + args.cmdStart = True + elif (ScriptName == "restart"): + args.cmdRestart = True + elif (ScriptName == "stop"): + args.cmdStop = True + elif (ScriptName == "wipe"): + args.cmdWipe = True + elif (ScriptName.startswith("auth")): + args.cmdAuthSetup = True + + # stop Malcolm (and wipe data if requestsed) + if args.cmdRestart or args.cmdStop or args.cmdWipe: + stop(wipe=args.cmdWipe) + + # configure Malcolm authentication + if args.cmdAuthSetup: + authSetup() + + # start Malcolm + if args.cmdStart or args.cmdRestart: + start() + + # tail Malcolm logs + if args.cmdStart or args.cmdRestart or args.cmdLogs: + logs() + + # display Malcolm status + if args.cmdStatus: + status() + +if __name__ == '__main__': + main() + if coloramaImported: + print(Style.RESET_ALL) + diff --git a/Vagrant/resources/malcolm/scripts/install.py b/Vagrant/resources/malcolm/scripts/install.py new file mode 100755 index 0000000..047cfe6 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/install.py @@ -0,0 +1,1333 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +import argparse +import datetime +import fileinput +import getpass +import glob +import json +import os +import platform +import pprint +import math +import re +import shutil +import sys +import tarfile +import tempfile +import time + +try: + from pwd import getpwuid +except ImportError: + getpwuid = None +from collections import defaultdict, namedtuple + +from malcolm_common import * + +################################################################################################### +DOCKER_COMPOSE_INSTALL_VERSION="1.27.4" + +DEB_GPG_KEY_FINGERPRINT = '0EBFCD88' # used to verify GPG key for Docker Debian repository + +MAC_BREW_DOCKER_PACKAGE = 'docker-edge' +MAC_BREW_DOCKER_SETTINGS = '/Users/{}/Library/Group Containers/group.com.docker/settings.json' + +################################################################################################### +ScriptName = os.path.basename(__file__) +origPath = os.getcwd() + +################################################################################################### +args = None + +################################################################################################### +# get interactive user response to Y/N question +def InstallerYesOrNo(question, default=None, forceInteraction=False): + global args + return YesOrNo(question, default=default, forceInteraction=forceInteraction, acceptDefault=args.acceptDefaults) + +################################################################################################### +# get interactive user response +def InstallerAskForString(question, default=None, forceInteraction=False): + global args + return AskForString(question, default=default, forceInteraction=forceInteraction, acceptDefault=args.acceptDefaults) + +def TrueOrFalseQuote(expression): + return "'{}'".format('true' if expression else 'false') + +################################################################################################### +class Installer(object): + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def __init__(self, debug=False, configOnly=False): + self.debug = debug + self.configOnly = configOnly + + self.platform = platform.system() + self.scriptUser = getpass.getuser() + + self.checkPackageCmds = [] + self.installPackageCmds = [] + self.requiredPackages = [] + + self.pipCmd = 'pip3' + if not Which(self.pipCmd, debug=self.debug): self.pipCmd = 'pip' + + self.tempDirName = tempfile.mkdtemp() + + self.totalMemoryGigs = 0.0 + self.totalCores = 0 + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def __del__(self): + shutil.rmtree(self.tempDirName, ignore_errors=True) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def run_process(self, command, stdout=True, stderr=True, stdin=None, privileged=False, retry=0, retrySleepSec=5): + + # if privileged, put the sudo command at the beginning of the command + if privileged and (len(self.sudoCmd) > 0): + command = self.sudoCmd + command + + return run_process(command, stdout=stdout, stderr=stderr, stdin=stdin, retry=retry, retrySleepSec=retrySleepSec, debug=self.debug) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def package_is_installed(self, package): + result = False + for cmd in self.checkPackageCmds: + ecode, out = self.run_process(cmd + [package]) + if (ecode == 0): + result = True + break + return result + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def install_package(self, packages): + result = False + pkgs = [] + + for package in packages: + if not self.package_is_installed(package): + pkgs.append(package) + + if (len(pkgs) > 0): + for cmd in self.installPackageCmds: + ecode, out = self.run_process(cmd + pkgs, privileged=True) + if (ecode == 0): + result = True + break + else: + result = True + + return result + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def install_required_packages(self): + if (len(self.requiredPackages) > 0): eprint(f"Installing required packages: {self.requiredPackages}") + return self.install_package(self.requiredPackages) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def install_docker_images(self, docker_image_file): + result = False + if docker_image_file and os.path.isfile(docker_image_file) and InstallerYesOrNo(f'Load Malcolm Docker images from {docker_image_file}', default=True, forceInteraction=True): + ecode, out = self.run_process(['docker', 'load', '-q', '-i', docker_image_file], privileged=True) + if (ecode == 0): + result = True + else: + eprint(f"Loading Malcolm Docker images failed: {out}") + return result + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def install_malcolm_files(self, malcolm_install_file): + result = False + installPath = None + if malcolm_install_file and os.path.isfile(malcolm_install_file) and InstallerYesOrNo(f'Extract Malcolm runtime files from {malcolm_install_file}', default=True, forceInteraction=True): + + # determine and create destination path for installation + while True: + defaultPath = os.path.join(origPath, 'malcolm') + installPath = InstallerAskForString(f'Enter installation path for Malcolm [{defaultPath}]', default=defaultPath, forceInteraction=True) + if (len(installPath) == 0): installPath = defaultPath + if os.path.isdir(installPath): + eprint(f"{installPath} already exists, please specify a different installation path") + else: + try: + os.makedirs(installPath) + except: + pass + if os.path.isdir(installPath): + break + else: + eprint(f"Failed to create {installPath}, please specify a different installation path") + + # extract runtime files + if installPath and os.path.isdir(installPath): + if self.debug: + eprint(f"Created {installPath} for Malcolm runtime files") + tar = tarfile.open(malcolm_install_file) + try: + tar.extractall(path=installPath, numeric_owner=True) + finally: + tar.close() + + # .tar.gz normally will contain an intermediate subdirectory. if so, move files back one level + childDir = glob.glob(f'{installPath}/*/') + if (len(childDir) == 1) and os.path.isdir(childDir[0]): + if self.debug: + eprint(f"{installPath} only contains {childDir[0]}") + for f in os.listdir(childDir[0]): + shutil.move(os.path.join(childDir[0], f), installPath) + shutil.rmtree(childDir[0], ignore_errors=True) + + # verify the installation worked + if os.path.isfile(os.path.join(installPath, "docker-compose.yml")): + eprint(f"Malcolm runtime files extracted to {installPath}") + result = True + with open(os.path.join(installPath, "install_source.txt"), 'w') as f: + f.write(f'{os.path.basename(malcolm_install_file)} (installed {str(datetime.datetime.now())})\n') + else: + eprint(f"Malcolm install file extracted to {installPath}, but missing runtime files?") + + return result, installPath + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def tweak_malcolm_runtime(self, malcolm_install_path, expose_elastic_default=False, expose_logstash_default=False, restart_mode_default=False): + global args + + if not args.configFile: + # get a list of all of the docker-compose files + composeFiles = glob.glob(os.path.join(malcolm_install_path, 'docker-compose*.yml')) + + elif os.path.isfile(args.configFile): + # single docker-compose file explicitly specified + composeFiles = [os.path.realpath(args.configFile)] + malcolm_install_path = os.path.dirname(composeFiles[0]) + + # figure out what UID/GID to run non-rood processes under docker as + puid = '1000' + pgid = '1000' + try: + if (self.platform == PLATFORM_LINUX): + puid = str(os.getuid()) + pgid = str(os.getgid()) + if (puid == '0') or (pgid == '0'): + raise Exception('it is preferrable not to run Malcolm as root, prompting for UID/GID instead') + except: + puid = '1000' + pgid = '1000' + + while (not puid.isdigit()) or (not pgid.isdigit()) or (not InstallerYesOrNo(f'Malcolm processes will run as UID {puid} and GID {pgid}. Is this OK?', default=True)): + puid = InstallerAskForString('Enter user ID (UID) for running non-root Malcolm processes') + pgid = InstallerAskForString('Enter group ID (GID) for running non-root Malcolm processes') + + # guestimate how much memory we should use based on total system memory + + if self.debug: + eprint(f"{malcolm_install_path} contains {composeFiles}, system memory is {self.totalMemoryGigs} GiB") + + if self.totalMemoryGigs >= 63.0: + esMemory = '30g' + lsMemory = '6g' + elif self.totalMemoryGigs >= 31.0: + esMemory = '21g' + lsMemory = '3500m' + elif self.totalMemoryGigs >= 15.0: + esMemory = '10g' + lsMemory = '3g' + elif self.totalMemoryGigs >= 11.0: + esMemory = '6g' + lsMemory = '2500m' + elif self.totalMemoryGigs >= 7.0: + eprint(f"Detected only {self.totalMemoryGigs} GiB of memory; performance will be suboptimal") + esMemory = '4g' + lsMemory = '2500m' + elif self.totalMemoryGigs > 0.0: + eprint(f"Detected only {self.totalMemoryGigs} GiB of memory; performance will be suboptimal") + esMemory = '3500m' + lsMemory = '2g' + else: + eprint("Failed to determine system memory size, using defaults; performance may be suboptimal") + esMemory = '8g' + lsMemory = '3g' + + while not InstallerYesOrNo(f'Setting {esMemory} for Elasticsearch and {lsMemory} for Logstash. Is this OK?', default=True): + esMemory = InstallerAskForString('Enter memory for Elasticsearch (e.g., 16g, 9500m, etc.)') + lsMemory = InstallerAskForString('Enter memory for LogStash (e.g., 4g, 2500m, etc.)') + + restartMode = None + allowedRestartModes = ('no', 'on-failure', 'always', 'unless-stopped') + if InstallerYesOrNo('Restart Malcolm upon system or Docker daemon restart?', default=restart_mode_default): + while restartMode not in allowedRestartModes: + restartMode = InstallerAskForString(f'Select Malcolm restart behavior {allowedRestartModes}', default='unless-stopped') + else: + restartMode = 'no' + if (restartMode == 'no'): restartMode = '"no"' + + ldapStartTLS = False + ldapServerType = 'winldap' + useBasicAuth = not InstallerYesOrNo('Authenticate against Lightweight Directory Access Protocol (LDAP) server?', default=False) + if not useBasicAuth: + allowedLdapModes = ('winldap', 'openldap') + ldapServerType = None + while ldapServerType not in allowedLdapModes: + ldapServerType = InstallerAskForString(f'Select LDAP server compatibility type {allowedLdapModes}', default='winldap') + ldapStartTLS = InstallerYesOrNo('Use StartTLS for LDAP connection security?', default=True) + try: + with open(os.path.join(os.path.realpath(os.path.join(ScriptPath, "..")), ".ldap_config_defaults"), "w") as ldapDefaultsFile: + print(f"LDAP_SERVER_TYPE='{ldapServerType}'", file=ldapDefaultsFile) + print(f"LDAP_PROTO='{'ldap://' if useBasicAuth or ldapStartTLS else 'ldaps://'}'", file=ldapDefaultsFile) + print(f"LDAP_PORT='{3268 if ldapStartTLS else 3269}'", file=ldapDefaultsFile) + except: + pass + + indexSnapshotDir = None + indexSnapshotCompressed = False + indexSnapshotAge = '0' + indexColdAge = '0' + indexCloseAge = '0' + indexDeleteAge = '0' + indexPruneSizeLimit = '0' + indexPruneNameSort = False + + if InstallerYesOrNo('Configure Elasticsearch index state management?', default=False): + + # configure snapshots + if InstallerYesOrNo('Configure index snapshots?', default=False): + + # snapshot repository directory and compression + indexSnapshotDir = './elasticsearch-backup' + if not InstallerYesOrNo('Store snapshots locally in {}?'.format(os.path.join(malcolm_install_path, 'elasticsearch-backup')), default=True): + while True: + indexSnapshotDir = InstallerAskForString('Enter Elasticsearch index snapshot directory') + if (len(indexSnapshotDir) > 1) and os.path.isdir(indexSnapshotDir): + indexSnapshotDir = os.path.realpath(indexSnapshotDir) + break + indexSnapshotCompressed = InstallerYesOrNo('Compress index snapshots?', default=False) + + # index age for snapshot + indexSnapshotAge = '' + while (not re.match(r'^\d+[dhms]$', indexSnapshotAge)) and (indexSnapshotAge != '0'): + indexSnapshotAge = InstallerAskForString('Enter index age for snapshot (e.g., 1d)') + + # cold state age + if InstallerYesOrNo('Mark indices read-only as they age?', default=False): + indexColdAge = '' + while (not re.match(r'^\d+[dhms]$', indexColdAge)) and (indexColdAge != '0'): + indexColdAge = InstallerAskForString('Enter index age for "read-only" transition (e.g., 30d)') + + # close state age + if InstallerYesOrNo('Close indices as they age?', default=False): + indexCloseAge = '' + while (not re.match(r'^\d+[dhms]$', indexCloseAge)) and (indexCloseAge != '0'): + indexCloseAge = InstallerAskForString('Enter index age for "close" transition (e.g., 60d)') + + # delete state age + if InstallerYesOrNo('Delete indices as they age?', default=False): + indexDeleteAge = '' + while (not re.match(r'^\d+[dhms]$', indexDeleteAge)) and (indexDeleteAge != '0'): + indexDeleteAge = InstallerAskForString('Enter index age for "delete" transition (e.g., 365d)') + + # delete based on index pattern size + if InstallerYesOrNo('Delete the oldest indices when the database exceeds a certain size?', default=False): + indexPruneSizeLimit = '' + while (not re.match(r'^\d+(\.\d+)?\s*[kmgtp%]?b?$', indexPruneSizeLimit, flags=re.IGNORECASE)) and (indexPruneSizeLimit != '0'): + indexPruneSizeLimit = InstallerAskForString('Enter index threshold (e.g., 250GB, 1TB, 60%, etc.)') + indexPruneNameSort = InstallerYesOrNo('Determine oldest indices by name (instead of creation time)?', default=True) + + autoZeek = InstallerYesOrNo('Automatically analyze all PCAP files with Zeek?', default=True) + reverseDns = InstallerYesOrNo('Perform reverse DNS lookup locally for source and destination IP addresses in Zeek logs?', default=False) + autoOui = InstallerYesOrNo('Perform hardware vendor OUI lookups for MAC addresses?', default=True) + autoFreq = InstallerYesOrNo('Perform string randomness scoring on some fields?', default=True) + elasticOpen = InstallerYesOrNo('Expose Elasticsearch port to external hosts?', default=expose_elastic_default) + logstashOpen = InstallerYesOrNo('Expose Logstash port to external hosts?', default=expose_logstash_default) + logstashSsl = logstashOpen and InstallerYesOrNo('Should Logstash require SSL for Zeek logs? (Note: This requires the forwarder to be similarly configured and a corresponding copy of the client SSL files.)', default=True) + externalEsForward = InstallerYesOrNo('Forward Logstash logs to external Elasticstack instance?', default=False) + if externalEsForward: + externalEsHost = InstallerAskForString('Enter external Elasticstack host:port (e.g., 10.0.0.123:9200)') + externalEsSsl = InstallerYesOrNo(f'Connect to "{externalEsHost}" using SSL?', default=True) + externalEsSslVerify = externalEsSsl and InstallerYesOrNo(f'Require SSL certificate validation for communication with "{externalEsHost}"?', default=False) + else: + externalEsHost = "" + externalEsSsl = False + externalEsSslVerify = False + + # input file extraction parameters + allowedFileCarveModes = ('none', 'known', 'mapped', 'all', 'interesting') + allowedFilePreserveModes = ('quarantined', 'all', 'none') + + fileCarveModeUser = None + fileCarveMode = None + filePreserveMode = None + vtotApiKey = '0' + yaraScan = False + capaScan = False + clamAvScan = False + ruleUpdate = False + + if InstallerYesOrNo('Enable file extraction with Zeek?', default=False): + while fileCarveMode not in allowedFileCarveModes: + fileCarveMode = InstallerAskForString(f'Select file extraction behavior {allowedFileCarveModes}', default=allowedFileCarveModes[0]) + while filePreserveMode not in allowedFilePreserveModes: + filePreserveMode = InstallerAskForString(f'Select file preservation behavior {allowedFilePreserveModes}', default=allowedFilePreserveModes[0]) + if fileCarveMode is not None: + if InstallerYesOrNo('Scan extracted files with ClamAV?', default=False): + clamAvScan = True + if InstallerYesOrNo('Scan extracted files with Yara?', default=False): + yaraScan = True + if InstallerYesOrNo('Scan extracted PE files with Capa?', default=False): + capaScan = True + if InstallerYesOrNo('Lookup extracted file hashes with VirusTotal?', default=False): + while (len(vtotApiKey) <= 1): + vtotApiKey = InstallerAskForString('Enter VirusTotal API key') + ruleUpdate = InstallerYesOrNo('Download updated scanner signatures periodically?', default=True) + + if fileCarveMode not in allowedFileCarveModes: + fileCarveMode = allowedFileCarveModes[0] + if filePreserveMode not in allowedFileCarveModes: + filePreserveMode = allowedFilePreserveModes[0] + if (vtotApiKey is None) or (len(vtotApiKey) <= 1): + vtotApiKey = '0' + + # input packet capture parameters + pcapNetSniff = False + pcapTcpDump = False + pcapIface = 'lo' + if InstallerYesOrNo('Should Malcolm capture network traffic to PCAP files?', default=False): + pcapIface = '' + while (len(pcapIface) <= 0): + pcapIface = InstallerAskForString('Specify capture interface(s) (comma-separated)') + pcapNetSniff = InstallerYesOrNo('Capture packets using netsniff-ng?', default=True) + pcapTcpDump = InstallerYesOrNo('Capture packets using tcpdump?', default=(not pcapNetSniff)) + + # modify specified values in-place in docker-compose files + for composeFile in composeFiles: + # save off owner of original files + composeFileStat = os.stat(composeFile) + origUid, origGuid = composeFileStat[4], composeFileStat[5] + composeFileHandle = fileinput.FileInput(composeFile, inplace=True, backup=None) + try: + servicesSectionFound = False + serviceIndent = None + currentService = None + + for line in composeFileHandle: + line = line.rstrip("\n") + skipLine = False + + # it would be cleaner to use something like PyYAML to do this, but I want to have as few dependencies + # as possible so we're going to do it janky instead + + # determine indentation for each service section (assumes YML file is consistently indented) + if (not servicesSectionFound) and line.lower().startswith('services:'): + servicesSectionFound = True + elif servicesSectionFound and (serviceIndent is None): + indentMatch = re.search(r'^(\s+)\S+\s*:\s*$', line) + if indentMatch is not None: + serviceIndent = indentMatch.group(1) + + # determine which service we're currently processing in the YML file + serviceStartLine = False + if servicesSectionFound and (serviceIndent is not None): + serviceMatch = re.search(fr'^{serviceIndent}(\S+)\s*:\s*$', line) + if serviceMatch is not None: + currentService = serviceMatch.group(1).lower() + serviceStartLine = True + + if (currentService is not None) and (restartMode is not None) and re.match(r'^\s*restart\s*:.*$', line): + # elasticsearch backup directory + line = f"{serviceIndent * 2}restart: {restartMode}" + elif 'PUID' in line: + # process UID + line = re.sub(r'(PUID\s*:\s*)(\S+)', fr"\g<1>{puid}", line) + elif 'PGID' in line: + # process GID + line = re.sub(r'(PGID\s*:\s*)(\S+)', fr"\g<1>{pgid}", line) + elif 'NGINX_BASIC_AUTH' in line: + # basic (useBasicAuth=true) vs ldap (useBasicAuth=false) + line = re.sub(r'(NGINX_BASIC_AUTH\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(useBasicAuth)}", line) + elif 'NGINX_LDAP_TLS_STUNNEL' in line: + # StartTLS vs. ldap:// or ldaps:// + line = re.sub(r'(NGINX_LDAP_TLS_STUNNEL\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(((not useBasicAuth) and ldapStartTLS))}", line) + elif 'ZEEK_EXTRACTOR_MODE' in line: + # zeek file extraction mode + line = re.sub(r'(ZEEK_EXTRACTOR_MODE\s*:\s*)(\S+)', fr"\g<1>'{fileCarveMode}'", line) + elif 'EXTRACTED_FILE_PRESERVATION' in line: + # zeek file preservation mode + line = re.sub(r'(EXTRACTED_FILE_PRESERVATION\s*:\s*)(\S+)', fr"\g<1>'{filePreserveMode}'", line) + elif 'VTOT_API2_KEY' in line: + # virustotal API key + line = re.sub(r'(VTOT_API2_KEY\s*:\s*)(\S+)', fr"\g<1>'{vtotApiKey}'", line) + elif 'EXTRACTED_FILE_ENABLE_YARA' in line: + # file scanning via yara + line = re.sub(r'(EXTRACTED_FILE_ENABLE_YARA\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(yaraScan)}", line) + elif 'EXTRACTED_FILE_ENABLE_CAPA' in line: + # PE file scanning via capa + line = re.sub(r'(EXTRACTED_FILE_ENABLE_CAPA\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(capaScan)}", line) + elif 'EXTRACTED_FILE_ENABLE_CLAMAV' in line: + # file scanning via clamav + line = re.sub(r'(EXTRACTED_FILE_ENABLE_CLAMAV\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(clamAvScan)}", line) + elif 'EXTRACTED_FILE_UPDATE_RULES' in line: + # rule updates (yara/capa via git, clamav via freshclam) + line = re.sub(r'(EXTRACTED_FILE_UPDATE_RULES\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(ruleUpdate)}", line) + elif 'PCAP_ENABLE_NETSNIFF' in line: + # capture pcaps via netsniff-ng + line = re.sub(r'(PCAP_ENABLE_NETSNIFF\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(pcapNetSniff)}", line) + elif 'PCAP_ENABLE_TCPDUMP' in line: + # capture pcaps via tcpdump + line = re.sub(r'(PCAP_ENABLE_TCPDUMP\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(pcapTcpDump)}", line) + elif 'PCAP_IFACE' in line: + # capture interface(s) + line = re.sub(r'(PCAP_IFACE\s*:\s*)(\S+)', fr"\g<1>'{pcapIface}'", line) + elif 'ES_JAVA_OPTS' in line: + # elasticsearch memory allowance + line = re.sub(r'(-Xm[sx])(\w+)', fr'\g<1>{esMemory}', line) + elif 'LS_JAVA_OPTS' in line: + # logstash memory allowance + line = re.sub(r'(-Xm[sx])(\w+)', fr'\g<1>{lsMemory}', line) + elif 'ZEEK_AUTO_ANALYZE_PCAP_FILES' in line: + # automatic pcap analysis with Zeek + line = re.sub(r'(ZEEK_AUTO_ANALYZE_PCAP_FILES\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(autoZeek)}", line) + elif 'LOGSTASH_REVERSE_DNS' in line: + # automatic local reverse dns lookup + line = re.sub(r'(LOGSTASH_REVERSE_DNS\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(reverseDns)}", line) + elif 'LOGSTASH_OUI_LOOKUP' in line: + # automatic MAC OUI lookup + line = re.sub(r'(LOGSTASH_OUI_LOOKUP\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(autoOui)}", line) + elif 'FREQ_LOOKUP' in line: + # freq.py string randomness calculations + line = re.sub(r'(FREQ_LOOKUP\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(autoFreq)}", line) + elif 'BEATS_SSL' in line: + # enable/disable beats SSL + line = re.sub(r'(BEATS_SSL\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(logstashOpen and logstashSsl)}", line) + elif (currentService == 'elasticsearch') and re.match(r'^\s*-.+:/opt/elasticsearch/backup(:.+)?\s*$', line) and (indexSnapshotDir is not None) and os.path.isdir(indexSnapshotDir): + # elasticsearch backup directory + volumeParts = line.strip().lstrip('-').lstrip().split(':') + volumeParts[0] = indexSnapshotDir + line = "{}- {}".format(serviceIndent * 3, ':'.join(volumeParts)) + elif 'ISM_SNAPSHOT_AGE' in line: + # elasticsearch index state management snapshot age + line = re.sub(r'(ISM_SNAPSHOT_AGE\s*:\s*)(\S+)', fr"\g<1>'{indexSnapshotAge}'", line) + elif 'ISM_COLD_AGE' in line: + # elasticsearch index state management cold (read-only) age + line = re.sub(r'(ISM_COLD_AGE\s*:\s*)(\S+)', fr"\g<1>'{indexColdAge}'", line) + elif 'ISM_CLOSE_AGE' in line: + # elasticsearch index state management close age + line = re.sub(r'(ISM_CLOSE_AGE\s*:\s*)(\S+)', fr"\g<1>'{indexCloseAge}'", line) + elif 'ISM_DELETE_AGE' in line: + # elasticsearch index state management close age + line = re.sub(r'(ISM_DELETE_AGE\s*:\s*)(\S+)', fr"\g<1>'{indexDeleteAge}'", line) + elif 'ISM_SNAPSHOT_COMPRESSED' in line: + # elasticsearch index state management snapshot compression + line = re.sub(r'(ISM_SNAPSHOT_COMPRESSED\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(indexSnapshotCompressed)}", line) + elif 'ELASTICSEARCH_INDEX_SIZE_PRUNE_LIMIT' in line: + # delete based on index pattern size + line = re.sub(r'(ELASTICSEARCH_INDEX_SIZE_PRUNE_LIMIT\s*:\s*)(\S+)', fr"\g<1>'{indexPruneSizeLimit}'", line) + elif 'ELASTICSEARCH_INDEX_SIZE_PRUNE_NAME_SORT' in line: + # delete based on index pattern size (sorted by name vs. creation time) + line = re.sub(r'(ELASTICSEARCH_INDEX_SIZE_PRUNE_NAME_SORT\s*:\s*)(\S+)', fr"\g<1>{TrueOrFalseQuote(indexPruneNameSort)}", line) + elif 'ES_EXTERNAL_HOSTS' in line: + # enable/disable forwarding Logstash to external Elasticsearch instance + line = re.sub(r'(#\s*)?(ES_EXTERNAL_HOSTS\s*:\s*)(\S+)', fr"\g<2>'{externalEsHost}'", line) + elif 'ES_EXTERNAL_SSL_CERTIFICATE_VERIFICATION' in line: + # enable/disable SSL certificate verification for external Elasticsearch instance + line = re.sub(r'(#\s*)?(ES_EXTERNAL_SSL_CERTIFICATE_VERIFICATION\s*:\s*)(\S+)', fr"\g<2>{TrueOrFalseQuote(externalEsSsl and externalEsSslVerify)}", line) + elif 'ES_EXTERNAL_SSL' in line: + # enable/disable SSL certificate verification for external Elasticsearch instance + line = re.sub(r'(#\s*)?(ES_EXTERNAL_SSL\s*:\s*)(\S+)', fr"\g<2>{TrueOrFalseQuote(externalEsSsl)}", line) + elif logstashOpen and serviceStartLine and (currentService == 'logstash'): + # exposing logstash port 5044 to the world + print(line) + line = f"{serviceIndent * 2}ports:" + print(line) + line = f'{serviceIndent * 3}- "0.0.0.0:5044:5044"' + elif (not serviceStartLine) and (currentService == 'logstash') and re.match(fr'^({serviceIndent * 2}ports:|{serviceIndent * 3}-.*5044:5044)"?\s*$', line): + # remove previous/leftover/duplicate exposing logstash port 5044 to the world + skipLine = True + elif (not serviceStartLine) and (currentService == 'nginx-proxy') and re.match(r'^.*-.*\b9200:9200"?\s*$', line): + # comment/uncomment port forwarding for elastic based on elasticOpen + leadingSpaces = len(line) - len(line.lstrip()) + if leadingSpaces <= 0: leadingSpaces = 6 + line = f"{' ' * leadingSpaces}{'' if elasticOpen else '# '}{line.lstrip().lstrip('#').lstrip()}" + + if not skipLine: print(line) + + finally: + composeFileHandle.close() + # restore ownership + os.chown(composeFile, origUid, origGuid) + + # if the Malcolm dir is owned by root, see if they want to reassign ownership to a non-root user + if (((self.platform == PLATFORM_LINUX) or (self.platform == PLATFORM_MAC)) and + (self.scriptUser == "root") and (getpwuid(os.stat(malcolm_install_path).st_uid).pw_name == self.scriptUser) and + InstallerYesOrNo(f'Set ownership of {malcolm_install_path} to an account other than {self.scriptUser}?', default=True, forceInteraction=True)): + tmpUser = '' + while (len(tmpUser) == 0): + tmpUser = InstallerAskForString('Enter user account').strip() + err, out = self.run_process(['id', '-g', '-n', tmpUser], stderr=True) + if (err == 0) and (len(out) > 0) and (len(out[0]) > 0): + tmpUser = f"{tmpUser}:{out[0]}" + err, out = self.run_process(['chown', '-R', tmpUser, malcolm_install_path], stderr=True) + if (err == 0): + if self.debug: eprint(f"Changing ownership of {malcolm_install_path} to {tmpUser} succeeded") + else: + eprint(f"Changing ownership of {malcolm_install_path} to {tmpUser} failed: {out}") + + +################################################################################################### +class LinuxInstaller(Installer): + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def __init__(self, debug=False, configOnly=False): + super().__init__(debug, configOnly) + + self.distro = None + self.codename = None + self.release = None + + # determine the distro (e.g., ubuntu) and code name (e.g., bionic) if applicable + + # check /etc/os-release values first + if os.path.isfile('/etc/os-release'): + osInfo = dict() + + with open("/etc/os-release", 'r') as f: + for line in f: + try: + k, v = line.rstrip().split("=") + osInfo[k] = v.strip('"') + except: + pass + + if ('NAME' in osInfo) and (len(osInfo['NAME']) > 0): + distro = osInfo['NAME'].lower().split()[0] + + if ('VERSION_CODENAME' in osInfo) and (len(osInfo['VERSION_CODENAME']) > 0): + codename = osInfo['VERSION_CODENAME'].lower().split()[0] + + if ('VERSION_ID' in osInfo) and (len(osInfo['VERSION_ID']) > 0): + release = osInfo['VERSION_ID'].lower().split()[0] + + # try lsb_release next + if (self.distro is None): + err, out = self.run_process(['lsb_release', '-is'], stderr=False) + if (err == 0) and (len(out) > 0): + self.distro = out[0].lower() + + if (self.codename is None): + err, out = self.run_process(['lsb_release', '-cs'], stderr=False) + if (err == 0) and (len(out) > 0): + self.codename = out[0].lower() + + if (self.release is None): + err, out = self.run_process(['lsb_release', '-rs'], stderr=False) + if (err == 0) and (len(out) > 0): + self.release = out[0].lower() + + # try release-specific files + if (self.distro is None): + if os.path.isfile('/etc/centos-release'): + distroFile = '/etc/centos-release' + if os.path.isfile('/etc/redhat-release'): + distroFile = '/etc/redhat-release' + elif os.path.isfile('/etc/issue'): + distroFile = '/etc/issue' + else: + distroFile = None + if (distroFile is not None): + with open(distroFile, 'r') as f: + distroVals = f.read().lower().split() + distroNums = [x for x in distroVals if x[0].isdigit()] + self.distro = distroVals[0] + if (self.release is None) and (len(distroNums) > 0): + self.release = distroNums[0] + + if (self.distro is None): + self.distro = "linux" + + if self.debug: + eprint(f"distro: {self.distro}{f' {self.codename}' if self.codename else ''}{f' {self.release}' if self.release else ''}") + + if not self.codename: self.codename = self.distro + + # determine packages required by Malcolm itself (not docker, those will be done later) + if (self.distro == PLATFORM_LINUX_UBUNTU) or (self.distro == PLATFORM_LINUX_DEBIAN): + self.requiredPackages.extend(['apache2-utils', 'make', 'openssl']) + elif (self.distro == PLATFORM_LINUX_FEDORA) or (self.distro == PLATFORM_LINUX_CENTOS): + self.requiredPackages.extend(['httpd-tools', 'make', 'openssl']) + + # on Linux this script requires root, or sudo, unless we're in local configuration-only mode + if os.getuid() == 0: + self.scriptUser = "root" + self.sudoCmd = [] + else: + self.sudoCmd = ["sudo", "-n"] + err, out = self.run_process(['whoami'], privileged=True) + if ((err != 0) or (len(out) == 0) or (out[0] != 'root')) and (not self.configOnly): + raise Exception(f'{ScriptName} must be run as root, or {self.sudoCmd} must be available') + + # determine command to use to query if a package is installed + if Which('dpkg', debug=self.debug): + os.environ["DEBIAN_FRONTEND"] = "noninteractive" + self.checkPackageCmds.append(['dpkg', '-s']) + elif Which('rpm', debug=self.debug): + self.checkPackageCmds.append(['rpm', '-q']) + elif Which('dnf', debug=self.debug): + self.checkPackageCmds.append(['dnf', 'list', 'installed']) + elif Which('yum', debug=self.debug): + self.checkPackageCmds.append(['yum', 'list', 'installed']) + + # determine command to install a package from the distro's repos + if Which('apt-get', debug=self.debug): + self.installPackageCmds.append(['apt-get', 'install', '-y', '-qq']) + elif Which('apt', debug=self.debug): + self.installPackageCmds.append(['apt', 'install', '-y', '-qq']) + elif Which('dnf', debug=self.debug): + self.installPackageCmds.append(['dnf', '-y', 'install', '--nobest']) + elif Which('yum', debug=self.debug): + self.installPackageCmds.append(['yum', '-y', 'install']) + + # determine total system memory + try: + totalMemBytes = os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES') + self.totalMemoryGigs = math.ceil(totalMemBytes/(1024.**3)) + except: + self.totalMemoryGigs = 0.0 + + # determine total system memory a different way if the first way didn't work + if (self.totalMemoryGigs <= 0.0): + err, out = self.run_process(['awk', '/MemTotal/ { printf "%.0f \\n", $2 }', '/proc/meminfo']) + if (err == 0) and (len(out) > 0): + totalMemKiloBytes = int(out[0]) + self.totalMemoryGigs = math.ceil(totalMemKiloBytes/(1024.**2)) + + # determine total system CPU cores + try: + self.totalCores = os.sysconf('SC_NPROCESSORS_ONLN') + except: + self.totalCores = 0 + + # determine total system CPU cores a different way if the first way didn't work + if (self.totalCores <= 0): + err, out = self.run_process(['grep', '-c', '^processor', '/proc/cpuinfo']) + if (err == 0) and (len(out) > 0): + self.totalCores = int(out[0]) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def install_docker(self): + result = False + + # first see if docker is already installed and runnable + err, out = self.run_process(['docker', 'info'], privileged=True) + + if (err == 0): + result = True + + elif InstallerYesOrNo('"docker info" failed, attempt to install Docker?', default=True): + + if InstallerYesOrNo('Attempt to install Docker using official repositories?', default=True): + + # install required packages for repo-based install + if self.distro == PLATFORM_LINUX_UBUNTU: + requiredRepoPackages = ['apt-transport-https', 'ca-certificates', 'curl', 'gnupg-agent', 'software-properties-common'] + elif self.distro == PLATFORM_LINUX_DEBIAN: + requiredRepoPackages = ['apt-transport-https', 'ca-certificates', 'curl', 'gnupg2', 'software-properties-common'] + elif self.distro == PLATFORM_LINUX_FEDORA: + requiredRepoPackages = ['dnf-plugins-core'] + elif self.distro == PLATFORM_LINUX_CENTOS: + requiredRepoPackages = ['yum-utils', 'device-mapper-persistent-data', 'lvm2'] + else: + requiredRepoPackages = [] + + if len(requiredRepoPackages) > 0: + eprint(f"Installing required packages: {requiredRepoPackages}") + self.install_package(requiredRepoPackages) + + # install docker via repo if possible + dockerPackages = [] + if ((self.distro == PLATFORM_LINUX_UBUNTU) or (self.distro == PLATFORM_LINUX_DEBIAN)) and self.codename: + + # for debian/ubuntu, add docker GPG key and check its fingerprint + if self.debug: + eprint("Requesting docker GPG key for package signing") + dockerGpgKey = requests.get(f'https://download.docker.com/linux/{self.distro}/gpg', allow_redirects=True) + err, out = self.run_process(['apt-key', 'add'], stdin=dockerGpgKey.content.decode(sys.getdefaultencoding()), privileged=True, stderr=False) + if (err == 0): + err, out = self.run_process(['apt-key', 'fingerprint', DEB_GPG_KEY_FINGERPRINT], privileged=True, stderr=False) + + # add docker .deb repository + if (err == 0): + if self.debug: + eprint("Adding docker repository") + err, out = self.run_process(['add-apt-repository', '-y', '-r', f'deb [arch=amd64] https://download.docker.com/linux/{self.distro} {self.codename} stable'], privileged=True) + err, out = self.run_process(['add-apt-repository', '-y', '-u', f'deb [arch=amd64] https://download.docker.com/linux/{self.distro} {self.codename} stable'], privileged=True) + + # docker packages to install + if (err == 0): + dockerPackages.extend(['docker-ce', 'docker-ce-cli', 'containerd.io']) + + elif self.distro == PLATFORM_LINUX_FEDORA: + + # add docker fedora repository + if self.debug: + eprint("Adding docker repository") + err, out = self.run_process(['dnf', 'config-manager', '-y', '--add-repo', 'https://download.docker.com/linux/fedora/docker-ce.repo'], privileged=True) + + # docker packages to install + if (err == 0): + dockerPackages.extend(['docker-ce', 'docker-ce-cli', 'containerd.io']) + + elif self.distro == PLATFORM_LINUX_CENTOS: + # add docker centos repository + if self.debug: + eprint("Adding docker repository") + err, out = self.run_process(['yum-config-manager', '-y', '--add-repo', 'https://download.docker.com/linux/centos/docker-ce.repo'], privileged=True) + + # docker packages to install + if (err == 0): + dockerPackages.extend(['docker-ce', 'docker-ce-cli', 'containerd.io']) + + else: + err, out = None, None + + if len(dockerPackages) > 0: + eprint(f"Installing docker packages: {dockerPackages}") + if self.install_package(dockerPackages): + eprint("Installation of docker packages apparently succeeded") + result = True + else: + eprint("Installation of docker packages failed") + + # the user either chose not to use the official repos, the official repo installation failed, or there are not official repos available + # see if we want to attempt using the convenience script at https://get.docker.com (see https://github.com/docker/docker-install) + if not result and InstallerYesOrNo('Docker not installed via official repositories. Attempt to install Docker via convenience script (please read https://github.com/docker/docker-install)?', default=False): + tempFileName = os.path.join(self.tempDirName, 'docker-install.sh') + if DownloadToFile("https://get.docker.com/", tempFileName, debug=self.debug): + os.chmod(tempFileName, 493) # 493 = 0o755 + err, out = self.run_process(([tempFileName]), privileged=True) + if (err == 0): + eprint("Installation of docker apparently succeeded") + result = True + else: + eprint(f"Installation of docker failed: {out}") + else: + eprint(f"Downloading {dockerComposeUrl} to {tempFileName} failed") + + if result and ((self.distro == PLATFORM_LINUX_FEDORA) or (self.distro == PLATFORM_LINUX_CENTOS)): + # centos/fedora don't automatically start/enable the daemon, so do so now + err, out = self.run_process(['systemctl', 'start', 'docker'], privileged=True) + if (err == 0): + err, out = self.run_process(['systemctl', 'enable', 'docker'], privileged=True) + if (err != 0): + eprint(f"Enabling docker service failed: {out}") + else: + eprint(f"Starting docker service failed: {out}") + + # at this point we either have installed docker successfully or we have to give up, as we've tried all we could + err, out = self.run_process(['docker', 'info'], privileged=True, retry=6, retrySleepSec=5) + if result and (err == 0): + if self.debug: + eprint('"docker info" succeeded') + + # add non-root user to docker group if required + usersToAdd = [] + if self.scriptUser == 'root': + while InstallerYesOrNo(f"Add {'a' if len(usersToAdd) == 0 else 'another'} non-root user to the \"docker\" group?"): + tmpUser = InstallerAskForString('Enter user account') + if (len(tmpUser) > 0): usersToAdd.append(tmpUser) + else: + usersToAdd.append(self.scriptUser) + + for user in usersToAdd: + err, out = self.run_process(['usermod', '-a', '-G', 'docker', user], privileged=True) + if (err == 0): + if self.debug: + eprint(f'Adding {user} to "docker" group succeeded') + else: + eprint(f'Adding {user} to "docker" group failed') + + elif (err != 0): + result = False + raise Exception(f'{ScriptName} requires docker, please see {DOCKER_INSTALL_URLS[self.distro]}') + + return result + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def install_docker_compose(self): + result = False + + dockerComposeCmd = 'docker-compose' + if not Which(dockerComposeCmd, debug=self.debug) and os.path.isfile('/usr/local/bin/docker-compose'): + dockerComposeCmd = '/usr/local/bin/docker-compose' + + # first see if docker-compose is already installed and runnable (try non-root and root) + err, out = self.run_process([dockerComposeCmd, 'version'], privileged=False) + if (err != 0): + err, out = self.run_process([dockerComposeCmd, 'version'], privileged=True) + + if (err != 0) and InstallerYesOrNo('"docker-compose version" failed, attempt to install docker-compose?', default=True): + + if InstallerYesOrNo('Install docker-compose directly from docker github?', default=True): + # download docker-compose from github and put it in /usr/local/bin + + # need to know some linux platform info + unames = [] + err, out = self.run_process((['uname', '-s'])) + if (err == 0) and (len(out) > 0): unames.append(out[0]) + err, out = self.run_process((['uname', '-m'])) + if (err == 0) and (len(out) > 0): unames.append(out[0]) + if len(unames) == 2: + # download docker-compose from github and save it to a temporary file + tempFileName = os.path.join(self.tempDirName, dockerComposeCmd) + dockerComposeUrl = f"https://github.com/docker/compose/releases/download/{DOCKER_COMPOSE_INSTALL_VERSION}/docker-compose-{unames[0]}-{unames[1]}" + if DownloadToFile(dockerComposeUrl, tempFileName, debug=self.debug): + os.chmod(tempFileName, 493) # 493 = 0o755, mark as executable + # put docker-compose into /usr/local/bin + err, out = self.run_process((['cp', '-f', tempFileName, '/usr/local/bin/docker-compose']), privileged=True) + if (err == 0): + eprint("Download and installation of docker-compose apparently succeeded") + dockerComposeCmd = '/usr/local/bin/docker-compose' + else: + raise Exception(f'Error copying {tempFileName} to /usr/local/bin: {out}') + + else: + eprint(f"Downloading {dockerComposeUrl} to {tempFileName} failed") + + elif InstallerYesOrNo('Install docker-compose via pip (privileged)?', default=False): + # install docker-compose via pip (as root) + err, out = self.run_process([self.pipCmd, 'install', dockerComposeCmd], privileged=True) + if (err == 0): + eprint("Installation of docker-compose apparently succeeded") + else: + eprint(f"Install docker-compose via pip failed with {err}, {out}") + + elif InstallerYesOrNo('Install docker-compose via pip (user)?', default=True): + # install docker-compose via pip (regular user) + err, out = self.run_process([self.pipCmd, 'install', dockerComposeCmd], privileged=False) + if (err == 0): + eprint("Installation of docker-compose apparently succeeded") + else: + eprint(f"Install docker-compose via pip failed with {err}, {out}") + + # see if docker-compose is now installed and runnable (try non-root and root) + err, out = self.run_process([dockerComposeCmd, 'version'], privileged=False) + if (err != 0): + err, out = self.run_process([dockerComposeCmd, 'version'], privileged=True) + + if (err == 0): + result = True + if self.debug: + eprint('"docker-compose version" succeeded') + + else: + raise Exception(f'{ScriptName} requires docker-compose, please see {DOCKER_COMPOSE_INSTALL_URLS[self.platform]}') + + return result + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def tweak_system_files(self): + + # make some system configuration changes with permission + + ConfigLines = namedtuple("ConfigLines", ["distros", "filename", "prefix", "description", "lines"], rename=False) + + configLinesToAdd = [ConfigLines([], + '/etc/sysctl.conf', + 'fs.file-max=', + 'fs.file-max increases allowed maximum for file handles', + ['# the maximum number of open file handles', + 'fs.file-max=2097152']), + ConfigLines([], + '/etc/sysctl.conf', + 'fs.inotify.max_user_watches=', + 'fs.inotify.max_user_watches increases allowed maximum for monitored files', + ['# the maximum number of user inotify watches', + 'fs.inotify.max_user_watches=131072']), + ConfigLines([], + '/etc/sysctl.conf', + 'fs.inotify.max_queued_events=', + 'fs.inotify.max_queued_events increases queue size for monitored files', + ['# the inotify event queue size', + 'fs.inotify.max_queued_events=131072']), + ConfigLines([], + '/etc/sysctl.conf', + 'fs.inotify.max_user_instances=', + 'fs.inotify.max_user_instances increases allowed maximum monitor file watchers', + ['# the maximum number of user inotify monitors', + 'fs.inotify.max_user_instances=512']), + ConfigLines([], + '/etc/sysctl.conf', + 'vm.max_map_count=', + 'vm.max_map_count increases allowed maximum for memory segments', + ['# the maximum number of memory map areas a process may have', + 'vm.max_map_count=262144']), + ConfigLines([], + '/etc/sysctl.conf', + 'net.core.somaxconn=', + 'net.core.somaxconn increases allowed maximum for socket connections', + ['# the maximum number of incoming connections', + 'net.core.somaxconn=65535']), + ConfigLines([], + '/etc/sysctl.conf', + 'vm.swappiness=', + 'vm.swappiness adjusts the preference of the system to swap vs. drop runtime memory pages', + ['# decrease "swappiness" (swapping out runtime memory vs. dropping pages)', + 'vm.swappiness=1']), + ConfigLines([], + '/etc/sysctl.conf', + 'vm.dirty_background_ratio=', + 'vm.dirty_background_ratio defines the percentage of system memory fillable with "dirty" pages before flushing', + ['# the % of system memory fillable with "dirty" pages before flushing', + 'vm.dirty_background_ratio=40']), + ConfigLines([], + '/etc/sysctl.conf', + 'vm.dirty_background_ratio=', + 'vm.dirty_background_ratio defines the percentage of dirty system memory before flushing', + ['# maximum % of dirty system memory before committing everything', + 'vm.dirty_background_ratio=40']), + ConfigLines([], + '/etc/sysctl.conf', + 'vm.dirty_ratio=', + 'vm.dirty_ratio defines the maximum percentage of dirty system memory before committing everything', + ['# maximum % of dirty system memory before committing everything', + 'vm.dirty_ratio=80']), + ConfigLines(['centos', 'core'], + '/etc/systemd/system.conf.d/limits.conf', + '', + '/etc/systemd/system.conf.d/limits.conf increases the allowed maximums for file handles and memlocked segments', + ['[Manager]', + 'DefaultLimitNOFILE=65535:65535', + 'DefaultLimitMEMLOCK=infinity']), + ConfigLines(['bionic', 'cosmic', 'disco', 'eoan', 'focal', 'groovy', 'stretch', 'buster', 'bullseye', 'sid', 'fedora'], + '/etc/security/limits.d/limits.conf', + '', + '/etc/security/limits.d/limits.conf increases the allowed maximums for file handles and memlocked segments', + ['* soft nofile 65535', + '* hard nofile 65535', + '* soft memlock unlimited', + '* hard memlock unlimited'])] + + for config in configLinesToAdd: + + if (((len(config.distros) == 0) or (self.codename in config.distros)) and + (os.path.isfile(config.filename) or InstallerYesOrNo(f'\n{config.description}\n{config.filename} does not exist, create it?', default=True))): + + confFileLines = [line.rstrip('\n') for line in open(config.filename)] if os.path.isfile(config.filename) else [] + + if ((len(confFileLines) == 0) or + (not os.path.isfile(config.filename) and (len(config.prefix) == 0)) or + ((len(list(filter(lambda x: x.startswith(config.prefix), confFileLines))) == 0) and + InstallerYesOrNo(f'\n{config.description}\n{config.prefix} appears to be missing from {config.filename}, append it?', default=True))): + + echoNewLineJoin = '\\n' + err, out = self.run_process(['bash', + '-c', + f"mkdir -p {os.path.dirname(config.filename)} && echo -n -e '{echoNewLineJoin}{echoNewLineJoin.join(config.lines)}{echoNewLineJoin} >> '{config.filename}'"], privileged=True) + +################################################################################################### +class MacInstaller(Installer): + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def __init__(self, debug=False, configOnly=False): + super().__init__(debug, configOnly) + + self.sudoCmd = [] + + # first see if brew is already installed and runnable + err, out = self.run_process(['brew', 'info']) + brewInstalled = (err == 0) + + if brewInstalled and InstallerYesOrNo('Homebrew is installed: continue with Homebrew?', default=True): + self.useBrew = True + + else: + self.useBrew = False + eprint('Docker can be installed and maintained with Homebrew, or manually.') + if (not brewInstalled) and (not InstallerYesOrNo('Homebrew is not installed: continue with manual installation?', default=False)): + raise Exception(f'Follow the steps at {HOMEBREW_INSTALL_URLS[self.platform]} to install Homebrew, then re-run {ScriptName}') + + if self.useBrew: + # make sure we have brew cask + err, out = self.run_process(['brew', 'info', 'cask']) + if (err != 0): + self.install_package(['cask']) + if (err == 0): + if self.debug: eprint('"brew install cask" succeeded') + else: + eprint(f'"brew install cask" failed with {err}, {out}') + + err, out = self.run_process(['brew', 'tap', 'homebrew/cask-versions']) + if (err == 0): + if self.debug: eprint('"brew tap homebrew/cask-versions" succeeded') + else: + eprint(f'"brew tap homebrew/cask-versions" failed with {err}, {out}') + + self.checkPackageCmds.append(['brew', 'cask', 'ls', '--versions']) + self.installPackageCmds.append(['brew', 'cask', 'install']) + + # determine total system memory + try: + totalMemBytes = os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES') + self.totalMemoryGigs = math.ceil(totalMemBytes/(1024.**3)) + except: + self.totalMemoryGigs = 0.0 + + # determine total system memory a different way if the first way didn't work + if (self.totalMemoryGigs <= 0.0): + err, out = self.run_process(['sysctl', '-n', 'hw.memsize']) + if (err == 0) and (len(out) > 0): + totalMemBytes = int(out[0]) + self.totalMemoryGigs = math.ceil(totalMemBytes/(1024.**3)) + + # determine total system CPU cores + try: + self.totalCores = os.sysconf('SC_NPROCESSORS_ONLN') + except: + self.totalCores = 0 + + # determine total system CPU cores a different way if the first way didn't work + if (self.totalCores <= 0): + err, out = self.run_process(['sysctl', '-n', 'hw.ncpu']) + if (err == 0) and (len(out) > 0): + self.totalCores = int(out[0]) + + #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def install_docker(self): + result = False + + # first see if docker is already installed/runnable + err, out = self.run_process(['docker', 'info']) + + if (err != 0) and self.useBrew and self.package_is_installed(MAC_BREW_DOCKER_PACKAGE): + # if docker is installed via brew, but not running, prompt them to start it + eprint(f'{MAC_BREW_DOCKER_PACKAGE} appears to be installed via Homebrew, but "docker info" failed') + while True: + response = InstallerAskForString('Starting Docker the first time may require user interaction. Please find and start Docker in the Applications folder, then return here and type YES').lower() + if (response == 'yes'): + break + err, out = self.run_process(['docker', 'info'], retry=12, retrySleepSec=5) + + # did docker info work? + if (err == 0): + result = True + + elif InstallerYesOrNo('"docker info" failed, attempt to install Docker?', default=True): + + if self.useBrew: + # install docker via brew cask (requires user interaction) + dockerPackages = [MAC_BREW_DOCKER_PACKAGE] + eprint(f"Installing docker packages: {dockerPackages}") + if self.install_package(dockerPackages): + eprint("Installation of docker packages apparently succeeded") + while True: + response = InstallerAskForString('Starting Docker the first time may require user interaction. Please find and start Docker in the Applications folder, then return here and type YES').lower() + if (response == 'yes'): + break + else: + eprint("Installation of docker packages failed") + + else: + # install docker via downloaded dmg file (requires user interaction) + dlDirName = f'/Users/{self.scriptUser}/Downloads' + if os.path.isdir(dlDirName): + tempFileName = os.path.join(dlDirName, 'Docker.dmg') + else: + tempFileName = os.path.join(self.tempDirName, 'Docker.dmg') + if DownloadToFile('https://download.docker.com/mac/edge/Docker.dmg', tempFileName, debug=self.debug): + while True: + response = InstallerAskForString(f'Installing and starting Docker the first time may require user interaction. Please open Finder and install {tempFileName}, start Docker from the Applications folder, then return here and type YES').lower() + if (response == 'yes'): + break + + # at this point we either have installed docker successfully or we have to give up, as we've tried all we could + err, out = self.run_process(['docker', 'info'], retry=12, retrySleepSec=5) + if (err == 0): + result = True + if self.debug: + eprint('"docker info" succeeded') + + elif (err != 0): + raise Exception(f'{ScriptName} requires docker edge, please see {DOCKER_INSTALL_URLS[self.platform]}') + + elif (err != 0): + raise Exception(f'{ScriptName} requires docker edge, please see {DOCKER_INSTALL_URLS[self.platform]}') + + # tweak CPU/RAM usage for Docker in Mac + settingsFile = MAC_BREW_DOCKER_SETTINGS.format(self.scriptUser) + if result and os.path.isfile(settingsFile) and InstallerYesOrNo(f'Configure Docker resource usage in {settingsFile}?', default=True): + + # adjust CPU and RAM based on system resources + if self.totalCores >= 16: + newCpus = 12 + elif self.totalCores >= 12: + newCpus = 8 + elif self.totalCores >= 8: + newCpus = 6 + elif self.totalCores >= 4: + newCpus = 4 + else: + newCpus = 2 + + if self.totalMemoryGigs >= 64.0: + newMemoryGiB = 32 + elif self.totalMemoryGigs >= 32.0: + newMemoryGiB = 24 + elif self.totalMemoryGigs >= 24.0: + newMemoryGiB = 16 + elif self.totalMemoryGigs >= 16.0: + newMemoryGiB = 12 + elif self.totalMemoryGigs >= 8.0: + newMemoryGiB = 8 + elif self.totalMemoryGigs >= 4.0: + newMemoryGiB = 4 + else: + newMemoryGiB = 2 + + while not InstallerYesOrNo(f"Setting {newCpus if newCpus else '(unchanged)'} for CPU cores and {newMemoryGiB if newMemoryGiB else '(unchanged)'} GiB for RAM. Is this OK?", default=True): + newCpus = InstallerAskForString('Enter Docker CPU cores (e.g., 4, 8, 16)') + newMemoryGiB = InstallerAskForString('Enter Docker RAM MiB (e.g., 8, 16, etc.)') + + if newCpus or newMemoryMiB: + with open(settingsFile, 'r+') as f: + data = json.load(f) + if newCpus: data['cpus'] = int(newCpus) + if newMemoryGiB: data['memoryMiB'] = int(newMemoryGiB)*1024 + f.seek(0) + json.dump(data, f, indent=2) + f.truncate() + + # at this point we need to essentially update our system memory stats because we're running inside docker + # and don't have the whole banana at our disposal + self.totalMemoryGigs = newMemoryGiB + + eprint("Docker resource settings adjusted, attempting restart...") + + err, out = self.run_process(['osascript', '-e', 'quit app "Docker"']) + if (err == 0): + time.sleep(5) + err, out = self.run_process(['open', '-a', 'Docker']) + + if (err == 0): + err, out = self.run_process(['docker', 'info'], retry=12, retrySleepSec=5) + if (err == 0): + if self.debug: + eprint('"docker info" succeeded') + + else: + eprint(f"Restarting Docker automatically failed: {out}") + while True: + response = InstallerAskForString('Please restart Docker via the system taskbar, then return here and type YES').lower() + if (response == 'yes'): + break + + return result + +################################################################################################### +# main +def main(): + global args + + # extract arguments from the command line + # print (sys.argv[1:]); + parser = argparse.ArgumentParser(description='Malcolm install script', add_help=False, usage=f'{ScriptName} ') + parser.add_argument('-v', '--verbose', dest='debug', type=str2bool, nargs='?', const=True, default=False, help="Verbose output") + parser.add_argument('-m', '--malcolm-file', required=False, dest='mfile', metavar='', type=str, default='', help='Malcolm .tar.gz file for installation') + parser.add_argument('-i', '--image-file', required=False, dest='ifile', metavar='', type=str, default='', help='Malcolm docker images .tar.gz file for installation') + parser.add_argument('-c', '--configure', dest='configOnly', type=str2bool, nargs='?', const=True, default=False, help="Only do configuration (not installation)") + parser.add_argument('-f', '--configure-file', required=False, dest='configFile', metavar='', type=str, default='', help='Single docker-compose YML file to configure') + parser.add_argument('-d', '--defaults', dest='acceptDefaults', type=str2bool, nargs='?', const=True, default=False, help="Accept defaults to prompts without user interaction") + parser.add_argument('-l', '--logstash-expose', dest='exposeLogstash', type=str2bool, nargs='?', const=True, default=False, help="Expose Logstash port to external hosts") + parser.add_argument('-e', '--elasticsearch-expose', dest='exposeElastic', type=str2bool, nargs='?', const=True, default=False, help="Expose Elasticsearch port to external hosts") + parser.add_argument('-r', '--restart-malcolm', dest='malcolmAutoRestart', type=str2bool, nargs='?', const=True, default=False, help="Restart Malcolm on system restart (unless-stopped)") + + try: + parser.error = parser.exit + args = parser.parse_args() + except SystemExit: + parser.print_help() + exit(2) + + if args.debug: + eprint(os.path.join(ScriptPath, ScriptName)) + eprint(f"Arguments: {sys.argv[1:]}") + eprint(f"Arguments: {args}") + else: + sys.tracebacklimit = 0 + + if not ImportRequests(debug=args.debug): + exit(2) + + # If Malcolm and images tarballs are provided, we will use them. + # If they are not provided, look in the pwd first, then in the script directory, to see if we + # can locate the most recent tarballs + malcolmFile = None + imageFile = None + + if args.mfile and os.path.isfile(args.mfile): + malcolmFile = args.mfile + else: + # find the most recent non-image tarball, first checking in the pwd then in the script path + files = list(filter(lambda x: "_images" not in x, glob.glob(os.path.join(origPath, '*.tar.gz')))) + if (len(files) == 0): + files = list(filter(lambda x: "_images" not in x, glob.glob(os.path.join(ScriptPath, '*.tar.gz')))) + files.sort(key=lambda x: os.path.getmtime(x), reverse=True) + if (len(files) > 0): + malcolmFile = files[0] + + if args.ifile and os.path.isfile(args.ifile): + imageFile = args.ifile + + if (malcolmFile and os.path.isfile(malcolmFile)) and (not imageFile or not os.path.isfile(imageFile)): + # if we've figured out the malcolm tarball, the _images tarball should match it + imageFile = malcolmFile.replace('.tar.gz', '_images.tar.gz') + if not os.path.isfile(imageFile): imageFile = None + + if args.debug: + if args.configOnly: + eprint("Only doing configuration, not installation") + else: + eprint(f"Malcolm install file: {malcolmFile}") + eprint(f"Docker images file: {imageFile}") + + installerPlatform = platform.system() + if installerPlatform == PLATFORM_LINUX: + installer = LinuxInstaller(debug=args.debug, configOnly=args.configOnly) + elif installerPlatform == PLATFORM_MAC: + installer = MacInstaller(debug=args.debug, configOnly=args.configOnly) + elif installerPlatform == PLATFORM_WINDOWS: + raise Exception(f'{ScriptName} is not yet supported on {installerPlatform}') + installer = WindowsInstaller(debug=args.debug, configOnly=args.configOnly) + + success = False + installPath = None + + if (not args.configOnly): + if hasattr(installer, 'install_required_packages'): success = installer.install_required_packages() + if hasattr(installer, 'install_docker'): success = installer.install_docker() + if hasattr(installer, 'install_docker_compose'): success = installer.install_docker_compose() + if hasattr(installer, 'tweak_system_files'): success = installer.tweak_system_files() + if hasattr(installer, 'install_docker_images'): success = installer.install_docker_images(imageFile) + + if args.configOnly or (args.configFile and os.path.isfile(args.configFile)): + if not args.configFile: + for testPath in [origPath, ScriptPath, os.path.realpath(os.path.join(ScriptPath, ".."))]: + if os.path.isfile(os.path.join(testPath, "docker-compose.yml")): + installPath = testPath + else: + installPath = os.path.dirname(os.path.realpath(args.configFile)) + success = (installPath is not None) and os.path.isdir(installPath) + if args.debug: + eprint(f"Malcolm installation detected at {installPath}") + + elif hasattr(installer, 'install_malcolm_files'): + success, installPath = installer.install_malcolm_files(malcolmFile) + + if (installPath is not None) and os.path.isdir(installPath) and hasattr(installer, 'tweak_malcolm_runtime'): + installer.tweak_malcolm_runtime(installPath, expose_elastic_default=args.exposeElastic, expose_logstash_default=args.exposeLogstash, restart_mode_default=args.malcolmAutoRestart) + eprint(f"\nMalcolm has been installed to {installPath}. See README.md for more information.") + eprint(f"Scripts for starting and stopping Malcolm and changing authentication-related settings can be found in {os.path.join(installPath, 'scripts')}.") + +if __name__ == '__main__': + main() diff --git a/Vagrant/resources/malcolm/scripts/logs b/Vagrant/resources/malcolm/scripts/logs new file mode 120000 index 0000000..c910cf9 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/logs @@ -0,0 +1 @@ +./control.py \ No newline at end of file diff --git a/Vagrant/resources/malcolm/scripts/malcolm_appliance_packager.sh b/Vagrant/resources/malcolm/scripts/malcolm_appliance_packager.sh new file mode 100755 index 0000000..b35e7a7 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/malcolm_appliance_packager.sh @@ -0,0 +1,158 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +if [ -z "$BASH_VERSION" ]; then + echo "Wrong interpreter, please run \"$0\" with bash" + exit 1 +fi + +set -e + +DESTDIR="$(mktemp -d -t malcolm-XXXXXX)" +VERBOSE="" + +function cleanup { + if ! rm -rf "$DESTDIR"; then + echo "Failed to remove temporary directory '$DESTDIR'" + exit 1 + fi +} + +# force-navigate to Malcolm base directory (parent of scripts/ directory) +RUN_PATH="$(pwd)" +[[ "$(uname -s)" = 'Darwin' ]] && REALPATH=grealpath || REALPATH=realpath +[[ "$(uname -s)" = 'Darwin' ]] && DIRNAME=gdirname || DIRNAME=dirname +if ! (type "$REALPATH" && type "$DIRNAME") > /dev/null; then + echo "$(basename "${BASH_SOURCE[0]}") requires $REALPATH and $DIRNAME" + exit 1 +fi +SCRIPT_PATH="$($DIRNAME $($REALPATH -e "${BASH_SOURCE[0]}"))" +pushd "$SCRIPT_PATH/.." >/dev/null 2>&1 + +CURRENT_REV_SHA="$(git rev-parse --short --verify HEAD)" +if [ -z "$CURRENT_REV_SHA" ]; then + CURRENT_REV_TAG="$(date +%Y.%m.%d_%H:%M:%S)" +else + CURRENT_REV_DATE="$(git log -1 --format="%at" | xargs -I{} date -d @{} +%Y%m%d_%H%M%S)" + if [ -z "$CURRENT_REV_DATE" ]; then + CURRENT_REV_TAG="$(date +%Y.%m.%d_%H:%M:%S)" + fi + CURRENT_REV_TAG="${CURRENT_REV_DATE}_${CURRENT_REV_SHA}" +fi + +DESTDIR="/tmp/malcolm_${CURRENT_REV_TAG}" +if [ -d "$DESTDIR" ]; then + unset CONFIRMATION + echo "" + read -p "Temporary directory \"$DESTDIR\" exists, delete before proceeding? [y/N]? " CONFIRMATION + CONFIRMATION=${CONFIRMATION:-N} + if [[ $CONFIRMATION =~ ^[Yy]$ ]]; then + rm -rf "$DESTDIR" + else + echo "Aborting" + popd >/dev/null 2>&1 + popd >/dev/null 2>&1 + exit 1 + fi +fi + +if mkdir "$DESTDIR"; then + # ensure that if we "grabbed a lock", we release it (works for clean exit, SIGTERM, and SIGINT/Ctrl-C) + trap "cleanup" EXIT + + mkdir $VERBOSE -p "$DESTDIR/nginx/certs/" + mkdir $VERBOSE -p "$DESTDIR/nginx/ca-trust/" + mkdir $VERBOSE -p "$DESTDIR/htadmin/" + mkdir $VERBOSE -p "$DESTDIR/logstash/certs/" + mkdir $VERBOSE -p "$DESTDIR/filebeat/certs/" + mkdir $VERBOSE -p "$DESTDIR/elasticsearch/nodes/" + mkdir $VERBOSE -p "$DESTDIR/elasticsearch-backup/" + mkdir $VERBOSE -p "$DESTDIR/moloch-raw/" + mkdir $VERBOSE -p "$DESTDIR/moloch-logs/" + mkdir $VERBOSE -p "$DESTDIR/pcap/upload/" + mkdir $VERBOSE -p "$DESTDIR/pcap/processed/" + mkdir $VERBOSE -p "$DESTDIR/yara/rules/" + mkdir $VERBOSE -p "$DESTDIR/zeek-logs/current/" + mkdir $VERBOSE -p "$DESTDIR/zeek-logs/upload/" + mkdir $VERBOSE -p "$DESTDIR/zeek-logs/processed/" + mkdir $VERBOSE -p "$DESTDIR/zeek-logs/extract_files/" + mkdir $VERBOSE -p "$DESTDIR/scripts/" + cp $VERBOSE ./docker-compose-standalone.yml "$DESTDIR/docker-compose.yml" + cp $VERBOSE ./auth.env "$DESTDIR/" + cp $VERBOSE ./cidr-map.txt "$DESTDIR/" + cp $VERBOSE ./host-map.txt "$DESTDIR/" + cp $VERBOSE ./net-map.json "$DESTDIR/" + cp $VERBOSE ./index-management-policy.json "$DESTDIR/" + cp $VERBOSE ./scripts/install.py "$DESTDIR/scripts/" + cp $VERBOSE ./scripts/control.py "$DESTDIR/scripts/" + cp $VERBOSE ./scripts/malcolm_common.py "$DESTDIR/scripts/" + cp $VERBOSE ./README.md "$DESTDIR/" + cp $VERBOSE ./logstash/certs/*.conf "$DESTDIR/logstash/certs/" + pushd "$DESTDIR" >/dev/null 2>&1 + pushd "./scripts" >/dev/null 2>&1 + ln -s ./control.py auth_setup + ln -s ./control.py logs + ln -s ./control.py restart + ln -s ./control.py start + ln -s ./control.py status + ln -s ./control.py stop + ln -s ./control.py wipe + popd >/dev/null 2>&1 + echo "You must set an administrator username and password for Malcolm, and self-signed X.509 certificates will be generated" + ./scripts/auth_setup + rm -rf logstash/certs/ca.key + pushd .. >/dev/null 2>&1 + DESTNAME="$RUN_PATH/$(basename $DESTDIR).tar.gz" + README="$RUN_PATH/$(basename $DESTDIR).README.txt" + README_HTML="$RUN_PATH/$(basename $DESTDIR).README.html" + docker run --rm --entrypoint /bin/bash "$(grep -E 'image: *malcolmnetsec/arkime' "$DESTDIR/docker-compose.yml" | awk '{print $2}')" -c "cat /data/moloch/doc/README.html" > "$README_HTML" || true + cp $VERBOSE "$SCRIPT_PATH/install.py" "$RUN_PATH/" + cp $VERBOSE "$SCRIPT_PATH/malcolm_common.py" "$RUN_PATH/" + tar -czf $VERBOSE "$DESTNAME" "./$(basename $DESTDIR)/" + echo "Packaged Malcolm to \"$DESTNAME\"" + echo "" + + unset CONFIRMATION + echo "" + read -p "Do you need to package docker images also [y/N]? " CONFIRMATION + CONFIRMATION=${CONFIRMATION:-N} + if [[ $CONFIRMATION =~ ^[Yy]$ ]]; then + echo "This might take a few minutes..." + DESTNAMEIMAGES="$RUN_PATH/$(basename $DESTDIR)_images.tar.gz" + IMAGES=( $(grep image: $DESTDIR/docker-compose.yml | awk '{print $2}') ) + docker save "${IMAGES[@]}" | gzip > "$DESTNAMEIMAGES" + echo "Packaged Malcolm docker images to \"$DESTNAMEIMAGES\"" + echo "" + fi + echo "" + echo "To install Malcolm:" | tee -a "$README" + echo " 1. Run install.py" | tee -a "$README" + echo " 2. Follow the prompts" | tee -a "$README" + echo "" | tee -a "$README" + echo "To start, stop, restart, etc. Malcolm:" | tee -a "$README" + echo " Use the control scripts in the \"scripts/\" directory:" | tee -a "$README" + echo " - start (start Malcolm)" | tee -a "$README" + echo " - stop (stop Malcolm)" | tee -a "$README" + echo " - restart (restart Malcolm)" | tee -a "$README" + echo " - logs (monitor Malcolm logs)" | tee -a "$README" + echo " - wipe (stop Malcolm and clear its database)" | tee -a "$README" + echo " - auth_setup (change authentication-related settings)" | tee -a "$README" + echo "" | tee -a "$README" + echo "A minute or so after starting Malcolm, the following services will be accessible:" | tee -a "$README" + echo " - Arkime: https://localhost/" | tee -a "$README" + echo " - Kibana: https://localhost/kibana/" | tee -a "$README" + echo " - PCAP upload (web): https://localhost/upload/" | tee -a "$README" + echo " - PCAP upload (sftp): sftp://USERNAME@127.0.0.1:8022/files/" | tee -a "$README" + echo " - Host and subnet name mapping editor: https://localhost/name-map-ui/" | tee -a "$README" + echo " - Account management: https://localhost:488/" | tee -a "$README" + popd >/dev/null 2>&1 + popd >/dev/null 2>&1 + popd >/dev/null 2>&1 + popd >/dev/null 2>&1 +else + echo "Unable to create temporary directory \"$DESTDIR\"" + popd >/dev/null 2>&1 + popd >/dev/null 2>&1 + exit 1 +fi diff --git a/Vagrant/resources/malcolm/scripts/malcolm_common.py b/Vagrant/resources/malcolm/scripts/malcolm_common.py new file mode 100644 index 0000000..146ca77 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/malcolm_common.py @@ -0,0 +1,319 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +import contextlib +import getpass +import json +import os +import platform +import re +import sys +import time + +from collections import defaultdict +try: + from pwd import getpwuid +except ImportError: + getpwuid = None +from subprocess import (PIPE, STDOUT, Popen, CalledProcessError) + +################################################################################################### +ScriptPath = os.path.dirname(os.path.realpath(__file__)) +MalcolmPath = os.path.abspath(os.path.join(ScriptPath, os.pardir)) +MalcolmTmpPath = os.path.join(MalcolmPath, '.tmp') + +################################################################################################### + +# attempt to import requests, will cover failure later +try: + import requests + RequestsImported = True +except ImportError: + RequestsImported = False + +################################################################################################### +PLATFORM_WINDOWS = "Windows" +PLATFORM_MAC = "Darwin" +PLATFORM_LINUX = "Linux" +PLATFORM_LINUX_CENTOS = 'centos' +PLATFORM_LINUX_DEBIAN = 'debian' +PLATFORM_LINUX_FEDORA = 'fedora' +PLATFORM_LINUX_UBUNTU = 'ubuntu' + +# URLS for figuring things out if something goes wrong +DOCKER_INSTALL_URLS = defaultdict(lambda: 'https://docs.docker.com/install/') +DOCKER_INSTALL_URLS[PLATFORM_WINDOWS] = ['https://stefanscherer.github.io/how-to-install-docker-the-chocolatey-way/', + 'https://docs.docker.com/docker-for-windows/install/'] +DOCKER_INSTALL_URLS[PLATFORM_LINUX_UBUNTU] = 'https://docs.docker.com/install/linux/docker-ce/ubuntu/' +DOCKER_INSTALL_URLS[PLATFORM_LINUX_DEBIAN] = 'https://docs.docker.com/install/linux/docker-ce/debian/' +DOCKER_INSTALL_URLS[PLATFORM_LINUX_CENTOS] = 'https://docs.docker.com/install/linux/docker-ce/centos/' +DOCKER_INSTALL_URLS[PLATFORM_LINUX_FEDORA] = 'https://docs.docker.com/install/linux/docker-ce/fedora/' +DOCKER_INSTALL_URLS[PLATFORM_MAC] = ['https://www.code2bits.com/how-to-install-docker-on-macos-using-homebrew/', + 'https://docs.docker.com/docker-for-mac/install/'] +DOCKER_COMPOSE_INSTALL_URLS = defaultdict(lambda: 'https://docs.docker.com/compose/install/') +HOMEBREW_INSTALL_URLS = defaultdict(lambda: 'https://brew.sh/') + +################################################################################################### +# chdir to directory as context manager, returning automatically +@contextlib.contextmanager +def pushd(directory): + prevDir = os.getcwd() + os.chdir(directory) + try: + yield + finally: + os.chdir(prevDir) + +################################################################################################### +# print to stderr +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + +################################################################################################### +def EscapeAnsi(line): + ansiEscape = re.compile(r'(?:\x1B[@-_]|[\x80-\x9F])[0-?]*[ -/]*[@-~]') + return ansiEscape.sub('', line) + +################################################################################################### +# get interactive user response to Y/N question +def YesOrNo(question, default=None, forceInteraction=False, acceptDefault=False): + + if default == True: + questionStr = f"\n{question} (Y/n): " + elif default == False: + questionStr = f"\n{question} (y/N): " + else: + questionStr = f"\n{question} (y/n): " + + if acceptDefault and (default is not None) and (not forceInteraction): + reply = '' + else: + while True: + reply = str(input(questionStr)).lower().strip() + if (len(reply) > 0) or (default is not None): + break + + if (len(reply) == 0): + reply = 'y' if default else 'n' + + if reply[0] == 'y': + return True + elif reply[0] == 'n': + return False + else: + return YesOrNo(question, default=default) + +################################################################################################### +# get interactive user response +def AskForString(question, default=None, forceInteraction=False, acceptDefault=False): + + if acceptDefault and (default is not None) and (not forceInteraction): + reply = default + else: + reply = str(input(f'\n{question}: ')).strip() + + return reply + +################################################################################################### +# get interactive password (without echoing) +def AskForPassword(prompt): + reply = getpass.getpass(prompt=prompt) + return reply + +################################################################################################### +# convenient boolean argument parsing +def str2bool(v): + if v.lower() in ('yes', 'true', 't', 'y', '1'): + return True + elif v.lower() in ('no', 'false', 'f', 'n', '0'): + return False + else: + raise ValueError('Boolean value expected') + +################################################################################################### +# determine if a program/script exists and is executable in the system path +def Which(cmd, debug=False): + result = any(os.access(os.path.join(path, cmd), os.X_OK) for path in os.environ["PATH"].split(os.pathsep)) + if debug: + eprint(f"Which {cmd} returned {result}") + return result + +################################################################################################### +# nice human-readable file sizes +def SizeHumanFormat(num, suffix='B'): + for unit in ['','Ki','Mi','Gi','Ti','Pi','Ei','Zi']: + if abs(num) < 1024.0: + return f"{num:3.1f}{unit}{suffix}" + num /= 1024.0 + return f"{num:.1f}{'Yi'}{suffix}" + +################################################################################################### +# is this string valid json? if so, load and return it +def LoadStrIfJson(jsonStr): + try: + return json.loads(jsonStr) + except ValueError as e: + return None + +################################################################################################### +# run command with arguments and return its exit code, stdout, and stderr +def check_output_input(*popenargs, **kwargs): + + if 'stdout' in kwargs: + raise ValueError('stdout argument not allowed, it will be overridden') + + if 'stderr' in kwargs: + raise ValueError('stderr argument not allowed, it will be overridden') + + if 'input' in kwargs and kwargs['input']: + if 'stdin' in kwargs: + raise ValueError('stdin and input arguments may not both be used') + inputdata = kwargs['input'] + kwargs['stdin'] = PIPE + else: + inputdata = None + kwargs.pop('input', None) + + process = Popen(*popenargs, stdout=PIPE, stderr=PIPE, **kwargs) + try: + output, errput = process.communicate(inputdata) + except: + process.kill() + process.wait() + raise + + retcode = process.poll() + + return retcode, output, errput + +################################################################################################### +# run command with arguments and return its exit code, stdout, and stderr +def run_process(command, stdout=True, stderr=True, stdin=None, retry=0, retrySleepSec=5, cwd=None, env=None, debug=False): + + retcode = -1 + output = [] + + try: + # run the command + retcode, cmdout, cmderr = check_output_input(command, input=stdin.encode() if stdin else stdin, cwd=cwd, env=env) + + # split the output on newlines to return a list + if stderr and (len(cmderr) > 0): output.extend(cmderr.decode(sys.getdefaultencoding()).split('\n')) + if stdout and (len(cmdout) > 0): output.extend(cmdout.decode(sys.getdefaultencoding()).split('\n')) + + except (FileNotFoundError, OSError, IOError) as e: + if stderr: + output.append(f"Command {command} not found or unable to execute") + + if debug: + eprint(f"{command}({stdin[:80] + bool(stdin[80:]) * '...' if stdin else ''}) returned {retcode}: {output}") + + if (retcode != 0) and retry and (retry > 0): + # sleep then retry + time.sleep(retrySleepSec) + return run_process(command, stdout, stderr, stdin, retry-1, retrySleepSec, cwd, env, debug) + else: + return retcode, output + +################################################################################################### +# make sure we can import requests properly and take care of it automatically if possible +def ImportRequests(debug=False): + global RequestsImported + + if not RequestsImported: + # see if we can help out by installing the requests module + + pyPlatform = platform.system() + pyExec = sys.executable + pipCmd = 'pip3' + if not Which(pipCmd, debug=debug): pipCmd = 'pip' + + eprint(f'The requests module is required under Python {platform.python_version()} ({pyExec})') + + if Which(pipCmd, debug=debug): + if YesOrNo(f'Importing the requests module failed. Attempt to install via {pipCmd}?'): + installCmd = None + + if (pyPlatform == PLATFORM_LINUX) or (pyPlatform == PLATFORM_MAC): + # for linux/mac, we're going to try to figure out if this python is owned by root or the script user + if (getpass.getuser() == getpwuid(os.stat(pyExec).st_uid).pw_name): + # we're running a user-owned python, regular pip should work + installCmd = [pipCmd, 'install', 'requests'] + else: + # python is owned by system, so make sure to pass the --user flag + installCmd = [pipCmd, 'install', '--user', 'requests'] + else: + # on windows (or whatever other platform this is) I don't know any other way other than pip + installCmd = [pipCmd, 'install', 'requests'] + + err, out = run_process(installCmd, debug=debug) + if err == 0: + eprint("Installation of requests module apparently succeeded") + try: + import requests + RequestsImported = True + except ImportError as e: + eprint(f"Importing the requests module still failed: {e}") + else: + eprint(f"Installation of requests module failed: {out}") + + if not RequestsImported: + eprint("System-wide installation varies by platform and Python configuration. Please consult platform-specific documentation for installing Python modules.") + if (platform.system() == PLATFORM_MAC): + eprint('You *may* be able to install pip and requests manually via: sudo sh -c "easy_install pip && pip install requests"') + elif (pyPlatform == PLATFORM_LINUX): + if Which('apt-get', debug=debug): + eprint("You *may* be able to install requests manually via: sudo apt-get install python3-requests") + elif Which('apt', debug=debug): + eprint("You *may* be able to install requests manually via: sudo apt install python3-requests") + elif Which('dnf', debug=debug): + eprint("You *may* be able to install requests manually via: sudo dnf install python3-requests") + elif Which('yum', debug=debug): + eprint('You *may* be able to install pip and requests manually via: sudo sh -c "yum install python3-pip && python3 -m pip install requests"') + + return RequestsImported + +################################################################################################### +# do the required auth files for Malcolm exist? +def MalcolmAuthFilesExist(): + return os.path.isfile(os.path.join(MalcolmPath, os.path.join('nginx', 'htpasswd'))) and \ + os.path.isfile(os.path.join(MalcolmPath, os.path.join('nginx', 'nginx_ldap.conf'))) and \ + os.path.isfile(os.path.join(MalcolmPath, os.path.join('nginx', os.path.join('certs', 'cert.pem')))) and \ + os.path.isfile(os.path.join(MalcolmPath, os.path.join('nginx', os.path.join('certs', 'key.pem')))) and \ + os.path.isfile(os.path.join(MalcolmPath, os.path.join('htadmin', 'config.ini'))) and \ + os.path.isfile(os.path.join(MalcolmPath, 'auth.env')) + +################################################################################################### +# download to file +def DownloadToFile(url, local_filename, debug=False): + r = requests.get(url, stream=True, allow_redirects=True) + with open(local_filename, 'wb') as f: + for chunk in r.iter_content(chunk_size=1024): + if chunk: f.write(chunk) + fExists = os.path.isfile(local_filename) + fSize = os.path.getsize(local_filename) + if debug: + eprint(f"Download of {url} to {local_filename} {'succeeded' if fExists else 'failed'} ({SizeHumanFormat(fSize)})") + return fExists and (fSize > 0) + +################################################################################################### +# recursively remove empty subfolders +def RemoveEmptyFolders(path, removeRoot=True): + if not os.path.isdir(path): + return + + files = os.listdir(path) + if len(files): + for f in files: + fullpath = os.path.join(path, f) + if os.path.isdir(fullpath): + RemoveEmptyFolders(fullpath) + + files = os.listdir(path) + if len(files) == 0 and removeRoot: + try: + os.rmdir(path) + except: + pass \ No newline at end of file diff --git a/Vagrant/resources/malcolm/scripts/package_zeek_logs.sh b/Vagrant/resources/malcolm/scripts/package_zeek_logs.sh new file mode 100755 index 0000000..c2c1c9b --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/package_zeek_logs.sh @@ -0,0 +1,121 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# package up Zeek logs in a format more suitable for upload to Malcolm +# +# directory containing Zeek logs is a parent directory of directories/files named like smb_mapping.04/00/00-05/00/00.log.gz +# + +set -e +set -u +set -o pipefail + +ENCODING="utf-8" + +# options +# -v (verbose) +# -d dir (base directory containing logs, e.g., the parent directory of smb_mapping.04/00/00-05/00/00.log.gz ) + +# parse command-line options +VERBOSE_FLAG="" +LOG_BASE_DIR=$(pwd) +while getopts 'vd:' OPTION; do + case "$OPTION" in + v) + VERBOSE_FLAG="-v" + ;; + + d) + LOG_BASE_DIR="$OPTARG" + ;; + + ?) + echo "script usage: $(basename $0) [-v] [-d directory]" >&2 + exit 1 + ;; + esac +done +shift "$(($OPTIND -1))" + +# fsize - display byte sizes human readable +function fsize () { + echo "$1" | awk 'function human(x) { + s=" B KiB MiB GiB TiB EiB PiB YiB ZiB" + while (x>=1024 && length(s)>1) + {x/=1024; s=substr(s,5)} + s=substr(s,1,4) + xf=(s==" B ")?"%5d ":"%0.2f" + return sprintf( xf"%s", x, s) + } + {gsub(/^[0-9]+/, human($1)); print}' +} + +function fdir () { + [[ -f "$1" ]] && echo "$(dirname "$1")" || echo "$1" +} + +# create a temporary directory to store our results in (make sure /tmp is big enough to extract all of these logs into!) +WORKDIR="$(mktemp -d -t malcolm-zeek-XXXXXX)" + +# chdir to the base directory containing the logs +pushd "$LOG_BASE_DIR" >/dev/null 2>&1 +FULL_PWD="$(realpath "$(pwd)")" + +# cleanup - on exit ensure the temporary directory is removed +function cleanup { + popd >/dev/null 2>&1 + if ! rm -rf "$WORKDIR"; then + echo "Failed to remove temporary directory '$WORKDIR'" >&2 + exit 1 + fi +} + +if [ -d "$WORKDIR" ]; then + # ensure that if we "grabbed a lock", we release it (works for clean exit, SIGTERM, and SIGINT/Ctrl-C) + trap "cleanup" EXIT + + # year month day type hour.0 min.0 sec.0 hour.1 min.1 sec.1 + PATTERN='(\./)?([0-9]+)-([0-9]+)-([0-9]+)/(.+)\.([0-9]+):([0-9]+):([0-9]+)-([0-9]+):([0-9]+):([0-9]+)\.log\.gz$' + + # find and unzip the compressed zeek logs below this directory into temporary subdirectories that make sense + for GZ_LOG_FILE in $(find . -type f -name "*.log.gz"); do + GZ_LOG_FILE_SUBDIR="$(dirname "$GZ_LOG_FILE")" + GZ_LOG_FILE_DESTDIR="$WORKDIR"/"$GZ_LOG_FILE_SUBDIR" + mkdir -p "$GZ_LOG_FILE_DESTDIR" + if [[ $GZ_LOG_FILE =~ $PATTERN ]]; then + LOG_TYPE=${BASH_REMATCH[5]} + DIR_DATE=${BASH_REMATCH[2]}_${BASH_REMATCH[3]}_${BASH_REMATCH[4]}_${BASH_REMATCH[6]} + LOG_BASENAME="$(echo "$LOG_TYPE" | awk '{print tolower($0)}')".log + DIR_COUNT=0 + while [[ true ]]; do + DEST_DIR="$WORKDIR"/$DIR_DATE.$(printf %02d $DIR_COUNT) + DEST_FILE="$DEST_DIR"/"$LOG_BASENAME" + if [[ -e "$DEST_FILE" ]]; then + DIR_COUNT=$((DIR_COUNT+1)) + else + break + fi + done + mkdir -p "$DEST_DIR"/ + gunzip --to-stdout "$GZ_LOG_FILE" > "$DEST_FILE" + if [[ -n $VERBOSE_FLAG ]]; then + FILE_TYPE="$(file -b "$DEST_FILE")" + FILE_SIZE="$(fsize $(stat --printf="%s" "$DEST_FILE"))" + echo "$DEST_FILE: $FILE_TYPE ($FILE_SIZE)" + fi + fi + done + + # package up all of the log files in their respective directories under our temporary one + REPACKAGED_LOGS_TARBALL="$FULL_PWD"/zeek-logs-compressed-$(date +'%Y%m%d_%H%M%S').tar.gz + tar -c -z $VERBOSE_FLAG -C "$WORKDIR" -f $REPACKAGED_LOGS_TARBALL . + if [[ -n $VERBOSE_FLAG ]]; then + FILE_TYPE="$(file -b "$REPACKAGED_LOGS_TARBALL")" + FILE_SIZE="$(fsize $(stat --printf="%s" "$REPACKAGED_LOGS_TARBALL"))" + echo "$REPACKAGED_LOGS_TARBALL: $FILE_TYPE ($FILE_SIZE)" + else + echo "$REPACKAGED_LOGS_TARBALL" + fi + +fi \ No newline at end of file diff --git a/Vagrant/resources/malcolm/scripts/restart b/Vagrant/resources/malcolm/scripts/restart new file mode 120000 index 0000000..c910cf9 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/restart @@ -0,0 +1 @@ +./control.py \ No newline at end of file diff --git a/Vagrant/resources/malcolm/scripts/start b/Vagrant/resources/malcolm/scripts/start new file mode 120000 index 0000000..c910cf9 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/start @@ -0,0 +1 @@ +./control.py \ No newline at end of file diff --git a/Vagrant/resources/malcolm/scripts/status b/Vagrant/resources/malcolm/scripts/status new file mode 120000 index 0000000..1bc304a --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/status @@ -0,0 +1 @@ +control.py \ No newline at end of file diff --git a/Vagrant/resources/malcolm/scripts/stop b/Vagrant/resources/malcolm/scripts/stop new file mode 120000 index 0000000..c910cf9 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/stop @@ -0,0 +1 @@ +./control.py \ No newline at end of file diff --git a/Vagrant/resources/malcolm/scripts/wipe b/Vagrant/resources/malcolm/scripts/wipe new file mode 120000 index 0000000..c910cf9 --- /dev/null +++ b/Vagrant/resources/malcolm/scripts/wipe @@ -0,0 +1 @@ +./control.py \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/.gitignore b/Vagrant/resources/malcolm/sensor-iso/.gitignore new file mode 100644 index 0000000..72d9524 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/.gitignore @@ -0,0 +1,14 @@ +# build artifacts +*.iso +*-build.log +.vagrant +/config/packages.chroot/*.deb +/moloch/*.deb + +# a temporary copy of ../shared +/shared + +# we're storing PNGs, generating JPGs at build time but we don't need to keep them +/docs/images/*.jpg +/HedgehogLinux.html +/HedgehogLinux.jpg.md diff --git a/Vagrant/resources/malcolm/sensor-iso/README.md b/Vagrant/resources/malcolm/sensor-iso/README.md new file mode 100644 index 0000000..6833ccd --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/README.md @@ -0,0 +1,943 @@ +# Hedgehog Linux +## Network Traffic Capture Appliance + +![](./docs/logo/hedgehog-color-w-text.png) + +Hedgehog Linux is a Debian-based operating system built to + +* monitor network interfaces +* capture packets to PCAP files +* detect file transfers in network traffic and extract and scan those files for threats +* generate and forward Zeek logs, Arkime sessions and other information to [Malcolm](https://github.com/cisagov/malcolm) + +### Table of Contents + +* [Sensor installation](#Installation) + - [Image boot options](#BootOptions) + - [Installer](#Installer) +* [Boot](#Boot) + - [Kiosk mode](#KioskMode) +* [Configuration](#Configuration) + - [Interfaces, hostname, and time synchronization](#ConfigRoot) + + [Hostname](#ConfigHostname) + + [Interfaces](#ConfigIface) + + [Time synchronization](#ConfigTime) + - [Capture, forwarding, and autostart services](#ConfigUser) + + [Capture](#ConfigCapture) + * [Automatic file extraction and scanning](#ZeekFileExtraction) + + [Forwarding](#ConfigForwarding) + * [filebeat](#filebeat): Zeek log forwarding + * [moloch-capture](#moloch-capture): Arkime session forwarding + * [metricbeat](#metricbeat): resource statistics forwarding + * [auditbeat](#auditbeat): audit log forwarding + * [filebeat-syslog](#syslogbeat): syslog forwarding + * [heatbeat](#heatbeat): temperature forwarding + + [Autostart services](#ConfigAutostart) +* [Appendix A - Generating the ISO](#ISOBuild) +* [Appendix B - Configuring SSH access](#ConfigSSH) +* [Appendix C - Troubleshooting](#Troubleshooting) +* [Appendix D - Hardening](#Hardening) + - [STIG compliance exceptions](#STIGExceptions) + - [CIS benchmark compliance exceptions](#CISExceptions) +* [Appendix E - Upgrades](#UpgradePlan) +* [Copyright](#Footer) + +# Sensor installation + +## Image boot options + +The Hedgehog Linux installation image, when provided on an optical disc, USB thumb drive, or other removable medium, can be used to install or reinstall the sensor software. + +![Sensor installation image boot menu](./docs/images/boot_options.png) + +The boot menu of the sensor installer image provides several options: + +* **Live system** and **Live system (fully in RAM)** may also be used to run the sensor in a "live USB" mode without installing any software or making any persistent configuration changes on the sensor hardware. +* **Install Hedgehog Linux** and **Install Hedgehog Linux (encrypted)** are used to [install the sensor](#Installer) onto the current system. Both selections install the same operating system and sensor software, the only difference being that the **encrypted** option encrypts the hard disks with a password (provided in a subsequent step during installation) that must be provided each time the sensor boots. There is some CPU overhead involved in an encrypted installation, so it is recommended that encrypted installations only be used for mobile installations (eg., on a sensor that may be shipped or carried for an incident response) and that the unencrypted option be used for fixed sensors in secure environments. +* **Install Hedgehog Linux (advanced configuration)** allows you to configure installation fully using all of the [Debian installer](https://www.debian.org/releases/stable/amd64/) settings and should only be selected for advanced users who know what they're doing. +* **Rescue system** is included for debugging and/or system recovery and should not be needed in most cases. + +## Installer + +The sensor installer is designed to require as little user input as possible. For this reason, there are NO user prompts and confirmations about partitioning and reformatting hard disks for use by the sensor. The installer assumes that all non-removable storage media (eg., SSD, HDD, NVMe, etc.) are available for use and ⛔🆘😭💀 ***will partition and format them without warning*** 💀😭🆘⛔. + +The installer will ask for a few pieces of information prior to installing the sensor operating system: + +* **Root password** – a password for the privileged root account which is rarely needed (only during the configuration of the sensors network interfaces and setting the sensor host name) +* **User password** – a password for the non-privileged sensor account under which the various sensor capture and forwarding services run +* **Encryption password** (optional) – if the encrypted installation option was selected at boot time, the encryption password must be entered every time the sensor boots + +Each of these passwords must be entered twice to ensure they were entered correctly. + +![Example of the installer's password prompt](./docs/images/users_and_passwords.png) + +After the passwords have been entered, the installer will proceed to format the system drive and install Hedgehog Linux. + +![Installer progress](./docs/images/installer_progress.png) + +At the end of the installation process, you will be prompted with a few self-explanatory yes/no questions: + +* **Disable IPv6?** +* **Automatically login to the GUI session?** +* **Should the GUI session be locked due to inactivity?** +* **Display the [Standard Mandatory DoD Notice and Consent Banner](https://www.stigviewer.com/stig/application_security_and_development/2018-12-24/finding/V-69349)?** *(only applies when installed on U.S. government information systems)* + +Following these prompts, the installer will reboot and Hedgehog Linux will boot. + +# Boot + +Each time the sensor boots, a grub boot menu will be shown briefly, after which the sensor will proceed to load. + +## Kiosk mode + +![Kiosk mode sensor menu: resource statistics](./docs/images/kiosk_mode_sensor_menu.png) + +The sensor automatically logs in as the sensor user account and runs in **kiosk mode**, which is intended to show an at-a-glance view of the its resource utilization. Clicking the **☰** icon in allows you to switch between the resource statistics view and the services view. + +![Kiosk mode sensor menu: services](./docs/images/kiosk_mode_services_menu.png) + +The kiosk's services screen (designed with large clickable labels for small portable touch screens) can be used to start and stop essential services, get a status report of the currently running services, and clean all captured data from the sensor. + +!["Clean Sensor" confirmation prompt before deleting sensor data](./docs/images/kiosk_mode_wipe_prompt.png) + +!["Sensor Status" report from the kiosk services menu](./docs/images/kiosk_mode_status.png) + +# Configuration + +Kiosk mode can be exited by connecting an external USB keyboard and pressing **Alt+F4**, upon which the *sensor* user's desktop is shown. + +![Sensor login session desktop](./docs/images/desktop.png) + +Several icons are available in the top menu bar: + +* **Terminal** - opens a command prompt in a terminal emulator +* **Browser** - opens a web browser +* **Kiosk** – returns the sensor to kiosk mode +* **README** – displays this document +* **Sensor status** – displays a list with the status of each sensor service +* **Configure capture and forwarding** – opens a dialog for configuring the sensor's capture and forwarding services, as well as specifying which services should autostart upon boot +* **Configure interfaces and hostname** – opens a dialog for configuring the sensor's network interfaces and setting the sensor's hostname +* **Restart sensor services** - stops and restarts all of the [autostart services](#ConfigAutostart) + +## Interfaces, hostname, and time synchronization + +### Hostname + +The first step of sensor configuration is to configure the network interfaces and sensor hostname. Double-clicking the **Configure Interfaces and Hostname** desktop icon (or, if you are at a command line prompt, running `configure-interfaces`) will prompt you for the root password you created during installation, after which the configuration welcome screen is shown. Select **Continue** to proceed. + +You may next select whether to configure the network interfaces, hostname, or time synchronization. + +![Selection to configure network interfaces, hostname, or time synchronization](./docs/images/root_config_mode.png) + +Selecting **Hostname**, you will be presented with a summary of the current sensor identification information, after which you may specify a new sensor hostname. This name will be used to tag all events forwarded from this sensor in the events' **host.name** field. + +![Specifying a new sensor hostname](./docs/images/hostname_setting.png) + +### Interfaces + +Returning to the configuration mode selection, choose **Interface**. You will be prompted if you would like help identifying network interfaces. If you select **Yes**, you will be prompted to select a network interface, after which that interface's link LED will blink for 10 seconds to help you in its identification. This network interface identification aid will continue to prompt you to identify further network interfaces until you select **No**. + +You will be presented with a list of interfaces to configure as the sensor management interface. This is the interface the sensor itself will use to communicate with the network in order to, for example, forward captured logs to an aggregate server. In order to do so, the management interface must be assigned an IP address. This is generally **not** the interface used for capturing data. Select the interface to which you wish to assign an IP address. The interfaces are listed by name and MAC address and the associated link speed is also displayed if it can be determined. For interfaces without a connected network cable, generally a `-1` will be displayed instead of the interface speed. + +![Management interface selection](./docs/images/select_iface.png) + +Depending on the configuration of your network, you may now specify how the management interface will be assigned an IP address. In order to communicate with an event aggregator over the management interface, either **static** or **dhcp** must be selected. + +![Interface address source](./docs/images/iface_mode.png) + +If you select static, you will be prompted to enter the IP address, netmask, and gateway to assign to the management interface. + +![Static IP configuration](./docs/images/iface_static.png) + +In either case, upon selecting **OK** the network interface will be brought down, configured, and brought back up, and the result of the operation will be displayed. You may choose **Quit** upon returning to the configuration tool’s welcome screen. + +### Time synchronization + +Returning to the configuration mode selection, choose **Time Sync**. Here you can configure the sensor to keep its time synchronized with either an NTP server (using the NTP protocol) or a local [Malcolm](https://github.com/cisagov/malcolm) aggregator or another HTTP/HTTPS server. On the next dialog, choose the time synchronization method you wish to configure. + +![Time synchronization method](./docs/images/time_sync_mode.png) + +If **htpdate** is selected, you will be prompted to enter the IP address or hostname and port of an HTTP/HTTPS server (for a Malcolm instance, port `9200` may be used) and the time synchronization check frequency in minutes. A test connection will be made to determine if the time can be retrieved from the server. + +![*htpdate* configuration](./docs/images/htpdate_setup.png) + +If *ntpdate* is selected, you will be prompted to enter the IP address or hostname of the NTP server. + +![NTP configuration](./docs/images/ntp_host.png) + +Upon configuring time synchronization, a "Time synchronization configured successfully!" message will be displayed, after which you will be returned to the welcome screen. + +## Capture, forwarding, and autostart services + +Double-clicking the **Configure Capture and Forwarding** icon (or, if you are at a command prompt, running `configure-capture`) will launch the configuration tool for capture and forwarding. The root password is not required as it was for the interface and hostname configuration, as sensor services are run under the non-privileged sensor account. Select **Continue** to proceed. You may select from a list of configuration options. + +![Select configuration mode](./docs/images/capture_config_main.png) + +### Capture + +Choose **Configure Capture** to configure parameters related to traffic capture and local analysis. You will be prompted if you would like help identifying network interfaces. If you select **Yes**, you will be prompted to select a network interface, after which that interface's link LED will blink for 10 seconds to help you in its identification. This network interface identification aid will continue to prompt you to identify further network interfaces until you select **No**. + +You will be presented with a list of network interfaces and prompted to select one or more capture interfaces. An interface used to capture traffic is generally a different interface than the one selected previously as the management interface, and each capture interface should be connected to a network tap or span port for traffic monitoring. Capture interfaces are usually not assigned an IP address as they are only used to passively “listen” to the traffic on the wire. The interfaces are listed by name and MAC address and the associated link speed is also displayed if it can be determined. For interfaces without a connected network cable, generally a `-1` will be displayed instead of the interface speed. + +![Select capture interfaces](./docs/images/capture_iface_select.png) + +Upon choosing the capture interfaces and selecting OK, you may optionally provide a capture filter. This filter will be used to limit what traffic the PCAP service ([`tcpdump`](https://www.tcpdump.org/)) and the traffic analysis service ([`zeek`](https://www.zeek.org/)) will see. Capture filters are specified using [Berkeley Packet Filter (BPF)](http://biot.com/capstats/bpf.html) syntax. Clicking **OK** will attempt to validate the capture filter, if specified, and will present a warning if the filter is invalid. + +![Specify capture filters](./docs/images/capture_filter.png) + +Next you must specify the paths where captured PCAP files and Zeek logs will be stored locally on the sensor. If the installation worked as expected, these paths should be prepopulated to reflect paths on the volumes formatted at install time for the purpose storing these artifacts. Usually these paths will exist on separate storage volumes. Enabling the PCAP and Zeek log pruning autostart services (see the section on autostart services below) will enable monitoring of these paths to ensure that their contents do not consume more than 90% of their respective volumes’ space. Choose **OK** to continue. + +![Specify capture paths](./docs/images/capture_paths.png) + +#### Automatic file extraction and scanning + +Hedgehog Linux can leverage Zeek's knowledge of network protocols to automatically detect file transfers and extract those files from network traffic as Zeek sees them. + +To specify which files should be extracted, specify the Zeek file carving mode: + +![Zeek file carving mode](./docs/images/zeek_file_carve_mode.png) + +If you're not sure what to choose, either of **mapped (except common plain text files)** (if you want to carve and scan almost all files) or **interesting** (if you only want to carve and scan files with [mime types of common attack vectors](./interface/sensor_ctl/extractor_override.interesting.zeek)) is probably a good choice. + +Next, specify which carved files to preserve (saved on the sensor under `/capture/bro/capture/extract_files/quarantine` by default). In order to not consume all of the sensor's available storage space, the oldest preserved files will be pruned along with the oldest Zeek logs as described below with **AUTOSTART_PRUNE_ZEEK** in the [autostart services](#ConfigAutostart) section. + +You'll be prompted to specify which engine(s) to use to analyze extracted files. Extracted files can be examined through any of three methods: + +![File scanners](./docs/images/zeek_file_carve_scanners.png) + +* scanning files with [**ClamAV**](https://www.clamav.net/); to enable this method, select **ZEEK_FILE_SCAN_CLAMAV** when specifying scanners for Zeek-carved files +* submitting file hashes to [**VirusTotal**](https://www.virustotal.com/en/#search); to enable this method, select **ZEEK_FILE_SCAN_VTOT** when specifying scanners for Zeek-carved files, then manually edit `/opt/sensor/sensor_ctl/control_vars.conf` and specify your [VirusTotal API key](https://developers.virustotal.com/reference) in `VTOT_API2_KEY` +* scanning files with [**Yara**](https://github.com/VirusTotal/yara); to enable this method, select **ZEEK_FILE_SCAN_YARA** when specifying scanners for Zeek-carved files +* scanning portable executable (PE) files with [**Capa**](https://github.com/fireeye/capa); to enable this method, select **ZEEK_FILE_SCAN_CAPA** when specifying scanners for Zeek-carved files + +Files which are flagged as potentially malicious will be logged as Zeek `signatures.log` entries, and can be viewed in the **Signatures** dashboard in [Kibana](https://github.com/cisagov/malcolm#KibanaVisualizations) when forwarded to Malcolm. + +![File quarantine](./docs/images/file_quarantine.png) + +Finally, you will then be presented with the list of configuration variables that will be used for capture, including the values which you have configured up to this point in this section. Upon choosing **OK** these values will be written back out to the sensor configuration file located at `/opt/sensor/sensor_ctl/control_vars.conf`. It is not recommended that you edit this file manually. After confirming these values, you will be presented with a confirmation that these settings have been written to the configuration file, and you will be returned to the welcome screen. + +![Capture parameters summary](./docs/images/capture_confirm.png) + +### Forwarding + +Select **Configure Forwarding** to set up forwarding logs and statistics from the sensor to an aggregator server, such as [Malcolm](https://github.com/cisagov/malcolm) or another [Elastic Stack](https://www.elastic.co/products/)-based server. + +![Configure forwarders](./docs/images/forwarder_config.png) + +There are five forwarder services used on the sensor, each for forwarding a different type of log or sensor metric. + +### filebeat: Zeek log forwarding + +[Filebeat](https://www.elastic.co/products/beats/filebeat) is used to forward [Zeek](https://www.zeek.org/) logs to a remote [Logstash](https://www.elastic.co/products/logstash) instance for further enrichment prior to insertion into an [Elasticsearch](https://www.elastic.co/products/elasticsearch) database. + +To configure filebeat, first provide the log path (the same path previously configured for Zeek log file generation). You must also provide the IP address of the Logstash instance to which the logs are to be forwarded, and the port on which Logstash is listening. These logs are forwarded using the Beats protocol, generally over port 5044. Depending on your network configuration, you may need to open this port in your firewall to allow this connection from the sensor to the aggregator. + +![Configure filebeat for Zeek log forwrding](./docs/images/filebeat_dest.png) + +Next you are asked whether the connection used for Zeek log forwarding should be done **unencrypted** or over **SSL**. Unencrypted communication requires less processing overhead and is simpler to configure, but the contents of the logs may be visible to anyone who is able to intercept that traffic. + +![Filebeat SSL certificate verification](./docs/images/filebeat_ssl.png) + +If **SSL** is chosen, you must choose whether to enable [SSL certificate verification](https://www.elastic.co/guide/en/beats/filebeat/current/configuring-ssl-logstash.html). If you are using a self-signed certificate (such as the one automatically created during [Malcolm's configuration](https://github.com/cisagov/malcolm#configure-authentication), choose **None**. + +![Unencrypted vs. SSL encryption for Zeek log forwarding](./docs/images/filebeat_ssl_verify.png) + +The last step for SSL-encrypted Zeek log forwarding is to specify the SSL certificate authority, certificate, and key files. These files must match those used by the Logstash instance receiving the Zeek logs on the aggregator. If Malcolm's `auth_setup` script was used to generate these files they would be found in the `filebeat/certs/` subdirectory of the Malcolm installation and must be manually copied to the sensor (stored under `/opt/sensor/sensor_ctl/filebeat/` or in any other path accessible to the sensor account). Specify the location of the certificate authorities file (eg., `ca.crt`), the certificate file (eg., `client.crt`), and the key file (eg., `client.key`). + +![SSL certificate files](./docs/images/filebeat_certs.png) + +The Logstash instance receiving the events must be similarly configured with matching SSL certificate and key files. Under Malcolm, the `BEATS_SSL` variable must be set to true in Malcolm's `docker-compose.yml` file and the SSL files must exist in the `logstash/certs/` subdirectory of the Malcolm installation. + +Once you have specified all of the filebeat parameters, you will be presented with a summary of the settings related to the forwarding of these logs. Selecting **OK** will cause the parameters to be written to filebeat’s configuration keystore under `/opt/sensor/sensor_ctl/filebeat` and you will be returned to the configuration tool’s welcome screen. + +![Confirm filebeat settings](./docs/images/filebeat_confirm.png) + +### moloch-capture: Arkime session forwarding + +[moloch-capture](https://github.com/arkime/arkime/tree/master/capture) is not only used to capture PCAP files, but also the parse raw traffic into sessions and forward this session metadata to an [Elasticsearch](https://www.elastic.co/products/elasticsearch) database so that it can be viewed in [Arkime viewer](https://molo.ch/), whether standalone or as part of a [Malcolm](https://github.com/cisagov/malcolm) instance. If you're using Hedgehog Linux with Malcolm, please read [Correlating Zeek logs and Arkime sessions](https://github.com/cisagov/malcolm#ZeekArkimeFlowCorrelation) in the Malcolm documentation for more information. + +First, select the Elasticsearch connection transport protocol, either **HTTPS** or **HTTP**. If the metrics are being forwarded to Malcolm, select **HTTPS** to encrypt messages from the sensor to the aggregator using TLS v1.2 using ECDHE-RSA-AES128-GCM-SHA256. If **HTTPS** is chosen, you must choose whether to enable SSL certificate verification. If you are using a self-signed certificate (such as the one automatically created during [Malcolm's configuration](https://github.com/cisagov/malcolm#configure-authentication)), choose **None**. + +![Elasticsearch connection protocol](./docs/images/metricbeat_elastic_protocol.png) ![Elasticsearch SSL verification](./docs/images/metricbeat_elastic_ssl.png) + +Next, enter the **Elasticsearch host** IP address (ie., the IP address of the aggregator) and port. These metrics are written to an Elasticsearch database using a RESTful API, usually using port 9200. Depending on your network configuration, you may need to open this port in your firewall to allow this connection from the sensor to the aggregator. + +![Elasticsearch host and port](./docs/images/moloch-capture-ip-port.png) + +You will be asked to enter authentication credentials for the sensor’s connections to the aggregator’s Elasticsearch API. After you’ve entered the username and the password, the sensor will attempt a test connection to Elasticsearch using the connection information provided. + +![Elasticsearch username](./docs/images/elasticsearch-username.png) ![Elasticsearch password](./docs/images/elasticsearch_password.png) ![Successful Elasticsearch connection](./docs/images/metricbeat_elasticsearch_success.png) + +Finally, you will be shown a dialog for a list of IP addresses used to populate an access control list (ACL) for hosts allowed to connect back to the sensor for retrieving session payloads from its PCAP files for display in Arkime viewer. The list will be prepopulated with the IP address entered a few screens prior to this one. + +![PCAP retrieval ACL](./docs/images/malcolm_moloch_reachback_acl.png) + +Finally, you’ll be given the opportunity to review the all of the moloch-capture forwrading options you’ve specified. Selecting **OK** will cause the parameters to be saved and you will be returned to the configuration tool’s welcome screen. + +![moloch-capture settings confirmation](./docs/images/moloch_confirm.png) ![moloch-capture settings applied successfully](./docs/images/moloch_success.png) + +### metricbeat: resource statistics forwarding + +The sensor uses [metricbeat](https://www.elastic.co/products/beats/metricbeat) to forward system resource metrics (CPU, network I/O, disk I/O, memory utilization, etc.) to an Elasticsearch database using a RESTful API using HTTP/HTTPS as the transport protocol. Select **metricbeat** from the forwarding configuration mode options. + +Metricbeat gathers system resource metrics at an interval you specify. The default interval is 30 seconds, but it can be set to any value between 1 and 60 seconds. + +![Metricbeat interval](./docs/images/metricbeat_interval.png) + +Next, select the Elasticsearch connection transport protocol, either **HTTPS** or **HTTP**. If the metrics are being forwarded to Malcolm, select **HTTPS** to encrypt messages from the sensor to the aggregator using TLS v1.2 using ECDHE-RSA-AES128-GCM-SHA256. If **HTTPS** is chosen, you must choose whether to enable SSL certificate verification. If you are using a self-signed certificate (such as the one automatically created during [Malcolm's configuration](https://github.com/cisagov/malcolm#configure-authentication), choose **None**. + +![Elasticsearch connection protocol](./docs/images/metricbeat_elastic_protocol.png) ![Elasticsearch SSL verification](./docs/images/metricbeat_elastic_ssl.png) + +Next, enter the **Elasticsearch host** IP address (ie., the IP address of the aggregator) and port. These metrics are written to an Elasticsearch database using a RESTful API, usually using port 9200. Depending on your network configuration, you may need to open this port in your firewall to allow this connection from the sensor to the aggregator. + +![Elasticsearch host and port](./docs/images/metricbeat_elastic_host.png) + +Next, you will be asked if you wish to configure **Kibana** connectivity. [Kibana](https://www.elastic.co/products/kibana) is the Elastic Stack’s data visualization tool. If you choose **Yes** and proceed to configure Kibana connectivity, metricbeat will create custom search indexes, visualizations, and dashboards for Kibana to display the sensor’s resource metrics. + +You will be prompted to specify the **connection protocol** and (for HTTPS) **SSL verification** for Kibana. These values should probably be the same ones you chose for Elasticsearch. You will also be prompted for the **Kibana host** IP address and **port**. The IP address will probably be the same one you specified for Elasticsearch. The default Kibana port is 5601. + +The final settings required to configure Kibana are whether or not to configure **Kibana dashboards** and the local directory on the sensor containing the dashboards to be imported. The default values are probably what you want. + +Finally, you will be asked to enter authentication credentials for the sensor’s connections to the aggregator’s Elasticsearch and Kibana APIs. + +After you’ve entered the username and the password, the sensor will attempt test connections to the Elasticsearch and Kibana APIs using the connection information provided. + +![Elasticsearch/Kibana username](./docs/images/metricbeat_elastic_username.png) ![Elasticsearch/Kibana password](./docs/images/metricbeat_elastic_password.png) ![Successful Elasticsearch connection](./docs/images/metricbeat_elasticsearch_success.png) ![Successful Kibana connection](./docs/images/metricbeat_kibana_success.png) + +Finally, you’ll be given the opportunity to review the all of the metricbeat options you’ve specified. Selecting **OK** will cause the parameters to be written to metricbeat’s configuration keystore under `/opt/sensor/sensor_ctl/metricbeat` and you will be returned to the configuration tool’s welcome screen. + +![Metricbeat settings confirmation](./docs/images/metricbeat_confirm.png) ![Metricbeat settings applied successfully](./docs/images/metricbeat_success.png) + +### auditbeat: audit log forwarding + +The sensor uses [auditbeat](https://www.elastic.co/products/beats/auditbeat) to forward auditd logs, process and socket statistics, and sensor system file integrity information to an Elasticsearch database. Its configuration is almost identical to that of metricbeat in the previous section. Select **auditbeat** from the forwarding configuration mode options and follow the same steps outlined above to set up this forwarder. + +The sensor implements STIG (Security Technical Implementation Guidelines) rules according to DISA RHEL 7 STIG V1 R1, ported to a Debian 9 base platform. Enabling audit log forwarding via auditbeat is required to satisfy the requirements regarding forwarding audit logs to a remote log server as defined in that specification. + +### filebeat-syslog: syslog forwarding + +The sensor uses [filebeat’s syslog input](https://www.elastic.co/guide/en/beats/filebeat/master/filebeat-input-syslog.html) to forward the sensor’s system logs to an Elasticsearch database. Its configuration is almost identical to that of metricbeat in a previous section. Select **filebeat-syslog** from the forwarding configuration mode options and follow the same steps outlined above to set up this forwarder. + +Enabling syslog forwarding via filebeat is required to satisfy the STIG requirements regarding sending system logs to a remote log server as defined in that specification. + +### heatbeat: temperature forwarding + +The sensor employs a custom agent using the beats protocol to forward hardware metrics such as CPU and storage device temperatures, system voltages, and fan speeds (when applicable) to an Elasticsearch database. Its configuration is almost identical to that of metricbeat in a previous section. Select **heatbeat** from the forwarding configuration mode options and follow the same steps outlined above to set up this forwarder. + +### Autostart services + +Once the forwarders have been configured, the final step is to **Configure Autostart Services**. Choose this option from the configuration mode menu after the welcome screen of the sensor configuration tool. + +Despite configuring capture and/or forwarder services as described in previous sections, only services enabled in the autostart configuration will run when the sensor starts up. The available autostart processes are as follows (recommended services are in **bold text**): + +* **AUTOSTART_AUDITBEAT** – [auditbeat](#auditbeat) audit log forwarder +* **AUTOSTART_CLAMAV_UPDATES** – Virus database update service for ClamAV (requires sensor to be connected to the internet) +* **AUTOSTART_FILEBEAT** – [filebeat](#filebeat) Zeek log forwarder +* **AUTOSTART_HEATBEAT** – [sensor hardware](#heatbeat) (eg., CPU and storage device temperature) metrics forwarder +* **AUTOSTART_HEATBEAT_SENSORS** – the background process monitoring [hardware sensors](#heatbeat) for temperatures, voltages, fan speeds, etc. (this is required in addition to **AUTOSTART_HEATBEAT** metrics forwarding) +* **AUTOSTART_METRICBEAT** – system resource utilization [metrics forwarder](#metricbeat) +* **AUTOSTART_ARKIME** – [moloch-capture](##moloch-capture) PCAP engine for traffic capture, as well as traffic parsing and metadata insertion into Elasticsearch for viewing in [Arkime](https://molo.ch/). If you are using Hedgehog Linux along with [Malcolm](https://github.com/cisagov/malcolm) or another Arkime installation, this is probably the packet capture engine you want to use. +* *AUTOSTART_NETSNIFF* – [netsniff-ng](http://netsniff-ng.org/) PCAP engine for saving packet capture (PCAP) files +* **AUTOSTART_PRUNE_ZEEK** – storage space monitor to ensure that Zeek logs do not consume more than 90% of the total size of the storage volume to which Zeek logs are written +* **AUTOSTART_PRUNE_PCAP** – storage space monitor to ensure that PCAP files do not consume more than 90% of the total size of the storage volume to which PCAP files are written +* **AUTOSTART_SYSLOGBEAT** – filebeat [system log forwarder](#syslogbeat) +* *AUTOSTART_TCPDUMP* – [tcpdump](https://www.tcpdump.org/) PCAP engine for saving packet capture (PCAP) files +* **AUTOSTART_ZEEK** – [Zeek](https://www.zeek.org/) traffic analysis engine + +Note that only one packet capture engine ([moloch-capture](https://molo.ch/), [netsniff-ng](http://netsniff-ng.org/), or [tcpdump](https://www.tcpdump.org/)) can be used. + +![Autostart services](./docs/images/autostarts.png) + +Once you have selected the autostart services, you will be prompted to confirm your selections. Doing so will cause these values to be written back out to the `/opt/sensor/sensor_ctl/control_vars.conf` configuration file. + +![Autostart services confirmation](./docs/images/autostarts_confirm.png) + +After you have completed configuring the sensor it is recommended that you reboot the sensor to ensure all new settings take effect. If rebooting is not an option, you may click the **Restart Sensor Services** menu icon in the top menu bar, or open a terminal and run: + +``` +/opt/sensor/sensor_ctl/shutdown && sleep 10 && /opt/sensor/sensor_ctl/supervisor.sh +``` + +This will cause the sensor services controller to stop, wait a few seconds, and restart. You can check the status of the sensor’s processes by choosing **Sensor Status** from the sensor’s kiosk mode, double-clicking the **Sensor Service Status** desktop icon, or running `/opt/sensor/sensor_ctl/status` from the command line: + +``` +$ /opt/sensor/sensor_ctl/status +beats:auditbeat RUNNING pid 14470, uptime 8 days, 20:22:32 +beats:filebeat RUNNING pid 14460, uptime 8 days, 20:22:32 +beats:heatbeat RUNNING pid 14481, uptime 8 days, 20:22:32 +beats:metricbeat RUNNING pid 14476, uptime 8 days, 20:22:32 +beats:sensors RUNNING pid 14484, uptime 8 days, 20:22:32 +beats:syslogbeat RUNNING pid 14471, uptime 8 days, 20:22:32 +clamav:clamav-service RUNNING pid 14454, uptime 8 days, 20:22:32 +clamav:clamav-updates RUNNING pid 14450, uptime 8 days, 20:22:32 +moloch:moloch-capture RUNNING pid 14432, uptime 8 days, 20:22:32 +moloch:moloch-viewer RUNNING pid 14431, uptime 8 days, 20:22:32 +netsniff:netsniff-enp8s0 STOPPED Not started +prune:prune-pcap RUNNING pid 14446, uptime 8 days, 20:22:32 +prune:prune-zeek RUNNING pid 14442, uptime 8 days, 20:22:32 +tcpdump:tcpdump-enp8s0 STOPPED Not started +zeek:logger RUNNING pid 14434, uptime 8 days, 20:22:32 +zeek:virustotal RUNNING pid 14435, uptime 8 days, 20:22:32 +zeek:yara RUNNING pid 14435, uptime 8 days, 20:22:32 +zeek:capa RUNNING pid 14435, uptime 8 days, 20:22:32 +zeek:clamav RUNNING pid 14435, uptime 8 days, 20:22:32 +zeek:watcher RUNNING pid 14441, uptime 8 days, 20:22:32 +zeek:zeekctl RUNNING pid 14433, uptime 8 days, 20:22:32 +``` + +# Appendix A - Generating the ISO + +Official downloads of the Hedgehog Linux installer ISO are not provided: however, it can be built easily on an internet-connected Linux host running current versions of [VirtualBox](https://www.virtualbox.org/) and [Vagrant](https://www.vagrantup.com/) (with the [`vagrant-reload`](https://github.com/aidanns/vagrant-reload) plugin). + +To perform a clean build the Hedgehog Linux installer ISO, navigate to your local [Malcolm](https://github.com/cisagov/Malcolm/) working copy and run: + +``` +$ ./sensor-iso/build_via_vagrant.sh -f +… +Starting build machine... +Bringing machine 'default' up with 'virtualbox' provider... +… +``` + +Building the ISO may take 90 minutes or more depending on your system. As the build finishes, you will see the following message indicating success: + +``` +… +Finished, created "/sensor-build/hedgehog-3.2.1.iso" +… +``` + +# Appendix B - Configuring SSH access + +SSH access to the sensor’s non-privileged sensor account is only available using secure key-based authentication which can be enabled by adding a public SSH key to the **/home/sensor/.ssh/authorized_keys** file as illustrated below: + +``` +sensor@sensor:~$ mkdir -p ~/.ssh + +sensor@sensor:~$ ssh analyst@172.16.10.48 "cat ~/.ssh/id_rsa.pub" >> ~/.ssh/authorized_keys +The authenticity of host '172.16.10.48 (172.16.10.48)' can't be established. +ECDSA key fingerprint is SHA256:... +Are you sure you want to continue connecting (yes/no)? yes +Warning: Permanently added '172.16.10.48' (ECDSA) to the list of known hosts. +analyst@172.16.10.48's password: + +sensor@sensor:~$ cat ~/.ssh/authorized_keys +ssh-rsa AAA...kff analyst@SOC +``` + +SSH access should only be configured when necessary. + +# Appendix C - Troubleshooting + +Should the sensor not function as expected, first try rebooting the device. If the behavior continues, here are a few things that may help you diagnose the problem (items which may require Linux command line use are marked with **†**) + +* Stop / start services – Using the sensor’s kiosk mode, attempt a **Services Stop** followed by a **Services Start**, then check **Sensor Status** to see which service(s) may not be running correctly. +* Sensor configuration file – See `/opt/sensor/sensor_ctl/control_vars.conf` for sensor service settings. It is not recommended to manually edit this file unless you are sure of what you are doing. +* Sensor control scripts – There are scripts under ``/opt/sensor/sensor_ctl/`` to control sensor services (eg., `shutdown`, `start`, `status`, `stop`, etc.) +* Sensor debug logs – Log files under `/opt/sensor/sensor_ctl/log/` may contain clues to processes that are not working correctly. If you can determine which service is failing, you can attempt to reconfigure it using the instructions in the Configure Capture and Forwarding section of this document. +* `sensorwatch` script – Running `sensorwatch` on the command line will display the most recently modified PCAP and Zeek log files in their respective directories, how much storage space they are consuming, and the amount of used/free space on the volumes containing those files. + +# Appendix D - Hardening + +Hedgehog Linux targets the following guidelines for establishing a secure configuration posture: + +* DISA STIG (Security Technical Implementation Guides) [ported](https://github.com/hardenedlinux/STIG-4-Debian) from [DISA RHEL 7 STIG](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/) v1r1 to a Debian 9 base platform +* [CIS Debian Linux 9 Benchmark](https://www.cisecurity.org/cis-benchmarks/cis-benchmarks-faq/) with additional recommendations by the [hardenedlinux/harbian-audit](https://github.com/hardenedlinux/harbian-audit) project + +## STIG compliance exceptions + +[Currently](https://github.com/hardenedlinux/STIG-4-Debian/blob/master/stig-debian.txt) there are 158 compliance checks that can be verified automatically and 23 compliance checks that must be verified manually. + +Hedgehog Linux claims the following exceptions to STIG compliance: + +| # | ID | Title | Justification | +| --- | --- | --- | --- | +| 1 | [SV-86535r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71911) | When passwords are changed a minimum of eight of the total number of characters must be changed. | Account/password policy exception: As a sensor running Hedgehog Linux is intended to be used as an appliance rather than a general user-facing software platform, some exceptions to password enforcement policies are claimed. | +| 2 | [SV-86537r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71913) | When passwords are changed a minimum of four character classes must be changed. | Account/password policy exception | +| 3 | [SV-86549r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71925) | Passwords for new users must be restricted to a 24 hours/1 day minimum lifetime. | Account/password policy exception | +| 4 | [SV-86551r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71927) | Passwords must be restricted to a 24 hours/1 day minimum lifetime. | Account/password policy exception | +| 5 | [SV-86553r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71929) | Passwords for new users must be restricted to a 60-day maximum lifetime. | Account/password policy exception | +| 6 | [SV-86555r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71931) | Existing passwords must be restricted to a 60-day maximum lifetime. | Account/password policy exception | +| 7 | [SV-86557r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71933) | Passwords must be prohibited from reuse for a minimum of five generations. | Account/password policy exception | +| 8 | [SV-86565r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71941) | The operating system must disable account identifiers (individuals, groups, roles, and devices) if the password expires. | Account/password policy exception | +| 9 | [SV-86567r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71943) | Accounts subject to three unsuccessful logon attempts within 15 minutes must be locked for the maximum configurable period. | Account/password policy exception | +| 10 | [SV-86569r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71945) | If three unsuccessful root logon attempts within 15 minutes occur the associated account must be locked. | Account/password policy exception | +| 11 | [SV-86603r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2018-11-28/finding/V-71979) | The … operating system must prevent the installation of software, patches, service packs, device drivers, or operating system components of local packages without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization. | As the base distribution is not using embedded signatures, `debsig-verify` would reject all packages (see comment in `/etc/dpkg/dpkg.cfg`). Enabling it after installation would disallow any future updates. | +| 12 | [SV-86607r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71983) | USB mass storage must be disabled. | The ability to copy data captured by the sensor to a mounted USB mass storage device is a requirement of the system. | +| 13 | [SV-86609r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71985) | File system automounter must be disabled unless required. | The ability to copy data captured by the sensor to a mounted USB mass storage device is a requirement of the system. | +| 14 | [SV-86705r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72081) | The operating system must shut down upon audit processing failure, unless availability is an overriding concern. If availability is a concern, the system must alert the designated staff (System Administrator [SA] and Information System Security Officer [ISSO] at a minimum) in the event of an audit processing failure. | As maximizing availability is a system requirement, audit processing failures will be logged on the device rather than halting the system. | +| 15 | [SV-86713r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72089) | The operating system must immediately notify the System Administrator (SA) and Information System Security Officer ISSO (at a minimum) when allocated audit record storage volume reaches 75% of the repository maximum audit record storage capacity. | As a sensor running Hedgehog Linux is intended to be used as an appliance rather than a general network host, notifications of this sort are sent in system logs forwarded to the Elasticsearch database on the aggregator. `auditd` is set up to syslog when this storage volume is reached. | +| 16 | [SV-86715r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72093) | The operating system must immediately notify the System Administrator (SA) and Information System Security Officer (ISSO) (at a minimum) when the threshold for the repository maximum audit record storage capacity is reached. | As a sensor running Hedgehog Linux is intended to be used as an appliance rather than a general network host, notifications of this sort are sent in system logs forwarded to the Elasticsearch database on the aggregator. `auditd` is set up to syslog when this storage volume is reached. | +| 17 | [SV-86837r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_6/2016-12-16/finding/V-38666) | The system must use and update a DoD-approved virus scan program. | As this is a network traffic capture appliance rather than an end-user device and will not be internet-connected, regular user files will not be created. A virus scan program would impact device performance and would be unnecessary. | +| 18 | [SV-86839r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72215) | The system must update the virus scan program every seven days or more frequently. | As this is a network traffic capture appliance rather than an end-user device and will not be internet-connected, regular user files will not be created. A virus scan program would impact device performance and would be unnecessary. | +| 19 | [SV-86847r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72223) | All network connections associated with a communication session must be terminated at the end of the session or after 10 minutes of inactivity from the user at a command prompt, except to fulfill documented and validated mission requirements. | The sensor may be controlled from the command line in a manual capture scenario, so timing out a session based on command prompt inactivity would be inadvisable. | +| 20 | [SV-86893r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72269) | The operating system must, for networked systems, synchronize clocks with a server that is synchronized to one of the redundant United States Naval Observatory (USNO) time servers, a time server designated for the appropriate DoD network (NIPRNet/SIPRNet), and/or the Global Positioning System (GPS). | While [time synchronization](#ConfigTime) is supported on Hedgehog Linux, an exception is claimed for this rule as the network sensor device may be configured to sync to servers other than the ones listed in the STIG. | +| 21 | [SV-86905r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72281) | For systems using DNS resolution, at least two name servers must be configured. | STIG recommendations for DNS servers are not enforced on Hedgehog Linux to allow for use in a variety of network scenarios. | +| 22 | [SV-86919r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72295) | Network interfaces must not be in promiscuous mode. | The purpose of Hedgehog Linux is to sniff and capture network traffic. | +| 23 | [SV-86931r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72307) | An X Windows display manager must not be installed unless approved. | A locked-down X Windows session is required for the sensor's kiosk display. | +| 24 | [SV-86519r3](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71895) | The operating system must set the idle delay setting for all connection types. | As this is a network traffic capture appliance rather than an end-user device, timing out displays or connections would not be desireable. | +| 25 | [SV-86523r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71899) | The operating system must initiate a session lock for the screensaver after a period of inactivity for graphical user interfaces. | This option is configurable during install time. Some installations of Hedgehog Linux may be on appliance hardware not equipped with a keyboard by default, in which case it may not be desirable to lock the session.| +| 26 | [SV-86525r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71901) | The operating system must initiate a session lock for graphical user interfaces when the screensaver is activated. | This option is configurable during install time. Some installations of Hedgehog Linux may be on appliance hardware not equipped with a keyboard by default, in which case it may not be desirable to lock the session. | +| 27 | [SV-86589r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71965) | The operating system must uniquely identify and must authenticate organizational users (or processes acting on behalf of organizational users) using multifactor authentication. | As this is a network traffic capture appliance rather than an end-user device or a multiuser network host, this requirement is not applicable. | +| 28 | [SV-86851r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72227) | The operating system must implement cryptography to protect the integrity of Lightweight Directory Access Protocol (LDAP) authentication communications. | Does not apply as Hedgehog Linux does not use LDAP for authentication. | +| 29 | [SV-86921r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72297) | The system must be configured to prevent unrestricted mail relaying. | Does not apply as Hedgehog Linux does not run a mail service. | +| 30 | [SV-86929r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72305) | If the Trivial File Transfer Protocol (TFTP) server is required, the TFTP daemon must be configured to operate in secure mode. | Does not apply as Hedgehog Linux does not run a TFTP server. | +| 31 | [SV-86935r3](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72311) | The Network File System (NFS) must be configured to use RPCSEC_GSS. | Does not apply as Hedgehog Linux does not run an NFS server. | +| 32 | [SV-87041r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72417) | The operating system must have the required packages for multifactor authentication installed. | As this is a network traffic capture appliance rather than an end-user device or a multiuser network host, this requirement is not applicable. | +| 33 | [SV-87051r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72427) | The operating system must implement multifactor authentication for access to privileged accounts via pluggable authentication modules (PAM). | As this is a network traffic capture appliance rather than an end-user device or a multiuser network host, this requirement is not applicable. | +| 34 | [SV-87059r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72435) | The operating system must implement smart card logons for multifactor authentication for access to privileged accounts. | As this is a network traffic capture appliance rather than an end-user device or a multiuser network host, this requirement is not applicable. | +| 35 | [SV-87829r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-73177) | Wireless network adapters must be disabled. | As an appliance intended to capture network traffic in a variety of network environments, wireless adapters may be needed to capture and/or report wireless traffic. | +| 36 | [SV-86699r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72075) | The system must not allow removable media to be used as the boot loader unless approved. | Hedgehog Linux supports a live boot mode that can be booted from removable media. | + +Please review the notes for these additional rules. While not claiming an exception, they may be implemented or checked in a different way than outlined by the RHEL STIG as Hedgehog Linux is not built on RHEL or for other reasons. + +| # | ID | Title | Note | +| --- | --- | --- | --- | +| 1 | [SV-86585r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71961) | Systems with a Basic Input/Output System (BIOS) must require authentication upon booting into single-user and maintenance modes. | Although the [compliance check script](https://github.com/hardenedlinux/STIG-4-Debian) does not detect it, booting into recovery mode *does* in fact require the root password. | +| 2 | [SV-86587r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71963) | Systems using Unified Extensible Firmware Interface (UEFI) must require authentication upon booting into single-user and maintenance modes. | Although the [compliance check script](https://github.com/hardenedlinux/STIG-4-Debian) does not detect it, booting into recovery mode *does* in fact require the root password. | +| 3 | [SV-86651r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72027) | All files and directories contained in local interactive user home directories must have mode 0750 or less permissive. | Depending on when the [compliance check script](https://github.com/hardenedlinux/STIG-4-Debian) is run, some nonessential ephemeral files may exist in the `sensor` home directory which will cause this check to fail. For practical purposes Hedgehog Linux's configuration does, however, comply. This file list can be checked manually by running `find /home/sensor -type f -perm /027 -exec ls -l '{}' ';'`.| +| 4 | [SV-86693r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72069) | The file integrity tool must be configured to verify Access Control Lists (ACLs). | [Auditbeat](https://www.elastic.co/products/beats/auditbeat) is managing file integrity checks instead of the `aide` specified for use in the RHEL STIG. Additionally, as this is not a multi-user system, the ACL check would be irrelevant. | +| 5 | [SV-86597r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-71973) | A file integrity tool must verify the baseline operating system configuration at least weekly. | [Auditbeat](https://www.elastic.co/products/beats/auditbeat) is managing file integrity checks instead of the `aide` specified for use in the RHEL STIG. | +| 6 | [SV-86697r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72073) | The file integrity tool must use FIPS 140-2 approved cryptographic hashes for validating file contents and directories. | [Auditbeat](https://www.elastic.co/products/beats/auditbeat) is managing file integrity checks instead of the `aide` specified for use in the RHEL STIG. Auditbeat uses SHA1 which is FIPS 140-2 approved. | +| 7 | [SV-86623r3](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-71999) | Vendor packaged system security patches and updates must be installed and up to date. | When the Hedgehog Linux sensor appliance software is built, all of the latest applicable security patches and updates are included in it. How future updates are to be handled is still in design. | +| 8 | [SV-86707r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72083) | The operating system must off-load audit records onto a different system or media from the system being audited. | [Auditbeat](https://www.elastic.co/products/beats/auditbeat) offloads audit records to an Elasticsearch database on another system, though this is not detected by the [compliance check script](https://github.com/hardenedlinux/STIG-4-Debian). | +| 9 | [SV-86709r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-72085) | The operating system must encrypt the transfer of audit records off-loaded onto a different system or media from the system being audited. | [Auditbeat](https://www.elastic.co/products/beats/auditbeat) offloads (via an encrypted channel) audit records to an Elasticsearch database on another system, though this is not detected by the [compliance check script](https://github.com/hardenedlinux/STIG-4-Debian). | +| 10 | [SV-86833r1](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72209) | The system must send rsyslog output to a log aggregation server. | Syslogs are forwarded to an Elasticsearch database running on another system via [filebeat](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-syslog.html), though this is not detected by the [compliance check script](https://github.com/hardenedlinux/STIG-4-Debian). | +| 11 | [SV-87815r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-12-14/finding/V-73163) | The audit system must take appropriate action when there is an error sending audit records to a remote system. | [Auditbeat](https://www.elastic.co/products/beats/auditbeat) offloads audit records to an Elasticsearch database on another system, though this is not detected by the [compliance check script](https://github.com/hardenedlinux/STIG-4-Debian). Local logs are generated when this network connection is broken, and it resumes automatically. | +| 12 | [SV-86691r2](https://www.stigviewer.com/stig/red_hat_enterprise_linux_7/2017-07-08/finding/V-72067) | The operating system must implement NIST FIPS-validated cryptography for the following: to provision digital signatures, to generate cryptographic hashes, and to protect data requiring data-at-rest protections in accordance with applicable federal laws, Executive Orders, directives, policies, regulations, and standards. | Hedgehog Linux does use FIPS-compatible libraries for cryptographic functions. However, the kernel parameter being checked by the [compliance check script](https://github.com/hardenedlinux/STIG-4-Debian) is incompatible with some of the systems initialization scripts.| + +In addition, DISA STIG rules SV-86663r1, SV-86695r2, SV-86759r3, SV-86761r3, SV-86763r3, SV-86765r3, SV-86595r1, and SV-86615r2 relate to the SELinux kernel which is not used in Hedgehog Linux, and are thus skipped. + +## CIS benchmark compliance exceptions + +[Currently](https://github.com/hardenedlinux/harbian-audit/tree/master/bin/hardening) there are 271 checks to determine compliance with the CIS Debian Linux 9 Benchmark. + +Hedgehog Linux claims exceptions from the recommendations in this benchmark in the following categories: + +**1.1 Install Updates, Patches and Additional Security Software** - When the Hedgehog Linux sensor appliance software is built, all of the latest applicable security patches and updates are included in it. How future updates are to be handled is still in design. + +**1.3 Enable verify the signature of local packages** - As the base distribution is not using embedded signatures, `debsig-verify` would reject all packages (see comment in `/etc/dpkg/dpkg.cfg`). Enabling it after installation would disallow any future updates. + +**2.14 Add nodev option to /run/shm Partition**, **2.15 Add nosuid Option to /run/shm Partition**, **2.16 Add noexec Option to /run/shm Partition** - Hedgehog Linux does not mount `/run/shm` as a separate partition, so these recommendations do not apply. + +**2.18 Disable Mounting of cramfs Filesystems**, **2.19 Disable Mounting of freevxfs Filesystems**, **2.20 Disable Mounting of jffs2 Filesystems**, **2.21 Disable Mounting of hfs Filesystems**, **2.22 Disable Mounting of hfsplus Filesystems**, **2.23 Disable Mounting of squashfs Filesystems**, **2.24 Disable Mounting of udf Filesystems** - Hedgehog Linux is not compiling a custom Linux kernel, so these filesystems are inherently supported as they are part Debian Linux's default kernel. + +**4.6 Disable USB Devices** - The ability to copy data captured by the sensor to a mounted USB mass storage device is a requirement of the system. + +**6.1 Ensure the X Window system is not installed**, **6.2 Ensure Avahi Server is not enabled**, **6.3 Ensure print server is not enabled** - A locked-down X Windows session is required for the sensor's kiosk display. The library packages `libavahi-common-data`, `libavahi-common3`, and `libcups2` are dependencies of some of the X components used by Hedgehog Linux, but the `avahi` and `cups` services themselves are disabled. + +**6.17 Ensure virus scan Server is enabled**, **6.18 Ensure virus scan Server update is enabled** - As this is a network traffic capture appliance rather than an end-user device and will not be internet-connected, regular user files will not be created. A virus scan program would impact device performance and would be unnecessary. + +**7.2.4 Log Suspicious Packets**, **7.2.7 Enable RFC-recommended Source Route Validation**, **7.4.1 Install TCP Wrappers** - As this is a network traffic capture appliance sniffing packets on a network interface configured in promiscuous mode, these recommendations do not apply. + +Password-related recommendations under **9.2** and **10.1** - The library package `libpam-pwquality` is used in favor of `libpam-cracklib` which is what the [compliance scripts](https://github.com/hardenedlinux/harbian-audit/tree/master/bin/hardening) are looking for. Also, as a sensor running Hedgehog Linux is intended to be used as an appliance rather than a general user-facing software platform, some exceptions to password enforcement policies are claimed. + +**9.3.13 Limit Access via SSH** - Hedgehog Linux does not create multiple regular user accounts: only `root` and a `sensor` service account are used. SSH access for `root` is disabled. SSH login with a password is also disallowed: only key-based authentication is accepted. The `sensor` service account accepts no keys by default. As such, the `AllowUsers`, `AllowGroups`, `DenyUsers`, and `DenyGroups` values in `sshd_config` do not apply. + +**9.5 Restrict Access to the su Command** - Hedgehog Linux does not create multiple regular user accounts: only `root` and a `sensor` service account are used. + +**10.1.10 Set maxlogins for all accounts** and **10.5 Set Timeout on ttys** - Hedgehog Linux does not create multiple regular user accounts: only `root` and a `sensor` service account are used. + +**12.10 Find SUID System Executables**, **12.11 Find SGID System Executables** - The few files found by [these](https://github.com/hardenedlinux/harbian-audit/blob/master/bin/hardening/12.10_find_suid_files.sh) [scripts](https://github.com/hardenedlinux/harbian-audit/blob/master/bin/hardening/12.11_find_sgid_files.sh) are valid exceptions required by Hedgehog Linux's system requirements. + +Please review the notes for these additional guidelines. While not claiming an exception, Hedgehog Linux may implement them in a manner different than is described by the [CIS Debian Linux 9 Benchmark](https://www.cisecurity.org/cis-benchmarks/cis-benchmarks-faq/) or the [hardenedlinux/harbian-audit](https://github.com/hardenedlinux/harbian-audit) audit scripts. + +**4.1 Restrict Core Dumps** - Hedgehog Linux disables core dumps using a configuration file for `ulimit` named `/etc/security/limits.d/limits.conf`. The [audit script](https://github.com/hardenedlinux/harbian-audit/blob/master/bin/hardening/4.1_restrict_core_dumps.sh) checking for this does not check the `limits.d` subdirectory, which is why this is incorrectly flagged as noncompliant. + +**5.4 Ensure ctrl-alt-del is disabled** - Hedgehog Linux disables the `ctrl+alt+delete` key sequence by executing `systemctl disable ctrl-alt-del.target` during installation and the command `systemctl mask ctrl-alt-del.target` at boot time. + +**6.19 Configure Network Time Protocol (NTP)** - While [time synchronization](#ConfigTime) is supported on Hedgehog Linux, an exception is claimed for this rule as the network sensor device may be configured to sync to servers in a different way than specified in the benchmark. + +**7.4.4 Create /etc/hosts.deny**, **7.7.1 Ensure Firewall is active**, **7.7.4.1 Ensure default deny firewall policy**, **7.7.4.3 Ensure default deny firewall policy**, **7.7.4.4 Ensure outbound and established connections are configured** - Hedgehog Linux **is** configured with an appropriately locked-down software firewall (managed by "Uncomplicated Firewall" `ufw`). However, the methods outlined in the CIS benchmark recommendations do not account for this configuration. + +**8.1.1.2 Disable System on Audit Log Full**, **8.1.1.3 Keep All Auditing Information**, **8.1.1.5 Ensure set remote server for audit service**, **8.1.1.6 Ensure enable_krb5 set to yes for remote audit service**, **8.1.1.7 Ensure set action for audit storage volume is fulled**, **8.1.1.9 Set space left for auditd service**, a few other audit-related items under section **8.1**, **8.2.5 Configure rsyslog to Send Logs to a Remote Log Host** - As maximizing availability is a system requirement, audit processing failures will be logged on the device rather than halting the system. Because Hedgehog Linux is intended to be used as an appliance rather than a general network host, notifications about its status are sent in system logs forwarded to the Elasticsearch database on the aggregator. `auditd` is set up to syslog when this storage volume is reached. [Auditbeat](https://www.elastic.co/products/beats/auditbeat) offloads audit records to an Elasticsearch database on another system, though this is not detected by the [CIS benchmark compliance scripts](https://github.com/hardenedlinux/harbian-audit/tree/master/bin/hardening). Local logs are generated when the network connection is broken, and it resumes automatically. Syslog messages are also similarly forwarded. + +**8.4.1 Install aide package** and **8.4.2 Implement Periodic Execution of File Integrity** - [Auditbeat](https://www.elastic.co/products/beats/auditbeat) is managing file integrity checks instead of the `aide` utility. + +**8.7 Verifies integrity all packages** - The [script](https://github.com/hardenedlinux/harbian-audit/blob/master/bin/hardening/8.7_verify_integrity_packages.sh) which verifies package integrity only "fails" because of missing (status `??5??????` displayed by the utility) language ("locale") files, which are removed as part of Hedgehog Linux's trimming-down process. All non-locale-related system files pass intergrity checks. + +# Appendix E - Upgrades + +At this time there is not an "official" upgrade procedure to get from one release of Hedgehog Linux to the next. Upgrading the underlying operating system packages is generally straightforward, but not all of the Hedgehog Linux components are packaged into .deb archives yet as they should be, so for now it's a manual (and kind of nasty) process to Frankenstein an upgrade into existance. The author of this project intends to remedy this at some future point when time and resources allow. + +If possible, it would save you **a lot** of trouble to just [re-ISO](#Installation) your Hedgehog installation and start fresh, backing up the files (in `/opt/sensor/sensor_ctl`) first and reconfiguring or restoring them as needed afterwards. + +However, if reinstalling the system is not an option, here is the basic process for doing a manual upgrade of Hedgehog Linux. It should be understood that this process is very likely to break your system, and there is **no** guarantee of any kind that any of this will work, or that these instructions are even complete or any support whatsoever regarding them. Really, it will be **much** easier if you re-ISO your installation. But for the brave among you, here you go. ⛔🆘😭💀 + +## Prerequisites + +* A good understanding of the Linux command line +* An existing installation of Hedgehog Linux **with internet access** +* A copy of the Hedgehog Linux [ISO](#ISOBuild) for the version approximating the one you're upgrading to (i.e., the latest version), **and** + - Either a separate VM with that ISO installed **OR** + - A separate Linux workstation where you can manually mount that ISO to pull stuff off of it + +## Upgrade + +1. Obtain a root shell + - `su -` + +2. Temporarily set the umask value to Debian default instead of the more restrictive Hedgehog Linux default. This will allow updates to be applied with the right permissions. + - `umask 0022` + +3. Create backups of some files + - `cp /etc/apt/sources.list /etc/apt/sources.list.bak` + +4. Set up alternate package sources, if needed + - In an offline/airgapped scenario, you could use [apt-mirror](https://apt-mirror.github.io) to mirror Debian repos and [bandersnatch](https://github.com/pypa/bandersnatch/) to mirror PyPI sources, or [combine them](https://github.com/mmguero/espejo) with Docker. If you were to do this, you'd probably want to make the following changes (and **revert them after the upgrade**): + + create `/etc/apt/apt.conf.d/80ssl-exceptions` to ignore self-signed certificate warnings from using your apt-mirror +``` +Acquire::https { + Verify-Peer "false"; + Verify-Host "false"; +} +``` + + + modify `/etc/apt/source.list` to point to your apt-mirror: + +``` +deb https://XXXXXX:443/debian buster main contrib non-free +deb https://XXXXXX:443/debian-security buster/updates main contrib non-free +deb https://XXXXXX:443/debian buster-updates main contrib non-free +deb https://XXXXXX:443/debian buster-backports main contrib non-free +``` + +5. Update underlying system packages with `apt-get` + - `apt-get update && apt-get dist-upgrade` + +6. If there were [new system deb packages added](https://github.com/cisagov/Malcolm/tree/master/sensor-iso/config/package-lists) to this release of Hedgehog Linux (you might have to [manually compare](https://github.com/cisagov/Malcolm/commits/master/sensor-iso/config/package-lists) on GitHub), install them. If you're not sure, of course, you could just install everything, like this (although you may have to tweak some version numbers or something if the base distribution of your Hedgehog branch is different than `master`; in this example I'm not jumping between Debian releases, just upgrading within a release): +``` +$ for LIST in apps desktopmanager net system; do curl -L -J -O https://raw.github.com/cisagov/Malcolm/master/sensor-iso/config/package-lists/$LIST.list.chroot; done +... +$ apt-get install $(cat *.list.chroot) +``` + +7. Update underlying python packages with `python3 -m pip` + * `apt-get install -y build-essential git-core pkg-config python3-dev` + * `python3 -m pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -r -n1 python3 -m pip install -U` + - if this fails for some reason, you may need to reinstall pip first with `python3 -m pip install --force -U pip` + - some *very* old builds of Hedgehog Linux had separate Python 3.5 and 3.7 installations: in this case, you'd need to do this for both `python3 -m pip` and `python3.7 -m pip` (or whatever `python3.x` you have) + * If there were [new python packages](https://raw.githubusercontent.com/cisagov/Malcolm/master/sensor-iso/config/hooks/normal/0169-pip-installs.hook.chroot) added to this release of Hedgehog Linux (you might have to [manually compare](https://github.com/cisagov/Malcolm/blame/master/sensor-iso/config/hooks/normal/0169-pip-installs.hook.chroot) on GitHub), install them. If you are using a PyPI mirror, replace `XXXXXX` here with your mirror's IP. The `colorama` package is used here as an example, your package list might vary. + - `python3 -m pip install --no-compile --no-cache-dir --force-reinstall --upgrade --index-url=https://XXXXXX:443/pypi/simple --trusted-host=XXXXXX:443 colorama` + +8. Okay, **now** things start to get a little bit ugly. You're going to need access to the ISO of the release of Hedgehog Linux you're upgrading to, as we're going to grab some packages off of it. On another Linux system, [build it](#ISOBuild). + +9. Use a disk image mounter to mount the ISO, **or** if you want to just install the ISO in a VM and grab the files we need off of it, that's fine too. But I'll go through the example as if I've mounted the ISO. + +10. Navigate to the `/live/` directory, and mount the `filesystem.squashfs` file + - `sudo mount filesystem.squashfs /media/squash -t squashfs -o loop` + - **OR** + - `squashfuse filesystem.squashfs /home/user/media/squash` + +11. Very recent builds of Hedgehog Linux keep some build artifacts in `/opt/hedgehog_install_artifacts/`. You're going to want to grab those files and throw them in a temporary directory on the system you're upgrading, via SSH or whatever means you devise. +``` +root@hedgehog:/tmp# scp -r user@otherbox:/media/squash/opt/hedgehog_install_artifacts/ ./ +user@otherbox's password: +auditbeat-tweaked-7.6.2-amd64.deb 100% 13MB 49.3MB/s 00:00 +filebeat-tweaked-7.6.2-amd64.deb 100% 13MB 65.9MB/s 00:00 +metricbeat-tweaked-7.6.2-amd64.deb 100% 18MB 72.0MB/s 00:00 +moloch_2.2.3-1_amd64.deb 100% 113MB 32.2MB/s 00:03 +netsniff-ng_0.6.6-1_amd64.deb 100% 330KB 52.1MB/s 00:00 +packetbeat-tweaked-7.6.2-amd64.deb 100% 14MB 59.2MB/s 00:00 +protologbeat 100% 56MB 38.1MB/s 00:01 +zeek_3.0.20-1_amd64.deb 100% 26MB 63.1MB/s 00:00 +``` + +12. Replace the old `/usr/local/bin/protologbeat` with the new one: +``` +root@hedgehog:/tmp# cp -biv hedgehog_install_artifacts/protologbeat /usr/local/bin/protologbeat +cp: overwrite '/usr/local/bin/protologbeat'? y +'hedgehog_install_artifacts/protologbeat' -> '/usr/local/bin/protologbeat' (backup: '/usr/local/bin/protologbeat~') + +root@hedgehog:/tmp# ls -l /usr/local/bin/protologbeat +-rwxr-xr-x 1 root root 58895456 May 8 15:45 /usr/local/bin/protologbeat + +root@hedgehog:/tmp# /usr/local/bin/protologbeat version +protologbeat version 7.6.0 (amd64), libbeat 7.6.0 [unknown built unknown] +``` + +13. Blow away the old `zeek` package, we're going to start clean with that one particularly. The others should be fine to upgrade in place. +``` +root@hedgehog:/opt# apt-get --purge remove zeek +Reading package lists... Done +Building dependency tree +Reading state information... Done +The following packages will be REMOVED: + zeek* +0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. +After this operation, 160 MB disk space will be freed. +Do you want to continue? [Y/n] y +(Reading database ... 118490 files and directories currently installed.) +Removing zeek (3.0.20-1) ... +dpkg: warning: while removing zeek, directory '/opt/zeek/spool' not empty so not removed +dpkg: warning: while removing zeek, directory '/opt/zeek/share/zeek/site' not empty so not removed +dpkg: warning: while removing zeek, directory '/opt/zeek/lib' not empty so not removed +dpkg: warning: while removing zeek, directory '/opt/zeek/bin' not empty so not removed +root@hedgehog:/opt# rm -rf /opt/zeek* +``` + +14. Install the new .deb files. You're going to have some warnings, but that's okay. +``` +root@hedgehog:/tmp# dpkg -i hedgehog_install_artifacts/*.deb +(Reading database ... 118149 files and directories currently installed.) +Preparing to unpack .../auditbeat-tweaked-7.6.2-amd64.deb ... +Unpacking auditbeat (7.6.2) over (6.8.4) ... +dpkg: warning: unable to delete old directory '/usr/share/auditbeat/kibana/6/dashboard': Directory not empty +dpkg: warning: unable to delete old directory '/usr/share/auditbeat/kibana/6': Directory not empty +Preparing to unpack .../filebeat-tweaked-7.6.2-amd64.deb ... +Unpacking filebeat (7.6.2) over (6.8.4) ... +dpkg: warning: unable to delete old directory '/usr/share/filebeat/kibana/6/dashboard': Directory not empty +dpkg: warning: unable to delete old directory '/usr/share/filebeat/kibana/6': Directory not empty +Preparing to unpack .../metricbeat-tweaked-7.6.2-amd64.deb ... +Unpacking metricbeat (7.6.2) over (6.8.4) ... +Preparing to unpack .../moloch_2.2.3-1_amd64.deb ... +Unpacking moloch (2.2.3-1) over (2.0.1-1) ... +Preparing to unpack .../netsniff-ng_0.6.6-1_amd64.deb ... +Unpacking netsniff-ng (0.6.6-1) over (0.6.6-1) ... +Preparing to unpack .../packetbeat-tweaked-7.6.2-amd64.deb ... +Unpacking packetbeat (7.6.2) over (6.8.4) ... +Preparing to unpack .../zeek_3.0.20-1_amd64.deb ... +Unpacking zeek (3.0.20-1) over (3.0.0-1) ... +Setting up auditbeat (7.6.2) ... +Installing new version of [...] +[...] +Setting up filebeat (7.6.2) ... +Installing new version of [...] +[...] +Setting up metricbeat (7.6.2) ... +Installing new version of [...] +[...] +Setting up moloch (2.2.3-1) ... +READ /data/moloch/README.txt and RUN /data/moloch/bin/Configure +Setting up netsniff-ng (0.6.6-1) ... +Setting up packetbeat (7.6.2) ... +Installing new version of [...] +[...] +Setting up zeek (3.0.20-1) ... +Processing triggers for systemd (232-25+deb9u12) ... +Processing triggers for man-db (2.7.6.1-2) ... +``` + +15. Fix anything that might need fixing as far as the deb package requirements go + - `apt-get -f install` + +16. We just installed a Zeek .deb, but the third-part plugins packages and local config weren't part of that package. So we're going to `rsync` those from the other box where we have the ISO and `filesystem.squashfs` mounted as well: +``` +root@hedgehog:/tmp# rsync -a user@otherbox:/media/squash/opt/zeek/ /opt/zeek +user@otherbox's password: + +root@hedgehog:/tmp# ls -l /opt/zeek/share/zeek/site/ +total 52 +lrwxrwxrwx 1 root root 13 May 6 21:52 bzar -> packages/bzar +lrwxrwxrwx 1 root root 22 May 6 21:50 cve-2020-0601 -> packages/cve-2020-0601 +-rw-r--r-- 1 root root 2031 Apr 30 16:02 extractor.zeek +-rw-r--r-- 1 root root 39134 May 1 14:20 extractor_params.zeek +lrwxrwxrwx 1 root root 14 May 6 21:52 hassh -> packages/hassh +lrwxrwxrwx 1 root root 12 May 6 21:52 ja3 -> packages/ja3 +-rw-rw-r-- 1 root root 2005 May 6 21:54 local.zeek +drwxr-xr-x 13 root root 4096 May 6 21:52 packages +lrwxrwxrwx 1 root root 27 May 6 21:52 zeek-EternalSafety -> packages/zeek-EternalSafety +lrwxrwxrwx 1 root root 26 May 6 21:52 zeek-community-id -> packages/zeek-community-id +lrwxrwxrwx 1 root root 27 May 6 21:51 zeek-plugin-bacnet -> packages/zeek-plugin-bacnet +lrwxrwxrwx 1 root root 25 May 6 21:51 zeek-plugin-enip -> packages/zeek-plugin-enip +lrwxrwxrwx 1 root root 29 May 6 21:51 zeek-plugin-profinet -> packages/zeek-plugin-profinet +lrwxrwxrwx 1 root root 27 May 6 21:52 zeek-plugin-s7comm -> packages/zeek-plugin-s7comm +lrwxrwxrwx 1 root root 24 May 6 21:52 zeek-plugin-tds -> packages/zeek-plugin-tds +``` + +17. The `zeekctl` component of zeek doesn't like being run by an unprivileged user unless the whole directory is owned by that user. As Hedgehog Linux runs everything it can as an unprivileged user, we're going to reset zeek to a "clean" state after each reboot. Zeek's config files will get regenerated when Zeek itself is started. So, now make a complete backup of `/opt/zeek` as it's going to have its ownership changed during runtime: +``` +root@hedgehog:/tmp# rsync -a /opt/zeek/ /opt/zeek.orig + +root@hedgehog:/tmp# chown -R sensor:sensor /opt/zeek/* + +root@hedgehog:/tmp# chown -R root:root /opt/zeek.orig/* + +root@hedgehog:/tmp# ls -l /opt/ | grep zeek +drwxr-xr-x 8 root root 4096 May 8 15:48 zeek +drwxr-xr-x 8 root root 4096 May 8 15:48 zeek.orig +``` + +18. Grab other new scripts and stuff from our mount of the ISO using `rsync`: +``` +root@hedgehog:/tmp# rsync -a user@otherbox:/media/squash/usr/local/bin/ /usr/local/bin +user@otherbox's password: + +root@hedgehog:/tmp# ls -l /usr/local/bin/ | tail +lrwxrwxrwx 1 root root 18 May 8 14:34 zeek -> /opt/zeek/bin/zeek +-rwxr-xr-x 1 root staff 10349 Oct 29 2019 zeek_carve_logger.py +-rwxr-xr-x 1 root staff 10467 Oct 29 2019 zeek_carve_scanner.py +-rw-r--r-- 1 root staff 25756 Oct 29 2019 zeek_carve_utils.py +-rwxr-xr-x 1 root staff 8787 Oct 29 2019 zeek_carve_watcher.py +-rwxr-xr-x 1 root staff 4883 May 4 17:39 zeek_install_plugins.sh + +root@hedgehog:/tmp# rsync -a user@otherbox:/media/squash/opt/yara-rules/ /opt/yara-rules +user@otherbox's password: + +root@hedgehog:/tmp# rsync -a user@otherbox:/media/squash/opt/capa-rules/ /opt/capa-rules +user@otherbox's password: + +root@hedgehog:/tmp# ls -l /opt/ | grep '\-rules' +drwxr-xr-x 8 root root 4096 May 8 15:48 capa-rules +drwxr-xr-x 8 root root 24576 May 8 15:48 yara-rules + +root@hedgehog:/tmp# for BEAT in auditbeat filebeat metricbeat packetbeat protologbeat; do rsync -a user@otherbox:/media/squash/usr/share/$BEAT/kibana/ /usr/share/$BEAT/kibana; done +user@otherbox's password: +user@otherbox's password: +user@otherbox's password: +user@otherbox's password: +user@otherbox's password: + +root@hedgehog:/tmp# rsync -avP --delete user@otherbox:/media/squash/etc/audit/rules.d/ /etc/audit/rules.d/ +user@otherbox's password: + +root@hedgehog:/tmp# rsync -avP --delete user@otherbox:/media/squash/etc/sudoers.d/ /etc/sudoers.d/ +user@otherbox's password: + +root@hedgehog:/tmp# chmod 400 /etc/sudoers.d/* +``` + +19. Set capabilities and symlinks for network capture programs to be used by the unprivileged user: + +commands: + +``` +chown root:netdev /usr/sbin/netsniff-ng && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip CAP_IPC_LOCK+eip CAP_SYS_ADMIN+eip' /usr/sbin/netsniff-ng +chown root:netdev /opt/zeek/bin/zeek && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip CAP_IPC_LOCK+eip' /opt/zeek/bin/zeek +chown root:netdev /sbin/ethtool && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /sbin/ethtool +chown root:netdev /opt/zeek/bin/capstats && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /opt/zeek/bin/capstats +chown root:netdev /usr/sbin/tcpdump && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/sbin/tcpdump +chown root:netdev /usr/share/auditbeat/bin/auditbeat && \ + setcap 'CAP_AUDIT_READ+eip' /usr/share/auditbeat/bin/auditbeat +chown root:netdev /usr/share/packetbeat/bin/packetbeat && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/share/packetbeat/bin/packetbeat +chown root:netdev /opt/moloch/bin/moloch-capture && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip CAP_IPC_LOCK+eip' /opt/moloch/bin/moloch-capture + +ln -s -f /opt/zeek/bin/zeek /usr/local/bin/ +ln -s -f /usr/sbin/netsniff-ng /usr/local/bin/ +ln -s -f /usr/sbin/tcpdump /usr/local/bin/ +ln -s -f /opt/moloch/bin/moloch-capture /usr/local/bin/ +ln -s -f /opt/moloch/bin/npm /usr/local/bin +ln -s -f /opt/moloch/bin/node /usr/local/bin +ln -s -f /opt/moloch/bin/npx /usr/local/bin +``` + +example: + +``` +root@hedgehog:/tmp# chown root:netdev /usr/sbin/netsniff-ng && \ +> setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip CAP_IPC_LOCK+eip CAP_SYS_ADMIN+eip' /usr/sbin/netsniff-ng +root@hedgehog:/tmp# chown root:netdev /opt/zeek/bin/zeek && \ +> setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip CAP_IPC_LOCK+eip' /opt/zeek/bin/zeek +root@hedgehog:/tmp# chown root:netdev /sbin/ethtool && \ +> setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /sbin/ethtool +root@hedgehog:/tmp# chown root:netdev /opt/zeek/bin/capstats && \ +> setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /opt/zeek/bin/capstats +root@hedgehog:/tmp# chown root:netdev /usr/sbin/tcpdump && \ +> setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/sbin/tcpdump +root@hedgehog:/tmp# chown root:netdev /usr/share/auditbeat/bin/auditbeat && \ +> setcap 'CAP_AUDIT_READ+eip' /usr/share/auditbeat/bin/auditbeat +root@hedgehog:/tmp# chown root:netdev /usr/share/packetbeat/bin/packetbeat && \ +> setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/share/packetbeat/bin/packetbeat +root@hedgehog:/tmp# chown root:netdev /opt/moloch/bin/moloch-capture && \ +> setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip CAP_IPC_LOCK+eip' /opt/moloch/bin/moloch-capture +root@hedgehog:/tmp# ln -s -f /opt/zeek/bin/zeek /usr/local/bin/ +root@hedgehog:/tmp# ln -s -f /usr/sbin/netsniff-ng /usr/local/bin/ +root@hedgehog:/tmp# ln -s -f /usr/sbin/tcpdump /usr/local/bin/ +root@hedgehog:/tmp# ln -s -f /opt/moloch/bin/moloch-capture /usr/local/bin/ +root@hedgehog:/tmp# ln -s -f /opt/moloch/bin/npm /usr/local/bin +root@hedgehog:/tmp# ln -s -f /opt/moloch/bin/node /usr/local/bin +root@hedgehog:/tmp# ln -s -f /opt/moloch/bin/npx /usr/local/bin +``` + +20. Back up unprivileged user sensor-specific config and scripts: + - `mv /opt/sensor/ /opt/sensor_upgrade_backup_$(date +%Y-%m-%d)` + +21. Grab unprivileged user sensor-specific config and scripts from our mount of the ISO using `rsync` and change its ownership to the unprivileged user: +``` +root@hedgehog:/tmp# rsync -av user@otherbox:/media/squash/opt/sensor /opt/ +user@otherbox's password: +receiving incremental file list +created directory ./opt +sensor/ +[...] + +sent 1,244 bytes received 1,646,409 bytes 470,758.00 bytes/sec +total size is 1,641,629 speedup is 1.00 + +root@hedgehog:/tmp# chown -R sensor:sensor /opt/sensor* + +root@hedgehog:/tmp# ls -l /opt/ | grep sensor +drwxr-xr-x 4 sensor sensor 4096 May 6 22:00 sensor +drwxr-x--- 4 sensor sensor 4096 May 8 14:33 sensor_upgrade_backup_2020-05-08 +``` + +22. Leave the root shell and `cd` to `/opt` +``` +root@hedgehog:~# exit +logout + +sensor@hedgehog:~$ whoami +sensor + +sensor@hedgehog:~$ cd /opt +``` + +23. Compare the old and new `control_vars.conf` files +``` +sensor@hedgehog:opt$ diff sensor_upgrade_backup_2020-05-08/sensor_ctl/control_vars.conf sensor/sensor_ctl/control_vars.conf +1,2c1,2 +< export CAPTURE_INTERFACE=enp0s3 +< export CAPTURE_FILTER="not port 5044 and not port 5601 and not port 8005 and not port 9200 and not port 9600" +--- +> export CAPTURE_INTERFACE=xxxx +> export CAPTURE_FILTER="" +4c4 +[...] +``` + +Examine the differences. If there aren't any new `export` variables, then you're probably safe to just replace the default version of `control_vars.conf` with the backed-up version: + +``` +sensor@hedgehog:opt$ cp sensor_upgrade_backup_2020-05-08/sensor_ctl/control_vars.conf sensor/sensor_ctl/control_vars.conf +cp: overwrite 'sensor/sensor_ctl/control_vars.conf'? y +``` + +If there are major differences or new variables, continue on to the next step, in a minute you'll need to run `capture-config` to configure from scratch anyway. + +24. Restore certificates/keystores for forwarders from the backup `sensor_ctl` path to the new one +``` +sensor@hedgehog:opt$ for BEAT in auditbeat filebeat filebeat-syslog heatbeat metricbeat; do cp /opt/sensor_upgrade_backup_2020-05-08/sensor_ctl/$BEAT/data/* /opt/sensor/sensor_ctl/$BEAT/data/; done + +sensor@hedgehog:opt$ cp /opt/sensor_upgrade_backup_2020-05-07/sensor_ctl/filebeat/{ca.crt,client.crt,client.key} /opt/sensor/sensor_ctl/filebeat/ +``` + +25. Despite what we just did, you may consider running `capture-config` to re-configure [capture, forwarding, and autostart services](#ConfigUser) from scratch anyway. You can use the backed-up version of `control_vars.conf` to refer back to as a basis for things you might want to restore (e.g., `CAPTURE_INTERFACE`, `CAPTURE_FILTER`, `PCAP_PATH`, `ZEEK_LOG_PATH`, your autostart settings, etc.). + +26. Once you feel confident you've completed all of these steps, issue a reboot on the Hedgehog + +## Post-upgrade + +Once the Hedgehog has come back up, check to make sure everything is working: + +* `/opt/sensor/sensor_ctl/status` should return `RUNNING` for the things you set to autorun (no `FATAL` errors) +* `sensorwatch` should show current writes to Zeek log files and PCAP files (depending on your configuration) +* `tail -f /opt/sensor/sensor_ctl/log/*` should show no egregious errors +* `zeek --version`, `zeek -N local` and `moloch-capture --version` ought to run and print out version information as expected +* if you are forwarding to a [Malcolm](https://github.com/cisagov/malcolm) aggregator, you should start seeing data momentarily + +# Copyright + +Hedgehog Linux - part of [Malcolm](https://github.com/cisagov/Malcolm) - is Copyright 2021 Battelle Energy Alliance, LLC, and is developed and released through the cooperation of the Cybersecurity and Infrastructure Security Agency of the U.S. Department of Homeland Security. + +See [`License.txt`](https://raw.githubusercontent.com/cisagov/Malcolm/master/License.txt) for the terms of its release. + +### Contact information of author(s): + +[Seth Grover](mailto:malcolm.netsec@gmail.com?subject=Network%20sensor%20development) diff --git a/Vagrant/resources/malcolm/sensor-iso/beats/Dockerfile b/Vagrant/resources/malcolm/sensor-iso/beats/Dockerfile new file mode 100644 index 0000000..1c0373f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/beats/Dockerfile @@ -0,0 +1,51 @@ +FROM debian:buster-slim + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +LABEL maintainer="malcolm.netsec@gmail.com" + +ENV DEBIAN_FRONTEND noninteractive +ENV GOPATH=/go +ENV GOBIN=/go/bin +ENV GOARCH=amd64 +ENV GOVERS="2:1.15~1~bpo10+1" +ENV PATH="$GOBIN:${PATH}" +ENV PYTHON_EXE=python3 + +RUN set -x && \ + sed -i "s/buster main/buster main contrib non-free/g" /etc/apt/sources.list && \ + echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list && \ + apt-get -q update && \ + apt-get install -y curl git vim-tiny && \ + apt-get install -t buster-backports -y \ + "golang-doc=$GOVERS" \ + "golang-go=$GOVERS" \ + "golang-src=$GOVERS" \ + "golang=$GOVERS" \ + build-essential \ + python3 \ + python3-dev \ + python3-pip \ + python3-setuptools \ + python3-virtualenv \ + python3-wheel \ + virtualenv && \ + rm -rf /var/lib/apt/lists/* && \ + update-alternatives --install /usr/bin/python python /usr/bin/python3 2 && \ + update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 2 && \ + python3 -m pip install -U pyyaml cookiecutter && \ + mkdir -p "$GOPATH/bin" && \ + bash -c "curl -sSL https://raw.githubusercontent.com/Masterminds/glide.sh/master/get | sed 's@https://glide.sh/@https://raw.githubusercontent.com/Masterminds/glide.sh/master/@g'| bash" && \ + go get -u -d github.com/magefile/mage && \ + cd $GOPATH/src/github.com/magefile/mage && \ + go run bootstrap.go + +ENV BEATS=metricbeat +ENV BEATS_VERSION=7.10.2 + +ADD ./build.sh /build.sh +RUN [ "chmod", "+x", "/build.sh" ] +RUN [ "mkdir", "-p", "/go" ] +RUN [ "mkdir", "/build" ] + +CMD "/build.sh" diff --git a/Vagrant/resources/malcolm/sensor-iso/beats/beat-build.sh b/Vagrant/resources/malcolm/sensor-iso/beats/beat-build.sh new file mode 100755 index 0000000..85cf07c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/beats/beat-build.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +VERSION="7.10.2" +THIRD_PARTY_BRANCH="master" +while getopts b:v:t: opts; do + case ${opts} in + b) BEAT=${OPTARG} ;; + v) VERSION=${OPTARG} ;; + t) THIRD_PARTY_BRANCH=${OPTARG} ;; + esac +done + +if [[ -z $BEAT || -z $VERSION || -z $THIRD_PARTY_BRANCH ]] ; then + echo "usage:" >&2 + echo " beat-build.sh -b [-v ] [-v ]" >&2 + echo "" >&2 + echo "example:" >&2 + echo " beat-build.sh -b metricbeat -v $VERSION" >&2 + exit 1 +fi + +BEAT_DIR="$(pwd)/$(echo "$BEAT" | sed "s@^https*://@@" | sed 's@/@_@g')" +mkdir -p "$BEAT_DIR" +docker run --rm -v "$BEAT_DIR":/build -e "BEATS_VERSION=$VERSION" -e "THIRD_PARTY_BRANCH=$THIRD_PARTY_BRANCH" -e "BEATS=$BEAT" beats-build:latest diff --git a/Vagrant/resources/malcolm/sensor-iso/beats/build-docker-image.sh b/Vagrant/resources/malcolm/sensor-iso/beats/build-docker-image.sh new file mode 100755 index 0000000..6454b81 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/beats/build-docker-image.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# force-navigate to script directory +SCRIPT_PATH="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +pushd "$SCRIPT_PATH" >/dev/null 2>&1 + +docker build -t beats-build:latest . + +popd >/dev/null 2>&1 diff --git a/Vagrant/resources/malcolm/sensor-iso/beats/build.sh b/Vagrant/resources/malcolm/sensor-iso/beats/build.sh new file mode 100755 index 0000000..99ad11e --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/beats/build.sh @@ -0,0 +1,69 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +echo Target version: $BEATS_VERSION + +BRANCH=$(echo $BEATS_VERSION | awk -F \. {'print $1 "." $2'}) +echo Target branch: $BRANCH + +if [ ! -d "$GOPATH/src/github.com/elastic/beats" ]; then go get -v github.com/elastic/beats; fi + +cd $GOPATH/src/github.com/elastic/beats +git checkout $BRANCH + +IFS="," +BEATS_ARRAY=($BEATS) + +for BEAT in "${BEATS_ARRAY[@]}" +do + + if [[ -d "$GOPATH/src/github.com/elastic/beats/$BEAT" ]] ; then + # an official beat + cd "$GOPATH/src/github.com/elastic/beats/$BEAT" + make + cp "$BEAT" /build + + # package + DOWNLOAD="$BEAT-$BEATS_VERSION-linux-x86.tar.gz" + if [ ! -e $DOWNLOAD ]; then curl -s -O -J "https://artifacts.elastic.co/downloads/beats/$BEAT/$DOWNLOAD"; fi + tar xf "$DOWNLOAD" + + cp "$BEAT" "$BEAT-$BEATS_VERSION-linux-x86" + tar zcf "$BEAT-$BEATS_VERSION-linux-amd64.tar.gz" "$BEAT-$BEATS_VERSION-linux-x86" + cp "$BEAT-$BEATS_VERSION-linux-amd64.tar.gz" /build + + elif [[ "$BEAT" =~ ^https*://(gogs\..*|github\.com) ]] ; then + BRANCH=${THIRD_PARTY_BRANCH:-"master"} + + # clone from git manually rather than do a "go get" + mkdir -p "$GOPATH/src/$(dirname "$(echo "$BEAT" | sed "s@^https*://@@")")" + cd "$GOPATH/src/$(dirname "$(echo "$BEAT" | sed "s@^https*://@@")")" + git clone --depth=1 --single-branch --branch "$BRANCH" "$BEAT" + BEAT_EXE_NAME="$(basename "$BEAT" | sed "s/\.git$//")" + cd "$BEAT_EXE_NAME" + go get + go install + if [[ -f "$GOBIN/$BEAT_EXE_NAME" ]] ; then + cp "$GOBIN/$BEAT_EXE_NAME" /build + strip "/build/$BEAT_EXE_NAME" + fi + + else + # a community beat? + if [[ "$BEAT" =~ gogs\..* ]]; then + INSECURE_FLAG="--insecure" + else + INSECURE_FLAG="" + fi + go get $INSECURE_FLAG "$BEAT" + BEAT_EXE_NAME="$(basename "$BEAT")" + if [[ -f "$GOBIN/$BEAT_EXE_NAME" ]] ; then + cp "$GOBIN/$BEAT_EXE_NAME" /build + strip "/build/$BEAT_EXE_NAME" + fi + fi + + ls -lh /build + +done diff --git a/Vagrant/resources/malcolm/sensor-iso/build.sh b/Vagrant/resources/malcolm/sensor-iso/build.sh new file mode 100755 index 0000000..a8ca798 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/build.sh @@ -0,0 +1,223 @@ +#!/bin/bash + +IMAGE_NAME=hedgehog +IMAGE_VERSION=1.0.0 +IMAGE_DISTRIBUTION=buster + +BUILD_ERROR_CODE=1 + +if [ "$(id -u)" != "0" ]; then + echo "This script must be run as root" 1>&2 + exit $BUILD_ERROR_CODE +fi + +set -e + +RUN_PATH="$(pwd)" +SCRIPT_PATH="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +pushd "$SCRIPT_PATH" >/dev/null 2>&1 + +WORKDIR="$(mktemp -d -t hedgehog-XXXXXX)" + +function cleanup { + # unmount any chroot stuff left behind after an error + (umount -f $(mount | grep chroot | cut -d ' ' -f 3) >/dev/null 2>&1) && sleep 5 + + # clean up the temporary build directory + if ! rm -rf "$WORKDIR"; then + echo "Failed to remove temporary directory '$WORKDIR'" + exit $BUILD_ERROR_CODE + fi +} + +if [ -d "$WORKDIR" ]; then + # ensure that if we "grabbed a lock", we release it (works for clean exit, SIGTERM, and SIGINT/Ctrl-C) + trap "cleanup" EXIT + + pushd "$WORKDIR" >/dev/null 2>&1 + mkdir -p ./output "./work/$IMAGE_NAME-Live-Build" + pushd "./work/$IMAGE_NAME-Live-Build" >/dev/null 2>&1 + rsync -a "$SCRIPT_PATH/config" . + + mkdir -p ./config/packages.chroot/ + + mkdir -p ./config/hooks/live + pushd ./config/hooks/live + ln -v -s -f /usr/share/live/build/hooks/live/* ./ + popd >/dev/null 2>&1 + + mkdir -p ./config/hooks/normal + pushd ./config/hooks/normal + ln -v -s -f /usr/share/live/build/hooks/normal/* ./ + rm -f ./0910-remove-apt-sources-lists + popd >/dev/null 2>&1 + + chown -R root:root * + + # put the date in the grub.cfg entries and configure installation options + sed -i "s/\(Install Hedgehog Linux\)/\1 $(date +'%Y-%m-%d %H:%M:%S')/g" ./config/includes.binary/boot/grub/grub.cfg + cp ./config/includes.binary/install/preseed_multipar.cfg ./config/includes.binary/install/preseed_multipar_crypto.cfg + cp ./config/includes.binary/install/preseed_base.cfg ./config/includes.binary/install/preseed_minimal.cfg + sed -i "s@\(partman-auto/method[[:space:]]*string[[:space:]]*\)lvm@\1crypto@g" ./config/includes.binary/install/preseed_multipar_crypto.cfg + sed -i "s@\(/etc/capture_storage_format\)@\1.crypt@g" ./config/includes.binary/install/preseed_multipar_crypto.cfg + sed -i "s@\(/etc/capture_storage_format\)@\1.none@g" ./config/includes.binary/install/preseed_minimal.cfg + + # create a hook for installing Python packages required by interface + if [ -f "$SCRIPT_PATH/interface/requirements.txt" ]; then + echo "#!/bin/sh" >> ./config/hooks/normal/0168-pip-sensor-interface-installs.hook.chroot + echo "export LC_ALL=C.UTF-8" >> ./config/hooks/normal/0168-pip-sensor-interface-installs.hook.chroot + echo "export LANG=C.UTF-8" >> ./config/hooks/normal/0168-pip-sensor-interface-installs.hook.chroot + echo -n "pip3 install --system --no-compile --no-cache-dir --force-reinstall --upgrade" >> ./config/hooks/normal/0168-pip-sensor-interface-installs.hook.chroot + while read LINE; do + echo -n -e " \\\\\n $LINE" >> ./config/hooks/normal/0168-pip-sensor-interface-installs.hook.chroot + done <"$SCRIPT_PATH/interface/requirements.txt" + echo "" >> ./config/hooks/normal/0168-pip-sensor-interface-installs.hook.chroot + chmod +x ./config/hooks/normal/0168-pip-sensor-interface-installs.hook.chroot + fi + + # make sure we install the newer kernel, firmwares, and kernel headers + echo "linux-image-$(uname -r)" > ./config/package-lists/kernel.list.chroot + echo "linux-headers-$(uname -r)" >> ./config/package-lists/kernel.list.chroot + echo "linux-compiler-gcc-8-x86=$(dpkg -s linux-compiler-gcc-8-x86 | grep ^Version: | cut -d' ' -f2)" >> ./config/package-lists/kernel.list.chroot + echo "linux-kbuild-5.10=$(dpkg -s linux-kbuild-5.10 | grep ^Version: | cut -d' ' -f2)" >> ./config/package-lists/kernel.list.chroot + echo "firmware-linux=$(dpkg -s firmware-linux | grep ^Version: | cut -d' ' -f2)" >> ./config/package-lists/kernel.list.chroot + echo "firmware-linux-nonfree=$(dpkg -s firmware-linux-nonfree | grep ^Version: | cut -d' ' -f2)" >> ./config/package-lists/kernel.list.chroot + echo "firmware-misc-nonfree=$(dpkg -s firmware-misc-nonfree | grep ^Version: | cut -d' ' -f2)" >> ./config/package-lists/kernel.list.chroot + echo "firmware-amd-graphics=$(dpkg -s firmware-amd-graphics | grep ^Version: | cut -d' ' -f2)" >> ./config/package-lists/kernel.list.chroot + + # and make sure we remove the old stuff when it's all over + echo "#!/bin/sh" > ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + echo "export LC_ALL=C.UTF-8" >> ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + echo "export LANG=C.UTF-8" >> ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + echo "apt-get -y --purge remove *4.19* || true" >> ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + echo "apt-get -y autoremove" >> ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + echo "apt-get clean" >> ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + chmod +x ./config/hooks/normal/9999-remove-old-kernel-artifacts.hook.chroot + + mkdir -p ./config/includes.chroot/opt/hedgehog_install_artifacts + + # copy the interface code into place for the resultant image + mkdir -p ./config/includes.chroot/opt + rsync -a "$SCRIPT_PATH/interface/" ./config/includes.chroot/opt/sensor/ + chown -R root:root ./config/includes.chroot/opt/sensor/ + rm -rf ./config/includes.chroot/opt/sensor/.git ./config/includes.chroot/opt/sensor/HedgehogLinux.md ./config/includes.chroot/opt/sensor/requirements.txt ./config/includes.chroot/opt/sensor/setup.py + sed -i "s@/home/sensor/sensor_interface@/opt/sensor@g" ./config/includes.chroot/opt/sensor/kiosk.service + # replace capture interface for now, it'll need to be automatically detected/configured on boot + sed -i "s/CAPTURE_INTERFACE=.*/CAPTURE_INTERFACE=xxxx/g" ./config/includes.chroot/opt/sensor/sensor_ctl/control_vars.conf + + # copy shared scripts + rsync -a "$SCRIPT_PATH/shared/bin/" ./config/includes.chroot/usr/local/bin/ + chown -R root:root ./config/includes.chroot/usr/local/bin/ + + if [[ -f "$SCRIPT_PATH/shared/version.txt" ]]; then + SHARED_IMAGE_VERSION="$(cat "$SCRIPT_PATH/shared/version.txt" | head -n 1)" + [[ -n $SHARED_IMAGE_VERSION ]] && IMAGE_VERSION="$SHARED_IMAGE_VERSION" + fi + + # write out some version stuff specific to this installation version + echo "BUILD_ID=\"$(date +'%Y-%m-%d')-${IMAGE_VERSION}\"" > ./config/includes.chroot/opt/sensor/.os-info + echo "VARIANT=\"Hedgehog Linux (Sensor) v${IMAGE_VERSION}\"" >> ./config/includes.chroot/opt/sensor/.os-info + echo "VARIANT_ID=\"hedgehog-sensor\"" >> ./config/includes.chroot/opt/sensor/.os-info + echo "ID_LIKE=\"debian\"" >> ./config/includes.chroot/opt/sensor/.os-info + echo "HOME_URL=\"https://malcolm.fyi\"" >> ./config/includes.chroot/opt/sensor/.os-info + echo "DOCUMENTATION_URL=\"https://malcolm.fyi/hedgehog/\"" >> ./config/includes.chroot/opt/sensor/.os-info + echo "SUPPORT_URL=\"https://github.com/cisagov\"" >> ./config/includes.chroot/opt/sensor/.os-info + echo "BUG_REPORT_URL=\"https://github.com/cisagov/malcolm/issues\"" >> ./config/includes.chroot/opt/sensor/.os-info + + # grab maxmind geoip database files, iana ipv4 address ranges, wireshark oui lists, etc. + mkdir -p "$SCRIPT_PATH/moloch/etc" + pushd "$SCRIPT_PATH/moloch/etc" + MAXMIND_GEOIP_DB_LICENSE_KEY="" + if [[ -f "$SCRIPT_PATH/shared/maxmind_license.txt" ]]; then + MAXMIND_GEOIP_DB_LICENSE_KEY="$(cat "$SCRIPT_PATH/shared/maxmind_license.txt" | head -n 1)" + if [[ ${#MAXMIND_GEOIP_DB_LICENSE_KEY} -gt 1 ]]; then + for DB in ASN Country City; do + curl -s -S -L -o "GeoLite2-$DB.mmdb.tar.gz" "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-$DB&license_key=$MAXMIND_GEOIP_DB_LICENSE_KEY&suffix=tar.gz" + tar xvf "GeoLite2-$DB.mmdb.tar.gz" --wildcards --no-anchored '*.mmdb' --strip=1 + rm -f "GeoLite2-$DB.mmdb.tar.gz" + done + fi + fi + curl -s -S -L -o ipv4-address-space.csv "https://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.csv" + curl -s -S -L -o oui.txt "https://raw.githubusercontent.com/wireshark/wireshark/master/manuf" + popd >/dev/null 2>&1 + + # clone and build Arkime .deb package in its own clean environment (rather than in hooks/) + bash "$SCRIPT_PATH/moloch/build-docker-image.sh" + docker run --rm -v "$SCRIPT_PATH"/moloch:/build arkime-build:latest -o /build + cp "$SCRIPT_PATH/moloch"/*.deb ./config/includes.chroot/opt/hedgehog_install_artifacts/ + mv "$SCRIPT_PATH/moloch"/*.deb ./config/packages.chroot/ + + # clone and build custom protologbeat from github for logging temperature, etc. + mkdir -p ./config/includes.chroot/usr/local/bin/ + bash "$SCRIPT_PATH/beats/build-docker-image.sh" + bash "$SCRIPT_PATH/beats/beat-build.sh" -b "https://github.com/mmguero-dev/protologbeat" -t "es_7_10_2_compat" + cp github.com_mmguero-dev_protologbeat/protologbeat ./config/includes.chroot/opt/hedgehog_install_artifacts/ + mv github.com_mmguero-dev_protologbeat/protologbeat ./config/includes.chroot/usr/local/bin + + # format and copy documentation + pushd "$SCRIPT_PATH/" + pushd ./docs/images + ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.*}.jpg"' + popd >/dev/null 2>&1 + cp README.md HedgehogLinux.jpg.md + sed -i "s/.png/.jpg/g" HedgehogLinux.jpg.md + sed -i "s@/docs/logo/@/docs/images/@g" HedgehogLinux.jpg.md + sed -i "s/^# Hedgehog Linux$//" HedgehogLinux.jpg.md + pandoc -s --self-contained --metadata title="Hedgehog Linux" --css doc.css -o HedgehogLinux.html HedgehogLinux.jpg.md + rm -f HedgehogLinux.jpg.md + popd >/dev/null 2>&1 + mkdir -p ./config/includes.chroot/usr/share/doc/hedgehog + cp "$SCRIPT_PATH/"*.html ./config/includes.chroot/usr/share/doc/hedgehog/ + mkdir -p ./config/includes.chroot/usr/share/fonts/truetype/ubuntu/ ./config/includes.chroot/usr/share/images/hedgehog/ ./config/includes.chroot/usr/share/images/desktop-base/ + cp "$SCRIPT_PATH/docs/logo/"*.png ./config/includes.chroot/usr/share/images/hedgehog/ + ln -r -s ./config/includes.chroot/usr/share/images/hedgehog/*wallpaper*.png ./config/includes.chroot/usr/share/images/desktop-base/ + find "$SCRIPT_PATH/docs/logo/font" -type f -name "*.ttf" -exec cp "{}" ./config/includes.chroot/usr/share/fonts/truetype/ubuntu/ \; + + mkdir -p ./config/includes.installer + cp -v ./config/includes.binary/install/* ./config/includes.installer/ + cp -v ./config/includes.chroot/usr/local/bin/preseed_partman_determine_disk.sh ./config/includes.installer/ + + lb config \ + --image-name "$IMAGE_NAME" \ + --debian-installer live \ + --debian-installer-gui false \ + --debian-installer-distribution $IMAGE_DISTRIBUTION \ + --distribution $IMAGE_DISTRIBUTION \ + --linux-packages "linux-image-$(uname -r | sed 's/-amd64$//')" \ + --architectures amd64 \ + --binary-images iso-hybrid \ + --bootloaders "syslinux,grub-efi" \ + --memtest none \ + --chroot-filesystem squashfs \ + --backports true \ + --security true \ + --updates true \ + --source false \ + --apt-indices none \ + --apt-source-archives false \ + --archive-areas 'main contrib non-free' \ + --debootstrap-options "--include=apt-transport-https,gnupg,ca-certificates,openssl" \ + --apt-options "--yes --allow-downgrades --allow-remove-essential --allow-change-held-packages" + + lb build 2>&1 | tee "$WORKDIR/output/$IMAGE_NAME-$IMAGE_VERSION-build.log" + if [ -f "$IMAGE_NAME-amd64.hybrid.iso" ]; then + mv "$IMAGE_NAME-amd64.hybrid.iso" "$RUN_PATH/$IMAGE_NAME-$IMAGE_VERSION.iso" && \ + echo "Finished, created \"$RUN_PATH/$IMAGE_NAME-$IMAGE_VERSION.iso\"" + BUILD_ERROR_CODE=0 + else + echo "Error creating ISO, see log file" + BUILD_ERROR_CODE=2 + fi + mv "$WORKDIR/output/$IMAGE_NAME-$IMAGE_VERSION-build.log" "$RUN_PATH/" + + popd >/dev/null 2>&1 + popd >/dev/null 2>&1 + +else + echo "Unable to create temporary directory \"$WORKDIR\"" +fi + +popd >/dev/null 2>&1 + +exit $BUILD_ERROR_CODE diff --git a/Vagrant/resources/malcolm/sensor-iso/build_via_vagrant.sh b/Vagrant/resources/malcolm/sensor-iso/build_via_vagrant.sh new file mode 100755 index 0000000..fa7da29 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/build_via_vagrant.sh @@ -0,0 +1,93 @@ +#!/bin/bash + +SCRIPT_PATH="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +function vm_state() { + vagrant status --machine-readable | grep ",state," | egrep -o '([a-z_]*)$' +} + +function vm_is_running() { + STATE="$(vm_state)" + if [[ "$STATE" == "running" ]] ; then + return 0 + else + return 1 + fi +} + +function vm_execute() { + echo "Running $1" >&2 + vagrant ssh --no-tty --command "$1" +} + +function cleanup_shared { + rm -rf "$SCRIPT_PATH"/shared +} + +unset FORCE_PROVISION +while getopts 'f' OPTION; do + case "$OPTION" in + f) + FORCE_PROVISION=0 + ;; + ?) + echo "script usage: $(basename $0) [-f]" >&2 + exit 1 + ;; + esac +done +shift "$(($OPTIND -1))" + +pushd "$SCRIPT_PATH"/vagrant + +VM_NAME="$(grep "config.vm.box" Vagrantfile | tr -d "[:space:]" | sed "s/.*=//")" + +if [[ -n $FORCE_PROVISION ]]; then + echo "Destroying build machine to force provisioning..." >&2 + vagrant destroy -f + sleep 1 +fi + +# make sure the VM is up and running, or start it otherwise +if ! vm_is_running; then + echo "Starting build machine..." >&2 + vagrant up + NEED_SHUTDOWN=true + sleep 1 +fi +until vm_is_running; do + echo "Waiting for $VM_NAME..." >&2 + sleep 1 +done +echo "$VM_NAME is running!" >&2 + +# make sure we can connect via SSH +echo "Checking SSH availability..." >&2 +until vm_execute 'sudo whoami' | grep -q "root" ; do + echo "Waiting for SSH availability..." >&2 + sleep 1 +done +echo "SSH available." >&2 + +# need to make a temporary local copy of the ../shared directory (and clean it up when we're done) +cleanup_shared +cp -r "$SCRIPT_PATH"/../shared "$SCRIPT_PATH"/ +YML_IMAGE_VERSION="$(grep -P "^\s+image:\s*malcolm" "$SCRIPT_PATH"/../docker-compose-standalone.yml | awk '{print $2}' | cut -d':' -f2 | uniq -c | sort -nr | awk '{print $2}' | head -n 1)" +[[ -n $YML_IMAGE_VERSION ]] && echo "$YML_IMAGE_VERSION" > "$SCRIPT_PATH"/shared/version.txt +[[ ${#MAXMIND_GEOIP_DB_LICENSE_KEY} -gt 1 ]] && echo "$MAXMIND_GEOIP_DB_LICENSE_KEY" > "$SCRIPT_PATH"/shared/maxmind_license.txt +trap cleanup_shared EXIT + +vm_execute "sudo bash -c \"whoami && cd /sensor-build && pwd && ./build.sh\"" + +if [[ -n $NEED_SHUTDOWN ]]; then + echo "Shutting down $VM_NAME..." >&2 + vagrant halt + sleep 1 + while vm_is_running; do + echo "Waiting for $VM_NAME to shutdown..." >&2 + sleep 1 + done + echo "$VM_NAME is stopped." >&2 +fi + +popd diff --git a/Vagrant/resources/malcolm/sensor-iso/config/archives/llvm.key.binary b/Vagrant/resources/malcolm/sensor-iso/config/archives/llvm.key.binary new file mode 100644 index 0000000..aa6b105 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/archives/llvm.key.binary @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.12 (GNU/Linux) + +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 +bXb5c6gCHESH5PXwPU4jQEE7Ib9J6sbk7ZT2Mw== +=j+4q +-----END PGP PUBLIC KEY BLOCK----- diff --git a/Vagrant/resources/malcolm/sensor-iso/config/archives/llvm.key.chroot b/Vagrant/resources/malcolm/sensor-iso/config/archives/llvm.key.chroot new file mode 100644 index 0000000..aa6b105 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/archives/llvm.key.chroot @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.12 (GNU/Linux) + +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 +bXb5c6gCHESH5PXwPU4jQEE7Ib9J6sbk7ZT2Mw== +=j+4q +-----END PGP PUBLIC KEY BLOCK----- diff --git a/Vagrant/resources/malcolm/sensor-iso/config/archives/llvm.list.binary b/Vagrant/resources/malcolm/sensor-iso/config/archives/llvm.list.binary new file mode 100644 index 0000000..344c6c3 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/archives/llvm.list.binary @@ -0,0 +1 @@ +deb http://apt.llvm.org/buster/ llvm-toolchain-buster-11 main \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/archives/llvm.list.chroot b/Vagrant/resources/malcolm/sensor-iso/config/archives/llvm.list.chroot new file mode 100644 index 0000000..344c6c3 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/archives/llvm.list.chroot @@ -0,0 +1 @@ +deb http://apt.llvm.org/buster/ llvm-toolchain-buster-11 main \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/archives/virtualbox.key.binary b/Vagrant/resources/malcolm/sensor-iso/config/archives/virtualbox.key.binary new file mode 100644 index 0000000..b37d3f8 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/archives/virtualbox.key.binary @@ -0,0 +1,7416 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +cFmEHsjRN+dCxEL75y8HDpyvJHlH1R9saSZuM7v/x8KKpPNCnSkictjaC1FTiQIc +BBABCAAGBQJMYfReAAoJEHcx/Mxj5OJ3m4wP/j0WuQ0f033p0nJ8Kp0TLkFcK99d +DLmijZxEyvO6leGhwDmF1XDK4asAwQvFlxf9iQicvHp0ZoAn/6j2AGezfTuXlZQX +KBC3HqjyHVsHnIOV/yWYTi+ZUyVxPxtK68t4LIQu+qrGRcPYgpiFpygQjth21gv0 +d3hmr0XnalyAsvQLWWLClmFvHlvHxp6DIlZvv+FXFHqsHh60HkNmthryARuCLnsh +XcSh92oLwVUtiAIPY+hK+2AHtyS4UCmE/0iR17coFgDYik9RZaX4GKSNh17sxJ+N +aHmEYnpU7it0YA2Cf9VWge2q1Pq2wDpPxu1H+3fo3PnNL0IsnQqyK/OEaN2CgCvr +LJ1GA2tvK+S4wy0sc6d+/OfL36n3EfTiHv4AWiWRg6OVa8FMRJFKv38m3ergEvzB +iptYSFucDM70V7AzrDZWNl73bXeVvd0X5qzS4ArbqdGiZ32qqa19NyXd0jxRmr/U +14iWmNXL0FtbAVZJDmlIaoLs+Dnk4sW/XkwLu1XGLNbddScvGsSSEoJQbDJLExNC +S5irZ3Xgw7Tmj7ZkBxYWKGu4UnFysp/z7RVFRwfuohm7lkVO05utJ72QLdqv7zMH +UTUoyLnv/+8KD25+cK07OjJw4vYMtBz5xQxxx+wizwMmZfTMV5LSBF8mSdmhw4ce +t7/xUj1tKKoNQsPUiQIcBBABCAAGBQJMYhx3AAoJEGc6A+TB25IfpncQAKb/U41q +zoZf1VYPDW9TBV9axJTQ3sAwfsq5H/sIUe5qDFeiz7DRCATXU4mydJjFQW6yMXxc +KddMBFYS+gBGBQw1Ay8360hOU+qe08vAL94pYlBvXm5ZMbUKZ4odblnlckrPVOm0 +4G3CxnQ3RTBk7GYmtXTNH/V7UZ61uBg4kaJxfxzTdU6vUUMZB1yGUfn7RXBbj2sy +pzSi+J1h0aLtd/vbA+WB8P6/XyQ3QiAMlXWF7sJWfZVZWxb9bf6oMQ0nG6zPFxU5 +GeilUOrjIZC4aVBVW0UZ35HMX1vFXg9z8oYiYEv5Qw4TPJRWYcqIdXYTgtpvDszC +oxNIqZxvoYxkCN7IS5aNSsviEfvOrNTYCUfr8GqqN6qnHKje/f0l9zYVpj+TAsT0 +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 +Ok2jQ9HDjVyDutq77TUbvLJ2hPOxULAqvn4FQh7Fx7P+6zV0x5o3WPLVzJIMgKqP +m+jr//yi/BaONKUDPSDteAiWuT2S14hZ2O2sZASIyq+7INCSLKQ4sUQsZth3JoD7 +CwNCuDR2eQmxUG3p3EcvmQCsXnDZ4cQk/+boZOdCTCw7n+jJHBgFqmNEQHu4mrzT +jsZeF5GT+9gc2MsNnPOTPLmAaVW0CwR0/Z1gPJkkB8WbHBV4JD7FqXqmBWcTnNtd +ekpgOumC4TL1zd+mT7fChlJBEr5G4IcUotKKCaimvWcSRg5JxXJkdpMrIQOPpdGt +Lt2a+EIJUlHajdy0Lkx1Y2FzIE51c3NiYXVtIDxsdWNhcy5udXNzYmF1bUB1bml2 +LW5hbmN5Mi5mcj6JAh8EMAEKAAkFAlLZRi4CHSAACgkQORS1MvTfvpmGKw/7BeXz +AlZTMsllEv3d24XXpl60ucHiqudOxzDE+3MwWsCihRrvau7I5Rp41lNKJl2JB7c1 +ksZOVV+WW1BsJ9mTUwAoAezbo5FX5+lsGIr8nAIwvDYhEUmhgpt8GqVQ+xxgCWp6 +UYcTL0bzld0edvCZB7afD0AYVJtUb3866tbjnm6ltq20cX66OKDiqOPE+XXQ4c4F +LFWZFE4tVCUfGNu6C/F1EiRMbleKn2r90KhKHMrV9SbID+Alqi8i9ZR4GVedTWtK +gtgAcqU2+PAGt97wCLtQJ5oGoP0qp7l7JbL9KHac4xRkhto6Z0/3QVkiNeh5Xv5D +8xMt5Vs49yHABIpRtR1cD4TtyE8ZJGVag/H0XXeTTJ8AFCn1Uo5/EH/Hl5RqjiBm +hyo2JRT02keoZpCHzQqXbzrysXMVDZL0RRUvY/l9+wR0usFdpafphqiwaY03Im69 ++He1jzuoOUzDxx/g+9pR0lLr9ZUsIsqeD4Lbn083B0tRNEJJ9hsSzbXaLdpbcJTp +C86HC0ZNshpRmDs0FP5GZ7Pxl1tHjTZh5ywc3gp7o+rSD8ok6TDr6ffbDDzOnAQm +rhmwb/SUCxeukpLPdVmC8ARsGsZUib/Wjvxb/HGEp9gNjv8VsdMGD0p3yE/0AOOZ +nC5dgRwFCKAyCxviEc/4sLxOwcuVfdn+atYMwca0MEx1Y2FzIE51c3NiYXVtIChY +TVBQL0phYmJlcikgPGx1Y2FzQG51c3NiYXVtLmZyPokBHAQQAQIABgUCSljGEQAK +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 +/xLoVArx4tV3IZpDcoO1SsOcVz8RH1MWGnIs/9vtVwDHqcbnV/ifOmGYF5yqeKEh +drhaZdFkvlxaB+1PUhBst0LpANYuqlTZf4UcqxKoQKD33AuYgymNXGKjkBOwUIz1 +hZpi/YxaKYC9zFI9BFUO0Lg/JlHAPVnzex0ofFIyfbOEsNAZLsMt5zaxEq0jcJHK +0GHRRXQ1KOFRMc+oi3aLcpSbf86UNYk+2aQk4GxE6gl1QbSKrrUr7gm+QVlFpSc8 +44FkxfjonHFtPVVn0R7LLt+6bkdgTLWcYJW50xH7jB+GkapZnppHQhT4XPyvTkAe +qUCSlVWDhWG+8DKOeyFgTeeSINc7jKVl+cfesHFFUxQuGbkHzzZLL8kH/zyoAePI +n6+wPE6jWRyT/m0XVILnkoYmKu52FCkD9K1QEv0er2yJAhwEEAEIAAYFAksbkREA +CgkQfFas/pR4l9hw1w/7BKfiHA3vfibaIpSNJesNjAmBtscnAfkqYUFz/epBZoKK +R9knAmPZCUfMLGFtXSwm51pORzrCEUVj72LGGmOjWAnzKDm1w49Ao8vmbR19K+DU +zpXcO9akHxsgSH/4HuBlEq5D7lajoQQXQhjnHWAAgwK7QQ1gyDVxngSeGeEmvihK +mEVApfgkqx7nXX+SKIuw56DAeZYxDZVYXq4ipQvNYOXa7182XPZhdDNtp4hjihZt +QF4fHTEfuPU9glmj2EYTzaFZFFqNHYMAR8l3vXAUiZ/9Ra9wMfiOpNsFqollldGA +N4vV02XDgDR09EX1duL7Mue32Dl4QlD+eI3ssyl+54RwHUXG8bUglFBGxil4KhzQ +jAm5LZ8S9DTUtOOgUDPytz+b0mn47Q0diG0p4/txlNGrYDVIeRsID6EN7fe0/GB0 +jeII3Lr84lHRpGXHpjLvwRSBceaRNYXIk8bxtskg6ZU/RRLoPm5uFvIyF2uEetS5 +SQ5ERePiItwIwgXKcWho7iK94fG7uEEoBW89tzK/uwIug+BnwmznSe31qBzxwcH1 +/7qGvv1sKGDWS2mEdMkSNt91UYTa9IuV5CE494rj/I5LhFKtL7GEqEA4hX9JOEU2 +oeWqPz6/gb76atYNLvWPZLhC9Qxp8JD+vQfRu1Os0H7XGQOKpPns1ZWSiC2epLCJ +AhwEEAEIAAYFAktkTfMACgkQ2SnymSvvCjP6uxAAmaC9M1m8L5BN5ZNFjKYbR7Vy +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 +gGBi6YUfeoKbfkt0bJxQchpAAozDTAuMVy8Tsm7kzcQ4jafF4EUlxKs+siLl4Mnp +V5Ioupsc58VSf6NXHHuJbShUiSCef7ZKFybbg3wBj64CrsoeocI6Zk/HOXPaFOKH +XFSEp293AbivO6Oxp+lMjQ2F14rONQeYo1sKZ7nK0duvDfRUN+bW4nKfcybdTg9S +pgZ3hnZM131YnHvnnL28GwTv2us1w89PuLJOJPhyHgki0U4epcso0js7g40OKNXr +0WEsu9Nav+QeHrBditN/JBTjEGgQHQam2ehQwsMwN033Bc1PHGYJ7XuhfT5QRSWR +2aQiEF86AE60Ikx1Y2FzIE51c3NiYXVtIDxsZWFkZXJAZGViaWFuLm9yZz6JAh8E +MAEKAAkFAlUwr3UCHSAACgkQORS1MvTfvpk2bw//VxAAcMNvO/fiIudWLWS8u8L1 +sQJQmwc7YlpeUb6m9HEA5QOKEk84SxA7CPBgtTvJ+z7dVlG6v0Pg7NwG3OtmIK/2 +IXB1W8qzhIVSEjhD5swQcTZqorW+f+S2w2gNt2Om+1Ps7CmQVdI2cOApGos3CCPg +nbs6W8si65WRZL0y/SqubtAC1efs2clCTnELUjDaHV5u7SbnDPoUuqnZvysvNNhd +HEMxCp+DKPvTZjU5kSAr9wn4r8mUjNH5Uf7hJciVgsa7AX9d3OInYS1bGh8YIEVc +VbQqK9rJwDKSGD5I0H7XRxBqy4BaRJLQQulXgEbNXUenKTdhUlq4ZNKqeqVvsZo7 +0ahV4QBQY4qhuQkc/IwpaQg6e/AoppcA/O3pIKo2JS3aeyWRafkmszuR8VG7VOEd +QKSVCrnt4t1jo+2Kz1l6OKXsJKR49J9cPLaMTDmMhwGJGW+8P2EhUFbC98bMN6De +StINp3MH+JiO8p4sI2wep4uB3ux9OyoGbQ4ql2ukEXQWIBSa7nmEEqH7a1BZPU5A +S/Nfdk+f3SrxrWuh/Zj8+0D7jfUa+88LHP/cKTSv+x1kr8N+X/UCu/I6MdNDSQSP +8Zm0EdublY9pGKvG9EtwSQQxJFCrQDbcFk4eJiz3tMKkt9lb51qKCRvlNBp/2qLf +PYmV3+NyszeFH0EkYIe0MEx1Y2FzIE51c3NiYXVtIDxsdWNhcy5udXNzYmF1bUB1 +bml2LWxvcnJhaW5lLmZyPokCOAQTAQoAIgUCUtlF7AIbAwYLCQgHAwIGFQgCCQoL +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 +=MNV/ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/Vagrant/resources/malcolm/sensor-iso/config/archives/virtualbox.key.chroot b/Vagrant/resources/malcolm/sensor-iso/config/archives/virtualbox.key.chroot new file mode 100644 index 0000000..b37d3f8 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/archives/virtualbox.key.chroot @@ -0,0 +1,7416 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +cFmEHsjRN+dCxEL75y8HDpyvJHlH1R9saSZuM7v/x8KKpPNCnSkictjaC1FTiQIc +BBABCAAGBQJMYfReAAoJEHcx/Mxj5OJ3m4wP/j0WuQ0f033p0nJ8Kp0TLkFcK99d +DLmijZxEyvO6leGhwDmF1XDK4asAwQvFlxf9iQicvHp0ZoAn/6j2AGezfTuXlZQX +KBC3HqjyHVsHnIOV/yWYTi+ZUyVxPxtK68t4LIQu+qrGRcPYgpiFpygQjth21gv0 +d3hmr0XnalyAsvQLWWLClmFvHlvHxp6DIlZvv+FXFHqsHh60HkNmthryARuCLnsh +XcSh92oLwVUtiAIPY+hK+2AHtyS4UCmE/0iR17coFgDYik9RZaX4GKSNh17sxJ+N +aHmEYnpU7it0YA2Cf9VWge2q1Pq2wDpPxu1H+3fo3PnNL0IsnQqyK/OEaN2CgCvr +LJ1GA2tvK+S4wy0sc6d+/OfL36n3EfTiHv4AWiWRg6OVa8FMRJFKv38m3ergEvzB +iptYSFucDM70V7AzrDZWNl73bXeVvd0X5qzS4ArbqdGiZ32qqa19NyXd0jxRmr/U +14iWmNXL0FtbAVZJDmlIaoLs+Dnk4sW/XkwLu1XGLNbddScvGsSSEoJQbDJLExNC +S5irZ3Xgw7Tmj7ZkBxYWKGu4UnFysp/z7RVFRwfuohm7lkVO05utJ72QLdqv7zMH +UTUoyLnv/+8KD25+cK07OjJw4vYMtBz5xQxxx+wizwMmZfTMV5LSBF8mSdmhw4ce +t7/xUj1tKKoNQsPUiQIcBBABCAAGBQJMYhx3AAoJEGc6A+TB25IfpncQAKb/U41q +zoZf1VYPDW9TBV9axJTQ3sAwfsq5H/sIUe5qDFeiz7DRCATXU4mydJjFQW6yMXxc +KddMBFYS+gBGBQw1Ay8360hOU+qe08vAL94pYlBvXm5ZMbUKZ4odblnlckrPVOm0 +4G3CxnQ3RTBk7GYmtXTNH/V7UZ61uBg4kaJxfxzTdU6vUUMZB1yGUfn7RXBbj2sy +pzSi+J1h0aLtd/vbA+WB8P6/XyQ3QiAMlXWF7sJWfZVZWxb9bf6oMQ0nG6zPFxU5 +GeilUOrjIZC4aVBVW0UZ35HMX1vFXg9z8oYiYEv5Qw4TPJRWYcqIdXYTgtpvDszC +oxNIqZxvoYxkCN7IS5aNSsviEfvOrNTYCUfr8GqqN6qnHKje/f0l9zYVpj+TAsT0 +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 +Ok2jQ9HDjVyDutq77TUbvLJ2hPOxULAqvn4FQh7Fx7P+6zV0x5o3WPLVzJIMgKqP +m+jr//yi/BaONKUDPSDteAiWuT2S14hZ2O2sZASIyq+7INCSLKQ4sUQsZth3JoD7 +CwNCuDR2eQmxUG3p3EcvmQCsXnDZ4cQk/+boZOdCTCw7n+jJHBgFqmNEQHu4mrzT +jsZeF5GT+9gc2MsNnPOTPLmAaVW0CwR0/Z1gPJkkB8WbHBV4JD7FqXqmBWcTnNtd +ekpgOumC4TL1zd+mT7fChlJBEr5G4IcUotKKCaimvWcSRg5JxXJkdpMrIQOPpdGt +Lt2a+EIJUlHajdy0Lkx1Y2FzIE51c3NiYXVtIDxsdWNhcy5udXNzYmF1bUB1bml2 +LW5hbmN5Mi5mcj6JAh8EMAEKAAkFAlLZRi4CHSAACgkQORS1MvTfvpmGKw/7BeXz +AlZTMsllEv3d24XXpl60ucHiqudOxzDE+3MwWsCihRrvau7I5Rp41lNKJl2JB7c1 +ksZOVV+WW1BsJ9mTUwAoAezbo5FX5+lsGIr8nAIwvDYhEUmhgpt8GqVQ+xxgCWp6 +UYcTL0bzld0edvCZB7afD0AYVJtUb3866tbjnm6ltq20cX66OKDiqOPE+XXQ4c4F +LFWZFE4tVCUfGNu6C/F1EiRMbleKn2r90KhKHMrV9SbID+Alqi8i9ZR4GVedTWtK +gtgAcqU2+PAGt97wCLtQJ5oGoP0qp7l7JbL9KHac4xRkhto6Z0/3QVkiNeh5Xv5D +8xMt5Vs49yHABIpRtR1cD4TtyE8ZJGVag/H0XXeTTJ8AFCn1Uo5/EH/Hl5RqjiBm +hyo2JRT02keoZpCHzQqXbzrysXMVDZL0RRUvY/l9+wR0usFdpafphqiwaY03Im69 ++He1jzuoOUzDxx/g+9pR0lLr9ZUsIsqeD4Lbn083B0tRNEJJ9hsSzbXaLdpbcJTp +C86HC0ZNshpRmDs0FP5GZ7Pxl1tHjTZh5ywc3gp7o+rSD8ok6TDr6ffbDDzOnAQm +rhmwb/SUCxeukpLPdVmC8ARsGsZUib/Wjvxb/HGEp9gNjv8VsdMGD0p3yE/0AOOZ +nC5dgRwFCKAyCxviEc/4sLxOwcuVfdn+atYMwca0MEx1Y2FzIE51c3NiYXVtIChY +TVBQL0phYmJlcikgPGx1Y2FzQG51c3NiYXVtLmZyPokBHAQQAQIABgUCSljGEQAK +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 +/xLoVArx4tV3IZpDcoO1SsOcVz8RH1MWGnIs/9vtVwDHqcbnV/ifOmGYF5yqeKEh +drhaZdFkvlxaB+1PUhBst0LpANYuqlTZf4UcqxKoQKD33AuYgymNXGKjkBOwUIz1 +hZpi/YxaKYC9zFI9BFUO0Lg/JlHAPVnzex0ofFIyfbOEsNAZLsMt5zaxEq0jcJHK +0GHRRXQ1KOFRMc+oi3aLcpSbf86UNYk+2aQk4GxE6gl1QbSKrrUr7gm+QVlFpSc8 +44FkxfjonHFtPVVn0R7LLt+6bkdgTLWcYJW50xH7jB+GkapZnppHQhT4XPyvTkAe +qUCSlVWDhWG+8DKOeyFgTeeSINc7jKVl+cfesHFFUxQuGbkHzzZLL8kH/zyoAePI +n6+wPE6jWRyT/m0XVILnkoYmKu52FCkD9K1QEv0er2yJAhwEEAEIAAYFAksbkREA +CgkQfFas/pR4l9hw1w/7BKfiHA3vfibaIpSNJesNjAmBtscnAfkqYUFz/epBZoKK +R9knAmPZCUfMLGFtXSwm51pORzrCEUVj72LGGmOjWAnzKDm1w49Ao8vmbR19K+DU +zpXcO9akHxsgSH/4HuBlEq5D7lajoQQXQhjnHWAAgwK7QQ1gyDVxngSeGeEmvihK +mEVApfgkqx7nXX+SKIuw56DAeZYxDZVYXq4ipQvNYOXa7182XPZhdDNtp4hjihZt +QF4fHTEfuPU9glmj2EYTzaFZFFqNHYMAR8l3vXAUiZ/9Ra9wMfiOpNsFqollldGA +N4vV02XDgDR09EX1duL7Mue32Dl4QlD+eI3ssyl+54RwHUXG8bUglFBGxil4KhzQ +jAm5LZ8S9DTUtOOgUDPytz+b0mn47Q0diG0p4/txlNGrYDVIeRsID6EN7fe0/GB0 +jeII3Lr84lHRpGXHpjLvwRSBceaRNYXIk8bxtskg6ZU/RRLoPm5uFvIyF2uEetS5 +SQ5ERePiItwIwgXKcWho7iK94fG7uEEoBW89tzK/uwIug+BnwmznSe31qBzxwcH1 +/7qGvv1sKGDWS2mEdMkSNt91UYTa9IuV5CE494rj/I5LhFKtL7GEqEA4hX9JOEU2 +oeWqPz6/gb76atYNLvWPZLhC9Qxp8JD+vQfRu1Os0H7XGQOKpPns1ZWSiC2epLCJ +AhwEEAEIAAYFAktkTfMACgkQ2SnymSvvCjP6uxAAmaC9M1m8L5BN5ZNFjKYbR7Vy +uPr8J0Nz/5LPUNTUPotIB6SjgRxO7lNEm7tUfWmdxsSFF+s6fDiDrhiEEcdf+ARF +rdiPhJK5VSMgR1g4QmEa8G+B77hsWL7k7fio5JKnt7q58F1Zpr42RxIzGI1afg/s +WwhVEsQk4AYOEuh8Gpe+eQ5ozTLQ22RlVCp6JUdiFyOK+OJP/UqxahBb50I+0FQy +coz9A79OW7eA7QM82KYrgEuLHCblsZo09XMxqfhFarOD95tLeou55DdBhQJJqSli +pvSdDytP9abFw4XiaBWfTtcqHsRUj0ShWFyVEErYqgPCb4KNlnWg8mSb3sL5U8fE +4f++mkeNsP8gpCL0C9ZUZWksCUOUxIxTowhfens9XZaSZOXeF30WCcIPVvqomnhE +5qmrA3fLyLzUIGQ+RvHZykOmlxdpAjsHmpntFkX+0E5qVz1EHeSs6KBSe28qYsv2 +0CAHyOWVVB4Nx/3QNAnaVQuLOKkAS9AvNIVowYYSVcGlbhpraT4q157ielM+xD5T +ZZZMxO2jwf9xFZ1qQIEDpCIFtUlQEo8yqoK8PXHt3uGIv6WcoXtDXzQy7KAsxoR0 +7Q0biB5Nj8/fG4GUK27QrfAQsgIQ3T3yuvJytyKu/au8h8dVdJ4QSqmjUiHKrvg4 ++4N1VzEGLLY3LNtbk3WJAhwEEAEIAAYFAkxYv2kACgkQ8RQITAhhEREoKxAAu68V +XEyaKfhBt1IbiGiSFAu+PKsnhusWKgbbJaLcZLJ8Jyift9bVC9xzVmuHUWeODtED +vN3GJ14FmEb5zWz02LdpZISHTuhUzLAjKIP5EwnZQrCsgMkRYy7MmhzmiheWI3zN +z0XAeM+sdAo4JjG52Gkjk9zbfjLYYcuezaWYC6lNag198fPA2a9SPd73ET5h0skk +TrITqNHI/cZtkqYjlgAoIVx8+6LnNBDCMp9PYpZ8olXsbYsbk+EntYUEunYmzq1U +b9II2sT/8uLx6R4m4D0rIfOPK38TdldVPI7YWLYi+VnfVG0/T+agi0xWYBLmzJ30 +2Q0mmWeDr8gi2ihF94tI18adFu9NsaoDvqpa63h/ad60VYw/zQyE+bUsE8rN5fBU +ns6CW4HS1DMvGxKHS61jXhuT8BogiBnjNOIZXo5eYbE97y131zzgVt7k20btubiO +bn4Ikb/u6khnMNEDWCilpyMgqoRB9OdixJmQ+Hfvk/ySEOAZZD9xadO2ySZBW3Bm +gRscYwS5rYBC95G7XT61DbSU1aAPP06e223TrkmqIwrEugFRoA8HXO7h0VZ31RHC +OJN4AlG8gEvPYtzJerhG7pj8H3TclfnfWCZ/fG2Cz6/NEgWOSPCWBSVqmG5dgpla +W+2aAsyPD1QpxWVQ+LHlDwdtlEBZLJUDZ/eOSX+JAhwEEAEIAAYFAkxYwQAACgkQ +OTWH2X2GUAsIsxAAij3YvFo3ZIEnI/4D4zsv0Y2QdrkvWHpOQzokL3Aoi9BF8WlP +fAPdxT2fEEex9ao6cl+eRGGrgQ/YNsR+GCqVkDW1er6ZadR8EbSYE88aUAzkrt54 +rUJD9JYk8rLoRU0Ud6gkoAqVYM1hmraRBvrCoF9zcPVrY9mfx/pqPICUYZ87dg4Z +eJjmLLrKPDIKX3A+eG9iwCd5SEpYNPLlDz85N4EeaENPvwtbimvo63zO8drH+308 +dSwz9V5lt6muB7v4bK7fCC0ARvVPNz8BWpFLid7+1gySNTJOmy42JhAEw2ByyI34 +V6ItoXC03h78tSVQfDx/KTqy5J76fM++IiRydB6BRtleJ8zoTa3kQcptt3m0zHsE +E0G+LExbhzizVBcEwxmYs+lGo+8R78uhoZRmoIKJh1sAh1tFAX+HBJJLzT+lfSbk +w4cwGCr+3teMqZchU34Nq3/jYomygEDwYnhZhMzyHMUbjf3Ed9RxD3fe/NjCYwih +FkAgFgOtPWf+SzW0XTTnulUlJZTA040apOZnI82nyYLYwAreZSJRDbGZN677APl6 +cx893P2ekiOj2LNiKXKO+1R5S8vfw/uwKlZhZwPNgwvyUs6u/gHDTvQ92T0GvlrU +u0stPudJnOk45RSS2LO6ESlEkqyhiwQJUT0lfLcI7wWndt2jHjZbV4tMIm+JAhwE +EAEIAAYFAkxYwuEACgkQupx4Bh3djJvbwg/8Dd851N46ZDaTNWSY49bwgTo+FFC4 +VIj1+m/G3JBu6EqO0aVZWp0q0mNOMGv5ewN+W8gqpScocoHWEBt8EaNW7mzEAli5 +d+WEmIFl4GIHBb8i24wjPrl9geaQnx8ElAx/Cf+oTCAsLNoEUZ7ljl+oy3IHa+f9 +HIjluls3RC5aFIDeXPhywe0vy0RxGnD/FYoBVVCAuB1RuQqE1gdnc0aGYpLmwfIW +zaB9StglamgCb/At5mg1MJNVuZS+3Z+WRbe8OZYCx5WUk6eOCCVsynLadUSOrBWa +eR9tMPD0u4XMChN02e/MphK51fT4QmM4XrbqZ3TYZOBYKQnzCiTiqf2NMEU7vqKp +NoUHlFENtDixOmq/FoX8UBrxhG5evdJECoXZzFILUVi0ALEGguy6KHtup6aVjA6p +aI+5m/1SzdiS0a4m6MBWpKHaBjpES0Vqxc0vJdW7AI6+pJ5+FKuU97XFO2BDq1DB +G/oIgjuRftxAw7xgLn1Qi3iOwy1Ks+x0O4+DjOvZxi28weeoSsOA9w3RdbL2FPhG +D4ghD5lHbX8XJ7KKbOy7nt74FeHTFltV9gs3rrzkbwVaEso+jWoTKVJ/kxgyiwAw +0qPKxWicQ8QlZrkLFgESLxVOQPuoAY806CT1iUcjziOA/CnJPREtBbCnAvEj2AjS +TVkU6WcjgLxeUDKJAhwEEAEIAAYFAkxdRogACgkQU5RHndNSTFH2wg/+Ov9LOSyl +Xs/XJiucd3+Kc2apiji4MzF4BFgOmHtyz8ETYrffIJA1iA8OVuPanYNACJf8ENPX +4Y4VpNxNa525DhPlqbHgHTqKeYgTRhxhzk9L/xVdtZkW0RF3N62A7KxV9SMPMOZ+ +n7HVAXbJGbDDdt4r3O32cjphpIXvAmFktbQcbflLlfInb4v33nQPAjWhX3FmiVMK +ehmH+LdCcr87583ZFUiYfUJw1W3Q9jVUIFbb1KNQgSuIKOmmovTv6DM4Fq10rRg/ +RnbXJ+J2qtNDLWT3sodRu9Qi/oOWAXxy3XKPEWTAvoUevNN5WPsZvfiK9GzcCNNc +YfOIXNlqBydGbHG8gpjHoVZKLCQvBbuiCA7349pRfPRFa1WkE06Tbyi3PaE/Bp0D +jdHnEKiS2QtZlItFBpQJG00gYnCd48coM90M56GNUvipspNl1w+zb3nLATBEZ34R +vuG3vovvkDWIBshBYeTcAdmqOrMC3amjYVBd5cYQuvIAkMFycUIlgU6sJBLNN36T +K/m7vyfYPmXb5dVnBSdWoZDR5J7PymNmlGNhUhXUKupJwauYlncvYx36TLevnBIn +z17laItj6u+7hjtvmHwqu9p4GcG6vWB0TbBxZyUSyBW7/9PzoYyyxhR48CL345d5 +XPyappqHFTBPX9VcbdZ7L8wNBVzZ4QROpNCJAhwEEAEIAAYFAkxdiZ0ACgkQeSFS +Unt1kh5uXhAAskLXnJUG7IShPidOWk/oqdby0SOssyB+quDASqhPjvX7Rt1TXg8s +kOhK1XjOrXd5JZXaiaeV/MbX7VBFvf8E596LwqEXauuAusQXH2IDoAn30ChVV+yR +YuLKwYjBf3SpZiAlBXshxKElVAwHONIHB0hP5t0Sbi6WsgKWKW5C5/sOEcntiy6f +7HtSTw+3xM39MKumPstjR5SPTBfEVWVnARKzQJxEuagknO+uPy1Zwkw2064Zl0Ph +DAgfz66Yr7OwejBa+cBAWQUW17622Zg29p25Lcrii1h/inrgWDU14gNRJ1fQQ9DU +ya1nG9axKczjvQWU+gevTGGRrwpXu0/qPTqb7UgRszINCGnlgkYOrnRrFJAepCIm +hkD6Qjp27Gqrj0XYm5qFdU854qz5FrqPytvnm7IXEaae59efdMsnXVAUnRlMhjvp +YHpqPO7o0VudBIngo4Frz3s/XJPnwm9Um9akMRCfLDvcdHKL2Zo2hPgeis6e5lQ0 +GnOpn+ZcEEUL9aMnwcvPFW5525FUL3qPXBFeqfl48doL3yfN4F3HtEzC69Ycf13n +4pNcpGvZZuPAyzsc0+uBTlXlZneJyHhUdeJCADA/gE2eAPuxvIwn0dkkU/JTcb2K +GwLOxxPW8ZEjPmSqN93aMqztuq6OFrtw7sR7Zd51bUsb9QrAdNvwdSSJAhwEEAEI +AAYFAkxfJ68ACgkQeo9J6LY0gL6w2xAAiAltaiC4AbM6UVf0Y8B+TEZWuo/0ysJu +cblPq/Q7JqRxoNh+KmO4diY/P+q9FMpMUiqPlnixg8LJ7CkWsvDKDaX32qIHIU1M +xDWCRnF+FHTKTj5S4P4ajHlxVHI1fw33RiNb2vdhaqjRvdsImJTEuLjxkyuOwCCG +K7A2sjHq6PVmGZe/7CkysQS7citv2FKN1F3xbpOkp06vtZ70AmYfka2opaUzC8T9 +7wUrKH5kbeoAviOZrgRlREjk5VfXYoT2WmnEKHe1pTWwjB0vBdl9UnPnmtlhT+eu +ViwFlMtqO3G/ffIGlHJdmEEqY4dhZgWyOfxSOMkER9ze42pbNotde/TKmGZybfv8 +LAGX81Upp/LYH7un3Hz1NMp1cR3at1fi14mPQSe3DXzfo/UJ5x5cW6V0ihk2Pd/R +s1Kn/L8JYkr1663/w0n8LYcAM7Xp+7M5klN86wKn8a8BwG8AmjiCQKS8S4M9b3Bo +XIBca6xYG+DiQmAK9IIeVXFAo1efXDHevVAmpVJ10I88Yf8QgbBFwYT1ie9k//nL +POpCNYorr3gs4LI8M+W9Jkny3WY9LMuaPhTKcCpTeWGLULpbTHPSdzJlWYRAAqm5 +WH97oDoutiJeCkyqaYeBy1WfN5oFTG0PHLIxf5h2grIHdMktqaPx3p9OgU2Iyrf1 +OoShQ1kjCm6JAhwEEAEIAAYFAkxfNCwACgkQ0V0xOIIAQXM45BAAu2BTuv1Vhnkf +XpD+zYWZWDG3SH2lTuge95Gi6n/ydefDZu1oxUc8+gOBjeIgjtVrTFPW8uT9lo2e +ifmo6Vi1tjci7a1/lGEcQ298+G01iWOdbL7i3KgWCnPDYQvLlBwsJbb+WD5ahr7U +l20QtnWEYu6MCShCtUlxtjo9mNhdeuWE1/KNTFN6pONZKD7MZAa7Zospmob/yETC +VFAlt4zz/W5ROHxX724JsbdznIaYVvY20CUK6T5JnaPceBaOvNs/B05QBqHUlgBG +kLZX/e7hF1M7TUJO6DQR4FoUeGPX4yUIb4lgv1qd13XLvubl6awqFFk8IUDVAgXf +IptGcS5wvq3m9gmLOeGkK2sLsm17b9g5LKGGnIgXAvHFl4ogMqBv8kDxx3FWW75U +7U1B1QNUqCZz6wRJT0FJjWOMCNQbKLpnvwidigCzTo9HngfwU/5LBrVYxE7uZrsO +d2Z/akLCcwq6nKrjawBv1Ky8HNh6J8+HYqHeo5Wsf5LJP63oNRRBGycbkRd/hgeq +JP7VkIMDhmIpjPUIBMOgAC5aTDD7xZjWa/P1uZ4GGnGliO/D5KLPLYnie62xWcFf +PVFYQgUhuptesF9RfcWI7usUDEkcmnTVTjrYH/ScaEwtGPGfVZIKHoy/rZHYgyV9 +71xGrDjfmC4wXTn9xHfkRmugZEvPUhOJAhwEEAEIAAYFAkxh9F4ACgkQdzH8zGPk +4nfOlBAAnlweP/AGYYs4ZSmVlNToJ/O0b1ZHOcTrr4aGTndEsgAS/l1uHA76eokJ +gX1y7d1iZBCMg1wQzMa8ZQUmqJGyWEhLrtQosftdW+jAW60UaK8gXLP/qGH98SfM +5VrF+kkvhYmq33Ej5KJFjku2Rp5qiAdkQO0E6VzfczShAp2dpW0zkBoIfAoObMMX +xbxs6upXCdAL1poGxGZMtpAvPXjmHMR8PBtrpIgfDjZc9e4cjoZkdUiU4vdtFVrh +iEtLGUga8NHxKp8t6RgAgGZaRmGAP7VhUQcJX51hUq9Nk5EC6rAwkeDrQQ+6Xx8p +tcnTtRYS5serZJJab0ZRO5IRxVrI0ywsL8TXI5LynvSQZtu9VRBEIk4V8agCdpPI +SNpZgSWeypNr2yklc0Zd2fpgIb/iySA0tRESZ+ffPlM2uFmxFjXdeUFvPBm3jBMP +Epr91qH1sQ9Fae8QMgYTU5zXCp7bmDao+qdKPX25hUP1UKn2jjxp+VoyJj/d1fa2 +stzA0XkiZSlk9cmRZVf5sS1qy9PNl6d5YHhBMAFPEfmJ0ycIAQaIceQxg82UkHNm +ca9nxiG4qQFQzdYt2PoMR9mreTepiiohGQTvFpmDO/vISyw8GPfQgERA+gS1ydY+ +LD6EyE4AHKSNG2YLbMITTZcqgwAXNGr6GiySqQ5bI2c0CR92wzOJAhwEEAEIAAYF +AkxiHHcACgkQZzoD5MHbkh+R8BAAhdi/hClhPsEwkKzbr5JKeXUTmtIy+yHokatF +GgDmAJY+mFQnp1lye+75ZMOE5DpEM8kJxvLz6qtLIVrP3J3CzpCUzudPlO/QBe7I +goiPEzt/7M9H0spjomIgghfI2RpeGT/WU5Q6IQE8iH4oG2sVxpaOrtp+DaDoRlca +oU0whUH77O1AXhdgCMTSmvMBXk8amOYPHYBtvka+EwovuNb0Pknbx4wm18llo2rT +ZrNXex7oDYvl1zssaq/HTW/7WWziNs3Lfxx4HchM8ZYUoskVsVnU+GgzaB3ZRTKW +nCJL5/caCODh8Vwf2reZqpbU3VCO2V2/NMihuC2Lgr0hjF2ZKFjIN00KGr67YhMc +w50KnqT1RxdR4Fz/vL/WrJwqt4Om0jW1wh2UETdiNGohNj1KybXQIqs5Y5GCtC2/ +3VLxhwfxk+Xysvcmc7HcuWTet4NcGgQ6hJfK6WQSNMCM7xguv1XYEF/X6ms4Cus/ +2ke4ZGA3mu9JL7p+JBPiP5ZDZTydboHpDpoTvNE0DjF/n+LLGfi7LgdPomu0PYks +VPSNMbTOfwnDJ9BWmA9glvIMfvR3uDheVHerw9e1Aordeu6NkKEa6P79+5ec15HJ +5MsEKAaQ0JjMW+4u5L9B8BtZn1dLuTcd4X0vnp1J1r+rFWc/dmqfqig5/qNZq2Bt +MvY0Pv6JAhwEEAEIAAYFAkxswIUACgkQ5E+AFtNjD4nF2BAAp9/fChcWmA1f2dYC +I9gcyyX3pxDFBrOwB9a6Z5LNTfZo7uaN2MT7jfgtJnRUx4gTnQ0tDbuRR07usQFC +PiKKxCJvXXuf/taWccS/LACZ6Ml7wNfCCWXg8c+CL9yetYm3Cut4vYuPFgaPY41N +jA4eJsZa0t0LQvFOdPEjaLpjWx+yPJxAiaq3ib72UftJ0nR6QJg9DpS5xn4krnTN +3n8Ea+gYDmUWDzN0HfnkqSHE+9v6Dqd5QWka1v9/4i0Yz6xEK9UIKTIFHzmPShM0 +f83yGiUY3rCyzHLqGcS6WUc8p0b8pVYeYs23btpBqN/XI9noJhfFjOn/mMdGmWZP +kIBDPtlDtfdI4U5oVnBFXPqH92hQzcbxdn6FbYvxvr6mCky1UdH0LdAa0rUvV6YM +xoLveeCWmeqkR4FIFvgkvx922HtbXk57ZzE1r09i7VuoDyKU1ORvkWzAEj/+SCkb +/4lEWZ+x8I4TW8xwNBqSSSjoIvoMMQjypVGMRdZ2Jh4qUJN2R6d14MsgtuTuHlZb +tsxY+zmQv0yNWxCAoI7Nb0MFNY0j1rZYAsE8lcpr+LLZvuIviMY+xnYXsWJd3ji1 +ws/rveiI8dUNiFWGu6byGrctrV8n86T8IspeWHvfVs+p5OQQicswMnrcot/CNYEi +FNOWuD7ua4tXtM02VuZXXIV1kwCJAhwEEAEIAAYFAkxuu4AACgkQRJdSeLhhK130 +RxAAruNIByYjV0TKIfq+Vy/jTXOZX88saPDfXnkp7IplkxJi0EfWhiUlxXyKNjhW +hZn1v6aO5P+N35oL/HwkOFGXQTbvTTrkagVXwRB/27UT644zAjGyyzd/7B3fHLVD +yz9OzlIHEqTYj2+zXpDdkUKauRR0++8fHCsMMhPQ0skd+hAmi1TwvNKOviDv66py +1LuUzt0YvkrAqwTPvOU0UC8hJYDjzKn6LTQR2zr7tRBEOC1Xt56rno60fBDahP+v +DcKnOQWgddnbAVQeNy9LkOSK3fqtVOkAbhKov2AGFauw+9OdyWtpJzFX2F6qMRTu +gXQmFfcJmdzmeU4LLjyU4fl9DntqVOd2XBzl3vnEzR75GemAgnVghzKYziHeWxdF +TgSft5dzUpSQc7cObzSBPTMQ3YmbKXLVHN6TNLxgZO4WpuFisZ1kRL1cVfkALFQC +uJPh04pY3kH8oBr9srzIZtbSzY4HccHIdM6+M075vClR9Qm42xz2yBdjQAHE/uUo +/MvUQwLSj+EPlRu1OaxUCsx3pmbcVEKWCLJS9JlH0WjKZ9PNZHaR3Fhc37MnIm/W +DZVfd3pj3VYzILcjs4XBG0+/PGXB5AYjj6j06IQPT+9NywVd4UeZ3Q0mDyG1UiiF +G1uE9tQaMldZazK/MbWy4FrtMKEXu4mfoYVDgMI15mIwvm2JAhwEEAEKAAYFAkp0 +r+gACgkQllUiudSa5zFkgw/9Gqz6C5CvRx4mABcHAonKV3wblIzmgy1vcJDnm6p9 +YaFSAvue9CK7JEbwacgqT+04nw42OM/rHAw+LaKu98xtThjMIcFbeYe1T+ezPIeA +shdw64qK9EtW8B3ATp0gZ8vD00mgXZLa/l0BXZ380IuobrH1gYFaiUSuuIKoD8cr +cjjTzwIOWo3rr8SltAA/4iPf10GnwLfSRomip22w9Pw+vrxcxRnrpfbR5UB4iQ78 +2Rdwz2jHFmKA4+4Zdq5olkCbMr6my/vuEp4EgwfkBxkSq0tHJLpSqoXiNp0dYDZ7 +xiZtZovKU6tk6YRyqoUAavw9c/MI8goOnaibpymhb/efbso4TYjCUvsXAxqmcYxO +mJajQ1AkqpR/920bvbooGkUUiRS7JSpzf+AcGKPncXN9q6dsiYjFyVq/TAJmyGBH +8c8p/I9O2UNQ3POpV98OuXe3ADjuWneKcgtKGmHUFYcEYgowTi6kF3/HFd7yU90K +uk7kSRtF9JoTHQiYvm4h0sKx7+YxPs9cuaUJcK67y5blem2j6iDqV99FRiszWoGR +oD0s7th81GSkggQjFxeZnvp0J+fwAMsNNuuJOlZWwWmWvxce1Plq7pWfMnKbM+Ys +5C53u+N50sItLWpPFCM5FVHjY2/LPxgpL2zRn7ysYEWZw6J1S8o9shaxZrmR1Vbw +OlOJAhwEEAEKAAYFAkp165oACgkQjL+aMihhp5C0ug//ZCAtNHA12QZEaAScA8cm +IeauVozyfXwppETC2VCaTO9xnn+IJWPPVXXX6idG4Adi0XEvI8A/Un9lRyLJaMVq ++zzQL30j5tsAx4D+ptuVqcQqKks5BkXMgxCWT6jLgX4y53ffb25HPs3dNcWL3v72 +KP2UZ8KueC1rjG766i2bUvTDhTgV/vYUkGMdHCoc4s6DCml9wDLt/+jYNlJIXqMF +6KABi/dhaJrOxAlpEcP+eCR7O0UmVFTtY81i8GlwAO3F3/6WVqMIPVzWfoeCk+V/ +wawC+eIivx8x0IIoIQ8HIfk1p5dy+kx6fRwHEXqot6tKKz0CvMYUnr7ahfi69zEA +0bqZPZFy/D2oN6P0aSjZrU0jKV0BFMOhFD6xEAmfgSkUzNnP1V05bJJ+TmQrUUZs +XgummIxQIHvy7y8UqoHnXO3Rb7EJkbRY9e7dWYu8Npr4yZCEFx+yI2YPlOcPWZkV +N5LtVrxloF9c25mjbIh/Yb4wc5DhczjHrOnrarrPkVO3X//adclGjc1eytdzQ6db +3ZpV3XJKVLxYThj/kSL2eIPGJA7COse8nEZA9scpnqEmpR0GoeOZSTrY7JUXKDPc +nwGUb3gjSppaOEB06cmn9P1y8aJ41n0K7KnfXSO23z1DuSrqy6z74eFfrBeBMeAg +sk+RKvYrZwBHCUhlXqtjMkiJAhwEEAEKAAYFAkp6JDgACgkQX45r4JKP+vqRNw/6 +A+d32q9brR7JlcmI+7v/+rLwEpVifUm/OInE1X9/r7lNjSdIWuHuWS6zW7q+UeCe +HX/u9NrjAxTQu3AjorAOxRwg/jxvntXcFJZscVRLMZMlYLbq2IPPu67ohQKqOhU3 +QQLpnA3bYoWTBNU59pClLDJ+/39+EsPqcImAjMNVKTWMuiV941fHzNwD7FTYoUPA +BDhMdMYA6AH6ydSNO9HGhJOj5AQGIsPKHjDycuD3U3V8PAoQ6mQaukw3OmTGzFUD +9Ai1MjoRuNFBmx4ewZndkRpF6gxzimgxzPxg37+A6Y24i9m05HiZnXNt7r8wKwxx +9y69nEfIVUDdxTLsCPNDtHxbL+bd8lr+oRG6V86WclrmTpmhzEiLWriAyrZ+pRY+ +j3BAUcbZNjVji5Q/XDGWXk25LZtKii3grHwsMDdMqzMZdfU6ev89wjM3hEc0bwZl +M7vRRW40lkra4hUqCG8b7C9FpzxUDOAWbuDMvjIWzVVbo4M/6CmIrGn/FDjhFoUA +iifEW/xn5kvLFaTCCvLoglBk0tmYDStOXExynmIsT/ub6OsY8Jn4pujQeI+ocxQx +F3Vict7w1kcjtUzPoyl8iZV6cGLEF9xICw0M/NyZF6JDsgeJxIVFJXppps+UGjzE +W2OGgGLZlMNcL9qPWYFmS3Bl/SMJJq5mnqqFKNT4v8GJAhwEEAEKAAYFAkqCEJ0A +CgkQE26c8XtdNC2LYA/+PQxf54W96c0AMVlDHyjcJmFRO9K3oSpKthZFTPnjvhPn +v1kc3+QxWYFy7cdtUkfeqcKuLs39dT8m35lvuZobARJYFRdpyIxIsUMz4LjcHhXr +28yNOxN38gaBCpRst/iyqqRXsMuSVQ/HVpm5vb0s+v3PkVMR+ZMc36tmK3QMqAQt +7CvuoIplRYPT8UukBqs5wUEASu3Couk0DCgdvTW9khYzyPex+mRbBtQFRlg5gRYo +GJ9ALuGjH03HDsvCNqkw8W+2SxLNDmpq0y6R9j/HsDbNFxkOpAfLKxLJWsAmkv8/ +HFRyv9RFW0lPOF6pjB5CHoellvP7s+GGGejx8xGL9zigDFO+H3yNdZi0jL+zZQfb +XGliWLxwQfgJ31r6j2LUs+4cEDJ7I1tzzX8GNsc96HgNl4JTw2Qdrpen8ebG9H6R +scCvysWQXGRk/JZVOzmMY1AByUooaA8XsuAzdu4u9We/XtMbIx5ymbRP+ZqNPCWz +nPlzJQVLA0yioX0YUai8xNqY3zK1agAyZIh8ytKPG8S3v8dux7hBl7aqx1bSyDF1 +2Io9jbk4GS2wzUAqMaiRGtQRxOaASnY7JIEw0YiyfH3DLqnuTrLSpNEberRFr+Bf +WmcALTWqyJjR6DdGv0c8DNFq62+KHR6n9RsCAu69wnzbY4g+mzjE6pN3xbumssWJ +AhwEEAEKAAYFAkqJcDoACgkQnCezE0K3UR2fBRAAh7Cbjvbutrp9i57ycpIIQxxo +BOs77PMGSr+GUS6ksB1bfQS7hHP3tMM1RxNkP5s6eioJEjlmmKChqjgLVNBDn2vi +sWKrr7k5X3p7SjJLUCpn6RL3Y4xaJzZfRg0vlHhfOfLlFMH5m2LGf9hl74kpGj1B +QU5LPp7R+8HDXhQa1wiDW6XORnLeO/Fh7QYlJJ15nbeafP49FMjPqHLEgl2TrVHh +gN8YZpGpUewYz2S8872DOcUzYgqjkRMqsWjSeL5xCqCyvibkY1UI1XdacIV+xcSZ +ofoU+onBw+Z7FUiqIhB9E7AzT/0xabf8nMM8eeUhsoZIjVTxwg7DUAEzmQsMeQLM +Hs7qRGsztVgSOpVDc5hcS79rG/Jbur8k5Q7+CvTeQ9ygjP3VYO+UX5avd34DHpi8 +bj3p4KFfBQ3JKSNcDgwEbjzIi08RnMJGrHjhY2hstlmMPsDqNJ54Hao2nJKgBCr5 +c+hdqwHihrRdNJbXn587v1AxAC2jEXA1Y7fPvuJ+tLeOpu/dRUBpNGkxg3NBBFop +Gn8PMWhOHvze2sUkvzAzNzLgzKYSrizDd6tgQNs1om55+fzzTOdO9m379h7NFWET +uuxc0iUMP3PI6hnBPfiPf0IniojRv0BrXDHco2xckxMbSYLYHRDGo1K2w2PkoGTO +YVhxH93XYnPA5xNEgjiJAhwEEAEKAAYFAkqRVGoACgkQeFPaTUmIGtMCJQ/8CU3r +XGBMzQaaSI6tvnjLdMtZRdkxzbdR0c+p8Sf0jdHH0d/R05Oii2M9r6J3DHvbImDu +LJWG0vyf4MLxoL+Y9tlAanACweCfslTtmibtd7ivchQJ98SLUyogG/C10ALNvg9A +lUw/VXaEJnJv6JfGfe9hbhh1p1rokbnBHjWZep8JkZFR812Zva22SVxM2A2wEpRG +cYLvnTZ7+Ho6ulkRRzzJYmvUMrxzW7mWNs9QdbhkBOgFePfVkR47iDMMe9mdIEyp +wB0nDEAREO3vgzIa20mw8ei0Z0uqfP4mweoYf46fhszRzeq3TXRgZyaVQ/f3ylue +2yF6WHwuCR5Jw2B1slg1ofpjAplDxRut2ARLyKd2pO+OV88iHQjVu7aMrOFUEQLA +iyazbMs9zLeNrd30CvJDBRkY/vv0YzEZuKHclXPdq071VFdZHkbZWtSuBVvWnpj7 +3w9BhkHMHKL0c3uGHsLNg+QZ+BVQbYQMaOHo2pD78gApddRaEVwOmdat8TKFsNyQ +5V3G26DruusbQ02vhee5zgyNjUTj6QoJVFJ5/7Nsa0lWp6Ej7siFHbXyJDlgjJ/Q +AHeq76MGaOh2nFXOkZISnamT08atdbVOCgW+RD9jLMicAdJZM2OKRzcW2MJiuohz +Ivn65pCrwdIUdD/9IXZZoKxgQqgGo+6IFhsni4+JAhwEEAEKAAYFAkqR7k8ACgkQ +91jOMY13KV1Zpw/9GVFEkJbXpRc95PAok/3yV3IKRR7ARUKirTqjALAa0A17drmw +tqUG68erS3msj4TVNerFP6NrQLuaocjxkUSFe3hoHIdThb2odFKYDlp0nX2mftLb +5xln2BDxDTgMdYv85HbONAgM+GXekPgs7FfUJvBcSA5cNvwwPal60a/5ATt5TBc2 +aABeDr/IvN4eRy8vf2mM4W3Vmjr1OzSFbZ/WF9vpTc0GrMKxfuVJg/mFX8p78iEg +okAJ6lMD2suzmU6OAA8BveRl4pUW+kBvUI12WEmJWAwHKF+uI6ngm2VKzsPYkkYC +O2U/ogjK2QtjvP2rOY25bUhfO0HjKKiP6yuL6IvO9UgmevLUZSYdzgJeTwl5ttfo +1s8H6Jzo3Go2mZ160jtr1yJFglAirdLe08N3P+r+wcOpAR0e9pm3f8ZM+gXOC9sO +LJ0rfNbkCqY4DHkSdbc6W/MIdyaXJ2L6a8Trl4KXGUpkYJq9IfRuOGtY8wGWk8UH +usJ2MYrgAvQOJKK2LO96dqrrpwZv1Oa2IoW2u91lTY5jAt+E+FvbRvVWVg5FN8id +iAexnQ7Fog4jDPfqdp875jRNwhpj0461Ez5uNRwRj5JJw/HgKADywlgHUcnHDS6J +r6GiS0PmE5TyNfKBXysM0ana//Mr6iMh51Cd0WV728BO5hjplHBipXzRFvGJAhwE +EAEKAAYFAkqgFkkACgkQgYEjg60ol1WNfhAAp8bX0wmJA4/dKsvCN7p8Pa6E7WhW +hn0W4BY30w10Elgj4JwpUw780zpX2yyH8O0FXVM+mG5Kg39A2/6HRuDZm+Bhd/+J +aAV86vU+v1zVJJvgcyn5RroaFmsWx84/YKceBdi17lk8Vd+6wSw/AsnInQ8AHzxA +GhLUKavQIhQBX+k4v4Ko0hAFOT/mu8NgqPzGVTeou3n57Tywv1nztFg93aEOQcCD ++HsG62T2xdJqeUpViGZQ7aYrQz9KO7Lq5PcVTdPNolvCoNcRYVdS2Af3D1gNXwsj +kP/e8bUsebTk5nR+XaH1pIaIpWs1vQC0pFZ1l7z0x+i50JCp/Y5f9JGAI3nHVZO1 +tLSYaq/Qo1v2XeBluYfBGYIkticl+0KntK08XMocNNjjuV9+JOd6WJ+1mlj+rm2y +lFFD02fCN6U4IZ9LwduKqH2uGldUj164pacHPdcoLRcvU2DCgffY1pmmCWVPnzLh +BvaliCvMdDaXyN4uvwKMlKWUFKGWgnmyzZ69l1+HuLwlHNf/1KLYEIgIMujNTK0+ +Rxqp3EgmH94iGrv2NKNIbW9WbgPAdQar8UEKKP8cfR0+mlHBH/oCDQE6Wek4Tbfa +MVQJpxuPuilAf+4h/eYWYPAhzv0El2MrUFZsiehZHK6AN/j41N/WISAlylIEQyTj +5i9MWsuFK3rKB/aJAhwEEAEKAAYFAkxdtQkACgkQXTKNCCqqsUAWhRAAo5TrSC+j +95FhRtoTV4pZJHSgFpcXvGTCAhWBhkPqOQdyI9C1KfELaUmmdqCKxEYqC/ZEkg03 +auUDj6rwn2u1rYR2r1tnThFnjsczDCVTXanlz0A2g63bYBQrRC2S0rHf4giEy4fC +sFkpLxvAjtDXWpcSHrzHDgcBsolw1TBpy59o/Ls21wbK2K4JOQRb4/UPYaUA6SIC +KVODVAhsNte8+jZDAI/Ygde1xehm7fQgrp7eWA8XdE6fDFfewd3pHkdDVKxpjECR +vMqeONwkuFl84sr1eM8b11p0EBUi1qb9Yp+5nLTbrqYKvf0dW6nebRnI9R9Vgr0h +iZ/T6tMHOgXyvUrTuz/mOMVhKykas+6h7PqC80BPUTN+QPOalXweyeU1J6vY+LpO ++/XM9gy7HIXZx1AU5180IHH5LeVYeHfDWI5uOBOHyGv3hkqOw/onYrVueUt56yP8 +stAeG3B4WCcfw691v+fdhSbNcsHYcS5P4fd1VBLHtPgShUxvDo7Iki3xDB53lGTp +96cfsxlCjxb1Td1nUn+pgwA0CcHcbwUKIF12cy3L5p2gcsd+1Z5MxLBjEOFH+po+ +CdYfvn8eac+zh7STybYysPNuInPmB/0Av6g4VlxusLJP2eRBfjdqHqzrmp9nfLfE +axhR7YSW3eQuzzHhrrdNIyqYOtOWFoink1CJAhwEEAEKAAYFAkxluBwACgkQMiR/ +u0CtH6bgWQ/9EHaVwGgswAzRNoR7jIFqnMXA9vYvYHsJEICEvsArco4jS1kN4a1j +SQONFeI3EjOBU7qJOWrihLnaZYqpAjX26QkMciyhIusxwnVrAt/v6T6ROZOKioof +OVmjLgYXdkq4rZ8yhKg6TSsOnGxufgKq+HXQ/mTzS0tOah3FLBEFUVL6ww0DUHu7 +WC8X3rkG1t873QN1BNqRy1z4Xip7VkKgzXG6LjOhXoW1fu4quES+ZzqFO6AuY8KC +uJfAjul9dbZhG9E4aTT9EojD8S72y8T2HGenpedBbOem0b7KRFv4t+aM+QY7qh2E +cmwteDluo2ZkZs9/UxyMQPjkyl7NiN5AH/le3afg2YQqtsuEXgoOqYxDPUUKfkWP +R5WPd6tHApc97V8sHa/H/uyiEL3x+3fIryeytMu3LRAN3VX/z4GQuY4mbbbD7H3I +f6uyoi7oe6c6DMheQ+iR6zQI8sD0x1N0eNSuQp77Tu2ZJL4ku+lbtDTnvWltup2M +DQajb6OXqfayKSsPCbAXbriBVc45k5YFpfxkcRCJ+FHmo9gwxB0Na7BG0pALMBom +jFw61zusxaiEUxgCz87PE2TD/JjCVQ7WcheERX7Ee8buqPq1yDG933EYZClXXTKG +9UxYPqbOwm5NjBAwp0FGEJeP2brXfMeCap9cOe5FrP5+XQ6CSrSdZbGJAhwEEwEI +AAYFAkxfqm4ACgkQwlb71QAiHpOy8A//WhXJ5iO8cVUiEnYGqhK3Q+gz5CGscxSe +nVAUbwGQ7Ecg5t2BZehuc3dG1Gwn7wMu0RAUY36PFhhUGn0W2tiXVPPD2dQq+5FT +g1ZuqUTgfxS69C8xcY1wRRSwHNAzWMjiFZzSHdYb/vzvqhwZtTuxTl6aRFoTsRYH +hErqNR3oixf6dY6RnLd3NeSYxpkcE2bwVNGW/yuULB+miYOBpMAZFDsaWa7lessl +ydTDRhZ4At2x8h9F1jy5Wq83FsUsVEUk8sFtweYnzv8+TQx08042PetvrlQMTbOT +jF9X4vQawIMQywUY1n2r3TC5R5Sz7Zx/Y0pBk3crK0YLuBoUisry64bbnCIf/WnV +vwspj94ij+6WkVIlKi5zlTVG49gu0zJ9E3ugmpTBCCQeVvaiJPFckmLYYrI08h57 +hZwmPCSVxfrtIH+ozM8Hkkb5g087Zm/r7rvJAFr0je+8HDBk3SMiWi7hlvmTKJRP +U03ADxkCHmvgbHl+f5rI4Sj9O5ibteTo/uefQt4dXaLneqD5kvgSWO2GXFWXzdmE +CEJO8WYJEwrjkI8IjLsluAmcfMNLr1T9xMzEuJMwz2sWL/OdMueO5A1PM3dM3CPK +8U465OHUFyqyO7jjZaNSc1P4VDpDp2Cb9EmUpWDD2mG1iZBxwlRw8LY9swTMyV+C +lkpKzq0RrWeJAjcEEwEIACECGwMCHgECF4AFAko4tTcFCwkIBwMFFQoJCAsFFgID +AQAACgkQORS1MvTfvpkIoxAAiFFDwnX5EYDjN0BqeTkYiJirnnkc50KbZJkRp1Qt +r7HMFG1Pha/STgl0vJSrty9PPGdqbYvwRgQQngpEOxqXFqQ3jX7FlPJHgHg3xIqP +MS+7LMFY+9aPxnM2qMpiSGCCrBzXtaqpN2DHyYWh6otdFZvJYocEGdSIq4NInOSP ++VQkVo4hn6jQSCjaZ5T6pqZdr8qTquBoSSu+Pkez7Q2Qxxe4w1XQmT2mpLmvPRzx +ANWv4xya5rkoi/LW/AFYpUOv2Rse2dxu5ABAVTTGngWwhsSUpIi/7QVRQtfxu3sC +/4xnfRFv5y7aCiALuYUd7pfcOovL4FudVTrfZE+iFaNUjPDRsGvEJEms4jDcjDET +Gcjw07c97YR6p+oT8SttYm+rzsExOlkDXu/E9+iGZySVt8+Xz3an6nIBoOuZTKzR +iR6g5twBVAU01l0rqqee37WlJ6jxad67iHJJxQLcqA8CjYuoKJCKM8xK4i/sv36y +a/wn+j+lkiIghh8RfEePXpsMghzLiAUrpCRX9cjRDni2jpaCRWtXZz+kUsOC9hgB +noEWOLBVPqF9p84nNpYjoCENuVtTeIX6wT8fXNVnDd43clNSPysqnY6+b8BVfa+S +h+VJy65OSDty1ovicXT8gm+DDDEXYdsOEDEetT6L0ovjaKZBVnx/wl5ejBK/4Dob ++1CJAhwEEAEIAAYFAkxv+KAACgkQnQteWx7sjw4w4w//SkFUVlf8Oabe0ysMFOvm +LmZMec33ZnOhh71R+ZGIPQgLkUAyj/qKuiEAUcpjliEP7XOhwHNfDakdyD18Xkw1 ++YCLPZovTVJu7EdZeIbWaaLKBaj/7Q+yFCd4M0K4iHFTEfGzM0zuxqHah/bLVEra +8K7ZL+8zNb/C6MyVI8fsgP2mJgz/SXkG9CsZ3jpF+mahRJ+CsFD8jDqOBLRegbYw +jmM8RjheBtzgOmfrgvx+PEQmKfL4i8Ayl6i76VP5AyuIGngI1tXdVZr9lHW6RUu6 +abZ0sQ3cihTE5cZTwgr3bcek4bwSMw6a65sSJc7ONB+Cbhdsw72Y8ayTtxJXXSIt +e3R/RMvgGZ+g58LRuHcYcElZQcdcyA8RRcDEwg0yHIq8rDKFCRidZak3GRTnQI4X +lGwqIXEFkXIqfoDOr2/CqW4XnKWNAp77xvNa1zB7PdQSWjKOeLT9eurNs3+zrJXT +sb4H8myKoWmgPlDn3ED/9Q+mN0+qjr3FDvhW3GuXsJQJo9NvdJpvIaf9BqibRkrU +NXFxJ/vKqen50C+DAkrb8U1PaHKs1KLASjsLSfRqnQeR2mjF8ft8M7TD9RRqq4zY +lM5TOSc6DdLEJQHXmh0NejG0wN8oNYyhnId5hSq2/TfhsB1EUbZcleS6hKkhGy+2 +givu0dHUKRg7JaXxPSJ5bC+JAhwEEgEIAAYFAkxwHCEACgkQ5K/rxhu0sokEyQ// +StDHKexkTX6vJwCTVEgapc7GoYYpTq4HO+v10lppVfar59F+wFriqf8w1o7XsZ5m +TshM5hVHefXzs0pUWeeIPZHgeOLIW1tl/a4Wvzx3FZb01xbkitlvotnexjiU07y7 +kFDqBvMDyir/Fx3M+TAEj57tKwKgKmOJVAzEQyz9iFFEDeo9kVmAD7jPgKk61NJ+ +gzXtKTkA77aT4nU1wXFFrnzKCB+6b2z1b2r2h0EG19AsbD0jhxo2PgB2qI0H6wLy +rde0Vvf5tpoQ0KEwn82jMI/vg4rAnGOR6Dka8Z8lgfM6q6rl3wA6DsNZbNUCJuhB +BQpaK+SzILrBFRMwokh1ZSzs1y2SxUVrm16L2zhGSKAGQYA/MaB8hiNFaO+jvvLQ +KxNfxo6mSmwhbpES/7R0yUvYxMhmNL1nBlpC31FHkBQ1IwnT3ro7bV10xDLoaNKT +LVZggHavLmOT7BnFArKsL/wZ95pQNbraxlGshC4N4HZdPzCvxU7QcFwdfRG9EhBd +KRgHgQ7FDxRgUj6hap9dEZt0EoeagWKri2fPDv0XGOMwJZJv175ZqlQLrImLplPA +hpw3Gq2oV8bJzLOk1fQY7Q+7ckqfvHMtZvx1TUAroVUZl8J4llTTrKL2dfcrsrYo +FKwErGP+ESxmvC5EBkBu0t3enS0/MqG97jowEmrQgx6JAhwEEAEKAAYFAkx0KswA +CgkQqXp3Arr5HvUkBRAAvXG85YHzuTSTHtCj0iH+NiYatJgmDWPFZHmBxCjrkKgo +C7FxP2BjrFRVlfUqnrcpu8kzX8DhiMYqHiavbvEoF9MB1yMjyOX9jg0vh1BiY0C2 +ruo/TS4ET5Zd7l6GGPUKUNRYR+FOL3MQdJ09QMEZ3inNKptoFjbxism37Z9Hz+KX +ClBVzHWMcBJWSTPwOqdnp8bOobL4xwAVsDTTkd+Dk11TXbEaVkMPiVNdNauNBGt2 +ZzAEl2HecCRWIoaM13NkGVYdJ7ht8mjh+C0y4iqFVGu/sHH8+kAiVb5b3QsZI6Fk +9Z8baSmQwr0BLzzQsycCLBOiWXM05/RkVZAdzNLKfytThD8m54XLf7VmiWTgjGar +JtZw9EmpO4vIjfFyZ40QhaOC0hlR0X/8Fp+/3g4cqUpuZjpcK6yRwUzbbtHN7egz +b0eRqBgA02cwxPRp3O3VZHUk3ml3qz0P0dc19kCahfUJ/cTxkvceG9FpwwcyNq4a +lGxYXmRH/S7lfrjhrkkoChRMgVBl1AaJmPxTbdl+y59xPQ2n2gIFf/ieiQ20OFWs +wTZHSheDD+/9qos5HX2IsFGp2D5SgU7mNqmJ336dtv4Z9gWOJx3WiciScbYaNzCG +veQRpOnUjt/NpRIcBQ2NjCUCxBNBI8smGT82An6SiP49wgcUOVMxPx94RoEFD9CJ +AhwEEAECAAYFAkx25FwACgkQryKDqnbirHsh4xAAp+9DMH8ZeNILRWz78wmJn0Om +yo5hiTNJQZl8k62Bvwb0EsyZZTicWepdsLwh5cw2WTa5AA+i3l13aIo8D6a0XlMO +1QEHfJ7LZDxMy8PSWg9sU1lIy7iggVoofIh6GepBK+tZnrHIbVwrq6RoOaESsvJV +sWmig4zJXtNv1lA6aUROTqkUXhnsOXjMN6TSKcySlxpPbJUBoGV3ro/FkX32s0Jd +4GctLcw4dQInnwHM4MbnHs7g9UffvCLMHLGf9oY75t+vgbGBzUVNbvOaFLdrISM1 +mlF1OvvXNlx7ZMMxPldv2a+fi1Jjosid5laJBRjh954UpGxdZBfAzmfwRq6oE2eO +BkDlvV5KedH57eDDO1/EjwBevL71i6ou7Z/zNpq4+YU2K0gjedppPr38tOIz8viz +lhAwKzgf0r9dgVWvOt1QtoCIKgSXJ6axhGuLgr0Ee8c7fMLODC2f3kO2YIUG0eRY +eLgIKm2Uw9ElRhKvbQQSMHS6N61NY6WLz/AQilRtONFRTR5gxJVm1EtbTrtomehp +xkEYJv1VDO0mBTbYOxs3I1xJRn5nrzdLbhsv8FGWWdNfbhS7Me6EYL2BYsUoqbv5 +r7sobIwKJUAjt/n7iwIeOb+qDQtSawR/WHx7hknsmQSIlaaArhUT1CB6a6Bry7h+ +W4IMLA+FSIY7OQQkvlOJAhwEEAEKAAYFAkx+A5EACgkQdRq13aeWecwVhBAAvlbS +419AK4UOQf9OWsV9jTjPeNh3QsgG1yYv10dpcYZlSMy66eIuIbSt/f2IIMDtNSib +N69/0Rc2seisj/fq9wi2LvArXPJb4aNMZ1xJi6xhMbk/eZENRe9eB8eLNLWyW4Sy +BCeN5gWB0N1lDniSs/fKoEVfuWTmgBlte9hOrS3oEK8QNRY0hylsmLJX+JMJu5Wb +z0VDdxLAjHc6R4vBjAqm8UJidFcsSsm+Hq3Pv/2dQrEtp0cw6iWGqgSHgSxK/D5t +35t2ENdHdZgJNJQGFOvBtthlMfacjAHw7vM1OCsNhrFlfb5Ii87f2cQox1Uw58/M +iQszJNpkMWPGOhQfatn3eWQCwXxsUTdoUz+VYe0KxpL6cF/CFcE17M2GcmjQ4bwr +Cs1Pjv3GzvXjqOdkW4VlzNLKS4yoi0SzvebR8ikFkjdjXQgVmNadrQlTWvfrmz+J +jwBwwTuD40rYgraOWgzLx+PGTXb3sw8jIvejhnNHAazMSrpkecTEd7GLOoo5u3Ud +ecYLOsHTW/Vb42MgMCJayAyyWyBrbDpQ1Q0iytkO1Vuv/p3NuLW+fIC9fLL0sfKi +6b1Wm4UXJA0tfZQPfTe7yem1JORLlj0hkPyqNFlT9yG84Iw7d7niJzaf2Ot/2v2K +9ZKwF3hJct3sMnTCL8tHpsRELR8duOaLDuVrXBOJAhwEEwEIAAYFAkyY0kEACgkQ +T59tVQ7WEioGyg/+KKA71cWgFv3MeX/jPgitnEUzwVkBUG0f5Xtwr+U0QsWz0sBg +sm3yrqj12jLb/sOnNEh4jF8FAwiKhOhbdzkVtdxeXMsxqFZvI/hzGm0qIBp5jlTr +5kcbOz+PFnBK1kVOiqPKdUToUlGF9FYipnX9UwDOeiPClJAHuRl4DzsJVGO+BtLW +RHJE/xQay1dQlDcIxvp5N/0waI+dqp9NRfJ98b3vvag2/uq9q15LfnP0UlHTrtYp +oypIeZ6MZoI62hEdE0ZJCfRsaG3SAw5ii1HxmA3vsjkYzAvzg1yF+SHQXGlW+hZ8 +J81cyLJYqKq9Ul8AF+GTzcvq6ZeamQA/UF3TpxQndOOxR+Gu9GPXfiFm8jXtYuFO +ANIfo456ryQuD72/2bNzjYUnId4vaWTVIWMuhbIl+5UEG6sNNsmQ0t0UqYOZWrgA +mOAuU1+WVt+6BMYio0XuHqngrWZXkZLk2pZ9kMOtZ5+lXYoS55PzLED4FEsDCGy+ +nAx7UCwaChK64zBUUDdv/urKx4hIm56cvkEW/JOEIQ53n1ZIYK6WsGOP5SJF10ST +Xs53jVQ/WTjBaZbAa/RL0vc7x7kxwQ2tigIwMP/rC5wn5l5xfUuwLUC/9jQbYli6 +EhfHy1MUfg1XRxfWtqCjK+rdErpdXx0q+Q4czp6JvcCoqz66m0FlwcMGOmeJAhwE +EAEIAAYFAkylgXgACgkQnDFQPG2GY5bKNBAAhhkHyIvHLuDWaABfce7f4SKDo4hd +3FOUEpELQFItxkoIlWJOq9/Kqqh3gATjoaLVKWceLbSLFFVqKnk36Pyy6bSiyCVH +mdRTZcayNY1dGfo62HveeQGGsARhpzsQkXJ5yOCe2bI24jJ4joAtkd5R2yDgYYay +BbgkGWBsduzB/NiyynMaPSnaevpSSnGsaXezepjR3bG7CHgUgr/zTUtxTA/27KCJ +kIIKvlMQulAez/nFHtBM34Iro2gJcHVZGLX0MFCYiIfbTUD52ji/Rsa3TLeqrCnA +1iPFI+11E9BRTHseAeV2PEWSPJlWgLtkJDiF1Dpg59wwf2fA2ZBgTGgxh5DBQzrR +BlZRAoOB7CHHuies25Uonv12uj6c1eZQsefjSMHM9FHoofTOhm65Xl3bkR8kDdLR +wJTpqEp7BeELmX+hOnAzcoJpnbNQa+W1kqVBKWvOevnWqRL+d6pdwvPab6u0VS0I +Bqn+J42MgESFP6CPPy474DioQzyeVyyC1KuMAF2ycnqVwyzJlW2HFt50u89CBHRZ +oZtVumxkHLZGX/JfXapuIs5L57DeHn/Ogi/69WGvUwXrVYpT8Ua3lbAMPWbaWpZA +rEoaguLNF2KIU2tgTGupmkOJsWp5AcXYRWK27kudC9ySONoQS+MTChUeJS0bAHzN +tVD/f/szQtwb7jKJAhwEEAEKAAYFAkys9mQACgkQBuqgZuOXgy9HHhAAlOlQKuM4 +SCnsAmMvQ32PRLk6iiGbchvE3iFJg7O+ylS3t8hYWoatHL4+oAIGN7r7JWA7vG0K +1oW13sVOz2Bv/JryX+DrFw5kvirZUW7+bywX4WSf00vhgYEzBy/i389KA8JYsKzZ +rUL58ew0cXk6l+KN+BWxGD3Ec9mUjfsqsM2xCL0kn7FJMIvaPHE5vafolGjYEyXI +UoEJEFP09r2PtIiZEk7nk59cVKEfej3/Sfa0NCJRZsG20ZBldPhCMEyI3KtB9S25 +WiaprbO8dsfzePtI1pfXl8OE/daZUjzEWA9C5L+VFQQ3pq4OOq3BIqhxVR67moTb +tqxi5Ks5tJCrhjUtEllP7ItG/IQ/9B2aoq639n7JCXwC2IGnAM0hAgRihTvDfh1g +A3vMZbJYCCD7yua9oV6neBhuqIZ554oWj2K8aSIqjhGbZIOohQ+rjSAauqXNtK3h +jzpEH9TAuOr3jyTNHpBC7pixCJGDXkXpfiaKFiIPgR3XcEshuSAp5fstGKyfJT0O +K3tUO3VrwrLqDk+SJ6BwyUhdbG3/mhmyz4XEKci0qUcvm5kfLljOg9GU8DPP379P +Qw2fKxZ/wXivX70FRL5QE58zqEyWiSGl4wNSCVQJL3zhbCsKMp+onUyWbL/fC7kl +YbM+yowgfslwZwul7mAUu0Nm8Z2S2ho0yCaJAhwEEAEKAAYFAkzL5scACgkQSwd3 +I5KdQsNg/g/8Dgapw6z1PT3uXO7Qb5+Gmj6fZZdJCBGwD6U5QI7/IQsvuNTNqiQ3 +mp7vunjz/ElX5w/2wjCmEraRywj+pBzpkgX6PcRdKxSl+BvTuwv7iAtfQ5oEqxfY +hjq2rMTQ30ZhBvQ5eygwMvIsFzC9emPqUnMrHQHOdyyJ24XyNylu6LyHj8E+auUS +S38p2jDaEgAQeVIIPLuZMMwqcmR5xBu+26iGeUiGye+x23cpn2ZromGY3F4OMnBy +B8I9V496FRlmPza4reDpSLong6rL5uoQXrOP56t30a5/NKbbEyxkTGdZKTGHy4Ic +W88nd94lgKgMnXcvPmUmEZ6QOiqsRqZ9oJWKuzCzXWlGgiTCiivuyXFopT+u+Gmh +JIUytWGmS9FKfNYUpFTh2mVw85wn6PflqPV3iXAKJexCRdJ2A9gbRsOVDO4tEn+h +e24UVRbDfmD52eMJ8UXoS9lOgcjeeOja50d1ka8YLYkD6mHjTLvuRnVWgpDTNLmE +6Xts3ezALCb4UgJeMpFE1ok7UMnLbRWTXVBrNhzQe+oW0oCTUmAFmHnEZ6NXu/P1 +exTQiHhRGka/PIU36AkgLJ331Yr1XCZHdpXk1pXnzX9R6dsAESb7fixjj7jgqaQC +uIXPBDZfMQYuG+jA65X8WcKxSb35rrKq5dkNopWmIP8Gfre8X25RpZGJAhwEEAEI +AAYFAkzMcTYACgkQJQUzzKKbdk/kBA/+PqUIYWwjLuJdeNYV4zy24ldYaRGLg2Bu +55PUj9tP2HQ5NkgG5aGIKQiF+JrHvtmChYK0Jg4fPZWiodTXz+NTHjzK0LvagQw6 +qV8MrEwD2qosyT2J1hg7YaIcvx8xcSnYWtGSHBM1cvxJEmV5qGgVk3O63FZpv+th +DA1VIf+varfLRxXgjht/U38LhpSCjnd4qfajavvFKE9EB7u12DPtJUec7Fj/7qlp +GlB4wGjsUGvEAUHEbgTUjxSxhOi6L/YbNO2y3CGP0/8liuHOpGYYh1D70nnHUjcj +JzxFl99/C9x1BJzW3y4Ay8guIKQ4dp8Db0mPvrlDXrlANV+0MxznCof35aBnjz1E +6q8JbYBDmcU/kL+xQ1W7dQUjOLOaN3pKIv3FaTGMmbRt42rYPu5PddVXM/P4zkCx +QQJXYUszLdnREReoiR8suZTOxMd4lOJfXdesUe4vtpEHPV6LOGb68O2rPqrxjCfc +0T3phf3RqOZwiYPMITBxm7TjhRqMK+IE24AsRBfd7sxd93/cxYm/4S6lyGKq+Hbr +fupukz6BCdoug40l8WL7ZxgtdxIK7KZeWbYlufLn0il6kqna/RLFIKPAUKbZlic9 +PzZ5MYJtqyzSjX7jQY2InizrjHo8rveccqSq5c3Lpmf0RLmX4pnl0h1Yqm4UKvC3 +yuQbSXF3fjOJAhwEEAEKAAYFAk4v87UACgkQbmCLY32JZ+nwqRAAjCsegbPNSlPv +W0IGzPSyvzA64rFiSjpuWSsx8ujSK+MunL4cG90R75VhFe0VWmd8I6XEszBRUI1m +MdSKHqMRfpeBAs1fC65GNce+JB07cBqNdNNR9mhWi5ETY+kK6qY5mr57YrS8gPdw +6q/CjlPnvjKLc0PVw2q/OiKZBc27I5RhHul7fBw0I/c29NItGARaKolSRciwV0FE +4S2yV9yO94tmglqOweJTeN8Npy7nMcnV9zT6SyFmMk2k27/NCCwx2ITIjDtqIcHH +39gyq+xZJy2lFpPSuDt+GNb5AFPVIOgvJ9+/iGiYP3N8J8qcMTRfIpdlJTjNlN4Z +VvcmFWN8+e8TEWjslHdZiNJb5hjJOXGLIQT8exCE613VMFi3YKh1mkQVj5dAoJ8y +/41Vxf5uwTsmNQkLOUySHdgOMJZGkwLVUe9W/ffrdH06AaSzLzX8eilFo7371lbg +CmXEKsuy2rohsDKgLl1Zhu+0e6mRqIfmLiL4Djc+im9K4y2KNAdcFOTUu92YtO3M +0l4RUd73Loj12fL78RBS3sHwzwTCN+U23g5V1msdpjx1cc+apBEk2CKifKnGA6cd +x8U5D4034pCFdZ0bu0CUCxlOxR2NlFzfIyAkwBG1UzTr3bebbyFnz8tN8saT+5lt +/3MvYmKPxaWibBUfd3u3N0aA7ytSa0qJAhwEEAEIAAYFAk4wP0gACgkQsxGM74rq +j+7g8Q/+PG3CTNYaiqLnONrfsbQYwpTJvYz7tP/TmgjLsPHd4IkzgcffRobnaR8d +iECv97fEEfs6GiiUqnn92T8KW0Ep0SWH4AvwPFeX7+CsXz+Sy8vVzJldCFInDqFm +rX+A83HrhnYjUgx8fUdgrJwdaUTlys5zYffheo4zUtskO+7Bfq8XluQbNIH7cmjC +RvrbO7dTJjagQWOx+s+xDhqCk/NIHptl4GkZt9XpNKk5FEWyVebj0A8i5J27KGwB +5gCNLoG61+a5AYCJhpryKVEfND7LYW6aEZZQ8KjoVNoOeXe91KGRaSSTztSG5MjI +Tt0U96XyJJrSOMiAxw0/LrXUmiEs65UuoZxVA/wHHfcu52sEySLNVLwGGCSmfXQ5 +SxGMW9U+9KuN4p+x4HJtmFt01d+t2vClP+hW4IR/a7UJgoU1to+fG4MI6XDOOI7C +YSG/bUM56t+++2ne3yhfuSG1EMGAN0rof2C1dzsYmzDwae88ysCqd94PHEs3vYnM +1novntF+0/7e4RyCoE+WX6jnRDNJs8Xl0ouQq1zTJy3N0JmQYbSywhaSvXeAAGdp +Re5mmmGFQAmE8va8xPohg4p4Ji6wXWXa1g8FhMCUjjRp25eXUpv9xwHoKnavyYQd +LLL7KlU89JKBlBZF9WKULKgUniM4YfXazklab5FZ1FTfvpmGW6eJBBwEEAECAAYF +Ak4waA4ACgkQUMNjTTopHPmIrx//cmR7JcW7Qy3sjztvKTGrSD4tpTIBsMWrKLxI +Yy6Lfvpawod83i/GrCUAMogQD6bWgp9PkGSCg0Qzlt2lZf9CAQ9Uxpvcs9EzA0GJ +3LAKfelzsaX5j6VOtX6NXJ29dZ9b/knyN8Bx2TN3mNcS/SrnRDOH34G9l9oQozB2 +aMHnW3G7JtoGejkJ+DRn4MLO+vkeudfaenth4vAd5raqyrklLtPmHRQ/FK7bnd6v +o6poN8V8X51yn9mM+uLjxUksm4DNEm9Tex+/51rjOLVLccVGX0KapNxshwYpMN7A +LUMj1ZJK6P171p73rsSKlJpTsNrZld3nqpd8qZ7vXXCnvG65u9F9nMu09QrYiP/d +8PguSPm8nevNWM5Fwys+7DRv1n28oYrBIncTySOmYO+BX2La1wbwAVHxlLSAJ78H +abx1otroovx6roZtagAP5XiTqSTcpSeh/xbwTBJoZe8AGP94qDewXGk7YkDvjl4u +/PIpc5jAzLRMTA0w3qLEVtL5SnDaSEQyXyESIHcaVwOwtctRAxExCdm2yBDGYqi+ +v1CDPmbsUIR8luQxF3fRLDl+LmXGhw3swLi8+t4VvahUw4a4xEfdfTZ9+CfZWSfo +/03SdqTRW4fZLKXXFQetWMSRiQ5aQ3XbHOhu2bZaGTY9ZrXliuw7EzO6/FhECcam +FFn7kKDJy+Nqu6MAAbA82q1+/lV2QdQF33G8kpx7pyc2ByIH3cUKrt3qILWiS3K5 +z2zEINNgxKLFlIRdnbIfV1BDzfgdDSB4681wmIyLkYHUxPeiBnshMBBoxkb4clku +zVs8hDAq8mT1jsDCtrVq+94IiJ7soeUB7KuLqRldrR0E2F2vYThgNVLYprM8hvNC +PwOSOFdu8qBF+Te7KYGGHhGMCxuY1gzGKoUTTQOqhCF/dsXfPF/6lSeBlnaXdsSq +nyj4D4P4CBR9HkW8HsncKJCe3czZr6NKhG68SC/OJg6NK2Kq67Yr9lKeJXsSL8KR +s8Oi0PDqG/1lct+88yJR1+9/vdLfCtbkSqNo6zujV2gzOxY9Sj6aMX3qwIDQEsQe +BJ4ZV0yDyEmmIvxFwsaVAeoRif/ERDZGC4fW6kcw3oN193OBmsg9wG8HiWQ3Qrwd +g69b9ermiWCZXRUhZQIQioNirLig0skFisbto2xemyxoPCjfYo7SGkqJWUcKbbA4 +bFD7Z+ZFVrpN2yzDigQ2yVQK/opTytPgl1X811uNFtshbm/rG4IGH/VmoJKKLJ3+ +HX6hVocaOvhIIz7l5T//8Q6SN67QqcDZQuiKT+EFfTdLAQma3nRcfSHqHo8SLXBR +TNMtLe87Om4VkJSTE5pVNWT9oyXbfE2yUJAymlauTlcZCA5XiokCHAQQAQoABgUC +TjCf5gAKCRA6k2GWwJXZQe4SD/0Zqxyd56Dgc41m/wbszN3hmYtFU5f8l2Ru94zB +a58k54M2600/+luvOphOpAvOdRPHupKEFxG6Hq0wINpQkaCxwSYe8OnV2Qc2OcMQ +qVwPwA7wDrahSBy57sxKnS+jV2oHJWBXEj2MGU08A0SPRqelI3bS0C1YfSMRVvFI +GtFJxeXcA4/LKjYBrZNC2CBGh5Jks/3HGJw/Xsf3S2LJlEiGPM4D6//0nK7AQGhm +nXw/PA0GOUPnI9WjnIHUHFuBzvVb1+ID/boZylxJ0Im0MAjDEmLZ5eaEqAIjuHLC +w5H4w74/YnGdMYiJ8+QsU81fjElBHhMgUzc30CjwOwRhu5AlnwIWz96CJ3+JIUDF ++i00LTg99NFIEaoEFICNcUCt5bx8x//WtLV5M+lMit4S6YCQCj1uV5ltTBAyK3J7 +xUzMjt8hFg5JAOVzPLgWq+BKEFVoK90VYLQRSoEG8B5wbLIpZyePS2N+BWqTaG/w +m87uSTLLjOvZAsFBsa6PsUTR9jdS3LGpR6Z+MbJuanqPFrPJLu+/JNLzBO3uJriO +PaQIT9y6JycFQgsoOvYGc7zqCm8qTqP43W1MqqW7F4AANFqgISzT0YzVLf/BLdDM +40ApX0/LAi6ezCgwQ2MZOnZA/gqDCeWmRzunuOHy9VWzsWbFn+o07gmameO5W2FM +rpW/E4kCHAQQAQIABgUCTjEI/gAKCRBowHi+iPgM2u6VD/9ZKvHrzSC1Jich45dU +PDTszTbEump3QYp172B90phS8njXj2ZPcbkg1O5Gspjwr15FPKkuJob1QPCCOFa8 +UUofQBIJcKCZ+/zHmLz/bf8ZwbBSMGXJlM/Vorjbz0SvxGfFIPquUS09ae+WVvfy +U0AV7b/na1ilqOaAIIEssESR1kWQ0lsPe+rzSqwl+aRwWLhClKYGiCUP9/lQMd1J +WmzQwWnYdjp4fmBsPBZ88Pvh5+kk91xYMHBXUXtUo60VDGTJMirCBJrMqBLipORU +g3ZipVdPI9yWgH6r1zxgYjJz7hG8XDQra8YQ+usyvw+dDF4j5Jm+N1gD+of+LpGb +WoTIaQsN/t3vSOv5t35sowiVgy1PBn6kf8a4f4UHtdTh8CEoDAsFZWcRNr1foqI6 +KvWOMevqRa2j1T1KdDFa5iyVvvb6VTSOodZ2kmzgAGMe35z7/ZEvzbs0iC3Cnh3q +xultoWATcOyiqgP+XcfZrc7Y4/8KptSOfCnRwPJVYD1nrFlfdIDlFt++uFViX/Ys +zHMcCQzOn1koBA+GD0chnnvJj9w+oiiU8nzITpodI1xUaAFtXlz8WOUAg707xZ79 +AEfm5PSa95dLbxRffqfPtEZiuk/IG+2Nw3ugly19YCuh5yCDACs6yFlOz6qnE+6w +44UVeegKGFKf1ER0J4fIvG1TRokCHAQTAQoABgUCTjXnZwAKCRDQF4x2fQae5iBL +D/9I29MDhP9Bagj0GYVe1ph+uBIhx6eO4YvWHZyT1vHzyn+aj5KtqujDwBLvmQFs +W2rRscDdRFIs91WTjHIDHuLJL7p67xB3mq3fHzn427G5SlT/tHn0t5SvIvq2TwgP +HHkDt9hemOZB1YCzJSyBGf4V7W2HNzu3c0Idzw1LABc762TGoTifbqKA6F8q41zC +/S8JJjZlKzRxrXvB3em/zvQZ9hD2OXxdp9byosawFbfRhWVkQblcAiS6HgGRlLXt +9aXKiBzGvZPQhryHC4GCiyuLPbZOXzo415zOHtEcToLlo0DUl/nriwHBKBQYqlD6 +9ADxz049n79i5l+ld28g/GnXAiCo+KhCz/vlgKRJtJEqNfGTSmkRqilavSH36ChI +ksskziKsfNCfkbIlgN15UdueIG49o4+zc12ekhUb61xW/+U1uJnuRsxU2RCzW/RG +nW4jgqDu671MN2tY/Nx1jm4qYFN2ferCcag3uqhBynNCOUp9VRr5IQrB7k7kOxVk +dyds+n3Fz/7TmXnIOKbZoxSSBOvWyTkJ7tvSXcTwYQrFksLNqRzx5ZFG8YamDJlG +2F/PMTyg+QeYgJKm7B7sd2VPaQjf99tvCqNxP9jPEvS5w9QxhMIyjMQ3HRBTzZhp +DwzUwVXrqYV3DQWLZomIPKKyjlEWKB4HOW3XSrYCp85ccYkCHAQQAQgABgUCTjZ/ +CQAKCRC7OmgBhkmqBrL6D/9Le5pC0AgfQtNDHWGmQRDZf7XuCa0JQsSWGD9//eji +M70DNKZx+eRaLWxxLD3p9z5F3LXwfGvpmCqFhQzfk+ejVR1OU0T+BF2ztsiLqyN2 +sxzrby8zuRHIkewf2Vfb11ffAJbC12AAQKZrtdNQdh1EjUyocmPm2sRoGZxOa90A +waGPCAxw8d3434fByPagk/Z7uFvBfdVfAHG4NlJ4S3Vc0bEH3gXT6YeZah+UjMTy +NFQSyrNHfwBtzXsvWDD0E+76MKNAHGg8+bS7gmurbTlG9ttb6lnGrnlyScNuP6T8 +kmlhvSdIO4eqb8iRUplqwiOFrjAlumWXM23FgMN9CIVF7ZemgaviEep+rNMuxpgk +bV2NuSFeyCjGYDqOwQa9SsdXDQ7BJuI6IieIbZMkw7NU2Tk4Bd31dfgHf3ce+Wpp +usReXal93iPhPD4EbFJKTx1CvDxGp+HKSaMvUa6ZUVNl8V7UMdH1zOpXkVz0K+tH +u/IESHY+yaN09q02h/hHt0dkYHK4Svg+Wcwf+Y5iDu1Ur2/jNp3CAI5iM0g9Xcl5 +zHuK5TLf7saLlXtXK+CNILc2Pnep5/ivV7szVHD26WUzeyqrj1Fs+/1cswihLeym +BGAuJ0LIT0y+hL7eCD/JbHsmjLCSaj+sbNUM6zMuqQ68/QvR3mEmMlTIt9d42eRl +J4kCHAQQAQoABgUCTj1J4wAKCRAm48h1p0Qg76MeD/9gZfu0u6CLtIyqDN7XDYXi +1s3NXgA9txnrqN02wpLR4NlFBYz8j+cTEDEnvOXibFLsf3vJ9nzT8tm9/FXfV6hv +0yGLIO8ZamX6Oyst+RVt9kltJPzR0ifQaC4mbUPVZ0eHoNQsnRLv/OVhOeTFm7kG +QB4mU3wqLjYWO/yjcC1od8NelV5QHrmCOJbW7O4jV4qjN0Ylin7dPjccAObfulBN +RylO/Rnr+7wdRZh2tqCMfORf7Oo/M+C9f4tw7TYUa7NK6pVIotLLG0LRzQj55XM/ +tSgPnA0f+WVLyntSKrobyAi1v8lPniE+3cZaN7OTWCpi5wD1VSL3w8p1AN9CHFWB +s0WJPXp9me1+sgOQJPich3i8vlhK97ooxuCwTzpKZ2wLfClwNTqlZZK/5ZQTl6Ik +SGEGN+Yjij1TacPXOFAut49OzkIevIjPQ0uhxJuCUVSnOJ335Rfz7w9USrppxcE4 +GpKcFUNCU0L6roa1vbLngmuGkqdkJ6LU72MxTVjIy/adrbxWtAUUPleEcSf/PHBE +VQzksxD4mpWkU8DeF96pjIimMnETSZONra2QAT1s/M2GQQvj3TghEOVQ+KllaAB2 +lqXXAlovDBRNVfyuKeGAxvsvW6UUTFHk6LGJbk2ldLufrxLrkhtbl4oj7XzVDTH/ +ZE5YglWyEDMu0XUWlpHJQ4kCHAQTAQoABgUCTklNnwAKCRCe3MmR2atFfhfhD/9V +shamfuOi6PJYhVYLzduCTZKmq/rANrCZgfTVZeIi5AVW52fggYHLs8GRkb3MLjy7 +LZv7d78GeuzHYPOsi2XBj1igg6cSZRWDD71eK8bSwyVxNG/pfEJAgvnPJJGK20di +UYnYw+dobssOD1iMpOTsyClsW7nelACWVRKocOhvJE6Zrf0mXK6MYveayLe1kKq+ +o1qr5aG4CIsB5yyOSVjomq5ZVEF05t+HlHT8o/8wNv5JXftMuJq62GVoHQFZfzYw +nZ484NeR7Ju1fq/tyk048Y9K7cpGUcX4EhCW9JYMclQ1DdF1p4xaeMgJ3f2wjwIE +CvFawUFfIeO7ztelVVNwHahy/82lNmzsijQY1Ns3hh2TyE185brnIKcArAeC3VgN +GhQzTNAxFDrsGOpTM2RWAevggEmRt6MR5MZaFj6gQIHox+XJig7GMk1ISu5nCD/U +mONOcMHSSzIsbk27mpI++rr6VpdSpcOyWIKshXO8xJJOL8TZ7Hh+hq3OrgOkl07P +6RlmxxLsmHsyPWUrakLmLh7q5QGQHDPSUIutk33EFGJ5jjld/RynRBILCLemi/HO +eMS7ltgoF2j8xohRn1rATNE/Z/c5HWf6BwSN8/WYvggwl73PYvwBFuB7IYZjudK7 +sAcmObAJrCYNNQv16zErd8AdasJB/mla0aOuipIkwIkCHAQQAQIABgUCTlO6swAK +CRAH/EiRBCumWoEKD/9n4dQuTqrKAVsjYkgPYve9NbI/vk3qK2myH2SXYfGF0rd7 +WJ81lL4Qv649iB/ofln4Ov2RuHx8c2howGhwwusfWR5gvdMYKgu4sCDflsln3lCQ +SnD+EbmwkOb6ilSiOGU9YHANr9C72CyB0kcxlNXGPLR+lwnOB5UUoA6/z/IPd2jM +fGND9fsDhT6HH3lM6+SRTx2JYX2fkP8kU0q37l4idw4XclhJaLRN8dob4GZhpLCg +Zfve2vlS58cybZWJJQhdbQH8clKfzJW3vNYGPcuTMV81Qd4bdvDGHM0Z4IFzjVbz +cxMI9/qxM/YtU/AZlA6i1O6lj3hI2iN/ky1hym3GA0gEQjtNwyLByFcHh9hgxG5G +t7Yh8jIzNM/kn54+jchkmB1uIzk6Zt82CszSOfzs7K4JNa1g0ZctWrWpWS95a9Hv +gyxKCi4ImhmJIKJb5GN08cXDpb1T56HQ2/CnTsVjkYs1azXioJyBomU0uJznWy3a +Bzc2kzNAHJOkr05wRBAz28aUoGYVAktRbyxAzRWPibe8w5f6pMzwT62iKcT6D7AU +5VhNjQI3uWmGLgpXB1YrKKWOU8bdl9h1E4WOvH/lmFhF7bl/zESEsTYWDL9gT0Ut +fDfHmTObYegiHkdzGrH14YR0j+gjcIqrsMi9UBdJH/WiukLQksqVUCODAV59Q4kC +HAQQAQIABgUCTm+frwAKCRC4KiF6/f4J8nxvD/4s/G7r4Pm/GNHBhcW86XCwXNLe +mJBh2cJNM1NpBo0PMammmxXnFAzpb+0iOwzdyG1GyfVhfCxJjmWKEQgciAxA73TQ +MVrUh/xN83wOpmaSztZCv1K7dHl9ktxF7DMO6P1n2+8XVeI8Qv6/VBtAr6GLWFQn +zBwgXqZbcDrwB7Arok/Ne2iKxOHeUZQBqEC7AX5DzSQNppDPL5opbt9Gak/HYMj+ +nYuq7qcZ0ueSB7+RNryrpdVH00830DhzSirXczJk24PLuUnb0uQ48GkmzpyCAQGm +Tte5+TDSpULcXHzOArcqayDX7F4d8Ge8WaLNwg7uPgYdy6rnIQiuMHJmkkFBBecE +9OlujaX2dCBfrxpHg6g2ur4VUbPiU/PiTi9ORwEChxnVrIlrznDT17qubHUEhEdS +weVveJ8gaKdDVM/RalfPsdDrEMubzQU9HC255/oNTeDSecvxbniZHT3fJHe7PQqu +7Boo4IzJqleFa75wGWe+UT7yJFMRXTZclVz8QJNTdsstRpiviEwqzSjBWyzwsQfu +95i/CRxWdfm9Eg2b6kZOS9/zwU/+GuwkUdvR8BuxO3osT1eq8LE7jIRTO9HiYUZe +2vwZcnX/PXBHGZsqAIWbpqzi0gaG5BqvDsIFrdz3sKkfjoesGAWkFoavfKD/ly8W +bs1io91cBJ1MPenQRokCHAQQAQIABgUCULOgUQAKCRCq+K4WMF1uLJmdD/9kLevC +v5W3r1w47GEIMzwC5ZmBszpvM/ooIqpJAfWyQkZbENU1iHm7uhVUtGa3fpCmYyxK +uUOkLdK8fqac+LRrQTCx5+EMhnjyq1wLXBtiM1BpGwoHtCv9I2yUBTLLsBUSvrid +wvbE8Q7C0Soe2TLVhZS30ncz0FAYro5ZtpO6S7xHDc50k0wmxl5j+7DKYMzPLao5 +9uuVbWrGhJfea3DoHOd71HZFx/LIVOXeL11osENSXFpfSo2Xtjz4qfNS8dkSvkOz +A8ArKyBUO8JsoSp48bjF4DfpfTSHYoMjmoJU9n9FBnp4hJoIV9LSOLnv+3lKTYNB +bulqMOZuGSsLD6msWv693d01XpifML7n93MrbBZRswJKaspgYKICNLfPtpRqPT4E +Dj7PqDHPMAaFsrWMZu+mHw4VJEs42JIK8g4xtxm/AfK6R8YMZDYlqEI1ybjAJbXe +2iOhZc+87M+Y78cqFK4Cr9dYBHByFp44llrKfAL4w2Moo+M91GnYLZOJYSCcw2HT +uWa4Ni6M32bLMq0ay0IGzhP4/8HIqp6HRWW3OkkKzxqON3YBrU9myvjl+G7gl2qL +nUTgOP6rfAsYoCPKj8rW5htt71+DZ8eMALmSByw9J/CvVLOWFg2Ekl2Zn9fQwrnE +w7Zc5oJe98z9LLmHBSyDriNw+xcRhjkecfuOeYkCHAQQAQgABgUCTn2qDQAKCRDb +vp1NmdKgBCQuD/9h7ihXltRV0J02pt2kqMy1VVpNOt8YyeQTQabKlgvGQZwVkAX/ +bAWCZsp3gqtF8zDB4E1BQDZoqNTtmoKcNu0JdqKpdi3rRS2o5HMaq9yLnZtRsFWg +M1PCTRWB0l3QVS09EUS0lg/ntck7bMqjGGQHQjY90o6zdXn4vHlt/qY+5yn4hwP1 +KXYspnttHzXojqQe4e7rPhpJIepy4swmohTZ5G2y/LaJxQ753UERRq0AyPbot6lt +eEb1o+rPR/mfyq6ge/+vn+RtLNaC2Am1DDfnK9045F3Nd/WnpVNBMYG+pzNjyaOB +JCbfgD45pmvchI2e0xIPFJuELwq6BkTZVRV8GE9MNvdmgXqcxSmcf4FMtIuURkNK +RV7HSIyG8aNbetnLqgMCvCoInOg2o5r91Aw+mWo6R9vLvyTmpT8nUXWsuZEjRt1o +CaGbxr8vltJHtiTMPshDVqKcS65rDZZ8uygS8lALyuCufCYgAeZhxv3IxIMIYUfN +h5UH/MMllSHc1I+/IoHq86KWKjo8qWL6lHrl+nAbLAfyniaIjMLVZRLdpcgn7uw9 +yeJ+++gL7P9pVb0Qq86Ve3fpYO1a364oZkuhHcp5f6iTrv+Zb2HBxGuYbSx1UVbi +bBkMHri0TNiaotE6fj5mbzvKHryy3coApAeHSx7b0Tz4ZWhK29RLiaNK2IkCHAQQ +AQgABgUCTpDyywAKCRB2K1e7eEIGrapCEACC2gFGnMlLEC2erppFdQXa8UuRbLGV +ybwAgy3mKQBollUsJrrZaf6bb8qsWiKbj9K/zCI1t9ztKBmdEuOrn9uhcpqfuciI +Xgaic2bJ2V8OL3kUBUDdFFcznLEOBfVSux2/2pEr2KyBEIR/g8Mk7T4lnsLWbXPs +ezH6Ay2rUNGIlVuozrOFd+NNPspGS073zmoSAwQWmi5akvmhxsOTOmlfJzAoTbLN +uUfZ7/ZOdSGsL2D0QLfbcTBvxuP0Wyx684LOR3izX4fOKJsJxbnuOm72EQaVUgBy +bVlWldkQIwSsZ+LRg1HvrPADW7bD3+wtl68CdiDIj+oKq8bVR4ShG0TcOsS8FAdZ +EKSh+3GGiiZZAfjf+oBdiVC615nkHMdK4l46tm22KkQlK9k5Sh+cl22r6fsPSnO1 +Tjirjs8iFeou8Au9uqaq3MZqwY9C6kGob5tsLDgL2Rre5bPLt46cATf7tPqKhoiv +2+RKE5C0anrgeAS0guvtHzheejk5zb/zM748l8DW21ht8C7f3AD/Vhi/UXvy3l1w +wzLDtTLsJ4GNcScfAW86JzbgRnEuEl+++ez5W7AQ22arGL7YNZdC69MDmjx3E8OU +RaxnKPhGf2/xma2Rpo0HPlGgU9FWmIwimx4hNxYF2Wb5qg05xuinbgKbYsj3Lmut +KNk2lbI3mX5cN4kCHAQQAQIABgUCUhJgUwAKCRDY7tfzyDv6muicD/4/J6Rv395P +Vh2tECAZvNi0YP8e1VwJcg5TK6YFobl4eLBSrvZPMSLJ3DN15CilumNJFvfelVo+ +TUNP57nh44XbfkghOG0kUO4fSpnShRiUZ3r2yOtpoADf2sDkRnP9eSHLTXYR6XO6 +HSdlmp+8qN3/UUMcpnTjiijLyNPeCVLufITLghnHdp9n0DgK/n9zhoPhJWa4wQzz +XEgZvw+ywBHehU4TzJJmJaKabL0xLSDGd6dukvnJv+bxJMAjsaKW+QIPSiKvsJs0 +59U1AvIQESFMa5/HDiK6d/8qwkFiTCFU/CLPkwrvRK3hemVFGdzULrSd4S6GyVGP +xUzdI+6H+Fd1RFTlnoTK9lEg8KCqKxmsCuGJtJWZ87Dl70s3LsAsLJ/vPnxS1qSv +Brgc5INHkt8Rvlb4EVKfzSs0PFePVBAxrQT5dtrPHqzOZCfskB3wZmF8pnl+5Sru +NgMQ4gXVkRNvrGqBROo7XkVfjE4hDAVJQb0hlJfYODUp+nNqIyyR+PAPHkI2FF8L +upYMoU/VIombHQI7yoAwKqCKUVlHdqGO+/pJgkfRBHarHYsx9lNbMxcvpQnjlvJY +Uea3x+PgM8PNwHReebYYBEfr8JtrUQ9dMkwuUy7FgCNtIdRrqO7WJaOb2rnsPaJg +2FNHrLK/csaMrdhSk+RzsgJva7Eaa0hDoYkCHAQQAQgABgUCUg4nNAAKCRBHcSFx +8u1i+9sNEACB85UCpQ4J1u5G+5SjcXs7cog/W02xuuWkL642wRCDgxN22Of/Toif +q+TF2V63dzRHpRLuoxaQtKEGm3eMiFnv2Cj38uALOCfiHIgbGXX0v1fT8vJXELw2 +0Ra1eLcYzWB87wR7BK+OvvP3TcxXsVcxYHgs+fYTPc4MBHbtT9Id5qpwVJpnAmCu +3qWSSUbOXs06SUVOMYh8ccw/q2xL7y44qDGMsMxR/ERiQN+uGRMmawXaAxKE1bwB +VeDPbRfEHY2fl/dG+9ODYvG4H2D4arEkj0EXJ1wBZUlK1UPwDlZoHTdjZDvVwzI+ +zTolmqC1mqWLIsrPZF2NEqkrXD5ya7gchyzC76zyfzffYD9CPCvS74VJJJKumm7L +o9syN5aGipaAmq83ma0aGL8umQ3ORRbHRmS6PpFQiviZYS70PVwvU5Qe/OU01YON +3LbvtZR989uc/j2e2Gbvdbgdg3TbwylZ0TXel0y15YqzLdDhALGAWJuUCS0TWVzl +z6ONkP/yNizvS976Rmpl5SV/BBHMxDxKMujhBqVwDYdkF/8okDs41oRNKchOeadX +Wtk63yYqkGOnet4p+0dJBj4NkKT6ljoyJ4X47avmanL3hUaL2lwlRPYePEm18sGC +gpwNJ2QOSHoUnyLAD14M8jVReeHBzamVoacgi1SSJ7FwSloWkSm9t4kCHAQQAQoA +BgUCUg4lTAAKCRCnPgBVVY+43cpXEACYzzrGoUCMF/3DTMf+HHPFBnUQbzC0o46r +kQL2F9SgGkfL9ccqqVcUwuW3oHmnky/oUxDwRk4Ldl844eisrWSv2YBftACDBGg/ +7OJQnXT/R4b/kzsVrYzJZsSmQDABWrlov4T5RX1EXAM1EJcJ0rhHatYG4zmVoOa/ +ArsV7IhmhK42T+MR1Ew/njgrjq+mGM15BZkYUJcfmR7Ym3XzG2RQJIYOVOETAUUo +tKqrDLA+tZEd9gnrzoanYt5DHVm4xkZ1QdR62yFk5OKGaIGjjMrVlzLnKckaqw/B +GsgkktDDWewAVx7Q2OQ12ocAKf0QJV5Ve3sRBRgj9iQPOfPTcCT9qJ3fY31h//sq +8PpMbfgUU87enfALvSzQwgZEKeF678y42wVCPTwsYXA9ZQxJAAoS0+LCfogs0zfI +oP+2sh4T6Mz40jiJmn74A17G7nL3bn5ZPVeZxHUaU1YJacqYI/y5qNUQ062I6HIr +Rv5WtepmgRKpoSk5yhXHdp81tQTZEc6B3qOrf7mTIN2dE+vZWHxSgXNvnUM7AXNg +dOpj4ZsJBqtscTfwSrAMkBkZY/a/cpkF9HA4iEgNcGqLf+lPQHH+SgF0KIJcbJQX +xwCapYs9chE1ObtI3xvTp3SzXWSmGcCPMcxsefxrz08YsYCPygpxwiwQ3RWIvdbJ +asv+z+BcR4kCHAQQAQoABgUCUhDOrAAKCRBOcWDtSsjuHUbPEACwM7OuaHYY4Squ +XMrFD/WtKBH1P0FejZB74eBtqRvZVbxLf7IOqxBSKEc1iekkUrGHljOBWymASiBP +JcJR3ZkbG4TdgFRcahLD79K8M3G30PWsR9615zf0hXaYrV0ltmGPRPoB2NZTQ204 +OAO0z50s+ZezWOQji1unKgqI9G9pHQzIMRcLaDvOSRQDegPz4r2B7NUcPLvcmkJI +K+oZqqjNJTJXnhxKLTuqah+mIArhkDcKjCoOafG1O7bZwtW9Di9Qq6ZTcM0a06Bk +GNjyowpSeENKqU94SyyqALiVoFhv0153ZjF1xeNvpqCiQVbjkNYel0MnVq8IQmLB +5vPFm8tvuaTVLtc3NHECuC5Xs/g8WtDw4GszveHS2t3qzxXoY+9wxmJXUHRFSsVC +CZFCjVzCgTW8laGldhlF0+OEIVZKvv6RAM109ThXO6cB8ER8UFqbzEKwbhs7yscc +QkhCC+6bpnWTmqTDRiaybC7HG9mCS+Yd7uxdjzanoQdpZx25qvCeqV1IhoW4lxGy +UIUMm7YhflaBFg3zOBEVpgGyDWZLY7lG6nvWHAWEyRVjVwrY3bocYoV6MVA5UIce +hDiM/O+8TC/GUPPEwdTUGrubEF3gxWb4taPM/DEzY4P2S0H/1HAvlbqB21Z/ae4O +07JR28xL2TAiZQWxGUa3/3zgcPVxZIkCHAQQAQoABgUCUhKLRAAKCRAgZMU2QcJe +XXgdD/9VDyqCESbiORBu4Hyel67QJI+Gs5V5XYg37FgoJJwzXdby8LfV/kinUFyY +AXH3Gz23TUtU6ujozdIqDo2w7i96KOTcGgNyneu0uz/NoYm16ufLQcHhALKOCjFN +yBpEfAypSDnm9yNSwjR2H280aiMmop6IwblF2fgtSgM0APR/L/FxgAE5rfeyUshd +oDZMZ7cL3EYaKb245qysRu4FEqYStITU9TRSPRYseCxGxpeU8kHBIv9zjtAKIK3b +9ulda/9i1M5qtbYNMa0b7+Wg4N0PlmtavEjnEU5kc0UQz9H9A0jzk8mPa5tQZUu7 +0HKkkcJNhlxZ135SxwWKxi3L1WHBFZ3ql6my5SoTOtSXis40Lvms0IFdrZ0SguKl +s0YMQHC6j1yxDWLG3cNoyC11klcU8yjNCVnCP63TY/qBTPIV3WHxAQtSJK91z2Cu +rU17mdjXYOKufEhDmkroXJAnpBXNjxDPc9xJy0AyJT9CUSigMUgMUJc0AfXbZwWw +D2W4JNHWLa8yW56Y/uKirKo18VNltVpIBoOYMriBokLa6tKA785/r0gmaS8t3GZc +pjslpf0t5HKg2xNQjcuzbsaw0fFY9bKFKvj9CceHk5eDJhtNhkJEVH7MYUnJxOf1 +yC45ZXFBvxxdWksaZScC4b/4RUmeweudEob62zkNSylUjODwTYkCHAQQAQIABgUC +Ut4MVQAKCRB1l3ipo2tJT/a3D/4pTzW+uyzBTBVFTv9gp/OEsns3DoMSciQSlvAs +UrQMbxfOmL3I/2ifgowx8NI3GLiCo7E+nEw5EH5Ny1YkcHSQtq9OK+41MW4bQKZ+ +BkZS0MUGO9MurIuZbBqwZYJ1KQ2dS2GHK7ct95+c106yv27803wchgQutLCFpJhT +p2iT/cDmQmyXAtAFdw3S2ErfkIjmaWtOWMI7Qzw8siBK2F70pVeeapt6TtchPei0 +YZUHbSJdoUn5LyJV323MaNGFcnO9PSE3mynBoJk/R1fJaaVL7FrLoN7KPdvlN5T2 +51IjHajZkozDuLiez7FoV6r4Y/9cN3gqj8EjGhFmk941LXwVi7Zz1hCugK8/8/Ua ++1bkSTWJIWmfnPP0wHFzxAxoxVnFWP5+PXs/0HOEMACxUYAjml3lpf9DvKiVEZcB +R9Fjljd+TV09pyAnagHmHLJ8w4RMg/MtIpC0mvDMHIRp6pJznHS5GOivaRM/Zf8B +pQ+F6zv7PRyxu5d9xaMkc/eyZYvhQ4WS5gQcuKN66Pn7P8Eu/edcxhqasPAuBBpI +oIEGPlmxOLeDUN3fPPDIMfGesWHDZt3XFVhfk62nygH+Nv+Ddt1xC0q6FSGZWao/ +4+VNMYok7fzn5T1I86vDB/L7bD45z2Un311I5dMoNV/AoQh3Q/O3TGuqrv4pypP6 +7WoXiIkCHAQQAQIABgUCUzgqvgAKCRCPDnwrRSLjhy5rEACpepn5cENIghOAbR+6 +9wZyi74DGAAmNIND8+10/+q7lslQduq+wtG0XuptK9QN7P9NuZ9NLqGvX1JJo1QT +/uVVfbAwVkhkAK1F14C7++Hia/f5P92yQxDNU/PmcydVDPz8rVsmWFUNihvB9mHn +YIaFJeTJaZh7R6z+9XyyuFJXxRHz7qBSc5K/Sbfkb12T6zJ50hzHzak/7gcG4JbZ +PhS474ltVjGrkRHxMZ4txgThXjx+dP473XX9Uu9RG72fs+Uh/IzDP04xuZP08een +F6g1YFh+OOOu7YIONFa+++LFYprbNRMIkclu5ubKe8EDS/LavmeWqLkGeXtdKPXU +K7C/3kh1RXwQYnO2XflU/MZklcabUtpAhNvkLQHZ/Tft18Ndcv22zMf7cdJTakNg +L0MBsuUbhYO13dlJu3ESUaab0MgXIb5+mReFYdiRKgLcXq/qAb26OdfcYZLwO01U +3am2PbBxG96oEpkwvC1BzgYWVfVmMjUfXN1lpD4koGgErT2fXwe7u9dX5wzW/+Zl +o7y5OFGegvhHc1UE4bz9SWN+mMONskyo05epMSlFzoSl4/2q9a119PD6DQFxWuww +vG5SbybdpiZFsKF/1XeQJfjqmA2q3X1UG25irK14jLccSptHFyAM9yOB6jRTKw8w +McDt/8mguoWUCQWYbO/qzBVK8okCHAQQAQIABgUCU/0IpQAKCRCXupznYaCWO5KK +D/0Vr23n7ObrMT4OfxYAtAAxqS2YA43A8HDF05YbnNHcs22tCqgGy4sOnOsLGKa4 +6xi2Dq8L0HsyZekvk4LhPw2sXj0eNgYHiBcBQrwy636iOM5SwGBHd+A0ZBPapE03 +4fuJU3HCO0lu/X4PzsMJvaAGUPFMbzk0/M5SMUh0IeJFZg6RsZRGOQcebScZMWNK +EQewUpBtoulbpnXLSkOmUKudbYBof1E27kQh0ytm70OeaDskUMQTKNq3z9OM1hSJ +FRGhwWqCObq98L9LxzgBwd8hAesh+NUB5iv3wMhjLVFnI/NZdM37aoziTKBRI7ss +hnC6j0eKGH4CCTMWRYWgSky1X5ODcXrmXcmRTW1zjlU1huDn4qRAHRboLFjrX8Mo +1OeewCnKk1N5IuQIfMJnPPYH6Qu8RlQgf91sUBIFDgn1RzRKoIP4ugy1Si89NyKA +ULxGV6PtfIacd0p4XjVHauwZudAaAXtpFW0GY+bFuG1/TeR7jpIT+ThvTO+aNbVp +CDxqHI+qtj2I5Ud+UNiRDaj7V/iL33HkV+hHrgVjcpS4fhNKlubwskou2+xaLYqj +xB98a/kUpi4ZbU3AYhStbOZcPs8bFtriZhN56DoTZ00JinsTxGdF73KDXYn/IzrI +f2XnySHoVWWLphMWX/tibPhdaDTv5uIYcLKjLapbD7fpG4kCHAQQAQIABgUCVAYz +nwAKCRD200lbsK6aAvFND/0bih8V9twJ8Fy80/KVnNNNC5Q4nK1kpFhlO21urm9t +lpkXQQnxMIWFJyPAET8AKcmG3pGecFPcTjkkNbyOd0mnR2bHfrZnYv1emNRgQCix +kBGJ9M54HxgbcR9WJE6TiEEAViHjRZglHdMvo6IkidQHAHC3Itx8a4Q2+QIvwCTH +VEzdWsMPQsJK7llah2I9h3mBLH0CQZQJeWY8yB7K0xApooRuGdzyMJzZ1suEkjmc +y4BrE+HdqzARna6enKbVpVr2IU0nvgwO6H2bZTRVMeIuQ0jv6DoEtpMmB7qFJ5VA +RqNlsmuDjXr83fCiDEnZZDNzxTmEX9F8Bmnue/twfQ0WD8qPVYDpqlo4yfJs94Qe +CnyKo93wNY8/gY4W7zdDujfIUZL0KucZI0CUNr/kHoqcKtsQczMHjPrWLJ0ulL+N +hKzkfopKotcwzrQ8rIlnvBiyxZ4QO3xxn8qCL8Fq2QzHQPVLyCRMi9oPeolDvGgc +Lejabhb5oFq7koBjeqOunVJRnMqeXIaBfqc1jVFby7P+VSWeZQ40gbTnHQKYsCDn +O2l+zi0p/mvoYgyBOd5eGRIsxTHrrU4iUf8010IG+gOv/ySIUTebC2DenOqAHVTU +y6//BWCBVX3eBY1damNxdLtpWKFZhZy1byCzo4xwkqfp9tUyQTCZAiT2xXowHxHu +f4kCHAQQAQIABgUCVAtLbgAKCRABUJ1cq0r9P1MZD/0c6QtJrtf95KlSHvmEaHlo +UoI05q9dvKo+WephJoHr+oPhZueFQ18XepwYAtgCzGPt2p9AqCSQtcgMdVR+vYJ7 +S1vb17lsg6qcYKu2wsLTBaPYbOFDGqUbzGELU1jBcIyyzrVYh8JPhDVaPJQlE1rT +HWTiaf3R1yQARizrtiJJvEMXpJU5/69YSaaKWbbINOAzFdJOsToZUpvGUzVqbQVt +Ljm1l+oRIJio67BaElSFXmOcdOB9h5vhrF0jgcSNxjBojxS1HdvAzkSkQ1XD/DFe +vXLVjKZxrAIgoaaiUYCzUJUJvn3JYu2Y67w+n9K3aoYAq6Rrb9s3Zig5qHAn9b18 +Yp4ZHJeCIUn1QSqcMHMHdNf0RxF0rZsaTAHQccd9pUI47p4ZXqfoZV9EmSsX2Huc +TZsyZaHBPoUcH+Zpc02tNWjScHLj/93rvTnwI/ZhR926DZo9JM6tG2NMtySNlZgf +IiTNwUa9dwKkPkEzxauN4Zu4a6OHHzkLyWee8wUjY5vzvNuVv+yOfWXxcq6CDr0V +y4mYspBmr26FBwoomQ4aUolgIvb3RwL3vcnsaCMoZYY54V2VnPev75zcWEn/HnFh +u4/X9Q0rY/3Gs4GbVMe4V4f4bnf5l06TZ/6+tQWRcnfCmWFFLDitdQfqkRsaCPyN +zcOGZ2p1lyAwhPxKzLWSxokCHAQQAQgABgUCUt7XvAAKCRDaSVj2EeFJ6fUwEACf +RqK0nyzUQ7E2JMbAGFchLpqexz2xZt8HV2bzz6ciE7hItbO3msECyTpiyGja1pgX +Ssh+VakJCp7YCXVDCtIaCaYT8lYtc3lgRvDPgLuwt8JGhnkSMBnbDGE476QsaxhE +znWVypc6woaHL4Ygix0P1J9mixPloDGy9aorM37kKJJcdnE7X9Ki78J6BVSLhudP +EivzGEYNOpcvoDa5N5tJ3sGSLuXgRqkts87P9YYybHHc4OUxIRdZhi+cM1nHQHWv +AHTcqUG2VPiSKXCGk0WECgYsIa6gmSMJo2RmoDENmNUo3wEUbl4r6ijygua1f4W8 +DUuqJfvNkaCfadqKhf7J1ban1GHrSLk5ckrOFofJVO3hzQ28vlnTtwFEtA59H+pd +ka7J74csex1ozqfe3dpm2UmcAomXgXf3BQM95APz4nHtbXeZXTnm6nlDRpeTlMXh +YTvXIdlMLuYZfOJillJljTlFHmYoKsL7ybpRHy/n/4up7Sz0aXWS8eWD2mCEG0Cz +32kKoZ+b6UkDqqOH99nBhd6A3r+mGZcqKr9SbTDGxDirTC/unydTUuPNQHrutZ2Q +FFlcmZ2G14S+fEutumpf2sQuWbM2Dvi9pIV9DRyiVzPJgDkYgZCuAwP4dTK/VGfp +m6ujDkHrjAnn5yYwDTNSnau17YkyDSCjiiJ+H+ltEIkCHAQQAQgABgUCUuT5pQAK +CRCCQpTNAhfo2CHAD/oDqfpXTAtYkYdo/huJr52eXvVyDyKChWYQAsYf6WI8uWUk +q4SzkooBxGV4OnOdryi103VReFGxvxSHxeBLnQyJaYjz2vyKpThinm2nAn6iIC7Z +iBJAfugueNhXwMppgB+1dkBTv4w2Ew1IEx7A8Rx5UsmkFSVu6VIqyNC9i33Bj/bm +7eNjsDUo/zMUcGNuCbVJZcbcrs+9VXuHpUmOQrYjEOGMpwnjAi2Yonpuw9HkTZmF +iBgFV8Zy+uZQygX8+DHalLBQQz2zIabkfzQjDLx+nrFJk4Mo8sZJR85GrDR0HiEZ +RUqPU+r5+B3jd4EFeDyNS3GEhTjrA+jtnbS4/6zDfSKq27/DnBL/ku+Er5yvimiS +m4/q4RkaHG+kn93QGY+R6597uMVcBiK2BDxzomDcwt1QNf7E12TjTiOLhgbHZfKh +lRPWayPAgKbE/bGOqKEmWmidaarfk1hY5qmQ9zGnghmh3eOFuBFLpT/BXag1SxIk +3HLgNpElCSs9ykkfuDrpLMHl2REugewftmhjFBDyTiFG3qUS/IxCK8LNPsUOzDez +o2qRbGHZ73UsYZHQh3c0U2Lo7hmyqzXuHMfUoGGSAey7tuJbisbBl7CONE+/7ESI +XQ9UJD5yvgZxiATXDCJnmui3vd+7isc9M3HHEN3ereps38cSC8UQuJdKhjuw+YkC +HAQQAQgABgUCUuZv6AAKCRD7hjJRqG+eR3y2EAC9fZMnCpjiQ0ebn9jhfjasyHsk +Mh3IbRX8G6LJHZzeF0shX8YDBWlK7Qbm/lsWUWlDTDgmvlX+1mcvjJ4RMFtvF/gL ++TDJn8uyef3hiVzcsXgd6a6uoEkrOLTlh9jffXsfecGnjviunUIsWA156QX7xzdN +w0AkH4fDhhan9wt5tZQnPlUOul+3SGyei2bPyzqAyHdwt4nuGfR+PrqAhGPbgFST +cNjayYJggHW0S4CSApUeP/g4PjOgsnh9yM8p5aOwzFP3vQhFDS6glNG21ZSqS3uT +pdQXdliyT57+vg8W3xKzAksaeZ78XGTHqr1C8OAEzIWBVL8qsiudbwuZs/Q0lXoO +ds6rZO+BLgYCVZCikNuKF+KjwKbpq6QvL/Mr5JvLGP9EoCDC5y2srJGFoXaOU0Au +q8Y6Q0HhOhcCWO8X8lxe+B0mvLNy1pQlI7nYtZE9yAkcq6GNBU5wE+pSlkslK8wH +JdqgDDdH99tRYCagA5GEP4jV+aNKQIErZ0ba4kdoocoP/Xi/F8U2Zqb0ttO9YZ42 +Jw/XV3huHuTeVP4p9lcEN7rO82T9dVLNOUTRb+rZeyFVqeGNpM+RdKqGbgGeDtRj +KpzREcT/EexUpsSoV3eqDd8mpSXYxwiL4aMFSYxa8K2Khxbelv3jdUx0f2UNHuwM +QqzcQH5UDaFIxNlGcokCHAQQAQgABgUCVAQXNQAKCRDUFq0VrGtD/lFsD/9qDZE+ +L+cHHg4W8CkzMvcCKgH9v1bW0nJcM+LK1KfWq3UQDAHGDUTwntWIZx+Xmg9cqWeo +DEu0jknYnbItJzOZV8/8VpVARCVzxfK0vPOstkABZJDrqjeM8D0oPoVfhskGvGch +xH6Izu8Qjdtu34+uei/ekbVCMwOjQGY2F0LGIZpdcv89EpZHtqXNm8lj3LhN/CeC +1xjo7G8bzy/xu/bCwYgmSZv3MB1Kz+igMF9g4UuDmNJ0BFVBcO1yWC4CW22I0qP4 +3Ud1wekzHoBln6E0JgEbhJuUkLXdrw+nrcOwNq9f9ZnphRcS8+JGL5bdEygd/9ZP +A411qBeuIais3XQJAqAVAgUeyhVlmNNMDFJ7R/tKTJvM4m9RgVts5UR1mPfdJWul +Cj7vPQ1d52hoGlA5QB61BFYl0aFtEZYw1mt6Fr4YNEvBO0NPxIxk3HUrGthIEql2 +ycNVxlt4GWxmZlJ7GzBZv39mgDFcbGUMFUn/m2jc9U5iySKi0bovgtB9KkqjEtPZ +2cw431DItNlfrh53GCbHWiCtrWNm30zvNcaMs8PbV8aOk47dSmTtQPHay7RCJiW3 +0xyKGWlD7flw1Rl6tgMxRmeJ0EofatRsDa8omphaa2rsrblFOnjiLUWNvdgSIlnu +WFDfDEvFOQcY7DXPX9HnZwYei4qUT5H8M13UtYkCHAQQAQgABgUCVAYndwAKCRDn +YATFzvDJTNZRD/9C8HuRtDwF3pn0WhL+uuLjQoPLdV6a+5mKfeA/AS4Omlq7G0XZ +YVuDGQlI4CpRUfluBcMQaQjvUBtmU5bSGy9LQV5Z3IMw6Xwe1F5M/d9j3BaJ1IhT +C1ZDcjrqI+WgGnLby1DQ0uTDVmMi4exfD1TzW39og5Wi8hMvdoHajIQ5XjaW5LVV +acGmTizHXSKH75ModjMwiZbQtZ64WNa+pqrNp8cKsxqRyah9tSfqVL2nMDgqWz/y +2vLGfK8ZF52l4xGNyjK5x5F9EEtLwVz6lWhulUzXVAM7uAbTYhMucmbQVmcKpo3J +mjwCbTwPcJpbtoDqLfogqrJTbV42ErP5q/wgQRbPZBnKc/KkAmDwHNgh/JnhsyXp +gjQ0YvpBjW+lONyC55W4e7wD9J0uEcqeXFKpW01tRqrlwV9ZJVv57fMsG9bpiO90 +QnOIa/Kb3KRHUV98oco+st7fKhH4jCWcu69eVByNAh0ZS/VGVfinOF4mqc5ygBCO +ekv3NdL8Y9tJS55JJE/MdlDlAzWpQlliseFQJtQfb5+GvvUT3hVTBgyhHebprR8i +sXvkOLXM+vthzYj7se39Lr8/NxUGAkcMqqNyFc2reoDwrgay/g8ys1x3YbLWHVU3 +MgL+8etfG6mwwjsb1IJa5/FOBMwyycKzT+4HFqmXC7IFanvKN6FaPpg/2okCHAQQ +AQgABgUCVAoDOQAKCRBVQpft+cylhUC3D/99eO2HDvKC6zgBCbWMsUSNN6G4BMgq +RKvSUy1BQUbFhndJQn/IbrMqbNZhi6TYUUkif+SY/kVLmfM6qrRpiLBvhLAzZNVe +dbr6w24ZXQEzx1PDzKzt121zJVQEwrIk4/F2agV0NezUQBWYEqwqBYkETk5NN6wm +A9Mhl99FUlwg38acFf3SFquPmKZ+28RlE3mdlzQ2aCo6JPMS5eV92tT997uC7ZAn +VIy5jHxRiMfAEL/U9PbcfAvitAjkS/2AYLfFvgH6oJWKZyoeb769u6a3yhDPXWA7 +q/vPyiiPu8rgJXWAujVS3X7cLuTI0gU2qCrvV91QtbdFk71gq27T57nj9bewlsxu +gczzM2YFWI3OlIJAoSjhmBXiD7GDtuqIKCZwjL9lBlFI5yAEpF1WQLBePjD5D0Mh +FrWZFTu77/bwPn1f88K8oytIxjxGM8iKINp1B13pzwlS4KtT139K+imuxJ8sez/N +PeW2aRlKiTWdRf9zJdkWOHuTTfJOFjWeDpJsCccqviCrlQwhZrNp+V/nV+FpVmzR +DvomJiLzyxIvqu3QhAyVVB6LOJGR8PDwt/yzyxxKweT4+8TDCOb5bl6/97HdWdOk +zv6ch/NHtnUYZYrQJu8L+ZmMW/n0Qm/EEVqnXHhXvwoVbkDVOvfOcGGRkeTwISKl +Q7RHYBtRGXWkyokCIgQQAQoADAUCVA4dngWDA8JnAAAKCRDM0u2U0hc56Rn0D/95 +KLuJegGh2HHKRRHi3wrLm3Qke5Zl4krMortjGeHD1jmnhKtwpb7s1OU/I9uxrRF9 +KdkfrJJIkWO1cPge5CESJYbYATlqH6HgBGu8sJateJ1kWGEwS11Kop6aOrgqHCya +JJ/R6egXgr8KjI86OQfFRUVPaBNawpxMogYv7PCBDChgJIpwH2ExSazpYgOOjmA3 +ZQJeqdex90lQ6EEFOn8Z2HNELTbxL1R2so0N/knUdON+T5McEGSTT5L0nyqxsK5d +i+S3I4jdO6tS4OqgyNzCDuoXgNawP6MR+YGm+zEShNDjDYvXTWwKqszfQE1CNqyy +nf3WYAuArUsqyItoIAsDtPr/8fWt7HcqKgN64DTyrrb8bxhxpnPHOlANeLXkqiMk +7nuHpLl15fMLNDg30bwxOlGAuB2KU4N1fMtdHcL+AqeP29i9j74Rbj92/a6ewbOp ++Z+As8WHUUOLW8j6oOrjnbzJLLEcPUU3ainqnt1FViSpcLcin3soIgoqmIbqA3le +8l993N0GZe3lcv4xHa2IuSHoczhfn1z7io69izKe/TbhoXi6PYtLSeVUhOdes2Q3 +ZUY+3wgo5LwuuQ4IftBdTKKcQmI2dnrcJm2EZk6KawI1Y9UcpaH29ByqmpSM0tsQ +Q4uKqOCHw5sh7ew0n2KD9/nHn+V7+NsGr21RvcM15okCHAQQAQIABgUCVMocZgAK +CRCfuSYnJLF9Kd2CD/9D/jv/gEUYHIpANtRg47Wks4cmGE4AvaYAKwRdTjZwrr1r +RLhcwvkYSGErsYfOL9gWNPhq5w8GMjRd5xywNadYbD/bVpDy5i4RQ/UfrLkhIFxl +u7fDoK0ngDnzhrACy+tNLq89wjEp4E1lYG7e3DF0uTelHvC3M7WTvqEOxnyXrh/b +FqYmm6OhjY7oI++m6aPxtOMZInhjykhMj9/go2LE+5NobY/SX6TsNdbo0nRQZKLF +ta1EpP5TQzt97ny709xdnjeBvZGhJRaSah91GFUkNBw3hohyrMEP0/WE15mEHkRz +SqgPVWKcieULqGo89hizkq2bnIttGSRjQdAxmykL/bKgp+7R9x6zjBEj9/UgF4nU +aRyJqZaAAYBshpUpXhcMuS7NOzQDUMhi+SqRMjPDmQs6HVIyY2Xyf9GW9OpbO/1f +asWhHimxyzKjYC0Pq4gnOnxr5ap2o9y01z4aWTgRT0iT69sPXqgk2IAo6B2gjeV+ +65J6NJQs4H/1cm/Q8BMCyLnqfgJ4jo3LP2G17YTt7IFmCwZKUnx2Yu9HNMJtmNZI +ZVzerjLiTCjmYWKteVZ7T2AaLsE6WvhSkrmVBDrnZjRCAU+Irrw1IpieHz37SdMh +CZogsFtvp3YajiGBMXUV9PnBoUxAbxk7a3VubzVAoX55pMWIPOAXEm8D2FYIj4kC +HAQQAQgABgUCVBDo+gAKCRC7IKwg4LfWvh67D/wKZ6tyYNOL+TQSmgni7Dl40kmV +LE3zDdsCWxRzCDNjWWk0y3i7hvUHQ+vBOJSflLIzHfEtr+k9KfIeutvKx9nfMJ1O +RiMzJIo8Hh+olzWYckc855weqFwea7qERCOWVcTjYVWgpsXoKpLCdkjO5MiIeOkJ +/dyAkd4HIcByKKacUYH8YezBIBLC9IF1gXSBMFthhxy1v+iQoS/nnAiND0D4CkFA +XPmA5qWijQyhlVfSAKYJNn3Odv1rlB8ElTUfho/uC5UqykoV9iR+xl62B1ysRH7R +AfrnuOrCcZWkJS20uzOyF8B1/r+hGUpkUDW3PRMQ5zUH3d1UxuqkS1NtdPEat9Zm +PfjvCnXAdQ/gHdKGtS6N3ry8wZiyngQDViQ/HTD22wo8bbrKXDbi+7MeuF8bvVoZ +g0aNTg69+w71hJbU9t7uanazZAxAo8wIfodLWpIOrILHrpPuQPFP+ITT0Btczt78 +Iiptbz9K4r9okiP7kqTHBxLlpxQatdWJYcjGAnvHkv4CM1KItmGUnH844a1XaRG8 +ZrmG1mjDDcSwMEacFjesbu+NzW3yae4KOxkhGHaklqyXns4dcybEwqWRjl0Yot95 +jL5e5UxHwSepkpdU4F7oVWKVWyo01a2U95VD7SdMb2wsWnnU8hm/8KlLWRbpeMBo +67QD/Df//uBzaDe9XIkCHAQQAQoABgUCVApymwAKCRCII3pqU6sbLjSuEACU9pFT +a31TizevoH4L8VJGRqOc24ELoXZxyDjGlT3Pj+CLNmvIHjpqv+PYf0883yUbP7W4 +EnIwJZ5TO3WkVApeQC+H3xMaFNVOBO2k8uH0GdkOKUZug4RpNbyQEfMZ3KAnNGmu +mJlDSAu29CqDkq/wIX6L8I433qeyAthp9Wvq002JjeaCQzxJGvG94uoYtEc5wZ35 +aJgPsEyzsz0zp+RT25u7UDnDI9nhPR+ZGcExyTPSJjs8qJYMrToRPI13Rn329+yZ +a9xaF2gCFl1nHcSzHwa9wjnJRrtv9IKsHLAmyIuVVgmv9/Mo2jF98suv5W9bAihX +hnKYp61JlOi2QwabTwavIEVNffkKEze4yK1FPMZo5ySl3s3LgcFWY+uUEX/I5EnY +VenvCX5hh9w7AiSoFr33fIZNNdIKLy3x2ZaHr8wwhhOH+9N3deKVShp9f+xMuGXR +I3gjjEZfUPv8vdKdxfQa1MFIMjjmoxyOnCRo/XiwtsEz/8c/PYv4zO/8ZtCwhoX9 +XnduFTSZofkh+rgPYDrmMAKeLxDmDBJIlJAGJ1l2x/jnmXgWa3EXzzvmc8fUXDwC +9laIsvGnXwDWbkgec+vO3Rb9z31hHnh/t3e1H5haiGMNBbdVVImZJa73BmYUp8lH +fLdKlNXIy0JvD4vQCA2u9aOO8t5nLTwX4OMf1okBnAQQAQgABgUCTGSyiAAKCRAi +OuBVvZThVDNeC/9ecbrg//RD/DVufu07HSWYKuC6G6j+bMFuRmbOTH4lNA4HeiW+ +YaSY98B2sa2YFIQ+xNWGjmcZYnu7QabopTz1bYCcQynu7x3KQPYOSe7ScgMmPJ/Y +iU3kzQ72WMBhE7FZi6MRh3zggaqj+StqX6Yo+ymI5xP4Cf7GjCOJRzKlVQy3dk/B +JSkEdog85TFQGwjKSGZBh8i/ablz8lAR6AxhT2lmIxTt36Xs9TjaEjyUgqvG3HB2 +5JoqzEgK69evTgLX3IFJ0uFdDNG9tglZ7taPSunEHM0JheRAb1ayApQ77eRQft3r ++SxJvihGap+0bgX/L1Tc8n7RAsFD3HZ0RHD3hnQUdDN3gfihp/NV3K+KgeGQQQjs +oIB0wF2yMMHfsitDZGGcs8tAOmNi4t6euIo8quLwketHqColF79AgUD+kiwRAXrr +nNwtU0/85MoFsm9a5JS7qZVPyWC+9KzYQkghsBjECSjPME3U9bsmQnKckwNgpJly +1O6WruCiHZVLgx+JAhwEEAECAAYFAkxeoCAACgkQHnWacmqf3XRRkw//fMqYEqTW +cRtq0av1lBWTpZDpfck3l+1qqRvM1nyG+vcr8Gb1e5+UkUs4+Nk+jrNSwIKgUYXY +1uxKCVKZsxQ0BGlpZ8JZkUSAj/4i/Y8dbpNbz8+mQnTKU+Wkljuqv43/6I5Ka7/B +8MXqA0YeCawh5n7SJpVI9HM6imU+3Eean9Gng+edrk5hOH8AahCWR6jrHy4eJAj8 +nkrZpPH49lXpAJpLpjhjeXydsdf+fd5+mbLoxnG6iSckkXjqLNDbIim6QcMw1760 +s9/ht8xrvyJaYIUcrZkz9EES63X9JqPbz7bP/KwAPsl5ZPRBjQS49Pry6ZTKZkfR +zVjjhWEJuyIqgBlNSVUnKk7JTZHUQ59AihsKQDmU2b9unS6UDdfqdZlrbjOY4Yf0 +5bH4wkFoqW3q9uJckQFzNBYtjoNtDjNtSQBe4xO1G6O6saRpKxuKC/wgWpr3nJZp +1aznnMVyCryjczt/g0wVr6KLA8mzQbtb1ouodgqHyA5UtgwfrUiztuEni1O5ZpbM +CFEVEjqedDhNtC41RyfTGRnYMQ0bvuLE+kFB+fzAeL0cxw0/5nlhMnLUvUuk0SyG +QoZXuigGso9qHSqD9DYSUz/LfoPAWQAFWfVKJThL3i/8e4FZwW8g74jqNwwkRtyG +AQrLaVWCIaoCheT75AmoGTW69+0R6Rn9zOKJAhwEEAECAAYFAlMvARQACgkQQzAW +mVLVVtsplBAA0YW/Ctj8/xZHGini1G8VTseq5FKxqZWVaWSPfzet8wsv86AC/Ll7 +9Moy6sqtPiPADksVKAE143F1nKSEc42B8WJN03fcViMNScrVLmlGSSfebhRu8vCW +T9YvP4+cI3nlclmWU9K/eRrRYfUnp9bU03U0MyfxejjRSyYuN40Z6hpzQEn3p3xE +9g2kJqC5qDHv4qIxJb90Cm9I0ogkjrHpauh1PH2Iuml0PbYaivapjYs4RwDxj7CJ +6Gxp64IYXimc4caHqWoLAMQIcI64G3eYld18k3l0VJ7dR6LbP76zYU9XNnp0rVLZ +dlYhCst2hAkV7MjQkLo8323BT1kp8vFnSDfF8tNM1TCMajfezOzKK1rExWM4f83q +eCajAZxwaZezByEVWIVgGGrcp2ehm32g/WRehzLiufZXDMimuhFPidevRL5VX+WY +h3JQsLRTGl2fyypmyZsXXR6uNZeS1ublM055xC56epSGUg0FypE83DXvnguXohjX +oZ8gVE5KV7p9Rd9Z2PjlOqSTAT9360Uq2CW3V45gSo0Gi/oKVVcoTvsJuxKmGexf +PAzwPaIM35NFaEFzU041l6Qegw7fSmAtpOHvx3wxnCcagdCsGTHsrIXlLPgq9EBa +yn/9LuGu6aKW44qg0HMX0JP9KBC2S7zlzP/01skQi5vBpNDPx9BrbAiJAhwEEgEK +AAYFAkp5xecACgkQ9TaqcBEdVxZdyg/7B/bIe8UFYK7sgl7xjfmZq0rKyP1xbQ2j ++7tGWJ6QADZ2UlkJFI/kzH51dx5HHRr5vmf6oWCuqGR2J6EjsrF3pqM9kcPOaqn/ +3ULKD/M21/5It0KeO17VnaRCm6/x5b/1xJnQ36iOHzOH0dXs1YDH09ECGgoejwqO +5gPW9F3ERSa/criPSd5ZBZm6GfQ9aCoUndXMtXad5udHprVfa+50Bq1x+2ZSa5H2 +LR5L+FF67VQIJzfO7jqrSp3ZWHUtFTaLj3v1WDVYkR7hAdBCGjgw3OZC50xUVI3L +32YFaL6fFtmFOmjaKs75oR8PUkIiuvxs+UHMU3mEfZVi07r9BGlYb7V82ATCk3DT +gGBi6YUfeoKbfkt0bJxQchpAAozDTAuMVy8Tsm7kzcQ4jafF4EUlxKs+siLl4Mnp +V5Ioupsc58VSf6NXHHuJbShUiSCef7ZKFybbg3wBj64CrsoeocI6Zk/HOXPaFOKH +XFSEp293AbivO6Oxp+lMjQ2F14rONQeYo1sKZ7nK0duvDfRUN+bW4nKfcybdTg9S +pgZ3hnZM131YnHvnnL28GwTv2us1w89PuLJOJPhyHgki0U4epcso0js7g40OKNXr +0WEsu9Nav+QeHrBditN/JBTjEGgQHQam2ehQwsMwN033Bc1PHGYJ7XuhfT5QRSWR +2aQiEF86AE60Ikx1Y2FzIE51c3NiYXVtIDxsZWFkZXJAZGViaWFuLm9yZz6JAh8E +MAEKAAkFAlUwr3UCHSAACgkQORS1MvTfvpk2bw//VxAAcMNvO/fiIudWLWS8u8L1 +sQJQmwc7YlpeUb6m9HEA5QOKEk84SxA7CPBgtTvJ+z7dVlG6v0Pg7NwG3OtmIK/2 +IXB1W8qzhIVSEjhD5swQcTZqorW+f+S2w2gNt2Om+1Ps7CmQVdI2cOApGos3CCPg +nbs6W8si65WRZL0y/SqubtAC1efs2clCTnELUjDaHV5u7SbnDPoUuqnZvysvNNhd +HEMxCp+DKPvTZjU5kSAr9wn4r8mUjNH5Uf7hJciVgsa7AX9d3OInYS1bGh8YIEVc +VbQqK9rJwDKSGD5I0H7XRxBqy4BaRJLQQulXgEbNXUenKTdhUlq4ZNKqeqVvsZo7 +0ahV4QBQY4qhuQkc/IwpaQg6e/AoppcA/O3pIKo2JS3aeyWRafkmszuR8VG7VOEd +QKSVCrnt4t1jo+2Kz1l6OKXsJKR49J9cPLaMTDmMhwGJGW+8P2EhUFbC98bMN6De +StINp3MH+JiO8p4sI2wep4uB3ux9OyoGbQ4ql2ukEXQWIBSa7nmEEqH7a1BZPU5A +S/Nfdk+f3SrxrWuh/Zj8+0D7jfUa+88LHP/cKTSv+x1kr8N+X/UCu/I6MdNDSQSP +8Zm0EdublY9pGKvG9EtwSQQxJFCrQDbcFk4eJiz3tMKkt9lb51qKCRvlNBp/2qLf +PYmV3+NyszeFH0EkYIe0MEx1Y2FzIE51c3NiYXVtIDxsdWNhcy5udXNzYmF1bUB1 +bml2LWxvcnJhaW5lLmZyPokCOAQTAQoAIgUCUtlF7AIbAwYLCQgHAwIGFQgCCQoL +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 +=MNV/ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/Vagrant/resources/malcolm/sensor-iso/config/archives/virtualbox.list.binary b/Vagrant/resources/malcolm/sensor-iso/config/archives/virtualbox.list.binary new file mode 100644 index 0000000..143cf44 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/archives/virtualbox.list.binary @@ -0,0 +1 @@ +deb https://people.debian.org/~lucas/virtualbox-buster/ ./ diff --git a/Vagrant/resources/malcolm/sensor-iso/config/archives/virtualbox.list.chroot b/Vagrant/resources/malcolm/sensor-iso/config/archives/virtualbox.list.chroot new file mode 100644 index 0000000..143cf44 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/archives/virtualbox.list.chroot @@ -0,0 +1 @@ +deb https://people.debian.org/~lucas/virtualbox-buster/ ./ diff --git a/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0168-firefox-install.hook.chroot b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0168-firefox-install.hook.chroot new file mode 100755 index 0000000..efe0a7f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0168-firefox-install.hook.chroot @@ -0,0 +1,37 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +export LC_ALL=C.UTF-8 +export LANG=C.UTF-8 + +curl -o /tmp/firefox.tar.bz2 -L "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" +if [ $(file -b --mime-type /tmp/firefox.tar.bz2) = 'application/x-bzip2' ]; then + mkdir -p /opt + rm -rvf /opt/firefox + tar -xvf /tmp/firefox.tar.bz2 -C /opt/ + rm -vf /tmp/firefox.tar.bz2 + if [[ -f /opt/firefox/firefox ]]; then + rm -vf /usr/local/bin/firefox + ln -vrs /opt/firefox/firefox /usr/local/bin/firefox + dpkg -s firefox-esr >/dev/null 2>&1 && apt-get -y --purge remove firefox-esr || true + cat << 'EOF' > /usr/share/applications/firefox.desktop +[Desktop Entry] +Name=Firefox +Comment=Web Browser +GenericName=Web Browser +X-GNOME-FullName=Firefox Web Browser +Exec=/opt/firefox/firefox %u +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=/opt/firefox/browser/chrome/icons/default/default128.png +Categories=Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https; +StartupWMClass=Firefox +StartupNotify=true +EOF + fi +fi # /tmp/firefox.tar.bz2 check + +rm -f /tmp/firefox.tar.bz2 diff --git a/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0169-pip-installs.hook.chroot b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0169-pip-installs.hook.chroot new file mode 100755 index 0000000..81b457c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0169-pip-installs.hook.chroot @@ -0,0 +1,15 @@ +#!/bin/sh + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +export LC_ALL=C.UTF-8 +export LANG=C.UTF-8 +export CC="clang-11" +export CXX="clang++-11" +export ASM="clang-11" + +# python 3 +pip3 install --no-compile --no-cache-dir --force-reinstall --upgrade \ + clamd \ + debinterface==3.4.0 \ + pyzmq diff --git a/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0900-setup-rc-local.hook.chroot b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0900-setup-rc-local.hook.chroot new file mode 100755 index 0000000..e07cf31 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0900-setup-rc-local.hook.chroot @@ -0,0 +1,42 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +sed -i 's/^exit 0//' /etc/rc.local 2>/dev/null + +cat << 'EOF' >> /etc/rc.local + +# if this is the initial boot, format and set up capture drive(s) +if [ -f /etc/capture_storage_format.crypt ]; then + CAPTURE_STORAGE_FORMAT_FILE="/etc/capture_storage_format.crypt" + CAPTURE_STORAGE_FORMAT_FLAG="-c" +else + CAPTURE_STORAGE_FORMAT_FILE="/etc/capture_storage_format" + CAPTURE_STORAGE_FORMAT_FLAG="" +fi +if [ -f "$CAPTURE_STORAGE_FORMAT_FILE" ]; then + logger "Initializing disk(s) to store captured artifacts" + date >>/var/log/sensor-capture-disk-config.log 2>&1 + python3 /usr/local/bin/sensor-capture-disk-config.py -u $CAPTURE_STORAGE_FORMAT_FLAG >>/var/log/sensor-capture-disk-config.log 2>&1 + rm -f "$CAPTURE_STORAGE_FORMAT_FILE" +fi + +# other sensor-specific initialization prior to starting capture/forwarding jobs +/usr/local/bin/sensor-init.sh + +# run supervisor of capture-related services as non-privileged user +if [ -f /opt/sensor/sensor_ctl/supervisor.sh ]; then + ( getent passwd 1000 >/dev/null 2>&1 ) && sudo -H -u '#1000' /opt/sensor/sensor_ctl/supervisor.sh +fi + +# hddtemp daemon for querying HDD temperatures +/usr/sbin/hddtemp --daemon --numeric --quiet --unit=C -4 --listen=127.0.0.1 --port=7634 /dev/sd? + +systemctl mask ctrl-alt-del.target + +exit 0 +EOF + +sed -i "1i #!/bin/sh" /etc/rc.local + +chmod +x /etc/rc.local /usr/local/bin/*.sh /usr/local/bin/configure-*.py diff --git a/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0910-sensor-build.hook.chroot b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0910-sensor-build.hook.chroot new file mode 100755 index 0000000..e23ddd3 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0910-sensor-build.hook.chroot @@ -0,0 +1,264 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# some environment variables needed for build using llvm/clang +export CC="clang-11" +export CXX="clang++-11" +export ASM="clang-11" +export CCACHE_DIR="/var/spool/ccache" +export CCACHE_COMPRESS=1 + +NETSNIFF_VER="0.6.8" +NETSNIFF_URL="https://github.com/netsniff-ng/netsniff-ng/archive/v$NETSNIFF_VER.tar.gz" + +ZEEK_VERSION=4.0.3-0 +ZEEK_LTS=1 +SPICY_VERSION=1.1.0 +ZEEK_DIR="/opt/zeek" +SPICY_DIR="/opt/spicy" +export PATH="${ZEEK_DIR}"/bin:"${SPICY_DIR}"/bin:$PATH + +BEATS_VER="7.10.2" +BEATS_OSS="-oss" +BEATS_DEB_URL_TEMPLATE_REPLACER="XXXXX" +BEATS_DEB_URL_TEMPLATE="https://artifacts.elastic.co/downloads/beats/$BEATS_DEB_URL_TEMPLATE_REPLACER/$BEATS_DEB_URL_TEMPLATE_REPLACER$BEATS_OSS-$BEATS_VER-amd64.deb" + +YARA_VERSION="4.1.1" +YARA_URL="https://github.com/VirusTotal/yara/archive/v${YARA_VERSION}.tar.gz" +YARA_RULES_URL="https://codeload.github.com/Neo23x0/signature-base/tar.gz/master" +YARA_RULES_DIR="/opt/yara-rules" + +CAPA_VERSION="1.6.3" +CAPA_URL="https://github.com/fireeye/capa/releases/download/v${CAPA_VERSION}/capa-v${CAPA_VERSION}-linux.zip" +CAPA_DIR="/usr/local/bin" +CAPA_BIN="${CAPA_DIR}/capa" + +mkdir -p /opt/hedgehog_install_artifacts/ + +# install a newer cmake from backports +apt-get -q update +apt-get install -q -y -t buster-backports --no-install-recommends cmake + +# a moloch .deb is built and installed in a different context + +# Install netsniff-ng +cd /tmp +curl -L -o netsniff-$NETSNIFF_VER.tar.gz "$NETSNIFF_URL" +tar -xzvf netsniff-$NETSNIFF_VER.tar.gz +cd netsniff-ng-$NETSNIFF_VER +./configure --prefix=/usr --disable-geoip +make netsniff-ng +# make netsniff-ng_install +checkinstall -y -D --strip=yes --stripso=yes --install=yes --fstrans=no --pkgname="netsniff-ng" --pkgversion="$NETSNIFF_VER" --pkgarch="amd64" --pkgsource="$NETSNIFF_URL" make netsniff-ng_install +cp *.deb /opt/hedgehog_install_artifacts/ + +cd .. +rm -Rf netsniff-$NETSNIFF_VER.tar.gz netsniff-ng-$NETSNIFF_VER +## + +# Download and install zeek, spicy and 3rd-party zeek plugins +mkdir -p /tmp/zeek-packages /tmp/spicy-packages "${CCACHE_DIR}" + +# zeek +cd /tmp/zeek-packages +if [ -n "${ZEEK_LTS}" ]; then ZEEK_LTS="-lts"; fi && export ZEEK_LTS +curl -sSL --remote-name-all \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/libbroker${ZEEK_LTS}-dev_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeek${ZEEK_LTS}-core-dev_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeek${ZEEK_LTS}-core_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeek${ZEEK_LTS}-libcaf-dev_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeek${ZEEK_LTS}_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeek${ZEEK_LTS}-btest_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeek${ZEEK_LTS}-zkg_${ZEEK_VERSION}_amd64.deb" \ + "https://download.opensuse.org/repositories/security:/zeek/Debian_10/amd64/zeekctl${ZEEK_LTS}_${ZEEK_VERSION}_amd64.deb" +dpkg -i ./*.deb + +# spicy +cd /tmp/spicy-packages +curl -sSL --remote-name-all \ + "https://github.com/zeek/spicy/releases/download/v${SPICY_VERSION}/spicy_linux_debian10.deb" +dpkg -i ./*.deb + +# plugins +cd /tmp +zkg autoconfig --force +zkg install --force --skiptests zeek/spicy-plugin +bash /usr/local/bin/zeek_install_plugins.sh +for FILE in /opt/zeek/var/lib/zkg/logs/*; do + [[ -r "$FILE" ]] && echo "$FILE" && cat "$FILE" && echo "" +done + +# cleanup/strip build artifacts +find "${ZEEK_DIR}"/lib -type d -name CMakeFiles -exec rm -rf "{}" \; 2>/dev/null || true +find "${ZEEK_DIR}"/var/lib/zkg -type d -name build -exec rm -rf "{}" \; 2>/dev/null || true +find "${ZEEK_DIR}"/var/lib/zkg/clones -type d -name .git -execdir bash -c "pwd; du -sh; git pull --depth=1 --ff-only; git reflog expire --expire=all --all; git tag -l | xargs -r git tag -d; git gc --prune=all; du -sh" \; +rm -rf "${ZEEK_DIR}"/var/lib/zkg/scratch +find "${ZEEK_DIR}/" "${SPICY_DIR}/" -type f -exec file "{}" \; | grep -Pi "ELF 64-bit.*not stripped" | sed 's/:.*//' | xargs -l -r strip --strip-unneeded +mkdir -p "${ZEEK_DIR}"/var/lib/zkg/clones/package/spicy-plugin/build/plugin/bin/ && \ + ln -s -r "${ZEEK_DIR}"/lib/zeek/plugins/packages/spicy-plugin/bin/spicyz \ + "${ZEEK_DIR}"/var/lib/zkg/clones/package/spicy-plugin/build/plugin/bin/spicyz +mkdir -p "${ZEEK_DIR}"/var/lib/zkg/clones/package/spicy-plugin/plugin/lib/ && \ + ln -s -r "${ZEEK_DIR}"/lib/zeek/plugins/packages/spicy-plugin/lib/bif \ + "${ZEEK_DIR}"/var/lib/zkg/clones/package/spicy-plugin/plugin/lib/bif + +cat << 'EOF' >> "${ZEEK_DIR}"/etc/zeekctl.cfg +# all interfaces using lb_method=custom should use AF_PACKET +lb_custom.InterfacePrefix=af_packet:: + +EOF + +# set up default zeek local policy +cp -f /usr/local/etc/zeek/*.zeek /usr/local/etc/zeek/*.txt "${ZEEK_DIR}"/share/zeek/site/ + +# cleanup +cd /usr/local/src +tar czf zeek-$ZEEK_VER-hedgehog.tar.gz -C /opt zeek spicy +mv ./zeek-$ZEEK_VER-hedgehog.tar.gz /tmp/spicy-packages /tmp/zeek-packages /opt/hedgehog_install_artifacts/ +rm -Rf zeek-$ZEEK_VER* +### + +# yara +mkdir -p usr/local/src +cd /usr/local/src + +curl -sSL "${YARA_URL}" | tar xzf - -C /usr/local/src/ +cd "./yara-${YARA_VERSION}" +./bootstrap.sh +./configure --prefix=/usr --with-crypto --enable-magic --enable-cuckoo --enable-dotnet +make +#make install +checkinstall -y -D --strip=yes --stripso=yes --install=yes --fstrans=no --pkgname="yara" --pkgversion="$YARA_VERSION" --pkgarch="amd64" --pkgsource="$YARA_URL" +cp *.deb /opt/hedgehog_install_artifacts/ +cd /tmp +rm -rf /usr/local/src/yara* + +mkdir -p ./Neo23x0 +curl -sSL "$YARA_RULES_URL" | tar xzvf - -C ./Neo23x0 --strip-components 1 +mkdir -p "${YARA_RULES_DIR}"/custom +cp ./Neo23x0/yara/* ./Neo23x0/vendor/yara/* "${YARA_RULES_DIR}"/ +cp ./Neo23x0/LICENSE "${YARA_RULES_DIR}"/_LICENSE +rm -rf /tmp/Neo23x0 + +cd "${YARA_RULES_DIR}"/.. +tar czf yara-rules-hedgehog.tar.gz "$(basename "${YARA_RULES_DIR}")" +mv ./yara-rules-hedgehog.tar.gz /opt/hedgehog_install_artifacts/ +### + +# capa +cd /tmp +rm -rf /tmp/capa* +curl -fsSL -o ./capa.zip "${CAPA_URL}" +unzip ./capa.zip +chmod 755 ./capa +mkdir -p "${CAPA_DIR}" +mv ./capa "${CAPA_BIN}" +rm -rf /tmp/capa* + +cp "${CAPA_BIN}" /opt/hedgehog_install_artifacts/ + +# update clamav signatures +freshclam --stdout --quiet --no-warnings + +### + +# tweak some dashboards for, then install filebeat/metricbeat/auditbeat/packetbeat +for BEAT in filebeat metricbeat auditbeat packetbeat; do + BEATS_URL="$(echo "$BEATS_DEB_URL_TEMPLATE" | sed "s/$BEATS_DEB_URL_TEMPLATE_REPLACER/$BEAT/g")" + BEATS_DEB="$BEAT-$BEATS_VER-amd64.deb" + BEATS_NEW_DEB="$BEAT-tweaked-$BEATS_VER-amd64.deb" + BEATS_TMP_DIR="$BEAT-deb" + pushd /tmp && \ + curl -f -L -o "$BEATS_DEB" "$BEATS_URL" && \ + dpkg-deb -x "$BEATS_DEB" "$BEATS_TMP_DIR" && \ + dpkg-deb -e "$BEATS_DEB" "$BEATS_TMP_DIR/DEBIAN" && \ + ( [[ "$BEAT" == "metricbeat" ]] && sed -i -e "s@ |\\\\\\\n\[Containers overview\](#/dashboard/CPU-slash-Memory-per-container)@@g" "$BEATS_TMP_DIR"/usr/share/$BEAT/kibana/?/dashboard/* || true ) && \ + pushd "$BEATS_TMP_DIR" && ( rm -f DEBIAN/md5sums && find . -type f ! -regex '.*.hg.*' ! -regex '.*?debian-binary.*' ! -regex '.*?DEBIAN.*' -print0 | xargs -l -0 md5sum >> DEBIAN/md5sums ) && popd && \ + dpkg-deb -b "$BEATS_TMP_DIR" "$BEATS_NEW_DEB" && \ + rm -rf "$BEATS_TMP_DIR" && \ + dpkg -i "$BEATS_NEW_DEB" && \ + cp "$BEATS_NEW_DEB" /opt/hedgehog_install_artifacts/ && \ + rm -rf "$BEATS_TMP_DIR" "$BEATS_DEB" "$BEATS_NEW_DEB" && \ + popd +done + +# add symlinks to our custom dashboards +FILES=$(shopt -s nullglob dotglob; echo /usr/share/filebeat/kibana/7/dashboard-custom/*) +if (( ${#FILES} )) ; then + ln -s -r -f /usr/share/filebeat/kibana/7/dashboard-custom/* /usr/share/filebeat/kibana/7/dashboard/ +fi +FILES=$(shopt -s nullglob dotglob; echo /usr/share/metricbeat/kibana/7/dashboard-custom/*) +if (( ${#FILES} )) ; then + ln -s -r -f /usr/share/metricbeat/kibana/7/dashboard-custom/* /usr/share/metricbeat/kibana/7/dashboard/ +fi +FILES=$(shopt -s nullglob dotglob; echo /usr/share/auditbeat/kibana/7/dashboard-custom/*) +if (( ${#FILES} )) ; then + ln -s -r -f /usr/share/auditbeat/kibana/7/dashboard-custom/* /usr/share/auditbeat/kibana/7/dashboard/ +fi +FILES=$(shopt -s nullglob dotglob; echo /usr/share/packetbeat/kibana/7/dashboard-custom/*) +if (( ${#FILES} )) ; then + ln -s -r -f /usr/share/packetbeat/kibana/7/dashboard-custom/* /usr/share/packetbeat/kibana/7/dashboard/ +fi + +### + +# set up capabilities for network-related tools +chown root:netdev /usr/sbin/netsniff-ng && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip CAP_IPC_LOCK+eip CAP_SYS_ADMIN+eip' /usr/sbin/netsniff-ng +chown root:netdev "${ZEEK_DIR}"/bin/zeek && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip CAP_IPC_LOCK+eip' "${ZEEK_DIR}"/bin/zeek +chown root:netdev /sbin/ethtool && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /sbin/ethtool +chown root:netdev "${ZEEK_DIR}"/bin/capstats && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' "${ZEEK_DIR}"/bin/capstats +chown root:netdev /usr/sbin/tcpdump && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/sbin/tcpdump +chown root:netdev /usr/share/auditbeat/bin/auditbeat && \ + setcap 'CAP_AUDIT_READ+eip' /usr/share/auditbeat/bin/auditbeat +chown root:netdev /usr/share/packetbeat/bin/packetbeat && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/share/packetbeat/bin/packetbeat +chown root:netdev /opt/moloch/bin/moloch-capture && \ + setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip CAP_IPC_LOCK+eip' /opt/moloch/bin/moloch-capture + +ln -s -f "${ZEEK_DIR}"/bin/zeek /usr/local/bin/ +ln -s -f /usr/sbin/netsniff-ng /usr/local/bin/ +ln -s -f /usr/sbin/tcpdump /usr/local/bin/ +ln -s -f /opt/moloch/bin/moloch-capture /usr/local/bin/ +ln -s -f /opt/moloch/bin/npm /usr/local/bin +ln -s -f /opt/moloch/bin/node /usr/local/bin +ln -s -f /opt/moloch/bin/npx /usr/local/bin +### + +# zeekctl won't like being run by a non-root user unless the whole stupid thing is owned by the non-root user. +# as such, we're going to reset zeek to a "clean" state after each reboot. the config files will get +# regenerated when we are about to deploy zeek itself. +# so, now make a complete backup of /opt/zeek as it's going to have its ownership changed during runtime +# TODO: check this with .deb install +rsync -a "${ZEEK_DIR}"/ "${ZEEK_DIR}".orig + +# enable sensor init scripts + +# run kiosk system process information daemon under systemd +if [ -f /opt/sensor/kiosk.service ]; then + mv /opt/sensor/kiosk.service /etc/systemd/system/ + chown root:root /etc/systemd/system/kiosk.service + chmod 644 /etc/systemd/system/kiosk.service + systemctl daemon-reload + systemctl enable kiosk +fi + +# run resource logging services as unprivileged user. +# supervisor is run via /etc/rc.local (vs. here with a @reboot directive) +# so as to work for both live-usb and installed versions +# (see 0900-setup-rc-local.hook.chroot) +if [ -d /opt/sensor/sensor_ctl/scripts ]; then + cat << 'EOF' >> /etc/cron.d/sensor_ctl +SHELL=/bin/bash +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + +*/10 * * * * root /opt/sensor/sensor_ctl/scripts/log_temperature.sh +2 0 * * 0 root rm -f /var/lib/clamav/mirrors.dat +EOF +fi + +### diff --git a/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0911-get-stig-scripts.hook.chroot b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0911-get-stig-scripts.hook.chroot new file mode 100755 index 0000000..a20c650 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0911-get-stig-scripts.hook.chroot @@ -0,0 +1,14 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# clone STIG-4-Debian, harbian-audit and debian-cis and clean up some stuff we don't need +mkdir -p /opt +git clone --depth 1 --recursive --single-branch https://github.com/hardenedlinux/STIG-4-Debian /opt/STIG-4-Debian +git clone --depth 1 --recursive --single-branch https://github.com/hardenedlinux/harbian-audit /opt/harbian-audit +git clone --depth 1 --recursive --single-branch https://github.com/ovh/debian-cis /opt/debian-cis +sed -i "s#CIS_ROOT_DIR=.*#CIS_ROOT_DIR='/opt/harbian-audit'#" /opt/harbian-audit/debian/default.cfg +sed -i "s#CIS_ROOT_DIR=.*#CIS_ROOT_DIR='/opt/debian-cis'#" /opt/debian-cis/debian/default +# cp /opt/harbian-audit/debian/default.cfg /etc/default/cis-hardening +# cp /opt/debian-cis/debian/default /etc/default/cis-hardening +rm -rf /opt/STIG-4-Debian/.git /opt/harbian-audit/.git /opt/debian-cis/.git diff --git a/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0990-remove-unwanted-pkg.hook.chroot b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0990-remove-unwanted-pkg.hook.chroot new file mode 100755 index 0000000..8391a96 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0990-remove-unwanted-pkg.hook.chroot @@ -0,0 +1,65 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# remove development packages not necessary for building dynamic Zeek plugins +apt-get -y --purge remove \ + checkinstall \ + gdb \ + libc6-dbg \ + ninja-build \ + $(dpkg --get-selections | grep -Pv "(^(dpkg|libclang|libfl|libgcc|libmaxminddb|libpcap|libssl|libyaml|llvm|zlib1g)|deinstall$)" | cut -f1 | grep -P -- '-dev(:\w+)?$') || true +rm -rf /var/spool/ccache + + +# remove unwanted packages +apt-get -y --purge remove bluez-firmware \ + cracklib-runtime \ + deluge \ + enchant \ + ffmpeg \ + gnome-accessibility-themes \ + gucharmap \ + libasound2-plugins \ + libcupsfilters1 \ + libcupsimage2 \ + libgphoto2-6 \ + libgphoto2-port12 \ + libx264* \ + libx265* \ + lintian \ + lxmusic \ + mailutils \ + mpv \ + pavucontrol \ + poppler-data \ + prelink \ + pulseaudio \ + python-wicd \ + smplayer \ + strace \ + wamerican \ + wicd \ + wicd-daemon \ + wicd-gtk \ + xdg-user-dirs \ + yelp \ + youtube-dl || true + +apt-get -y autoremove +apt-get clean + +# remove any residual configs +dpkg -l | awk '/^rc/ { print $2 }' | xargs -r -l dpkg --purge + +# disable automatic running of some services (but don't abort if we fail) +systemctl disable supervisor.service || true +systemctl disable systemd-timesyncd.service || true +systemctl disable ctrl-alt-del.target || true +systemctl disable hddtemp.service || true +systemctl disable apt-daily.service || true +systemctl disable apt-daily.timer || true +systemctl disable apt-daily-upgrade.timer || true +systemctl disable apt-daily-upgrade.service || true +systemctl disable clamav-daemon.service || true +systemctl disable clamav-freshclam.service || true diff --git a/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0991-security-performance.hook.chroot b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0991-security-performance.hook.chroot new file mode 100755 index 0000000..04a65d1 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0991-security-performance.hook.chroot @@ -0,0 +1,151 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# configure firewall +sed -i "s/LOGLEVEL=.*/LOGLEVEL=off/" /etc/ufw/ufw.conf +/usr/sbin/ufw --force enable +/usr/sbin/ufw default deny incoming +/usr/sbin/ufw default allow outgoing +UFW_ALLOW_RULES=( + ntp + ssh +) +for i in ${UFW_ALLOW_RULES[@]}; do + ufw allow "$i" +done + +# performance parameters for networking, disk, etc. +cat << 'EOF' >> /etc/sysctl.conf +# don't restrict dmesg to root +kernel.dmesg_restrict=0 + +# the maximum number of open file handles +fs.file-max=2097152 + +# increase maximums for inotify watches +fs.inotify.max_user_watches=131072 +fs.inotify.max_queued_events=131072 +fs.inotify.max_user_instances=512 + +# the maximum number of memory map areas a process may have +vm.max_map_count=262144 + +# decrease "swappiness" (swapping out runtime memory vs. dropping pages) +vm.swappiness=1 + +# the % of system memory fillable with "dirty" pages before flushing +vm.dirty_background_ratio=40 + +# maximum % of dirty system memory before committing everything +vm.dirty_ratio=80 + +net.core.netdev_max_backlog=250000 +net.core.optmem_max=33554432 +net.core.rmem_default=425984 +net.core.rmem_max=33554432 +net.core.somaxconn=65535 +net.core.wmem_default=425984 +net.core.wmem_max=33554432 +net.ipv4.tcp_rmem=10240 425984 33554432 +net.ipv4.tcp_wmem=10240 425984 33554432 +net.ipv4.udp_mem=10240 425984 33554432 + +net.ipv4.conf.all.accept_redirects=0 +net.ipv4.conf.all.accept_source_route=0 +net.ipv4.conf.all.send_redirects=0 +net.ipv4.conf.default.accept_redirects=0 +net.ipv4.conf.default.accept_source_route=0 +net.ipv4.conf.default.send_redirects=0 +net.ipv4.icmp_echo_ignore_broadcasts=1 +net.ipv4.ip_forward=0 +net.ipv6.conf.all.accept_source_route=0 +net.ipv6.conf.all.accept_ra=0 +net.ipv6.conf.default.accept_ra=0 +net.ipv6.conf.all.disable_ipv6=1 +net.ipv6.conf.default.disable_ipv6=1 +net.ipv6.conf.lo.disable_ipv6=1 +EOF + +# password requirement hardening +sed -i -e 's/[[:space:]]*nullok[[:alnum:]_]*//g' /etc/pam.d/common-auth +sed -i -r "s/(pam_faildelay.so.*delay)[[:space:]]*=[[:space:]]*[[:digit:]]+/\1=4000000/g" /etc/pam.d/login +sed -i -r "s/([[:space:]]*session[[:space:]]*)[[:alnum:]_]*([[:space:]]*pam_lastlog.so[[:space:]]*)/\1required\2\tshowfailed/g" /etc/pam.d/login +sed -i "s/^[[:space:]]*password[[:space:]]*requisite[[:space:]]*pam_pwquality\.so.*/password requisite pam_pwquality.so retry=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 difok=8 minclass=4 maxrepeat=2 maxclassrepeat=4 minlen=15/g" /etc/pam.d/common-password + +# enable cryptsetup support on boot +sed -i "s/#CRYPTSETUP=.*/CRYPTSETUP=y/" /etc/cryptsetup-initramfs/conf-hook + +# enable guests to mount vmware/etc. fuse-based mounts with allow_other +sed -i "s/#user_allow_other.*/user_allow_other/" /etc/fuse.conf + +# some permissions +find /etc/audit -type d -exec chmod 750 "{}" \; +find /etc/audit -type f -exec chmod 640 "{}" \; +chmod 600 /etc/ssh/sshd_config + +# set DIR_MODE to 750 for new users +sed -i "s/^DIR_MODE=.*/DIR_MODE=0750/" /etc/adduser.conf + +# new directories default to 750, new files to 640 +echo -e "\n\n# new directories default to 700, new files to 600" >> /etc/profile +echo "umask 077" >> /etc/profile +echo "export UMASK=077" >> /etc/profile + +# enable cron logging +sed -r -i "s@^#(cron\.\*\s+.*/var/log/cron\.log)@\1@" /etc/rsyslog.conf + +# enable rsyslog forwarding to localhost:9514 over UDP (for filebeat syslog input) +echo >> /etc/rsyslog.conf +echo '*.* @127.0.0.1:9514' >> /etc/rsyslog.conf +echo >> /etc/rsyslog.conf + +# put sudoers log into its own logfile +awk 'FNR==NR{ if (/^Defaults/) p=NR; next} 1; FNR==p{ print "Defaults\t!syslog\nDefaults\tlogfile=/var/log/sudo.log" }' /etc/sudoers /etc/sudoers > /tmp/newsudoers +mv /tmp/newsudoers /etc/sudoers && chmod 440 /etc/sudoers +cat << 'EOF' > /etc/logrotate.d/sudoers +/var/log/sudo.log +{ + weekly + missingok + rotate 4 + compress + delaycompress + copytruncate + minsize 100k +} +EOF + +# tweak some auditd settings +sed -r -i "s/((disk_full_action|disk_error_action)\s*=\s*).*/\1 SYSLOG/" /etc/audit/auditd.conf +sed -r -i "s/(network_failure_action\s*=\s*).*/\1 syslog/" /etc/audisp/audisp-remote.conf + +# tweak some apparmor settings (allow clamd to scan) +[[ -e /etc/apparmor.d/local/usr.sbin.clamd ]] && ln -srf /etc/apparmor.d/local/usr.sbin.clamd /etc/apparmor.d/disable/ + +# disable ntp for now, and disable servers, but it could be turned back on later +systemctl disable ntp || true +sed -i "s/^\(pool \)/# \1/" /etc/ntp.conf +sed -i "s/^\(restrict -6\)/# \1/" /etc/ntp.conf +sed -i "s/^\(restrict ::1\)/# \1/" /etc/ntp.conf +sed -r -i "s/^(NTPD_OPTS=).*/\1'-4 -g'/" /etc/default/ntp +usermod -d /var/lib/ntp ntp + +# disable htpdate service, we're going to use cron instead +systemctl disable htpdate || true +sed -i "s/#[[:space:]]*HTP_IFUP=.*/HTP_IFUP=no/" /etc/default/htpdate +sed -i "s/#[[:space:]]*HTP_DAEMON=.*/HTP_DAEMON=no/" /etc/default/htpdate + +# remove identifying operating system information +truncate -s 0 /etc/motd +sed -i "s/Debian/Hedgehog/g" /etc/issue +sed -i "s/Debian/Hedgehog/g" /etc/issue.net + +# set up /etc/os-release information (override values in /etc/os-release with custom values) +if [[ -f /opt/sensor/.os-info ]]; then + awk ' + BEGIN {FS = OFS = "="} + {v1[$1] = $2} + END {for (key in v1) {print key, v1[key]}} + ' /etc/os-release /opt/sensor/.os-info | sort | sponge /etc/os-release +fi diff --git a/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0992-login.hook.chroot b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0992-login.hook.chroot new file mode 100755 index 0000000..1c97693 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/hooks/normal/0992-login.hook.chroot @@ -0,0 +1,6 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +sed -i 's/^#autologin-user=.*/autologin-user=sensor/' /etc/lightdm/lightdm.conf +sed -i 's/^#autologin-user-timeout=.*/autologin-user-timeout=0/' /etc/lightdm/lightdm.conf diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/boot/grub/grub.cfg b/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/boot/grub/grub.cfg new file mode 100644 index 0000000..cdfa34b --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/boot/grub/grub.cfg @@ -0,0 +1,57 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +set default=0 +set timeout=-1 + +loadfont $prefix/dejavu-bold-16.pf2 +loadfont $prefix/dejavu-bold-14.pf2 +loadfont $prefix/unicode.pf2 + +set gfxmode=auto +insmod all_video +insmod gfxterm + +set color_normal=cyan/black +set color_highlight=yellow/black +set menu_color_normal=black/light-gray +set menu_color_highlight=yellow/dark-gray + +terminal_output gfxterm + +insmod play +play 960 440 1 0 4 440 1 + +menuentry "Live system" { + linux /live/vmlinuz boot=live components username=sensor nosplash random.trust_cpu=on elevator=deadline cgroup_enable=memory swapaccount=1 cgroup.memory=nokmem + initrd /live/initrd.img +} + +menuentry "Live system (fully in RAM)" { + linux /live/vmlinuz boot=live toram components username=sensor nosplash random.trust_cpu=on elevator=deadline cgroup_enable=memory swapaccount=1 cgroup.memory=nokmem + initrd /live/initrd.img +} + +menuentry "Install Hedgehog Linux (quick install)" { + linux /install/vmlinuz preseed/file=/cdrom/install/preseed_multipar.cfg auto=true priority=critical vga=normal locales=en_US.UTF-8 keyboard-layouts=us + initrd /install/initrd.gz +} + +menuentry "Install Hedgehog Linux (encrypted quick install)" { + linux /install/vmlinuz preseed/file=/cdrom/install/preseed_multipar_crypto.cfg auto=true priority=critical vga=normal locales=en_US.UTF-8 keyboard-layouts=us + initrd /install/initrd.gz +} + +menuentry "Install Hedgehog Linux (advanced configuration)" { + linux /install/vmlinuz preseed/file=/cdrom/install/preseed_minimal.cfg auto=true priority=high vga=normal + initrd /install/initrd.gz +} + +menuentry "Install Hedgehog Linux (virtual machine single partition quick install)" { + linux /install/vmlinuz preseed/file=/cdrom/install/preseed_vmware.cfg auto=true priority=critical vga=normal locales=en_US.UTF-8 keyboard-layouts=us + initrd /install/initrd.gz +} + +menuentry "Rescue system in text mode" { + linux /install/vmlinuz rescue/enable=true vga=normal + initrd /install/initrd.gz +} diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/install/preseed_base.cfg b/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/install/preseed_base.cfg new file mode 100644 index 0000000..920ac55 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/install/preseed_base.cfg @@ -0,0 +1,63 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +d-i netcfg/enable boolean false +d-i netcfg/choose_interface select auto +d-i netcfg/disable_autoconfig boolean true +d-i netcfg/get_hostname string unassigned-hostname +d-i netcfg/get_domain string unassigned-domain +d-i netcfg/get_ipaddress string 192.168.17.76 +d-i netcfg/get_netmask string 255.255.255.0 +d-i netcfg/get_gateway string 192.168.17.1 +d-i netcfg/get_nameservers string 192.168.17.1 +d-i netcfg/confirm_static boolean true + +d-i hw-detect/load_firmware boolean true +d-i clock-setup/utc boolean true +d-i time/zone string Universal +d-i clock-setup/ntp boolean false +d-i clock-setup/ntp-server string 0.debian.pool.ntp.org + +d-i popularity-contest/participate boolean false + +localepurge localepurge/dontbothernew boolean false +localepurge localepurge/mandelete boolean true +localepurge localepurge/none_selected boolean false +localepurge localepurge/nopurge multiselect en, en_US, en_us.UTF-8, C.UTF-8 +localepurge localepurge/quickndirtycalc boolean true +localepurge localepurge/remove_no note +localepurge localepurge/showfreedspace boolean false +localepurge localepurge/use-dpkg-feature boolean false +localepurge localepurge/verbose boolean false + +d-i passwd/username string sensor +d-i passwd/user-fullname string sensor +d-i passwd/user-default-groups string audio cdrom video netdev plugdev vboxsf +d-i passwd/root-login boolean true + +# crypted passwords via: mkpasswd -m sha-512 -S $(pwgen -ns 16 1) +# uncomment to preseed passwords; otherwise installer will prompt +# d-i passwd/user-password-crypted password $6$FmMaqNyrr4TFmnJA$I2AViJlyJnRRq6G2omVVUIbvhfMGzS7iXxiexrzvMAtl5sE/kCzdKhWHTfQI2eh.HNTr5EY8gl/eGY2fwOa2u/ +# d-i passwd/root-password-crypted password $6$IdgQYj2LVNUML3O1$sW2W75vVk4K4c1XAjqfrswL7GlhXWCW3jf5MVzMYAloY/soCpctkzQLKy0TXo4IS8bvGw4SJH5yZG1ZpHmRVB1 + +d-i apt-setup/use_mirror boolean false +d-i finish-install/reboot_in_progress note + +d-i preseed/late_command string \ + echo 'deb http://deb.debian.org/debian buster main contrib non-free' > /target/etc/apt/sources.list; \ + echo 'deb http://security.debian.org/debian-security buster/updates main' >> /target/etc/apt/sources.list; \ + echo 'deb http://deb.debian.org/debian buster-updates main contrib non-free' >> /target/etc/apt/sources.list; \ + echo 'deb http://deb.debian.org/debian buster-backports main contrib non-free' >> /target/etc/apt/sources.list; \ + in-target touch /etc/capture_storage_format; \ + in-target bash /usr/local/bin/sensor-init.sh; \ + in-target bash -c "(dmidecode -s system-product-name | grep -q VMware) || apt-get purge -y open-vm-tools-desktop"; \ + in-target bash -c "(dmidecode -s system-product-name | grep -q VirtualBox) || apt-get purge -y virtualbox-guest*"; \ + in-target sed -r -i 's@(^.+\s+/(tmp|var/tmp)\s+ext4\s+.*defaults)@\1,nosuid,nodev,noexec@g' /etc/fstab; \ + in-target sed -r -i 's@(^.+/media/cdrom[0-9]*.+)(noauto)(.*)@\1\2,nosuid,nodev,noexec\3@g' /etc/fstab; \ + in-target sed -r -i 's@(^.+\s+/(home)\s+ext4\s+.*defaults)@\1,nosuid,nodev@g' /etc/fstab; \ + in-target bash -c "( echo '\EFI\debian\grubx64.efi' > /boot/efi/startup.nsh ) || true"; \ + in-target sed -i 's#^\(GRUB_CMDLINE_LINUX_DEFAULT="quiet\)"$#\1 random.trust_cpu=on elevator=deadline cgroup_enable=memory swapaccount=1 cgroup.memory=nokmem apparmor=1 security=apparmor ipv6.disable=1 audit=1"#' /etc/default/grub; \ + in-target sed -i 's#^\(GRUB_CMDLINE_LINUX="\)"$#\1apparmor=1 security=apparmor audit=1"#' /etc/default/grub; \ + in-target sed -i 's#^\(GRUB_DISTRIBUTOR=\).*$#\1"Hedgehog"#' /etc/default/grub; \ + in-target cp /usr/share/images/desktop-base/hedgehog-wallpaper-plain.png /boot/grub; \ + in-target bash /usr/local/bin/preseed_late_user_config.sh; \ + in-target grub-mkconfig -o /boot/grub/grub.cfg; diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/install/preseed_multipar.cfg b/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/install/preseed_multipar.cfg new file mode 100644 index 0000000..73a26df --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/install/preseed_multipar.cfg @@ -0,0 +1,161 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +d-i debian-installer/locale string en_US.UTF-8 +d-i console-setup/ask_detect boolean false +d-i keyboard-configuration/xkb-keymap skip-config +d-i keyboard-configuration/layout string "American English" + +d-i preseed/include string preseed_base.cfg + +################################################################################################### +# install root filesystem on smallest non-USB disk + +d-i partman/early_command string \ + ROOT_DISK=$(sh /preseed_partman_determine_disk.sh); \ + pvremove -ff -y "$ROOT_DISK"*; \ + debconf-set partman-auto/disk "$ROOT_DISK"; \ + debconf-set grub-installer/bootdev "$ROOT_DISK"; \ + sed -i.bak 's/-f $id\/skip_erase/-d $id/g' /lib/partman/lib/crypto-base.sh; + +d-i grub-installer/only_debian boolean true +d-i grub-installer/with_other_os boolean true + +d-i partman-auto/method string lvm +d-i partman-auto-lvm/new_vg_name string main +d-i partman-auto-lvm/guided_size string max + +d-i partman-lvm/device_remove_lvm boolean true +d-i partman-lvm/confirm boolean true +d-i partman-lvm/confirm_nooverwrite boolean true + +d-i partman-md/device_remove_md boolean true +d-i partman-md/confirm boolean true +d-i partman-md/confirm_nooverwrite boolean true + +d-i partman-partitioning/confirm_write_new_label boolean true +d-i partman/choose_partition select finish +d-i partman/confirm boolean true +d-i partman/confirm_nooverwrite boolean true +d-i partman-basicmethods/method_only boolean false +d-i partman-efi/non_efi_system boolean true + +d-i partman-basicfilesystems/choose_label string gpt +d-i partman-basicfilesystems/default_label string gpt +d-i partman-partitioning/choose_label string gpt +d-i partman-partitioning/default_label string gpt +d-i partman/choose_label string gpt +d-i partman/default_label string gpt + +d-i partman/mount_style select uuid + +d-i partman-auto/choose_recipe select custom +d-i partman-auto/expert_recipe string \ + custom :: \ + 1 1 1 free \ + $bios_boot{ } \ + method{ biosgrub } \ + . \ + 256 256 256 fat32 \ + $primary{ } \ + $iflabel{ gpt } \ + $reusemethod{ } \ + method{ efi } format{ } \ + mountpoint{ /boot/efi } \ + . \ + 1024 1024 1024 ext4 \ + $primary{ } \ + $bootable{ } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /boot } \ + . \ + 8192 8241 16384 linux-swap \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ swap } \ + method{ swap } \ + format{ } \ + . \ + 12000 16000 24000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ root } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ / } \ + . \ + 4000 8000 12000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ var } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /var } \ + . \ + 2000 4000 6000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ varlog } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /var/log } \ + . \ + 2000 4000 6000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ varlogaudit } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /var/log/audit } \ + . \ + 2000 4000 6000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ vartmp } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /var/tmp } \ + . \ + 2000 4000 6000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ tmp } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /tmp } \ + . \ + 4000 8000 12000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ opt } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /opt } \ + . \ + 6000 8000 1000000000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ home } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /home } \ + . +################################################################################################### diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/install/preseed_vmware.cfg b/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/install/preseed_vmware.cfg new file mode 100644 index 0000000..df4663d --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/install/preseed_vmware.cfg @@ -0,0 +1,91 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +d-i debian-installer/locale string en_US.UTF-8 +d-i console-setup/ask_detect boolean false +d-i keyboard-configuration/xkb-keymap skip-config +d-i keyboard-configuration/layout string "American English" + +d-i preseed/include string preseed_base.cfg + +################################################################################################### +# install root filesystem on smallest non-USB disk + +d-i partman/early_command string \ + ROOT_DISK=$(sh /preseed_partman_determine_disk.sh); \ + pvremove -ff -y "$ROOT_DISK"*; \ + debconf-set partman-auto/disk "$ROOT_DISK"; \ + debconf-set grub-installer/bootdev "$ROOT_DISK"; \ + sed -i.bak 's/-f $id\/skip_erase/-d $id/g' /lib/partman/lib/crypto-base.sh; + +d-i grub-installer/only_debian boolean true +d-i grub-installer/with_other_os boolean true + +d-i partman-auto/method string lvm +d-i partman-auto-lvm/new_vg_name string main +d-i partman-auto-lvm/guided_size string max + +d-i partman-lvm/device_remove_lvm boolean true +d-i partman-lvm/confirm boolean true +d-i partman-lvm/confirm_nooverwrite boolean true + +d-i partman-md/device_remove_md boolean true +d-i partman-md/confirm boolean true +d-i partman-md/confirm_nooverwrite boolean true + +d-i partman-partitioning/confirm_write_new_label boolean true +d-i partman/choose_partition select finish +d-i partman/confirm boolean true +d-i partman/confirm_nooverwrite boolean true +d-i partman-basicmethods/method_only boolean false +d-i partman-efi/non_efi_system boolean true + +d-i partman-basicfilesystems/choose_label string gpt +d-i partman-basicfilesystems/default_label string gpt +d-i partman-partitioning/choose_label string gpt +d-i partman-partitioning/default_label string gpt +d-i partman/choose_label string gpt +d-i partman/default_label string gpt + +d-i partman/mount_style select uuid + +d-i partman-auto/choose_recipe select custom +d-i partman-auto/expert_recipe string \ + custom :: \ + 1 1 1 free \ + $bios_boot{ } \ + method{ biosgrub } \ + . \ + 256 256 256 fat32 \ + $primary{ } \ + $iflabel{ gpt } \ + $reusemethod{ } \ + method{ efi } format{ } \ + mountpoint{ /boot/efi } \ + . \ + 1024 1024 1024 ext4 \ + $primary{ } \ + $bootable{ } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ /boot } \ + . \ + 8192 8241 16384 linux-swap \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ swap } \ + method{ swap } \ + format{ } \ + . \ + 12000 16000 1000000000 ext4 \ + $defaultignore{ } \ + $lvmok{ } \ + in_vg { main } lv_name{ root } \ + method{ format } \ + format{ } \ + use_filesystem{ } \ + filesystem{ ext4 } \ + mountpoint{ / } \ + . +################################################################################################### diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/isolinux/advanced.cfg b/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/isolinux/advanced.cfg new file mode 100644 index 0000000..1999e2e --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/isolinux/advanced.cfg @@ -0,0 +1,34 @@ +label live +menu label ^Live system +kernel /live/vmlinuz +append boot=live components username=sensor nosplash random.trust_cpu=on elevator=deadline cgroup_enable=memory swapaccount=1 cgroup.memory=nokmem initrd=/live/initrd.img -- + +label liveram +menu label ^Live system (fully in RAM) +kernel /live/vmlinuz +append boot=live toram components username=sensor nosplash random.trust_cpu=on elevator=deadline cgroup_enable=memory swapaccount=1 cgroup.memory=nokmem initrd=/live/initrd.img -- + +label install +menu label ^Install Hedgehog Linux (quick install) +kernel /install/vmlinuz +append file=/preseed_multipar.cfg initrd=/install/initrd.gz auto=true priority=critical locales=en_US.UTF-8 keyboard-layouts=us -- + +label installenc +menu label ^Install Hedgehog Linux (encrypted quick install) +kernel /install/vmlinuz +append file=/preseed_multipar_crypto.cfg initrd=/install/initrd.gz auto=true priority=critical locales=en_US.UTF-8 keyboard-layouts=us -- + +label installadv +menu label ^Install Hedgehog Linux (advanced configuration) +kernel /install/vmlinuz +append file=/preseed_minimal.cfg initrd=/install/initrd.gz auto=true priority=high -- + +label installvm +menu label ^Install Hedgehog Linux (virtual machine single partition quick install) +kernel /install/vmlinuz +append file=/preseed_vmware.cfg initrd=/install/initrd.gz auto=true priority=critical locales=en_US.UTF-8 keyboard-layouts=us -- + +label rescue +menu label ^Rescue system in text mode +kernel /install/vmlinuz +append rescue/enable=true initrd=/install/initrd.gz -- diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/isolinux/install.cfg b/Vagrant/resources/malcolm/sensor-iso/config/includes.binary/isolinux/install.cfg new file mode 100644 index 0000000..e69de29 diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/audit/rules.d/audit.rules b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/audit/rules.d/audit.rules new file mode 100644 index 0000000..004f048 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/audit/rules.d/audit.rules @@ -0,0 +1,146 @@ +## First rule - delete all +-D + +## Increase the buffers to survive stress events. +## Make this bigger for busy systems +-b 8192 + +## This determine how long to wait in burst of events +--backlog_wait_time 0 + +## Set failure mode to syslog +-f 1 + +# exclusions + +-a always,exclude -F msgtype=AVC +-a always,exclude -F msgtype=CRYPTO_KEY_USER +-a always,exclude -F msgtype=CWD +-a always,exclude -F msgtype=EOE + +# commands + +-a always,exit -F path=/bin/fusermount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/bin/mount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/bin/pmount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/bin/pumount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/bin/su -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/bin/umount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/etc/audisp/audisp-remote.conf -F perm=wa -k config_file_change +-a always,exit -F path=/etc/audit/auditd.conf -F perm=wa -k config_file_change +-a always,exit -F path=/etc/default/grub -F perm=wa -k config_file_change +-a always,exit -F path=/etc/fstab -F perm=wa -k config_file_change +-a always,exit -F path=/etc/hosts.deny -F perm=wa -k config_file_change +-a always,exit -F path=/etc/login.defs -F perm=wa -k config_file_change +-a always,exit -F path=/etc/profile -F perm=wa -k config_file_change +-a always,exit -F path=/etc/sysctl.conf -F perm=wa -k config_file_change +-a always,exit -F path=/sbin/apparmor_parser -F perm=x -F auid>=1000 -F auid!=4294967295 -k MAC-policy +-a always,exit -F path=/sbin/pam_tally -F perm=wxa -F auid>=1000 -F auid!=4294967295 -k privileged-pam +-a always,exit -F path=/sbin/pam_tally2 -F perm=wxa -F auid>=1000 -F auid!=4294967295 -k privileged-pam +-a always,exit -F path=/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-passwd +-a always,exit -F path=/sbin/unix_update -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-unix-update +-a always,exit -F path=/usr/bin/bsd-write -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/chacl -F perm=x -F auid>=1000 -F auid!=4294967295 -k perm_chng +-a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-passwd +-a always,exit -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/chfn -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/chfn -F perm=x -F auid>=500 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-cron +-a always,exit -F path=/usr/bin/dotlock.mailutils -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/expiry -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/fusermount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-passwd +-a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/ntfs-3g -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-passwd +-a always,exit -F path=/usr/bin/pkexec -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/pmount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/pumount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/setfacl -F perm=x -F auid>=1000 -F auid!=4294967295 -k perm_chng +-a always,exit -F path=/usr/bin/ssh-agent -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-ssh +-a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/sudoedit -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-priv_change +-a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/bin/wall -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/dbus-1.0/dbus-daemon-launch-helper -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/eject/dmcrypt-get-device -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-ssh +-a always,exit -F path=/usr/lib/policykit-1/polkit-agent-helper-1 -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/x86_64-linux-gnu/utempter/utempter -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/lib/xorg/Xorg.wrap -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/addgroup -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/adduser -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/exim4 -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/groupadd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/mount.cifs -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/netfilter-persistent -F perm=x -F auid>=1000 -F auid!=4294967295 -k nft_persistent_use +-a always,exit -F path=/usr/sbin/nft -F perm=x -F auid>=1000 -F auid!=4294967295 -k nft_cmd_use +-a always,exit -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-pam +-a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-postfix +-a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-postfix +-a always,exit -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/setsebool -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/useradd -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged +-a always,exit -F path=/usr/sbin/usermod -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged-usermod +-a always,exit -F path=/usr/sbin/visudo -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged + +# privileged files + +-w /bin/kmod -p x -k modules +-w /etc/apparmor.d/ -p wa -k MAC-policy +-w /etc/apparmor/ -p wa -k MAC-policy +-w /etc/group -p wa -k identity +-w /etc/gshadow -p wa -k identity +-w /etc/hosts -p wa -k system-locale +-w /etc/issue -p wa -k system-locale +-w /etc/issue.net -p wa -k system-locale +-w /etc/localtime -p wa -k time-change +-w /etc/network -p wa -k system-locale +-w /etc/nftables.conf -p wa -k nft_config_file_change +-w /etc/opasswd -p wa -k usergroup_modification +-w /etc/passwd -p wa -k identity +-w /etc/security/opasswd -p wa -k identity +-w /etc/shadow -p wa -k identity +-w /etc/sudoers -p wa -k sudoers +-w /etc/sudoers.d/ -p wa -k sudoers +-w /sbin/insmod -p x -k modules +-w /sbin/modprobe -p x -k modules +-w /sbin/rmmod -p x -k modules +-w /var/log/btmp -p wa -k session +-w /var/log/faillog -p wa -k logins +-w /var/log/lastlog -p wa -k logins +-w /var/log/sudo.log -p wa -k sudoaction +-w /var/log/tallylog -p wa -k logins +-w /var/log/wtmp -p wa -k session +-w /var/run/faillock -p wa -k logins +-w /var/run/utmp -p wa -k session + +# syscalls + +-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change +-a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod +-a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod +-a always,exit -F arch=b64 -S clock_settime -k time-change +-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access +-a always,exit -F arch=b64 -S open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access +-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access +-a always,exit -F arch=b64 -S open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access +-a always,exit -F arch=b64 -S execve -C gid!=egid -F key=execpriv +-a always,exit -F arch=b64 -S execve -C uid!=euid -F key=execpriv +-a always,exit -F arch=b64 -S init_module -S delete_module -S create_module -S finit_module -k modules +-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=4294967295 -k mounts +-a always,exit -F arch=b64 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=1000 -F auid!=4294967295 -k perm_mod +-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -S rmdir -F auid>=1000 -F auid!=4294967295 -k delete +-a always,exit -F dir=/etc/audit/rules.d/ -F perm=wa -k config_file_change +-a always,exit -F dir=/etc/pam.d/ -F perm=wa -k config_file_change +-a always,exit -F dir=/etc/profile.d/ -F perm=wa -k config_file_change +-a always,exit -F dir=/etc/security/ -F perm=wa -k config_file_change +-a exit,always -F arch=b64 -S sethostname -S setdomainname -k system-locale + +# Make the configuration immutable -- reboot is required to change audit rules +-e 2 diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/bash.bash_aliases b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/bash.bash_aliases new file mode 100644 index 0000000..2b2b9ca --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/bash.bash_aliases @@ -0,0 +1,33 @@ +# some more ls aliases + +# sensor +alias configure-interfaces="su -l -c /usr/local/bin/configure-interfaces.py" +alias configure-capture="/usr/local/bin/configure-capture.py" + +#safety +alias mv='mv -i' +alias rm='rm -I -v' +alias cp='cp -i' +alias chmod='chmod --preserve-root' +alias chown='chown --preserve-root' + +#convenience +alias ls="ls --block-size=\"'1\" --color=auto --group-directories-first" +alias la='ls -A' +alias l='ls -oah' +alias ll='ls -l --si --color=auto --group-directories-first' +alias lt='ls -ltr' +alias lld='ls -lUd */' +alias lsize='ls -lSrh' +alias df='df -Th' +alias ln='ln -s' +alias ..='cd ..' +alias cd..='cd ..' +alias cd-='cd -' +alias cdp='cd -P' +alias dump='hexdump -C' +alias findbroken='find . -type l ! -exec test -r {} \; -print' +alias utime='date +%s' +alias dutop='du -csh ./* 2>/dev/null | sort -rh' +alias mountcol='mount | column -t' +alias dmesg='dmesg -wHx' diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/bash.bash_functions b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/bash.bash_functions new file mode 100644 index 0000000..dbeb69b --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/bash.bash_functions @@ -0,0 +1,384 @@ +######################################################################## +# text processing +######################################################################## +function cols () { + first="awk '{print " + last="}'" + cmd="${first}" + commatime="" + for var in "$@" + do + if [ -z $commatime ] + then + commatime="no" + cmd=${cmd}\$${var} + else + cmd=${cmd}\,\$${var} + fi + done + cmd="${cmd}${last}" + eval $cmd +} + +function headtail () { + awk -v offset="$1" '{ if (NR <= offset) print; else { a[NR] = $0; delete a[NR-offset] } } END { { print "--------------------------------" } for (i=NR-offset+1; i<=NR; i++) print a[i] }' ; +} + +function wait_file() { + local file="$1"; shift + local wait_seconds="${1:-10}"; shift # 10 seconds as default timeout + + until test $((wait_seconds--)) -eq 0 -o -f "$file" ; do sleep 1; done + + ((++wait_seconds)) +} + +function taildiff () { + LEFT_FILE=$1 + RIGHT_FILE=$2 + RIGHT_LINES=$(wc -l "$RIGHT_FILE" | cut -d ' ' -f1) + diff -bwBy --suppress-common-lines <(head -n $RIGHT_LINES "$LEFT_FILE") <(head -n $RIGHT_LINES "$RIGHT_FILE") +} + +function fs() { + if du -b /dev/null > /dev/null 2>&1; then + local arg=-sbh; + else + local arg=-sh; + fi + if [[ -n "$@" ]]; then + du $arg -- "$@"; + else + du $arg .[^.]* ./*; + fi; +} + +function lin () { + sed -n $1p +} + +function fsize () { + echo "$1" | awk 'function human(x) { + s=" B KiB MiB GiB TiB EiB PiB YiB ZiB" + while (x>=1024 && length(s)>1) + {x/=1024; s=substr(s,5)} + s=substr(s,1,4) + xf=(s==" B ")?"%5d ":"%0.2f" + return sprintf( xf"%s", x, s) + } + {gsub(/^[0-9]+/, human($1)); print}' +} + +function multigrep() { local IFS='|'; grep -rinE "$*" . ; } + +function ord() { printf "%d\n" "'$1"; } + +function chr() { printf \\$(($1/64*100+$1%64/8*10+$1%8))\\n; } + +######################################################################## +# math +######################################################################## +function calc () { python -c "from math import *; n = $1; print n; print '$'+hex(trunc(n))[2:]; print '&'+oct(trunc(n))[1:]; print '%'+bin(trunc(n))[2:];"; } + +function add () { + awk '{s+=$1} END {print s}' +} + +######################################################################## +# directory navigation/file manipulation +######################################################################## +function cd() { if [[ "$1" =~ ^\.\.+$ ]];then local a dir;a=${#1};while [ $a -ne 1 ];do dir=${dir}"../";((a--));done;builtin cd $dir;else builtin cd "$@";fi ;} + +function fcd() { [ -f $1 ] && { cd $(dirname $1); } || { cd $1 ; } } + +function up { cd $(eval printf '../'%.0s {1..$1}) && pwd; } + +function realgo() { fcd $(realpath $(which $1)) && pwd ; } + +function realwhich() { realpath $(which $1) ; } + +function renmod() { + FILENAME="$@"; + TIMESTAMP=$(date -d @$(stat -c%Y "$FILENAME") +"%Y%m%d%H%M%S") + mv -iv "$FILENAME" "$FILENAME.$TIMESTAMP" +} + +function upto() { + local EXPRESSION="$1" + if [ -z "$EXPRESSION" ]; then + echo "A folder expression must be provided." >&2 + return 1 + fi + if [ "$EXPRESSION" = "/" ]; then + cd "/" + return 0 + fi + local CURRENT_FOLDER="$(pwd)" + local MATCHED_DIR="" + local MATCHING=true + + while [ "$MATCHING" = true ]; do + if [[ "$CURRENT_FOLDER" =~ "$EXPRESSION" ]]; then + MATCHED_DIR="$CURRENT_FOLDER" + CURRENT_FOLDER=$(dirname "$CURRENT_FOLDER") + else + MATCHING=false + fi + done + if [ -n "$MATCHED_DIR" ]; then + cd "$MATCHED_DIR" + return 0 + else + echo "No Match." >&2 + return 1 + fi +} + +# complete upto +_upto () { + # necessary locals for _init_completion + local cur prev words cword + _init_completion || return + + COMPREPLY+=( $( compgen -W "$( echo ${PWD//\// } )" -- $cur ) ) +} +complete -F _upto upto + + +######################################################################## +# history +######################################################################## +function h() { if [ -z "$1" ]; then history; else history | grep -i "$@"; fi; } + +######################################################################## +# searching +######################################################################## +function fname() { find . -iname "*$@*"; } + +######################################################################## +# examine running processes +######################################################################## +function auxer() { + ps aux | grep -i "$(echo "$1" | sed "s/^\(.\)\(.*$\)/\[\1\]\2/")" +} + +function psgrep() { ps axuf | grep -v grep | grep "$@" -i --color=auto; } + +function killtree() { + if [ "$1" ] + then + kill $(pstree -p $1 | sed 's/(/\n(/g' | grep '(' | sed 's/(\(.*\)).*/\1/' | tr "\n" " ") + else + echo "No PID specified">&2 + fi +} + +function howmuchmem () { + PROCNAME="$@"; + RAMKILOBYTES=($(ps axo rss,comm|grep $PROCNAME| awk '{ TOTAL += $1 } END { print TOTAL }')); + RAMBYTES=$(echo "$RAMKILOBYTES*1024" | bc); + RAM=$(fsize $RAMBYTES); + echo "$RAM"; +} + +function mempercent () { + PROCNAME="$@"; + ps -eo pmem,comm | grep "$PROCNAME" | awk '{sum+=$1} END {print sum " % of RAM"}' +} + +function htopid () { + PROCPID="$1" + htop -p $(pstree -p $PROCPID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }') +} + +function lport () { + if [ "$1" ] + then + netstat -anp 2>/dev/null|grep "$1"|grep LISTEN|awk '{print $4}'|grep -P -o "\d+"|grep -v "^0$" + else + echo "No process specified">&2 + fi +} + +######################################################################## +# APT package management +######################################################################## +function aptsearch() { apt-cache search "$1"; } + +function aptsize() { + dpkg-query --show --showformat='${Package;-50}\t${Installed-Size} ${Status}\n' | sort -k 2 -n | grep -v deinstall +} + +######################################################################## +# date/time +######################################################################## +function dateu() +{ + if [ "$1" ] + then + echo $(date -u -d @$1); + else + echo "No UNIX time specified">&2 + fi +} + +function udate() +{ + if [ "$1" ] + then + date -u +%s -d "$1" + else + date -u +%s + fi +} + +function sec2dhms() { + declare -i SS="$1" D=$(( SS / 86400 )) H=$(( SS % 86400 / 3600 )) M=$(( SS % 3600 / 60 )) S=$(( SS % 60 )) [ "$D" -gt 0 ] && echo -n "${D}:" [ "$H" -gt 0 ] && printf "%02g:" "$H" printf "%02g:%02g\n" "$M" "$S" +} + +######################################################################## +# system +######################################################################## +function ddisousb() { + if [ "$1" ] && [[ -r "$1" ]] ; then + if [ "$2" ] && [[ -r "$2" ]] ; then + echo "dd if=\"$1\" of=\"$2\" bs=4M status=progress oflag=sync" + dd if="$1" of="$2" bs=4M status=progress oflag=sync + else + echo "No destination device specified">&2 + fi + else + echo "No iso file specified">&2 + fi +} + +function find_linux_root_device() { + local PDEVICE=`stat -c %04D /` + for file in $(find /dev -type b 2>/dev/null) ; do + local CURRENT_DEVICE=$(stat -c "%02t%02T" $file) + if [ $CURRENT_DEVICE = $PDEVICE ]; then + ROOTDEVICE="$file" + break; + fi + done + echo "$ROOTDEVICE" +} + +function rotationals() { + for f in /sys/block/sd?/queue/rotational; do printf "$f is "; cat $f; done +} + +function schedulers() { + for f in /sys/block/sd?/queue/scheduler; do printf "$f is "; cat $f; done +} + +function watch_file_size() { + perl -e ' + $file = shift; die "no file [$file]" unless ((-f $file) || (-d $file)); + $isDir = (-d $file); + $sleep = shift; $sleep = 1 unless $sleep =~ /^[0-9]+$/; + $format = "%0.2f %0.2f\n"; + while(1){ + if ($isDir) { + $size = `du -0scb $file`; + $size =~ s/\s+.*//; + } else { + $size = ((stat($file))[7]); + } + $change = $size - $lastsize; + printf $format, $size/1024/1024, $change/1024/1024/$sleep; + sleep $sleep; + $lastsize = $size; + }' "$1" "$2" +} + +function dux() { + du -x --max-depth=1|sort -rn|awk -F / -v c=$COLUMNS 'NR==1{t=$1} NR>1{r=int($1/t*c+.5); b="\033[1;31m"; for (i=0; i/dev/null 2>&1 && "$TMUX" attach || echo "No tmux sessions found" + else + SID="$1"; shift + "$TMUX" attach -t "$SID" "$@" + fi + + else + "$TMUX" "$@" + fi +} + +function screen() { + tmux "$@" +} + +######################################################################## +# sensor-specific +######################################################################## +function sensorwatch () { + if [ "$1" ]; then + SLEEPSEC="$1" + else + SLEEPSEC=1 + fi + if [ -f /opt/sensor/sensor_ctl/control_vars.conf ] ; then + . /opt/sensor/sensor_ctl/control_vars.conf + if [ -d "$ZEEK_LOG_PATH" ] && [ -d "$PCAP_PATH" ] ; then + while true; do + clear + find "$PCAP_PATH" "$ZEEK_LOG_PATH" -type f \( -name "*.pcap*" -o -name "*.log*" \) -print0 | \ + xargs -0 stat --format '%Y: %y %s %n' | \ + sort -nr | \ + cut -d: -f2- | \ + sed -r "s/\..*\\+0000//" | \ + head -n 10 | \ + awk 'function human(x) { + s=" B KiB MiB GiB TiB EiB PiB YiB ZiB" + while (x>=1024 && length(s)>1) + {x/=1024; s=substr(s,5)} + s=substr(s,1,4) + xf=(s==" B ")?"%5d ":"%0.2f" + return sprintf( xf"%s", x, s) + }; + { + $3 = human($3); + print + }' + echo + du -sh "$PCAP_PATH" "$ZEEK_LOG_PATH" + echo + df -h "$PCAP_PATH" "$ZEEK_LOG_PATH" + sleep $SLEEPSEC + done + fi + fi +} diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/chromium/policies/managed/policy.json b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/chromium/policies/managed/policy.json new file mode 100644 index 0000000..e30fd31 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/chromium/policies/managed/policy.json @@ -0,0 +1,17 @@ +{ + "AllowDinosaurEasterEgg": false, + "BrowserSignin": false, + "EnableMediaRouter": false, + "HomepageIsNewTabPage": false, + "HomepageLocation": "http://127.0.0.1:5000", + "NewTabPageLocation": "about:blank", + "PromotionalTabsEnabled": false, + "RestoreOnStartup": 4, + "RestoreOnStartupURLs": [ + "http://127.0.0.1:5000" + ], + "RestrictSigninToPattern": ".*@example.com", + "SafeBrowsingExtendedReportingEnabled": false, + "ShowCastIconInToolbar": false, + "SyncDisabled": true +} diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/installer b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/installer new file mode 100644 index 0000000..c976511 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/installer @@ -0,0 +1 @@ +sensor diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/live/config.conf b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/live/config.conf new file mode 100644 index 0000000..0542d48 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/live/config.conf @@ -0,0 +1,5 @@ +LIVE_LOCALES="en_US.UTF-8" +LIVE_HOSTNAME="sensor-live" +LIVE_USERNAME="sensor" +LIVE_USER_FULLNAME="sensor" +LIVE_USER_DEFAULT_GROUPS="adm audio cdrom disk netdev plugdev sudo video vboxsf" diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/login.defs b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/login.defs new file mode 100644 index 0000000..4b3a243 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/login.defs @@ -0,0 +1,341 @@ +# +# /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/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin + +# +# 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 077 + +# +# 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 + +# +# 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 + +# +# 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 in no. +# +DEFAULT_HOME yes +CREATE_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 DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +ENCRYPT_METHOD SHA512 + +# +# Only used 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 forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside 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 + +################# 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/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/security/limits.d/limits.conf b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/security/limits.d/limits.conf new file mode 100644 index 0000000..0f7ffc0 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/security/limits.d/limits.conf @@ -0,0 +1,8 @@ +* soft nofile 65535 +* hard nofile 65535 +* soft memlock unlimited +* hard memlock unlimited +* soft core 0 +* hard core 0 +* hard maxlogins 10 + diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.Xresources b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.Xresources new file mode 100644 index 0000000..56a4ca3 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.Xresources @@ -0,0 +1,2 @@ +xscreensaver.mode: blank +xscreensaver.lock: false diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.bashrc b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.bashrc new file mode 100644 index 0000000..a9b1a3d --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.bashrc @@ -0,0 +1,88 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# new directories default to 700, new files to 600 +umask 077 +export UMASK=077 + +# If not running interactively, don't do anything +[ -z "$PS1" ] && return + +# don't put duplicate lines in the history and ignore same sucessive entries. +export HISTCONTROL=ignoreboth:erasedups +export HISTIGNORE="&:ls:ll:cd:history:h:[bf]g:exit:pwd:clear" +export HISTFILESIZE=1000000000 +export HISTSIZE=1000000 +export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] " + +# 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 /usr/bin/lesspipe ] && eval "$(lesspipe)" + +# 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/$HOME/~}\007"' + ;; +*) + ;; +esac + +# enable programmable completion features +if [ -f /etc/bash_completion ]; then + . /etc/bash_completion +fi + +############################################################################### +# PATH +############################################################################### +PATH=/opt/zeek/bin:/opt/spicy/bin:/opt/moloch/bin:/usr/sbin:$PATH + +if [ -d ~/bin ]; then + PATH=~/bin:$PATH +fi + +if [ -d ~/.local/bin ]; then + PATH=~/.local/bin:$PATH +fi + +export PATH + +############################################################################### +# ALIASES AND FUNCTIONS +############################################################################### +if [ -f /etc/bash.bash_aliases ]; then + . /etc/bash.bash_aliases +fi + +if [ -f /etc/bash.bash_functions ]; then + . /etc/bash.bash_functions +fi + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +if [ -f ~/.bash_functions ]; then + . ~/.bash_functions +fi + +############################################################################### +# BASH OPTIONS +############################################################################### +shopt -s extglob +shopt -s dotglob +shopt -s cdspell +shopt -s histverify +shopt -s histappend +shopt -u progcomp +PROMPT_COMMAND="history -a;$PROMPT_COMMAND" + +############################################################################### +# BASH PROMPT +############################################################################### +PS1="\[\033[00;32m\]\u\[\033[00;34m\]@\h\[\033[1;30m\]:\[\033[00;35m\]\W\[\033[00m\]\[\033[01;37m\]\$ \[\033[00;37m\]" diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/clipit/clipitrc b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/clipit/clipitrc new file mode 100644 index 0000000..72f917d --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/clipit/clipitrc @@ -0,0 +1,27 @@ +[rc] +use_copy=true +use_primary=false +synchronize=false +automatic_paste=false +show_indexes=false +save_uris=true +use_rmb_menu=false +save_history=false +history_limit=50 +history_timeout_seconds=300 +history_timeout=true +items_menu=10 +statics_show=false +statics_items=0 +hyperlinks_only=true +confirm_clear=false +single_line=true +reverse_history=true +item_length=0 +ellipsize=0 +history_key=H +actions_key=A +menu_key=P +search_key=F +offline_key=O +offline_mode=false diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/gtk-3.0/settings.ini b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/gtk-3.0/settings.ini new file mode 100644 index 0000000..8f78856 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/gtk-3.0/settings.ini @@ -0,0 +1,15 @@ +[Settings] +gtk-theme-name=Adwaita-dark +gtk-icon-theme-name=gnome +gtk-font-name=Sans 10 +gtk-cursor-theme-size=18 +gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=1 +gtk-menu-images=1 +gtk-enable-event-sounds=0 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle=hintslight +gtk-xft-rgba=rgb diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/lxpanel/LXDE/panels/hedgehog b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/lxpanel/LXDE/panels/hedgehog new file mode 100644 index 0000000..8e5cab7 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/lxpanel/LXDE/panels/hedgehog @@ -0,0 +1,134 @@ +# lxpanel config file. Manually editing is not recommended. +# Use preference dialog in lxpanel to adjust config when you can. + +Global { + edge=top + monitor=0 + height=32 + align=left + widthtype=percent + width=100 + transparent=0 + background=0 + autohide=0 + heightwhenhidden=4 + tintcolor=#a0a0a0 + alpha=255 + setpartialstrut=1 + iconsize=24 +} +Plugin { + type=menu + Config { + system { + } + separator { + } + item { + command=run + } + separator { + } + item { + command=logout + image=gnome-logout + } + image=/usr/share/icons/gnome/32x32/places/start-here.png + } +} +Plugin { + type=separator + Config { + } +} +Plugin { + type=launchtaskbar + Config { + Button { + id=terminator.desktop + } + Button { + id=firefox.desktop + } + Button { + id=hedgehog-kiosk.desktop + } + Button { + id=hedgehog-readme.desktop + } + Button { + id=sensor-services-status.desktop + } + Button { + id=configure-capture.desktop + } + Button { + id=configure-interfaces.desktop + } + Button { + id=sensor-services-full-restart.desktop + } + IconsOnly=0 + FlatButton=0 + UseMouseWheel=0 + GroupedTasks=1 + DisableUpscale=0 + UseSmallerIcons=-1 + spacing=1 + ShowAllDesks=0 + } +} +Plugin { + type=space + Config { + } + expand=1 +} +Plugin { + type=separator + Config { + } +} +Plugin { + type=pager + Config { + } +} +Plugin { + type=separator + Config { + } +} +Plugin { + type=dclock + Config { + ClockFmt=%R + TooltipFmt=%A %x + BoldFont=0 + IconOnly=0 + CenterText=0 + } +} +Plugin { + type=separator + Config { + } +} +Plugin { + type=tray + Config { + } +} +Plugin { + type=separator + Config { + } +} +Plugin { + type=launchbar + Config { + Button { + id=lxde-logout.desktop + } + } +} diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/lxsession/LXDE/desktop.conf b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/lxsession/LXDE/desktop.conf new file mode 100644 index 0000000..473cafe --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/lxsession/LXDE/desktop.conf @@ -0,0 +1,48 @@ +[Session] +window_manager=openbox-lxde +disable_autostart=no +polkit/command=lxpolkit +clipboard/command=lxclipboard +xsettings_manager/command=build-in +proxy_manager/command=build-in +keyring/command=ssh-agent +quit_manager/command=lxsession-logout +lock_manager/command=lxlock +terminal_manager/command=lxterminal + +[GTK] +sNet/ThemeName=Adwaita-dark +sNet/IconThemeName=gnome +sGtk/FontName=Sans 10 +iGtk/ToolbarStyle=3 +iGtk/ButtonImages=1 +iGtk/MenuImages=1 +iGtk/CursorThemeSize=18 +iXft/Antialias=1 +iXft/Hinting=1 +sXft/HintStyle=hintslight +sXft/RGBA=rgb +iNet/EnableEventSounds=1 +iNet/EnableInputFeedbackSounds=1 +sGtk/ColorScheme= +iGtk/ToolbarIconSize=3 +sGtk/CursorThemeName=DMZ-White + +[Mouse] +AccFactor=20 +AccThreshold=10 +LeftHanded=0 + +[Keyboard] +Delay=500 +Interval=30 +Beep=1 + +[State] +guess_default=true + +[Dbus] +lxde=true + +[Environment] +menu_prefix=lxde- diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf new file mode 100644 index 0000000..258d3ff --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/pcmanfm/LXDE/desktop-items-0.conf @@ -0,0 +1,13 @@ +[*] +wallpaper_mode=fit +wallpaper_common=1 +wallpaper=/usr/share/images/desktop-base/hedgehog-wallpaper.png +desktop_bg=#1c0522 +desktop_fg=#ffffff +desktop_shadow=#000000 +desktop_font=Ubuntu Medium 12 +show_wm_menu=0 +sort=mtime;ascending; +show_documents=0 +show_trash=0 +show_mounts=1 diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/pcmanfm/LXDE/pcmanfm.conf b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/pcmanfm/LXDE/pcmanfm.conf new file mode 100644 index 0000000..2de8f2d --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.config/pcmanfm/LXDE/pcmanfm.conf @@ -0,0 +1,26 @@ +[config] +bm_open_method=0 + +[volume] +mount_on_startup=0 +mount_removable=0 +autorun=0 + +[ui] +always_show_tabs=0 +max_tab_chars=32 +win_width=640 +win_height=480 +splitter_pos=150 +media_in_new_tab=0 +desktop_folder_new_win=0 +change_tab_on_drop=1 +close_on_unmount=1 +focus_previous=0 +side_pane_mode=places +view_mode=list +show_hidden=0 +sort=name;ascending; +toolbar=newtab;navigation;home; +show_statusbar=1 +pathbar_mode_buttons=0 \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.hushlogin b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.hushlogin new file mode 100644 index 0000000..e69de29 diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.selected_editor b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.selected_editor new file mode 100644 index 0000000..eb70eec --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.selected_editor @@ -0,0 +1 @@ +SELECTED_EDITOR="/usr/bin/vim.tiny" diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.tmux.conf b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.tmux.conf new file mode 100644 index 0000000..f423f16 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.tmux.conf @@ -0,0 +1,47 @@ +unbind C-b +set -g prefix C-a +bind a send-prefix + +bind-key C-a last-window + +# Make shift+arrows, ctrl+arrows etc work in Vim. +set -g xterm-keys on + +# See if this fixes slow ESC issues. +# http://unix.stackexchange.com/questions/23138/esc-key-causes-a-small-delay-in-terminal-due-to-its-alt-behavior +set -s escape-time 0 + +# Start window and pane indices at 1. +set -g base-index 1 +set -g pane-base-index 1 + +# Status bar styling and content. +set -g status-bg black +set -g status-fg white +set -g status-left '#S ' + +# Highlight the active window in the status bar. +set-window-option -g window-status-current-bg yellow +set-window-option -g window-status-current-fg black + +# More intuitive split-window mappings. +bind "'" split-window -h +bind - split-window -v + +# Maximize pane, e.g. for copying. +bind-key z resize-pane -Z + +# Switch pane and zoom +# https://twitter.com/tskogberg/status/792025881573199872 +bind C-z select-pane -t :.+ \; resize-pane -Z + +# toggle synchronize panes +bind C-x set-window-option synchronize-panes\; display-message "synchronize-panes is now #{?pane_synchronized,on,off}" + +# Reload tmux conf. +unbind r +bind r source-file ~/.tmux.conf\; display "Reloaded conf." + +# Use vim keybindings in copy mode +setw -g mode-keys vi + diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.vimrc b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.vimrc new file mode 100644 index 0000000..d75734c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.vimrc @@ -0,0 +1,2 @@ +set nocompatible + diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.xscreensaver b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.xscreensaver new file mode 100644 index 0000000..d70ce5a --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/skel/.xscreensaver @@ -0,0 +1,281 @@ +# XScreenSaver Preferences File +# Written by xscreensaver-demo 5.36 for sensor on Wed Jul 3 15:35:13 2019. +# https://www.jwz.org/xscreensaver/ + +timeout: 0:10:00 +cycle: 0:10:00 +lock: False +lockTimeout: 0:00:00 +passwdTimeout: 0:00:30 +visualID: default +installColormap: True +verbose: False +timestamp: True +splash: True +splashDuration: 0:00:05 +demoCommand: xscreensaver-demo +prefsCommand: xscreensaver-demo -prefs +nice: 10 +memoryLimit: 0 +fade: False +unfade: False +fadeSeconds: 0:00:03 +fadeTicks: 20 +captureStderr: True +ignoreUninstalledPrograms:True +font: *-medium-r-*-140-*-m-* +dpmsEnabled: False +dpmsQuickOff: False +dpmsStandby: 2:00:00 +dpmsSuspend: 2:00:00 +dpmsOff: 4:00:00 +grabDesktopImages: False +grabVideoFrames: False +chooseRandomImages: False +imageDirectory: + +mode: blank +selected: -1 + +textMode: date +textLiteral: XScreenSaver +textFile: +textProgram: fortune +textURL: http://planet.debian.org/rss20.xml + +programs: \ + maze -root \n\ +- GL: superquadrics -root \n\ + attraction -root \n\ + blitspin -root \n\ + greynetic -root \n\ + helix -root \n\ + hopalong -root \n\ + imsmap -root \n\ +- noseguy -root \n\ +- pyro -root \n\ + qix -root \n\ +- rocks -root \n\ + rorschach -root \n\ + decayscreen -root \n\ + flame -root \n\ + halo -root \n\ + slidescreen -root \n\ + pedal -root \n\ + bouboule -root \n\ +- braid -root \n\ + coral -root \n\ + deco -root \n\ + drift -root \n\ +- fadeplot -root \n\ + galaxy -root \n\ + goop -root \n\ + grav -root \n\ + ifs -root \n\ + unicode -root \n\ +- GL: jigsaw -root \n\ + julia -root \n\ +- kaleidescope -root \n\ +- GL: moebius -root \n\ + moire -root \n\ +- GL: morph3d -root \n\ + mountain -root \n\ + munch -root \n\ + penrose -root \n\ +- GL: pipes -root \n\ + rd-bomb -root \n\ +- GL: rubik -root \n\ +- sierpinski -root \n\ + slip -root \n\ +- GL: sproingies -root \n\ + starfish -root \n\ + strange -root \n\ + swirl -root \n\ + triangle -root \n\ + xjack -root \n\ + xlyap -root \n\ +- GL: atlantis -root \n\ + bsod -root \n\ +- GL: bubble3d -root \n\ +- GL: cage -root \n\ +- crystal -root \n\ + cynosure -root \n\ + discrete -root \n\ + distort -root \n\ + epicycle -root \n\ + flow -root \n\ +- GL: glplanet -root \n\ + interference -root \n\ + kumppa -root \n\ +- GL: lament -root \n\ + moire2 -root \n\ +- GL: sonar -root \n\ +- GL: stairs -root \n\ + truchet -root \n\ +- vidwhacker -root \n\ + blaster -root \n\ + bumps -root \n\ + ccurve -root \n\ + compass -root \n\ + deluxe -root \n\ +- demon -root \n\ +- GL: extrusion -root \n\ +- loop -root \n\ + penetrate -root \n\ + petri -root \n\ + phosphor -root \n\ +- GL: pulsar -root \n\ + ripples -root \n\ + shadebobs -root \n\ +- GL: sierpinski3d -root \n\ + spotlight -root \n\ + squiral -root \n\ + wander -root \n\ +- webcollage -root \n\ + xflame -root \n\ + xmatrix -root \n\ +- GL: gflux -root \n\ +- nerverot -root \n\ + xrayswarm -root \n\ + xspirograph -root \n\ +- GL: circuit -root \n\ +- GL: dangerball -root \n\ +- GL: engine -root \n\ +- GL: flipscreen3d -root \n\ +- GL: gltext -root \n\ +- GL: menger -root \n\ +- GL: molecule -root \n\ + rotzoomer -root \n\ + speedmine -root \n\ +- GL: starwars -root \n\ +- GL: stonerview -root \n\ + vermiculate -root \n\ + whirlwindwarp -root \n\ + zoom -root \n\ + anemone -root \n\ + apollonian -root \n\ +- GL: boxed -root \n\ +- GL: cubenetic -root \n\ +- GL: endgame -root \n\ + euler2d -root \n\ + fluidballs -root \n\ +- GL: flurry -root \n\ +- GL: glblur -root \n\ +- GL: glsnake -root \n\ + halftone -root \n\ +- GL: juggler3d -root \n\ +- GL: lavalite -root \n\ +- polyominoes -root \n\ +- GL: queens -root \n\ +- GL: sballs -root \n\ +- GL: spheremonics -root \n\ +- thornbird -root \n\ + twang -root \n\ +- GL: antspotlight -root \n\ + apple2 -root \n\ +- GL: atunnel -root \n\ + barcode -root \n\ +- GL: blinkbox -root \n\ +- GL: blocktube -root \n\ +- GL: bouncingcow -root \n\ + cloudlife -root \n\ +- GL: cubestorm -root \n\ + eruption -root \n\ +- GL: flipflop -root \n\ +- GL: flyingtoasters -root \n\ + fontglide -root \n\ +- GL: gleidescope -root \n\ +- GL: glknots -root \n\ +- GL: glmatrix -root \n\ +- GL: glslideshow -root \n\ +- GL: hypertorus -root \n\ +- GL: jigglypuff -root \n\ + metaballs -root \n\ +- GL: mirrorblob -root \n\ + piecewise -root \n\ +- GL: polytopes -root \n\ + pong -root \n\ + popsquares -root \n\ +- GL: surfaces -root \n\ + xanalogtv -root \n\ + abstractile -root \n\ + anemotaxis -root \n\ +- GL: antinspect -root \n\ + fireworkx -root \n\ + fuzzyflakes -root \n\ + interaggregate -root \n\ + intermomentary -root \n\ + memscroller -root \n\ +- GL: noof -root \n\ + pacman -root \n\ +- GL: pinion -root \n\ +- GL: polyhedra -root \n\ +- GL: providence -root \n\ + substrate -root \n\ + wormhole -root \n\ +- GL: antmaze -root \n\ +- GL: boing -root \n\ + boxfit -root \n\ +- GL: carousel -root \n\ + celtic -root \n\ +- GL: crackberg -root \n\ +- GL: cube21 -root \n\ + fiberlamp -root \n\ +- GL: fliptext -root \n\ +- GL: glhanoi -root \n\ +- GL: tangram -root \n\ +- GL: timetunnel -root \n\ +- GL: glschool -root \n\ +- GL: topblock -root \n\ +- GL: cubicgrid -root \n\ + cwaves -root \n\ +- GL: gears -root \n\ +- GL: glcells -root \n\ +- GL: lockward -root \n\ + m6502 -root \n\ +- GL: moebiusgears -root \n\ +- GL: voronoi -root \n\ +- GL: hypnowheel -root \n\ +- GL: klein -root \n\ +- lcdscrub -root \n\ +- GL: photopile -root \n\ +- GL: skytentacles -root \n\ +- GL: rubikblocks -root \n\ +- GL: companioncube -root \n\ +- GL: hilbert -root \n\ +- GL: tronbit -root \n\ +- GL: geodesic -root \n\ + hexadrop -root \n\ +- GL: kaleidocycle -root \n\ +- GL: quasicrystal -root \n\ +- GL: unknownpleasures -root \n\ + binaryring -root \n\ +- GL: cityflow -root \n\ +- GL: geodesicgears -root \n\ +- GL: projectiveplane -root \n\ +- GL: romanboy -root \n\ + tessellimage -root \n\ +- GL: winduprobot -root \n\ +- GL: splitflap -root \n\ +- GL: cubestack -root \n\ +- GL: cubetwist -root \n\ +- GL: discoball -root \n\ +- GL: dymaxionmap -root \n\ +- GL: energystream -root \n\ +- GL: hexstrut -root \n\ +- GL: hydrostat -root \n\ +- GL: raverhoop -root \n\ +- GL: splodesic -root \n\ +- GL: unicrud -root \n\ + + +pointerPollTime: 0:00:05 +pointerHysteresis: 10 +windowCreationTimeout:0:00:30 +initialDelay: 0:00:00 +GetViewPortIsFullOfLies:False +procInterrupts: True +xinputExtensionDev: False +overlayStderr: True +authWarningSlack: 20 + diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/ssh/sshd_config b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/ssh/sshd_config new file mode 100644 index 0000000..84e3114 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/ssh/sshd_config @@ -0,0 +1,127 @@ +# $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $ + +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin + +# 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. + +Protocol 2 +#Port 22 +AddressFamily inet +#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 +Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr +MACs hmac-sha2-256,hmac-sha2-512 +KexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256 +#RekeyLimit default none + +# Logging +#SyslogFacility AUTH +LogLevel INFO + +# Authentication: + +LoginGraceTime 60 +PermitRootLogin no +StrictModes yes +MaxAuthTries 4 +#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 yes +# Don't read the user's ~/.rhosts and ~/.shosts files +IgnoreRhosts yes + +# To disable tunneled clear text passwords, change to no here! +PasswordAuthentication no +PermitEmptyPasswords no + +# Change to yes to enable challenge-response passwords (beware issues with +# some PAM modules and threads) +ChallengeResponseAuthentication 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 ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +UsePAM yes + +RhostsRSAAuthentication no +#AllowAgentForwarding yes +#AllowTcpForwarding yes +#GatewayPorts no +X11Forwarding no +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PermitTTY yes +PrintMotd no +PrintLastLog yes +#TCPKeepAlive yes +#UseLogin no +UsePrivilegeSeparation sandbox +PermitUserEnvironment no +Compression no +ClientAliveInterval 300 +ClientAliveCountMax 0 +#UseDNS no +#PidFile /var/run/sshd.pid +#MaxStartups 10:30:100 +#PermitTunnel no +#ChrootDirectory none +#VersionAddendum none + +Banner=/etc/issue + +# 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/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/sudoers.d/nic_capture_setup b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/sudoers.d/nic_capture_setup new file mode 100644 index 0000000..a9fc6bc --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/sudoers.d/nic_capture_setup @@ -0,0 +1,2 @@ +# allow unprivileged mgmt of interface flags via ethtool prior to starting capture +%netdev ALL=(root) NOPASSWD: /usr/local/bin/nic-capture-setup.sh diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/sudoers.d/ufw_moloch_viewer b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/sudoers.d/ufw_moloch_viewer new file mode 100644 index 0000000..55f79d5 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/sudoers.d/ufw_moloch_viewer @@ -0,0 +1,2 @@ +# allow unprivileged mgmt of UFW access for the local Arkime viewer instance +%netdev ALL=(root) NOPASSWD: /usr/local/bin/ufw_allow_viewer.sh diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/xdg/lxsession/LXDE/autostart b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/xdg/lxsession/LXDE/autostart new file mode 100644 index 0000000..ac907df --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/etc/xdg/lxsession/LXDE/autostart @@ -0,0 +1,5 @@ +@lxpanel --profile LXDE +@pcmanfm --desktop --profile LXDE +@xscreensaver -no-splash +@/usr/local/bin/capture-format-wait.sh +@/opt/firefox/firefox --setDefaultBrowser --no-remote --private --kiosk http://127.0.0.1:5000 diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/opt/zeek/bin/zeek.sh b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/opt/zeek/bin/zeek.sh new file mode 100755 index 0000000..0ffc4b9 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/opt/zeek/bin/zeek.sh @@ -0,0 +1,126 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# configuration variables may be specified in control_vars.conf rather than on the command line +CONTROL_VARS_FILE="control_vars.conf" + +# script usd for file extraction +EXTRACTOR_ZEEK_SCRIPT="extractor.zeek" + +# get utilities for finding default zeek path and executable +[[ "$(uname -s)" = 'Darwin' ]] && REALPATH=grealpath || REALPATH=realpath +[[ "$(uname -s)" = 'Darwin' ]] && DIRNAME=gdirname || DIRNAME=dirname +if ! (type "$REALPATH" && type "$DIRNAME") > /dev/null; then + echo "$(basename "${BASH_SOURCE[0]}") requires $REALPATH and $DIRNAME" + exit 1 +fi +export SCRIPT_PATH="$($DIRNAME $($REALPATH -e "${BASH_SOURCE[0]}"))" + +# source configuration variables file if found (precedence: pwd, script directory, /opt/sensor/sensor_ctl) +if [[ -r ./"$CONTROL_VARS_FILE" ]]; then + source ./"$CONTROL_VARS_FILE" +elif [[ -r "$SCRIPT_PATH"/"$CONTROL_VARS_FILE" ]]; then + source "$SCRIPT_PATH"/"$CONTROL_VARS_FILE" +elif [[ -r /opt/sensor/sensor_ctl/"$CONTROL_VARS_FILE" ]]; then + source /opt/sensor/sensor_ctl/"$CONTROL_VARS_FILE" +fi + +# determine location of zeek executable and relative installation path +ZEEK_EXE="$(which zeek)" +[[ ! -x "$ZEEK_EXE" ]] && ZEEK_EXE="/opt/zeek/bin/zeek" +[[ ! -x "$ZEEK_EXE" ]] && ZEEK_EXE="/usr/bin/zeek" +[[ ! -x "$ZEEK_EXE" ]] && ZEEK_EXE="/usr/local/bin/zeek" +if [[ ! -x "$ZEEK_EXE" ]]; then + echo "zeek executable not found or not executable" + exit 1 +fi +ZEEK_INSTALL_PATH="$(realpath "$(dirname "$(realpath "$ZEEK_EXE")")"/..)" +if [[ ! -d "$ZEEK_INSTALL_PATH" ]]; then + echo "zeek root path \"$ZEEK_INSTALL_PATH\" does not exist" + exit 1 +fi + +# allow user-specified overrides for interface, file extraction mode, and destination log path +while getopts i:p:f:d:o: opts; do + case ${opts} in + i) CAPTURE_INTERFACE=${OPTARG} ;; + p) PCAP_FILE=${OPTARG} ;; + f) ZEEK_EXTRACTOR_MODE=${OPTARG} ;; + d) ZEEK_LOG_PATH=${OPTARG} ;; + o) ZEEK_EXTRACTOR_OVERRIDE_FILE=${OPTARG} ;; + esac +done + +# capture interface or PCAP file *must* be specified +if [[ -n $PCAP_FILE ]] && [[ -r $PCAP_FILE ]] ; then + ZEEK_INPUT_FLAG="-r" + ZEEK_INPUT_OBJECT=$PCAP_FILE +elif [[ -n $CAPTURE_INTERFACE ]] ; then + ZEEK_INPUT_FLAG="-i" + ZEEK_INPUT_OBJECT=$CAPTURE_INTERFACE +else + echo "Zeek capture interface (via \$CAPTURE_INTERFACE or -i ) or PCAP file (via -p ) not specified" + exit 1 +fi + +# default file extraction mode is "do not extract files" +[[ -z $ZEEK_EXTRACTOR_MODE ]] && ZEEK_EXTRACTOR_MODE="none" +export ZEEK_EXTRACTOR_MODE + +# if zeek log path is unspecified, write logs to pwd +[[ -z $ZEEK_LOG_PATH ]] && ZEEK_LOG_PATH=. +ZEEK_LOG_PATH="$($REALPATH "$ZEEK_LOG_PATH")" + +# if file extraction is enabled and file extraction script exists, set up the argument for zeek to use it +ZEEK_EXTRACTOR_SCRIPT="$ZEEK_INSTALL_PATH"/share/zeek/site/"$EXTRACTOR_ZEEK_SCRIPT" +([[ ! -r "$ZEEK_EXTRACTOR_SCRIPT" ]] || [[ "$ZEEK_EXTRACTOR_MODE" = "none" ]]) && ZEEK_EXTRACTOR_SCRIPT="" +([[ ! -r "$ZEEK_EXTRACTOR_OVERRIDE_FILE" ]] || [[ -z "$ZEEK_EXTRACTOR_SCRIPT" ]] || [[ ! "$ZEEK_EXTRACTOR_MODE" = "mapped" ]]) && ZEEK_EXTRACTOR_OVERRIDE_FILE="" + +# zeek ruleset is loaded from control_vars.conf if it existed, or "local" if not +[[ -z $ZEEK_RULESET ]] && ZEEK_RULESET="local" + +ARCHIVE_PATH="$ZEEK_LOG_PATH/archived/$(date +"%Y-%m-%d-%H-%M-%S")" +mkdir -p "$ZEEK_LOG_PATH"/extract_files "$ARCHIVE_PATH" +pushd "$ZEEK_LOG_PATH" >/dev/null 2>&1 + +function finish { + echo "\"$ZEEK_EXE\" exited" >&2 + pushd "$ZEEK_LOG_PATH" >/dev/null 2>&1 + + #################################################################################### + # rename/move current zeek log files to an archive directory + #################################################################################### + + # we don't want to interfere with files being used by other processes (except filebeat, screw that guy) + mapfile -t OPEN_FILES < <( lsof -u "$USER" -a +D "$(pwd)" -a -d 0-65535 2>/dev/null | grep -Pv "^[\w-]+beat" | tail -n +2 | awk '{print $9}' | sed "s@^$ZEEK_LOG_PATH/@@" ) + declare -A OPEN_FILES_MAP + for OPEN_FILE in ${OPEN_FILES[@]}; do + OPEN_FILES_MAP["$OPEN_FILE"]=1 + done + + shopt -s nullglob + for LOG_FILE in *; do + # process only files, and don't mess with open files (see OPEN_FILES declaration above) + if [[ ! -d "$LOG_FILE" ]] && [[ -z ${OPEN_FILES_MAP[$LOG_FILE]} ]]; then + mv -v "$LOG_FILE" "$ARCHIVE_PATH"/ + fi + done + popd >/dev/null 2>&1 + + # we don't need to hang on to the persistent .state directory + [[ -d "$ZEEK_LOG_PATH"/.state ]] && sleep 1 && (pidof zeek >/dev/null 2>&1 || rm -rf "$ZEEK_LOG_PATH"/.state) +} +trap finish EXIT + +# execute zeek +echo "Running \"$ZEEK_EXE\"..." >&2 +if [[ -n "$ZEEK_EXTRACTOR_SCRIPT" ]] && [[ -n "$ZEEK_EXTRACTOR_OVERRIDE_FILE" ]]; then + "$ZEEK_EXE" -C $ZEEK_INPUT_FLAG "$ZEEK_INPUT_OBJECT" "$ZEEK_RULESET" "$ZEEK_EXTRACTOR_SCRIPT" "$ZEEK_EXTRACTOR_OVERRIDE_FILE" +elif [[ -n "$ZEEK_EXTRACTOR_SCRIPT" ]]; then + "$ZEEK_EXE" -C $ZEEK_INPUT_FLAG "$ZEEK_INPUT_OBJECT" "$ZEEK_RULESET" "$ZEEK_EXTRACTOR_SCRIPT" +else + "$ZEEK_EXE" -C $ZEEK_INPUT_FLAG "$ZEEK_INPUT_OBJECT" "$ZEEK_RULESET" +fi + +popd >/dev/null 2>&1 diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/opt/zeek/bin/zeekdeploy.sh b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/opt/zeek/bin/zeekdeploy.sh new file mode 100755 index 0000000..591f092 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/opt/zeek/bin/zeekdeploy.sh @@ -0,0 +1,206 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# get utilities for finding default zeek path and executable +[[ "$(uname -s)" = 'Darwin' ]] && REALPATH=grealpath || REALPATH=realpath +[[ "$(uname -s)" = 'Darwin' ]] && DIRNAME=gdirname || DIRNAME=dirname +if ! (type "$REALPATH" && type "$DIRNAME") > /dev/null; then + echo "$(basename "${BASH_SOURCE[0]}") requires $REALPATH and $DIRNAME" + exit 1 +fi +export SCRIPT_PATH="$($DIRNAME $($REALPATH -e "${BASH_SOURCE[0]}"))" + +# control_vars.conf file must be specified as argument to script or be found in an expected place +# source configuration variables file if found (precedence: pwd, script directory, /opt/sensor/sensor_ctl) +if [[ -n "$1" ]]; then + source "$1" +else + CONTROL_VARS_FILE="control_vars.conf" + if [[ -r ./"$CONTROL_VARS_FILE" ]]; then + source ./"$CONTROL_VARS_FILE" + elif [[ -r "$SCRIPT_PATH"/"$CONTROL_VARS_FILE" ]]; then + source "$SCRIPT_PATH"/"$CONTROL_VARS_FILE" + elif [[ -r /opt/sensor/sensor_ctl/"$CONTROL_VARS_FILE" ]]; then + source /opt/sensor/sensor_ctl/"$CONTROL_VARS_FILE" + fi +fi + +# capture interface(s) *must* be specified +if [[ -z $CAPTURE_INTERFACE ]] ; then + echo "Zeek capture interface(s) (via \$CAPTURE_INTERFACE) not specified" + exit 1 +fi + +# do we have AF_PACKET support in the kernel? true if > 0 +AF_PACKET_SUPPORT=$(grep -c -x 'CONFIG_PACKET=[ym]' "/boot/config-$(uname -r)") + +# determine location of zeekctl script and relative installation path +ZEEK_CTL="$(which zeekctl)" +[[ ! -x "$ZEEK_CTL" ]] && ZEEK_CTL="/opt/zeek/bin/zeekctl" +[[ ! -x "$ZEEK_CTL" ]] && ZEEK_CTL="/usr/bin/zeekctl" +[[ ! -x "$ZEEK_CTL" ]] && ZEEK_CTL="/usr/local/bin/zeekctl" +if [[ ! -x "$ZEEK_CTL" ]]; then + echo "zeekctl script not found or not executable" + exit 1 +fi +ZEEK_INSTALL_PATH="$(realpath "$(dirname "$(realpath "$ZEEK_CTL")")"/..)" +if [[ ! -d "$ZEEK_INSTALL_PATH" ]]; then + echo "zeek root path \"$ZEEK_INSTALL_PATH\" does not exist" + exit 1 +fi + +# default file extraction mode is "do not extract files" +[[ -z $ZEEK_EXTRACTOR_MODE ]] && ZEEK_EXTRACTOR_MODE="none" + +# some other defaults +[[ -z $ZEEK_LB_PROCS ]] && ZEEK_LB_PROCS="1" +[[ -z $ZEEK_LB_METHOD ]] && ZEEK_LB_METHOD="custom" +[[ -z $ZEEK_AF_PACKET_BUFFER_SIZE ]] && ZEEK_AF_PACKET_BUFFER_SIZE="$(echo "64*1024*1024" | bc)" + +# if zeek log path is unspecified, write logs to pwd +[[ -z $ZEEK_LOG_PATH ]] && ZEEK_LOG_PATH=. +ZEEK_LOG_PATH="$($REALPATH "$ZEEK_LOG_PATH")" +ARCHIVE_PATH="$ZEEK_LOG_PATH/logs" +WORK_PATH="$ZEEK_LOG_PATH/spool" +TMP_PATH="$ZEEK_INSTALL_PATH/spool/tmp" +EXTRACT_FILES_PATH="$ZEEK_LOG_PATH/extract_files" +mkdir -p "$ARCHIVE_PATH" "$WORK_PATH" "$EXTRACT_FILES_PATH" "$TMP_PATH" +export TMP="$TMP_PATH" + +# if file extraction is enabled and file extraction script exists, set up the argument for zeek to use it +[[ -z $ZEEK_RULESET ]] && ZEEK_RULESET="local" +EXTRACTOR_ZEEK_SCRIPT="extractor.zeek" +ZEEK_EXTRACTOR_SCRIPT="$ZEEK_INSTALL_PATH"/share/zeek/site/"$EXTRACTOR_ZEEK_SCRIPT" +([[ ! -r "$ZEEK_EXTRACTOR_SCRIPT" ]] || [[ "$ZEEK_EXTRACTOR_MODE" = "none" ]]) && ZEEK_EXTRACTOR_SCRIPT="" +([[ ! -r "$ZEEK_EXTRACTOR_OVERRIDE_FILE" ]] || [[ -z "$ZEEK_EXTRACTOR_SCRIPT" ]] || [[ ! "$ZEEK_EXTRACTOR_MODE" = "mapped" ]]) && ZEEK_EXTRACTOR_OVERRIDE_FILE="" + +# configure zeek cfg files +pushd "$ZEEK_INSTALL_PATH"/etc >/dev/null 2>&1 + +# make replacements for variables in zeekctl.cfg +ZEEK_LOG_ROTATE=3600 +ZEEK_LOG_EXPIRE=0 +ZEEK_STATS=0 +sed -r -i "s/(LogRotationInterval)\s*=\s*.*/\1 = $ZEEK_LOG_ROTATE/" ./zeekctl.cfg +sed -r -i "s/(LogExpireInterval)\s*=\s*.*/\1 = $ZEEK_LOG_EXPIRE/" ./zeekctl.cfg +if [[ -n "$ZEEK_EXTRACTOR_SCRIPT" ]] && [[ -n "$ZEEK_EXTRACTOR_OVERRIDE_FILE" ]]; then + sed -r -i "s@(SitePolicyScripts)\s*=\s*.*@\1 = $ZEEK_RULESET $ZEEK_EXTRACTOR_SCRIPT $ZEEK_EXTRACTOR_OVERRIDE_FILE@" ./zeekctl.cfg +elif [[ -n "$ZEEK_EXTRACTOR_SCRIPT" ]]; then + sed -r -i "s@(SitePolicyScripts)\s*=\s*.*@\1 = $ZEEK_RULESET $ZEEK_EXTRACTOR_SCRIPT@" ./zeekctl.cfg +else + sed -r -i "s@(SitePolicyScripts)\s*=\s*.*@\1 = $ZEEK_RULESET@" ./zeekctl.cfg +fi +sed -r -i "s@(LogDir)\s*=\s*.*@\1 = $ARCHIVE_PATH@" ./zeekctl.cfg +sed -r -i "s@(SpoolDir)\s*=\s*.*@\1 = $WORK_PATH@" ./zeekctl.cfg + +# completely rewrite node.cfg for one worker per interface +# see idaholab/Malcolm#36 for details on fine-tuning + +rm -f ./node.cfg + +cat << 'EOF' > ./node.cfg +# +# DO NOT EDIT THIS FILE +# +# It is automatically generated by /opt/zeek/bin/zeekdeploy.sh +# +EOF + +echo "[logger]" >> ./node.cfg +echo "type=logger" >> ./node.cfg +echo "host=localhost" >> ./node.cfg +[[ -n $ZEEK_PIN_CPUS_LOGGER ]] && \ + echo "pin_cpus=$ZEEK_PIN_CPUS_LOGGER" >> ./node.cfg +echo "" >> ./node.cfg + +echo "[manager]" >> ./node.cfg +echo "type=manager" >> ./node.cfg +echo "host=localhost" >> ./node.cfg +[[ -n $ZEEK_PIN_CPUS_MANAGER ]] && \ + echo "pin_cpus=$ZEEK_PIN_CPUS_MANAGER" >> ./node.cfg +echo "" >> ./node.cfg + +echo "[proxy]" >> ./node.cfg +echo "type=proxy" >> ./node.cfg +echo "host=localhost" >> ./node.cfg +[[ -n $ZEEK_PIN_CPUS_PROXY ]] && \ + echo "pin_cpus=$ZEEK_PIN_CPUS_PROXY" >> ./node.cfg +echo "" >> ./node.cfg + +# number of zeek processes so far (logger, manager, proxy) +ZEEK_PROCS=3 + +# incrementing ID of current worker for config file +WORKER_ID=1 + +# AF_PACKET fanout ID (per-interface) +FANOUT_ID=1 + +# create a worker for each interface +# see idaholab/Malcolm#36 for details on fine-tuning +for IFACE in ${CAPTURE_INTERFACE//,/ }; do + + WORKER_CPU_PINS_VAR=ZEEK_PIN_CPUS_WORKER_${WORKER_ID} + WORKER_LB_PROCS_VAR=ZEEK_LB_PROCS_WORKER_${WORKER_ID} + # priority for worker's lb_procs: + if [[ -n "${!WORKER_LB_PROCS_VAR}" ]]; then + # 1. ZEEK_LB_PROCS_WORKER_n is explicitly specified + WORKER_LB_PROCS="${!WORKER_LB_PROCS_VAR}" + elif [[ -n "${!WORKER_CPU_PINS_VAR}" ]]; then + # 2. ZEEK_PIN_CPUS_WORKER_n is specified, count the values + WORKER_LB_PROCS="$(echo "${!WORKER_CPU_PINS_VAR}" | awk -F',' '{print NF}')" + else + # default to $ZEEK_LB_PROCS + WORKER_LB_PROCS="$ZEEK_LB_PROCS" + fi + + cat << EOF >> ./node.cfg + +[worker-$WORKER_ID] +type=worker +host=localhost +interface=$IFACE +env_vars=ZEEK_EXTRACTOR_MODE=$ZEEK_EXTRACTOR_MODE,ZEEK_EXTRACTOR_PATH=$EXTRACT_FILES_PATH/,TMP=$TMP_PATH +EOF + # if af_packet is available in the kernel, write it out as well + if [ $AF_PACKET_SUPPORT -gt 0 ] && [ $WORKER_LB_PROCS -gt 0 ]; then + echo "lb_procs=$WORKER_LB_PROCS" >> ./node.cfg + echo "lb_method=$ZEEK_LB_METHOD" >> ./node.cfg + [[ -n "${!WORKER_CPU_PINS_VAR}" ]] && \ + echo "pin_cpus=${!WORKER_CPU_PINS_VAR}" >> ./node.cfg + echo "af_packet_fanout_id=$FANOUT_ID" >> ./node.cfg + echo "af_packet_fanout_mode=AF_Packet::FANOUT_HASH" >> ./node.cfg + echo "af_packet_buffer_size=$ZEEK_AF_PACKET_BUFFER_SIZE" >> ./node.cfg + fi + + WORKER_ID=$((WORKER_ID+1)) + FANOUT_ID=$((FANOUT_ID+1)) + ZEEK_PROCS=$((ZEEK_PROCS+1)) +done + +# we'll assume we didn't mess with networks.cfg, leave it alone + +popd >/dev/null 2>&1 + +pushd "$ZEEK_LOG_PATH" >/dev/null 2>&1 + +function finish { + echo "Stopping via \"$ZEEK_CTL\"" >&2 + "$ZEEK_CTL" stop + rm -f "$TMP_PATH"/* +} +trap finish EXIT + +# execute zeekctl +echo "Running via \"$ZEEK_CTL\"..." >&2 +"$ZEEK_CTL" deploy + +# wait until interrupted (or somehow if zeek dies on its own) +while [ $("$ZEEK_CTL" status | tail -n +2 | grep -P "localhost\s+running\s+\d+" | wc -l) -ge $ZEEK_PROCS ]; do + for i in `seq 1 10`; do + sleep 1 + done +done + +popd >/dev/null 2>&1 diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/opt/zeek/share/zeek/site/extractor.zeek b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/opt/zeek/share/zeek/site/extractor.zeek new file mode 100644 index 0000000..7c1bbba --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/opt/zeek/share/zeek/site/extractor.zeek @@ -0,0 +1,47 @@ +#!/usr/bin/env zeek + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +@load ./extractor_params + +global extractor_extract_mode = (getenv("ZEEK_EXTRACTOR_MODE") == "") ? extractor_extract_known : getenv("ZEEK_EXTRACTOR_MODE"); +global extractor_max_size = (getenv("EXTRACTED_FILE_MAX_BYTES") == "") ? extractor_max_size_default : to_count(getenv("EXTRACTED_FILE_MAX_BYTES")); +redef FileExtract::prefix = (getenv("ZEEK_EXTRACTOR_PATH") == "") ? "./extract_files/" : getenv("ZEEK_EXTRACTOR_PATH"); + +event file_sniff(f: fa_file, meta: fa_metadata) { + + # extract all files OR + if ((extractor_extract_mode == extractor_extract_all) || + # we don't know the mime type and we always want to extract unknowns OR + ((! meta?$mime_type) && extractor_always_extract_unknown) || + # we only want to extract knowns and we know the mime type OR + ((extractor_extract_mode == extractor_extract_known) && meta?$mime_type) || + # we only want to extract mime->extension mapped files, we know the mimetype, and the mime type is mapped + ((extractor_extract_mode == extractor_extract_mapped) && meta?$mime_type && (meta$mime_type in extractor_mime_to_ext_map))) { + + local ext: string = ""; + if (! meta?$mime_type) + ext = extractor_mime_to_ext_map["default"]; + else if (meta$mime_type in extractor_mime_to_ext_map) + ext = extractor_mime_to_ext_map[meta$mime_type]; + else + ext = split_string(meta$mime_type, /\//)[1]; + + local ftime: time = 0.0; + if (! f?$last_active) + ftime = f$last_active; + else + ftime = network_time(); + + local uid: string = "unknown"; + if (f?$conns) + # todo this is a little hacky, figure out how to do this better + for (cid in f$conns) { + uid = f$conns[cid]$uid; + break; + } + + local fname = fmt("%s-%s-%s-%s.%s", f$source, f$id, uid, strftime("%Y%m%d%H%M%S", ftime), ext); + Files::add_analyzer(f, Files::ANALYZER_EXTRACT, [$extract_filename=fname, $extract_limit=extractor_max_size]); + } +} diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/opt/zeek/share/zeek/site/extractor_params.zeek b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/opt/zeek/share/zeek/site/extractor_params.zeek new file mode 100644 index 0000000..98718d7 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/opt/zeek/share/zeek/site/extractor_params.zeek @@ -0,0 +1,939 @@ +#!/usr/bin/env zeek + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +export { + const extractor_extract_none = "none" &redef; + const extractor_extract_known = "known" &redef; + const extractor_extract_mapped = "mapped" &redef; + const extractor_extract_all = "all" &redef; + + const extractor_always_extract_unknown = F &redef; + + const extractor_max_size_default = 268435456 &redef; + + # wget -qO- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types | egrep -v ^# | awk '{ for (i=2; i<=NF; i++) {print "[\x22"$1"\x22]"" = ""\x22"$i"\x22,"}}' | sort + const extractor_mime_to_ext_map : table[string] of string = { + ["application/acad"]= "dwg", + ["application/andrew-inset"]= "ez", + ["application/annodex"]= "anx", + ["application/applixware"]= "aw", + ["application/atom+xml"]= "atom", + ["application/atomcat+xml"]= "atomcat", + ["application/atomsvc+xml"]= "atomsvc", + ["application/binary"]= "bin", + ["application/ccxml+xml"]= "ccxml", + ["application/cdmi-capability"]= "cdmia", + ["application/cdmi-container"]= "cdmic", + ["application/cdmi-domain"]= "cdmid", + ["application/cdmi-object"]= "cdmio", + ["application/cdmi-queue"]= "cdmiq", + ["application/cu-seeme"]= "cu", + ["application/davmount+xml"]= "davmount", + ["application/directx"]= "x", + ["application/docbook+xml"]= "dbk", + ["application/dssc+der"]= "dssc", + ["application/dssc+xml"]= "xdssc", + ["application/ecmascript"]= "es", + ["application/emma+xml"]= "emma", + ["application/envoy"]= "evy", + ["application/epub+zip"]= "epub", + ["application/etl"]= "etl", + ["application/exi"]= "exi", + ["application/font-sfnt"]= "ttf", + ["application/fractals"]= "fif", + ["application/fsharp-script"]= "fsscript", + ["application/futuresplash"]= "spl", + ["application/gml+xml"]= "gml", + ["application/gpx+xml"]= "gpx", + ["application/gxf"]= "gxf", + ["application/hta"]= "hta", + ["application/hyperstudio"]= "stk", + ["application/inkml+xml"]= "inkml", + ["application/internet-property-stream"]= "acx", + ["application/ipfix"]= "ipfix", + ["application/java-archive"]= "jar", + ["application/java-serialized-object"]= "ser", + ["application/java-vm"]= "class", + ["application/javascript"]= "js", + ["application/json"]= "json", + ["application/jsonml+json"]= "jsonml", + ["application/liquidmotion"]= "jck", + ["application/lost+xml"]= "lostxml", + ["application/mac-binhex40"]= "hqx", + ["application/mac-compactpro"]= "cpt", + ["application/mads+xml"]= "mads", + ["application/marc"]= "mrc", + ["application/marcxml+xml"]= "mrcx", + ["application/mathematica"]= "ma", + ["application/mathml+xml"]= "mathml", + ["application/mbox"]= "mbox", + ["application/mediaservercontrol+xml"]= "mscml", + ["application/metalink+xml"]= "metalink", + ["application/metalink4+xml"]= "meta4", + ["application/mets+xml"]= "mets", + ["application/mods+xml"]= "mods", + ["application/mp21"]= "mp21", + ["application/mp4"]= "mp4s", + ["application/mpeg"]= "amc", + ["application/ms-vsi"]= "vsi", + ["application/msaccess"]= "accdb", + ["application/msaccess.addin"]= "accda", + ["application/msaccess.cab"]= "accdc", + ["application/msaccess.ftemplate"]= "accft", + ["application/msaccess.runtime"]= "accdr", + ["application/msaccess.webapplication"]= "accdw", + ["application/msexcel"]= "xls", + ["application/mspowerpoint"]= "ppt", + ["application/msword"]= "doc", + ["application/mxf"]= "mxf", + ["application/octet-stream"]= "bin", + ["application/oda"]= "oda", + ["application/oebps-package+xml"]= "opf", + ["application/ogg"]= "ogx", + ["application/olescript"]= "axs", + ["application/omdoc+xml"]= "omdoc", + ["application/onenote"]= "one", + ["application/opensearchdescription+xml"]= "osdx", + ["application/oxps"]= "oxps", + ["application/patch-ops-error+xml"]= "xer", + ["application/pdf"]= "pdf", + ["application/pgp-encrypted"]= "pgp", + ["application/pgp-signature"]= "pgp", + ["application/pics-rules"]= "prf", + ["application/pkcs10"]= "p10", + ["application/pkcs7-mime"]= "p7c", + ["application/pkcs7-signature"]= "p7s", + ["application/pkcs8"]= "p8", + ["application/pkix-attr-cert"]= "ac", + ["application/pkix-cert"]= "cer", + ["application/pkix-crl"]= "crl", + ["application/pkix-pkipath"]= "pkipath", + ["application/pkixcmp"]= "pki", + ["application/pls+xml"]= "pls", + ["application/postscript"]= "ps", + ["application/PowerShell"]= "psc1", + ["application/prs.cww"]= "cww", + ["application/pskc+xml"]= "pskcxml", + ["application/rat-file"]= "rat", + ["application/rdf+xml"]= "rdf", + ["application/reginfo+xml"]= "rif", + ["application/relax-ng-compact-syntax"]= "rnc", + ["application/resource-lists+xml"]= "rl", + ["application/resource-lists-diff+xml"]= "rld", + ["application/rls-services+xml"]= "rs", + ["application/rpki-ghostbusters"]= "gbr", + ["application/rpki-manifest"]= "mft", + ["application/rpki-roa"]= "roa", + ["application/rsd+xml"]= "rsd", + ["application/rss+xml"]= "rss", + ["application/rtf"]= "rtf", + ["application/sbml+xml"]= "sbml", + ["application/scvp-cv-request"]= "scq", + ["application/scvp-cv-response"]= "scs", + ["application/scvp-vp-request"]= "spq", + ["application/scvp-vp-response"]= "spp", + ["application/sdp"]= "sdp", + ["application/set-payment-initiation"]= "setpay", + ["application/set-registration-initiation"]= "setreg", + ["application/shf+xml"]= "shf", + ["application/smil+xml"]= "smil", + ["application/sparql-query"]= "rq", + ["application/sparql-results+xml"]= "srx", + ["application/srgs"]= "gram", + ["application/srgs+xml"]= "grxml", + ["application/sru+xml"]= "sru", + ["application/ssdl+xml"]= "ssdl", + ["application/ssml+xml"]= "ssml", + ["application/step"]= "step", + ["application/streamingmedia"]= "ssm", + ["application/tei+xml"]= "tei", + ["application/thraud+xml"]= "tfi", + ["application/timestamped-data"]= "tsd", + ["application/vnd.3gpp.pic-bw-large"]= "plb", + ["application/vnd.3gpp.pic-bw-small"]= "psb", + ["application/vnd.3gpp.pic-bw-var"]= "pvb", + ["application/vnd.3gpp2.tcap"]= "tcap", + ["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"]= "acutc", + ["application/vnd.adobe.air-application-installer-package+zip"]= "air", + ["application/vnd.adobe.formscentral.fcdt"]= "fcdt", + ["application/vnd.adobe.fxp"]= "fxp", + ["application/vnd.adobe.xdp+xml"]= "xdp", + ["application/vnd.adobe.xfdf"]= "xfdf", + ["application/vnd.ahead.space"]= "ahead", + ["application/vnd.airzip.filesecure.azf"]= "azf", + ["application/vnd.airzip.filesecure.azs"]= "azs", + ["application/vnd.amazon.ebook"]= "azw", + ["application/vnd.americandynamics.acc"]= "acc", + ["application/vnd.amiga.ami"]= "ami", + ["application/vnd.android.package-archive"]= "apk", + ["application/vnd.anser-web-certificate-issue-initiation"]= "cii", + ["application/vnd.anser-web-funds-transfer-initiation"]= "fti", + ["application/vnd.antix.game-component"]= "atx", + ["application/vnd.apple.installer+xml"]= "mpkg", + ["application/vnd.apple.mpegurl"]= "m3u8", + ["application/vnd.aristanetworks.swi"]= "swi", + ["application/vnd.astraea-software.iota"]= "iota", + ["application/vnd.audiograph"]= "aep", + ["application/vnd.blueice.multipass"]= "mpm", + ["application/vnd.bmi"]= "bmi", + ["application/vnd.businessobjects"]= "rep", + ["application/vnd.chemdraw+xml"]= "cdxml", + ["application/vnd.chipnuts.karaoke-mmd"]= "mmd", + ["application/vnd.cinderella"]= "cdy", + ["application/vnd.claymore"]= "cla", + ["application/vnd.cloanto.rp9"]= "rp9", + ["application/vnd.clonk.c4group"]= "c4g", + ["application/vnd.cluetrust.cartomobile-config"]= "c11amc", + ["application/vnd.cluetrust.cartomobile-config-pkg"]= "c11amz", + ["application/vnd.commonspace"]= "csp", + ["application/vnd.contact.cmsg"]= "cdbcmsg", + ["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.ctc-posml"]= "pml", + ["application/vnd.cups-ppd"]= "ppd", + ["application/vnd.curl.car"]= "car", + ["application/vnd.curl.pcurl"]= "pcurl", + ["application/vnd.dart"]= "dart", + ["application/vnd.data-vision.rdz"]= "rdz", + ["application/vnd.dece.data"]= "uvd", + ["application/vnd.dece.ttml+xml"]= "uvt", + ["application/vnd.dece.unspecified"]= "uvx", + ["application/vnd.dece.zip"]= "uvz", + ["application/vnd.denovo.fcselayout-link"]= "fe_launch", + ["application/vnd.dna"]= "dna", + ["application/vnd.dolby.mlp"]= "mlp", + ["application/vnd.dpgraph"]= "dpg", + ["application/vnd.dreamfactory"]= "dfac", + ["application/vnd.ds-keypoint"]= "kpxx", + ["application/vnd.dvb.ait"]= "ait", + ["application/vnd.dvb.service"]= "svc", + ["application/vnd.dynageo"]= "geo", + ["application/vnd.ecowin.chart"]= "mag", + ["application/vnd.enliven"]= "nml", + ["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.eszigno3+xml"]= "es3", + ["application/vnd.ezpix-album"]= "ez2", + ["application/vnd.ezpix-package"]= "ez3", + ["application/vnd.fdf"]= "fdf", + ["application/vnd.fdsn.mseed"]= "mseed", + ["application/vnd.fdsn.seed"]= "seed", + ["application/vnd.flographit"]= "gph", + ["application/vnd.fluxtime.clip"]= "ftc", + ["application/vnd.framemaker"]= "fm", + ["application/vnd.frogans.fnc"]= "fnc", + ["application/vnd.frogans.ltf"]= "ltf", + ["application/vnd.fsc.weblaunch"]= "fsc", + ["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.ddd"]= "ddd", + ["application/vnd.fujixerox.docuworks"]= "xdw", + ["application/vnd.fujixerox.docuworks.binder"]= "xbd", + ["application/vnd.fuzzysheet"]= "fzs", + ["application/vnd.genomatix.tuxedo"]= "txd", + ["application/vnd.geogebra.file"]= "ggb", + ["application/vnd.geogebra.tool"]= "ggt", + ["application/vnd.geometry-explorer"]= "gex", + ["application/vnd.geonext"]= "gxt", + ["application/vnd.geoplan"]= "g2w", + ["application/vnd.geospace"]= "g3w", + ["application/vnd.gmx"]= "gmx", + ["application/vnd.google-earth.kml+xml"]= "kml", + ["application/vnd.google-earth.kmz"]= "kmz", + ["application/vnd.grafeq"]= "gqf", + ["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+xml"]= "hal", + ["application/vnd.handheld-entertainment+xml"]= "zmm", + ["application/vnd.hbci"]= "hbci", + ["application/vnd.hhe.lesson-player"]= "les", + ["application/vnd.hp-hpgl"]= "hpgl", + ["application/vnd.hp-hpid"]= "hpid", + ["application/vnd.hp-hps"]= "hps", + ["application/vnd.hp-jlyt"]= "jlt", + ["application/vnd.hp-pcl"]= "pcl", + ["application/vnd.hp-pclxl"]= "pclxl", + ["application/vnd.hydrostatix.sof-data"]= "sfd-hdstx", + ["application/vnd.ibm.minipay"]= "mpy", + ["application/vnd.ibm.modcap"]= "afp", + ["application/vnd.ibm.rights-management"]= "irm", + ["application/vnd.ibm.secure-container"]= "sc", + ["application/vnd.iccprofile"]= "icc", + ["application/vnd.igloader"]= "igl", + ["application/vnd.immervision-ivp"]= "ivp", + ["application/vnd.immervision-ivu"]= "ivu", + ["application/vnd.insors.igm"]= "igm", + ["application/vnd.intercon.formnet"]= "xpw", + ["application/vnd.intergeo"]= "i2g", + ["application/vnd.intu.qbo"]= "qbo", + ["application/vnd.intu.qfx"]= "qfx", + ["application/vnd.ipunplugged.rcprofile"]= "rcprofile", + ["application/vnd.irepository.package+xml"]= "irp", + ["application/vnd.is-xpr"]= "xpr", + ["application/vnd.isac.fcs"]= "fcs", + ["application/vnd.jam"]= "jam", + ["application/vnd.jcp.javame.midlet-rms"]= "rms", + ["application/vnd.jisp"]= "jisp", + ["application/vnd.joost.joda-archive"]= "joda", + ["application/vnd.kahootz"]= "ktz", + ["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"]= "kpt", + ["application/vnd.kde.kspread"]= "ksp", + ["application/vnd.kde.kword"]= "kwd", + ["application/vnd.kenameaapp"]= "htke", + ["application/vnd.kidspiration"]= "kia", + ["application/vnd.kinar"]= "kne", + ["application/vnd.koan"]= "skd", + ["application/vnd.kodak-descriptor"]= "sse", + ["application/vnd.las.las+xml"]= "lasxml", + ["application/vnd.llamagraphics.life-balance.desktop"]= "lbd", + ["application/vnd.llamagraphics.life-balance.exchange+xml"]= "lbe", + ["application/vnd.lotus-1-2-3"]= "123", + ["application/vnd.lotus-approach"]= "apr", + ["application/vnd.lotus-freelance"]= "pre", + ["application/vnd.lotus-notes"]= "nsf", + ["application/vnd.lotus-organizer"]= "org", + ["application/vnd.lotus-screencam"]= "scm", + ["application/vnd.lotus-wordpro"]= "lwp", + ["application/vnd.macports.portpkg"]= "portpkg", + ["application/vnd.mcd"]= "mcd", + ["application/vnd.medcalcdata"]= "mc1", + ["application/vnd.mediastation.cdkey"]= "cdkey", + ["application/vnd.mfer"]= "mwf", + ["application/vnd.mfmp"]= "mfm", + ["application/vnd.micrografx.flo"]= "flo", + ["application/vnd.micrografx.igx"]= "igx", + ["application/vnd.microsoft.portable-executable"]= "exe", + ["application/vnd.mif"]= "mif", + ["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.mozilla.xul+xml"]= "xul", + ["application/vnd.ms-artgalry"]= "cil", + ["application/vnd.ms-cab-compressed"]= "cab", + ["application/vnd.ms-excel"]= "xls", + ["application/vnd.ms-excel.addin.macroEnabled.12"]= "xlam", + ["application/vnd.ms-excel.addin.macroenabled.12"]= "xlam", + ["application/vnd.ms-excel.sheet.binary.macroEnabled.12"]= "xlsb", + ["application/vnd.ms-excel.sheet.binary.macroenabled.12"]= "xlsb", + ["application/vnd.ms-excel.sheet.macroEnabled.12"]= "xlsm", + ["application/vnd.ms-excel.sheet.macroenabled.12"]= "xlsm", + ["application/vnd.ms-excel.template.macroEnabled.12"]= "xltm", + ["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-mediapackage"]= "mpf", + ["application/vnd.ms-office.calx"]= "calx", + ["application/vnd.ms-officetheme"]= "thmx", + ["application/vnd.ms-outlook"]= "msg", + ["application/vnd.ms-pki.certstore"]= "sst", + ["application/vnd.ms-pki.pko"]= "pko", + ["application/vnd.ms-pki.seccat"]= "cat", + ["application/vnd.ms-pki.stl"]= "stl", + ["application/vnd.ms-powerpoint"]= "ppt", + ["application/vnd.ms-powerpoint.addin.macroEnabled.12"]= "ppam", + ["application/vnd.ms-powerpoint.addin.macroenabled.12"]= "ppam", + ["application/vnd.ms-powerpoint.presentation.macroEnabled.12"]= "pptm", + ["application/vnd.ms-powerpoint.presentation.macroenabled.12"]= "pptm", + ["application/vnd.ms-powerpoint.slide.macroEnabled.12"]= "sldm", + ["application/vnd.ms-powerpoint.slide.macroenabled.12"]= "sldm", + ["application/vnd.ms-powerpoint.slideshow.macroEnabled.12"]= "ppsm", + ["application/vnd.ms-powerpoint.slideshow.macroenabled.12"]= "ppsm", + ["application/vnd.ms-powerpoint.template.macroEnabled.12"]= "potm", + ["application/vnd.ms-powerpoint.template.macroenabled.12"]= "potm", + ["application/vnd.ms-project"]= "mpt", + ["application/vnd.ms-visio.viewer"]= "vdx", + ["application/vnd.ms-word.document.macroEnabled.12"]= "docm", + ["application/vnd.ms-word.document.macroenabled.12"]= "docm", + ["application/vnd.ms-word.template.macroEnabled.12"]= "dotm", + ["application/vnd.ms-word.template.macroenabled.12"]= "dotm", + ["application/vnd.ms-works"]= "wks", + ["application/vnd.ms-wpl"]= "wpl", + ["application/vnd.ms-xpsdocument"]= "xps", + ["application/vnd.mseq"]= "mseq", + ["application/vnd.musician"]= "mus", + ["application/vnd.muvee.style"]= "msty", + ["application/vnd.mynfc"]= "taglet", + ["application/vnd.neurolanguage.nlu"]= "nlu", + ["application/vnd.nitf"]= "nitf", + ["application/vnd.noblenet-directory"]= "nnd", + ["application/vnd.noblenet-sealer"]= "nns", + ["application/vnd.noblenet-web"]= "nnw", + ["application/vnd.nokia.n-gage.data"]= "ngdat", + ["application/vnd.nokia.n-gage.symbian.install"]= "n-gage", + ["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.oasis.opendocument.chart"]= "odc", + ["application/vnd.oasis.opendocument.chart-template"]= "otc", + ["application/vnd.oasis.opendocument.database"]= "odb", + ["application/vnd.oasis.opendocument.formula"]= "odf", + ["application/vnd.oasis.opendocument.formula-template"]= "odft", + ["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.olpc-sugar"]= "xo", + ["application/vnd.oma.dd2+xml"]= "dd2", + ["application/vnd.openofficeorg.extension"]= "oxt", + ["application/vnd.openxmlformats-officedocument.presentationml.presentation"]= "pptx", + ["application/vnd.openxmlformats-officedocument.presentationml.slide"]= "sldx", + ["application/vnd.openxmlformats-officedocument.presentationml.slideshow"]= "ppsx", + ["application/vnd.openxmlformats-officedocument.presentationml.template"]= "potx", + ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]= "xlsx", + ["application/vnd.openxmlformats-officedocument.spreadsheetml.template"]= "xltx", + ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"]= "docx", + ["application/vnd.openxmlformats-officedocument.wordprocessingml.template"]= "dotx", + ["application/vnd.osgeo.mapguide.package"]= "mgp", + ["application/vnd.osgi.dp"]= "dp", + ["application/vnd.osgi.subsystem"]= "esa", + ["application/vnd.palm"]= "pdb", + ["application/vnd.pawaafile"]= "paw", + ["application/vnd.pg.format"]= "str", + ["application/vnd.pg.osasli"]= "ei6", + ["application/vnd.picsel"]= "efif", + ["application/vnd.pmi.widget"]= "wg", + ["application/vnd.pocketlearn"]= "plf", + ["application/vnd.powerbuilder6"]= "pbd", + ["application/vnd.previewsystems.box"]= "box", + ["application/vnd.proteus.magazine"]= "mgz", + ["application/vnd.publishare-delta-tree"]= "qps", + ["application/vnd.pvi.ptid1"]= "ptid", + ["application/vnd.quark.quarkxpress"]= "qxt", + ["application/vnd.realvnc.bed"]= "bed", + ["application/vnd.recordare.musicxml"]= "mxl", + ["application/vnd.recordare.musicxml+xml"]= "musicxml", + ["application/vnd.rig.cryptonote"]= "cryptonote", + ["application/vnd.rim.cod"]= "cod", + ["application/vnd.rn-realmedia"]= "rm", + ["application/vnd.rn-realmedia-vbr"]= "rmvb", + ["application/vnd.rn-rn_music_package"]= "rmp", + ["application/vnd.route66.link66+xml"]= "link66", + ["application/vnd.sailingtracker.track"]= "st", + ["application/vnd.seemail"]= "see", + ["application/vnd.sema"]= "sema", + ["application/vnd.semd"]= "semd", + ["application/vnd.semf"]= "semf", + ["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.simtech-mindmapper"]= "twd", + ["application/vnd.smaf"]= "mmf", + ["application/vnd.smart.teacher"]= "teacher", + ["application/vnd.solent.sdkm+xml"]= "sdkm", + ["application/vnd.spotfire.dxp"]= "dxp", + ["application/vnd.spotfire.sfs"]= "sfs", + ["application/vnd.stardivision.calc"]= "sdc", + ["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.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", + ["application/vnd.svd"]= "svd", + ["application/vnd.symbian.install"]= "sis", + ["application/vnd.syncml+xml"]= "xsm", + ["application/vnd.syncml.dm+wbxml"]= "bdm", + ["application/vnd.syncml.dm+xml"]= "xdm", + ["application/vnd.tao.intent-module-archive"]= "tao", + ["application/vnd.tcpdump.pcap"]= "pcap", + ["application/vnd.tmobile-livetv"]= "tmo", + ["application/vnd.trid.tpt"]= "tpt", + ["application/vnd.triscape.mxs"]= "mxs", + ["application/vnd.trueapp"]= "tra", + ["application/vnd.ufdl"]= "ufdl", + ["application/vnd.uiq.theme"]= "utz", + ["application/vnd.umajin"]= "umj", + ["application/vnd.unity"]= "unityweb", + ["application/vnd.uoml+xml"]= "uoml", + ["application/vnd.vcx"]= "vcx", + ["application/vnd.visio"]= "vsd", + ["application/vnd.visionary"]= "vis", + ["application/vnd.vsf"]= "vsf", + ["application/vnd.wap.wbxml"]= "wbxml", + ["application/vnd.wap.wmlc"]= "wmlc", + ["application/vnd.wap.wmlscriptc"]= "wmlsc", + ["application/vnd.webturbo"]= "wtb", + ["application/vnd.wolfram.player"]= "nbp", + ["application/vnd.wordperfect"]= "wpd", + ["application/vnd.wqd"]= "wqd", + ["application/vnd.wt.stf"]= "stf", + ["application/vnd.xara"]= "xar", + ["application/vnd.xfdl"]= "xfdl", + ["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"]= "osfpvg", + ["application/vnd.yamaha.smaf-audio"]= "saf", + ["application/vnd.yamaha.smaf-phrase"]= "spf", + ["application/vnd.yellowriver-custom-menu"]= "cmp", + ["application/vnd.zul"]= "zir", + ["application/vnd.zzazz.deck+xml"]= "zaz", + ["application/voicexml+xml"]= "vxml", + ["application/vsix"]= "vsix", + ["application/wasm"]= "wasm", + ["application/widget"]= "wgt", + ["application/windows-library+xml"]= "library-ms", + ["application/windows-search-connector+xml"]= "searchConnector-ms", + ["application/winhlp"]= "hlp", + ["application/wlmoviemaker"]= "WLMP", + ["application/wsdl+xml"]= "wsdl", + ["application/wspolicy+xml"]= "wspolicy", + ["application/x-7z-compressed"]= "7z", + ["application/x-abiword"]= "abw", + ["application/x-ace-compressed"]= "ace", + ["application/x-apple-diskimage"]= "dmg", + ["application/x-authorware-bin"]= "aab", + ["application/x-authorware-map"]= "aam", + ["application/x-authorware-seg"]= "aas", + ["application/x-bcpio"]= "bcpio", + ["application/x-bittorrent"]= "torrent", + ["application/x-blorb"]= "blorb", + ["application/x-bridge-url"]= "adobebridge", + ["application/x-bzip"]= "bz", + ["application/x-bzip2"]= "bz2", + ["application/x-cbr"]= "cbr", + ["application/x-cdlink"]= "vcd", + ["application/x-cfs-compressed"]= "cfs", + ["application/x-chat"]= "chat", + ["application/x-chess-pgn"]= "pgn", + ["application/x-compress"]= "z", + ["application/x-compressed"]= "tgz", + ["application/x-conference"]= "nsc", + ["application/x-cpio"]= "cpio", + ["application/x-csh"]= "csh", + ["application/x-debian-package"]= "deb", + ["application/x-dgc-compressed"]= "dgc", + ["application/x-director"]= "dir", + ["application/x-doom"]= "wad", + ["application/x-dosexec"]= "exe", + ["application/x-dtbncx+xml"]= "ncx", + ["application/x-dtbook+xml"]= "dtb", + ["application/x-dtbresource+xml"]= "res", + ["application/x-dvi"]= "dvi", + ["application/x-dxf"]= "dxf", + ["application/x-elf"]= "elf", + ["application/x-envoy"]= "evy", + ["application/x-eva"]= "eva", + ["application/x-executable"]= "exe", + ["application/x-font-bdf"]= "bdf", + ["application/x-font-ghostscript"]= "gsf", + ["application/x-font-linux-psf"]= "psf", + ["application/x-font-pcf"]= "pcf", + ["application/x-font-snf"]= "snf", + ["application/x-font-type1"]= "pfm", + ["application/x-freearc"]= "arc", + ["application/x-futuresplash"]= "spl", + ["application/x-gca-compressed"]= "gca", + ["application/x-glulx"]= "ulx", + ["application/x-gnumeric"]= "gnumeric", + ["application/x-gramps-xml"]= "gramps", + ["application/x-gtar"]= "gtar", + ["application/x-gzip"]= "gz", + ["application/x-hdf"]= "hdf", + ["application/x-install-instructions"]= "install", + ["application/x-internet-signup"]= "isp", + ["application/x-iphone"]= "iii", + ["application/x-iso9660-image"]= "iso", + ["application/x-itunes-ipa"]= "ipa", + ["application/x-itunes-ipg"]= "ipg", + ["application/x-itunes-ipsw"]= "ipsw", + ["application/x-itunes-ite"]= "ite", + ["application/x-itunes-itlp"]= "itlp", + ["application/x-itunes-itms"]= "itms", + ["application/x-itunes-itpc"]= "itpc", + ["application/x-java-applet"]= "class", + ["application/x-java-jnlp-file"]= "jnlp", + ["application/x-koan"]= "skp", + ["application/x-latex"]= "latex", + ["application/x-lzh-compressed"]= "lzh", + ["application/x-mie"]= "mie", + ["application/x-miva-compiled"]= "mvc", + ["application/x-mmxp"]= "mxp", + ["application/x-mobipocket-ebook"]= "mobi", + ["application/x-ms-application"]= "application", + ["application/x-ms-installer"]= "msi", + ["application/x-ms-license"]= "slupkg-ms", + ["application/x-ms-manifest"]= "manifest", + ["application/x-ms-reader"]= "lit", + ["application/x-ms-shortcut"]= "lnk", + ["application/x-ms-vsto"]= "vsto", + ["application/x-ms-wmd"]= "wmd", + ["application/x-ms-wmz"]= "wmz", + ["application/x-ms-xbap"]= "xbap", + ["application/x-msaccess"]= "mdb", + ["application/x-msbinder"]= "obd", + ["application/x-mscardfile"]= "crd", + ["application/x-msclip"]= "clp", + ["application/x-msdos-program"]= "exe", + ["application/x-msdownload"]= "exe", + ["application/x-msmediaview"]= "mvb", + ["application/x-msmetafile"]= "wmf", + ["application/x-msmoney"]= "mny", + ["application/x-mspublisher"]= "pub", + ["application/x-msschedule"]= "scd", + ["application/x-msterminal"]= "trm", + ["application/x-mswrite"]= "wri", + ["application/x-netcdf"]= "cdf", + ["application/x-nzb"]= "nzb", + ["application/x-oleobject"]= "hhc", + ["application/x-pcapng"]= "pcap", + ["application/x-pe-app-32bit-i386"]= "exe", + ["application/x-perfmon"]= "pmw", + ["application/x-perl"]= "pl", + ["application/x-pkcs12"]= "p12", + ["application/x-pkcs7-certificates"]= "p7b", + ["application/x-pkcs7-certreqresp"]= "p7r", + ["application/x-podcast"]= "pcast", + ["application/x-python"]= "py", + ["application/x-quicktimeplayer"]= "qtl", + ["application/x-rar-compressed"]= "rar", + ["application/x-research-info-systems"]= "ris", + ["application/x-safari-safariextz"]= "safariextz", + ["application/x-safari-webarchive"]= "webarchive", + ["application/x-sgimb"]= "sgimb", + ["application/x-sh"]= "sh", + ["application/x-shar"]= "shar", + ["application/x-sharedlib"]= "lib", + ["application/x-shockwave-flash"]= "swf", + ["application/x-silverlight-app"]= "xap", + ["application/x-smaf"]= "mmf", + ["application/x-sql"]= "sql", + ["application/x-stuffit"]= "sit", + ["application/x-stuffitx"]= "sitx", + ["application/x-subrip"]= "srt", + ["application/x-sv4cpio"]= "sv4cpio", + ["application/x-sv4crc"]= "sv4crc", + ["application/x-t3vm-image"]= "t3", + ["application/x-tads"]= "gam", + ["application/x-tar"]= "tar", + ["application/x-tcl"]= "tcl", + ["application/x-tex"]= "tex", + ["application/x-tex-tfm"]= "tfm", + ["application/x-texinfo"]= "texinfo", + ["application/x-tgif"]= "obj", + ["application/x-troff"]= "tr", + ["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-wlpg-detect"]= "wlpginstall", + ["application/x-wlpg3-detect"]= "wlpginstall3", + ["application/x-x509-ca-cert"]= "crt", + ["application/x-xfig"]= "fig", + ["application/x-xliff+xml"]= "xlf", + ["application/x-xpinstall"]= "xpi", + ["application/x-xz"]= "xz", + ["application/x-zip-compressed"]= "zip", + ["application/x-zmachine"]= "z1", + ["application/xaml+xml"]= "xaml", + ["application/xcap-diff+xml"]= "xdf", + ["application/xenc+xml"]= "xenc", + ["application/xhtml+xml"]= "xhtml", + ["application/xml"]= "xml", + ["application/xml-dtd"]= "dtd", + ["application/xop+xml"]= "xop", + ["application/xproc+xml"]= "xpl", + ["application/xslt+xml"]= "xslt", + ["application/xspf+xml"]= "xspf", + ["application/xv+xml"]= "xvml", + ["application/yang"]= "yang", + ["application/yin+xml"]= "yin", + ["application/zip"]= "zip", + ["audio/aac"]= "aac", + ["audio/ac3"]= "ac3", + ["audio/adpcm"]= "adp", + ["audio/aiff"]= "aiff", + ["audio/annodex"]= "axa", + ["audio/audible"]= "aa", + ["audio/basic"]= "au", + ["audio/flac"]= "flac", + ["audio/m4a"]= "m4a", + ["audio/m4b"]= "m4b", + ["audio/m4p"]= "m4p", + ["audio/mid"]= "midi", + ["audio/midi"]= "midi", + ["audio/mp4"]= "m4a", + ["audio/mpeg"]= "mp3", + ["audio/ogg"]= "ogg", + ["audio/s3m"]= "s3m", + ["audio/scpls"]= "pls", + ["audio/silk"]= "sil", + ["audio/vnd.audible.aax"]= "aax", + ["audio/vnd.dece.audio"]= "uva", + ["audio/vnd.digital-winds"]= "eol", + ["audio/vnd.dlna.adts"]= "ADT", + ["audio/vnd.dra"]= "dra", + ["audio/vnd.dts"]= "dts", + ["audio/vnd.dts.hd"]= "dtshd", + ["audio/vnd.lucent.voice"]= "lvp", + ["audio/vnd.ms-playready.media.pya"]= "pya", + ["audio/vnd.nuera.ecelp4800"]= "ecelp4800", + ["audio/vnd.nuera.ecelp7470"]= "ecelp7470", + ["audio/vnd.nuera.ecelp9600"]= "ecelp9600", + ["audio/vnd.rip"]= "rip", + ["audio/wav"]= "wav", + ["audio/webm"]= "weba", + ["audio/x-aac"]= "aac", + ["audio/x-aiff"]= "aiff", + ["audio/x-caf"]= "caf", + ["audio/x-flac"]= "flac", + ["audio/x-gsm"]= "gsm", + ["audio/x-m4a"]= "m4a", + ["audio/x-m4r"]= "m4r", + ["audio/x-matroska"]= "mka", + ["audio/x-mpegurl"]= "m3u", + ["audio/x-ms-wax"]= "wax", + ["audio/x-ms-wma"]= "wma", + ["audio/x-pn-realaudio"]= "ra", + ["audio/x-pn-realaudio-plugin"]= "rmp", + ["audio/x-sd2"]= "sd2", + ["audio/x-smd"]= "smd", + ["audio/x-wav"]= "wav", + ["audio/xm"]= "xm", + ["chemical/x-cdx"]= "cdx", + ["chemical/x-cif"]= "cif", + ["chemical/x-cmdf"]= "cmdf", + ["chemical/x-cml"]= "cml", + ["chemical/x-csml"]= "csml", + ["chemical/x-xyz"]= "xyz", + ["drawing/x-dwf"]= "dwf", + ["font/collection"]= "ttc", + ["font/otf"]= "otf", + ["font/ttf"]= "ttf", + ["font/woff"]= "woff", + ["font/woff2"]= "woff2", + ["image/bmp"]= "bmp", + ["image/cgm"]= "cgm", + ["image/cis-cod"]= "cod", + ["image/g3fax"]= "g3", + ["image/gif"]= "gif", + ["image/ief"]= "ief", + ["image/jpeg"]= "jpg", + ["image/ktx"]= "ktx", + ["image/pict"]= "pict", + ["image/pjpeg"]= "jfif", + ["image/png"]= "png", + ["image/prs.btif"]= "btif", + ["image/sgi"]= "sgi", + ["image/svg+xml"]= "svg", + ["image/tiff"]= "tiff", + ["image/vnd.adobe.photoshop"]= "psd", + ["image/vnd.dece.graphic"]= "uvg", + ["image/vnd.djvu"]= "djvu", + ["image/vnd.dvb.subtitle"]= "sub", + ["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.ms-modi"]= "mdi", + ["image/vnd.ms-photo"]= "wdp", + ["image/vnd.net-fpx"]= "npx", + ["image/vnd.rn-realflash"]= "rf", + ["image/vnd.wap.wbmp"]= "wbmp", + ["image/vnd.xiff"]= "xif", + ["image/webp"]= "webp", + ["image/x-3ds"]= "3ds", + ["image/x-cmu-raster"]= "ras", + ["image/x-cmx"]= "cmx", + ["image/x-freehand"]= "fh", + ["image/x-gif"]= "gif", + ["image/x-icon"]= "ico", + ["image/x-jg"]= "art", + ["image/x-jpeg"]= "jpg", + ["image/x-macpaint"]= "mac", + ["image/x-mrsid-image"]= "sid", + ["image/x-pcx"]= "pcx", + ["image/x-pict"]= "pic", + ["image/x-png"]= "png", + ["image/x-portable-anymap"]= "pnm", + ["image/x-portable-bitmap"]= "pbm", + ["image/x-portable-graymap"]= "pgm", + ["image/x-portable-pixmap"]= "ppm", + ["image/x-quicktime"]= "qti", + ["image/x-rgb"]= "rgb", + ["image/x-tga"]= "tga", + ["image/x-xbitmap"]= "xbm", + ["image/x-xpixmap"]= "xpm", + ["image/x-xwindowdump"]= "xwd", + ["message/rfc822"]= "eml", + ["model/iges"]= "iges", + ["model/mesh"]= "mesh", + ["model/vnd.collada+xml"]= "dae", + ["model/vnd.dwf"]= "dwf", + ["model/vnd.gdl"]= "gdl", + ["model/vnd.gtw"]= "gtw", + ["model/vnd.mts"]= "mts", + ["model/vnd.vtu"]= "vtu", + ["model/vrml"]= "vrml", + ["model/x3d+binary"]= "x3db", + ["model/x3d+vrml"]= "x3dv", + ["model/x3d+xml"]= "x3d", + ["text/cache-manifest"]= "appcache", + ["text/calendar"]= "ics", + ["text/css"]= "css", + ["text/csv"]= "csv", + ["text/dlm"]= "dlm", + ["text/h323"]= "323", + ["text/html"]= "html", + ["text/iuls"]= "uls", + ["text/jscript"]= "jsx", + ["text/n3"]= "n3", + ["text/plain"]= "txt", + ["text/prs.lines.tag"]= "dsc", + ["text/richtext"]= "rtx", + ["text/rtf"]= "rtf", + ["text/scriptlet"]= "sct", + ["text/sgml"]= "sgml", + ["text/tab-separated-values"]= "tsv", + ["text/troff"]= "tr", + ["text/uri-list"]= "uri", + ["text/vbscript"]= "vbs", + ["text/vcard"]= "vcard", + ["text/vnd.curl"]= "curl", + ["text/vnd.curl.dcurl"]= "dcurl", + ["text/vnd.curl.mcurl"]= "mcurl", + ["text/vnd.curl.scurl"]= "scurl", + ["text/vnd.dvb.subtitle"]= "sub", + ["text/vnd.fly"]= "fly", + ["text/vnd.fmi.flexstor"]= "flx", + ["text/vnd.graphviz"]= "gv", + ["text/vnd.in3d.3dml"]= "3dml", + ["text/vnd.in3d.spot"]= "spot", + ["text/vnd.sun.j2me.app-descriptor"]= "jad", + ["text/vnd.wap.wml"]= "wml", + ["text/vnd.wap.wmlscript"]= "wmls", + ["text/vtt"]= "vtt", + ["text/webviewhtml"]= "htt", + ["text/x-asm"]= "asm", + ["text/x-c"]= "c", + ["text/x-component"]= "htc", + ["text/x-fortran"]= "f", + ["text/x-hdml"]= "hdml", + ["text/x-html-insertion"]= "qhtm", + ["text/x-java-source"]= "java", + ["text/x-ms-contact"]= "contact", + ["text/x-ms-group"]= "group", + ["text/x-ms-iqy"]= "iqy", + ["text/x-ms-rqy"]= "rqy", + ["text/x-nfo"]= "nfo", + ["text/x-opml"]= "opml", + ["text/x-pascal"]= "pas", + ["text/x-setext"]= "etx", + ["text/x-sfv"]= "sfv", + ["text/x-uuencode"]= "uu", + ["text/x-vcalendar"]= "vcs", + ["text/x-vcard"]= "vcf", + ["text/xml"]= "xml", + ["video/3gpp"]= "3gp", + ["video/3gpp2"]= "3g2", + ["video/annodex"]= "axv", + ["video/divx"]= "divx", + ["video/h261"]= "h261", + ["video/h263"]= "h263", + ["video/h264"]= "h264", + ["video/jpeg"]= "jpgv", + ["video/jpm"]= "jpm", + ["video/mj2"]= "mj2", + ["video/mp4"]= "mp4", + ["video/mpeg"]= "mpg", + ["video/ogg"]= "ogv", + ["video/quicktime"]= "mov", + ["video/vnd.dece.hd"]= "uvh", + ["video/vnd.dece.mobile"]= "uvm", + ["video/vnd.dece.pd"]= "uvp", + ["video/vnd.dece.sd"]= "uvs", + ["video/vnd.dece.video"]= "uvv", + ["video/vnd.dlna.mpeg-tts"]= "m2t", + ["video/vnd.dvb.file"]= "dvb", + ["video/vnd.fvt"]= "fvt", + ["video/vnd.mpegurl"]= "m4u", + ["video/vnd.ms-playready.media.pyv"]= "pyv", + ["video/vnd.uvvu.mp4"]= "uvu", + ["video/vnd.vivo"]= "viv", + ["video/webm"]= "webm", + ["video/x-dv"]= "dv", + ["video/x-f4v"]= "f4v", + ["video/x-fli"]= "fli", + ["video/x-flv"]= "flv", + ["video/x-ivf"]= "IVF", + ["video/x-la-asf"]= "lsf", + ["video/x-m4v"]= "m4v", + ["video/x-matroska"]= "mkv", + ["video/x-matroska-3d"]= "mk3d", + ["video/x-mng"]= "mng", + ["video/x-ms-asf"]= "asf", + ["video/x-ms-vob"]= "vob", + ["video/x-ms-wm"]= "wm", + ["video/x-ms-wmp"]= "wmp", + ["video/x-ms-wmv"]= "wmv", + ["video/x-ms-wmx"]= "wmx", + ["video/x-ms-wvx"]= "wvx", + ["video/x-msvideo"]= "avi", + ["video/x-sgi-movie"]= "movie", + ["video/x-smv"]= "smv", + ["x-conference/x-cooltalk"]= "ice", + ["x-world/x-vrml"]= "wrl" + } &default="bin" &redef; +} diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/root/.selected_editor b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/root/.selected_editor new file mode 100644 index 0000000..eb70eec --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/root/.selected_editor @@ -0,0 +1 @@ +SELECTED_EDITOR="/usr/bin/vim.tiny" diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/root/.vimrc b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/root/.vimrc new file mode 100644 index 0000000..cd52193 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/root/.vimrc @@ -0,0 +1 @@ +set nocompatible diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/local/etc/zeek/guess.zeek b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/local/etc/zeek/guess.zeek new file mode 100644 index 0000000..445b6b7 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/local/etc/zeek/guess.zeek @@ -0,0 +1,123 @@ +module Best_Guess; + +# given an input map file with the following format: +# proto dport sport name category +# (see https://docs.zeek.org/en/master/frameworks/input.html#reading-data-into-tables +# for details on how the table is loaded), +# load up the table on zeek_init and for each connection_state_remove +# make a "best guess" of protocols based on proto+dport+sport. +# Best guesses are written to bestguess according to Best_Guess::Info + +# Table key is transport protocol + destination port + source port +# Zeek will segfault if there is an unset value ('-') in the key, +# so use unknown_transport and 0 for protocol and ports, respectively, +# if they are not defined in the lookup. +type Best_Guess_Key: record { + proto: transport_proto &optional; + dport: count &optional; + sport: count &optional; +}; + + +# Other table values include name, category. +type Best_Guess_Value: record { + name: string &optional; + category: string &optional; +}; + +export { + redef enum Log::ID += { BEST_GUESS_LOG }; + + ############################################################################# + # This is the format of bestguess.log + + type Info: record { + + # Timestamp for when the event happened. + ts: time &log; + + # Unique ID for the connection. + uid: string &log; + + # The connection's 4-tuple of endpoint addresses/ports. + id: conn_id &log; + + # transport protocol + proto: transport_proto &log &optional; + + # protocol guess values for log + name: string &log &optional; + category: string &log &optional; + + # originating structure containing guess info + guess_info: Best_Guess_Value &optional; + }; + + # Event that can be handled to access the record as it is sent on to the logging framework. + global log_best_guess: event(rec: Best_Guess::Info); +} + +# lookup table of Best_Guess_Key -> Best_Guess_Value to be loaded in zeek_init +global proto_guesses: table[transport_proto, count, count] of Best_Guess_Value = table(); +# filespec containing best guess mappings +global guest_map_filespec : string = @DIR + "/guess_ics_map.txt"; + +############################################################################# +event zeek_init() &priority=5 { + # populate the lookup table from guest_map_filespec and then clean up the intermediate source + Input::add_table([$source=guest_map_filespec, $name="guess_ics_map", + $idx=Best_Guess_Key, $val=Best_Guess_Value, + $destination=proto_guesses, $want_record=T]); + Input::remove("guess_ics_map"); + + # initialize bestguess.log + Log::create_stream(Best_Guess::BEST_GUESS_LOG, [$columns=Best_Guess::Info, $ev=log_best_guess, $path="bestguess"]); +} + +############################################################################# +event connection_state_remove(c: connection) { + local p = get_port_transport_proto(c$id$resp_p); + local dp = port_to_count(c$id$resp_p); + local sp = port_to_count(c$id$orig_p); + local guess = Best_Guess_Value($name=""); + local category: string = ""; + + # 1. only check connections for which we don't already know "service" + # 2. skip ICMP, since dp and sp don't mean the same thing for ICMP + if (((!c?$service) || (|c$service| == 0)) && (p != icmp)) { + + # Look up permutations of transport protocol + destination port + source port + # from more-specific to less-specific. + if ([p, dp, sp] in proto_guesses) + guess = proto_guesses[p, dp, sp]; + else if ([p, dp, 0] in proto_guesses) + guess = proto_guesses[p, dp, 0]; + else if ([p, 0, sp] in proto_guesses) + guess = proto_guesses[p, 0, sp]; + else if ([unknown_transport, dp, sp] in proto_guesses) + guess = proto_guesses[unknown_transport, dp, sp]; + else if ([unknown_transport, dp, 0] in proto_guesses) + guess = proto_guesses[unknown_transport, dp, 0]; + else if ([unknown_transport, 0, sp] in proto_guesses) + guess = proto_guesses[unknown_transport, 0, sp]; + + # if a best guess was made based on protocol and ports, log it + if ((guess?$name) && (guess$name != "")) { + + # as category may be undefined, check before accessing + if (guess?$category) + category = guess$category; + + # log entry into bestguess.log + local info = Best_Guess::Info($ts=network_time(), + $uid=c$uid, + $id=c$id, + $proto=p, + $name=guess$name, + $category=category, + $guess_info=guess); + Log::write(Best_Guess::BEST_GUESS_LOG, info); + + } # found guess + } # if (p != icmp) +} # connection_state_remove \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/local/etc/zeek/guess_ics_map.txt b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/local/etc/zeek/guess_ics_map.txt new file mode 100644 index 0000000..d0d7194 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/local/etc/zeek/guess_ics_map.txt @@ -0,0 +1,360 @@ +#fields proto dport sport name category +unknown_transport 0 2221 Rockwell CSP Rockwell Automation +unknown_transport 0 2222 Rockwell CSP Rockwell Automation +unknown_transport 0 2223 Rockwell CSP Rockwell Automation +unknown_transport 0 5007 Mitsubishi Electronic MELSEC-Q SLAVE Mitsubishi Electric +unknown_transport 0 5413 Wonderware AVEVA +unknown_transport 0 5891 Intelligent Instrumentation EDAS Intelligent Instrumentation +unknown_transport 0 7022 CT Discovery Protocol CTDP - +unknown_transport 0 7200 Fiber Optics Data Multiplexing Services FLIP - +unknown_transport 0 7201 DLIP - +tcp 0 7700 Rockwell FactoryTalk Event Server Rockwell Automation +unknown_transport 0 7710 Rockwell FactoryTalk Directory Server Rockwell Automation +unknown_transport 0 7720 Rockwell RSViewSE Rockwell Automation +unknown_transport 0 7721 Rockwell RSViewSE Rockwell Automation +unknown_transport 0 7722 Rockwell RSViewSE HMI Activation Rockwell Automation +unknown_transport 0 9212 Server View DBMS Access - +unknown_transport 0 9213 ServerStart RemoteControl - +unknown_transport 0 23400 Novar Data Honeywell +unknown_transport 0 23401 Novar Alarm Honeywell +unknown_transport 0 23402 Novar Global Honeywell +unknown_transport 0 34963 PROFInet RT Multicast PROFIBUS and PROFINET +unknown_transport 0 34964 PROFInet Context Manager PROFIBUS and PROFINET +unknown_transport 0 44818 Rockwell Encapsulation Rockwell Automation +unknown_transport 210 0 ANSI Z39.50 - +tcp 400 0 Rockwell RSSql Transaction Manager Rockwell Automation +tcp 401 0 Rockwell RSSql Compression Server Rockwell Automation +tcp 402 0 Rockwell RSSql Configuration Server Rockwell Automation +unknown_transport 500 0 Fatek FB Series FATEK Automation +unknown_transport 554 0 RTP RTSP Streaming Protocol - +unknown_transport 789 0 Red Lion CrimsonV3 Red Lion +unknown_transport 1025 0 Mitsubishi Electronic FX Mitsubishi Electric +unknown_transport 1089 0 Rockwell Foundation Fieldbus Rockwell Automation +unknown_transport 1090 0 Rockwell Foundation Fieldbus Rockwell Automation +unknown_transport 1091 0 Rockwell Foundation Fieldbus Rockwell Automation +tcp 1132 0 Rockwell AADvance Rockwell Automation +unknown_transport 1153 0 ANSI C12.22 - +tcp 1200 0 CodeSys Gateway Server CODESYS +tcp 1330 0 Rockwell FactoryTalk Object RPC Rockwell Automation +tcp 1331 0 Rockwell FactoryTalk Service Control Rockwell Automation +tcp 1332 0 Rockwell FactoryTalk Server Health Rockwell Automation +tcp 1433 0 Rockwell FactoryTalk Asset Centre Server/VantagePoint SQL Rockwell Automation +tcp 1434 0 Rockwell FactoryTalk Asset Centre Server/VantagePoint MSSQL Rockwell Automation +unknown_transport 1541 0 Foxboro/Invensys Foxboro DCS Informix Schneider Electric +unknown_transport 1962 0 Phoenix Contact PC WORX Engineering Workstation PHOENIX CONTACT +unknown_transport 2004 0 LS FEnet LS Electric +udp 2010 0 Rockwell AADvance Discover Tool Rockwell Automation +udp 2011 0 Rockwell AADvance Discover Tool Rockwell Automation +unknown_transport 2085 0 ADA Control ADA-CIP - +unknown_transport 2198 0 OneHome Remote Access - +unknown_transport 2199 0 OneHome Service Port - +unknown_transport 2221 0 Rockwell CSP Rockwell Automation +unknown_transport 2222 0 Rockwell CSP Rockwell Automation +unknown_transport 2223 0 Rockwell CSP Rockwell Automation +tcp 2393 0 OLAP Microsoft +tcp 2394 0 OLAP Microsoft +unknown_transport 2404 0 IEC 60870-5-104 - +unknown_transport 2423 0 RNRP Redundant Network Routing ABB +tcp 2455 0 CodeSys Gateway Server CODESYS +unknown_transport 2540 0 LonWorks LonWorks +unknown_transport 2541 0 LonWorks LonWorks +unknown_transport 2729 0 TCIM Control - +unknown_transport 2757 0 CNRP Common Name Resolution Protocol - +unknown_transport 2846 0 AIMPP Hello - +unknown_transport 2847 0 AIMPP Port Req - +unknown_transport 3004 0 Hitachi EHV Series Hitachi +unknown_transport 3060 0 Rockwell FactoryTalk Directory Server File Transfer Rockwell Automation +unknown_transport 3240 0 Trio Motion Control Trio Motion Technology +unknown_transport 3250 0 HMS HICP Port HMC HMS Networks +unknown_transport 3338 0 OMF Data B ANET-B - +unknown_transport 3340 0 OMF Data M ANET-M - +unknown_transport 3341 0 OMF Data H ANET-H - +tcp 102 0 ICCP - +tcp 3480 0 OPC UA Discovery - +unknown_transport 3614 0 Schleicher Satchwell Sigma Schleicher Electronic +unknown_transport 3622 0 Rockwell FF LAN Redundancy Port Rockwell Automation +unknown_transport 3639 0 xAP Home Automation - +unknown_transport 3743 0 IP Control Systems Ltd ICS Command IP Control Systems Ltd +unknown_transport 3794 0 JAUS Robots - +unknown_transport 3820 0 Siemens AuD SCP Siemens AG +unknown_transport 3848 0 IT Environmental Monitor - +unknown_transport 3873 0 Fagor DNC Fagor Automation +unknown_transport 3875 0 PNBSCADA - +unknown_transport 3881 0 Intelligent Data Acquisition and Control IDAC - +unknown_transport 4000 0 Fisher ROC Plus Emerson Electric +tcp 4120 0 Rockwell Bizware Production Server Rockwell Automation +tcp 4121 0 Rockwell Bizware Server Manager Rockwell Automation +tcp 4122 0 Rockwell Bizware PlantMetrics Server Rockwell Automation +tcp 4123 0 Rockwell Bizware Task Manager Rockwell Automation +tcp 4124 0 Rockwell Bizware Scheduler Rockwell Automation +tcp 4125 0 Rockwell Bizware CTP Server Rockwell Automation +unknown_transport 4450 0 Common ASCII Message Protocol CAMP - +unknown_transport 4451 0 CTI System Message - +unknown_transport 4452 0 CTI Program Load - +unknown_transport 4999 0 Mitsubishi Electronic MELSEC-Q Mitsubishi Electric +udp 5000 0 Rockwell AADvance Peer to P2P Rockwell Automation +unknown_transport 5001 0 Mitsubishi Electronic FX3u Mitsubishi Electric +unknown_transport 5004 0 RTP Time Transport - +unknown_transport 5006 0 Mitsubishi Electronic MELSEC-Q MASTER Mitsubishi Electric +unknown_transport 5007 0 Mitsubishi Electronic MELSEC-Q MASTER Mitsubishi Electric +tcp 5050 0 OASyS SCADA AVEVA +unknown_transport 5050 0 Danfoss ECL Apex Danfoss +tcp 5051 0 OASyS SCADA AVEVA +tcp 5052 0 OASyS SCADA AVEVA +tcp 5065 0 OASyS SCADA AVEVA +unknown_transport 5069 0 I/NET 2000-NPR Control Systems International +unknown_transport 5413 0 Wonderware AVEVA +tcp 5450 0 Rockwell FactoryTalk PI Network Manager Rockwell Automation +tcp 5454 0 Rockwell FactoryTalk Analysis Framework Rockwell Automation +tcp 5455 0 Rockwell FactoryTalk Analysis Framework Rockwell Automation +tcp 5456 0 Rockwell FactoryTalk ACE2 Scheduler Rockwell Automation +tcp 5457 0 Rockwell FactoryTalk Asset Framework Server Rockwell Automation +tcp 5458 0 Rockwell FactoryTalk PI Notification Rockwell Automation +tcp 6543 0 Rockwell FactoryTalk Alarming Server Rockwell Automation +tcp 7002 0 Rockwell FactoryTalk Asset Centre Services Rockwell Automation +tcp 7003 0 Rockwell FactoryTalk Asset Centre Services Rockwell Automation +tcp 7004 0 Rockwell FactoryTalk Asset Centre Services Rockwell Automation +unknown_transport 7022 0 CT Discovery Protocol - +unknown_transport 7201 0 DLIP - +tcp 7600 0 Rockwell FactoryTalk Event Multiplexor Rockwell Automation +tcp 7710 0 Rockwell FactoryTalk Directory Server Rockwell Automation +tcp 8081 0 Rockwell Bizware HTTP Server Manager Rockwell Automation +tcp 8083 0 Rockwell Bizware HTTP CTP Server Rockwell Automation +unknown_transport 8500 0 Panasonic FP2 Panasonic +unknown_transport 8501 0 Keyence KV-5000 Keyence +unknown_transport 9094 0 Panasonic FP Panasonic +unknown_transport 9600 0 Omron Factory Interface Network Service OMRON +tcp 10001 0 Rockwell AADvance Serial Data Rockwell Automation +tcp 10002 0 Rockwell AADvance Serial Data Rockwell Automation +tcp 10003 0 Rockwell AADvance Serial Data Rockwell Automation +tcp 10004 0 Rockwell AADvance Serial Data Rockwell Automation +tcp 10005 0 Rockwell AADvance Serial Data Rockwell Automation +tcp 10006 0 Rockwell AADvance Serial Data Rockwell Automation +tcp 10307 0 ABB Ranger ABB +tcp 10311 0 ABB Ranger ABB +tcp 10364 0 ABB Ranger ABB +tcp 10365 0 ABB Ranger ABB +tcp 10407 0 ABB Ranger ABB +tcp 10409 0 ABB Ranger ABB +tcp 10410 0 ABB Ranger ABB +tcp 10412 0 ABB Ranger ABB +tcp 10414 0 ABB Ranger ABB +tcp 10415 0 ABB Ranger ABB +tcp 10428 0 ABB Ranger ABB +tcp 10431 0 ABB Ranger ABB +tcp 10432 0 ABB Ranger ABB +tcp 10447 0 ABB Ranger ABB +tcp 10449 0 ABB Ranger ABB +tcp 10450 0 ABB Ranger ABB +unknown_transport 11001 0 Metasys N1 Johnson Controls +tcp 12135 0 OASyS SCADA AVEVA +tcp 12136 0 OASyS SCADA AVEVA +tcp 12137 0 OASyS SCADA AVEVA +tcp 12316 0 ABB Ranger ABB +tcp 12645 0 ABB Ranger ABB +tcp 12647 0 ABB Ranger ABB +tcp 12648 0 ABB Ranger ABB +tcp 13722 0 ABB Ranger ABB +tcp 13724 0 ABB Ranger ABB +tcp 13782 0 ABB Ranger ABB +tcp 13783 0 ABB Ranger ABB +tcp 18000 0 Genesis32 GenBroker ICONICS +unknown_transport 20256 0 Unitronics Socket 1 Unitronics +unknown_transport 20257 0 Unitronics Socket 2/3 Unitronics +unknown_transport 20547 0 ProconOS KW Software +tcp 27000 0 Rockwell FlexLM Server Rockwell Automation +tcp 27001 0 Rockwell FlexLM Server Rockwell Automation +tcp 27002 0 Rockwell FlexLM Server Rockwell Automation +tcp 27003 0 Rockwell FlexLM Server Rockwell Automation +tcp 27004 0 Rockwell FlexLM Server Rockwell Automation +tcp 27005 0 Rockwell FlexLM Server Rockwell Automation +tcp 27006 0 Rockwell FlexLM Server Rockwell Automation +tcp 27007 0 Rockwell FlexLM Server Rockwell Automation +tcp 27008 0 Rockwell FlexLM Server Rockwell Automation +tcp 27009 0 Rockwell FlexLM Server Rockwell Automation +unknown_transport 28784 0 Koyo Ethernet - +unknown_transport 34962 0 PROFInet RT Unicast PROFIBUS and PROFINET +tcp 38000 0 GENe SNC +tcp 38001 0 GENe SNC +tcp 38011 0 GENe SNC +tcp 38012 0 GENe SNC +tcp 38014 0 GENe SNC +tcp 38015 0 GENe SNC +tcp 38200 0 GENe SNC +tcp 38210 0 GENe SNC +tcp 38301 0 GENe SNC +tcp 38400 0 GENe SNC +tcp 38589 0 ABB Ranger ABB +tcp 38593 0 ABB Ranger ABB +tcp 38600 0 ABB Ranger ABB +tcp 38700 0 GENe SNC +tcp 38971 0 ABB Ranger ABB +tcp 39129 0 ABB Ranger ABB +tcp 39278 0 ABB Ranger ABB +unknown_transport 44818 0 Rockwell Encapsulation Rockwell Automation +unknown_transport 45678 0 Foxboro/Invensys Foxboro DCS AIMAPI Schneider Electric +tcp 49281 0 Rockwell FactoryTalk Live Data/SE HMI Tag Server Rockwell Automation +tcp 50001 0 Siemens Spectrum Power TG Siemens AG +tcp 50002 0 Siemens Spectrum Power TG Siemens AG +tcp 50003 0 Siemens Spectrum Power TG Siemens AG +tcp 50004 0 Siemens Spectrum Power TG Siemens AG +tcp 50005 0 Siemens Spectrum Power TG Siemens AG +tcp 50006 0 Siemens Spectrum Power TG Siemens AG +tcp 50007 0 Siemens Spectrum Power TG Siemens AG +tcp 50008 0 Siemens Spectrum Power TG Siemens AG +tcp 50009 0 Siemens Spectrum Power TG Siemens AG +tcp 50010 0 Siemens Spectrum Power TG Siemens AG +tcp 50011 0 Siemens Spectrum Power TG Siemens AG +tcp 50012 0 Siemens Spectrum Power TG Siemens AG +tcp 50013 0 Siemens Spectrum Power TG Siemens AG +tcp 50014 0 Siemens Spectrum Power TG Siemens AG +tcp 50015 0 Siemens Spectrum Power TG Siemens AG +tcp 50016 0 Siemens Spectrum Power TG Siemens AG +tcp 50018 0 Siemens Spectrum Power TG Siemens AG +tcp 50019 0 Siemens Spectrum Power TG Siemens AG +tcp 50020 0 Siemens Spectrum Power TG Siemens AG +tcp 50021 0 Siemens Spectrum Power TG Siemens AG +tcp 50025 0 Siemens Spectrum Power TG Siemens AG +tcp 50026 0 Siemens Spectrum Power TG Siemens AG +tcp 50027 0 Siemens Spectrum Power TG Siemens AG +tcp 50028 0 Siemens Spectrum Power TG Siemens AG +tcp 50110 0 Siemens Spectrum Power TG Siemens AG +tcp 50111 0 Siemens Spectrum Power TG Siemens AG +unknown_transport 55000 0 Mitsubishi Electronic FL-Net Cyclic Transmission Mitsubishi Electric +unknown_transport 55001 0 Mitsubishi Electronic FL-Net Message Transmission Mitsubishi Electric +unknown_transport 55002 0 Mitsubishi Electronic FL-Net Participation Request Frame Mitsubishi Electric +unknown_transport 55003 0 Mitsubishi Electronic FL-Net Sending Service Mitsubishi Electric +tcp 55555 0 Rockwell AADvance Telnet Rockwell Automation +unknown_transport 55555 0 Foxboro/Invensys Foxboro DCS FoxAPI Schneider Electric +tcp 56001 0 OASyS SCADA AVEVA +tcp 56001 0 OASyS SCADA AVEVA +tcp 56002 0 OASyS SCADA AVEVA +tcp 56003 0 OASyS SCADA AVEVA +tcp 56004 0 OASyS SCADA AVEVA +tcp 56005 0 OASyS SCADA AVEVA +tcp 56006 0 OASyS SCADA AVEVA +tcp 56007 0 OASyS SCADA AVEVA +tcp 56008 0 OASyS SCADA AVEVA +tcp 56009 0 OASyS SCADA AVEVA +tcp 56010 0 OASyS SCADA AVEVA +tcp 56011 0 OASyS SCADA AVEVA +tcp 56012 0 OASyS SCADA AVEVA +tcp 56013 0 OASyS SCADA AVEVA +tcp 56014 0 OASyS SCADA AVEVA +tcp 56015 0 OASyS SCADA AVEVA +tcp 56016 0 OASyS SCADA AVEVA +tcp 56017 0 OASyS SCADA AVEVA +tcp 56018 0 OASyS SCADA AVEVA +tcp 56019 0 OASyS SCADA AVEVA +tcp 56020 0 OASyS SCADA AVEVA +tcp 56021 0 OASyS SCADA AVEVA +tcp 56022 0 OASyS SCADA AVEVA +tcp 56023 0 OASyS SCADA AVEVA +tcp 56024 0 OASyS SCADA AVEVA +tcp 56025 0 OASyS SCADA AVEVA +tcp 56026 0 OASyS SCADA AVEVA +tcp 56027 0 OASyS SCADA AVEVA +tcp 56028 0 OASyS SCADA AVEVA +tcp 56029 0 OASyS SCADA AVEVA +tcp 56030 0 OASyS SCADA AVEVA +tcp 56031 0 OASyS SCADA AVEVA +tcp 56032 0 OASyS SCADA AVEVA +tcp 56033 0 OASyS SCADA AVEVA +tcp 56034 0 OASyS SCADA AVEVA +tcp 56035 0 OASyS SCADA AVEVA +tcp 56036 0 OASyS SCADA AVEVA +tcp 56037 0 OASyS SCADA AVEVA +tcp 56038 0 OASyS SCADA AVEVA +tcp 56039 0 OASyS SCADA AVEVA +tcp 56040 0 OASyS SCADA AVEVA +tcp 56041 0 OASyS SCADA AVEVA +tcp 56042 0 OASyS SCADA AVEVA +tcp 56043 0 OASyS SCADA AVEVA +tcp 56044 0 OASyS SCADA AVEVA +tcp 56045 0 OASyS SCADA AVEVA +tcp 56046 0 OASyS SCADA AVEVA +tcp 56047 0 OASyS SCADA AVEVA +tcp 56048 0 OASyS SCADA AVEVA +tcp 56049 0 OASyS SCADA AVEVA +tcp 56050 0 OASyS SCADA AVEVA +tcp 56051 0 OASyS SCADA AVEVA +tcp 56052 0 OASyS SCADA AVEVA +tcp 56053 0 OASyS SCADA AVEVA +tcp 56054 0 OASyS SCADA AVEVA +tcp 56055 0 OASyS SCADA AVEVA +tcp 56056 0 OASyS SCADA AVEVA +tcp 56057 0 OASyS SCADA AVEVA +tcp 56058 0 OASyS SCADA AVEVA +tcp 56059 0 OASyS SCADA AVEVA +tcp 56060 0 OASyS SCADA AVEVA +tcp 56061 0 OASyS SCADA AVEVA +tcp 56062 0 OASyS SCADA AVEVA +tcp 56063 0 OASyS SCADA AVEVA +tcp 56064 0 OASyS SCADA AVEVA +tcp 56065 0 OASyS SCADA AVEVA +tcp 56066 0 OASyS SCADA AVEVA +tcp 56067 0 OASyS SCADA AVEVA +tcp 56068 0 OASyS SCADA AVEVA +tcp 56069 0 OASyS SCADA AVEVA +tcp 56070 0 OASyS SCADA AVEVA +tcp 56071 0 OASyS SCADA AVEVA +tcp 56072 0 OASyS SCADA AVEVA +tcp 56073 0 OASyS SCADA AVEVA +tcp 56074 0 OASyS SCADA AVEVA +tcp 56075 0 OASyS SCADA AVEVA +tcp 56076 0 OASyS SCADA AVEVA +tcp 56077 0 OASyS SCADA AVEVA +tcp 56078 0 OASyS SCADA AVEVA +tcp 56079 0 OASyS SCADA AVEVA +tcp 56080 0 OASyS SCADA AVEVA +tcp 56081 0 OASyS SCADA AVEVA +tcp 56082 0 OASyS SCADA AVEVA +tcp 56083 0 OASyS SCADA AVEVA +tcp 56084 0 OASyS SCADA AVEVA +tcp 56085 0 OASyS SCADA AVEVA +tcp 56086 0 OASyS SCADA AVEVA +tcp 56087 0 OASyS SCADA AVEVA +tcp 56088 0 OASyS SCADA AVEVA +tcp 56089 0 OASyS SCADA AVEVA +tcp 56090 0 OASyS SCADA AVEVA +tcp 56091 0 OASyS SCADA AVEVA +tcp 56092 0 OASyS SCADA AVEVA +tcp 56093 0 OASyS SCADA AVEVA +tcp 56094 0 OASyS SCADA AVEVA +tcp 56095 0 OASyS SCADA AVEVA +tcp 56096 0 OASyS SCADA AVEVA +tcp 56097 0 OASyS SCADA AVEVA +tcp 56098 0 OASyS SCADA AVEVA +tcp 56099 0 OASyS SCADA AVEVA +tcp 60093 0 Rockwell FactoryTalk Diagnostics Rockwell Automation +tcp 62900 0 GENe SNC +tcp 62911 0 GENe SNC +tcp 62924 0 GENe SNC +tcp 62930 0 GENe SNC +tcp 62938 0 GENe SNC +tcp 62956 0 GENe SNC +tcp 62957 0 GENe SNC +tcp 62963 0 GENe SNC +tcp 62981 0 GENe SNC +tcp 62982 0 GENe SNC +tcp 62985 0 GENe SNC +tcp 62992 0 GENe SNC +tcp 63012 0 GENe SNC +tcp 63027 0 GENe SNC +tcp 63028 0 GENe SNC +tcp 63029 0 GENe SNC +tcp 63030 0 GENe SNC +tcp 63031 0 GENe SNC +tcp 63032 0 GENe SNC +tcp 63033 0 GENe SNC +tcp 63034 0 GENe SNC +tcp 63035 0 GENe SNC +tcp 63036 0 GENe SNC +tcp 63041 0 GENe SNC +tcp 63075 0 GENe SNC +tcp 63079 0 GENe SNC +tcp 63082 0 GENe SNC +tcp 63088 0 GENe SNC +tcp 63094 0 GENe SNC +tcp 65207 0 Rockwell FactoryTalk VantagePoint Incuity Server Advertiser Rockwell Automation +tcp 65443 0 GENe SNC \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/local/etc/zeek/local.zeek b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/local/etc/zeek/local.zeek new file mode 100644 index 0000000..7c48729 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/local/etc/zeek/local.zeek @@ -0,0 +1,117 @@ +##! Zeek local site policy. Customize as appropriate. +##! +##! See https://github.com/zeek/zeekctl +##! https://docs.zeek.org/en/stable/script-reference/scripts.html +##! https://github.com/zeek/zeek/blob/master/scripts/site/local.zeek + +global disable_hash_all_files = (getenv("ZEEK_DISABLE_HASH_ALL_FILES") == "") ? F : T; +global disable_log_passwords = (getenv("ZEEK_DISABLE_LOG_PASSWORDS") == "") ? F : T; +global disable_ssl_validate_certs = (getenv("ZEEK_DISABLE_SSL_VALIDATE_CERTS") == "") ? F : T; +global disable_track_all_assets = (getenv("ZEEK_DISABLE_TRACK_ALL_ASSETS") == "") ? F : T; +global disable_best_guess_ics = (getenv("ZEEK_DISABLE_BEST_GUESS_ICS") == "") ? F : T; + +global disable_spicy_dhcp = (getenv("ZEEK_DISABLE_SPICY_DHCP") == "") ? F : T; +global disable_spicy_dns = (getenv("ZEEK_DISABLE_SPICY_DNS") == "") ? F : T; +global disable_spicy_http = (getenv("ZEEK_DISABLE_SPICY_HTTP") == "") ? F : T; +global disable_spicy_ldap = (getenv("ZEEK_DISABLE_SPICY_LDAP") == "") ? F : T; +global disable_spicy_ipsec = (getenv("ZEEK_DISABLE_SPICY_IPSEC") == "") ? F : T; +global disable_spicy_openvpn = (getenv("ZEEK_DISABLE_SPICY_OPENVPN") == "") ? F : T; +global disable_spicy_tftp = (getenv("ZEEK_DISABLE_SPICY_TFTP") == "") ? F : T; +global disable_spicy_wireguard = (getenv("ZEEK_DISABLE_SPICY_WIREGUARD") == "") ? F : T; + +redef Broker::default_listen_address = "127.0.0.1"; +redef ignore_checksums = T; + +@load tuning/defaults +@load misc/scan +@load frameworks/software/vulnerable +@load frameworks/software/version-changes +@load frameworks/software/windows-version-detection +@load-sigs frameworks/signatures/detect-windows-shells +@load protocols/conn/known-hosts +@load protocols/conn/known-services +@load protocols/dhcp/software +@load protocols/dns/detect-external-names +@load protocols/ftp/detect +@load protocols/ftp/detect-bruteforcing.zeek +@load protocols/ftp/software +@load protocols/http/detect-sqli +@load protocols/http/detect-webapps +@load protocols/http/software +@load protocols/http/software-browser-plugins +@load protocols/mysql/software +@load protocols/ssl/weak-keys +@load protocols/smb/log-cmds +@load protocols/smtp/software +@load protocols/ssh/detect-bruteforcing +@load protocols/ssh/geo-data +@load protocols/ssh/interesting-hostnames +@load protocols/ssh/software +@load protocols/ssl/known-certs +@load protocols/ssl/log-hostcerts-only +@if (!disable_ssl_validate_certs) + @load protocols/ssl/validate-certs +@endif +@if (!disable_track_all_assets) + @load tuning/track-all-assets.zeek +@endif +@if (!disable_hash_all_files) + @load frameworks/files/hash-all-files +@endif +@load policy/protocols/conn/vlan-logging +@load policy/protocols/conn/mac-logging +@load policy/protocols/modbus/known-masters-slaves +@load policy/protocols/mqtt +@load ./login.zeek + +@if (!disable_best_guess_ics) + @load ./guess.zeek +@endif + +@load packages + +event zeek_init() &priority=-5 { + if (disable_spicy_dhcp) { + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_DHCP); + } + if (disable_spicy_dns) { + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_DNS); + } + if (disable_spicy_http) { + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_HTTP); + } + if (disable_spicy_ipsec) { + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_IPSEC_TCP); + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_IPSEC_UDP); + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_IPSEC_IKE_UDP); + } + if (disable_spicy_ldap) { + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_LDAP_TCP); + } + if (disable_spicy_openvpn) { + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_OPENVPN_TCP); + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_OPENVPN_TCP_HMAC_MD5); + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_OPENVPN_TCP_HMAC_SHA1); + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_OPENVPN_TCP_HMAC_SHA256); + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_OPENVPN_TCP_HMAC_SHA512); + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_OPENVPN_UDP); + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_OPENVPN_UDP_HMAC_MD5); + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_OPENVPN_UDP_HMAC_SHA1); + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_OPENVPN_UDP_HMAC_SHA256); + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_OPENVPN_UDP_HMAC_SHA512); + } + if (disable_spicy_tftp) { + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_TFTP); + } + if (disable_spicy_wireguard) { + Spicy::disable_protocol_analyzer(Analyzer::ANALYZER_SPICY_WIREGUARD); + } +} + +@if (!disable_log_passwords) + redef HTTP::default_capture_password = T; + redef FTP::default_capture_password = T; + redef SOCKS::default_capture_password = T; + redef SNIFFPASS::log_password_plaintext = T; +@endif +redef SNIFFPASS::notice_log_enable = F; diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/local/etc/zeek/login.zeek b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/local/etc/zeek/login.zeek new file mode 100644 index 0000000..ac668fd --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/local/etc/zeek/login.zeek @@ -0,0 +1,253 @@ +module Login; + +# log telnet, rlogin, and rsh events to login.log + +export { + + redef enum Log::ID += { + ## The logging stream identifier + Log_LOGIN + }; + + type Info : record { + ## Time the event occurred + ts : time &log; + ## Unique ID for the connection + uid : string &log; + ## The connection's 4-tuple of endpoint addresses/port + id : conn_id &log; + + ## proto (telnet, rlogin, or rsh) + proto : string &log &optional; + ## login_success event was seen (successful login) + success : bool &log &default = F; + ## login_confused event was seen (successful login) + confused : bool &log &default = F; + ## username given for login attempt + user : string &log &optional; + ## client_user given for login attempt (empty for telnet, set for rlogin) + client_user : string &log &optional; + ## password given for login attempt + password : string &log &optional; + + ## whether or not a line has been written to login.log + logged : bool &default = F; + }; + + ## Event that can be handled to access the :zeek:type:`Login::Info` + ## record as it is sent on to the logging framework. + global log_login : event(rec : Info); +} + +# Add the state tracking information variable to the connection record +redef record connection += { + login : Info &optional; +}; + +############################################### +# constants borrowed from the old Bro 1.5 login.bro required to make some of the telnet/rlogin/rsh events work correctly +# see https://github.com/zeek/zeek/blob/release/1.5/policy/login.bro#L178 +# https://github.com/reservoirlabs/brorefguide/blob/master/analysis.texi#L3850 + +redef skip_authentication = { "WELCOME TO THE BERKELEY PUBLIC LIBRARY", }; + +redef direct_login_prompts = { "TERMINAL?", }; + +redef login_prompts = { + "Login:", + "login:", + "Name:", + "Username:", + "User:", + "Member Name", + "User Access Verification", + "Cisco Systems Console", + direct_login_prompts +}; + +redef login_non_failure_msgs = { + "Failures", + "failures", # probably is " failures since last login" + "failure since last successful login", + "failures since last successful login", +}; + +redef login_non_failure_msgs = { + "Failures", + "failures", # probably is " failures since last login" + "failure since last successful login", + "failures since last successful login", +} &redef; + +redef login_failure_msgs = { + "invalid", + "Invalid", + "incorrect", + "Incorrect", + "failure", + "Failure", + # "Unable to authenticate", + # "unable to authenticate", + "User authorization failure", + "Login failed", + "INVALID", + "Sorry.", + "Sorry,", +}; + +const router_prompts: set[string] &redef; + +redef login_success_msgs = { + "Last login", + "Last successful login", + "Last successful login", + "checking for disk quotas", + "unsuccessful login attempts", + "failure since last successful login", + "failures since last successful login", + router_prompts, +}; + +redef login_timeouts = { + "timeout", + "timed out", + "Timeout", + "Timed out", + "Error reading command input", # VMS +}; +# end borrowed constants from Bro 1.5 login.bro +############################################### + +# telnet, rlogin, rsh +const telnet_port = 23/tcp; +const telnet_ports = { telnet_port }; +const rlogin_port = 513/tcp; +const rlogin_ports = { rlogin_port }; +const rsh_port = 514/tcp; +const rsh_ports = { rsh_port }; +redef likely_server_ports += { telnet_ports, rlogin_ports, rsh_ports }; + +# set_login_session - if has not yet been registered in the connection, instantiate +# the Info record and assign in c$login +function set_login_session(c : connection) { + if ( ! c?$login ) { + local s : Info = [$ts = network_time(), $uid = c$uid, $id = c$id]; + switch c$id$resp_p { + case telnet_port: + s$proto = "telnet"; + add c$service["telnet"]; + break; + case rlogin_port: + s$proto = "rlogin"; + add c$service["rlogin"]; + break; + case rsh_port: + s$proto = "rsh"; + add c$service["rsh"]; + break; + } + c$login = s; + } +} + +# login_message - log to login.log +function login_message(s : Info) { + + # strip some values that can happen in a "confused" state that aren't really valid values + if (( s?$user ) && (( s$user == "" ) || ( s$user == "" ) || ( s$user == "" ))) + delete s$user; + if (( s?$client_user ) && (( s$client_user == "" ) || ( s$client_user == "" ) || ( s$client_user == "" ))) + delete s$client_user; + if (( s?$password ) && (( s$password == "" ) || ( s$password == "" ) || ( s$password == "" ))) + delete s$password; + if (( s?$proto ) && ( s$proto == "" )) + delete s$proto; + + s$ts = network_time(); + Log::write(Login::Log_LOGIN, s); + s$logged = T; +} + +# create log stream for login.log and register telnet, rlogin, and rsh analyzers +event zeek_init() &priority = 5 { + Log::create_stream(Login::Log_LOGIN, [$columns = Info, $ev = log_login, $path = "login"]); + Analyzer::register_for_ports(Analyzer::ANALYZER_TELNET, telnet_ports); + Analyzer::register_for_ports(Analyzer::ANALYZER_RLOGIN, rlogin_ports); + Analyzer::register_for_ports(Analyzer::ANALYZER_RSH, rsh_ports); +} + +# login_confused - Generated when tracking of Telnet/Rlogin authentication failed +# https://docs.zeek.org/en/current/scripts/base/bif/plugins/Zeek_Login.events.bif.zeek.html#id-login_confused +event login_confused(c : connection, msg : string, line : string) &priority = 5 { + # print "login_confused", msg, line; + + set_login_session(c); + + c$login$confused = T; +} + +# login_failure - Generated when tracking of Telnet/Rlogin authentication failed +# https://docs.zeek.org/en/current/scripts/base/bif/plugins/Zeek_Login.events.bif.zeek.html#id-login_failure +event login_failure(c : connection, user : string, client_user : string, password : string, line : string) &priority = 5 { + # print "login_failure", user, client_user, password, line; + + set_login_session(c); + + if ((!c$login?$user) || (c$login$user == "")) + c$login$user = user; + if ((!c$login?$client_user) || (c$login$client_user == "")) + c$login$client_user = client_user; + if ((!c$login?$password) || (c$login$password == "")) + c$login$password = password; + + login_message(c$login); +} + +# login_success - Generated for successful Telnet/Rlogin logins +# https://docs.zeek.org/en/current/scripts/base/bif/plugins/Zeek_Login.events.bif.zeek.html#id-login_success +event login_success(c : connection, user : string, client_user : string, password : string, line : string) &priority = 5 { + # print "login_success", user, client_user, password, line; + + set_login_session(c); + + c$login$success = T; + c$login$user = user; + c$login$client_user = client_user; + + # it appears for a successful login with rsh where client_user was checked, what we're getting in + # the "password" field is actually not the password, but the first line of data + if ((c$login$proto != "rsh") || (c$login$client_user == "")) + c$login$password = password; + + login_message(c$login); +} + +event connection_state_remove(c : connection) &priority = -5 { + if (c?$login) { + + if ( c$login$logged == F) { + login_message(c$login); + } + + delete c$login; + } +} + +# for testing: +# for file in /host/telnet/*; do cd /tmp; mkdir -p /host/logs/"$(basename "$file")"; /bin/rm -f /host/logs/"$(basename "$file")"/*; cd /host/logs/"$(basename "$file")"; zeek -r "$file" local > debug_output.txt; cd /tmp; done + +# event activating_encryption(c: connection) { print "activating_encryption"; } +# event authentication_accepted(name: string, c: connection) { print "authentication_accepted", name; } +# event authentication_rejected(name: string, c: connection) { print "authentication_rejected", name; } +# event authentication_skipped(c: connection) { print "authentication_skipped"; } +# event bad_option(c: connection) { print "bad_option"; } +# event bad_option_termination(c: connection) { print "bad_option_termination"; } +# event inconsistent_option(c: connection) { print "inconsistent_option"; } +# event login_confused_text(c: connection, line: string) { print "login_confused_text", line; } +# event login_display(c: connection, display: string) { print "login_display", display; } +# event login_input_line(c: connection, line: string) { print "login_input_line", line; } +# event login_output_line(c: connection, line: string) { print "login_output_line", line; } +# event login_terminal(c: connection, terminal: string) { print "login_terminal", terminal; } +# event rsh_reply(c: connection, client_user: string, server_user: string, line: string) { print "rsh_reply", client_user, server_user, line; } +# event rsh_request(c: connection, client_user: string, server_user: string, line: string; new_session: bool) { print "rsh_request", client_user, server_user, line, new_session; } + diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/configure-capture.desktop b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/configure-capture.desktop new file mode 100644 index 0000000..3a93327 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/configure-capture.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Version=1.0 +Name=Configure Capture and Forwarding +Exec=/usr/bin/terminator --maximise -T "Configure Capture and Forwarding" -x /usr/local/bin/configure-capture.py +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=network-receive.png +Categories=Network; +StartupNotify=true diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/configure-interfaces.desktop b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/configure-interfaces.desktop new file mode 100644 index 0000000..b32436e --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/configure-interfaces.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Version=1.0 +Name=Configure Interfaces and Hostname +Exec=/usr/bin/terminator --maximise -T "Configure Interfaces and Hostname" -x su -l -c /usr/local/bin/configure-interfaces.py +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=network-wired.png +Categories=Network; +StartupNotify=true diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/hedgehog-kiosk.desktop b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/hedgehog-kiosk.desktop new file mode 100644 index 0000000..b98abfc --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/hedgehog-kiosk.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Sensor Kiosk +Exec=/opt/firefox/firefox --setDefaultBrowser --no-remote --private --kiosk http://127.0.0.1:5000 +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=/usr/share/images/hedgehog/hedgehog-color-small.png +Categories=Network; +StartupWMClass=Firefox +StartupNotify=true diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/hedgehog-readme.desktop b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/hedgehog-readme.desktop new file mode 100644 index 0000000..582582b --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/hedgehog-readme.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Sensor README +Exec=/opt/firefox/firefox --setDefaultBrowser file:////usr/share/doc/hedgehog/HedgehogLinux.html +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=help-browser +Categories=Network; +StartupWMClass=Firefox +StartupNotify=true diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/sensor-services-full-restart.desktop b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/sensor-services-full-restart.desktop new file mode 100644 index 0000000..8652365 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/sensor-services-full-restart.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Version=1.0 +Name=Restart Sensor Services +Exec=/usr/bin/terminator -T "Restart Sensor Services" -x bash -c "echo 'Stopping services...' && ( /opt/sensor/sensor_ctl/shutdown >/dev/null 2>&1 || true ) && echo 'Please wait...' && sleep 30 && echo 'Starting services...' && /opt/sensor/sensor_ctl/supervisor.sh" +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=reload.png +Categories=Network; +StartupNotify=true diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/sensor-services-status.desktop b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/sensor-services-status.desktop new file mode 100644 index 0000000..0128cea --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/applications/sensor-services-status.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Version=1.0 +Name=Sensor Service Status +Exec=/usr/bin/terminator -T "Sensor Service Status" -x bash -c "/opt/sensor/sensor_ctl/status && echo '' && read -p 'Press Enter to Continue'" +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=view-restore.png +Categories=Network; +StartupNotify=true diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/auditbeat/kibana/7/dashboard-custom/Auditbeat-auditd-overview-custom.json b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/auditbeat/kibana/7/dashboard-custom/Auditbeat-auditd-overview-custom.json new file mode 100644 index 0000000..1bb9304 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/auditbeat/kibana/7/dashboard-custom/Auditbeat-auditd-overview-custom.json @@ -0,0 +1,142 @@ +{ + "version": "7.6.2", + "objects": [ + { + "id": "072befc0-ffba-11e8-a854-ad7782ef6a55", + "type": "dashboard", + "updated_at": "2019-12-23T19:07:39.093Z", + "version": "WzE2MDIsMV0=", + "attributes": { + "description": "Summary of Linux kernel audit events.", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"version\":true,\"highlightAll\":true}" + }, + "optionsJSON": "{\"darkTheme\":true,\"useMargins\":false}", + "panelsJSON": "[{\"gridData\":{\"x\":0,\"y\":0,\"w\":28,\"h\":26,\"i\":\"1\"},\"version\":\"7.3.0\",\"panelIndex\":\"1\",\"panelRefName\":\"panel_0\"},{\"gridData\":{\"x\":28,\"y\":0,\"w\":20,\"h\":26,\"i\":\"4\"},\"version\":\"7.3.0\",\"panelIndex\":\"4\",\"panelRefName\":\"panel_1\"},{\"gridData\":{\"x\":0,\"y\":26,\"w\":48,\"h\":38,\"i\":\"5\"},\"version\":\"7.3.0\",\"panelIndex\":\"5\",\"embeddableConfig\":{\"columns\":[\"beat.hostname\",\"auditd.summary.actor.primary\",\"auditd.summary.actor.secondary\",\"auditd.summary.object.type\",\"event.action\",\"auditd.summary.object.primary\",\"auditd.summary.object.secondary\",\"auditd.summary.how\",\"auditd.result\"]},\"panelRefName\":\"panel_2\"}]", + "timeRestore": false, + "title": "[Auditbeat auditd] Overview dashboard", + "version": 1 + }, + "references": [ + { + "name": "panel_0", + "type": "visualization", + "id": "97680df0-c1c0-11e7-8995-936807a28b16" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "08679220-c25a-11e7-8692-232bd1143e8a" + }, + { + "name": "panel_2", + "type": "search", + "id": "0f10c430-c1c3-11e7-8995-936807a28b16" + } + ], + "migrationVersion": { + "dashboard": "7.3.0" + } + }, + { + "id": "97680df0-c1c0-11e7-8995-936807a28b16", + "type": "visualization", + "updated_at": "2019-12-23T19:07:39.093Z", + "version": "WzE1OTksMV0=", + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{}" + }, + "title": "Event Actions [Auditbeat Auditd Overview]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"type\":\"metrics\",\"params\":{\"bar_color_rules\":[{\"id\":\"5bfc71a0-c1bd-11e7-938f-ab0645b6c431\"}],\"gauge_color_rules\":[{\"id\":\"5d20a650-c1bd-11e7-938f-ab0645b6c431\"}],\"background_color_rules\":[{\"id\":\"58c95a20-c1bd-11e7-938f-ab0645b6c431\"}],\"time_field\":\"@timestamp\",\"index_pattern\":\"auditbeat-*\",\"gauge_inner_width\":10,\"series\":[{\"line_width\":1,\"terms_field\":\"event.action\",\"point_size\":1,\"color\":\"#68BC00\",\"label\":\"Actions\",\"metrics\":[{\"type\":\"count\",\"id\":\"6b9fb2d0-c1bc-11e7-938f-ab0645b6c431\"}],\"seperate_axis\":0,\"split_mode\":\"terms\",\"chart_type\":\"line\",\"stacked\":\"none\",\"axis_position\":\"right\",\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"fill\":0.5}],\"axis_formatter\":\"number\",\"interval\":\"auto\",\"filter\":{\"query\":\"event.module:auditd\",\"language\":\"lucene\"},\"legend_position\":\"left\",\"show_legend\":1,\"show_grid\":1,\"gauge_style\":\"half\",\"axis_position\":\"left\",\"gauge_width\":10,\"type\":\"timeseries\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\"},\"aggs\":[],\"title\":\"Event Actions [Auditbeat Auditd Overview]\"}" + }, + "references": [], + "migrationVersion": { + "visualization": "7.4.2" + } + }, + { + "id": "08679220-c25a-11e7-8692-232bd1143e8a", + "type": "visualization", + "updated_at": "2019-12-23T19:07:39.093Z", + "version": "WzE2MDAsMV0=", + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "title": "Event Categories [Auditbeat Auditd]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"type\":\"pie\",\"params\":{\"legendPosition\":\"right\",\"type\":\"pie\",\"isDonut\":true,\"addTooltip\":true,\"addLegend\":true},\"aggs\":[{\"params\":{},\"type\":\"count\",\"enabled\":true,\"id\":\"1\",\"schema\":\"metric\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"event.category\",\"customLabel\":\"Category\",\"order\":\"desc\",\"size\":5},\"type\":\"terms\",\"enabled\":true,\"id\":\"2\",\"schema\":\"segment\"},{\"params\":{\"orderBy\":\"1\",\"field\":\"event.action\",\"customLabel\":\"Action\",\"order\":\"desc\",\"size\":20},\"type\":\"terms\",\"enabled\":true,\"id\":\"3\",\"schema\":\"segment\"}],\"title\":\"Event Categories [Auditbeat Auditd]\"}", + "savedSearchRefName": "search_0" + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "auditbeat-*" + }, + { + "type": "search", + "name": "search_0", + "id": "0f10c430-c1c3-11e7-8995-936807a28b16" + } + ], + "migrationVersion": { + "visualization": "7.4.2" + } + }, + { + "id": "0f10c430-c1c3-11e7-8995-936807a28b16", + "type": "search", + "updated_at": "2019-12-23T19:07:39.093Z", + "version": "WzE2MDEsMV0=", + "attributes": { + "columns": [ + "beat.hostname", + "auditd.summary.actor.primary", + "auditd.summary.actor.secondary", + "event.action", + "auditd.summary.object.type", + "auditd.summary.object.primary", + "auditd.summary.object.secondary", + "auditd.summary.how", + "auditd.result" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"query\":{\"match\":{\"event.module\":{\"query\":\"auditd\",\"type\":\"phrase\"}}},\"meta\":{\"value\":\"auditd\",\"disabled\":false,\"alias\":null,\"params\":{\"query\":\"auditd\",\"type\":\"phrase\"},\"key\":\"event.module\",\"negate\":false,\"type\":\"phrase\",\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"$state\":{\"store\":\"appState\"}}],\"version\":true,\"highlightAll\":true,\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "Audit Event Table [Auditbeat Auditd]", + "version": 1 + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "auditbeat-*" + }, + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern", + "id": "auditbeat-*" + } + ], + "migrationVersion": { + "search": "7.4.0" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/filebeat/kibana/7/dashboard-custom/Filebeat-syslog-custom.json b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/filebeat/kibana/7/dashboard-custom/Filebeat-syslog-custom.json new file mode 100644 index 0000000..ba4da7d --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/filebeat/kibana/7/dashboard-custom/Filebeat-syslog-custom.json @@ -0,0 +1,167 @@ +{ + "version": "7.6.2", + "objects": [ + { + "id": "1ca59220-ffb0-11e8-a854-ad7782ef6a55", + "type": "dashboard", + "updated_at": "2019-12-23T19:04:34.880Z", + "version": "WzE0MzcsMV0=", + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}" + }, + "optionsJSON": "{\"darkTheme\":true,\"hidePanelTitles\":false,\"useMargins\":false}", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":27,\"w\":48,\"h\":41,\"i\":\"1\"},\"panelIndex\":\"1\",\"title\":\"Syslog Events\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":30,\"y\":0,\"w\":18,\"h\":27,\"i\":\"3\"},\"panelIndex\":\"3\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":17,\"y\":0,\"w\":13,\"h\":27,\"i\":\"4\"},\"panelIndex\":\"4\",\"version\":\"7.3.0\",\"panelRefName\":\"panel_2\"},{\"gridData\":{\"x\":0,\"y\":0,\"w\":17,\"h\":27,\"i\":\"5\"},\"version\":\"7.3.0\",\"panelIndex\":\"5\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"}]", + "timeRestore": false, + "title": "[Filebeat] Syslog dashboard", + "version": 1 + }, + "references": [ + { + "name": "panel_0", + "type": "search", + "id": "c1e3d120-ffb0-11e8-a854-ad7782ef6a55" + }, + { + "name": "panel_1", + "type": "visualization", + "id": "462e04d0-ffb3-11e8-a854-ad7782ef6a55" + }, + { + "name": "panel_2", + "type": "visualization", + "id": "cc3f9cf0-ffb3-11e8-a854-ad7782ef6a55" + }, + { + "name": "panel_3", + "type": "visualization", + "id": "96e77ef0-ffb4-11e8-a854-ad7782ef6a55" + } + ], + "migrationVersion": { + "dashboard": "7.3.0" + } + }, + { + "id": "c1e3d120-ffb0-11e8-a854-ad7782ef6a55", + "type": "search", + "updated_at": "2019-12-23T19:04:34.880Z", + "version": "WzE0MzMsMV0=", + "attributes": { + "columns": [ + "host.name", + "syslog.severity_label", + "syslog.facility_label", + "process.program", + "message" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"_exists_:syslog\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Filebeat] Syslog search", + "version": 1 + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern", + "id": "filebeat-*" + } + ], + "migrationVersion": { + "search": "7.4.0" + } + }, + { + "id": "462e04d0-ffb3-11e8-a854-ad7782ef6a55", + "type": "visualization", + "updated_at": "2019-12-23T19:04:34.880Z", + "version": "WzE0MzQsMV0=", + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "[Filebeat] Syslog by Host Timeline", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"[Filebeat] Syslog by Host Timeline\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"timeRange\":{\"from\":\"now-15m\",\"to\":\"now\",\"mode\":\"quick\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"host.name\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Host\"}}]}", + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c1e3d120-ffb0-11e8-a854-ad7782ef6a55" + } + ], + "migrationVersion": { + "visualization": "7.4.2" + } + }, + { + "id": "cc3f9cf0-ffb3-11e8-a854-ad7782ef6a55", + "type": "visualization", + "updated_at": "2019-12-23T19:04:34.880Z", + "version": "WzE0MzUsMV0=", + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "[Filebeat] Syslog Process Cloud", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"[Filebeat] Syslog Process Cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"log\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":72,\"showLabel\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"process.program\",\"size\":25,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Process\"}}]}", + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c1e3d120-ffb0-11e8-a854-ad7782ef6a55" + } + ], + "migrationVersion": { + "visualization": "7.4.2" + } + }, + { + "id": "96e77ef0-ffb4-11e8-a854-ad7782ef6a55", + "type": "visualization", + "updated_at": "2019-12-23T19:04:34.880Z", + "version": "WzE0MzYsMV0=", + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "[Filebeat] Syslog Facility by Host Pie Chart", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"[Filebeat] Syslog Facility by Host Pie Chart\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"labels\":{\"show\":false,\"values\":true,\"last_level\":false,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"syslog.facility_label\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Syslog Facility\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"host.name\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Host\"}}]}", + "savedSearchRefName": "search_0" + }, + "references": [ + { + "type": "search", + "name": "search_0", + "id": "c1e3d120-ffb0-11e8-a854-ad7782ef6a55" + } + ], + "migrationVersion": { + "visualization": "7.4.2" + } + } + ] +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/protologbeat/kibana/7/dashboard/Protologbeat-temperatures-dashboard.json b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/protologbeat/kibana/7/dashboard/Protologbeat-temperatures-dashboard.json new file mode 100644 index 0000000..f439289 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/protologbeat/kibana/7/dashboard/Protologbeat-temperatures-dashboard.json @@ -0,0 +1,112 @@ +{ + "objects": [ + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"index\":\"protologbeat-*\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "Temperature Timeline", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"Temperature Timeline\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"grid\":{\"categoryLines\":true,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Max cpu_temp_avg\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Maximum CPU °C\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":false,\"interpolate\":\"cardinal\"},{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":false,\"interpolate\":\"cardinal\",\"data\":{\"id\":\"3\",\"label\":\"Maximum Other °C\"},\"valueAxis\":\"ValueAxis-1\"},{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":false,\"interpolate\":\"cardinal\",\"data\":{\"id\":\"4\",\"label\":\"Maximum GPU °C\"},\"valueAxis\":\"ValueAxis-1\"},{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":false,\"interpolate\":\"cardinal\",\"data\":{\"id\":\"8\",\"label\":\"Maximum Storage °C\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"cpu_temp_avg\",\"customLabel\":\"Maximum CPU °C\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"timeRange\":{\"from\":\"now-12h\",\"to\":\"now\",\"mode\":\"quick\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"time_zone\":\"America/Denver\",\"drop_partials\":false,\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"other_temp_avg\",\"customLabel\":\"Maximum Other °C\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"gpu_temp_avg\",\"customLabel\":\"Maximum GPU °C\"}},{\"id\":\"8\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"hdd_temp_avg\",\"customLabel\":\"Maximum Storage °C\"}}]}" + }, + "id": "752a7e30-03af-11e9-bf7f-6138c205dfb3", + "type": "visualization", + "updated_at": "2018-12-20T18:16:43.966Z", + "version": 1 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "Host Chooser", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"Host Chooser\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1545248066352\",\"indexPattern\":\"protologbeat-*\",\"fieldName\":\"host.name\",\"parent\":\"\",\"label\":\"Host\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"}}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}" + }, + "id": "293d13a0-03c5-11e9-b42b-a7822d24ca20", + "type": "visualization", + "updated_at": "2018-12-19T19:34:54.681Z", + "version": 1 + }, + { + "attributes": { + "columns": [ + "host.name", + "cpu_temp_avg", + "hdd_temp_avg", + "other_temp_avg" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"index\":\"protologbeat-*\",\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "sort": [ + "@timestamp", + "desc" + ], + "title": "Protologbeat search", + "version": 1 + }, + "id": "65345580-03c5-11e9-b42b-a7822d24ca20", + "type": "search", + "updated_at": "2018-12-20T18:16:42.939Z", + "version": 1 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"index\":\"protologbeat-*\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "CPU and Storage Temperature Gauge", + "uiStateJSON": "{\"vis\":{\"defaultColors\":{\"0 - 60\":\"rgb(0,104,55)\",\"60 - 70\":\"rgb(255,255,190)\",\"70 - 90\":\"rgb(165,0,38)\"}}}", + "version": 1, + "visState": "{\"title\":\"CPU and Storage Temperature Gauge\",\"type\":\"gauge\",\"params\":{\"type\":\"gauge\",\"addTooltip\":true,\"addLegend\":false,\"isDisplayWarning\":false,\"gauge\":{\"verticalSplit\":false,\"extendRange\":true,\"percentageMode\":false,\"gaugeType\":\"Arc\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"Labels\",\"colorsRange\":[{\"from\":0,\"to\":60},{\"from\":60,\"to\":70},{\"from\":70,\"to\":90}],\"invertColors\":false,\"labels\":{\"show\":true,\"color\":\"black\"},\"scale\":{\"show\":true,\"labels\":false,\"color\":\"#333\"},\"type\":\"meter\",\"style\":{\"bgWidth\":0.9,\"width\":0.9,\"mask\":false,\"bgMask\":false,\"maskBars\":50,\"bgFill\":\"#eee\",\"bgColor\":false,\"subText\":\"\",\"fontSize\":60,\"labelColor\":true}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"cpu_temp_avg\",\"customLabel\":\"Maximum CPU °C\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"hdd_temp_avg\",\"customLabel\":\"Maximum Storage °C\"}}]}" + }, + "id": "db628ba0-03c5-11e9-b42b-a7822d24ca20", + "type": "visualization", + "updated_at": "2018-12-20T18:16:43.991Z", + "version": 1 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"index\":\"protologbeat-*\",\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[]}" + }, + "title": "Maximum Sensor CPU and Storage Temperatures", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"title\":\"Maximum Sensor CPU and Storage Temperatures\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"},\"valueAxis\":\"ValueAxis-1\"},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100,\"rotate\":0},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\",\"defaultYExtents\":false},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Maximum CPU °C\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Maximum CPU °C\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true},{\"show\":true,\"mode\":\"normal\",\"type\":\"histogram\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"data\":{\"id\":\"3\",\"label\":\"Maximum Storage °C\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"bottom\",\"times\":[],\"addTimeMarker\":false,\"orderBucketsBySum\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"cpu_temp_avg\",\"customLabel\":\"Maximum CPU °C\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"host.name\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Sensor Name\"}},{\"id\":\"3\",\"enabled\":true,\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"hdd_temp_avg\",\"customLabel\":\"Maximum Storage °C\"}}]}" + }, + "id": "923c3ce0-03c6-11e9-b42b-a7822d24ca20", + "type": "visualization", + "updated_at": "2018-12-20T18:16:43.961Z", + "version": 1 + }, + { + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}" + }, + "optionsJSON": "{\"darkTheme\":true,\"hidePanelTitles\":false,\"useMargins\":false}", + "panelsJSON": "[{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":31,\"w\":48,\"h\":35,\"i\":\"1\"},\"id\":\"752a7e30-03af-11e9-bf7f-6138c205dfb3\",\"panelIndex\":\"1\",\"type\":\"visualization\",\"version\":\"6.5.3\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":0,\"w\":20,\"h\":11,\"i\":\"2\"},\"id\":\"293d13a0-03c5-11e9-b42b-a7822d24ca20\",\"panelIndex\":\"2\",\"title\":\"Sensor Filter\",\"type\":\"visualization\",\"version\":\"6.5.3\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":66,\"w\":48,\"h\":29,\"i\":\"3\"},\"id\":\"65345580-03c5-11e9-b42b-a7822d24ca20\",\"panelIndex\":\"3\",\"title\":\"Sensor Metrics\",\"type\":\"search\",\"version\":\"6.5.3\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":0,\"y\":11,\"w\":20,\"h\":20,\"i\":\"4\"},\"id\":\"db628ba0-03c5-11e9-b42b-a7822d24ca20\",\"panelIndex\":\"4\",\"type\":\"visualization\",\"version\":\"6.5.3\"},{\"embeddableConfig\":{},\"gridData\":{\"x\":20,\"y\":0,\"w\":28,\"h\":31,\"i\":\"5\"},\"id\":\"923c3ce0-03c6-11e9-b42b-a7822d24ca20\",\"panelIndex\":\"5\",\"type\":\"visualization\",\"version\":\"6.5.3\"}]", + "timeRestore": false, + "title": "Sensor Temperature dashboard", + "version": 1 + }, + "id": "3c519150-03c5-11e9-b42b-a7822d24ca20", + "type": "dashboard", + "updated_at": "2018-12-20T18:16:43.882Z", + "version": 1 + } + ], + "version": "6.5.3" +} diff --git a/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/protologbeat/kibana/7/index-pattern/protologbeat.json b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/protologbeat/kibana/7/index-pattern/protologbeat.json new file mode 100644 index 0000000..d686f2c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/includes.chroot/usr/share/protologbeat/kibana/7/index-pattern/protologbeat.json @@ -0,0 +1,16 @@ +{ + "objects": [ + { + "attributes": { + "fieldFormatMap": "{\"@timestamp\":{\"id\":\"date\"}}", + "fields": "[{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"counter\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"cpu_rpm_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"cpu_volt_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"cpu_temp_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"gpu_rpm_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"gpu_volt_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"gpu_temp_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"hdd_temp_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"other_rpm_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"other_volt_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"other_temp_avg\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"sensors.adapter\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"sensors.class\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"sensors.label\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"sensors.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"sensors.units\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"sensors.value\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"beat.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"beat.hostname\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"event.timezone\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"beat.version\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"@timestamp\",\"scripted\":false,\"searchable\":true,\"type\":\"date\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"tags\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"fields\",\"scripted\":false,\"searchable\":true},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"error.message\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"error.code\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"error.type\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.provider\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.instance_id\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.instance_name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.machine_type\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.availability_zone\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.project_id\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"meta.cloud.region\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"docker.container.id\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"docker.container.image\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"docker.container.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"docker.container.labels\",\"scripted\":false,\"searchable\":true},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.id\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.architecture\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.os.platform\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.os.version\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.os.family\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.ip\",\"scripted\":false,\"searchable\":true},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"host.mac\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.pod.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.pod.uid\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.namespace\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.node.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.labels\",\"scripted\":false,\"searchable\":true},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.annotations\",\"scripted\":false,\"searchable\":true},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.container.name\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"kubernetes.container.image\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"_id\",\"scripted\":false,\"searchable\":false,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"_type\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"_index\",\"scripted\":false,\"searchable\":false,\"type\":\"string\"},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"_score\",\"scripted\":false,\"searchable\":false,\"type\":\"number\"}]", + "timeFieldName": "@timestamp", + "title": "protologbeat-*" + }, + "id": "protologbeat-*", + "type": "index-pattern", + "version": 1 + } + ], + "version": "6.5.3" +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/package-lists/apps.list.chroot b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/apps.list.chroot new file mode 100644 index 0000000..10244fd --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/apps.list.chroot @@ -0,0 +1,10 @@ +bc +clamav +clamav-daemon +clamav-freshclam +file-roller +galculator +libclamunrar9 +mousepad +mupdf +xdiskusage \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/package-lists/build.list.chroot b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/build.list.chroot new file mode 100644 index 0000000..a8bc54b --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/build.list.chroot @@ -0,0 +1,33 @@ +bison +ccache +checkinstall +clang-11 +cmake +git +google-perftools +libclang-11-dev +libclang1-11 +libfl-dev +libfl2 +libgoogle-perftools4 +libjansson-dev +libjansson4 +libmagic-dev +libmagic1 +libmaxminddb-dev +libmaxminddb0 +libpcap-dev +libpcap0.8 +libssl-dev +libssl1.1 +libtcmalloc-minimal4 +llvm-11 +llvm-11-dev +llvm-11-runtime +llvm-11-tools +locales-all +make +ninja-build +patch +swig +zlib1g-dev \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/package-lists/desktopmanager.list.chroot b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/desktopmanager.list.chroot new file mode 100644 index 0000000..4d56027 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/desktopmanager.list.chroot @@ -0,0 +1,20 @@ +arandr +dconf-cli +fonts-symbola +libnotify-bin +lightdm +lxde +lxpanel +lxsession +open-vm-tools-desktop +x11-apps +x11-session-utils +x11-xfs-utils +x11-xserver-utils +xinit +xorg +xscreensaver +xserver-xorg +xserver-xorg-core +xserver-xorg-video-qxl +xserver-xorg-video-vmware \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/package-lists/grub.list.binary b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/grub.list.binary new file mode 100644 index 0000000..9f8f2ba --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/grub.list.binary @@ -0,0 +1,6 @@ +grub-common +grub-efi-amd64 +grub-efi-amd64-bin +grub-pc-bin +grub2-common +os-prober \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/package-lists/net.list.chroot b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/net.list.chroot new file mode 100644 index 0000000..169be1b --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/net.list.chroot @@ -0,0 +1,25 @@ +curl +ethtool +htpdate +iproute2 +iputils-arping +iputils-ping +iputils-tracepath +libcurl4 +libmmdb2-0 +libpcap0.8 +libssh2-1 +macchanger +netcat-openbsd +ntp +openssh-client +openssh-server +openvpn +rsync +snmp +ssh-askpass +socat +tcpdump +traceroute +ufw +wget diff --git a/Vagrant/resources/malcolm/sensor-iso/config/package-lists/python.list.chroot b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/python.list.chroot new file mode 100644 index 0000000..0aa1486 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/python.list.chroot @@ -0,0 +1,19 @@ +python3 +python3-bs4 +python3-colorama +python3-dev +python3-dialog +python3-git +python3-magic +python3-netifaces +python3-pip +python3-psutil +python3-pycryptodome +python3-pyinotify +python3-requests +python3-scapy +python3-semantic-version +python3-setuptools +python3-wheel +python3-yara +python3-zmq \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/package-lists/system.list.chroot b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/system.list.chroot new file mode 100644 index 0000000..5277698 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/system.list.chroot @@ -0,0 +1,157 @@ +accountsservice +apparmor +apparmor-profiles +apparmor-utils +apt +arj +atop +audispd-plugins +auditd +autopoint +bash-completion +bc +bcrypt +bridge-utils +btrfs-progs +busybox +bzip2 +cifs-utils +coreutils +cpio +cpufrequtils +cracklib-runtime +cryptsetup +cryptsetup-bin +cryptsetup-initramfs +curl +debsums +dialog +dmidecode +dosfstools +ebtables +efibootmgr +eject +fatresize +file +flex +fonts-dejavu +fuse +fuseext2 +fusefat +fuseiso +fusesmb +gawk +gdb +gdebi +gettext +ghostscript +ghostscript-x +gnupg +gnupg1 +gnupg2 +gpart +gparted +gvfs +gvfs-backends +gvfs-daemons +gvfs-fuse +gzip +hddtemp +hdparm +hfsplus +hfsprogs +hfsutils +htop +hwdata +javascript-common +jq +less +libatomic1 +libffi6 +libgtk2.0-bin +libjson-perl +libkrb5-3 +liblsan0 +libnl-3-200 +libnl-genl-3-200 +libnl-route-3-200 +libpam-pwquality +libtool +libtsan0 +libubsan1 +libunwind8 +libwww-perl +libykpers-1-1 +libyubikey0 +libzmq5 +lm-sensors +localepurge +lshw +lsof +lvm2 +lzma +mcrypt +md5deep +menu +miscfiles +moreutils +mtools +multitail +ncdu +neofetch +net-tools +ntfs-3g +p7zip +p7zip-full +p7zip-rar +parprouted +partclone +parted +pciutils +pcregrep +pigz +pkg-config +pmount +policykit-1 +prelink +procps +psmisc +pv +pwgen +rar +rtkit +samba-libs +screen +sed +sharutils +shed +smartmontools +smbclient +sparse +speedometer +squashfs-tools +strace +sudo +supervisor +sysstat +tar +terminator +tmux +tofrodos +tree +udisks2 +unrar +unzip +upower +usbutils +user-setup +uuid-runtime +wamerican +whois +xbitmaps +xfsprogs +xsltproc +xz-utils +zenity +zenity-common +zip \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/config/package-lists/vbox.list.chroot b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/vbox.list.chroot new file mode 100644 index 0000000..64fbb9c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/config/package-lists/vbox.list.chroot @@ -0,0 +1,3 @@ +virtualbox-guest-dkms +virtualbox-guest-utils +virtualbox-guest-x11 \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/doc.css b/Vagrant/resources/malcolm/sensor-iso/doc.css new file mode 100644 index 0000000..cfef2a6 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/doc.css @@ -0,0 +1,324 @@ +html { + font-size: 100%; + overflow-y: scroll; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + color: #444; + font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif; + font-size: 12px; + line-height: 1.7; + padding: 1em; + margin: auto; + max-width: 1366px; + background: #fefefe; +} + +a { + color: #0645ad; + text-decoration: none; +} + +a:visited { + color: #0b0080; +} + +a:hover { + color: #06e; +} + +a:active { + color: #faa700; +} + +a:focus { + outline: thin dotted; +} + +*::-moz-selection { + background: rgba(255, 255, 0, 0.3); + color: #000; +} + +*::selection { + background: rgba(255, 255, 0, 0.3); + color: #000; +} + +a::-moz-selection { + background: rgba(255, 255, 0, 0.3); + color: #0645ad; +} + +a::selection { + background: rgba(255, 255, 0, 0.3); + color: #0645ad; +} + +p { + margin: 1em 0; +} + +img { + max-width: 100%; +} + +h1, h2, h3, h4, h5, h6 { + color: #111; + line-height: 125%; + margin-top: 2em; + font-weight: normal; +} + +h4, h5, h6 { + font-weight: bold; +} + +h1 { + font-size: 2.5em; +} + +h2 { + font-size: 2em; +} + +h3 { + font-size: 1.5em; +} + +h4 { + font-size: 1.2em; +} + +h5 { + font-size: 1em; +} + +h6 { + font-size: 0.9em; +} + +blockquote { + color: #666666; + margin: 0; + padding-left: 3em; + border-left: 0.5em #EEE solid; +} + +hr { + display: block; + height: 2px; + border: 0; + border-top: 1px solid #aaa; + border-bottom: 1px solid #eee; + margin: 1em 0; + padding: 0; +} + +pre, code, kbd, samp { + color: #000; + font-family: monospace, monospace; + _font-family: 'courier new', monospace; + font-size: 0.98em; +} + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +b, strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +ins { + background: #ff9; + color: #000; + text-decoration: none; +} + +mark { + background: #ff0; + color: #000; + font-style: italic; + font-weight: bold; +} + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +ul, ol { + margin: 1em 0; + padding: 0 0 0 2em; +} + +li p:last-child { + margin-bottom: 0; +} + +ul ul, ol ol { + margin: .3em 0; +} + +dl { + margin-bottom: 1em; +} + +dt { + font-weight: bold; + margin-bottom: .8em; +} + +dd { + margin: 0 0 .8em 2em; +} + +dd:last-child { + margin-bottom: 0; +} + +img { + border: 0; + -ms-interpolation-mode: bicubic; + vertical-align: middle; +} + +figure { + display: block; + text-align: center; + margin: 1em 0; +} + +figure img { + border: none; + margin: 0 auto; +} + +p.caption, figcaption { + font-size: 0.8em; + font-style: italic; + margin: 0 0 .8em; +} + +table { + margin-bottom: 2em; + border-bottom: 1px solid #ddd; + border-right: 1px solid #ddd; + border-spacing: 0; + border-collapse: collapse; +} + +table th { + padding: .2em 1em; + background-color: #eee; + border-top: 1px solid #ddd; + border-left: 1px solid #ddd; +} + +table td { + padding: .2em 1em; + border-top: 1px solid #ddd; + border-left: 1px solid #ddd; + vertical-align: top; +} + +.author { + font-size: 1.2em; + text-align: center; +} + +@media only screen and (min-width: 480px) { + body { + font-size: 14px; + } +} +@media only screen and (min-width: 768px) { + body { + font-size: 16px; + } +} +@media print { + * { + background: transparent !important; + color: black !important; + filter: none !important; + -ms-filter: none !important; + } + + body { + font-size: 12pt; + max-width: 100%; + } + + a, a:visited { + text-decoration: underline; + } + + hr { + height: 1px; + border: 0; + border-bottom: 1px solid black; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { + content: ""; + } + + pre, blockquote { + border: 1px solid #999; + padding-right: 1em; + page-break-inside: avoid; + } + + tr, img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + @page :left { + margin: 15mm 20mm 15mm 10mm; +} + + @page :right { + margin: 15mm 10mm 15mm 20mm; +} + + p, h2, h3 { + orphans: 3; + widows: 3; + } + + h2, h3 { + page-break-after: avoid; + } +} diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/autostarts.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/autostarts.png new file mode 100644 index 0000000..f5442cc Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/autostarts.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/autostarts_confirm.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/autostarts_confirm.png new file mode 100644 index 0000000..cfa8406 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/autostarts_confirm.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/boot_options.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/boot_options.png new file mode 100644 index 0000000..49fda09 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/boot_options.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_config_main.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_config_main.png new file mode 100644 index 0000000..7e6a1e6 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_config_main.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_confirm.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_confirm.png new file mode 100644 index 0000000..826d6ee Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_confirm.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_filter.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_filter.png new file mode 100644 index 0000000..6a8647c Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_filter.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_iface_select.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_iface_select.png new file mode 100644 index 0000000..28c631e Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_iface_select.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_paths.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_paths.png new file mode 100644 index 0000000..f522125 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/capture_paths.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/desktop.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/desktop.png new file mode 100644 index 0000000..cbf1c3a Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/desktop.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/elasticsearch-username.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/elasticsearch-username.png new file mode 100644 index 0000000..227aca6 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/elasticsearch-username.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/elasticsearch_password.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/elasticsearch_password.png new file mode 100644 index 0000000..3558bd8 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/elasticsearch_password.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/file_quarantine.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/file_quarantine.png new file mode 100644 index 0000000..41dc5ce Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/file_quarantine.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_certs.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_certs.png new file mode 100644 index 0000000..42e7a03 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_certs.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_confirm.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_confirm.png new file mode 100644 index 0000000..fa7b83b Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_confirm.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_dest.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_dest.png new file mode 100644 index 0000000..b5ca6bf Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_dest.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_ssl.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_ssl.png new file mode 100644 index 0000000..e3f517c Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_ssl.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_ssl_verify.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_ssl_verify.png new file mode 100644 index 0000000..235b8d3 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/filebeat_ssl_verify.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/forwarder_config.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/forwarder_config.png new file mode 100644 index 0000000..f7bc8f0 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/forwarder_config.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/hedgehog-color-w-text.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/hedgehog-color-w-text.png new file mode 120000 index 0000000..e03fab3 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/images/hedgehog-color-w-text.png @@ -0,0 +1 @@ +../logo/hedgehog-color-w-text.png \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/hostname_setting.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/hostname_setting.png new file mode 100644 index 0000000..0c7e1f6 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/hostname_setting.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/htpdate_freq.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/htpdate_freq.png new file mode 100644 index 0000000..1de5d38 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/htpdate_freq.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/htpdate_host.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/htpdate_host.png new file mode 100644 index 0000000..e9597d1 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/htpdate_host.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/htpdate_setup.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/htpdate_setup.png new file mode 100644 index 0000000..3370277 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/htpdate_setup.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/htpdate_test.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/htpdate_test.png new file mode 100644 index 0000000..7e74f04 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/htpdate_test.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/iface_mode.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/iface_mode.png new file mode 100644 index 0000000..b7b6427 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/iface_mode.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/iface_static.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/iface_static.png new file mode 100644 index 0000000..25b1084 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/iface_static.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/installer_progress.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/installer_progress.png new file mode 100644 index 0000000..be4960f Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/installer_progress.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/kiosk_mode_sensor_menu.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/kiosk_mode_sensor_menu.png new file mode 100644 index 0000000..bea2cd1 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/kiosk_mode_sensor_menu.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/kiosk_mode_services_menu.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/kiosk_mode_services_menu.png new file mode 100644 index 0000000..80f155c Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/kiosk_mode_services_menu.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/kiosk_mode_status.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/kiosk_mode_status.png new file mode 100644 index 0000000..61ffd3b Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/kiosk_mode_status.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/kiosk_mode_wipe_prompt.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/kiosk_mode_wipe_prompt.png new file mode 100644 index 0000000..61c773d Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/kiosk_mode_wipe_prompt.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/malcolm_moloch_reachback_acl.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/malcolm_moloch_reachback_acl.png new file mode 100644 index 0000000..91d41a1 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/malcolm_moloch_reachback_acl.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metircbeat_kibana_host.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metircbeat_kibana_host.png new file mode 100644 index 0000000..33199d5 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metircbeat_kibana_host.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_confirm.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_confirm.png new file mode 100644 index 0000000..aeb46a4 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_confirm.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_host.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_host.png new file mode 100644 index 0000000..90eb706 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_host.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_password.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_password.png new file mode 100644 index 0000000..a9402fa Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_password.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_password_2.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_password_2.png new file mode 100644 index 0000000..f1f6aec Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_password_2.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_protocol.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_protocol.png new file mode 100644 index 0000000..d286813 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_protocol.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_ssl.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_ssl.png new file mode 100644 index 0000000..eccebdf Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_ssl.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_username.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_username.png new file mode 100644 index 0000000..0d20c51 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elastic_username.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elasticsearch_success.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elasticsearch_success.png new file mode 100644 index 0000000..b118369 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_elasticsearch_success.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_interval.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_interval.png new file mode 100644 index 0000000..5bdf198 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_interval.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana.png new file mode 100644 index 0000000..df274a3 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana_dashboard_path.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana_dashboard_path.png new file mode 100644 index 0000000..af7e3b7 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana_dashboard_path.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana_dashboards.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana_dashboards.png new file mode 100644 index 0000000..3aa1567 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana_dashboards.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana_protocol.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana_protocol.png new file mode 100644 index 0000000..cfd64fa Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana_protocol.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana_success.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana_success.png new file mode 100644 index 0000000..25ea84d Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_kibana_success.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_success.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_success.png new file mode 100644 index 0000000..7be762e Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeat_success.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeta_kibana_ssl.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeta_kibana_ssl.png new file mode 100644 index 0000000..ba7f064 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/metricbeta_kibana_ssl.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/moloch-capture-ip-port.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/moloch-capture-ip-port.png new file mode 100644 index 0000000..925eb27 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/moloch-capture-ip-port.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/moloch_confirm.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/moloch_confirm.png new file mode 100644 index 0000000..ec2c2a7 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/moloch_confirm.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/moloch_success.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/moloch_success.png new file mode 100644 index 0000000..006bf07 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/moloch_success.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/ntp_host.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/ntp_host.png new file mode 100644 index 0000000..9ce2d4c Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/ntp_host.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/root_config_mode.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/root_config_mode.png new file mode 100644 index 0000000..f17b49b Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/root_config_mode.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/select_iface.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/select_iface.png new file mode 100644 index 0000000..9b18eae Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/select_iface.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/time_sync_mode.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/time_sync_mode.png new file mode 100644 index 0000000..155edbe Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/time_sync_mode.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/time_sync_success.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/time_sync_success.png new file mode 100644 index 0000000..b02a069 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/time_sync_success.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/users_and_passwords.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/users_and_passwords.png new file mode 100644 index 0000000..55df950 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/users_and_passwords.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/zeek_file_carve_mode.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/zeek_file_carve_mode.png new file mode 100644 index 0000000..18225af Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/zeek_file_carve_mode.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/images/zeek_file_carve_scanners.png b/Vagrant/resources/malcolm/sensor-iso/docs/images/zeek_file_carve_scanners.png new file mode 100644 index 0000000..7be0b9a Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/images/zeek_file_carve_scanners.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/Attribution.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/Attribution.txt new file mode 100644 index 0000000..2a4b615 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/Attribution.txt @@ -0,0 +1 @@ +The Hedgehog Linux logo was designed by Jason Grover (groverdesign@gmail.com). diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/CONTRIBUTING.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/CONTRIBUTING.txt new file mode 100644 index 0000000..15bdc0c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/CONTRIBUTING.txt @@ -0,0 +1,21 @@ +The Ubuntu Font Family is very long-term endeavour, and the first time +that a professionally-designed font has been funded specifically with +the intent of being an on-going community expanded project: + + http://font.ubuntu.com/ + +Development of the Ubuntu Font Family is undertaken on Launchpad: + + http://launchpad.net/ubuntu-font-family/ + +and this is where milestones, bug management and releases are handled. + +Contributions are welcomed. Your work will be used on millions of +computers every single day! Following the initial bootstrapping of +Latin, Cyrillic, Greek, Arabic and Hebrew expansion will be undertaken +by font designers from the font design and Ubuntu communities. + +To ensure that the Ubuntu Font Family can be re-licensed to future +widely-used libre font licences, copyright assignment is being required: + + https://launchpad.net/~uff-contributors diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/COPYRIGHT.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/COPYRIGHT.txt new file mode 100644 index 0000000..ae78a8f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/COPYRIGHT.txt @@ -0,0 +1,96 @@ +------------------------------- +UBUNTU FONT LICENCE Version 1.0 +------------------------------- + +PREAMBLE +This licence allows the licensed fonts to be used, studied, modified and +redistributed freely. The fonts, including any derivative works, can be +bundled, embedded, and redistributed provided the terms of this licence +are met. The fonts and derivatives, however, cannot be released under +any other licence. The requirement for fonts to remain under this +licence does not require any document created using the fonts or their +derivatives to be published under this licence, as long as the primary +purpose of the document is not to be a vehicle for the distribution of +the fonts. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this licence and clearly marked as such. This may +include source files, build scripts and documentation. + +"Original Version" refers to the collection of Font Software components +as received under this licence. + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to +a new environment. + +"Copyright Holder(s)" refers to all individuals and companies who have a +copyright ownership of the Font Software. + +"Substantially Changed" refers to Modified Versions which can be easily +identified as dissimilar to the Font Software by users of the Font +Software comparing the Original Version with the Modified Version. + +To "Propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification and with or without charging +a redistribution fee), making available to the public, and in some +countries other activities as well. + +PERMISSION & CONDITIONS +This licence does not grant any rights under trademark law and all such +rights are reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Font Software, to propagate the Font Software, subject to +the below conditions: + +1) Each copy of the Font Software must contain the above copyright +notice and this licence. These can be included either as stand-alone +text files, human-readable headers or in the appropriate machine- +readable metadata fields within text or binary files as long as those +fields can be easily viewed by the user. + +2) The font name complies with the following: +(a) The Original Version must retain its name, unmodified. +(b) Modified Versions which are Substantially Changed must be renamed to +avoid use of the name of the Original Version or similar names entirely. +(c) Modified Versions which are not Substantially Changed must be +renamed to both (i) retain the name of the Original Version and (ii) add +additional naming elements to distinguish the Modified Version from the +Original Version. The name of such Modified Versions must be the name of +the Original Version, with "derivative X" where X represents the name of +the new work, appended to that name. + +3) The name(s) of the Copyright Holder(s) and any contributor to the +Font Software shall not be used to promote, endorse or advertise any +Modified Version, except (i) as required by this licence, (ii) to +acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with +their explicit written permission. + +4) The Font Software, modified or unmodified, in part or in whole, must +be distributed entirely under this licence, and must not be distributed +under any other licence. The requirement for fonts to remain under this +licence does not affect any document created using the Font Software, +except any version of the Font Software extracted from a document +created using the Font Software may only be distributed under this +licence. + +TERMINATION +This licence becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/DESCRIPTION.en_us.html b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/DESCRIPTION.en_us.html new file mode 100644 index 0000000..8a8d0c0 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/DESCRIPTION.en_us.html @@ -0,0 +1,19 @@ +

+The Ubuntu Font Family are a set of matching new libre/open fonts in development during 2010-2011. +The development is being funded by Canonical Ltd on behalf the wider Free Software community and the Ubuntu project. +The technical font design work and implementation is being undertaken by Dalton Maag. +

+

+Both the final font Truetype/OpenType files and the design files used to produce the font family are distributed under an open licence and you are expressly encouraged to experiment, modify, share and improve. +

+

+The new Ubuntu Font Family was started to enable the personality of Ubuntu to be seen and felt in every menu, button and dialog. +The typeface is sans-serif, uses OpenType features and is manually hinted for clarity on desktop and mobile computing screens. +

+

+The scope of the Ubuntu Font Family includes all the languages used by the various Ubuntu users around the world in tune with Ubuntu's philosophy which states that every user should be able to use their software in the language of their choice. +So the Ubuntu Font Family project will be extended to cover many more written languages. +

+

+Ubuntu and Canonical are registered trademarks of Canonical Ltd. +

diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/FONTLOG.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/FONTLOG.txt new file mode 100644 index 0000000..83022be --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/FONTLOG.txt @@ -0,0 +1,292 @@ +This is the FONTLOG file for the Ubuntu Font Family and attempts to follow +the recommendations at: http://scripts.sil.org/OFL-FAQ_web#43cecb44 + + +Overview + +The new Ubuntu Font Family was started to enable the personality of +Ubuntu to be seen and felt in every menu, button and dialog. +The typeface is sans-serif, uses OpenType features and is manually +hinted for clarity on desktop and mobile computing screens. + +The scope of the Ubuntu Font Family includes all the languages used by +the various Ubuntu users around the world in tune with Ubuntu's +philosophy which states that every user should be able to use their +software in the language of their choice. So the Ubuntu Font Family +project will be extended to cover many more written languages. + + +History + +The Ubuntu Font Family has been creating during 2010 and 2011. As of +September 2011 coverage is provided for Latin, Cyrillic and Greek across +Regular, Italic, Bold and Bold-Italic. Further work was uptaken during +2015. + + +ChangeLog + +2015-08-21 (Paul Sladen) Ubuntu Font Family version 0.83 + + Note: This release was created by binary patching from the v0.80 + release using the scripts in 'sources/patch-0.80-0.83/' to rebuild + the necessary tables. The release selectively updates only those + proportional .ttf font files exhibiting the bug below bug number; + the Ubuntu Mono monospace font files remain unchanged, being the + original version 0.80 ones. + + [Marc Foley] + * [Engineering] Fixed wrong characters appear in some mac apps. (LP: #1334363) + + +2011-09-22 (Paul Sladen) Ubuntu Font Family version 0.80 + + [Vincent Connare/Dalton Maag] + * Wish for addition of a monospaced member to the family (LP: #640382) + * Mono: No hinting yet - Ubuntu Beta Mono font looks jagged in + Netbeans and terrible with ClearType (LP: #820493) + * Emacs: choosing normal monospace font in Emacs but gives bold-italic + (LP: #791076) + * PUA: ensure that Ubuntu Circle of Friends logo is full size: (LP: #853855) + + U+E0FF becomes large size in proportionals, remains small width in + monospaces + + U+F0FF becomes small size (proportionals only) + + U+F200 is full ubuntu logomark (proportionals only) + + [Paul Sladen] + * Monospace: Patch Family Name to be "Ubuntu Mono" + * Monospace: Patch U+EFFD version debugging glyph to be '0.8' + + [Cody Boisclair] + * Monospace: Force .null HDMX advance to 500 + * Monospace: Remap ASCII box-drawing characters (LP: #788757) + + [Júlio Reis] + * Date corrections to 'FONTLOG' (LP: #836595) + +2011-03-08 (Paul Sladen) Ubuntu Font Family version 0.71.2 + + * (Production) Adjust Medium WeightClass to 500 (Md, MdIt) (LP: #730912) + +2011-03-07 (Paul Sladen) Ubuntu Font Family version 0.71.1 + + * (Design) Add Capitalised version of glyphs and kern. (Lt, LtIt, + Md, MdIt) DM (LP: #677446) + * (Design) Re-space and tighen Regular and Italic by amount specified + by Mark Shuttleworth (minus 4 FUnits). (Rg, It) (LP: #677149) + * (Design) Design: Latin (U+0192) made straight more like l/c f with + tail (LP: #670768) + * (Design) (U+01B3) should have hook on right, as the lowercase + (U+01B4) (LP: #681026) + * (Design) Tail of Light Italic germandbls, longs and lowercase 'f' + to match Italic/BoldItalic (LP: #623925) + * (Production) Update feature (Lt, LtIt, Md, MdIt). DM + (LP: #676538, #676539) + * (Production) Remove Bulgarian locl feature for Italics. (LP: #708578) + * (Production) Update Description information with new string: + "The Ubuntu Font Family are libre fonts funded by Canonical Ltd + on behalf of the Ubuntu project. The font design work and + technical implementation is being undertaken by Dalton Maag. The + typeface is sans-serif, uses OpenType features and is manually + hinted for clarity on desktop and mobile computing screens. The + scope of the Ubuntu Font Family includes all the languages used + by the various Ubuntu users around the world in tune with + Ubuntu's philosophy which states that every user should be able + to use their software in the language of their choice. The + project is ongoing, and we expect the family will be extended to + cover many written languages in the coming years." + (Rg, It, Bd, BdIt, Lt, LtIt, Md, MdIt) (LP: #690590) + * (Production) Pixel per em indicator added at U+F000 (Lt, LtIt, Md, + MdIt) (LP: #615787) + * (Production) Version number indicator added at U+EFFD (Lt, LtIt, Md, + MdIt) (LP: #640623) + * (Production) fstype bit set to 0 - Editable (Lt, LtIt, Md, MdIt) + (LP: #648406) + * (Production) Localisation of name table has been removed because + of problems with Mac OS/X interpretation of localisation. DM + (LP: #730785) + * (Hinting) Regular '?' dot non-circular (has incorrect control + value). (LP: #654336) + * (Hinting) Too much space after latin capital 'G' in 13pt + regular. Now reduced. (LP: #683437) + * (Hinting) Balance Indian Rupee at 18,19pt (LP: #662177) + * (Hinting) Make Regular '£' less ambiguous at 13-15 ppm (LP: #685562) + * (Hinting) Regular capital 'W' made symmetrical at 31 ppem (LP: #686168) + +2010-12-14 (Paul Sladen) Ubuntu Font Family version 0.70.1 + + Packaging, rebuilt from '2010-12-08 UbuntuFontsSourceFiles_070.zip': + * (Midstream) Fstype bit != 0 (LP: #648406) + * (Midstream) Add unit test to validate fstype bits (LP: #648406) + * (Midstream) Add unit test to validate licence + +2010-12-14 (Paul Sladen) Ubuntu Font Family version 0.70 + + Release notes 0.70: + * (Design) Add Capitalised version of glyphs and kern. (Rg, It, Bd, + BdIt) DM (LP: #676538, #677446) + * (Design) Give acute and grave a slight upright move to more match + the Hungarian double acute angle. (Rg, It, Bd, BdIt) (LP: #656647) + * (Design) Shift Bold Italic accent glyphs to be consistent with the + Italic. (BdIt only) DM (LP: #677449) + * (Design) Check spacing and kerning of dcaron, lcaron and + tcaron. (Rg, It, Bd, BdIt) (LP: #664722) + * (Design) Add positive kerning to () {} [] to open out the + combinations so they are less like a closed box. (Rg, It, Bd, + BdIt) (LP: #671228) + * (Design) Change design of acute.asc and check highest points (Bd + and BdIt only) DM + * (Production) Update feature. DM (LP: #676538, #676539) + * (Production) Remove Romanian locl feature. (Rg, It, Bd, BdIt) + (LP: #635615) + * (Production) Update Copyright information with new + strings. "Copyright 2010 Canonical Ltd. Licensed under the Ubuntu + Font Licence 1.0" Trademark string "Ubuntu and Canonical are + registered trademarks of Canonical Ltd." (Rg, It, Bd, BdIt) DM + (LP: #677450) + * (Design) Check aligning of hyphen, math signs em, en, check braces + and other brackets. 16/11 (LP: #676465) + * (Production) Pixel per em indicator added at U+F000 (Rg, It, Bd, + BdIt) (LP: #615787) + * (Production) Version number indicator added at U+EFFD (Rg, It, Bd, + BdIt) (LP: #640623) + * (Production) fstype bit set to 0 - Editable (Rg, It, Bd, BdIt) + (LP: #648406) + +2010-10-05 (Paul Sladen) Ubuntu Font Family version 0.69 + + [Dalton Maag] + * Italic, + - Hinting on lowercase Italic l amended 19ppm (LP: #632451) + - Hinting on lowercase Italic u amended 12ppm (LP: #626376) + + * Regular, Italic, Bold, BoldItalic + - New Rupee Sign added @ U+20B9 (LP: #645987) + - Ubuntu Roundel added @ U+E0FF (LP: #651606) + + [Paul Sladen] + * All + - Removed "!ubu" GSUB.calt ligature for U+E0FF (LP: #651606) + + +Acknowledgements + +If you make modifications be sure to add your name (N), email (E), +web-address (if you have one) (W) and description (D). This list is in +alphabetical order. + +N: Ryan Abdullah +W: http://www.rayan.de/ +D: Arabic calligraphy and design in collaboration with Dalton Maag +D: Arabic testing + +N: Cody Boisclair +D: Monospace low-level debugging and patching ('fixboxdrawing-ft.py') + +N: Amélie Bonet +W: http://ameliebonet.com/ +D: Type design with Dalton Maag, particularly Ubuntu Mono and Ubuntu Condensed + +N: Jason Campbell +W: http://www.campbellgraphics.com/design/fonts.shtml +D: Monospace hinting (first phase) at Dalton Maag + +N: Pilar Cano +W: http://www.pilarcano.com/ +D: Hebrew realisation with Dalton Maag + +N: Fernando Caro +D: Type design with Dalton Maag, particularly Ubuntu Condensed + +N: Ron Carpenter +W: http://www.daltonmaag.com/ +D: Type design with Dalton Maag +D: Arabic realisation in collaboration with Ryan Abdullah + +N: Vincent Connare +W: http://www.connare.com/ +D: Type design, and engineering with Dalton Maag +D: Monospace hinting (second phase) at Dalton Maag + +N: Dave Crossland +E: dave@understandingfonts.com +W: http://understandingfonts.com/ +D: Documentation and libre licensing guidance +D: Google Webfont integration at Google + +N: Steve Edwards +W: http://www.madebymake.com/ +D: font.ubuntu.com revamp implementation with Canonical Web Team + +N: Iain Farrell +W: http://www.flickr.com/photos/iain +D: Ubuntu Font Family delivery for the Ubuntu UX team at Canonical + +N: Marc Foley +W: http://www.marcfoley.co/ +D: Font Engineer at Dalton Maag for the 2015 updates + +N: Shiraaz Gabru +W: http://www.daltonmaag.com/ +D: Ubuntu Font Family project management at Dalton Maag + +N: Marcus Haslam +W: http://design.canonical.com/author/marcus-haslam/ +D: Creative inspiration + +N: Ben Laenen +D: Inspiration behind the pixels-per-em (PPEM) readout debugging glyph at U+F000 + (for this font the concept was re-implemented from scratch by Dalton-Maag) + +N: Bruno Maag +W: http://www.daltonmaag.com/ +D: Stylistic direction of the Ubuntu Font Family, as head of Dalton Maag + +N: Ivanka Majic +W: http://www.ivankamajic.com/ +D: Guiding the UX team and Cyrillic feedback + +N: David Marshall +W: http://www.daltonmaag.com/ +D: Technical guidance and administration at Dalton Maag + +N: Malcolm Wooden +W: http://www.daltonmaag.com/ +D: Font Engineering at Dalton Maag + +N: Lukas Paltram +W: http://www.daltonmaag.com/ +D: Type design with Dalton Maag + +N: Júlio Reis +D: Date fixes to the documentation + +N: Rodrigo Rivas +D: Indian Rupee Sign glyph + +N: Mark Shuttleworth +E: mark@ubuntu.com +W: http://www.markshuttleworth.com/ +D: Executive quality-control and funding + +N: Paul Sladen +E: ubuntu@paul.sladen.org +W: http://www.paul.sladen.org/ +D: Bug triaging, packaging at Ubuntu and Canonical + +N: Nicolas Spalinger +W: http://planet.open-fonts.org +D: Continuous guidance on libre/open font licensing, best practises in source + tree layout, release and packaging (pkg-fonts Debian team) + +N: Kenneth Wimer +D: Initial PPA packaging + +* Canonical Ltd is the primary commercial sponsor of the Ubuntu and + Kubuntu operating systems +* Dalton Maag are a custom type foundry headed by Bruno Maag + +For further documentation, information on contributors, source code +downloads and those involved with the Ubuntu Font Family, visit: + + http://font.ubuntu.com/ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/LICENCE-FAQ.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/LICENCE-FAQ.txt new file mode 100644 index 0000000..776a25e --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/LICENCE-FAQ.txt @@ -0,0 +1,177 @@ + Ubuntu Font Family Licensing FAQ + + Stylistic Foundations + + The Ubuntu Font Family is the first time that a libre typeface has been + designed professionally and explicitly with the intent of developing a + public and long-term community-based development process. + + When developing an open project, it is generally necessary to have firm + foundations: a font needs to maintain harmony within itself even across + many type designers and writing systems. For the [1]Ubuntu Font Family, + the process has been guided with the type foundry Dalton Maag setting + the project up with firm stylistic foundation covering several + left-to-right scripts: Latin, Greek and Cyrillic; and right-to-left + scripts: Arabic and Hebrew (due in 2011). + + With this starting point the community will, under the supervision of + [2]Canonical and [3]Dalton Maag, be able to build on the existing font + sources to expand their character coverage. Ultimately everybody will + be able to use the Ubuntu Font Family in their own written languages + across the whole of Unicode (and this will take some time!). + + Licensing + + The licence chosen by any free software project is one of the + foundational decisions that sets out how derivatives and contributions + can occur, and in turn what kind of community will form around the + project. + + Using a licence that is compatible with other popular licences is a + powerful constraint because of the [4]network effects: the freedom to + share improvements between projects allows free software to reach + high-quality over time. Licence-proliferation leads to many + incompatible licences, undermining the network effect, the freedom to + share and ultimately making the libre movement that Ubuntu is a part of + less effective. For all kinds of software, writing a new licence is not + to be taken lightly and is a choice that needs to be thoroughly + justified if this path is taken. + + Today it is not clear to Canonical what the best licence for a font + project like the Ubuntu Font Family is: one that starts life designed + by professionals and continues with the full range of community + development, from highly commercial work in new directions to curious + beginners' experimental contributions. The fast and steady pace of the + Ubuntu release cycle means that an interim libre licence has been + necessary to enable the consideration of the font family as part of + Ubuntu 10.10 operating system release. + + Before taking any decision on licensing, Canonical as sponsor and + backer of the project has reviewed the many existing licenses used for + libre/open fonts and engaged the stewards of the most popular licenses + in detailed discussions. The current interim licence is the first step + in progressing the state-of-the-art in licensing for libre/open font + development. + + The public discussion must now involve everyone in the (comparatively + new) area of the libre/open font community; including font users, + software freedom advocates, open source supporters and existing libre + font developers. Most importantly, the minds and wishes of professional + type designers considering entering the free software business + community must be taken on board. + + Conversations and discussion has taken place, privately, with + individuals from the following groups (generally speaking personally on + behalf of themselves, rather than their affiliations): + * [5]SIL International + * [6]Open Font Library + * [7]Software Freedom Law Center + * [8]Google Font API + + Document embedding + + One issue highlighted early on in the survey of existing font licences + is that of document embedding. Almost all font licences, both free and + unfree, permit embedding a font into a document to a certain degree. + Embedding a font with other works that make up a document creates a + "combined work" and copyleft would normally require the whole document + to be distributed under the terms of the font licence. As beautiful as + the font might be, such a licence makes a font too restrictive for + useful general purpose digital publishing. + + The situation is not entirely unique to fonts and is encountered also + with tools such as GNU Bison: a vanilla GNU GPL licence would require + anything generated with Bison to be made available under the terms of + the GPL as well. To avoid this, Bison is [9]published with an + additional permission to the GPL which allows the output of Bison to be + made available under any licence. + + The conflict between licensing of fonts and licensing of documents, is + addressed in two popular libre font licences, the SIL OFL and GNU GPL: + * [10]SIL Open Font Licence: When OFL fonts are embedded in a + document, the OFL's terms do not apply to that document. (See + [11]OFL-FAQ for details. + * [12]GPL Font Exception: The situation is resolved by granting an + additional permission to allow documents to not be covered by the + GPL. (The exception is being reviewed). + + The Ubuntu Font Family must also resolve this conflict, ensuring that + if the font is embedded and then extracted it is once again clearly + under the terms of its libre licence. + + Long-term licensing + + Those individuals involved, especially from Ubuntu and Canonical, are + interested in finding a long-term libre licence that finds broad favour + across the whole libre/open font community. The deliberation during the + past months has been on how to licence the Ubuntu Font Family in the + short-term, while knowingly encouraging everyone to pursue a long-term + goal. + * [13]Copyright assignment will be required so that the Ubuntu Font + Family's licensing can be progressively expanded to one (or more) + licences, as best practice continues to evolve within the + libre/open font community. + * Canonical will support and fund legal work on libre font licensing. + It is recognised that the cost and time commitments required are + likely to be significant. We invite other capable parties to join + in supporting this activity. + + The GPL version 3 (GPLv3) will be used for Ubuntu Font Family build + scripts and the CC-BY-SA for associated documentation and non-font + content: all items which do not end up embedded in general works and + documents. + +Ubuntu Font Licence + + For the short-term only, the initial licence is the [14]Ubuntu Font + License (UFL). This is loosely inspired from the work on the SIL + OFL 1.1, and seeks to clarify the issues that arose during discussions + and legal review, from the perspective of the backers, Canonical Ltd. + Those already using established licensing models such as the GPL, OFL + or Creative Commons licensing should have no worries about continuing + to use them. The Ubuntu Font Licence (UFL) and the SIL Open Font + Licence (SIL OFL) are not identical and should not be confused with + each other. Please read the terms precisely. The UFL is only intended + as an interim license, and the overriding aim is to support the + creation of a more suitable and generic libre font licence. As soon as + such a licence is developed, the Ubuntu Font Family will migrate to + it—made possible by copyright assignment in the interium. Between the + OFL 1.1, and the UFL 1.0, the following changes are made to produce the + Ubuntu Font Licence: + * Clarification: + + 1. Document embedding (see [15]embedding section above). + 2. Apply at point of distribution, instead of receipt + 3. Author vs. copyright holder disambiguation (type designers are + authors, with the copyright holder normally being the funder) + 4. Define "Propagate" (for internationalisation, similar to the GPLv3) + 5. Define "Substantially Changed" + 6. Trademarks are explicitly not transferred + 7. Refine renaming requirement + + Streamlining: + 8. Remove "not to be sold separately" clause + 9. Remove "Reserved Font Name(s)" declaration + + A visual demonstration of how these points were implemented can be + found in the accompanying coloured diff between SIL OFL 1.1 and the + Ubuntu Font Licence 1.0: [16]ofl-1.1-ufl-1.0.diff.html + +References + + 1. http://font.ubuntu.com/ + 2. http://www.canonical.com/ + 3. http://www.daltonmaag.com/ + 4. http://en.wikipedia.org/wiki/Network_effect + 5. http://scripts.sil.org/ + 6. http://openfontlibrary.org/ + 7. http://www.softwarefreedom.org/ + 8. http://code.google.com/webfonts + 9. http://www.gnu.org/licenses/gpl-faq.html#CanIUseGPLToolsForNF + 10. http://scripts.sil.org/OFL_web + 11. http://scripts.sil.org/OFL-FAQ_web + 12. http://www.gnu.org/licenses/gpl-faq.html#FontException + 13. https://launchpad.net/~uff-contributors + 14. http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt + 15. http://font.ubuntu.com/ufl/FAQ.html#embedding + 16. http://font.ubuntu.com/ufl/ofl-1.1-ufl-1.0.diff.html diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/LICENCE.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/LICENCE.txt new file mode 100644 index 0000000..ae78a8f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/LICENCE.txt @@ -0,0 +1,96 @@ +------------------------------- +UBUNTU FONT LICENCE Version 1.0 +------------------------------- + +PREAMBLE +This licence allows the licensed fonts to be used, studied, modified and +redistributed freely. The fonts, including any derivative works, can be +bundled, embedded, and redistributed provided the terms of this licence +are met. The fonts and derivatives, however, cannot be released under +any other licence. The requirement for fonts to remain under this +licence does not require any document created using the fonts or their +derivatives to be published under this licence, as long as the primary +purpose of the document is not to be a vehicle for the distribution of +the fonts. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this licence and clearly marked as such. This may +include source files, build scripts and documentation. + +"Original Version" refers to the collection of Font Software components +as received under this licence. + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to +a new environment. + +"Copyright Holder(s)" refers to all individuals and companies who have a +copyright ownership of the Font Software. + +"Substantially Changed" refers to Modified Versions which can be easily +identified as dissimilar to the Font Software by users of the Font +Software comparing the Original Version with the Modified Version. + +To "Propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification and with or without charging +a redistribution fee), making available to the public, and in some +countries other activities as well. + +PERMISSION & CONDITIONS +This licence does not grant any rights under trademark law and all such +rights are reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Font Software, to propagate the Font Software, subject to +the below conditions: + +1) Each copy of the Font Software must contain the above copyright +notice and this licence. These can be included either as stand-alone +text files, human-readable headers or in the appropriate machine- +readable metadata fields within text or binary files as long as those +fields can be easily viewed by the user. + +2) The font name complies with the following: +(a) The Original Version must retain its name, unmodified. +(b) Modified Versions which are Substantially Changed must be renamed to +avoid use of the name of the Original Version or similar names entirely. +(c) Modified Versions which are not Substantially Changed must be +renamed to both (i) retain the name of the Original Version and (ii) add +additional naming elements to distinguish the Modified Version from the +Original Version. The name of such Modified Versions must be the name of +the Original Version, with "derivative X" where X represents the name of +the new work, appended to that name. + +3) The name(s) of the Copyright Holder(s) and any contributor to the +Font Software shall not be used to promote, endorse or advertise any +Modified Version, except (i) as required by this licence, (ii) to +acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with +their explicit written permission. + +4) The Font Software, modified or unmodified, in part or in whole, must +be distributed entirely under this licence, and must not be distributed +under any other licence. The requirement for fonts to remain under this +licence does not affect any document created using the Font Software, +except any version of the Font Software extracted from a document +created using the Font Software may only be distributed under this +licence. + +TERMINATION +This licence becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/METADATA.pb b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/METADATA.pb new file mode 100644 index 0000000..60da903 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/METADATA.pb @@ -0,0 +1,84 @@ +name: "Ubuntu" +designer: "Dalton Maag" +license: "UFL" +category: "SANS_SERIF" +date_added: "2010-12-15" +fonts { + name: "Ubuntu" + style: "normal" + weight: 300 + filename: "Ubuntu-Light.ttf" + post_script_name: "Ubuntu-Light" + full_name: "Ubuntu Light" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +fonts { + name: "Ubuntu" + style: "italic" + weight: 300 + filename: "Ubuntu-LightItalic.ttf" + post_script_name: "Ubuntu-LightItalic" + full_name: "Ubuntu Light Italic" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +fonts { + name: "Ubuntu" + style: "normal" + weight: 400 + filename: "Ubuntu-Regular.ttf" + post_script_name: "Ubuntu-Regular" + full_name: "Ubuntu Regular" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +fonts { + name: "Ubuntu" + style: "italic" + weight: 400 + filename: "Ubuntu-Italic.ttf" + post_script_name: "Ubuntu-Italic" + full_name: "Ubuntu Italic" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +fonts { + name: "Ubuntu" + style: "normal" + weight: 500 + filename: "Ubuntu-Medium.ttf" + post_script_name: "Ubuntu-Medium" + full_name: "Ubuntu Medium" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +fonts { + name: "Ubuntu" + style: "italic" + weight: 500 + filename: "Ubuntu-MediumItalic.ttf" + post_script_name: "Ubuntu-MediumItalic" + full_name: "Ubuntu Medium Italic" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +fonts { + name: "Ubuntu" + style: "normal" + weight: 700 + filename: "Ubuntu-Bold.ttf" + post_script_name: "Ubuntu-Bold" + full_name: "Ubuntu Bold" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +fonts { + name: "Ubuntu" + style: "italic" + weight: 700 + filename: "Ubuntu-BoldItalic.ttf" + post_script_name: "Ubuntu-BoldItalic" + full_name: "Ubuntu Bold Italic" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +subsets: "cyrillic" +subsets: "cyrillic-ext" +subsets: "greek" +subsets: "greek-ext" +subsets: "latin" +subsets: "latin-ext" +subsets: "menu" diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/README.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/README.txt new file mode 100644 index 0000000..5602821 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/README.txt @@ -0,0 +1,16 @@ + ---------------------- + Ubuntu Font Family + ====================== + +The Ubuntu Font Family are a set of matching new libre/open fonts in +development during 2010--2011. And with further expansion work and +bug fixing during 2015. The development is being funded by +Canonical Ltd on behalf the wider Free Software community and the +Ubuntu project. The technical font design work and implementation is +being undertaken by Dalton Maag. + +Both the final font Truetype/OpenType files and the design files used +to produce the font family are distributed under an open licence and +you are expressly encouraged to experiment, modify, share and improve. + + http://font.ubuntu.com/ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/TRADEMARKS.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/TRADEMARKS.txt new file mode 100644 index 0000000..d34265b --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/TRADEMARKS.txt @@ -0,0 +1,4 @@ +Ubuntu and Canonical are registered trademarks of Canonical Ltd. + +The licence accompanying these works does not grant any rights +under trademark law and all such rights are reserved. diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/UFL.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/UFL.txt new file mode 100644 index 0000000..ae78a8f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/UFL.txt @@ -0,0 +1,96 @@ +------------------------------- +UBUNTU FONT LICENCE Version 1.0 +------------------------------- + +PREAMBLE +This licence allows the licensed fonts to be used, studied, modified and +redistributed freely. The fonts, including any derivative works, can be +bundled, embedded, and redistributed provided the terms of this licence +are met. The fonts and derivatives, however, cannot be released under +any other licence. The requirement for fonts to remain under this +licence does not require any document created using the fonts or their +derivatives to be published under this licence, as long as the primary +purpose of the document is not to be a vehicle for the distribution of +the fonts. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this licence and clearly marked as such. This may +include source files, build scripts and documentation. + +"Original Version" refers to the collection of Font Software components +as received under this licence. + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to +a new environment. + +"Copyright Holder(s)" refers to all individuals and companies who have a +copyright ownership of the Font Software. + +"Substantially Changed" refers to Modified Versions which can be easily +identified as dissimilar to the Font Software by users of the Font +Software comparing the Original Version with the Modified Version. + +To "Propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification and with or without charging +a redistribution fee), making available to the public, and in some +countries other activities as well. + +PERMISSION & CONDITIONS +This licence does not grant any rights under trademark law and all such +rights are reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Font Software, to propagate the Font Software, subject to +the below conditions: + +1) Each copy of the Font Software must contain the above copyright +notice and this licence. These can be included either as stand-alone +text files, human-readable headers or in the appropriate machine- +readable metadata fields within text or binary files as long as those +fields can be easily viewed by the user. + +2) The font name complies with the following: +(a) The Original Version must retain its name, unmodified. +(b) Modified Versions which are Substantially Changed must be renamed to +avoid use of the name of the Original Version or similar names entirely. +(c) Modified Versions which are not Substantially Changed must be +renamed to both (i) retain the name of the Original Version and (ii) add +additional naming elements to distinguish the Modified Version from the +Original Version. The name of such Modified Versions must be the name of +the Original Version, with "derivative X" where X represents the name of +the new work, appended to that name. + +3) The name(s) of the Copyright Holder(s) and any contributor to the +Font Software shall not be used to promote, endorse or advertise any +Modified Version, except (i) as required by this licence, (ii) to +acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with +their explicit written permission. + +4) The Font Software, modified or unmodified, in part or in whole, must +be distributed entirely under this licence, and must not be distributed +under any other licence. The requirement for fonts to remain under this +licence does not affect any document created using the Font Software, +except any version of the Font Software extracted from a document +created using the Font Software may only be distributed under this +licence. + +TERMINATION +This licence becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Bold.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Bold.ttf new file mode 100644 index 0000000..7b85515 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Bold.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-BoldItalic.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-BoldItalic.ttf new file mode 100644 index 0000000..7db9e20 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-BoldItalic.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Italic.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Italic.ttf new file mode 100644 index 0000000..9621a39 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Italic.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Light.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Light.ttf new file mode 100644 index 0000000..6a84adc Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Light.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-LightItalic.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-LightItalic.ttf new file mode 100644 index 0000000..0295cbb Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-LightItalic.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Medium.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Medium.ttf new file mode 100644 index 0000000..c6f048e Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Medium.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-MediumItalic.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-MediumItalic.ttf new file mode 100644 index 0000000..5fe5c50 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-MediumItalic.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Regular.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Regular.ttf new file mode 100644 index 0000000..2001d6e Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntu/Ubuntu-Regular.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/CONTRIBUTING.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/CONTRIBUTING.txt new file mode 100644 index 0000000..15bdc0c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/CONTRIBUTING.txt @@ -0,0 +1,21 @@ +The Ubuntu Font Family is very long-term endeavour, and the first time +that a professionally-designed font has been funded specifically with +the intent of being an on-going community expanded project: + + http://font.ubuntu.com/ + +Development of the Ubuntu Font Family is undertaken on Launchpad: + + http://launchpad.net/ubuntu-font-family/ + +and this is where milestones, bug management and releases are handled. + +Contributions are welcomed. Your work will be used on millions of +computers every single day! Following the initial bootstrapping of +Latin, Cyrillic, Greek, Arabic and Hebrew expansion will be undertaken +by font designers from the font design and Ubuntu communities. + +To ensure that the Ubuntu Font Family can be re-licensed to future +widely-used libre font licences, copyright assignment is being required: + + https://launchpad.net/~uff-contributors diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/COPYRIGHT.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/COPYRIGHT.txt new file mode 100644 index 0000000..ae78a8f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/COPYRIGHT.txt @@ -0,0 +1,96 @@ +------------------------------- +UBUNTU FONT LICENCE Version 1.0 +------------------------------- + +PREAMBLE +This licence allows the licensed fonts to be used, studied, modified and +redistributed freely. The fonts, including any derivative works, can be +bundled, embedded, and redistributed provided the terms of this licence +are met. The fonts and derivatives, however, cannot be released under +any other licence. The requirement for fonts to remain under this +licence does not require any document created using the fonts or their +derivatives to be published under this licence, as long as the primary +purpose of the document is not to be a vehicle for the distribution of +the fonts. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this licence and clearly marked as such. This may +include source files, build scripts and documentation. + +"Original Version" refers to the collection of Font Software components +as received under this licence. + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to +a new environment. + +"Copyright Holder(s)" refers to all individuals and companies who have a +copyright ownership of the Font Software. + +"Substantially Changed" refers to Modified Versions which can be easily +identified as dissimilar to the Font Software by users of the Font +Software comparing the Original Version with the Modified Version. + +To "Propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification and with or without charging +a redistribution fee), making available to the public, and in some +countries other activities as well. + +PERMISSION & CONDITIONS +This licence does not grant any rights under trademark law and all such +rights are reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Font Software, to propagate the Font Software, subject to +the below conditions: + +1) Each copy of the Font Software must contain the above copyright +notice and this licence. These can be included either as stand-alone +text files, human-readable headers or in the appropriate machine- +readable metadata fields within text or binary files as long as those +fields can be easily viewed by the user. + +2) The font name complies with the following: +(a) The Original Version must retain its name, unmodified. +(b) Modified Versions which are Substantially Changed must be renamed to +avoid use of the name of the Original Version or similar names entirely. +(c) Modified Versions which are not Substantially Changed must be +renamed to both (i) retain the name of the Original Version and (ii) add +additional naming elements to distinguish the Modified Version from the +Original Version. The name of such Modified Versions must be the name of +the Original Version, with "derivative X" where X represents the name of +the new work, appended to that name. + +3) The name(s) of the Copyright Holder(s) and any contributor to the +Font Software shall not be used to promote, endorse or advertise any +Modified Version, except (i) as required by this licence, (ii) to +acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with +their explicit written permission. + +4) The Font Software, modified or unmodified, in part or in whole, must +be distributed entirely under this licence, and must not be distributed +under any other licence. The requirement for fonts to remain under this +licence does not affect any document created using the Font Software, +except any version of the Font Software extracted from a document +created using the Font Software may only be distributed under this +licence. + +TERMINATION +This licence becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/DESCRIPTION.en_us.html b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/DESCRIPTION.en_us.html new file mode 100644 index 0000000..9bd57ed --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/DESCRIPTION.en_us.html @@ -0,0 +1,27 @@ +

+The Ubuntu Font Family are a set of matching new libre/open fonts in development during 2010-2011. +The development is being funded by Canonical Ltd on behalf the wider Free Software community and the Ubuntu project. +The technical font design work and implementation is being undertaken by Dalton Maag. +

+ +

+Both the final font Truetype/OpenType files and the design files used to produce the font family are distributed under an open licence and you are expressly encouraged to experiment, modify, share and improve. +

+ +

+The new Ubuntu Font Family was started to enable the personality of Ubuntu to be seen and felt in every menu, button and dialog. +The typeface is sans-serif, uses OpenType features and is manually hinted for clarity on desktop and mobile computing screens. +

+ +

+The scope of the Ubuntu Font Family includes all the languages used by the various Ubuntu users around the world in tune with Ubuntu's philosophy which states that every user should be able to use their software in the language of their choice. +So the Ubuntu Font Family project will be extended to cover many more written languages. +

+ +

+Ubuntu and Canonical are registered trademarks of Canonical Ltd. +

+ +

+Updated August 2014: All styles were updated to 0.83 to fix a problem where some characters were not displayed as expected in some OS X applications. +

diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/FONTLOG.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/FONTLOG.txt new file mode 100644 index 0000000..83022be --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/FONTLOG.txt @@ -0,0 +1,292 @@ +This is the FONTLOG file for the Ubuntu Font Family and attempts to follow +the recommendations at: http://scripts.sil.org/OFL-FAQ_web#43cecb44 + + +Overview + +The new Ubuntu Font Family was started to enable the personality of +Ubuntu to be seen and felt in every menu, button and dialog. +The typeface is sans-serif, uses OpenType features and is manually +hinted for clarity on desktop and mobile computing screens. + +The scope of the Ubuntu Font Family includes all the languages used by +the various Ubuntu users around the world in tune with Ubuntu's +philosophy which states that every user should be able to use their +software in the language of their choice. So the Ubuntu Font Family +project will be extended to cover many more written languages. + + +History + +The Ubuntu Font Family has been creating during 2010 and 2011. As of +September 2011 coverage is provided for Latin, Cyrillic and Greek across +Regular, Italic, Bold and Bold-Italic. Further work was uptaken during +2015. + + +ChangeLog + +2015-08-21 (Paul Sladen) Ubuntu Font Family version 0.83 + + Note: This release was created by binary patching from the v0.80 + release using the scripts in 'sources/patch-0.80-0.83/' to rebuild + the necessary tables. The release selectively updates only those + proportional .ttf font files exhibiting the bug below bug number; + the Ubuntu Mono monospace font files remain unchanged, being the + original version 0.80 ones. + + [Marc Foley] + * [Engineering] Fixed wrong characters appear in some mac apps. (LP: #1334363) + + +2011-09-22 (Paul Sladen) Ubuntu Font Family version 0.80 + + [Vincent Connare/Dalton Maag] + * Wish for addition of a monospaced member to the family (LP: #640382) + * Mono: No hinting yet - Ubuntu Beta Mono font looks jagged in + Netbeans and terrible with ClearType (LP: #820493) + * Emacs: choosing normal monospace font in Emacs but gives bold-italic + (LP: #791076) + * PUA: ensure that Ubuntu Circle of Friends logo is full size: (LP: #853855) + + U+E0FF becomes large size in proportionals, remains small width in + monospaces + + U+F0FF becomes small size (proportionals only) + + U+F200 is full ubuntu logomark (proportionals only) + + [Paul Sladen] + * Monospace: Patch Family Name to be "Ubuntu Mono" + * Monospace: Patch U+EFFD version debugging glyph to be '0.8' + + [Cody Boisclair] + * Monospace: Force .null HDMX advance to 500 + * Monospace: Remap ASCII box-drawing characters (LP: #788757) + + [Júlio Reis] + * Date corrections to 'FONTLOG' (LP: #836595) + +2011-03-08 (Paul Sladen) Ubuntu Font Family version 0.71.2 + + * (Production) Adjust Medium WeightClass to 500 (Md, MdIt) (LP: #730912) + +2011-03-07 (Paul Sladen) Ubuntu Font Family version 0.71.1 + + * (Design) Add Capitalised version of glyphs and kern. (Lt, LtIt, + Md, MdIt) DM (LP: #677446) + * (Design) Re-space and tighen Regular and Italic by amount specified + by Mark Shuttleworth (minus 4 FUnits). (Rg, It) (LP: #677149) + * (Design) Design: Latin (U+0192) made straight more like l/c f with + tail (LP: #670768) + * (Design) (U+01B3) should have hook on right, as the lowercase + (U+01B4) (LP: #681026) + * (Design) Tail of Light Italic germandbls, longs and lowercase 'f' + to match Italic/BoldItalic (LP: #623925) + * (Production) Update feature (Lt, LtIt, Md, MdIt). DM + (LP: #676538, #676539) + * (Production) Remove Bulgarian locl feature for Italics. (LP: #708578) + * (Production) Update Description information with new string: + "The Ubuntu Font Family are libre fonts funded by Canonical Ltd + on behalf of the Ubuntu project. The font design work and + technical implementation is being undertaken by Dalton Maag. The + typeface is sans-serif, uses OpenType features and is manually + hinted for clarity on desktop and mobile computing screens. The + scope of the Ubuntu Font Family includes all the languages used + by the various Ubuntu users around the world in tune with + Ubuntu's philosophy which states that every user should be able + to use their software in the language of their choice. The + project is ongoing, and we expect the family will be extended to + cover many written languages in the coming years." + (Rg, It, Bd, BdIt, Lt, LtIt, Md, MdIt) (LP: #690590) + * (Production) Pixel per em indicator added at U+F000 (Lt, LtIt, Md, + MdIt) (LP: #615787) + * (Production) Version number indicator added at U+EFFD (Lt, LtIt, Md, + MdIt) (LP: #640623) + * (Production) fstype bit set to 0 - Editable (Lt, LtIt, Md, MdIt) + (LP: #648406) + * (Production) Localisation of name table has been removed because + of problems with Mac OS/X interpretation of localisation. DM + (LP: #730785) + * (Hinting) Regular '?' dot non-circular (has incorrect control + value). (LP: #654336) + * (Hinting) Too much space after latin capital 'G' in 13pt + regular. Now reduced. (LP: #683437) + * (Hinting) Balance Indian Rupee at 18,19pt (LP: #662177) + * (Hinting) Make Regular '£' less ambiguous at 13-15 ppm (LP: #685562) + * (Hinting) Regular capital 'W' made symmetrical at 31 ppem (LP: #686168) + +2010-12-14 (Paul Sladen) Ubuntu Font Family version 0.70.1 + + Packaging, rebuilt from '2010-12-08 UbuntuFontsSourceFiles_070.zip': + * (Midstream) Fstype bit != 0 (LP: #648406) + * (Midstream) Add unit test to validate fstype bits (LP: #648406) + * (Midstream) Add unit test to validate licence + +2010-12-14 (Paul Sladen) Ubuntu Font Family version 0.70 + + Release notes 0.70: + * (Design) Add Capitalised version of glyphs and kern. (Rg, It, Bd, + BdIt) DM (LP: #676538, #677446) + * (Design) Give acute and grave a slight upright move to more match + the Hungarian double acute angle. (Rg, It, Bd, BdIt) (LP: #656647) + * (Design) Shift Bold Italic accent glyphs to be consistent with the + Italic. (BdIt only) DM (LP: #677449) + * (Design) Check spacing and kerning of dcaron, lcaron and + tcaron. (Rg, It, Bd, BdIt) (LP: #664722) + * (Design) Add positive kerning to () {} [] to open out the + combinations so they are less like a closed box. (Rg, It, Bd, + BdIt) (LP: #671228) + * (Design) Change design of acute.asc and check highest points (Bd + and BdIt only) DM + * (Production) Update feature. DM (LP: #676538, #676539) + * (Production) Remove Romanian locl feature. (Rg, It, Bd, BdIt) + (LP: #635615) + * (Production) Update Copyright information with new + strings. "Copyright 2010 Canonical Ltd. Licensed under the Ubuntu + Font Licence 1.0" Trademark string "Ubuntu and Canonical are + registered trademarks of Canonical Ltd." (Rg, It, Bd, BdIt) DM + (LP: #677450) + * (Design) Check aligning of hyphen, math signs em, en, check braces + and other brackets. 16/11 (LP: #676465) + * (Production) Pixel per em indicator added at U+F000 (Rg, It, Bd, + BdIt) (LP: #615787) + * (Production) Version number indicator added at U+EFFD (Rg, It, Bd, + BdIt) (LP: #640623) + * (Production) fstype bit set to 0 - Editable (Rg, It, Bd, BdIt) + (LP: #648406) + +2010-10-05 (Paul Sladen) Ubuntu Font Family version 0.69 + + [Dalton Maag] + * Italic, + - Hinting on lowercase Italic l amended 19ppm (LP: #632451) + - Hinting on lowercase Italic u amended 12ppm (LP: #626376) + + * Regular, Italic, Bold, BoldItalic + - New Rupee Sign added @ U+20B9 (LP: #645987) + - Ubuntu Roundel added @ U+E0FF (LP: #651606) + + [Paul Sladen] + * All + - Removed "!ubu" GSUB.calt ligature for U+E0FF (LP: #651606) + + +Acknowledgements + +If you make modifications be sure to add your name (N), email (E), +web-address (if you have one) (W) and description (D). This list is in +alphabetical order. + +N: Ryan Abdullah +W: http://www.rayan.de/ +D: Arabic calligraphy and design in collaboration with Dalton Maag +D: Arabic testing + +N: Cody Boisclair +D: Monospace low-level debugging and patching ('fixboxdrawing-ft.py') + +N: Amélie Bonet +W: http://ameliebonet.com/ +D: Type design with Dalton Maag, particularly Ubuntu Mono and Ubuntu Condensed + +N: Jason Campbell +W: http://www.campbellgraphics.com/design/fonts.shtml +D: Monospace hinting (first phase) at Dalton Maag + +N: Pilar Cano +W: http://www.pilarcano.com/ +D: Hebrew realisation with Dalton Maag + +N: Fernando Caro +D: Type design with Dalton Maag, particularly Ubuntu Condensed + +N: Ron Carpenter +W: http://www.daltonmaag.com/ +D: Type design with Dalton Maag +D: Arabic realisation in collaboration with Ryan Abdullah + +N: Vincent Connare +W: http://www.connare.com/ +D: Type design, and engineering with Dalton Maag +D: Monospace hinting (second phase) at Dalton Maag + +N: Dave Crossland +E: dave@understandingfonts.com +W: http://understandingfonts.com/ +D: Documentation and libre licensing guidance +D: Google Webfont integration at Google + +N: Steve Edwards +W: http://www.madebymake.com/ +D: font.ubuntu.com revamp implementation with Canonical Web Team + +N: Iain Farrell +W: http://www.flickr.com/photos/iain +D: Ubuntu Font Family delivery for the Ubuntu UX team at Canonical + +N: Marc Foley +W: http://www.marcfoley.co/ +D: Font Engineer at Dalton Maag for the 2015 updates + +N: Shiraaz Gabru +W: http://www.daltonmaag.com/ +D: Ubuntu Font Family project management at Dalton Maag + +N: Marcus Haslam +W: http://design.canonical.com/author/marcus-haslam/ +D: Creative inspiration + +N: Ben Laenen +D: Inspiration behind the pixels-per-em (PPEM) readout debugging glyph at U+F000 + (for this font the concept was re-implemented from scratch by Dalton-Maag) + +N: Bruno Maag +W: http://www.daltonmaag.com/ +D: Stylistic direction of the Ubuntu Font Family, as head of Dalton Maag + +N: Ivanka Majic +W: http://www.ivankamajic.com/ +D: Guiding the UX team and Cyrillic feedback + +N: David Marshall +W: http://www.daltonmaag.com/ +D: Technical guidance and administration at Dalton Maag + +N: Malcolm Wooden +W: http://www.daltonmaag.com/ +D: Font Engineering at Dalton Maag + +N: Lukas Paltram +W: http://www.daltonmaag.com/ +D: Type design with Dalton Maag + +N: Júlio Reis +D: Date fixes to the documentation + +N: Rodrigo Rivas +D: Indian Rupee Sign glyph + +N: Mark Shuttleworth +E: mark@ubuntu.com +W: http://www.markshuttleworth.com/ +D: Executive quality-control and funding + +N: Paul Sladen +E: ubuntu@paul.sladen.org +W: http://www.paul.sladen.org/ +D: Bug triaging, packaging at Ubuntu and Canonical + +N: Nicolas Spalinger +W: http://planet.open-fonts.org +D: Continuous guidance on libre/open font licensing, best practises in source + tree layout, release and packaging (pkg-fonts Debian team) + +N: Kenneth Wimer +D: Initial PPA packaging + +* Canonical Ltd is the primary commercial sponsor of the Ubuntu and + Kubuntu operating systems +* Dalton Maag are a custom type foundry headed by Bruno Maag + +For further documentation, information on contributors, source code +downloads and those involved with the Ubuntu Font Family, visit: + + http://font.ubuntu.com/ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/LICENCE-FAQ.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/LICENCE-FAQ.txt new file mode 100644 index 0000000..776a25e --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/LICENCE-FAQ.txt @@ -0,0 +1,177 @@ + Ubuntu Font Family Licensing FAQ + + Stylistic Foundations + + The Ubuntu Font Family is the first time that a libre typeface has been + designed professionally and explicitly with the intent of developing a + public and long-term community-based development process. + + When developing an open project, it is generally necessary to have firm + foundations: a font needs to maintain harmony within itself even across + many type designers and writing systems. For the [1]Ubuntu Font Family, + the process has been guided with the type foundry Dalton Maag setting + the project up with firm stylistic foundation covering several + left-to-right scripts: Latin, Greek and Cyrillic; and right-to-left + scripts: Arabic and Hebrew (due in 2011). + + With this starting point the community will, under the supervision of + [2]Canonical and [3]Dalton Maag, be able to build on the existing font + sources to expand their character coverage. Ultimately everybody will + be able to use the Ubuntu Font Family in their own written languages + across the whole of Unicode (and this will take some time!). + + Licensing + + The licence chosen by any free software project is one of the + foundational decisions that sets out how derivatives and contributions + can occur, and in turn what kind of community will form around the + project. + + Using a licence that is compatible with other popular licences is a + powerful constraint because of the [4]network effects: the freedom to + share improvements between projects allows free software to reach + high-quality over time. Licence-proliferation leads to many + incompatible licences, undermining the network effect, the freedom to + share and ultimately making the libre movement that Ubuntu is a part of + less effective. For all kinds of software, writing a new licence is not + to be taken lightly and is a choice that needs to be thoroughly + justified if this path is taken. + + Today it is not clear to Canonical what the best licence for a font + project like the Ubuntu Font Family is: one that starts life designed + by professionals and continues with the full range of community + development, from highly commercial work in new directions to curious + beginners' experimental contributions. The fast and steady pace of the + Ubuntu release cycle means that an interim libre licence has been + necessary to enable the consideration of the font family as part of + Ubuntu 10.10 operating system release. + + Before taking any decision on licensing, Canonical as sponsor and + backer of the project has reviewed the many existing licenses used for + libre/open fonts and engaged the stewards of the most popular licenses + in detailed discussions. The current interim licence is the first step + in progressing the state-of-the-art in licensing for libre/open font + development. + + The public discussion must now involve everyone in the (comparatively + new) area of the libre/open font community; including font users, + software freedom advocates, open source supporters and existing libre + font developers. Most importantly, the minds and wishes of professional + type designers considering entering the free software business + community must be taken on board. + + Conversations and discussion has taken place, privately, with + individuals from the following groups (generally speaking personally on + behalf of themselves, rather than their affiliations): + * [5]SIL International + * [6]Open Font Library + * [7]Software Freedom Law Center + * [8]Google Font API + + Document embedding + + One issue highlighted early on in the survey of existing font licences + is that of document embedding. Almost all font licences, both free and + unfree, permit embedding a font into a document to a certain degree. + Embedding a font with other works that make up a document creates a + "combined work" and copyleft would normally require the whole document + to be distributed under the terms of the font licence. As beautiful as + the font might be, such a licence makes a font too restrictive for + useful general purpose digital publishing. + + The situation is not entirely unique to fonts and is encountered also + with tools such as GNU Bison: a vanilla GNU GPL licence would require + anything generated with Bison to be made available under the terms of + the GPL as well. To avoid this, Bison is [9]published with an + additional permission to the GPL which allows the output of Bison to be + made available under any licence. + + The conflict between licensing of fonts and licensing of documents, is + addressed in two popular libre font licences, the SIL OFL and GNU GPL: + * [10]SIL Open Font Licence: When OFL fonts are embedded in a + document, the OFL's terms do not apply to that document. (See + [11]OFL-FAQ for details. + * [12]GPL Font Exception: The situation is resolved by granting an + additional permission to allow documents to not be covered by the + GPL. (The exception is being reviewed). + + The Ubuntu Font Family must also resolve this conflict, ensuring that + if the font is embedded and then extracted it is once again clearly + under the terms of its libre licence. + + Long-term licensing + + Those individuals involved, especially from Ubuntu and Canonical, are + interested in finding a long-term libre licence that finds broad favour + across the whole libre/open font community. The deliberation during the + past months has been on how to licence the Ubuntu Font Family in the + short-term, while knowingly encouraging everyone to pursue a long-term + goal. + * [13]Copyright assignment will be required so that the Ubuntu Font + Family's licensing can be progressively expanded to one (or more) + licences, as best practice continues to evolve within the + libre/open font community. + * Canonical will support and fund legal work on libre font licensing. + It is recognised that the cost and time commitments required are + likely to be significant. We invite other capable parties to join + in supporting this activity. + + The GPL version 3 (GPLv3) will be used for Ubuntu Font Family build + scripts and the CC-BY-SA for associated documentation and non-font + content: all items which do not end up embedded in general works and + documents. + +Ubuntu Font Licence + + For the short-term only, the initial licence is the [14]Ubuntu Font + License (UFL). This is loosely inspired from the work on the SIL + OFL 1.1, and seeks to clarify the issues that arose during discussions + and legal review, from the perspective of the backers, Canonical Ltd. + Those already using established licensing models such as the GPL, OFL + or Creative Commons licensing should have no worries about continuing + to use them. The Ubuntu Font Licence (UFL) and the SIL Open Font + Licence (SIL OFL) are not identical and should not be confused with + each other. Please read the terms precisely. The UFL is only intended + as an interim license, and the overriding aim is to support the + creation of a more suitable and generic libre font licence. As soon as + such a licence is developed, the Ubuntu Font Family will migrate to + it—made possible by copyright assignment in the interium. Between the + OFL 1.1, and the UFL 1.0, the following changes are made to produce the + Ubuntu Font Licence: + * Clarification: + + 1. Document embedding (see [15]embedding section above). + 2. Apply at point of distribution, instead of receipt + 3. Author vs. copyright holder disambiguation (type designers are + authors, with the copyright holder normally being the funder) + 4. Define "Propagate" (for internationalisation, similar to the GPLv3) + 5. Define "Substantially Changed" + 6. Trademarks are explicitly not transferred + 7. Refine renaming requirement + + Streamlining: + 8. Remove "not to be sold separately" clause + 9. Remove "Reserved Font Name(s)" declaration + + A visual demonstration of how these points were implemented can be + found in the accompanying coloured diff between SIL OFL 1.1 and the + Ubuntu Font Licence 1.0: [16]ofl-1.1-ufl-1.0.diff.html + +References + + 1. http://font.ubuntu.com/ + 2. http://www.canonical.com/ + 3. http://www.daltonmaag.com/ + 4. http://en.wikipedia.org/wiki/Network_effect + 5. http://scripts.sil.org/ + 6. http://openfontlibrary.org/ + 7. http://www.softwarefreedom.org/ + 8. http://code.google.com/webfonts + 9. http://www.gnu.org/licenses/gpl-faq.html#CanIUseGPLToolsForNF + 10. http://scripts.sil.org/OFL_web + 11. http://scripts.sil.org/OFL-FAQ_web + 12. http://www.gnu.org/licenses/gpl-faq.html#FontException + 13. https://launchpad.net/~uff-contributors + 14. http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt + 15. http://font.ubuntu.com/ufl/FAQ.html#embedding + 16. http://font.ubuntu.com/ufl/ofl-1.1-ufl-1.0.diff.html diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/LICENCE.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/LICENCE.txt new file mode 100644 index 0000000..ae78a8f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/LICENCE.txt @@ -0,0 +1,96 @@ +------------------------------- +UBUNTU FONT LICENCE Version 1.0 +------------------------------- + +PREAMBLE +This licence allows the licensed fonts to be used, studied, modified and +redistributed freely. The fonts, including any derivative works, can be +bundled, embedded, and redistributed provided the terms of this licence +are met. The fonts and derivatives, however, cannot be released under +any other licence. The requirement for fonts to remain under this +licence does not require any document created using the fonts or their +derivatives to be published under this licence, as long as the primary +purpose of the document is not to be a vehicle for the distribution of +the fonts. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this licence and clearly marked as such. This may +include source files, build scripts and documentation. + +"Original Version" refers to the collection of Font Software components +as received under this licence. + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to +a new environment. + +"Copyright Holder(s)" refers to all individuals and companies who have a +copyright ownership of the Font Software. + +"Substantially Changed" refers to Modified Versions which can be easily +identified as dissimilar to the Font Software by users of the Font +Software comparing the Original Version with the Modified Version. + +To "Propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification and with or without charging +a redistribution fee), making available to the public, and in some +countries other activities as well. + +PERMISSION & CONDITIONS +This licence does not grant any rights under trademark law and all such +rights are reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Font Software, to propagate the Font Software, subject to +the below conditions: + +1) Each copy of the Font Software must contain the above copyright +notice and this licence. These can be included either as stand-alone +text files, human-readable headers or in the appropriate machine- +readable metadata fields within text or binary files as long as those +fields can be easily viewed by the user. + +2) The font name complies with the following: +(a) The Original Version must retain its name, unmodified. +(b) Modified Versions which are Substantially Changed must be renamed to +avoid use of the name of the Original Version or similar names entirely. +(c) Modified Versions which are not Substantially Changed must be +renamed to both (i) retain the name of the Original Version and (ii) add +additional naming elements to distinguish the Modified Version from the +Original Version. The name of such Modified Versions must be the name of +the Original Version, with "derivative X" where X represents the name of +the new work, appended to that name. + +3) The name(s) of the Copyright Holder(s) and any contributor to the +Font Software shall not be used to promote, endorse or advertise any +Modified Version, except (i) as required by this licence, (ii) to +acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with +their explicit written permission. + +4) The Font Software, modified or unmodified, in part or in whole, must +be distributed entirely under this licence, and must not be distributed +under any other licence. The requirement for fonts to remain under this +licence does not affect any document created using the Font Software, +except any version of the Font Software extracted from a document +created using the Font Software may only be distributed under this +licence. + +TERMINATION +This licence becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/METADATA.pb b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/METADATA.pb new file mode 100644 index 0000000..9e23ea1 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/METADATA.pb @@ -0,0 +1,21 @@ +name: "Ubuntu Condensed" +designer: "Dalton Maag" +license: "UFL" +category: "SANS_SERIF" +date_added: "2011-10-05" +fonts { + name: "Ubuntu Condensed" + style: "normal" + weight: 400 + filename: "UbuntuCondensed-Regular.ttf" + post_script_name: "UbuntuCondensed-Regular" + full_name: "Ubuntu Condensed" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +subsets: "menu" +subsets: "cyrillic" +subsets: "cyrillic-ext" +subsets: "greek" +subsets: "greek-ext" +subsets: "latin" +subsets: "latin-ext" diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/README.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/README.txt new file mode 100644 index 0000000..5602821 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/README.txt @@ -0,0 +1,16 @@ + ---------------------- + Ubuntu Font Family + ====================== + +The Ubuntu Font Family are a set of matching new libre/open fonts in +development during 2010--2011. And with further expansion work and +bug fixing during 2015. The development is being funded by +Canonical Ltd on behalf the wider Free Software community and the +Ubuntu project. The technical font design work and implementation is +being undertaken by Dalton Maag. + +Both the final font Truetype/OpenType files and the design files used +to produce the font family are distributed under an open licence and +you are expressly encouraged to experiment, modify, share and improve. + + http://font.ubuntu.com/ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/TRADEMARKS.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/TRADEMARKS.txt new file mode 100644 index 0000000..d34265b --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/TRADEMARKS.txt @@ -0,0 +1,4 @@ +Ubuntu and Canonical are registered trademarks of Canonical Ltd. + +The licence accompanying these works does not grant any rights +under trademark law and all such rights are reserved. diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/UFL.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/UFL.txt new file mode 100644 index 0000000..ae78a8f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/UFL.txt @@ -0,0 +1,96 @@ +------------------------------- +UBUNTU FONT LICENCE Version 1.0 +------------------------------- + +PREAMBLE +This licence allows the licensed fonts to be used, studied, modified and +redistributed freely. The fonts, including any derivative works, can be +bundled, embedded, and redistributed provided the terms of this licence +are met. The fonts and derivatives, however, cannot be released under +any other licence. The requirement for fonts to remain under this +licence does not require any document created using the fonts or their +derivatives to be published under this licence, as long as the primary +purpose of the document is not to be a vehicle for the distribution of +the fonts. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this licence and clearly marked as such. This may +include source files, build scripts and documentation. + +"Original Version" refers to the collection of Font Software components +as received under this licence. + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to +a new environment. + +"Copyright Holder(s)" refers to all individuals and companies who have a +copyright ownership of the Font Software. + +"Substantially Changed" refers to Modified Versions which can be easily +identified as dissimilar to the Font Software by users of the Font +Software comparing the Original Version with the Modified Version. + +To "Propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification and with or without charging +a redistribution fee), making available to the public, and in some +countries other activities as well. + +PERMISSION & CONDITIONS +This licence does not grant any rights under trademark law and all such +rights are reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Font Software, to propagate the Font Software, subject to +the below conditions: + +1) Each copy of the Font Software must contain the above copyright +notice and this licence. These can be included either as stand-alone +text files, human-readable headers or in the appropriate machine- +readable metadata fields within text or binary files as long as those +fields can be easily viewed by the user. + +2) The font name complies with the following: +(a) The Original Version must retain its name, unmodified. +(b) Modified Versions which are Substantially Changed must be renamed to +avoid use of the name of the Original Version or similar names entirely. +(c) Modified Versions which are not Substantially Changed must be +renamed to both (i) retain the name of the Original Version and (ii) add +additional naming elements to distinguish the Modified Version from the +Original Version. The name of such Modified Versions must be the name of +the Original Version, with "derivative X" where X represents the name of +the new work, appended to that name. + +3) The name(s) of the Copyright Holder(s) and any contributor to the +Font Software shall not be used to promote, endorse or advertise any +Modified Version, except (i) as required by this licence, (ii) to +acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with +their explicit written permission. + +4) The Font Software, modified or unmodified, in part or in whole, must +be distributed entirely under this licence, and must not be distributed +under any other licence. The requirement for fonts to remain under this +licence does not affect any document created using the Font Software, +except any version of the Font Software extracted from a document +created using the Font Software may only be distributed under this +licence. + +TERMINATION +This licence becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/UbuntuCondensed-Regular.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/UbuntuCondensed-Regular.ttf new file mode 100644 index 0000000..602a3ee Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntucondensed/UbuntuCondensed-Regular.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/CONTRIBUTING.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/CONTRIBUTING.txt new file mode 100644 index 0000000..15bdc0c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/CONTRIBUTING.txt @@ -0,0 +1,21 @@ +The Ubuntu Font Family is very long-term endeavour, and the first time +that a professionally-designed font has been funded specifically with +the intent of being an on-going community expanded project: + + http://font.ubuntu.com/ + +Development of the Ubuntu Font Family is undertaken on Launchpad: + + http://launchpad.net/ubuntu-font-family/ + +and this is where milestones, bug management and releases are handled. + +Contributions are welcomed. Your work will be used on millions of +computers every single day! Following the initial bootstrapping of +Latin, Cyrillic, Greek, Arabic and Hebrew expansion will be undertaken +by font designers from the font design and Ubuntu communities. + +To ensure that the Ubuntu Font Family can be re-licensed to future +widely-used libre font licences, copyright assignment is being required: + + https://launchpad.net/~uff-contributors diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/COPYRIGHT.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/COPYRIGHT.txt new file mode 100644 index 0000000..ae78a8f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/COPYRIGHT.txt @@ -0,0 +1,96 @@ +------------------------------- +UBUNTU FONT LICENCE Version 1.0 +------------------------------- + +PREAMBLE +This licence allows the licensed fonts to be used, studied, modified and +redistributed freely. The fonts, including any derivative works, can be +bundled, embedded, and redistributed provided the terms of this licence +are met. The fonts and derivatives, however, cannot be released under +any other licence. The requirement for fonts to remain under this +licence does not require any document created using the fonts or their +derivatives to be published under this licence, as long as the primary +purpose of the document is not to be a vehicle for the distribution of +the fonts. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this licence and clearly marked as such. This may +include source files, build scripts and documentation. + +"Original Version" refers to the collection of Font Software components +as received under this licence. + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to +a new environment. + +"Copyright Holder(s)" refers to all individuals and companies who have a +copyright ownership of the Font Software. + +"Substantially Changed" refers to Modified Versions which can be easily +identified as dissimilar to the Font Software by users of the Font +Software comparing the Original Version with the Modified Version. + +To "Propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification and with or without charging +a redistribution fee), making available to the public, and in some +countries other activities as well. + +PERMISSION & CONDITIONS +This licence does not grant any rights under trademark law and all such +rights are reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Font Software, to propagate the Font Software, subject to +the below conditions: + +1) Each copy of the Font Software must contain the above copyright +notice and this licence. These can be included either as stand-alone +text files, human-readable headers or in the appropriate machine- +readable metadata fields within text or binary files as long as those +fields can be easily viewed by the user. + +2) The font name complies with the following: +(a) The Original Version must retain its name, unmodified. +(b) Modified Versions which are Substantially Changed must be renamed to +avoid use of the name of the Original Version or similar names entirely. +(c) Modified Versions which are not Substantially Changed must be +renamed to both (i) retain the name of the Original Version and (ii) add +additional naming elements to distinguish the Modified Version from the +Original Version. The name of such Modified Versions must be the name of +the Original Version, with "derivative X" where X represents the name of +the new work, appended to that name. + +3) The name(s) of the Copyright Holder(s) and any contributor to the +Font Software shall not be used to promote, endorse or advertise any +Modified Version, except (i) as required by this licence, (ii) to +acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with +their explicit written permission. + +4) The Font Software, modified or unmodified, in part or in whole, must +be distributed entirely under this licence, and must not be distributed +under any other licence. The requirement for fonts to remain under this +licence does not affect any document created using the Font Software, +except any version of the Font Software extracted from a document +created using the Font Software may only be distributed under this +licence. + +TERMINATION +This licence becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/DESCRIPTION.en_us.html b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/DESCRIPTION.en_us.html new file mode 100644 index 0000000..1bc9f67 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/DESCRIPTION.en_us.html @@ -0,0 +1 @@ +

The Ubuntu Font Family are a set of matching new libre/open fonts in development during 2010-2011. The development is being funded by Canonical Ltd on behalf the wider Free Software community and the Ubuntu project. The technical font design work and implementation is being undertaken by Dalton Maag.

Both the final font Truetype/OpenType files and the design files used to produce the font family are distributed under an open licence and you are expressly encouraged to experiment, modify, share and improve.

The new Ubuntu Font Family was started to enable the personality of Ubuntu to be seen and felt in every menu, button and dialog. The typeface is sans-serif, uses OpenType features and is manually hinted for clarity on desktop and mobile computing screens.

The scope of the Ubuntu Font Family includes all the languages used by the various Ubuntu users around the world in tune with Ubuntu's philosophy which states that every user should be able to use their software in the language of their choice. So the Ubuntu Font Family project will be extended to cover many more written languages.

Ubuntu and Canonical are registered trademarks of Canonical Ltd.

\ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/FONTLOG.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/FONTLOG.txt new file mode 100644 index 0000000..35beb4f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/FONTLOG.txt @@ -0,0 +1,274 @@ +This is the FONTLOG file for the Ubuntu Font Family and attempts to follow +the recommendations at: http://scripts.sil.org/OFL-FAQ_web#43cecb44 + + +Overview + +The new Ubuntu Font Family was started to enable the personality of +Ubuntu to be seen and felt in every menu, button and dialog. +The typeface is sans-serif, uses OpenType features and is manually +hinted for clarity on desktop and mobile computing screens. + +The scope of the Ubuntu Font Family includes all the languages used by +the various Ubuntu users around the world in tune with Ubuntu's +philosophy which states that every user should be able to use their +software in the language of their choice. So the Ubuntu Font Family +project will be extended to cover many more written languages. + + +History + +The Ubuntu Font Family has been creating during 2010 and 2011. As of +September 2011 coverage is provided for Latin, Cyrillic and Greek across +Regular, Italic, Bold and Bold-Italic. + + +ChangeLog + +2011-09-22 (Paul Sladen) Ubuntu Font Family version 0.80 + + [Vincent Connare/Dalton Maag] + * Wish for addition of a monospaced member to the family (LP: #640382) + * Mono: No hinting yet - Ubuntu Beta Mono font looks jagged in + Netbeans and terrible with ClearType (LP: #820493) + * Emacs: choosing normal monospace font in Emacs but gives bold-italic + (LP: #791076) + * PUA: ensure that Ubuntu Circle of Friends logo is full size: (LP: #853855) + + U+E0FF becomes large size in proportionals, remains small width in + monospaces + + U+F0FF becomes small size (proportionals only) + + U+F200 is full ubuntu logomark (proportionals only) + + [Paul Sladen] + * Monospace: Patch Family Name to be "Ubuntu Mono" + * Monospace: Patch U+EFFD version debugging glyph to be '0.8' + + [Cody Boisclair] + * Monospace: Force .null HDMX advance to 500 + * Monospace: Remap ASCII box-drawing characters (LP: #788757) + + [Júlio Reis] + * Date corrections to 'FONTLOG' (LP: #836595) + +2011-03-08 (Paul Sladen) Ubuntu Font Family version 0.71.2 + + * (Production) Adjust Medium WeightClass to 500 (Md, MdIt) (LP: #730912) + +2011-03-07 (Paul Sladen) Ubuntu Font Family version 0.71.1 + + * (Design) Add Capitalised version of glyphs and kern. (Lt, LtIt, + Md, MdIt) DM (LP: #677446) + * (Design) Re-space and tighen Regular and Italic by amount specified + by Mark Shuttleworth (minus 4 FUnits). (Rg, It) (LP: #677149) + * (Design) Design: Latin (U+0192) made straight more like l/c f with + tail (LP: #670768) + * (Design) (U+01B3) should have hook on right, as the lowercase + (U+01B4) (LP: #681026) + * (Design) Tail of Light Italic germandbls, longs and lowercase 'f' + to match Italic/BoldItalic (LP: #623925) + * (Production) Update feature (Lt, LtIt, Md, MdIt). DM + (LP: #676538, #676539) + * (Production) Remove Bulgarian locl feature for Italics. (LP: #708578) + * (Production) Update Description information with new string: + "The Ubuntu Font Family are libre fonts funded by Canonical Ltd + on behalf of the Ubuntu project. The font design work and + technical implementation is being undertaken by Dalton Maag. The + typeface is sans-serif, uses OpenType features and is manually + hinted for clarity on desktop and mobile computing screens. The + scope of the Ubuntu Font Family includes all the languages used + by the various Ubuntu users around the world in tune with + Ubuntu's philosophy which states that every user should be able + to use their software in the language of their choice. The + project is ongoing, and we expect the family will be extended to + cover many written languages in the coming years." + (Rg, It, Bd, BdIt, Lt, LtIt, Md, MdIt) (LP: #690590) + * (Production) Pixel per em indicator added at U+F000 (Lt, LtIt, Md, + MdIt) (LP: #615787) + * (Production) Version number indicator added at U+EFFD (Lt, LtIt, Md, + MdIt) (LP: #640623) + * (Production) fstype bit set to 0 - Editable (Lt, LtIt, Md, MdIt) + (LP: #648406) + * (Production) Localisation of name table has been removed because + of problems with Mac OS/X interpretation of localisation. DM + (LP: #730785) + * (Hinting) Regular '?' dot non-circular (has incorrect control + value). (LP: #654336) + * (Hinting) Too much space after latin capital 'G' in 13pt + regular. Now reduced. (LP: #683437) + * (Hinting) Balance Indian Rupee at 18,19pt (LP: #662177) + * (Hinting) Make Regular '£' less ambiguous at 13-15 ppm (LP: #685562) + * (Hinting) Regular capital 'W' made symmetrical at 31 ppem (LP: #686168) + +2010-12-14 (Paul Sladen) Ubuntu Font Family version 0.70.1 + + Packaging, rebuilt from '2010-12-08 UbuntuFontsSourceFiles_070.zip': + * (Midstream) Fstype bit != 0 (LP: #648406) + * (Midstream) Add unit test to validate fstype bits (LP: #648406) + * (Midstream) Add unit test to validate licence + +2010-12-14 (Paul Sladen) Ubuntu Font Family version 0.70 + + Release notes 0.70: + * (Design) Add Capitalised version of glyphs and kern. (Rg, It, Bd, + BdIt) DM (LP: #676538, #677446) + * (Design) Give acute and grave a slight upright move to more match + the Hungarian double acute angle. (Rg, It, Bd, BdIt) (LP: #656647) + * (Design) Shift Bold Italic accent glyphs to be consistent with the + Italic. (BdIt only) DM (LP: #677449) + * (Design) Check spacing and kerning of dcaron, lcaron and + tcaron. (Rg, It, Bd, BdIt) (LP: #664722) + * (Design) Add positive kerning to () {} [] to open out the + combinations so they are less like a closed box. (Rg, It, Bd, + BdIt) (LP: #671228) + * (Design) Change design of acute.asc and check highest points (Bd + and BdIt only) DM + * (Production) Update feature. DM (LP: #676538, #676539) + * (Production) Remove Romanian locl feature. (Rg, It, Bd, BdIt) + (LP: #635615) + * (Production) Update Copyright information with new + strings. "Copyright 2010 Canonical Ltd. Licensed under the Ubuntu + Font Licence 1.0" Trademark string "Ubuntu and Canonical are + registered trademarks of Canonical Ltd." (Rg, It, Bd, BdIt) DM + (LP: #677450) + * (Design) Check aligning of hyphen, math signs em, en, check braces + and other brackets. 16/11 (LP: #676465) + * (Production) Pixel per em indicator added at U+F000 (Rg, It, Bd, + BdIt) (LP: #615787) + * (Production) Version number indicator added at U+EFFD (Rg, It, Bd, + BdIt) (LP: #640623) + * (Production) fstype bit set to 0 - Editable (Rg, It, Bd, BdIt) + (LP: #648406) + +2010-10-05 (Paul Sladen) Ubuntu Font Family version 0.69 + + [Dalton Maag] + * Italic, + - Hinting on lowercase Italic l amended 19ppm (LP: #632451) + - Hinting on lowercase Italic u amended 12ppm (LP: #626376) + + * Regular, Italic, Bold, BoldItalic + - New Rupee Sign added @ U+20B9 (LP: #645987) + - Ubuntu Roundel added @ U+E0FF (LP: #651606) + + [Paul Sladen] + * All + - Removed "!ubu" GSUB.calt ligature for U+E0FF (LP: #651606) + + +Acknowledgements + +If you make modifications be sure to add your name (N), email (E), +web-address (if you have one) (W) and description (D). This list is in +alphabetical order. + +N: Ryan Abdullah +W: http://www.rayan.de/ +D: Arabic calligraphy and design in collaboration with Dalton Maag +D: Arabic testing + +N: Cody Boisclair +D: Monospace low-level debugging and patching ('fixboxdrawing-ft.py') + +N: Amélie Bonet +W: http://ameliebonet.com/ +D: Type design with Dalton Maag, particularly Ubuntu Mono and Ubuntu Condensed + +N: Jason Campbell +W: http://www.campbellgraphics.com/design/fonts.shtml +D: Monospace hinting (first phase) at Dalton Maag + +N: Pilar Cano +W: http://www.pilarcano.com/ +D: Hebrew realisation with Dalton Maag + +N: Fernando Caro +D: Type design with Dalton Maag, particularly Ubuntu Condensed + +N: Ron Carpenter +W: http://www.daltonmaag.com/ +D: Type design with Dalton Maag +D: Arabic realisation in collaboration with Ryan Abdullah + +N: Vincent Connare +W: http://www.connare.com/ +D: Type design, and engineering with Dalton Maag +D: Monospace hinting (second phase) at Dalton Maag + +N: Dave Crossland +E: dave@understandingfonts.com +W: http://understandingfonts.com/ +D: Documentation and libre licensing guidance +D: Google Webfont integration at Google + +N: Steve Edwards +W: http://www.madebymake.com/ +D: font.ubuntu.com revamp implementation with Canonical Web Team + +N: Iain Farrell +W: http://www.flickr.com/photos/iain +D: Ubuntu Font Family delivery for the Ubuntu UX team at Canonical + +N: Shiraaz Gabru +W: http://www.daltonmaag.com/ +D: Ubuntu Font Family project management at Dalton Maag + +N: Marcus Haslam +W: http://design.canonical.com/author/marcus-haslam/ +D: Creative inspiration + +N: Ben Laenen +D: Inspiration behind the pixels-per-em (PPEM) readout debugging glyph at U+F000 + (for this font the concept was re-implemented from scratch by Dalton-Maag) + +N: Bruno Maag +W: http://www.daltonmaag.com/ +D: Stylistic direction of the Ubuntu Font Family, as head of Dalton Maag + +N: Ivanka Majic +W: http://www.ivankamajic.com/ +D: Guiding the UX team and Cyrillic feedback + +N: David Marshall +W: http://www.daltonmaag.com/ +D: Technical guidance and administration at Dalton Maag + +N: Malcolm Wooden +W: http://www.daltonmaag.com/ +D: Font Engineering at Dalton Maag + +N: Lukas Paltram +W: http://www.daltonmaag.com/ +D: Type design with Dalton Maag + +N: Júlio Reis +D: Date fixes to the documentation + +N: Rodrigo Rivas +D: Indian Rupee Sign glyph + +N: Mark Shuttleworth +E: mark@ubuntu.com +W: http://www.markshuttleworth.com/ +D: Executive quality-control and funding + +N: Paul Sladen +E: ubuntu@paul.sladen.org +W: http://www.paul.sladen.org/ +D: Bug triaging, packaging at Ubuntu and Canonical + +N: Nicolas Spalinger +W: http://planet.open-fonts.org +D: Continuous guidance on libre/open font licensing, best practises in source + tree layout, release and packaging (pkg-fonts Debian team) + +N: Kenneth Wimer +D: Initial PPA packaging + +* Canonical Ltd is the primary commercial sponsor of the Ubuntu and + Kubuntu operating systems +* Dalton Maag are a custom type foundry headed by Bruno Maag + +For further documentation, information on contributors, source code +downloads and those involved with the Ubuntu Font Family, visit: + + http://font.ubuntu.com/ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/LICENCE-FAQ.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/LICENCE-FAQ.txt new file mode 100644 index 0000000..776a25e --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/LICENCE-FAQ.txt @@ -0,0 +1,177 @@ + Ubuntu Font Family Licensing FAQ + + Stylistic Foundations + + The Ubuntu Font Family is the first time that a libre typeface has been + designed professionally and explicitly with the intent of developing a + public and long-term community-based development process. + + When developing an open project, it is generally necessary to have firm + foundations: a font needs to maintain harmony within itself even across + many type designers and writing systems. For the [1]Ubuntu Font Family, + the process has been guided with the type foundry Dalton Maag setting + the project up with firm stylistic foundation covering several + left-to-right scripts: Latin, Greek and Cyrillic; and right-to-left + scripts: Arabic and Hebrew (due in 2011). + + With this starting point the community will, under the supervision of + [2]Canonical and [3]Dalton Maag, be able to build on the existing font + sources to expand their character coverage. Ultimately everybody will + be able to use the Ubuntu Font Family in their own written languages + across the whole of Unicode (and this will take some time!). + + Licensing + + The licence chosen by any free software project is one of the + foundational decisions that sets out how derivatives and contributions + can occur, and in turn what kind of community will form around the + project. + + Using a licence that is compatible with other popular licences is a + powerful constraint because of the [4]network effects: the freedom to + share improvements between projects allows free software to reach + high-quality over time. Licence-proliferation leads to many + incompatible licences, undermining the network effect, the freedom to + share and ultimately making the libre movement that Ubuntu is a part of + less effective. For all kinds of software, writing a new licence is not + to be taken lightly and is a choice that needs to be thoroughly + justified if this path is taken. + + Today it is not clear to Canonical what the best licence for a font + project like the Ubuntu Font Family is: one that starts life designed + by professionals and continues with the full range of community + development, from highly commercial work in new directions to curious + beginners' experimental contributions. The fast and steady pace of the + Ubuntu release cycle means that an interim libre licence has been + necessary to enable the consideration of the font family as part of + Ubuntu 10.10 operating system release. + + Before taking any decision on licensing, Canonical as sponsor and + backer of the project has reviewed the many existing licenses used for + libre/open fonts and engaged the stewards of the most popular licenses + in detailed discussions. The current interim licence is the first step + in progressing the state-of-the-art in licensing for libre/open font + development. + + The public discussion must now involve everyone in the (comparatively + new) area of the libre/open font community; including font users, + software freedom advocates, open source supporters and existing libre + font developers. Most importantly, the minds and wishes of professional + type designers considering entering the free software business + community must be taken on board. + + Conversations and discussion has taken place, privately, with + individuals from the following groups (generally speaking personally on + behalf of themselves, rather than their affiliations): + * [5]SIL International + * [6]Open Font Library + * [7]Software Freedom Law Center + * [8]Google Font API + + Document embedding + + One issue highlighted early on in the survey of existing font licences + is that of document embedding. Almost all font licences, both free and + unfree, permit embedding a font into a document to a certain degree. + Embedding a font with other works that make up a document creates a + "combined work" and copyleft would normally require the whole document + to be distributed under the terms of the font licence. As beautiful as + the font might be, such a licence makes a font too restrictive for + useful general purpose digital publishing. + + The situation is not entirely unique to fonts and is encountered also + with tools such as GNU Bison: a vanilla GNU GPL licence would require + anything generated with Bison to be made available under the terms of + the GPL as well. To avoid this, Bison is [9]published with an + additional permission to the GPL which allows the output of Bison to be + made available under any licence. + + The conflict between licensing of fonts and licensing of documents, is + addressed in two popular libre font licences, the SIL OFL and GNU GPL: + * [10]SIL Open Font Licence: When OFL fonts are embedded in a + document, the OFL's terms do not apply to that document. (See + [11]OFL-FAQ for details. + * [12]GPL Font Exception: The situation is resolved by granting an + additional permission to allow documents to not be covered by the + GPL. (The exception is being reviewed). + + The Ubuntu Font Family must also resolve this conflict, ensuring that + if the font is embedded and then extracted it is once again clearly + under the terms of its libre licence. + + Long-term licensing + + Those individuals involved, especially from Ubuntu and Canonical, are + interested in finding a long-term libre licence that finds broad favour + across the whole libre/open font community. The deliberation during the + past months has been on how to licence the Ubuntu Font Family in the + short-term, while knowingly encouraging everyone to pursue a long-term + goal. + * [13]Copyright assignment will be required so that the Ubuntu Font + Family's licensing can be progressively expanded to one (or more) + licences, as best practice continues to evolve within the + libre/open font community. + * Canonical will support and fund legal work on libre font licensing. + It is recognised that the cost and time commitments required are + likely to be significant. We invite other capable parties to join + in supporting this activity. + + The GPL version 3 (GPLv3) will be used for Ubuntu Font Family build + scripts and the CC-BY-SA for associated documentation and non-font + content: all items which do not end up embedded in general works and + documents. + +Ubuntu Font Licence + + For the short-term only, the initial licence is the [14]Ubuntu Font + License (UFL). This is loosely inspired from the work on the SIL + OFL 1.1, and seeks to clarify the issues that arose during discussions + and legal review, from the perspective of the backers, Canonical Ltd. + Those already using established licensing models such as the GPL, OFL + or Creative Commons licensing should have no worries about continuing + to use them. The Ubuntu Font Licence (UFL) and the SIL Open Font + Licence (SIL OFL) are not identical and should not be confused with + each other. Please read the terms precisely. The UFL is only intended + as an interim license, and the overriding aim is to support the + creation of a more suitable and generic libre font licence. As soon as + such a licence is developed, the Ubuntu Font Family will migrate to + it—made possible by copyright assignment in the interium. Between the + OFL 1.1, and the UFL 1.0, the following changes are made to produce the + Ubuntu Font Licence: + * Clarification: + + 1. Document embedding (see [15]embedding section above). + 2. Apply at point of distribution, instead of receipt + 3. Author vs. copyright holder disambiguation (type designers are + authors, with the copyright holder normally being the funder) + 4. Define "Propagate" (for internationalisation, similar to the GPLv3) + 5. Define "Substantially Changed" + 6. Trademarks are explicitly not transferred + 7. Refine renaming requirement + + Streamlining: + 8. Remove "not to be sold separately" clause + 9. Remove "Reserved Font Name(s)" declaration + + A visual demonstration of how these points were implemented can be + found in the accompanying coloured diff between SIL OFL 1.1 and the + Ubuntu Font Licence 1.0: [16]ofl-1.1-ufl-1.0.diff.html + +References + + 1. http://font.ubuntu.com/ + 2. http://www.canonical.com/ + 3. http://www.daltonmaag.com/ + 4. http://en.wikipedia.org/wiki/Network_effect + 5. http://scripts.sil.org/ + 6. http://openfontlibrary.org/ + 7. http://www.softwarefreedom.org/ + 8. http://code.google.com/webfonts + 9. http://www.gnu.org/licenses/gpl-faq.html#CanIUseGPLToolsForNF + 10. http://scripts.sil.org/OFL_web + 11. http://scripts.sil.org/OFL-FAQ_web + 12. http://www.gnu.org/licenses/gpl-faq.html#FontException + 13. https://launchpad.net/~uff-contributors + 14. http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt + 15. http://font.ubuntu.com/ufl/FAQ.html#embedding + 16. http://font.ubuntu.com/ufl/ofl-1.1-ufl-1.0.diff.html diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/LICENCE.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/LICENCE.txt new file mode 100644 index 0000000..ae78a8f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/LICENCE.txt @@ -0,0 +1,96 @@ +------------------------------- +UBUNTU FONT LICENCE Version 1.0 +------------------------------- + +PREAMBLE +This licence allows the licensed fonts to be used, studied, modified and +redistributed freely. The fonts, including any derivative works, can be +bundled, embedded, and redistributed provided the terms of this licence +are met. The fonts and derivatives, however, cannot be released under +any other licence. The requirement for fonts to remain under this +licence does not require any document created using the fonts or their +derivatives to be published under this licence, as long as the primary +purpose of the document is not to be a vehicle for the distribution of +the fonts. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this licence and clearly marked as such. This may +include source files, build scripts and documentation. + +"Original Version" refers to the collection of Font Software components +as received under this licence. + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to +a new environment. + +"Copyright Holder(s)" refers to all individuals and companies who have a +copyright ownership of the Font Software. + +"Substantially Changed" refers to Modified Versions which can be easily +identified as dissimilar to the Font Software by users of the Font +Software comparing the Original Version with the Modified Version. + +To "Propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification and with or without charging +a redistribution fee), making available to the public, and in some +countries other activities as well. + +PERMISSION & CONDITIONS +This licence does not grant any rights under trademark law and all such +rights are reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Font Software, to propagate the Font Software, subject to +the below conditions: + +1) Each copy of the Font Software must contain the above copyright +notice and this licence. These can be included either as stand-alone +text files, human-readable headers or in the appropriate machine- +readable metadata fields within text or binary files as long as those +fields can be easily viewed by the user. + +2) The font name complies with the following: +(a) The Original Version must retain its name, unmodified. +(b) Modified Versions which are Substantially Changed must be renamed to +avoid use of the name of the Original Version or similar names entirely. +(c) Modified Versions which are not Substantially Changed must be +renamed to both (i) retain the name of the Original Version and (ii) add +additional naming elements to distinguish the Modified Version from the +Original Version. The name of such Modified Versions must be the name of +the Original Version, with "derivative X" where X represents the name of +the new work, appended to that name. + +3) The name(s) of the Copyright Holder(s) and any contributor to the +Font Software shall not be used to promote, endorse or advertise any +Modified Version, except (i) as required by this licence, (ii) to +acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with +their explicit written permission. + +4) The Font Software, modified or unmodified, in part or in whole, must +be distributed entirely under this licence, and must not be distributed +under any other licence. The requirement for fonts to remain under this +licence does not affect any document created using the Font Software, +except any version of the Font Software extracted from a document +created using the Font Software may only be distributed under this +licence. + +TERMINATION +This licence becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/METADATA.pb b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/METADATA.pb new file mode 100644 index 0000000..f2e8939 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/METADATA.pb @@ -0,0 +1,48 @@ +name: "Ubuntu Mono" +designer: "Dalton Maag" +license: "UFL" +category: "MONOSPACE" +date_added: "2011-10-05" +fonts { + name: "Ubuntu Mono" + style: "normal" + weight: 400 + filename: "UbuntuMono-Regular.ttf" + post_script_name: "UbuntuMono-Regular" + full_name: "Ubuntu Mono" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +fonts { + name: "Ubuntu Mono" + style: "italic" + weight: 400 + filename: "UbuntuMono-Italic.ttf" + post_script_name: "UbuntuMono-Italic" + full_name: "Ubuntu Mono Italic" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +fonts { + name: "Ubuntu Mono" + style: "normal" + weight: 700 + filename: "UbuntuMono-Bold.ttf" + post_script_name: "UbuntuMono-Bold" + full_name: "Ubuntu Mono Bold" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +fonts { + name: "Ubuntu Mono" + style: "italic" + weight: 700 + filename: "UbuntuMono-BoldItalic.ttf" + post_script_name: "UbuntuMono-BoldItalic" + full_name: "Ubuntu Mono Bold Italic" + copyright: "Copyright 2011 Canonical Ltd. Licensed under the Ubuntu Font Licence 1.0" +} +subsets: "menu" +subsets: "cyrillic" +subsets: "cyrillic-ext" +subsets: "greek" +subsets: "greek-ext" +subsets: "latin" +subsets: "latin-ext" diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/README.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/README.txt new file mode 100644 index 0000000..292d4ad --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/README.txt @@ -0,0 +1,15 @@ + ---------------------- + Ubuntu Font Family + ====================== + +The Ubuntu Font Family are a set of matching new libre/open fonts in +development during 2010--2011. The development is being funded by +Canonical Ltd on behalf the wider Free Software community and the +Ubuntu project. The technical font design work and implementation is +being undertaken by Dalton Maag. + +Both the final font Truetype/OpenType files and the design files used +to produce the font family are distributed under an open licence and +you are expressly encouraged to experiment, modify, share and improve. + + http://font.ubuntu.com/ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/TRADEMARKS.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/TRADEMARKS.txt new file mode 100644 index 0000000..d34265b --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/TRADEMARKS.txt @@ -0,0 +1,4 @@ +Ubuntu and Canonical are registered trademarks of Canonical Ltd. + +The licence accompanying these works does not grant any rights +under trademark law and all such rights are reserved. diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UFL.txt b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UFL.txt new file mode 100644 index 0000000..ae78a8f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UFL.txt @@ -0,0 +1,96 @@ +------------------------------- +UBUNTU FONT LICENCE Version 1.0 +------------------------------- + +PREAMBLE +This licence allows the licensed fonts to be used, studied, modified and +redistributed freely. The fonts, including any derivative works, can be +bundled, embedded, and redistributed provided the terms of this licence +are met. The fonts and derivatives, however, cannot be released under +any other licence. The requirement for fonts to remain under this +licence does not require any document created using the fonts or their +derivatives to be published under this licence, as long as the primary +purpose of the document is not to be a vehicle for the distribution of +the fonts. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this licence and clearly marked as such. This may +include source files, build scripts and documentation. + +"Original Version" refers to the collection of Font Software components +as received under this licence. + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to +a new environment. + +"Copyright Holder(s)" refers to all individuals and companies who have a +copyright ownership of the Font Software. + +"Substantially Changed" refers to Modified Versions which can be easily +identified as dissimilar to the Font Software by users of the Font +Software comparing the Original Version with the Modified Version. + +To "Propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification and with or without charging +a redistribution fee), making available to the public, and in some +countries other activities as well. + +PERMISSION & CONDITIONS +This licence does not grant any rights under trademark law and all such +rights are reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of the Font Software, to propagate the Font Software, subject to +the below conditions: + +1) Each copy of the Font Software must contain the above copyright +notice and this licence. These can be included either as stand-alone +text files, human-readable headers or in the appropriate machine- +readable metadata fields within text or binary files as long as those +fields can be easily viewed by the user. + +2) The font name complies with the following: +(a) The Original Version must retain its name, unmodified. +(b) Modified Versions which are Substantially Changed must be renamed to +avoid use of the name of the Original Version or similar names entirely. +(c) Modified Versions which are not Substantially Changed must be +renamed to both (i) retain the name of the Original Version and (ii) add +additional naming elements to distinguish the Modified Version from the +Original Version. The name of such Modified Versions must be the name of +the Original Version, with "derivative X" where X represents the name of +the new work, appended to that name. + +3) The name(s) of the Copyright Holder(s) and any contributor to the +Font Software shall not be used to promote, endorse or advertise any +Modified Version, except (i) as required by this licence, (ii) to +acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with +their explicit written permission. + +4) The Font Software, modified or unmodified, in part or in whole, must +be distributed entirely under this licence, and must not be distributed +under any other licence. The requirement for fonts to remain under this +licence does not affect any document created using the Font Software, +except any version of the Font Software extracted from a document +created using the Font Software may only be distributed under this +licence. + +TERMINATION +This licence becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF +COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER +DEALINGS IN THE FONT SOFTWARE. diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UbuntuMono-Bold.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UbuntuMono-Bold.ttf new file mode 100644 index 0000000..7bd6665 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UbuntuMono-Bold.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UbuntuMono-BoldItalic.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UbuntuMono-BoldItalic.ttf new file mode 100644 index 0000000..6c5b8ba Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UbuntuMono-BoldItalic.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UbuntuMono-Italic.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UbuntuMono-Italic.ttf new file mode 100644 index 0000000..18f81a2 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UbuntuMono-Italic.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UbuntuMono-Regular.ttf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UbuntuMono-Regular.ttf new file mode 100644 index 0000000..fdd309d Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/font/ubuntumono/UbuntuMono-Regular.ttf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-large.png b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-large.png new file mode 100644 index 0000000..0774409 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-large.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-small.png b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-small.png new file mode 100644 index 0000000..3ca6c18 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-small.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-w-text-large.png b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-w-text-large.png new file mode 100644 index 0000000..8ac6a89 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-w-text-large.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-w-text-small.png b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-w-text-small.png new file mode 100644 index 0000000..029bc72 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-w-text-small.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-w-text.ai b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-w-text.ai new file mode 100644 index 0000000..381804e --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw-w-text.ai @@ -0,0 +1,3038 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[6 0 R 42 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + bw-w-text + + + Adobe Illustrator CC 23.0 (Windows) + 2019-07-10T00:17:41-04:00 + 2019-07-10T00:35:24-04:00 + 2019-07-10T00:35:24-04:00 + + + + 240 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADwAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYqx L82PPH+B/wAvtZ8yqgluLOILZxN9lriZ1ih5Daqh3DN7A4q/OzzF5m8weZNTl1TXb+bUL6ZizTTu WpU14oPsoo7KoAHbFUd5X/MTzz5VmWXy/rl5p4U19GOVjCx/y4W5RP8A7JTir3PyR/zmn5is/Stv OOkxapAKK9/ZUt7kDuzRGsMjey+mMVfRnkH84Py+89xgeXtVjlvQvKTTZv3N2gAqf3T0LBe7JyX3 xVmeKpXYeafLOoapd6TY6tZ3WqWLFb2whnjeeIilfUiVi60JoajrtiqaYq+Ev+cgvzh806v+aGow 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 + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:78824afc-a992-9845-ac52-4124f79a9a06 + uuid:25947c3e-171d-4860-bfd7-7dae9fe32837 + + xmp.iid:7360047e-6b1e-bf46-bd15-f9c5fb6ad588 + xmp.did:7360047e-6b1e-bf46-bd15-f9c5fb6ad588 + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + + saved + xmp.iid:d85e71a1-fcb8-c245-b84c-ac268702a414 + 2019-06-24T15:23:01-04:00 + Adobe Illustrator CC 23.0 (Windows) + / + + + saved + xmp.iid:78824afc-a992-9845-ac52-4124f79a9a06 + 2019-07-10T00:17:40-04:00 + Adobe Illustrator CC 23.0 (Windows) + / + + + + Web + Document + 1 + False + False + + 1961.000000 + 1961.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 0 + 0 + 0 + + + RGB Red + RGB + PROCESS + 255 + 0 + 0 + + + RGB Yellow + RGB + PROCESS + 255 + 255 + 0 + + + RGB Green + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blue + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + + + + Grays + 1 + + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + + + + Web Color Group + 1 + + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + + + + + Adobe PDF library 15.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/Thumb 48 0 R/TrimBox[0.0 0.0 1961.0 1961.0]/Type/Page>> endobj 44 0 obj <
>stream +HlI E絊@c4SˀGaxlkodd{ @Ȍ߾_5#y=ǗHǑ/Ǒ]Klͣn뷇>iv|uLَʇg;߯s~)||ĸDC5zfԟ<[kIvIQׇ59峴v\l-t]Ky'o?u ZMsԳPZ?u'gsK]*gͿG%p4fVQLCG]k/؊߭W=KיX./j9z% {盧y(OLkk=tTV ^:-.-v{1]v&&ӂ_ί崩v!4jYV378NEzLݭ+,i<|΁]:-ccA_S%OVgW`2m|.1/5Z\L+z,2q^M ayyU"7sQ-29[m%+QyByf=w)M\ӧ~ H5IչFzUpE 3ΣYoD3\{:܎7h[ho1]ce/>F Oz$Hճ AS^?ԡ=ڬ5+>3qC]얈llVp92jIo\4 jKg+Whr9\%JҌG_՗ViZÇ+ێ֨Y5G (I"zE݆IW/!_q))jZjbx:4b0rw*DRfa8I 9?i gomKAڴĀ؜zR +z-{swFlNnw)Z}9bxF4TLe(=|xjdDC<³ك;(:pw~.^͒>Bw +vstZΣl)Ez'Gt5ٱLMC5X,5 {kcJEߨz頧! +́3v%<#L5K\LByMIؙV qgq^m(pHͬa"jt>BxqyNYFE0>qG(N˃:mBQ+"{(Ru6bK.zdpg-sg9@0I@(~BMxp] W7Sh{ ap^4O 8;O$8TJR)T@ϲYcAeKNܗ”H sJ%}o.xsE})]rI=BPjK__xh6ta)}I& %xP~3Y{FwZޥn-xzR6|lbz+M.\ũW He7WeM=*<޲%TJtqwӿ4Nqkxb)eF +:XÕ-,q7[-8HO0J9 o.`OSo1oo).ϥ3SaSm}\]<E ֞c0yf3osEdٷ֐k֫Hy%%ON&\oc8ЩE/UJ[ U[R%r9ZP鮋P4 @M3R̼E.r兆" (rj Eu K&Mt˔ h]HUS!OcqfV4\E 4`U9ë*wY D#G1upEgn{+*;Up9a9ᲸMb@KlriQtҙ:dp# lj:Ԯ +YzIt)ga$i$B}٦K͊]d9s7 g(~ې((徴MG=.vּn/~A`=F /k7͝+V?Idlsߨt1Јq9 °Ka)9k GgŶ>JjFg87;Y&[.xdٕ +7?Y2TGf㫚b ?8?ӊV8yQ&#SVJlTZP+LQ >xm`~P) 5*<7?O3/b.Sґиe?Q"c3lj@R:~RYL1v"eH9|Ī7X'o+O]3zc xw ȗaUI.˯f=bվM8[MFkJNe ?i&x=|vs/z1.\wucyNGcX8ag̝(iC\RR3#dJN&>ʌS-|J,'8QI0~t9RVBqŖۆG"w̮&9z@(zKGr>.#s ?dЂ[o}]n;8GD /sң&("Lx$2zyT0Ko)xZfzF7 "q-LpFc9'](%"25Rmʣ"JE{+˜%$ y}!Duct?H9#Tm0ݘagW[{2K mGx|?L +#l]c$g#YHYQ|Vd5[v0"@ѴZg#܎w! PF=䮤=C>:f-{;`S+OfĻ'6I- ' aR%0Q^v,X#.}[{یsvקy%m?xǏ܉hh&s客S0ū);-JR@) d5tԫ:hclƹLi/_3rd&O'(LKDԋMw"mburriAZ]^[5OX)b-}uZfX'$a _Ջ5զua殀"J٥lzQ8k5mczઊ5Fd_7w)yMC+ajZ4Umweσ!a*c@1NADgHz}V0vlo%P +>%W[,(GTUoOLڽR/cjJzfE`X«ztyڪU_ʁ_b9ոHY6FumHJAv'S:z F"P'V9hmmЪ3#vmbꄥ\kZVw|pvdaTį w!j ioLFH3@k9 MG4g{ë7vgȟZiU(f2л.GHHiC :H@ƥr͖6@DFBX:‹bƬP*:+2f~jAf6< n=Q//@.# 3B9Q}<"<d}Nٲ:uA'T,,;뇃L2]ơf}uX OؐɱNC%L ->s~סpȞ`)]6> Z*EfSzi o%Sѵg.U.U<~IQ=g;_aMȏgȤL'uMƆP[RVMoR ,JpeAz}Kr3Lތ8T vCzcCʚmҀK|ŦL$t [?u;[zƯצΨ{~pǫ?AQAT- SԽF1uuC7˽DC ;Л8{Yk8]cnD$A!We;<ؙLϕit&5pt8CM'wFU VnPu4,B & 05Q PyjWba3=C @ ƌXQM# +nv0Р=L2jϏ+\,D4DNm]+9t53`Jɤ2bm-Ψr,CTH(i6^ŕj NTVXN}~H:hC-5\Q0?e 8-R 7'ʝ"Ă*ͣzb@fn %壵 bD MG(袠 Tvg!>5^GMݑ*5-dOf[(M{!:Ys';Ih+=*#؋) -IZլSճ2`}/0s̎Er]Ŏ8uL8B"1SqԾ )IgRPEPC|V۽C3ub%5ӥ +5# >1ޜysr_l.#Aё4·%C'6K:ЬӠjXϭ2&8X-oFHRʍH5QB'޶P,Y76?&U)#ʽt:nI.AL@Õfוl\4Y! JL. 2!ˬ$DC"f yDG7! K~oN",3*R%tk1IC +\+{#X3 ƅz=7嚟 viXН,yW;kvh% 0*39]Ò6JImP1?AD4i E*@P2ItnL,W^# 046pH':[_`@$:Pz氮w4z aTkKPP$-^Pm* +NH\%UwRy9&鈚~+*PQڙ +1^NyjzJVQuxMiC#Lq7_+ J:5X!A!FqWTL~"L ,Û00\:q +oJ3!>?F$ I6x+\FN+=/ɊʓdlpZVw !NE.MNta4dMPH;Җ 6oX/; ߏ=6Չ]MP:j(Of .W0Ejp\30U1.BY ++׫?W }%r]VG<㚪3X)+n<2.ļ!XOt+A#x6 9_gh T\կ3 *@ {C/0$|F9Ұ[3D,4kܐ9RMXBܚ׊\\LQm@Es_"~n{?@("R}EC݄' *ub$ ڔFu6^yd!HȲWke+vR|$jo="ZC&l0pVG]X +Ie1DI8wV7H)duzV1qgU{X-ؖgx[9D`ji7s+3{ DU=?O=,>,90 +ԾiE# +pфVA u)FH3VȬb ~Hra'M>?n0~DBBL!E1}V0`+ajw$9wO!^}4ҖT +3_Bj5](puɈzh +VL |D(?Smvv'iZm*#&.Srt ,g;wWtW=ScL +VJgT?O;1S|ɖ5{-5Q#,!@ˑSF5:d蘅<0gchJ_!IPOʳzY-4v!;loqio\QFazM0D].Iv#; *C\OO6HI/* g'c␣ϣ m5Tl|h14>~gH +;؉aLەTg2͞&ł6TmjLe|Xp3%'z|?R?nqg9)h9q,Fy7QzCWa ǀe64p5z"# 䰦EW,›!fՎ<ެQh>zߢO|±jgpBsFRZ #2w՗$SwV}|.FxGC thž*,Ǯ(yw'_Ѳx$%UFgQ:`!rb49qIGiP*$2\1gՈծhh#X(FuV 8x%/4_>X17t}Ae#TFcjRBzQ(Jrds؁6J`"0YlR W_:59dB/ pJM]m/żWA}sf/5ü$cK1J Vo&EHR=\֖9I&#V5QC2lHT)SVWOc2^0[>Й_+m?L0!FK.s&hn3+Ye+& 05*OܿA-۳,b |Őn=\L\}Gcn<4Jw:+*rǝnj4gU qIor8wǃ gx!>R66&|![Z׭>Ā"ƱGct" Ug!cQP.nؼ令^۞SE=Ǝl)IR|Dtgإx%GܽS8 Pm|O [\(JCd[X` qr0z2-˥%5\Q1!UZ6MT8<-硵LWnj-< Y1ڀ' DO*2z3&e:Cj#.#%񺪚;k^=dL*vd+$PVwk[UMP.AI O>:0>WIfnO U$B$?ƥ|ÉE{tqٹ% +0uJ@aRnzԝ/x09w_'սj XKjq^2"/|ah~ǐ`E5fE7&Tv?-_xY?5qeqDž ZZ`34z1 @IEJ|JC֪O,UnK@4d{-0-õa|ʣdvzաvHVQڰNhFX_Sic؉eO$g${uKoAosXײ{5]V;E-uT{3=JahOVxɄn ,_;@M:(kp>O _,lbV֚}Ar&:ax w+kZT\̬I]._ZTs@`vݞB[jh?"=O]3JqBqxLqP$04 ;-/&]x°\8~sIE5{8,6sZϛfV6Zemݑ +vu[a.^lm{,{R$x"Rp~"Ƌi# ŹTmhOe*\b1\PX!IxwY]_3 w~dd =/Cf;sfO꺱"-iP|"+ (VȒ -U-PfB95lb􁸐j1$#ʞjٮ%{QGqtJ[M&nZ+hD`kF͗Hj+$RԓURq+LՏx__)L +2H]d2M7Jn`ڙg{  kr,C$ j$]vNIs}QFM1 le£13 +t*_y`E8c2B_h3Ǻ~WC#i+w4Ul 'e+[N%NP<ŋTC\% +ȣ_RJc ІBu±^3vc5#[QwxI\}F3 ^`FhE%GZɶvjE`w͚`l08S +ϞXs)'-Wu4V3Kьid{].To_a;HHW(EY>POՖ:ゃEFJt"FQcp݄3W-&1%q [OMcz]*_V +Yw8MaTzgOWe[k+e>W,:dt֙I(A] t ++#ΧA9)_ ++TKf +5"FCxbi[V$FInB䛑oO(7A-fMP5:o104TM#B)-D\4+vSFffhTW&䳓ae+cgP0ó N3H\܁6tcO5Yp*z ?v ;IT.uF>8~iϢ-e) '\tOTnx#_ n+b G*rԭueĦ^"ƜA<[: H- \ժsDlj-=*UUO {I5:M}\q z(VZ[;C7 `NR;KBГw's_c"@^+/T,E׽.+)jEBJQdk}ߚkZ*F+kKKl_{>o#Kak ~J!;4YX_jTAqTHҡ*Xy14r],C1.})xFMTI;֝#sK~&H{)4t( S?%LplܨO94[/Uu]eQK}*$/FbKqC<CjHyOW4`}~euf3ĩ!ˢg"(hzcaIQ2`g.- N+ʌ#%t#ٔ) v"%{"U*>We)f$Xl]"Q6r__H2s"WN[і|}R}g49u#AKR2i{3V&p`cw`w LG=ϣ:l AeOz6;>ҸZ{xU®? ~ acL}UO8[ϓCoyVCͲUL+`DY(#-m9_vogg[unH! 4Y(#| o@tFn?_K[wtK8t"ifnNKI!KZuç\{3̕=[OL?oAB +j\:-v䋹CA5P:ES}.F]cIRF!'2R,B8fb/xlwDOo0̨3;T1JogER`P⇽L-y>2rгH! |KwDOubQ 2(6]*]* PKOr6bw<^[cf7j+MW7M)x:ZOtk O~i5|C0ðȗf/ o7}Д],5hU%}Ц^K.[*5ds׏.F;_j{?z=ʺQvjB͍K8ڱ} D@泩'~wzH^_0ORT6| +2ְwV1%ySo[r0CVq +G|3"Q*ȰNTY/%̽s]-\gidq>ERʔ#i _QZ17]?5NAK]$="YЍ-v܂Q[(J4y]FKER=[ Zѡ>@DObh-y&gY k覲sDѲI:3Qla~2ᇡ~jK/Yκ2-}̗R=s%Jߡfk**qLL zyH..&BΜ%"B>cT~Ihfإk#Lc )xOCz_?de2I( hܣ5!n?44)&$%Cn-s!B/IQI]A 51U#b91(fE=DWpWz{n5Zit`u"#۲ Phƚh":?OP,4<1o¥K%^ ?pi fÖ /a[T +[V6}-1{E)( x + tw\Aa1}g= FVA!PJ9rw{0z>~hQk\F xY?Z˃䀥_@WwbN*:BM:JDmMI՜8 qG/V5MMY-Q4YBIKЌs!릤XKaN@C Y)*(KG=l',lUZK `Wi6zp$9M8/;3K)71zc-5-9{Q3ؓ] +o"0xlcw|$oQkG]R݊F#k +5"RQre"~P&f5.+h/uv^bgO-Kq- ʶ\㪹ZE y[ö7Q泭 i :}3nJ)" {tj3g*b< >_j"~V-IŭB+QDS c 홞fq dZďG$nD҆|yK6wn]sSEJyR@#Fj$)8q RXM3Y&b$`Ut^,HŁöJ<]c{5t;h,yjmLtQOţįUi}&Ui5#3sI]|@~bgth4T,CI|玂w`JC-c?k'铸WTCֆ"^X+^7 mZk7Eכ:M_-- l<%3OvLO*d*u3 D"z":mqE$<}H>+KRlpه*"䬰Nxch|i;\;ub#*#ZHϪC+,?NijtxhC7]΋DV9x(޽,W[nLo%m5eMmg3U$ꂿ[Ś^2M_B+y +7@FR#@k[ↁE^mrxNdJƊm:""{hKo I}t}a"v5&D`wMm \O;F4ƾPE4ݘƣuhf%&^tzfg"WZI GjA?zI\fW:r` )a Y+qk?R7ɥ,^mmɲ,]IE;5m'MƜ?1ETMҲdnn~e.O +V쳼kHk .8ڥFfZ4jwn6u,(:9FZ"cdd PPL-+FY8C0qБ j$O79Y#*'UNdVw#X0yp.zC: m@|gDMWگUb8.#Rm¶<ps+jC)7ФqC[,g[%ܮ0a^`4?LHqߜF^jך74'~K 9&+.$bkB3m~"޷L^?w!T[ +v|R}y&xsk0 -ZQ/4x09 'R|)DsK`Ʒ_k8 jjHI&PQϖ&6JJ( Fh,J9KΛc}Z5V;'5 j'oUR 1nS{8S٘j5 $)𶦥Dq[QIpWK}b*85%TЫ܅@}Љ!DԒR-ʬifxJA}XgoU{\)ǢcAR|VknI֤=?~WS욗P9 ts8pީT7JB'ֿ6:bg;NϚG`".l*ul:4ȵ,R@TbaآzeE#ixG>f}'+c|J!ľAS]&Y8)y8eߌ^eN' :~ Y{KmsF8{w6%w<ƥ>i_-|phm\R B9J!|j9Db`soqK( tc-bVyJa}ʤ_9:NCuctEmTɬhl,֭6"TwUV%+*U;B,/:v*!f1i3yy^4 E8ʏ0lpzs`&뮵T;?h +Ry~X^+6d4#t-S:q53@-չnPojj:yn")uR/fwU/tYAK+l^Ca6'eRBc?"`;][틿̙ՋML|~߄^=|x`۵*ƻn{:5 Iݫ.mj Hm74\< Ҭ:W2_BՌVtzI?])F Mt{E?Jk=#v%U჏?s70fqFt3T~ZU*֚M2^_1$VdK؁3X!kKw0D_lGN~CK0FG+ +-!{r2J0G5:=x b "Rݟӊ$'YPu + SsR]6vV IQًU4IA{@0UM:L,3/7y^JQ}nL8QE(ىȿDWM7F]#&J"GQO]o4&UK"IH9/_ ՕjjAM1AnG PLhM]_zQ9 EXm4_v2!d*r!O -7a Sڢ?-^=+ '\oڜ=k˟O]Mf׫"j+A*V +G+R}FX% lizû%{m{]p\s>bHc97ؔ;nC'ՇS:gӓ#nS#[]C#&ӈ7e۞A;lpD&X2! I9ɬ#MBnYL3E[1Z&3Bu5 +< ̎MzH_LoM(Ҕ!f!ޕ$K:__8+`p&w`LIQ90ْ(uсkSsY- RA[m49J?4;$ ײ̎$uJĵp$,HwWѺJa?/]ܼN'OZ) c$t[<6丄ˉwt3wچ۩<3]/ĕӌJ9:$al:3$DۖyvNe(1jI, GRݕ% 0kjKH_t[eYEDCJ[񴣐VP ^D{wj ˘v0kF%ntH^5і,j"I]7teDjl wP߸[6NcVXH,ϛK6EyR.=#mWROTb +S]LvYh.Mx%\l,7="Ia?6Q?!163 yFg] I}dO8>j)n=hGC9@,aWsʐ nd6=>LR}2CPFoMPwѢc܀'Bw4R4`6-X~@'Z8 Y%{`GZ3[Lɑc*9 + AegVpU21"3k70Ȓasxcg5f'YbQMf#(7+pDgP^$="n@*;_ڹ9͑~"-= gL g,j7+#stAp,G{[42ldJ'^-K2Jopv2#fi,gVh?7nVvDSZЩUl=ۜt>X|H?N5h]{KE+TJ4p}r4?L jx٣hLmr(%QR8V1ד7("xxѽ մ:X!P!H5pC2~PE*@Rf2<ig 9<2ā-r4rSWʊF䈹\QZ##ܦ5&/ +\=Eӏ4Ron jy>enP.bUΎF/7ixvoj~ν{f-5tC/7TJz->$ҹlj|swܑ(Tx&0^5Awnע] +;kN( N҅GZpk4eo3F*gnJS=GEmfCJ轟=yp|MS9q䶰TbNL %gܼ\)Sf ̬Cō(Js;l<4=-91~,yMG)v̀QzLhnH! +vؗ<6շh!?W^yB D8ow^W^#p3F=owP5.2A' Һ73Dz-* +94ok߯E{~=_\&2]Ez>VT!klptIwKxGǻ%ټȉ9>BD ;A4;TOTqʉ ]yӝ>AI6(A}FEZC +f q_׍UFV(Vp{ZaB\$ȱ(=M֏Dx'D|j{UJ@)jɣV/@b8x׶Z<'M8pJZdu& =đ4pg&0MqՎs+$^ %L†BMid8iLf/7vjAg16ePS؅MtY\#z[m0& +V)jdH$$g j1&n r_3<5p(lxv]ҋV$cZ6cSJڄYk2̮8 SqPRqJ3PB YAR98"3иJ>8+\DX-]yyRQBvz} p]=8&*V`l1)ZW!TUgh.E#/ed ѽOtNvo:[I A}MT AUV/ R44AwƱ{'4#A59ZR`VJzZGP ǞZi[)~(krp,&µZ5.LrgT=$ig@SJ8Un׸z(\*]珞XL80B}CD2e1aoRn)[0Z9| XZ A:ą*;N&b8ʀsTmp2vt>ȄUG d0ru+覡bnb78S4NB ,+Çw +f Ϝ^|M)'Ϗ<ŞrJwibwE ʹ\ ߯?\۴X^BJ9ٲXK:yf[($ƥI%Jq^zav0(9ԋ(͏pEwZ-8[E{a(OqpoC8Sꚑ#Բ8Z +΄ۗ{+, F0 )t5>DޡaJ4+Nw^+}5Pb{P0&̡z{xڃ!'q2(V= eLcN+ܣѤ8T>iwxrPkq@> %L7>1kҟLjzރOml>]yW^f !xÒzy:{Jkdm A<:3#bkNSSW7sA,L*[PԱC9J(Pn*{OxĦ 1aYY} +N?Iy Vv[>=E۴Zޘ8dXK ppMƃioPm;ReEZ?ӧ.zIAdFƹPt"_K P8_| +_3Aͼr"S3P7Q#-**[/G'xp}ۓgVMe;@GC)I}ݮwR #yCknd,e(wf~TUy֖Aqe(Y=X,=YGI8~6WɗLD #i+@՗6X.G\hw9>bcImѥC?b{2a/(d봠qxb ?|jrĠt*' +)DŽ1V{|r|j.ޏxu-PB}S1̹XHЋRz$\I?J`G̈QrZTF:QD|Bfp +s%y'ݒs6! +Z!'i-lT^~ZĊ!޲s.zsv (iݪ4/kѪfMMO8wzP˂rJ9"39bP9ܟ Ii͎!*?;uT;q)V &`z"3eRJc(`7i I ׂmgBkM5wy<]N`!M$˃1኎i.RX>q –&8ѲfyԦK?z|Y~!d2+P_(->[R^JhlߵvXTK3bm_hۦ3+sBkP5ds8ݹDL*Tc#AҲ•O b².q#s3DRex xxsCU(%2xvl8 ۩3tQIu͊Dj1e|j֕K'{cٮfֹυ:ȮfZ^sNSL;TMEj`gIm=NB2 a)![OSsg&5O.X#wn#]n*S%>ź|JnSDSW)'V~$0_<z]P|Mh$fjle}$qG'ogɪ?TpzH,=g8Fzuݓè_pLڂw/Ld[ͥyF=OIA}(L|*lewn+w 3];ل6ms쭰E74)l%˄W:ϢyBɥ +\Q:c=8YW q>Kokx3SVp5NQ3?;]x;]M̊m1ؗ7r[4rՀ` 8+zjJ}ƟDY,zQ-BxE@Mjq,C6dvk +Gkk}__Qy|F$[ojDC)8<0^5bjk=qteH>^kVm;E麛$mXDL~}ٯ#=139_=D91x=h7'͍n&M'H `LTmѩQr].VJ&% kz"r:+J0 T8@,1OǰOd-pWق1L^nWRՕ7v}>lg}B)n  r^CQԽvWQE_}ܘG@ח2)/·g\(v1 SV~ֽea$n]Krs1q 1\̃n&ͼI?T~KD/܀iv16'O{Dz(Q^?3F:>c,2TzF EԎ^0NR"B)G~/RHU8\"NN2P 6ŞvE#wMeJ`Q[\FTYmǿ&>!j>vg4N%˙[vtRNPUFؐ2&wW0h*}鍸sq?x;Fchm[Ktqj6f nEf$BЯQ̈2>s󍦷݅穸Fj?Vɷ"߯|ulaș+[>SĶj},ƳLNxVS3K+ݟf-u؞O!p8Ihf if5s{). plu(LrPa&ζjfY3{&h)sìisj<!mgO;@dz]F~Rj3ZNrG WfH}2zg!7ǧ^zf7r0Hrr)N\Q?&p FmF :4Wm H^^BPOUWt b"s g6F[aCNV6]ALę+j@KϷf"G]]񇶳;#54ZKYU.+jjx]^;M7?mm+M/ TwN'SF+4Qd`-3ZeHwTxG-HxV[IkE9hwX +V+U j[wqc6ˡYzOgqU3•EwH|KaDUC{Bgm܇ӀKh ++7Ʈh- 0Nw$و'gғc e[ۏv |e[iE+J#Q=ҥp<yְ%7h aRveOWk )c",O;cPF*::ΝǓ2hB'j؂ܔBʞ:Ma*(LPa \{y|~I?en-nQ_QLUɚSlN7Nc@B=0{?tVǖ]\8pgѡ4Jyax[A*_M$63n#aMZ+j-Jv_^Cɮ5aJPpz?R+,FL}p`^?پMJ,4XbC KS쐧=b&]jv`b}j R9M[7x0 1҂eM"+Xnjn(YtພnriA8te4Z%b(O"~ꓰQ 3".Ņ"`<uaiTO,@p2<'z#T)O1YsU|+3d1/",Lv8`[7;=baﱎV@6m1-qNI_9xdž!=?CN]P%MS"SL/mJ g7՛Hv.Ph\V.T&NP?\5 |`m ГÆ^pк0H"?Ҙg`sAtrUS߈^V3P%9;@ MTu?Mb*_ʤ,V4BY ˋ8Qk M%6JHZz7g?1]R]DYk،?y\9'>9hC“r>hn%dI؋񆽔%(o-G:'ζi`r7|ceVO0][WkRz.Μ0{nH&uA`>PwO_h$vpdBuy A:="5$1 9욙.m᪵ZD1QVbA 4CS]L{b- *P!xgkx&6v <˗)x߆R[`/}cڄ7nixJ6}vv}:q  ldoA!?^f/\N!xG.ci|@I `@?W9(J5PV}?:rsݟ5uZdf?k@Ϸ1Al`U#s4f6V!$T? ;+ly2Fvw:B߭〣g+XH.{` 00P/%k2#3]yP)fd17^7ϩݝ~%Z E!.Ot O$a픣v( ff:rJj (Ip={A*NLٴGWTCqċ~JuKҠf̞fi_S8ғ5#vDep?IvU|~ZVuD ߮։yKQұUSPw} + 9:0 ݃㉾.8Cn`zt BFv:Ic9DM,Zl +lO~PlNd@uf;#ik>ҲOuq0>^,$r;y-9X7lxKۗ}^(I+Ůc(K "sO2zjsGL%`5p(\HCY𪰤ݛe3B ֈ4!Bx5uz{-l𸖱V8uTg>^x wy' r\9c,8<0yT@e>h~Q3%#'(ߒ8}uzgF^~yA3νur',$e@E[Yoǝ{L3J+WT~S?`neߢb{[ ^9=pGpC]sr$XtPN{{Vp]qM +t>"M5P ] ..x^1oc*LМ?N0Cc9gei)RNǠ'nq5uͶ +x +qc="iXI6"x lIqv-8B,/43me8tX^%d]0j!j*wjk" vcG$:q\?EH1's V؉#}v(ɘ MTãevݖ.䂇f-j< +Ci8Fa3ÑOV7"Rpuަ)T[lUa/l&ʎaZK(*>jaD]Qw}S;MW;-Fws&U"?> V=B"}@ͲM4Z;ΫlZ>7!W6ln#2c Z[J#vΠ-f7>^]W{na$W!M'-WD~Ghl/TbejBk_/Ж;zf=uf{WPJ?"n~#A>ǓL!a~ߌ#ǒۃsݟ'=C)sS1?񍺭'lMN4VaѮ='̝㉩$5G ze]i +KSG"ۗ:Hi}!xy{sG%oZE3)V&(;Ì 8Vo6;.j[P%a-7^cJ%Dz]ӝl;)q,~+foo TBȌAtޒ;naLyZVRnĵ3Udn Fq#I8d,H]wF*gedz j&|sN]5>vlDdiEa{}Z+])'X_=c*$͠"Ա( gCvPr:+KH<4 4>plRH/5iH82lor]>0D˰i \`ӗ4X]A. +De iYWkXyw۱ 0<(9ƀ C%asdaQH0./ˇѣ{5?Y.2l –Ɏd f>I@[ljqp?CV3N3Gp7+E0ݛ{ 2ß_rŇ}M%Dn)l$胁Y#,s[#PO_rpYKw9yi{ 9N~\~dV{=N?L3^h!Cҽ&r@ﬖNd,ɺ O#)4_KU*d62RH@ s8p k{.&?ry0䡴xO{ +\xB ![q aAG4[pңx&Y$HϦf+̯c.Lٹި!?H9d3_ײQnCvjws:Ȓpj=x=˚P,\g\$4ezq H^5Mו||d?(.0r5ܙGVtP` ?:h~vYe:m4W?|G}%t&1[MќGtLfUeMz>|- C:mẃ™xR(belH35@H)9jٺI4#TO;pPL3WpB ;f6|f- fK7e}Qڋdƛ +;==ϔ%V-8QǦ;J2.H9og bJB4\ԐsxͱUcӀ˔-n~ CLezOV[k3{Bh:i*wI*¨:[hèkbK5XR'ŞUwB̡\tοԽB5 ca\ \+Ć{U)Y%~9Zu> +ߔN1qT,ږb!v1ў"[e/ |֗UׯʷcRM7hs_Z7Ծ x]Bt$Y0tVQ+| o#=!ҙ-Nthf~RGEnBjHk/|NKڌ]?gJY܀*bY_jxR}l{q8)`K']LUIELx\ϋ%ϋƶ-S2ڤyAEu%7J *8F%EЎQϹ_H*!)\;!m=Ht[jGHbZhjJ|K?wLTٿI1uG )S N)CTrW1aI()hW/W/> yk+[w^t'.r=nd-vO>;i[}?ss%D3da_q[F .g1MRI׹']eED`ҭ +W;#x 9U3^T8싑+l~{ϰڌbQ*9DZ44i(h:޴쩝n2%۵6}V~g#$z&>/wuأ iJy6S <—j])W eo?<l۠ۄ釳(^)ĈKErtDvz= jW!*{hdG Ȕ0N웴ͮ{7Iڀv`~,-q-}iV-yEb#jVZAݭ6vLݒ t֠ipQɲ3_j[° 2_dP4,resߙ21"Upp>(fJüixㅟ['S*魌Q{۶iƌ4 +J^;/+:߻YAP3a>U.L뺡uTG־/[5 4ؘ?ZK_GCsUzAC| ? US;iX]ad"HiݖpûJϷ7#*冦ORX{-QIZcx_eGps٤gVh|l|Y` +nIMQK>U&ms0Me+4{Qh*G9>Z ?Πz`>‚s܀f7ΪZ]fX >wwRC7W0 *fΚ:$ +"?-<VgLɛ9Vzd+Ӑeyba-*~>/H)xKsb!$ دպQ)GFSta-Xf+i3ZMLtsnύgÚgm#ˇwlH>zuFuFUCx~iKpX4x #HH_DH %20fQ.Qrx,5ϕ!и`͔(s^♓%^#*D{hBV'=-ԬvS;n{JR[PwE}s olVN] ʠݠ#`mh| +MڕR&'r WbC*MwӮ7M]WJrڍʡw7$u)iKŠnL+Hb-ZRЕX V ?{zd L=G֬_6bBc-.UhUl yw~ϛIcJ Uw5;sJa!W$E.bɽnkv ͕~i*Z3/ct*w8hA M|3V%T񹣕- nץXRT>|mϓ,#hJ hczDXg" +nsRz i8jczUEaw̟bXMbU:'p^8ƈO.}gNvgܭEq*ħml{+О'gr6@ +uw2Y@܉&<=Qhxδs^+W+sdsB˓ \ghl\+ Q6#,%}U<;d + ,Ufj+uĴ9aM7(Wb[qpY*ۅnw5|6…zrjyʫ&ZWb/=v +itÇ({b-1bjy9RѪ[s-JR PT+jϰ%ϠNtmUëu>GVo4"mKެ8iXKRhP+shY.Ke3 vDD3ϴ;p+=o1*B4T Hhj;78wqnt!%',D=p wŢr]w;Wi +wiq[^2 +OA豄0; M'a xo\c);Z#D|F\7T ;)9jш}*!3b0rYʿĨEj ܧ[O6APJ\E?OjK|g?l E#-rT`lۜKnz9yF*}~$цx2aGMZgz'[}ܒ*kΨZ~mɥFlӳU V<_7Ӂ+H IXG>D=Bb!x>i,ɥsUbynE:?KOmwld>öNugfǝ<$x>rG:N'; zFxT|S6!/a)xDBz~㬿iDDG9n@RUcdٱ_ @ _X{p!cQ]@<ߝX*\\]ah eclBY„˵er|(I:r&%~Fܷ%uJu~9RB/66}v>|pOz#M\&t<5GM>9VP +|Aq`S\kh&F__b҈Wk˜XW{f[/rB d~r)YƬh2B%P#AFzjKcRP~/:1Hf̉dž>j.S%/>I%( t4H +Ia* h + }QK|Iئ/ɭ\˖LXVyf+T4|Z#A&,'¯TlcX*̘E`t>mrh5D7+5h'DMxPT~Jѱl(ٯP }1* [qb乛xM>nyɉݽڣ\WFϞȿ9GᆠtCGh%`3ƞde ?2>Ћqz&6MΥmA˚y-(Dx2ci/ 1ylc<ў/3+"122rc_˻flxdz+MNUCg[eS7 s#}$fa~AHd`-Wh{K2SZ??;2'?E"yר #$WID.9Ji0;rf +[]VQ`( le1[qn9ۍZ)jcg[-0WBK@)E_ST#Gî0|M@ymfzo]O[oqQêy=x ڡ+5! [ςmH[t`oEx +լPW =0! _}lriϕ^jʡd;;Kc~U7+Z杞[gHX ߕiM}|d==f(v_ +0dPUGڸrvFpAjIdjxU+5:T"2Tȥ$[‘3KwC~"ZW";g}\@pr9*69&P~=AiHGz-Bn9WUV@IJkV~Jt 0x17)%l/n-lOeLnyԞovmm.Fd庽TK3iy}jY{r[zTz4x)4Ö3 =c׀4zmPLT*ڂd-S*[*'OGa==7BNpl V?zgD{M2W8*&v یԣxyճߐ[N^maR= MUiG +*o#31bKo#R <,!JRAm<՛+O99Ck KA}/};b@6i^u J wFcY%+Œ"Yq#} -7̄ ^D̴#V@O|1_؂#v3[:jyȹ8I9ڡ)ac )ɍ]݆콙0-+U!@ =;d9ۖثد#-f}׶HF‰v +=As2;s A#_(]AZث=GCFjWz|ӈ$ѬU]&ב0 L#'R{N<(Pml%}-$4e"POJ]~W w~QD%ZueG/ZPxM]3OqniA$r@a;Yǖ*HLc荺qqd0Gj tԦqR~n36YFpK iS.8EVHd6}KtgyD8zK%"avwӐYF (;'cY o.9r"Q&eGoaXAbDH HNcr#򢧀LZ{e|g0SI~:i0oݒ.-.e0jo8_ƫ^% PU4_oe"Cߪ-|lZ4Aƌ-\bt}z.CcZe"~BxPv ܉-'"2T^bC&m%O-+HȧĪ7K*Nb95@RUњA J})E(a!hu_b+ix, +e|ik+ae>&0⎘Y6q-㳴(]wk}:H7QbfeHtT՞څ+fS^fzd߱u2ZEޒ!(J.S$7(:/l*ԭjt7ivA 9sIq Q}V8 3sStW UXчacU`3 NW]C\!?s[Z/2z +dxAkm~b=} +|q<{ +C44$z:qN $O +T`X[ <.p(!(d G>:EDEc AN*p]íFH&BBXOS (Y--))z$e!;AsP7 sVKǼ9_Y/p#aޗ+J[Gm9M l JJ딦G +$Xy+AJ?KdC$$sJR1|UWS oi`Ič`[B3|TRI +7:9auϾEGW-)Jk +5'8Ah*|H֭WD%NC#=${渜rkZ:xJMn7lbc-{A mO_J&Jh%VW݆noY>pK6%wV[1Y*MѦɷ/:1%]W9\0~]ہ1/E2]9<]z=,q‚*׭ ᢠҖAk27 ȭm!łw:vTDL ?*mښ4QQ[[6mv̙V+0|"(0MwF(%<0 Q]p{:?j (-qЃ=W~@ġtL)Aȕ:3 +=F0 (rtf5Nثok.ሊq! PŚj)bw=i>F'}Lb@$p#[̀HXjKep OmCd]X\?LթF0Tz$emb?RġC؏o柩e}gSa*X-)6"L Ӊ$R+ױKа0f>:/R4lpϩ+vK}xh>_<ś?͗b÷L>봁-`g]%Bisi:e:p}=c6gWJA#U#+LT>jYdC".w>*xV1g_O&6lT.@6tL 꿷[W$|+H'.nI(9|%ߣ’$NBx?$pBd){Sh~3\%>j*B#Qp97nlC{Ak;O񧵒ϩ~"nQ=C'1avGO/#Hv(1T۴gŐ]!MާUtW@R>΀Xr]a'z`eJutN5*1麾qIB7|l \*1ϖ}Kc[][m%wD{Z" V4Gtߐ*V¶[-8@x.v7ji<{{.a$<9 ) nxAu-c +=Ѯ Ϯ k-sUuL#R}1[֩,ē.+òS(]-OjgUv42qwHsނzo12)﨟pW!l|\y΂O_Z!Nc(ڭ 5, K11ĖTxֿ8 v6&ړ;i/$Tt +2pV۪`>ؚBoݕV~WSrQ[Hi1zb絤 /#-{s9L4dBW[Kv+%WRPa W+EO N7c?2@6C `t$z=V 64Xm`!+R 8q,9mC/X}bܱmx=B/gE]T_Rlm!;v)3zB-a+ O@k4Z;~讛w˔LDh2|7-㳲\(z13:ðk;Á.i'vl@mW)oYeoWS-AJzVs19$v|$\oBxg5քa|}< ;~Q* Jq%w)p#R\wZ)| +9 fiy8/`,Ø&XTxJK;9\8Q۟܃&f_CTasSϓx|"!L(N}A=B\^BwX{"/Z2Oĉ\a'iq9R{ޕ æ:ZRc{8=r-D LeN۞^/#c±,=U{M4eʵThKhBƺn7=FO~S7a# OS7d})Rt]K 'a ;R+PN{\-ؙqT16E|(<|i<sEDT ?qhGoy_rO7F-ʅ 8AӼ/Lf. +v9R.ޱzFM˽p٫g/N܁s+ e!pA3GRV4Τ@+btD}Rnoi'u*k,u 0J~ōk*2!k.n'j ߜ)1η#tV6?FY]=GϧR)XپJb+Pnh7̔On% sԥϲk6G/ltѩn \ڥTJEN+j*I괤pZ-xo7O Oy?iHp졨'!>_  J%e۞D'b.%T.f+I<$ +>֟/8.wW(?'[Izhy%[Bb@>XprWΚ&[gt#EKt}I4G7bbl QH]AbO$zϩwFLкVMMhU)IMJBVg%L5@4K$;Coz:"{T!r:mhKo/t6dXZ9?ϳZikO .3OglW=*E -} ١Sn}ٳ@s4=Ք9V{f<詔C|P +wKf$ R^We@_@wdЇQCԻߞB2Cf#`7FQUE-~4 FcN ptH"%Ϩ2gkSRײ&L2nzIkAhX}0aDZN$?9ޭ{8 ",;|~ +y8} D&\DZ2܁;*.R4Hv(`j'^'r>Fk=ǀS㚛2(-~϶tT ?bLu(8 l.~o|wVXx_8#̊_r:g6dٛϏms>4x/렴F`ua8f$D@ + W6 k8Pw냯>>8/ԡoSwsxmb#0F^l(&"'6tz] x]kFmhTX4<{HIfZj.Y cYN[2$Zӫ⢹-T_ !2tTp)] +,Nw7_Q7I nуP}R:whx~>7|rU oDۧΣJV +Vr:^'[qnn \MXKwi-T.0裣Pw&ݛqQTMY~gd w/n&xPI^XSdD&ciC~(|Å@JR3ϴots + E+]|6@&H[>tzZt)L;ABq\Mm~;ӻTV95YHU!CvJvx+fOޚzf +!>Mh9 z CPkP^=!ܹq%6`@Ȱl u j#(Im s2T_j=Ieْ@p# |p8w+((J pzsi"%f:~"zqF5ٺ}Ѱ 2b Va/ڥeMst%"lŷ{E:rߥ㰼WQ˷jE@Z\x׮lU!֏v_i ҕW0 oo#nꭜ}M5>a8rjC!zLU4*f3d p f.H-0_Vɭw: Y~D<"qQ! +) +Fu6۝9* 7ѭ_*A:xVրSd`d/| Iߞw_@3 wY~O\; {k:[gMF?bRGzɚaSlخGyeX}Lϊ(|.;`׏pQ+j>UL#X;wlL+>ү feݕJaBmb+!R_OpXaFސx8QbwqӒ8j^c1 m1*Go<.,$ cuu1!9 ]ԟemg>&]_&x\khtD4o&ߧDTK-mZc{hnZa=zUaX[mi9\,18_*\`M.?G~j!)ݴ"W8}~j@0M +_OZhoK{Z}޻wC ku:(L`ly +<8mR +tӗ'6U6ǯ@veno_f.,tz!^ n'pUhӁ}]y_`G+Gl葉~v*y&GEzuG +赳Ȧsd~|Xb=/PTlظfs,EH +cb~6)' Q`/_zҠMK&nUR^/ޫQ%FcâA2u!Z* : Fb|>Lc8kx'i4>( +8 )u +g֑Azf1A>;FȤ gl[vlەkw1aApNe +93>.@.o=baHc9R֔oq +hA7Eտv*&CؚvX!5}C]HÉl&wեF֪>V']Qg ?obQDx>Ggu[q+] u>ڤZߗ7ǢLǡt~SdE#'C0ŀ%F-z8ǴY9u($ 0jeqh.JR4.d t,!QB@ɍ+Tsщ-2%ؐfkjHƒxy3ɯ2%X3˷px4VdK}!BQ +M?Uw+VZy{[T_Cna%!-?8 ;o`RX` (Ѐi:fQwِocL^R;X +՝,'Flg|:y/QT@Y_Y8uZ +:]9aw%" 0(gVhΏ RCG/ElE%#Sك|x;;W&RLt7y&ZvBPkNuGNm,mu/%k25tizK!>d-xWa>4(G:"苳U咼g'l˹t.2#:4+pJUeU멬QgsYZ$>nX3)e yy0b..9WT<#Ko\b-WRi^ XQzˎSJd8m ɒvԙOkMfB1r:^g*|n;Hȕ^A&F"q_~7)2}"wW87, +R +j~}}@5\I U,Yg`ۡO2 +VzSg U)0P@?v<Ԯ5#K1tR#j֋h:5 ,gD 1;; ^ik'4$#26cGB#*Y_W8 "N2(E5dUNUOf^> Q(3'|B 3Lys =g谱Ify In%k9_Ro؉s?gx GZGϨ <2S#f6lU"#)|SEYY|Q k~_WK|¶FQjQKY"ϲwQUzf {RFc b@ òk#~F'VOfo}k@1=/f_꿔열Ns)mʞCI,X\Ccxܛ#|Xy6 +ɰ6-.pZG*mH|ihN5ې*iT*CUJ$*RAL +Mdo_u֒w[Okԭ8@؛hQ"$p !/y$Z3B#v1|BnFe.Bm4v6,UtgfքDjVl>C>ujT5:7{KփʌqE} r24_ҵ#"lw䒓y~ o]YV6Q jL1.jk|WU`RüVP5M[b"d_OuCI5V;EaQb݆YBP4T>"!+l!4ؒRJ#@ qAq]K l^^.#i&Oa]ƤF`ͬ$D:_3fJ +=|tַZ~~GPȉun~IvX.N+4m$GPya.2Q=o mrC<c1jT,!j? nuœSUIE jrVܤ.kg?ƈ}h\;<~V+%Vãp1yPWqO֡`j<1ҽ`ZѪKxk'R#f}eKy\j(TOzy6vq&,7=-2h$ Qy P4}_eS;n.&Xuٟq)ȵCK}Ϯ;LDil46(JYۮk5ڈ.Vj+NQik~ W^FS +ݡzK@ff f@:L̔*?F9h2>iqֈOQ$ߋ'LHZc5񟰔JoH(Z'E%^#c9R A([ hn=|T^h $Pa?#~LAFcݮyv'b$Ч9 +Os]ݹ>!5hpkn:RzM}W0MV;>8S$թO(YxVinSߝzk-'C+]4c5?w._ڼ.;6d/l÷3J'LLQbh6^<=lǘ1I1p(uV{/\j路/-$~cLZHHY j9aѦ!8l0y7-!+H2t9 d󄐘kFsmZ/}U˿Za:jAN 2EsV" +x\1} w!I,{&uA>ͶZdvja GDUF~UPo.kaSQ,qVǯgU%%ɒjFI|);{nJ +/,.Jf[3-1HZot_u2}Hm& {)M!ϓ\::鑻m$FvTe=ܠ>QC2== !PM }t{@g\TIm$mU$-UϬz;ȵrCaETMqp p'`QFvY~1C}@T(9[%n;Fɱ^a!)ݩ  lԩ'PL@X Νk5OVך7)TƈKQ 8;0k;(?@4_ :?GoZ"N24Bۍ T N^?=>J~A%܁Kv3bn - +Aws1cfڟY+!%$ד>tTtbto}]TQ|uD4Ҝ>]g_G}g&PIF]%IH+iqT?nD"5qtĐf?;2g4fm-x7ZYїsSͯ`E~hBN:xN6kӟ%>S1qv8ۜ?4:p{*쳱Rek6o7>B$ ^sOA4+=(Ӟ23RGP;_6Nק V9zXOhcd3wsžLD*%%6E3ӌȥZ@54o_ƘI^[%]slLBGz>j-GM (H6ѵ٘;zrsU+s 8EpH[֙a[O5ed jilb2xZk=ҿFlnsݑL8%zŲ1ڳݭWcm8U Oof%(3!Rh2OaqYfE򮬢Jd4Yem?#OILsD|Qѽ%i* %XaiksDl( 7 ~y] ёх_k[:HB("L ^~G=dgd}1$ ?SmC=OU")>F5YAgi-N+aC'ŧt .FȲ< [gbjwFPlq #Dƈ fbLr`;_0<kdS0ڞ$DzdD&i)z7] 1ɞ{t̻﵃X6:5cG`!&bȚ+x}7z[i7 + M]oWA^TҧFoCo݈ld6`4oIM 7w:,8ܾkS4'U +mTjdwy1qZ]wºю{Ol}=Z]XwOalIm\y"^"G+OM?u̹.L-ɾݛ}CizegzC:pQ,"-"K5TX{rK,m/w*1D<Ґ$$um!}$"y 3svG ?` 1';;uKx03<:FD譭;:k}j {lal>rjǟw1f&Ezw2~o0Sc`MMXaQ۞+MCo*F6G3=| >U 1ekJ/5R}ODWVrPFk-x b{ÞS{MĤmD$ ⣏6p œ9^L +k%e7}FYv˜O57-lI-폮5Qzt 3yb9\Mmm{c[Wr棑U^e,ӆ8v #2u-$ 4VaMx"!)]DxRGVgAW͛gHiwE1.g[KȈɶX/Sm]Ŭt?0/ ~/x fx1%.0GG\̏sv;p}FK|/v}Gn,v~Ʀz%H8?1 +wi3mou$T\bR0y N QgSm8[`Ntc.(XDHiD0%#1T{`yC!Hl*` [G,mD&Y,2$7wѴ_06b`4zo,7pQ + Fm2Z=uݾ N0S9'D +zن_(%|hT]$[j^ajb&Aj[a)po V^\}F>2%U˵FkC;occz >MKI_MSI3ISEQ|[2, mWp,D~L?g{*U7eƟ +Ru(pRe00m1QeљP^J~(U]s lAէDrƌb\~+-]$؜]Ūlc775NDq*N,HS!;,KE@ " "֝vALcr]^?L2YfQi>vҶ?RG"+cXPqjכd@g1DD\=2I>*yZcAl1;%Zhy9,hx1e+ <:EƳ׶tcuY29A?+DB#xzGǮ;nxdW +ѭx$`OqGp@HZv\h[5LK\2.Kάh,6ՏANq `imFoC-T!"fيTU3f?Q":NN\͠H}PҀo ҫ+ѵ̛byG&{_ ]ۮE[aFaE5xAJ5`$۫yٵ,ίaNvFHzx:=$ge 62ѢpCۣxhy4ٴa r,XZV%>¦L?K-nj7t~.h4hlj%ʀ^ M g7 Z99@?)6nvS?1 KG@IJrlh=&M2;L 9J᛿/zh~Z۷Na' ;m:Aoqc0#8·F?f$WiT%a\u(Çg1]L_b<6U||?e"!Ȍ?'$0N%;M@[M%tُYoc=VRK-+vYۏO>ɚt[}cnnyIHJ 別놇풾 < +j.Nl^GscRe¿GK:5~t9i'R)=w{~'uPЕ=:Y)7%zm~@Lዝ+{^&y{9S E`:TZ+($[@aV~NtIJܮMeZu6=r/8\_pK_tG%  +9+Mng1F,},uTWfS:ksLY24M,bS?;T}pȸ42X`> $ywdv #/媢{18flj -]f˻ <7%smSd9VgLHeJRrm C2! lY^ر_9a]vrlRu uSz,u;22iTg $Wq5bCj mluK9PRc "& ȴq ٘ +uVhOpSu $@`nHł1M$|g7$;ù“aHZV4,=X|,tiz>T_Y}k/W-NMnq&ߋ g Vz9BvQF*>+EIHuW!QJeUڿ1Õ7@GMJh bRQ=M}|R >*B" '{f񩬕`j@lx*Yl]ITSMֆijɧ_Gox}ck6 E}ʡ,ҿ}j*"W?&aֺbS!mI3.cIn"4Q\4 :͟E6 but/F$29=V%=S@%H^{G3 LuptwթV՗χâF{[ }%;x/&Br_>h!) x [_YEyZGiRﭴMTCWj6n6Χe]þلu1{{ i*ea$.8/;Qj{(&:#uʻ '8Ȅhl}ߩ3P~Eh0ߺ1τ8v|AѨYZ6jTHWoVwdo +@;0W_U27+SzIgD(kK4 +gYTBϚM1HV5Z|$c=h>iuI^Wp) u +Hޖ}kF1wAGԧ +zv?ڧit +E-յNQ+Ȇ}$G  j)pU< wĤm%{-nݣOgoei=Go^*<=[ׅ~ }Jew|Fxis=E)Į+V IX˘x{ +ȖD3uvHXWv ݯ$NGe_mfbkKƶO I1 h\8NNsxQnnӠ;ZҸg@]crYygh*(mŠ/뾱Kҍ+e#ij`cד-QחAbzw<5 >%j2YK ߺݏvױ/5LJ?"63M2L]DKL$^Pϩ}'dڟ,謶xs:V̠P7S#I0'= d ,C{s%TN)װҲl, _hABD'`ժIbZA{EW [֡, + # [ =*9E'o`.id1G?KAZ-_fH5 Uy0wܴV8Fd܃ ,DnIl\h(7rkR3\?E&,3%,!t/rVl%hSra^ |ױB 6U |Ҕ٧=Q% hr=))_ ޽nnn`6# (lCg"ɥL9 yg)EyJEA$ rgL'G ,f}@~qkL }Bj_[9N\ :|l֮Bzf:?UwWA1[Vf}vrjzvjWe=W ޭoq۫ ?x眧! 1\͝{qaw%<#Y&SU@Ps{Ͳ)E~=Ap&G3dufg\Sz4PrjPDiAJcHc9ֱCL;5xJ?Ho_l`P9vA*0J&o:G7nҩ(, K+迴=RWn4pzeHDe$ت bQ'4,ULTXiM=emkrlLeWF<<g_>j(Bb a| _E5ogE26>4F vՖj;V iD&w4I&ᴂzާQ"(dlZ|?v{KX;a:5d%)LΚ_& r5RrsQ +6HMGo9fKĽD6h s΅tTơ?{~Teix { L,"pu4>QKCUaHک5J^qMt4E2%j0^ZIp̤H%#OĤâ$œ* WuuJ=I5̢ˀ~*UX2]$DŽ\#9B,y:@n/-Pep72diMM7pkK EW*Er`% Y#<`le0G;J +-9ܶi`xWf4H:lç.tZ V=j3dN{6|]; 0 U" gSH| 4 $> +AsN=l_*ufIIQ!S wmP t" Iщmezymו,eWS-iI o [P#8kqJ/zL#0fɩQz=E]AHPC(@U>T_2tom.{C蜎j=6d"ĹTڞ2y> ;m4HPjQh +:֓lg$T7PLP[ERC`B/~%S}v?(>MwR@$(46TTM(CogY1`` fdɺ]ؼ:i@c5e# +R n+{6{!(Z&UHBmg:?/Hj%yw%:ֺ: Pk]&6SqOhЖxVϺUW !Jr*](FtlW䔈|BA] nmbj22f35CPWt֒hWƞj:^,uy}E[v#j"N^YƝQ@niϲT`4B5,3MsxeHC~ R">j:q!1 +H@&5}j +9PLBI&g#} Զ=5(D`[Saͣ9؉^Gc4F puG= =H|+ tD#4O]j{;qg^hUЛ^[{vYOk' zYjɞ½䥞ge9 Q'+%.K!9MM3 ,tyn;QȹܡCB 4k&8F>JM$1D{$H?!ӑrʸ@ۗTnOA⹙ Gar>Uz k`۝T&BSDޕk$ɉAMo"fX e Db)~ޢZ!I砐w_O@o8^,:V?Gr[K(Ϝ-kΑ|E@\Ps$,8"] ;:Е߅:%؋0VчbXVl]cl~;cꖽpEg]֭jk;Td iT7:KyOvk5xʭjnbx=$Va캾Ey-*R.2dQsc|\B7²O(ًFtƖqCfY5$U!llG-!RZM +[dA2?Yq/˲C_0˘SFK2-E zy/9v!#?&:P=Y\[fPӋ: 9>/hZ@YE\B]VJ >9ektë7KN{vrDT )&$S=9-22.ܗ/uMبc"wGK K8;,Z8b4$án;X7^43[\dh0d(N/t*iq%)"ضyOM(Dj1>5/D |&ZKFVpݩ }W=+ow bܓz)o`+)qNN7- +WMVdz:5OIe +$tOSlRBmyW J7Mk{+5_Vqlu+߶H{|iJyr56֦EʘkAj^p<-#zK 43-[zBFϪ7I59| +i^%XNS X i_?Oo ӆ#f!Νi%'QT&T !Ǟ6 T\BIJNN7@yr^p 1\aqʥ>F[@RO@]$YM;Əkc &lnx$^ɟeCy}ǯo51tiD2~/%ܒqk׿C:v$[Ft dYAj:W]r~_$,/R\g@r')i@_pxĒ !K&͡ 9>#Atɭԁ<sA;s.aޚ@#SwE0\*3+dIH.Fe|A6 <9O{3+;XmD!JeM-*u + CRfδ([dTl9V<34 1?hpV\|#Yf{m^2.j]N}kz4.5<®aVKS6w坄H5(/o/$;]4G6ǡv=!Gfź*+Bߟp -McBaVn@?:3Ce>z3ZҲ @['x +>xГ@:?(fq{϶C6=-fhzy۶KI+k7CsK46LXHKJ54i)4;u'ͭÃ=o_h"ߞv3q~FMοqeXb62y0FZxk?m4%;k7 Vq_10gߒ}ҿmQhPmK1'E>pu{!ϸ!7ũw`?Z96Z|wr 2)ـ zv@t'ahg3,3i_VM 6owt:/@SJnwW^ds}eZthݮyh5Ќ>KG:T 9W2S[wVEm^SYvsdi*1sȤxwڹOZSsF &xm !u J-)NW_'>Y22gd0-Kkh (YY l1ώ( _Ct|aP2+*h]a =QobrՉCneS >[}yNJ,|W򇼚&=%SB|D#6S{?"ʋB#a<,G[:];M ɼc/$ ԯD<ӯ]. 9<-!_"CyDNk#x[ `2b5.Z!7TGnS>UB/] * +V_)=aõ+I^tLIm\J"WtdБfLY| +Сe?!UJCqL§{͞RW3z^ܕ<5yn͞Ƀ67 +5B]E8BSe{#&/hM i3h2ȗ6o}`hycೞ^ɦSn_1NaOjS\i?_fz\ }8z~3MVžH Xs_'߬=I>?g)մ{'m#NAǬ sR[f#|P+ ow5 GŘUl}mߓi,NӁ_Њ ymST:%<d {)T5sv~v(ϭDosOÖCRaĽա]@qs\w +hwJmbZuW⧮ =\5o5a z/*?-'eۖho+U JPytf%PzxמjK/yVY#֯N|e"ob#L~Wޟ=<u@,Ϩ6nvly*lDV<4NvDA{ ٣ne"'Gjɪ 2X!rK_.ElEċl( 9޵p^pq4<}y5Ctj#뱨"U{V9]Ыho}'R:[R.=c2Mc}On/O8Dsۈ +A y-"bdȺx?#4Y4Y}z +Fn.u*pQ@[%WR곟da;62"Q, >gk 5j{%]Hm9S٣c +ySe %Q=eߩ~g߶0Tl_N&8'~R83EJ{BpK)acЉ\3ܔdGG?zӦfJ +Yth.ݙr&2*pLT0WꏼiWȋp_~A0@֠da*ҥĄg&Ct`Z,Gɽ //r\uB]AzAi-shb$O +=C<}bC: n mYDL)>z"'l\FRx$62Ojy[Ov*=idYR:#Ӆ*>Z\@V2W̰C_gOmo;y͌5<^6Yu2%?e2[khqr@-#&"פaWei 4 3TJYcmtΜJ{Ȟq I;"g!i[+M@J#YA Bt@>GiW-^ds{n. 2œI!zrmJӵ$HASӧame{g5֩ǹSJ4yf$a\ Țk~߮nSFBs8|,d'$xR, ruh&%IBx `̭m|-Ou0ȐpTmlه#[|&~v)"Rr6/Qr`]&&<]D6#T| yqt!L2Q=3s6S Nǟ&@ 7޸mG8R P7: ?hfMAS_vd5)6)zhl@m]Ћ +y,l|-:(R0[`(R3Q=&pef'eiBzi*Pd[7"aQGBu1:hj[RO4?*l2aɮꄔ$&J!E# l1/hN{TQ'CqhWbUPCGj5$GRl;dASrv):&1MܐIW&Y:Mڛlڞ)~M*g bՊc4vE'5 +q[q jL^r6q>^†XLjə +c+06WgCUL|s,fF+d{rO:q@$ $6Z6Q otT ^SwIY{u\6q7`Ub}FɉMɪ%dk Y~CF~?GOd:߁χ VQ11yac'Yerr зXvqg3-xK3`v>md)8ۜ Ɂfq@yݡ!i Wznc'3Z!#ghrE10%oG݇±|On2- &=c$[ȸ)D+pM+~}V~mwKy!V8X`{ysmަ8icׁͯ*6O]6_z]7[ eԂsλݛ J* S;VK8|LH7aѼlEoi$ G'`Zc6SAnAm+LP8~q:y*q5E-zX1>Ѫ(68gCד& +HZJ29lg}ju^a~u-;JkR&mLpo;/yWdQ\# סmaG>ol-logu>8a=(Z)uFVyv礆Jd# hοy:tnx>} `&(I-$Q 0cdSy|8(8eF$P.B_*u@Hv UlzRV&C28#ts5([R$ τCq*+}, ,aBԍr~MwG21埥Ⱦ!B?x UVjn aBLza-H[Ѭ${d|2jɝ0)Qd]JCƁ,U IO错c6 );MvlI~;ηLxP[48{t<1%+L'$L%W;n`8=!gާGY^+nGGM*Ha-jhZԯpaWOa6D&dHTtN6~ +eNssa>9R$ Dh2( 5^$ QlϦX@y x2"](9?+ri " jqNMA~8=ϼ{gN +@/U HdQN(tcSi:}:#Ub?uv`edVXxeAadB:P%vᑿeL.g{Uju_#v\]DE#7Nt,x DBujXI46p ѯ04b᫔Fd8tEײSz rD)N@x"G\4YY(z$M~>`}>G;^HW"=, dd W~UVIM?rܶ%U]^HD#V%tβm'|="n+WQ/Ю ºRw&GE/,5qDFvNmX[CH\^8^,i=B r~aCZ,ޜ}ڈ""KdN&o4&B$I{D #SJGMȑ :4R NuXFvG=-4Z@ lLLd2hh*~;,tLCdhU="~t`ὲk ȷFW,M0ԟ:u-l+,Jd݃VpqUJTO9;{aDD+ܤaT:,ݫz1:%_?k,"%U!vq{q>%6=Ar%WKlc-/T(Cx0sں z~~ok`K狚@+zјz.J>v}JN/ +#w^u't[\#6Djsx(#"/G U89-`Op9P8قwI=X.= FtȲgC/l{ĭ^^/]F?VJBXczS%'0X b)vɡUȒ 1X +#O 6UYPᯭ硎ؠպ='Y#eo毯eۡ9J\Bi +4 ZܨLeZGDYzX9;8 QkUSg2ud<rx[t&bH$:Q)f RZWV:) Ӯ2In/ꉤ^[L{mR [Dǰ)^46<%pfOjҚkdHqܞyA=㐺3FԈخB5aVW|z{٧4BXjB?Td7hn^B9E⠢!XHc !#f#ɝ^^gyt<̟NS]j5 \&"|ˎ*uXI Id86$DMuDWP:%]|C]fOP\H?B",-턳owiؒFU^"}lL;vp # +AB߂PT^c)L9r. +M1IޢL +Y,עTՁ :B|;2],ɾ* Y@x梎>^2!I$̛7ju +EзP^G y5/mㄼ1 v!ŢJ8,P&솥PaȦ>S#'FRH&9k# a(} 2tU%рo:) +nJ.2a>RըT)SĄz|}^jOdWxug涄u5Ͱ\kGVUQ ZڠJj+7R8&_JWY()Q˪HlgfNUj O(SqxQ;0l-#2dE79-ƑFO!lfEn(ғo1i#.w= t*_6qd()11 >FnȸFԻtPLx(dȉۭ2V"sT^67y)C@AUC쳨X?HǡfcKdxwOâ lp.U {ꎢcP*TS9Vhi8i ,*[c +n}Cd8+k?7CC|DR I "]'P5$dFxtXW.CE vb2H)^"G@D%k];qܽ(k%Dȶ>L9q[˯$hL-եLD=ЖP/D4+1!,Θ_×JYgC_qr?Wq܀5&y߾?bw,U{ `Ud#":-FrZUA$o |KqBrَ>~Yz*OhY}G?ǷrEt]lipf c-nfָB=:]$ˎ(ywрj$W"d[+MHyy ۏ\h}|*;PUER20޶$ /GGϕn@fq.)6ecaoӔ(%WnvEoB7..[T>$RIpL]\ O*M5r(?X,i)7c- D1"21]T^ ;l0[o'l`#_A*nQ2$˛T4'HފW"҃8%2nNlY۶RG}w;j1X{ |,b ~4Nzvw߻ ӪA5P <`EwXtn1!6]6K?$ @A{#ܮ=ߋM/* KX)נ7 'f) uwC8l1^\:H$~!&F[Mx"$M7K>dwٯXtH8VgUnZS" +YRNiL#n-ohq2GM.0Hۊsx(=f q}X"Ng;j>5gq5)5wVZqvH/2 ̊k+ nLu—&lj(dcd]F==*Nt݈H'HTc9wY$(Ys4MN'w`02K-;53g*z G.6Q\m#q(;_\?ײFeJf,V:=5COy.;=d'R"w}.Nk ϲC2k{IJ UH:b(z̳OwJ5}zypb$"#DY v/HӁa}P7?RKHFpڞ W +/n/xqLS#U}l_oc(=@d]`+:F2EJa1`]q[Q" z҈42]C64z/ r^x9UH_-U +FF>"o f929r!_Y+3[Ӳ2nm8`?T: @5W8\AWHn8J,͉kVd7$ |_ؖ}g_EM{gG0? +(vJ'JPfIMk>EJюtȧm+SD nP&rj)|Vkc(['vjHrMi7X2K拍3$a8f>> Wxt%dW*[I+%3-.2X{5@'qsJLٹl"dE8P7!sdeh\L#ZBH&+=ٝ6+D(kf7q!Xd.63@X"ub_IO|lp|VdRKQBNM3&cN%.\rV8,nX'A)YK|B mKF@mg"olh|qC:G%LrH VÚR!ڴз=s* +ŰკyHO47=叩sVp"gK,?ȶCP+TO2X@<⎞K] J\F_8MJUvZb #Tِss>Xu -?a+bLJ8'l< 4wQ0Ϲ%Uw!R+uEXG@IPByZ>ɵ){-sF+M= QDss5-bSl,3l`[3: -cD+5O"qGBP>|S=\H8,Maafi0.U[`wj 5&*S (7dY3R}^cg2_ =CI˺}}nBα]M1<4ϸڠO9ОF uTiJ!~4pqI!ƖP~&Pqu!۩^ V7 +9~T +?6)n$>ZP T8 (3y77jCs-l D*1y@U~:Dō.(X2m Gsl ?ˌ lkKdvH^څ/d ES≨OL/Rߒdw}֨QpTq0Jw(] t[ѷ +)S!ZׄDeBxSrY+9.g-%' DN_?TFű5i@*!~ *kn8y^\hKŐo +!&]Ԟ-'},%\?v`EY/g\#ބO,uI<~_qt껢?F8VιIVbPW"~-}5|}!fwTUMϐ')t7ȁQm1"\@aIEDp|\ţ|Y,Ѭ4Erq)Zd~iH40S%"%uzJTf.VZ$e\"~Sr{*L|W1MeХ]lu$B4ىlu.oGpV{-換DSmYl[;MUt@FHtNX *u!}=R3;q&VϳiVN)t MXUb, /WʳTp-BՋF*RlPuT4ZLT9x!1l"J YQϕrm'uTż]8}_VA<<^aKV2TJXd6C5 B$CKhv] +Oeyr_s5gAw@k؊ޣU~<ϩNXņSMaQ{V"}bt5Zc X&͊tta-N'oeY̰ pU 1\'(0y'F)''V ^䨫z Vb9:%l bi]C?rnÈ0k>OF1B{a1o5Rs ;1),TEXn||,%؀[`b5h/RWQ1{X1jgn3( +g4j_-;I̥Hw_?ȉT@lx ]+NLxhUOJŪ\ :T~TN0+c"Cn/ OUB60=\a!BًR=g`,t}/7\}[AC\µ%q, 3BR5ű@ǭu +L|>t" +u[~`m)D @34|U~M z^WDYVV$©v$X]Vc`ȯY0=1Ul).vYٜ<1|ц6I8׿}{a +endstream endobj 10 0 obj <> endobj 48 0 obj <>stream +8;Z]"=dHuK#Y!GH#2)bDW\+u"PelGQ&3jn@I2&3- +;d=;nGr)]a2u%t_?9*nKJRM@)k'8@sf9WiAan#-*c$RuaA( +L]s"ifeR0D"t:D;2HCb3,6=(qMIUMtQE]WL.\K)MkTH&9].- +pKlh$P7nT\\27e\o)QfkZ\/Y0XFq7V=Q:YHMdkZcN%C=TUq6]>dlHm<$U@mLYb"4C +eQ?'Fd,_dK?*M'K1<0\'WAJk+Ai8f<>3Gr=YrB!C"gE:6Shq]S%#uQ;-*S;??0O0C=jA&!f;s)W8+f) +n'REc:WkWUj=Ml3bNCO/fRY;tn?98f+NE!9f]I^6:E>'2\0KB21[FiG0bBuV%[,]"AI`^t_8;qc#K_9M +endstream endobj 49 0 obj [/Indexed/DeviceRGB 255 50 0 R] endobj 50 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 42 0 obj <> endobj 51 0 obj [/View/Design] endobj 52 0 obj <>>> endobj 47 0 obj <> endobj 46 0 obj [/ICCBased 53 0 R] endobj 53 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 45 0 obj <> endobj 54 0 obj <> endobj 55 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 17.0 +%%AI8_CreatorVersion: 23.0.1 +%%For: (jason grover) () +%%Title: (bw-w-text.ai) +%%CreationDate: 7/10/2019 12:35 AM +%%Canvassize: 16383 +%%BoundingBox: 724 -4742 2317 -3022 +%%HiResBoundingBox: 724.838574504607 -4741.103515625 2316.94157384323 -3022.48168875685 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 13.0 +%AI12_BuildNumber: 540 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Registration]) +%AI3_Cropmarks: 503 -4865 2464 -2904 +%AI3_TemplateBox: 320.5 -240.5 320.5 -240.5 +%AI3_TileBox: 1185.9000005722 -4272.10003662109 1781.10003662109 -3496.9000005722 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI9_OpenToView: -14361.3723404255 6127.31914893617 0.061197916666667 1809 874 18 1 0 56 151 0 0 0 0 1 0 1 1 0 1 +%AI5_OpenViewLayers: 7 +%%PageOrigin:-80 -540 +%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 56 0 obj <>stream +%%BoundingBox: 724 -4742 2317 -3022 +%%HiResBoundingBox: 724.838574504607 -4741.103515625 2316.94157384323 -3022.48168875685 +%AI7_Thumbnail: 120 128 8 +%%BeginData: 10812 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FD20FFA827F8F827277DA8FD15FFA85252FD57FFA8FD08F8277DA8 +%FD12FF27F8F8F87DFD55FF27FD0BF852A8FD0FFFA8FD05F87DFD53FFA8FD +%0EF8277DFD05FFA8527DFD05FF52FD06F852FD07FFA8F8277DFD47FFA8FD +%10F827A8FFFFFF7DF8F852FD04FF27FD07F852FD06FF27F8F8F827A8FD45 +%FF7DFD12F852A8FF7DFD04F8A8FFFFFD09F852FD04FFA8FD06F87DFD44FF +%A8FD14F87DFFFD05F87DFF27FD09F852FFFFFFA8FD07F852FD43FFA8FD15 +%F85252FD05F827FD0BF852FFFF7DFD08F827FD43FFFD16F827FD12F87DFF +%7DFD09F852FD42FF27FD29F8A852FD0AF852FD04FFA827F87DFD39FF52FD +%2AF827FD0BF8A8FFFFFFA8F8F8F827FD38FF7DFD37F8FFFFFF52FD04F827 +%A8FD36FFA8FD37F852FFFF27FD05F852FD37FFFD38F8A8A8FD07F87DFD25 +%FFA8A87D7D5252527D52A8A8FD06FF7DFD2BF827FD0BF87D52FD07F827FD +%22FF7D52FD0DF827277DA8FFA8FD2AF827A827FD14F8A8FD1FFFA827FD13 +%F8277DFD2BF8FFA8FD14F87DFD1EFF7DFD42F827FFFD14F827FD1DFF7DFD +%35F827FD0DF827FF52FD13F827FD1CFFA8FD35F8277DFD0EF8A852FD14F8 +%A8FD1BFF27FD36F8FF27FD0DF87DA8FD14F87DFD1BFF52FD36F8A87DFD0D +%F87DA8FD0BF827FD08F87DFD1BFF52FD36F8A8A8FD0DF82727FD0BF8FF52 +%FD07F852FD1BFFA8FD36F852FF27FD19F8A8FF52FD06F87DFD1CFF52FD35 +%F87DFFA8FD0EF852A87D7D2727FD05F87DFFFF7DFD05F852FD08FFA85227 +%27277DFD0EFFA8FD20F827FD14F827FFA8FD0DF87DFD05FFA8A85227F8F8 +%F8FFFF7DFD07F82752A8A8A85227FD07F87DFD0DFF7DFD1EF852FF7DFD13 +%F827FFFF27FD0BF87DFD0AFFA827F852FF52FD0FF827525227F8F8F87DFD +%0DFF27FD1EF87DFFA8FD13F8A8FF7DFD0AF852FD0DFF7D7DFFA827522752 +%2727F852FD05F8525252272727FD04F87DFD0DFF27FD1EF8FFFFFF27FD11 +%F87DFFA827FD08F827FD1BFFA87D52FFFF27FD09F8FD0EFF27FD1EF8FFFF +%FF52FD10F852FFFF27FD08F8A8FD04FFA852F827F852A8FD14FF52FD0AF8 +%7DFD0EFF27FD1DF827FFFFFF7DFD0FF827FFFF7DFD07F852FD04FFA827FD +%06F8A8FD13FFFD0BF852FD0FFF27FD1EF8FFFFFF7DFD0FF8A8FF7DFD07F8 +%7DFD04FFA8FD07F852FD13FF52F827FD08F827FD10FF27FD1DF827FFFFFF +%A8FD0EF87DFFA8FD07F8A8FD04FFA8FD08F8FD17FF27F8F8F85227F87DFF +%7D522727F827F8F8F827F82727525252FD04F852A85252FD17F8FFFFFF7D +%FD0EF8FF7DFD07F8A8FD05FF27FD07F87DFD16FFA8F8F8277DF8F87DFFFD +%14F852FD04FF7D52FD14F827FFFFFFA8FD0DF82727FD07F8A8FD05FFA8FD +%07F8A8FD17FF27F87D27F827FFFFFD15F827A8FD04FFA827FD13F827FFFF +%FF7DFD15F87DFD06FF52FD06F8A8FD17FF7D7D7DF8F87DFFFF52FD15F827 +%52FD05FFA827FD12F827FFFFFF7DFD14F852FD07FF7DF8F8F8277DFD1AFF +%52F827FFFFFFA8FD18F87DFD05FF7DFD12F827FFFFFF52FD14F8FD09FF7D +%7DA8FD1AFFA8F8F852FD04FF7DFD18F8277DFD04FFA8FD12F852FFFFFFFD +%14F87DFD25FF27F8F8FD06FF7DFD19F827FD05FF27FD11F87DFFFF7DFD13 +%F827A8FD23FFA8F8F852FD07FF7DFD19F827FD05FF27FD10F827FFFFFF27 +%FD13F87DFD23FF52F8F8A8FD08FF52FD1AF8FD05FFFD11F827FFFFFD15F8 +%A8FD21FFA8F8F852FD0AFF7DFD19F827FD04FF7DFD11F85252FD15F827FD +%19FFA87D527D52A8FFFF27F8F8FD0CFF7DFD19F827FFFFFFA8FD29F852FD +%16FFA827FD06F8FF7DF8F87DFD0DFF7DFD19F852FFFF7DFD2AF87DFD15FF +%F8F8F87DFFFFA8A8A827F827FD0FFF7DF8F8F8277D2727FD13F827FD1BF8 +%27275227522727FD0AF8A8FD13FFA827F87DFD05FF52F8F87DFD10FFA8F8 +%F8277DFFFFFF7D7D27FD26F8527DA8FD0AFFA8A87D52FD05F87DFD1BFFA8 +%F8F827FD0EFFA8FFA8FFA827F8F827A8FD04FFA87DFD21F8527DFD13FFA8 +%7D2727A8FD1AFFA8F8F8F8FD0CFF7D7D2727F827F827FD05F852A8FD05FF +%27FD0CF8527D7D7DA87D52FD09F8277DFD35FF27F8F8A8FD0AFFA8FD10F8 +%52A8FD04FFFD09F87DA8FD09FF52FD06F87DFD36FF27F8F87DFD0BFF52FD +%12F8527DFF7DFD06F8527DFD0DFFA827F8F852FD37FF27F8F852FD0CFF52 +%FD1AF827A8FD10FFA87D7DFD36FFA8F8F8F852FD0DFF7DFD18F8277DFD4A +%FFA8F8F8F852FD0FFFFD17F852A8FD49FFA827F8F8F87DFD10FF52FD14F8 +%27A8FD49FFA827FD04F8A8FD11FFA8FD13F852FD47FFA87D5227FD04F852 +%FD14FFA8FD10F827A8FD42FF5227522752FD07F87DA8FD16FF7DFD0EF827 +%A8FD42FF7DFD09F8527DFD1AFF7D27FD0BF87DFD44FFF8F8F8FD04527DA8 +%FD1EFFA852FD09F87DFD44FF27F8F8A8FD27FF5227FD05F8A8FD44FF7DF8 +%F852FD2AFFA8F8F8F8FD45FFA8F8F827FD2BFFA8F8F8A8FD45FF52F8F87D +%FD2BFFA8F8F87DFD44FF7DF8F852FD2CFF7DF8F8FD45FF52F8F8FD2DFF52 +%F827FD45FF27F852FD2DFF27F852FD35FF7DA8FD0DFFA8F8F87DFD2CFF7D +%F8F87DFD1AFFA8FFA8FD18FF7DF8FD0DFF7DF8F8A8FD2CFF7DF8F8A8FD17 +%FF7D522727F827F82752A8FD14FF52F8A8FD0CFF7DF827FD2DFFF8F827FD +%15FF7D52FD0BF8277DFD12FF52F852FD0CFF27F827FD2CFF7DF8F8A8FD13 +%FFA827FD08F87D5252FD04F827A8FD10FFF8F8F8A8FD0BFF27F87DFD2CFF +%27F827A8FD11FFA852FD04F8277DA827F852FD04FF7D27F8F8F87DFD0EFF +%A8F8F8F827FD0BFFF8F852FD2BFFA8F8F852FD11FF52FD04F852A8FFFFFF +%F8F8A8FD06FF7DF8F8F8A8FD0DFFA8FD04F8A8FD09FFA8F8F8A8FD2BFF27 +%F8F8FD10FFA8FD04F827A8FD04FF52F8F8FD08FFA8F8F8F8A8FD0CFF7DFD +%04F827FD09FFA8F8F87DFD2AFFA8F8F87DFD0EFFA852F8F8F8277DFD06FF +%27F87DFD09FFA8F8F8F8FD0CFF7DF82752F8F8A8FD08FF7DF8F8A8FD2AFF +%52F8F8A8FD0DFF7DFD05F87DFD06FF7DF8F8A8FD0AFF7DF8F852FD0BFF27 +%F827FFF8F8F8FD08FF7DF8F8A8FD2AFFF8F852FD0DFF27F8F8F85227F8A8 +%FD06FF27F827FD0CFF52F8F87DFD0AFF52F852FFA8F8F852FD07FF7DF8F8 +%FD2AFF52F8F8A8FD0BFF7DF8F8F8277DFF27F87DFD05FF7DF8F8A8FD0CFF +%A8F8F827A8FD09FFF8F852FFFF52F8F87DFD06FF7DF8F8A8FD29FF7DF827 +%FD0AFFA852F8F8F87DFFFFFF27F87DFD05FF27F827FD0EFF7DF8F827FD09 +%FF27F87DFFFFA827F827A8FD05FF7DF8F8FD2AFF52F8F8FD09FF7DFD04F8 +%A8FD04FF27F852FD04FF7DF8F87DFD0FFF52F8F852FD08FFF8F87DFFFFFF +%7DF8F827FD05FF7DF8F8A8FD29FF52F827FD08FF52F8F8F852FD06FF7DF8 +%52FD04FFF8F827FD11FF27F8F852FD06FFA8F8F8A8FD04FF52F8F852FD04 +%FFA8F8F8A8FD29FF52F8F8FD06FFA8FD04F87DFD07FF52F8F8FFFFFF27F8 +%F8FD13FF27F8F852FD06FFF8F852FD05FF27F8F852FFFFFFA8F8F8A8FD29 +%FFA8F8F87DFFFFFFA852F8F8F852FD09FFA8F8F8A8FF27F8F87DFD14FF27 +%F8F827A8FD04FF27F852FD06FF27F8F852A8A8F8F8F8FD2AFFA8F8F8277D +%A852FD04F87DFD0BFF27F82727F8F852FD16FF27F8F8F827A8A87DF8F852 +%FD07FF27FD06F87DFD2BFF7DFD07F827FD0DFF7DFD04F87DFD18FF7D27F8 +%F8F827F8F8F8FD09FF52FD04F87DFD2DFF7DFD04F8277DFD0FFF7D5252A8 +%FD1AFFA852FD05F8A8FD0AFFA87D7DFD31FFA87DFD33FF7D7D7DFDFCFFFD +%FCFFFD4BFFA8A8FD1BFFA8FD59FF52F852FD19FF7DF827FD39FF7D5252FD +%06FF5227A8FD14FF27F827FD19FF52F8F8FD39FF7DF8F8A8FD05FFF8F852 +%FD14FF52F852FD19FF7DF827FD39FF52F8F8A8FD04FFA8F8F87DFD14FF27 +%F827FD19FF52F8F8FD39FF7DF8F8A8FD05FFF8F852FD05FF7D7D52A8FD07 +%FFA87D7DA852F852FD05FFA87D7D7DA8A8FD05FFA87D527DA8FD04FF7DF8 +%277D7D7DA8FD07FFA87D7D7DFD08FFA87D7D7DA8A8FD1CFF52F8F8A8FD05 +%FF27F87DFFFFFFA8FD05F827A8FFFFFFA827FD06F827FFFFFFA827FD06F8 +%7DFFFFFF52FD05F852FFFFFF52FD06F827A8FD04FF52FD05F87DFD04FFA8 +%27FD06F87DFD1BFF7DF8F87DFFA8FFA8A8F8F852FFFFFFF8F8F85227F8F8 +%52FFFFFF27F8F82752F8F8F852FFFFA827F8F8275227F8F8A8FFFF7DF8F8 +%275227F8F87DFFFF7DF8F82752F8F8F852FFFFFF52F8F82752F8F8F87DFF +%FFFF27F8F8275227F8F87DFD1BFF52FD0AF87DFFFF52F8F8A8FFFF52F8F8 +%A8FF7DF8F852FFFFFF27F827FFFF52F8F87DFFFFA8F8F87DFFFF27F827FF +%FFA827F827FFFF52F8F8FFFFFF27F8F8FFFFA8F8F827FFFFFFF8F8F8FFFF +%7DF8F852FFFFA8F8F87DFD1BFF7DFD0AF852FFFF27F827A8FFA8A8F8F87D +%FF52F8F8FD04FF52F852FFFF27F827FFFFFFA8F8F8A8FFA8F8F87DFFA8FF +%52F8F8FFFF7DF827FFFFFF7DF8F8A8FF52F8F8FD04FF7DF8F87DFF27F8F8 +%FFFFFFA827F87DFD1BFF52F8F8FD04A8FFA8F8F87DFFFFFD09F87DFF52F8 +%27FD04FF27F827FFFFF8F852FFFFFFA8F8F87DFF7DFD09F8A8FF52F8F8FF +%FFFF7DF8F8A8FF52F8F8A8FFFFFFA8F8F87DFF27F852FFFFFFA8F8F87DFD +%1BFF7DF8F8A8FD05FFF8F852FFFF27F8272752275227277DFF27F827FD04 +%FF52F852FFFFF8F827FFFFFF7DF8F8A8FF7DF8F827522752275227FFFF7D +%F827FFFFFFA8F8F8A8FF52F8F8FD04FFA8F8F87DFF27F827FFFFFFA8F8F8 +%7DFD1BFF52F8F8A8FD04FFA8F8F87DFFFF27F827FD08FF52F8F8A8FFFFFF +%27F827FFFF27F8F8A8FFFFA8F8F87DFF7DF8F87DFD08FF52F8F8FFFFFF7D +%F8F8A8FF7DF8F8A8FFFFFF7DF8F8A8FF52F8F8A8FFFFA8F8F852FD1BFF7D +%F8F8A8FD05FFF8F852FFFF7DF8F87DFD07FFA8F8F852FFFFFF52F852FFFF +%7DF8F8277D7D27F8F8A8FFFFF8F8F8FD08FF7DF827FFFFFFA8F8F8A8FFA8 +%F8F852FFFFA827F827FFFFA8F8F827527D27F8F87DFD1BFF52F8F8A8FD04 +%FFA8F8F87DFFFFA8FD04F85227F852FFFFFF27F8F8272727F8F827FFFFFF +%52FD07F87DFFFF7DF8F8F8272727F8A8FFFF52F8F8FFFFFF7DF8F8A8FFFF +%52F8F8272727F8F87DFFFFFF52FD07F87DFD1BFF7DF8F8A8FD05FFF8F852 +%FFFFFFA827FD05F852FD04FF52FD06F852FD04FF7D52527D52F8F8A8FFFF +%FF7DFD06F87DFFFF7DF827FFFFFFA8F8F87DFFFFFF52FD04F8277DFD05FF +%A87D527D5227F87DFD1BFFA87D7DFD06FFA87DA8FD05FFA8527D7DA8A8FD +%05FFA87D527D7DA8A8FD08FF7DF8F87DFD05FF7D7D527DA8FFFFFFA87D7D +%FFFFFFA8A87DFD05FFA87D527DA8FD0AFFA8F8F87DFD40FFA8527DA8A87D +%F8F827FD26FF5252A8A87DF8F8F8FD41FF7DFD07F8A8FD25FFA8FD07F87D +%FD41FFA8522727F82752A8FD26FFA87D2727F82752A8FD41FFA8FFFFFFA8 +%FD2FFFA8FDFCFFFD91FFA87DA8FD11FFA8FD0DFFA8FFA8FD0FFFA8FD07FF +%A8FD0BFFA8FD07FFA8FD28FFF87DFD10FF7D27A8FD0AFFA827FD04F8277D +%FD0CFF5227FD05FFA8277DFD09FF7D2752FD05FFF852FD27FFA8F852FD10 +%FF7DF8A8FD0AFF27F8527D7D7DF8F852FD0BFF2727FD05FFA8F87DFD0AFF +%27F87DFFFFFF27F8A8FD27FFA8F87DFD10FFA87DA8FD0AFF2727FD05FFF8 +%F8FD0BFF27F8FD05FF7DF87DFD0BFFF827FFFF7DF87DFD28FFA8F852FD10 +%FF7DF8A8FD0AFF2727FD05FF7DF8A8FD0AFF2727A8FD04FFA8F87DFD0BFF +%A8F852A8F827FD2AFFF87DFD10FF52F8A8FD0AFF2727FD05FF7DF87DFD0A +%FF27F8FD05FFA8F87DFD0CFF7DF827F8FD2AFFA8F852FD10FF7DF8A8FD0A +%FF2727FD05FFA8F87DFD0AFF2727FD05FFA8F87DFD0DFF27F87DFD2BFFF8 +%7DFD10FF52F8A8FD0AFF2727FD05FF7DF87DFD0AFF27F8FD05FF7DF87DFD +%0CFFA8F8F827FD2AFFA8F852FD10FF52F8A8FD0AFF2727FD05FFA8F87DFD +%0AFF2727FD05FFA8F87DFD0CFFF82752F852FD2AFFF87DFD10FF52F8A8FD +%0AFF5227FD05FF7DF87DFD0AFF52F8FD05FF7DF87DFD0BFF27F8A8FF52F8 +%7DFD28FFA8F852FD10FF52F8A8FD0AFF2727FD05FFA8F87DFD0AFF7DF852 +%FD04FFA8F87DFD0AFF52F87DFFFFFFF8F8A8FD27FFA8F827FD0752FD09FF +%52F8A8FD0AFF2727FD05FF7DF87DFD0BFF27F8277D7D7D27F87DFD09FFA8 +%F827FD04FFA8F852FD27FFA827FD07F827A8FD08FF7DF8A8FD0AFF2752FD +%05FFA8F87DFD0CFF27FD05F827A8FD09FF52F8A8FD05FF52F8A8FD13FFFF +%%EndData + +endstream endobj 57 0 obj <>stream +%AI12_CompressedDataxkǕ%]ùx?|Sq6$w/ 2|eﯿkxdfD")nUH$Dxϵ_|Oۣ:<7^ ~w߾y͏~:[]:=-^f x_~sٛ編c_h t>hK6O^ɷ>B,?|˯;|3ϭ2/n[M>:\PQZY}0cvG5tvtIɳӫ߽}_=۫W_?yy퓯Q>'O\?yɛ2wϞO߽-ϻ},=y|7oRx,\Jٿ}q3YHL7/+^ѥ7whrn_|"g:zT;5ƫIC?fA&LR66&srX}vLߞ~?zy[g/ˆpNg緯7x 2}s|cA)zÓ_߾z7S +7O~U!^ slGuAx:k2AU:ǬăN!ᠽ+C:>k# +g_?{ϓ:|6T|ϾZM4TG̿&?,?1h4>Ӆe?߮v:K˯^>V=Kl篾/R.Ώ|dǏ>RwW}~賟g/o aٓo_>Y2H7?/z_n>-I?~a/?~o{tx3^G/O_onKO^>y_PtɆo>ݿkI/I!6}zo>y\/t(=ǫ'ϟ?owWwuRo>hş^='~v뗿{Yg~`|P'|Tff۪'_=A/bH/1pr)`shL!Ƙb* $SH1t.)]l{eCqu x.%[Iܥ2ty}ys@dà1tuquyuuuӲ9S]NקlsuDI5N &n0LKt|YS%?^Ӫ\\lJn=f<~)qU¦UqbW=ZM-e=iSJUX*iS⪄Uim]*zURڴ?k럫U,znWqvmն+]ztYv^g{aW8u&7sl ZKZTKj8);9Q(~.\ԒZpqUE@)B ZkYKY$e]Jf$}!6l:=-u-s)vQޝo̷TV'y wQ:Ƃs)I m29;bK]c@ /@ct $Sa]c@H/@NS Ҹo!NK0FָoUNx"@C ]&:az/A3.,0Flk,ő}ebqsj7x',%.'+*25. \V#356Ε\xyU҅Xڒm[ֶ\d.%LX C6 4{C|_X Yee1ݥvw[?UMx_X_,X0!nb{1O7݋|f~1l`c3ù>CWNw^b\ + ޳G^>*g}[3N ĄBư2%kʊ/,¤ʆ.= }MR\ʾV-c]D38bfz4b&W˶ZH֚h 곿C̶>B֗c8?Au+k)nJX\m%xF:XZHwJKe}t .)=\l%]WVUk^)gJ>[&=ơ;(NEl hX&yǝx3OjqZ +t!/w)US]&7}rƳx߫S+i^!PrbԢ2d-?'!z)Yv:Or55|^v=OjgaKAGQ[LD:UR"r\$e;UW. |Q"~9V !bXcD4[}еd'/D(XFfά78DN +(x^./ ?QJO/|B 愂ij .:-irXQc@o>h醳4ZS~Av?h)k g\:z8{ȡH)[J0MbiUp^˱T溜2̥6Mw-v4-\ΖOFq(Β)`)^|`XN+qto)\㹺wwY)T{M5tFiXKӿZv=mmib9BmYm7MqcWM1޴kIZ.zܡY:j5ө ڧM[;ņ&FК\>L\M4&_9-Ŭ\ *ӸT 413Ԝȕԍ +\"9N9(,|;!F+jV81`04J{ڽ4Mb.k٘Jqi&h zd1]_\^ +< Z6mč7ۨnV zۨBU5]B=P5,qE7p[lMZP--g4ӧ5ϳל:W.*r/xY I!#Nacc?~How0$'-w̗; —]+2;k8UeQ=Ccy-䥰7'.lhBXkIdImi6 ILQS'p;~F}_i ŃQ#:śS$*Ut廣RWꁞRA|xsYgoW^94:7'S_m(C-NtMpKIrm)]a*qսG<6LUݭ!J~EU^8&K$/̀S)Tb՗)aЯ'7uw.aE bHd̂jp#" icLnHb5У,Y\ӵHMV)J%Y嫪"ئʾ$HWMRYV'm_%\ i%%k ىv!G|%d)#EF^Iȗ"%܉f[T_o?ߕ{5翻&{f Yi+v[5׎?(tl-!uC .K?\B%|\R)˗'/SWΝl1)iK6;z.ӷ*Lrk\KB=!d)٩ksbLu3 dxnhg~6 +*BER5-]Sӵg7ws}VnSQ|tҕ۬9{yC@CW?nnzL_ײLGw{ߟZJt3}헮ʲSuZ~޲Je'~ouC(eǺ0r͕#+Gb/'ZNgQƲo5cXٍ\FQLQ,؇S,e2FȖ89eq_(8{Љ.޻'re?[:P͕&@T0QJh 'Eڎ41ZnQ5#z&ѡU!)0Kc#{\`U]}qC8囏,O]Æ)+=GO-#>$;* C^tۄKZ)ĕPQ]RޫR>m"߽xqZ#_[hk@׎-\8TDaŹ:^7:/܍-\m`ro9%Z[\%|z{\XS=Z$%Ë&Jn!C|-"ʁHt"-OcB*o7V=^ȔTK2H)OJ)TΔ;1E}[dCC*0?DBu=-輄ʰDO*nKR\GN4xSe@`3( +)8/54X%zK u/jO."?GxpGQ_ohdAiK|W]Up#zj%)R$ܴ$Akڗ'/'Y< d$X| :JkdAx,VZyg>_~Xk^WߪJ-dÍO=9gԆιLSo;2C|Rymؼ4F>b[z–sՃE>ƚ/6e*Ɠ*u,"[eE>_K]._f+k&Y|ë$^"V[hb!+kr"7(AoVu?L==|ɽ^km}/n)Ѯi7e uY Aڔ˩\ ermٽEvtF =3ŽuMM~NwcH`/N6w)n +h6VwO7b6f:y5CxU3C]4Uz\Q2UBnS;Rl S,ͲY-Rh]W^ފxjaE{SsYu*P'딀"!|eSc.E{Q5-gQ])R.R6\@nz={aUs/mtoy.o窧GN@[<&m(4?ɤȰGEd~'q;=Q>#RW/_>yqASoh_ˋ*vpUnCuQ0txcFmxSfb58uau*\BE}1jެD&-oq)SW<1onnV#X.'>}@]|eLߛ+O9aGnD.WAz'JhD P PJBcVCr,̤d.# VtuϢM S DzYw)jp#6M L))v&*@pl|U +/V*B0Dˍ KLbiLwm"~ gK<_l_һ,#ϥ ϵX0[ \W(1+.YkV#RQKQy늻J +26O1TNVAsB x6*\RuƊk1;lC +&k*mq\+easJL݊JQƔiW)紦eőGd-ʥIXmqZuDlٱ +)-U)k[=-޶<?GQ=QMLjD0T Ild r%2 %_qɵtwùVb[MwQFSTe~;NU wʹx{=ЖB]t](b΀Nmϲ]iHi6Qe픁 *Tq^w4~N2b?w8gjuFSPZ:`RMM T8Ωkn f} .7VgrSK}&NuE_+_GHv%ar(\Ո.j/񶦍5c"y%7+j-9%2r)3Q;+!H_C z|pJ=r +Mo썾> "_Hj2*_=%{` \ӢXZ-WzT镐 @ סqjp8C/>ƹfkF9["t7ŝVaoHXщ +m15sbj[ mk3]LlV&ym43FG fsFI.sLi0D2brN5A(O'Ey(?Q(OqT3W@M.ǨpswVOEw:IC9m8%څZmb tsF< +Q U#j>`1M":CSGkral+0g! !bpX_ַ|iw]JivS4:X@sjN@SJPJJηW=g:X>ٞPF `tݓ=Wg\պ6i*=G*OXr\ Gkݲ +vi%6Df,!ZDglc֑s xJˑaMr0*,Aߪ@Oxo}*#j9ĦJT8ʳ +<|P)Mѫ6h] o 맶_>ܬOb֒xʞ'n" 8]sN~sqŗI-fp^='lߦ{դp'}:|!y +PÅy[8n$;\KttqSyy(g&.gf578"^ +֩G涌 ;%B3u1kˊp]E,:B! Y(q j 7q\T-fa9,kZf Q1@ְY +,k6.g]wv@vЇzDq9㸆Z;ل{X(F^)@'i-sЕn[q`_lOݩ纻/f+cM0a|_V +83ٜϠY =u7S + 5 [L?/.ئ&Z"`;nZ%\d.u8EgՓHm}=@l C^ /Y[eNY,[`vKgX;'2pu:dcȿrJgԫ}Q[3\o[vo֎)x9cܧvzXB]Uw:t9߉ݙO7@)ġ΋#ݕ8Yqܵ9qݬeqT*Nx3ͨ;%U8Ts}st7D21ꠠ*~9^Kf@JÒC&s<3=1\UlX76 XV'v"3oD: # (#ĀuBOiTU=Q^mHH>1 ê;J)'). KT9#O*`$YdT"-fJs'rߧ1ݮF+J#sP~]ٓXAo*/Tǯ,lM5yVzr #KsSU&u<%Kp|T@ S0" P@@ѿLk޿WOեf2)yN FVZeR+En/zwVN,Pغ1Aֶ5|Wbb07Ts +vN͹;Vl.枦aܚz.WPMJ.n9Uj9%ٺ3մWzYlm"kFil|%i6xK n^Ų^֡[/!q7;W\+Wm,B3;E_sj ,6,GG qS ZTԡZrՌZw`<՜B%+Nу)j(3 tq_pgD?.3dX/"6uQ +rf+wWy +[T@֯BՐVpnF2@ ȶK4` +n-5%+^ xQ9Ţ#.\ Qx$G~\ޅ(׺sH{܊v*37=v%DnW{l"VmE]89?ϏŹln6ӽLRbPf *`]-fCի$?n'WR\뎯wgc$HPc[]Kz]jD~ψgJTe[f!g+T;豧֩"G- t*`H#Ƨ[I9swIXRڞ6 rWі_Wmyѕ'17_\cԈwHIhx%d[Q(h eBW% z=:bZ1nhVԬ`m&Hog4ŃqǸ}5X]}w=6W@;iיy t@8ڟk͑_G7K-a׃t\r=kOZ]ٝnVoNyvNOW̦+ M;:eV&acxys SMh?jPy {O֐2l9l}z{S0S `~. jvtO^﷽tduKN˚MeL=/㒙=A`)V~޸ƉvRH):Vl6t>6 vb;՝c>|8GlɝCo%:n`.!Ah Ł+gAyO^o*uͣO޼}򗇟]<>^1isG0!I`t820;?~_ߕ_Ŀ~):o_=om/X{xm7G~KoNϞy?(g~qs>ٛW_>yW?<{~ۧo~~?v߾+ʇ+;@P`yk8hC5Aisw!=`JԔڭt&lj}T`9gOG . f@L1iTоc2*#f _OD$jCux*%U-s %{ƭL<|PiAr#(i% 2DFwhe.b& vxI@]]A`$0(3A0k[bPø,E~U{7i7? :0ء B \&/#'(c:𾘋pdN˃ J:8}]M!V;̈́ x6VqPWo oش!^1Ӷa )?p$:ey< +Ha"؏4 j6w#e)^|\qpm:bSI]XG .yv 9G$_;F5NMt3@38NlcseX )* I1{؊|v y:׺6: ɶe1q7UM#ǶPFl!8l6wA|0:N6EeV=$Y@i_Y^sc)].gĈg ^ahkVa0S0UKQιbEqP,݅: ++N#.SÑa4 ]{ [ "A)t$b-W/EEyI7.Tm"LB͋Z#|Yq¹02 +35ޫ~^l*_| KI]=dhcT`[3 0=Gfѵ^i8C9gndPI̻XA=(lM cb֕seqJsrӀvwD(ucw@{ LjwA2Rzy]m4Gp kS7jEn|qL2?o ǫW? 'ׯ._'onz?l FRdEFOUQN us͉z 56ǥcL &!zZ#RCAՆ~%2 eѸ*>8?B|-Qk҇0\QkAYmă6qqyCP[{W&Ey/ŵ~l&ߝ")XFHɴ +f?ok7q\X.\XK vnxz#8ɎKMs3QD,mqsm6<[KSEӲS6;8qLsT}PjEg7w9&p)0T{*FNj9BIռ0k48[ᓍG؀ŲC`<t%M kaz \75!qy6'+0Z]Q_a5VI8CW0:dUۡK![#K͸8x' zF / y1lZPG*xLJ2B'2>Á +PֵP H3 +$R@:;33/EZ <C +n%'L/& ^đkР}i_r\rwwkp~XQV{kR \g汵F׆)ٟ<7o ^D 0앺H`9 b<܉;b NƦG*#Qa._2CM@hV+jcm޽2 U !X)z(*L.?C`*5.#T|INU>50geq/1iҽPG/K>iG3Đ1:hwK*r{ >hˑHxLܼ7E׈W|7N[<N=`t%"{b9*=]O!˫ymT1W9̾j=&UqE~; ;cZ / \s~ (ќjj4X[;Ebwv vca޴0MAķm(15kF?Y%xh6yzc-馱f4V j51A*A^hH85:lAJLfh=D?m4.eŽխ}8h{cq)B3Fȣ6hZqXC1$UF٨۬gp{̿>35gb3Qc&L-v;4r0Ӯ biܷR,>ϕgh h΍ӞŢR`ӢNxi(o + 'C[t,J 1tf Gy$CB4Ŵvu&maȆh][tͼLS;5C: o@hXt?RjEtXcc*/ q ^?;jJGY: 2N pcq0iDuV`"P,LE BGY4ChlAk?uF=^݉U +$3Zbut|Q',FuJQl‘⋱#N0#bС+f*+B]ҨQ(b@JAbėg LGc[s ; +\ة:'-†ίn'ТsEL#Ir=Qa14`J\ 1b&(DG#B:x!-B:Qo$iL8: +A/F'Cæ .jK& bX|a RŎi"Y`-n(.8˴x-jA pL"N [Z#B 3I&fJp+f '>$g]B%#i0@;</4Aھb,xqJT?J04P oslQO8o14CZAG3ު>jjFP-hcmKίZt4L4`[OUKWY= lllUr,u1&1L_ukpE$T,$!RN +m+]!]>^J%B,f(jl(. +ݪt,9 +O(,4gS2t(6aԔX-Uվ=4d^*ĩ 7 Q&ac3KC &æQaE4bLrȹ2L&6bE ?S ,D\mhSŝ@0ZWf#dTTRXn\1k'QKUV{PkDT]! ,FAiVh& *yр1$]6sU{zStW\%x #hqg s`Z 5A\E|E#H/'R%ѩqC&O` +i,>(#pxzGGzE+KAKZYCqPe I;.k5]P`a]/A&4j qW-m)qmngm6"gڦ# 6&c8(#HE)Ö%mN"%̳xdqon:aAd +0aў7<t8V)X:k(E%؅v^: Ľ W[#LPEag${{4Ofhi,ʛD3҅ +o21L\eKvpey@$$=v,] -г7]z4`2J0OLsiiܷRU&qjSZ,16(v;Tb"Ae8OwM?$nw#Hı:|1#4 aj1K}ԌzI a (w׻vxx9NPtJCUA1D>\M[fj9aGQ͔`; Vv9sztK314x{:|h{w=[GMLQxf;4Ρ:VCm:xkZW˰O0%[uEH.uYVt$(*9F'5%b8 sq8LOT-lh;b!UؽA1L-wЬ_=汀QKu +Zif75o­"+~ۘ~ zYzt(H F8u48zOvS(0S^ bԓ*EDw H@3"FN]yw1.؆f1 6щ0o&MFFfshdkιfa!#@z߽;lpT"Q]U\Kd M@aS}pvv2ߩflqD`U]qYֺ&.F Ihtb co$~ ZT{`р}a^>aj,ֆ\w;XsD5ТY:s=˲(>Ơ})c~̋\;4c3kW 8xRWV,rt{P-}>lJ4x-*=Nn +HL-vF0_fIVkm3G?[ovilQu)eJO9U ɸ/n[<_\[I'i8=j'E[4\= L(2aأ`)dAҌ7xܛ?Q5X41"9ln0QF(63,h|D*.M;|䙊T+9uc&f3 hhP*4{,6mbeн Ǹv##0}S*oa~Fx=hv;-Ŕc~j<<ܦꌞT|O2i^J=}V? +'Ȋ#<^)M6Qi+[U!qWjy)s:~Ģ8}(ӒPY]1<l4,f!Ѷ}4I,Gf^Wf侉q#ZO[pÏ Z0"B8ߵ-v8F^05 Dj=1mAL y@w^alP44X[s#dqV8[ މtj %fE4sN%;эvB͠a kw3Ԣ>jhbfLgZ=C\ + @qpDӉp+u> :ܛ-Wz(L4G3غ{ 74H]*>}8adL؁F"1 N 1dL@JƄ88dLЃ(ᄒ1N( pc'1&c7Gǘp't pBǘEǘٝ 't1"Nሒ1a nP2& %a!Nq#P &qBh 9qBhESǹhEWP-*>8bY4 bB``XL8Dž  q`'qbn+F K`'f&i6GLb1!2`X{x;i0R3M8{WjnnA,v  PL q +N-amGOƈV10({<mLhVŬ B߽05HzFnN 5x-^(w*~K)w!K} Z I}/n_gi,(Nmq\!61mmu*.(CjfRt%:-J`GS 3agN 3^ۀͰM0T)S-ZZby6o;3;̂,hKO `:.~ٍH N<aZ8n9%wq]+-;"w='x%4*JlY ² F`F_яkt،3Ț;cy%GTT 5_a &G[H- +b6MF=fCtdaӴ@MD\BCgI,шF9^ {.I 6R;aCGٟ#SZ<E +P)AKR;-ȖA-5~O@?ԏi@QU֑Ҁ=pv10+LI<IB_s^ޙK7Q4#r1us-Ȗe#A!ٽ*5À3_j"v V|/C9T/&f$/SdbΠv1 ^c `r)\he'.ƇIOmnJeF-2ckB+WźH+.|LYt" +aJ=,-Y0$BkdNoj$u3JY΀\dneT?-nqojyv9ggogڵ R;"?/fq 9ȩx$`ԑ{j`UJ©=hB4V.0<-k%c9\^;b1u18,+Q@ +,HщVK9j_531vvnYdrr-{MKąߞAfD tykt=qAbh I0'b|й[f>o('[wDep9wj麮|P؅Zj E9Ԩj|ߡ5S1tvny20SL(Vg$#kq0O^ kGᡏob~総WoRx^z_̻?o}6>w1ɟ\V7˫OۗoV_]>~U~py_~vGE"$xzJjA%g)b^_~O=M6&uG?x᷇wuEdDP;un~zԝx哧}c}:$@6F@:aQ +K*9L ׋~:MFPZFyI"z4 TXgVåD ܌|z%~hlW^EccR)QD T\Fazt/WųPYl j [ kS=dT,gY⪵%',syR%Vyy|*U **>IrtGv'=:S8 +&((lէie/,&XjLE1fTT+H y`bKzLԖ3*~Gvf*ظq3\&HnYA[*R*A + iQٌґW¢+{LxQZ$:0=ͨ`3%he(OMa_:b?>ʔDzdHꂑbRdj^\2%sWO d"x#T?kl }܁xG$Ӣ9́]H„X@|[tUyԖCQaz3krʔgYpfϋP<"$W5͉BÊӦ>dӚ +ECR kijgUrҌ6K+}:2*H`UMKG.˃,-R(-{ڂ2X^GqYY?E 8 I iey0}i"љ.4He d B0Hs誌!_cIbʱH +2i J/F[#B*eyW2 7X;-"9.`WS#L+&S:k\H$ϣb +G1TLz INAѱ}"ARH$0D65OC$͗VHTufPa^1d?`P`jb &h=3RT.)1QBI`\'e-ϽbRF Z[SJ RI5fmO=A »qrړzP{f(MׂIN;'LyM> ƩZRE:0V|5*ĦAK +Hw/)->2mH7+;LX悏8hȖHJM2(~^I-}fg:}(IXABT ^}'^@JUypc-U6x=MhBZQKZ,6 :RNd::2ed:l@'/$\\yfpZ"i;/ωܓRdɏMuR#YI\`f# F$%7*1%4GS  JxuUޚ R-2d֊$@^pãS >&9ϵiXlkޔS +Ƒ);hWtξAZoD5HP_!<1YDKz%%-d%>eZ*rm^hf:ٛIjRɟZͱ|MpYqEN=p,s&+^_fL/CΌ/^_EWQ8^q^3;'n@((b@`!0"Q}H`ZMseفN,`LUv 틥ѷMx[=R -ؤn ʺ)J՟8Vh}y”L¤58JV :!E?+MUԲX In/Bpz/A!t&=Sbȱ>8Ԡ!XxE⦮gǀy<(ww8tɤPOI +c|eq9je +Ρ^p!@Q4%?SrIdH%7Uw))r֨sWKSRn* M,dV;Ӯ'0tY +T} ׇBYS[ޮNK:,əAx$1ױ"7&?x(=GA",tz-CJxbf_\ANN* +5tCo!'rd:ЈU,oK'ϷM!D`Fkc(M%!̸';e`1TRd5̋DI=;^ES+C'yIT&V..VoU<جbK5R>l q[ +IZBHrjy֬-bL"c 7K+pw)N 7&}S_9&wDP$Dzm{T 8"HLT\ДRuiU5DWɮB98nߩ*7W䃦 +6jpV@o1Tc[Ͻ&yV@`m79Q9BHyMAU+ҝ)CrQFfqBT*8A6K7Vx pxswIsGI#eu+15K*zaN6dEUXJq*2Mfezfi6DInyK']"$\55'PGF +b3̴"V'l#!@(/f2sԚX 0 8ؒ17sEl@-TLٚAADᔬ)VU"Ml▮+uDK\C"v- +5D6*F6̈) ; RGCvY!AF L #9}qi Epi( P@WEVY*鑐iyTA55 !A=D +$;(WVlJ} +LWQkyدx9' Y|%:A :2"zsd6bWP ttN)%Xs]$ƱI U#+ tɊU8\EǠ>p G?@UZp3)Ŵ0S!S)UJ Udl'Wd5v́3X+N>K 1. dn_Wj@[d SgkE/*USڱ{$cέ̐ Q:IM5H*QX/ӞI@'tK +i5pq|Sl8 vS%-#gF\ ^C /㋌grY]Pa!2*ZMփZ$+XF<`=uqy4鯣ewP)pB +)+Ac%f:+Θ! +],jYHps.#Es`+];2G!a))XaZ!3 , "n^`nӨ휉uAF< :j52\y|N' )c5%ˈôHuɚ/ pQa> ,q s)d%&L=k~bT1bP JXG369(zGY{F_? FA+h6_Tu{LPRXlǁa_0Zaf1\hބ4F5h?~+&P۱wHK0b"q׃Շx #ru l#$BԤ!Ht$48VUdsү?,JJA۴}Kw=ajz yȍQ5J$9 AwƯ ~K=.zl% +//oQs"2DR^A>*GPK! 1zSS˜rOp7Hј'"o)lr6{Y3~;J5s1-$!Ui||~Z ȧgPĮl?;q=cs1=Rn9@*?nab.0'JnAxUX#@Us]<1eυ[C +95V =cȦ^bjmI1}728yyGYy{M)(c#{[)07\$xArbJ$ ` (Cq"e%7O*,?poc ؟ ;i^s_ݭEy fEʍڇ<ҨO0(U'(+q]]P gXTv c f^glͿDGCPဧUo3 b!Nhg-(#U6Z @%^VB$eYei1efΣ=ooArO7v~ޅW j{MS#r!Su+WR;AC9GJ'As lw\Fk0,H%<4[;&Jbѹs4zrxķYI^`_Te^sq{c?3ّOl.WfҮ)%<%z|};|{pYJ%?|?)f0q@p/t&ΓHa*@E_Em+xN#\( uV pW \0V_4:85T264f`cW[iGK13;68דfR+/ °ڙƙE.5f=3 dv q˙ NVP^(R$u{pð\ }40Hɘ2rk.9V0AOgby;Q1<4g:6}?B{;I|2E2 +Q'zZp' pِäuX#.P( . u]Nq.Sqs!`#6n%UvfL.eN?ePRq0;DDF^1E=4@0&҅:M0rtҰ-"!.{軙~-Ƅ +5?nWL2}K*V-F +t,k.|nؐ62I+| 0?OfYBPhft0s.vp];# [rWEVOS +g"d#aLUі>˦ 3)_C܋=Y`p\2h +Uc57:5@UI46|ɎpTVAJE! Sq8p V&y\ȏF$G)fDll$8@m__s>NR?HmbI5H{?\A/ DBGțv]5ʒݻ.ftr=&FJ-EQ +]f6h9U%+ϯɀpeSjb5&ÍH5`d/:qSgV&l4i%GZzƼ=缚H|QroSCn X 4s؆@TVUUk1hSsoAaRh+YÜ7Vcש?S}U]N剋ү> g4.0;hkFm qW&1f~-]Ł|I\߉s]E$Qq/jX# Dsu.ԩ"G# +wg75tɘ*[\!Mh2b9ǦǸB&*6݈hTZ/9d^G>L!v/$׿__Wo˟?[#ر6~QCj\BIRW KZ6E,>dZK`5FPX9j`]ƫ3]!uɤGyeJgAM ycoوF e; +X™lAnv9ßI>T1ɀ3$l(3GBYcs@vibB5T!eE>Ds̈́#Tѡ-XvA +K,[k +SLcmvG|_xC%c:R ! xN ѧzWZ*Q %0I!A}b\3FiQsGXK[+PI]M:/%n jFi, -( ضo@@gh5[0V+$vh@ĦyGypHvR AØu4rM< Rl| C)mv^7q3϶F?w =eLnZ.2Ǭq.k4\~Wm$ڙMk#vqbSCp;(q_OCJ ̆G޷ɋc?fa7 JXEED"H@≂ 0\(Q3vΘ29ԫ8 %q(Mep Yh@B!`KkEX.du_"+`("["U?Wc.Ü13P\1alw}/Sh\ơPIn njH&Vqkyy}߀QםljD .<L(/,蚻l)S$Px:"]5Yu3{HE6k ȔgFE@sb Qt\?.zWX}ԇ J1Hs ׺|+6YLf}:g1^S4~6̜s0^`'6M^%q +>"EN x@XԋEU# +\>6u JiãhD*BѰV[6P(͎5G1``@nd%Bs #/"L{EωJȚdbT:vRc>J㊃0,Ld٨U힔M +JLUk+Kª2b؋ve}O<kxE[H'am/ rzcFj Tȗ%t4/8H0I:בZܛI1 = <V'z[0'X@i_d gv a{F"rm"CHB/ժWv셊fe@:iQ 3zz_"-Y&^dep"è9,3&jnj.gBcxe5 EP$D/"zhGmiN`Э\r3OU: +NkGZHja]ۈb} t!VnTG5݅#*9 ϿO)ss(2tb>^gh֥9!Q QAcᏋ cg sw鏰ih![36ʭbrt,p(i{^ pAšs+ʴ%ai_@Fvo y@ck5 L r i2)f dRÃd@2XtPh A*?tkG"N*VP8Ii{(F+5EmE +dVdk9Չr;UaDH T੺4I j-[DQ4/t2G*C䨉"ܪR).lXzeO-Gg'LdA`9316xbJ:i2AlcL;XWm#ܞP0v`3Wly,rQ0*G`Qf +LYaL,IUw擗ķI鄲@Sk\0#:q =i,MZ^b_y) 'c%Di/hhjѴge_1LiCAm,ɭϒWsiS1"@N-֛&pUGDsκ Yf-¤t%xUp8dxmiJ!6߯¢dh\ hP"MKJ!_? i!iLzxr^8bt;{{̝,Y'ZEXgUn9va^^rckğț2Ѐ + ]bp< $[ @RoP%̱݀g=W6!`?ID1Ҋx0]>LX ^3,&}L9E=U۽|P+BΫߧ%xwWű9YGt5mnӜS 8G-I{ yRb"Wo;3f*Kv۞>5@7]L}qJQ:gK48c r37 <缎Px2cȺ+,a=w$p Ð nݨu)(#-l(`7N $ïNArKcO-r 9C|@ [*^B5Y^CRsKP'):+u c q*f>j&5v)xD<9ʽK3( J5+|L4FRC36kſh[q3_1_EH;H]A5ٵB9D~`WȗdLcEE%ɯאְ@M܂3t8bV,`*=1W6eDT&wuTO nSU`~S5pRmMLNHE.?)l]Lace`BAeSA^"!u!"G&]@E!{"i=C>y)2wPjhNq%H hB8:gtה8e%QԎ-K#bbZ#Z xd +o_ANica9$ɽSKM 8-?rGaү/.5+{PёgZy8([Z/t.V%Az`Vu4@Bh\z^9kP¸ףAhc#R& n S 8'8l$_n!JJ}0- _()T-mwK-f،1(# Rɻ¡?*.xv(C_*Q#3]O*(\vXL?8xM#CO*g7~KJG=rXaCQMS%" p|s=//,E(D`L}X}~}?vTGW~/}[O6}Iz +a3* +DTḳG(C%StE%JO~1Nĕ4ȟޔC +k ![d0]3WP󪡿{2YE[]X~M45AqkAޥ #}W L[pΚ*Ov_ʭi96ENv)DpglE(iUuxq|?B#>\NY1э}䨊*Zj _̗0+hD!~7so 䘊o+~.+p)>S[$YNͪLG6bDb(IֶvӦ`8ĕqJя^! `j) fMSrvLO3G5Iϗ$\@i)48SSРq&95VaCg4uT-OHG=Æ\2=5+3PR'0"+Wwo_Z8[DwW; d(ccQ |oYo[ 3ʼnkwğ{k-b"v ЍrcSB :o!iz0œBB @x3?ZjQ=>(Sbbs nj l|cƆ! +".RJ:!tc$%'J2zGvΓuU PMBygk\V7+76n/֕#hC rWre3Nxm:5`<'jx OUlz` 퐫eY3!:*˪c1|ePSWzdNk8;:$T.U_7o!ϹRƯ-QDiPoi;LLndUȚ +Ÿ 0=ð&dױtٸJ3*=5G|8 YrKu2ѵo)}WjQʢ^HF2 +o<7B5'*$!AUO5lm!ϵk0F +l(AA '.ėޥ:m/˟#Ԩ>B\]h`]|7 ic5]er+anC`}{Ez?zSȺRyx#:˘,{-QoxG+e)iPO[}s"5Vy;Z\^hX'зEs=1l{TxeW#S?aj`z>dnX~$YM=z[V2ӕpp7s my\a.w?ME%_/m!9]5%*Yy}3N^<^~6^DmNh.)PmIO 6SX,i/1|ڋ>goRHӌ]D0c/y=󜽗:bD(mZVJvTNdt[u$UTA +7utkiD ᝮ qmtX9mt| oQ"|9׼]&Yws}UAHBy\v8}2|*RǻiszF/r&+0&/W GK{nxQc&xU#=bRѨqmq68^+P-e(N3#p}8 5k6p> Cq G*Pĥ\r1Frz9c@`0H-oisy}  +4{{.͏..m⍡ow7ܡ̬?-5lu;u7ȽAw"Cdr,7n eŷV~mIG]r=y?ݴ)ا?fN}ygQ>N,^-kr$ຸCzZcG±}b U1uU)A58A5K8V_v pOߑPhϑW^]ɔ,~7^.i$n8C}+ZYtZvCz#=4@^%-!#_O;hW/EGJYЇa ka g°ܷϳUZΘ""5mǸqrܶ0Wpsf-$y|.H ˼Y,ô[j̚Lf̘9_4ZdbTMfj2{2+|f ^完viL`9٢(Ҵ {TA@˜"s P' ḙlA"0C^.d`W|NX6x 7=֘y8Oeb .էu18 c1w6M[⪈aۖ=7ko0?$aˎayV0\Y:%Ős_0f? SpI&mcL]󾿍Sh y‘Zr| 55FgZ>:˷/ ְZ /S ƜoG*mٰFb8r?H4h7\QЇjNVp5?8`N\? S;`V +4pNs҇~@{GnGsY3Ai#-FKd'9\/;aO q$W^&0 +!e/N1}+t-NȀєvŒjX~ ǫ1F ݏv¢! 5`MXV$Ij} +snXޝq2Q2犉h!~m&ō:o3azoa&$a&l'@mKp@۷ ྸkJ*|zC!Jɿ1*_nEu-y io]k f]bYfwءCe;'ҷeh8yo`Zk3/o`rOЗA0K_` |sDd O;t`*g/5oKPsva;^$cmKY/GߨiܧnBBԙ{(n ^o{rcu^ +}/cu:=z3/! y9Ys}x<Χ)"Ø3o 1.^me^\FQ~:4vJ}lC^bk%DRˏ׆C/Jk kauSeu(YmC(!/w#2U Kzۘ%㸣1/h1{ZƼP1%Wʴ>R1pb)W?ymUBy_ƼBƑJ6AEmK>yivHk-mg^ck+ZeZ4 +3?@m!xreMw`lBgz5C5kWӫ4j\^&0|0r{E +S׉W/`,y^۫5:۪y-iKx"(:mM U91l{\Z{:JК#h+!# wl|ý7Z dF+y:xK\۽ 艇{/;čYr * +l"{/ݽ2e p;N?<&iBpfDB\o_2FCR]-\|\]BןvjyWNxz̭;_>cH~v@=gk7̭}z)N.pO?_hRF,~S)1 - G_6k]F b{aˁe5x#_4P)/$%9xS0ޅ2]_GXZjՇ?AI<];Ϧ) 8)'EmMofJ~E^fP<3:nƚwN*'ݵZ0&J@~ +IOJюf7oyD͔Ew>gh`ineaz:R,R/حxNJ K ԦP6?K mm\B[}9m\JCƜX^O Rƥ4!i~*֥ƔY*uZ:aۘO;,&46ajEF5oӨ>(GXVfj:UK5)*VMĔ23ҷMLDĔB͉槉+2xo7SX|v3Wˣ"4DG"DQ#ԓP8 +/^.fAulٙpy~w44_;4=46Ud9el-Wt1[9Ҷ5=uuP۶So8pؤlM%(WVݾa6#lܽ}Mf@Zvv1GE^ +)[,v!(t/R*w i6i,"J9XXbl Wۻd)>ezV,K)>J UptUjGµ8}yZ6͢7LLeH*;>))hyv*ԧ(cT}Pآ +>E!^=\hb+oC1l\&0 Ihc3YEyxA@lY,P ~Ci!iyp]S-؟)#֩l侽͸OioEڏ1mg"]9i"LQL  ad~ձח=zwN/_GD4AƎ>B__Ǝ_?^]İ6vy-6UrZ4IՆeF{8Ƣ/ӬA":rP~2kz +޻Yt'_-%hFzD c]}|D}7-dtPk7#ԙ\x7UeȻvs#69r2s\o!?7JrD7EH0o:4$)2oT3 R2Xr_\4G6oT\ .Rtӆ9WIz3$U]ո~h|~83dp=ow\chweH5E*=b TBi8> +RZd5{N$޿ZFDTgۡq!RhCPZ%0?ւ $!B^Vk 6k7`ig(= 5Dp1W}]T7i{Ÿ_wʼgá8iLx[~m !Q6=H-7lr#thN9lq صe b|~oNt ̸ @0ӻ5` lG@.wFdjMH.j1%_ep=Mwz;RQ;仕_\~ +$漍AzMX|]-?O#> z@"^O!l0^FeȮLo$[Vz].FՊ29Ze'.|5]v[b MÇ%?RknBM˻t+g@EgΦ]QN|)݉jҔ7o0z˽O:>˫NΖE]|Zԕ;˙@:}E*GR/,ˏd7Ç ۭr_+1LטbDyՐ7^k\VOc5F2TC-}pߍ[<K՞#x/42fq} hc!ud/?2>H{۝9ۇzȹi6jIoVf9`c@l};adq)e{8"cRu.ɻءZtr*9v1kkxyN1>i2Llb zpĀUx7#=c!Fiل)[X;uZY^`?j +Ue~R"ӻWdbH\6](N:7PIxB^.>~.î[+|֗;%<eʅ2r :t +/Imal72s^nX]m,#9Pp8Y勥-]VZ,4ʤN+,+=b 2}Y1s|U guX8{yeՇ{9YuM%eUefjۢtmiOc*K,?*8HR^S_fS|+|*'h󽬥[1+5`Ǜr¸q ކQsFINO(ĉX.w(#/S(q R~[@kc~D~4-̾ 3};VVG['r٧xli'kReeѸnC5< `޶/uSejhԮiJeK%=Q{ZR.RƇRxoC%Np_>J!\~OjVTڷmR;ç[nx7Iz}Hm~YtGm$x2BXT" !m{TE}IH"{_ oȥ~sTAxA +em*yE(bqXU[)@#gnZi<0O JRec>j34v[ͩ V:R&PHxH Θ֩8UXf5xPUGuL(41E`=ޓs!7 +cO¯[PNGwRq}HpF #,4~Oї[ؒ!:zaȂicҼzPOkB\vK*crY91>U@,@%9H=U6TgczʼjB<,5˕( +=|eJ Ϡ"ˋWڎМիunN"&O&uYv>JmZy6!Y 2AA 5°h .>9 hGH51 IF3wAc5 ώn5uM<_t ?C)|Hck-/Ʈݐ3[ B2@C䤐+.U,z:vwB7{):q uhUY5TI _(r`v""*KaE{J?IR, +Mxۤ x2KjqRۑxƬ1} St|a ɲL`|`[!Lc.eLɸL'cM@$Qϸөu=kp*6!ɵNUBT!|0Kl7Z5{!:ڳ+ԍvz(iUDoZqKwt3X+}`ÃDٖw3 +\^lzqeW.=j|ntUX$^Amm|q jld2]XP,92NUylƫUW[`UYfxz;1ڽ/_4\X/#X2Q|JD6V)0tCab,c{s-$r+팹‹Zal*ꖚKt86(|GeyYGERK!L!(+FP~<{ܜB p=VpeqܻZ\&[rqn'wĕZ0 ĚBؾZBY#D$d*2WDDtR[8 Whp=]b_KK>bhqx%xHfBeA8(ז2[gƂ{nhpF-hIָT" Q?2=8v\Ř:yEF؊̭psҢCg^x"96`zL}&$(4 ハ%UL4VL6#O -TמOYada48b7S_B6G+v w&4I-ߐ8 ]5n\ 5%j +x\|Vi8nB+񮏱P {CI*.0eb" 2u1_6S?h"NK_޿,|u.̌rr/E\\/1IJF˝Ln 6D c'j$2Q<8"EŽ%$ + )㊉&9W||٦)/y +)>JL= ZNݹ*'zC= Ƕ#dK2ƽnG7b׆lxS`CQf4уT[[i+SfP&4K'gPKJb͂:~U#{ZoD=w@La@PX=42(kAЩ9?b4֨ fYiteB +܇@z:S1~TSm?SK4`ݾ#fzy>z%pZW~q^(y#toXwN"ϗXaR=r^@F9DZ!=ucnMI:\o%0*5<ΘTf}-?mLzN)w~i/ b x?y $q$x94zd3B]nʽa.9[l'/k6UD'< +E…TY}M. HщQqT S|N~7!Z +SyCJ6ث1M>CBUuu+6qQ4beF#z&ӳc5 l=<')tO7فu;9 4=*b/0%g>3]]wvH|2?(Cn؂bM ~=DbFy' xZM2n<8:3G)~0~YYn*neSDs*Wn@LI# ,Ci|-ܕIW|?' mL9.P=PZ <޶O*Oh, ?q*M6,s_t`8PƔu%OY\Tt fx ؄'$zxyJְB*+Ƀ(7֗(v) [O]H˞17#]y+FpH? C~ oeBY݌##xFX[߷cVב +zcV+8nhWAE{ckWFL }rE#4@s5݆$vzI,wCss߄aJxT!Fp 4EXNVw̃} ht c`G7%Np* +rPVoG2Y|.hڢ o~&eLdgvp#_Nᚰks"3m:Z +, qz~tK!uo H݂uåiHL}Cˈ">}ę;Gx,ͥp3d*@*;_ Vc.!% ##˚GI+OxX6 AYhxXؽj,Elj1-ΈHX"a:oz8vս+yL\(y ^[c Wd +P'\u` :?q@(vWF'#+^lB=7m-yWjV%+*W +x9ijHí"3֘JD5cMvh BE!AK/T-ÐkUNJ gnG +}2d>,14Lwfs87OqR3&0~sUX[.=ٱIS +kGة*[I6=P_3~I%t3@' 3Ȁ14J w+d,+ uK ӱ??ao[N N-e:CoIS*sOK&xaa2BbC `j ˶ܹ P̌SR~ +JJr^xȢ&U#LzgR/ n lC021TĂ +Gߞu)^8B#yuC@h%l,;ZG5Ay"1 +2Xױwv\ǩ :Qҭخr?Aۿ@}Kt!Ʋ :r(9\C!M28墇Ύ$QAo.4=O +j +zjϙ`{!<#:9*@ -݁VvƋ^)yM:rF j$!ZMDn( M[]#(N{} <YXT/(u5h@$˻c 8cE( ~ tϗ-`󡹍y:'CEZp{"@3d>!&gwZO(^mB́nTdTU6BB^DK@.2tDoL}qS|=2I,Ej"pKQ=3c7<ԍ8ZIWIm,ʶꥨ!<^v*1zǠ̲ޢ~E=~ +V 9ގNf#CȣuFdM?Iۓ y/ XO^M_P3HkqX1[aA:E_U5|5<DV~I/dfspÃG:c٪ +=bЖ:{\eRE +RCN;&ҭ!G8''S.Yz>I8/#Pa(W*8bQTY[!;Y 0ESWDp @*Hkk;d l' jsR +`aR/m~Op9P󙶮!U5b˛ޣEǻ 0/`&rFؘ>?<a껐kLDEhc +j+?"F75 st+fI8gNe"t(c9Д!μid5J[ P"C̢"8eGj`F$#*L~-@IT,blxDD`;iY'=KX} +2ݫK"4<ɯ\ 1ӼomHr:W-MlH(R8pognn4hGBx#dO!&Y2'Y1=CSQ'ez 1UC:%b[_~wC?ՙkJ1~Jqy]1`ۂ_ ԃWwt4SqTikEQ;ݚFUji AHjx hNڈ#iolPB=ngẇt]%b vSf0uŸ-fy&OZ_oDңS/f hcCqSJQ%>JiSiPZfl54>ml1Q :gu[[<5jt[2B|wf >veiʙtk4S-P0lBCoJ8$Ì!pF*<8%o4cT!uIz[ vn B?=^$x *5_{c&DBuN- yvŲi!Lꨱbm㴶4A]6ޤ|9؎Y#> -?ZMV$S ܁[۱91URq ib3![^k)|ÀD1:\9| Ae:v ݒg*y{;υRReX\S@ (^CMp?w:E +Si"wބimM;eV}rT!dkd* kP)hȮT)ؗOqr ꮃY6#nbK=٩s SFR stRE!Kɒ^tMw*2!\ }XGW 7WI4(UoabͷZ7E dG\ p\[Ԡ*BrݾgOVE=VLXBFl I>ͿPɾCvT΅``+]|&PuYgG`sW 7_ޭW$+ӻo."731/a6BvT*i"+KE҈xwDo4snjۑ/9خq5 ^aF=O'm.]w7Iokx'M4VT^D1hX/ +G?wr\Mh.(]P $zzյʝ 9m)qn ;qBW7ME +WtwDS>z$3l$ (g +JW}EݤiP LAmhNȧTd6K'6)yB7#nbZn{ Pc`2Ҋ" /zLc'9XE + ET/hPw ͈r0W9@&0;ʕOe/> ~GP(0o}T>yb<2 W1]װaJJhWZc8vmν~q蓴P&+ pz^{bm Șs7FCTBzѹG_1;G vZ^'7#}xd|/tfOT2{t.NF~ܡ]0vVv9;(QKc"3j? TPUu75] ]Khv~ +sm66MI^IqFgǚuUہbZ5׵կsk74X\pa`e+8ƌ#&y}DDz tneWPaD|ʗof"REiT9w5хPWЃZw(=CZ`kx=&SREeqli{X%yg^ܙ&U @ɫ\Jl}hRjal%l.3-רAlA)Ce K`d׋EMvRIE !Rh*⁴yE Q6{T\;Cꁶ=ȁj +k|Q.y2 iK$Ӡizw+Y誈=_]ݒ4Șg9^+9OyȀ,mt\GSOL,{O1m@^eX 5TѝNdK%"$W9(ѾJVEl/ G5{-^Y4EbŒw#RBpER%$BH?xmBok0KdJU9_-ST"gēCE +ye:c%b󮈸XHmkZ Q,7IcQvɩ@R'ߒLœDR6K7 MDv0 Q,)^$UxvfB4(q[R5=G-ܴ&/?$=CzFO@W#|ܯj#OCح[g(F~h*6v ?y+M\fel2ڪ;$\aH3ZLޱXvD򘢘YKZOlh鵼B%Tub}VH!HI{Q t,<؁&H DG4 iع]lo0/HyF R:>gN#tDE*C>w kZ^zD;X{ "Y=޽k2MGUɒE !qnPBd1E%.bD-/aa72aSwlRMwpZWh>#,#R| L朶^9^f!*YgE~*nv??,ݺI.^v3Tba1oE%d&ruw|ZgK#*݈|eׇ)5u$;1 [7T!;( "K(wV,V88m4LkIğf* %` Zn਼8 7C-(, xFJ S=0s0GIϡ95QqUxOƭ WPyc?:%@Z^¤T [MkzeE:ڔ2q, 5m=tI؆ӗDE_ +h^&sU}1EsA 3Yٕ^޼_)0S!tDK/<͵*ylN& dUU4"$ʄ$ @LF%U =X^dhF>X`r $#gBEMeNR!1 (y c@iif4EvmDϾ.?Z_^`96D|YBzV4i6_1[ʚ9Fh=pj8ӧ[,rRMɺtXFS1?/&Ty^=..==u= +iݢԬR0P2.7`%P(e'/^#6@<)['Z'E;6#I ƮɊU Zz\ˑBmcWְ/*vXcL6 +cXD\rC] %۝$G7yӭ3w mk\h[aXo}ed!2 + Kz.AfThMJVP x%.@˦'X2zY q ,ߑX ,;hR7ta򅧋z\d;r,VB|1!Ͱw,eʧh0-0s!;&I\'ݯ1IbA ]Ya 121 2R5G1HMOIaI9Y7gr])x_CY3 *8{ƶEw%4Dh!,Lvq`)Jv݆*Ud0H@hEօ#\p!rE-wĎуQ9*_sHPm:t%wLPWuE쯰 p3R\CclU ,NZot +We T1%G5?n$h?k1 W\IKRw@QH?9R:(zDgDtM? $'+^?p/SyMIlCC6BY,CA!m*Ӑb^U,'I>]l:_?(WS}7I뾅=ؑPv:KH +XZm/zI!71n.p(VM2v(UaT{ n,Dz +0r1 I] PYc. +T;n#d-+.!M.E쉦-1Z`SMi(jً|2sS:d) [)sx& 3'M,ڒ[#^f&[EB~kBŇ91QWݒ%/ybS{ \p5y`>馑lMK>lϱ&SLݭ`6**铱w.W;u0WMf*MEHf%\h~~) 2ZMk) zH5Q610$X-ZQZH9-TgeƳzmFWrJ +(G7 0 0| "^qהdrdG+B9jg$yw>FT6aOȠn{u ,yc7jCr%PIB3_2_^w^w_yyv#32?R A10@y6*Jz'r[E 5ɪ巟ME|g=!gKo?/o__7}ݏ_?oA'oO#~?{?(⿽ aNcEyX'NC[db>JRt~o G 1})(P2vS'ݾ*Elb?:+V#_~U;xkX_Pi% A2I7|gTX-Jo"j:9v&ާetL5ýuҮ7G+1mo,[޷6ٟ܇:xG$?DNMuNLP̅)sWʹux-Jh;9q`ݞ +endstream endobj 58 0 obj <>stream +S"i3ƃ]q#^wJ*f +v1|FJ|֑7t(*&1ju N߁VYQAx&U8jf&(H?6QVh0$MQB& XlC¢!7R\'L>b;4 QUBH+ H⇮zupT T[p, +EV`b:,}`3rJ֟xw/VKG&s=- +nH}S'fA!gվ,45~p`L{[铀fJĆvxQm #slv3@Em66(#HXN\ݚK~214U޳Ba>ZVhD{up~[l-/1re0y>e-|ħNIDo5%n)h[WlZ\]iliP?F)$эDryi0[({aΡut!NJUjdx(zܬTHYW[ I!LP=:_P;>]H':ڵ]•M@ŻyKN"@/"Ḱ|;XMs;ʕ3o0EKܬ߷bbcV!bVBk:R:B?c{C a1,QѬn UnDАTj)va unb (h-(e+|B>UazJ͖J{֡ +?tZYK4Vو7XruhJ\Y͢/j/VDX by# 9I2z_s=a=kh;iԥJ̼T6 +6/&L)X)~iePKQJ<${R^7NCw! ?`*nK`׷d4Ko~@~씗졷dܔC3+T$[5HhG!&pZ5fD(J'&.#&{bnYWzgݴ V#pP~M"wO~ϛ!r$5Tf֊uA #̈%e*'L>qA!hz9P[7N^z,]#""!fGj֦mJrbm> Rs (a>vV,[v}?&|_.O$4J!y9ƃ%2B +flA7_6V/ߊ^-Ƿqo:(9( @]uT|.D}=D.uQYĚ9p *;{3>Ye;kρoޣƦ;-ʔlURcgH˩gk*z+?ko+ejjւ5vD*zˆ2H96͎$Qi ԯ{LpD&g/k2a:QbohbiV*NE̯pQb +[QxpaTgZf뎭>" +:B w+p;oM@k~i]UQ0XS@l k- l/R +zmZBa*8Eu$ +eǤ1eQD$%S +Ji'(3^ UuDEĮ?2sK^l'#KZor&M`S/uBߴh 0[fCÏw#n#@ITcE©ឨu_UrL0νpT;dp Qq6gw@"CɲrsadY n"*pR(b"G +7DY y펳N8Ēc¬W&G43Iu7A97W/sZj}'L'? +xlI'?++C\CޤTQOKLs6K8VW߆DT@ O]b>US!@|CH|I,*kfuـSdS-2E1uhoSOY.O)Y-7y1}QSEp=y{fJ 7)eBD`}<O\U |CȎ5Qw`:t [(*Ǔ]۫$^t$0%zI!#5 xXoZ^A +DeO/{PthW +o^@Ѝ),_NN@-AaF2'UMKI۲B\:ƝM-H=JOUkY{GPEw3&'ZTK戗,(V=[,Yrlm.J& ;7UdqA)dӚ oR7%\E"KBC*Zrf%erbmx<2.Cq.&0fb r:#I@. + IcHMVxk&8S-˫-&#MӊEgb/ OfܣKa0ŗPp~k!t)rSnrdCƥJk %(E@P-ulPE+ vmLlCeB(I,uzXjvIcw/0oTײ6ڪTA۞աU_ oՉ9(Trۚ1.媩B*xZ3L0$Drt P5P5x 9#ǽ$Ra wS|V=_in!^B }URKj)(!ݶnr[Og/P^b-7 r[K^h:C֪-vգ!8'Ǥs Yzt% +CT&$ץe"5W#U(9AE P2p-'ݛу NtqbpQkOֱ8 I""[ąW86f$HފJeeb6 a6p>*,8E?5ОNetk't +nӶ4#o hUFSۺǣ5YH4oh-x{N|^&YYjhXKlBْ+}36zJZTB(,I-q6DXig4;-(GY#JuV1 0$D*n$[lF3!wb͛qm(3u>p CQAkWY9΍#xU*IEmxl12F!5HV^qMKV8)rjJ\ 4j6g ؓKz16z<ƨWf^r"Iq;rܲA][@,Jx=K45>Koy)T\yd}췣u;ѭLW4}V9- i}f.D ,opŕljS%^m3+U<7iG}z3j٥Wل%# \ އ[٘[ȡH~/kBxc$' ]{u{fu JZ +2* 3CB%6 d#{ a}#JoyA,B0:sr+ "GPҔ= ҉dKKt\4Nr Li`ie(WGiz!+fA;VAu%<-v6MRJALvWހp*=φĢ!$zU&dTBmF1Un(.t0ؑ5񬉽x (&K(o_-F. !Z$8w\J/Jc(cQ_0YS +ߛ)Ãl.hCvJ} դRDv]6h~Pn>M%1*qYz\+^׻&8-i/pϿ` b$j +}Ѝ` +wTz4T Bi;z {p,@R( $H`Px~񔂋J<]QAd^a̷"蠭Bbw}*9{cg֌=\WٽW5;ݼO(ˏWlk B>G )yT/Ȭ#{1BuH)Gf$hۀKO/?kƜ-)s#B&At1u\j9|- + ={]c:Az)4|ب_ŻQ#YMyx}"HL_#6ڞa8e3X "ZD1}c6*fuGʱJ.aHiŮGMAbe8T} f¨v؄KR KSIg{:%yf2۾:螹MAPzN `%)C W[$_F_I.#e6؟hdC+b + ͐/HUqak" {@RMڬrzkezPP>j'5,oWLdQ1mӬ>/;p+0抓p[U7zYOau+bM]ҡzԚ+nL^E>4Mvb̰Zu5(o pkw{٤?!Ƞ6!הc̬kR~PBү +<`qkRN76Mw GafMڹaM$ u = ԮDvo+ǜ5ʥaߗ7Rݗ0d+ +tmH.1|(c)OMIXdUNP_Za9 bmq@v \k#H9ZPFYXuE'|oߒ+rBfRP6f휹; +FS)ZZ#9''F:9: E)VIPYvhFو} T:dS UfUd(Q6o; htrB kdm=x LS6"s( UY%e뉈N,Ikg=\Z +>g(AFX3@38F)z{}'FnL >`Ojv#E# Fey dnwFA@ +Ko)!ޒ9?p[qvΟ0BR2+Ufeo*b7#nW4 &%Pm +bH0@ɍ#@q"PIE$n3D?Dܽ# )uumٰšk@@%fI΂x]z!=,O#񆀂> )ǒ.rCQu}~ r`Ẏ( P+3'ѦOrdZ,~'7_i_Y+p@SX 6ArUm(|` %KQ}(gXN2Tī)$00yP vqYZ dԷ` +ϒ6i]MR٪~0,0Ƚs(|0P*& t(YoX^61頒 17+Pv2fHnI3Ѷ݆H yQ%s*z؛HOů +^'Pr{f&*f(& R9] \ DzY_ن1~OPwMy`M(LKՃD}!QZ -5#GJ(`uZÚwhȇkلڥT kHO[P;nRfQ>X4+Cc_TPia5_XZI簗ŎP!%!:?$Y_/ٺ +8< 2pzzفAY㍇=7Pgr˴@gbNUBZptyA![̚$^m{pXB.JKD VU݀Om\ņZ[޻<$zd6[c`j+  +ee͘鮒w_64M\G#Ӷ'vZZ^j-Pu8D2Y%2+@RNdi83?'/C-mPM,kے9骜Rsk6Sp&Q/c#%.\AOokt=̑ĩ=%޹ަ"pzL|ZwA:Naf YIZ($Zjiqr.[_m;ӮiyVYB깨e":w U@M@ %۠ D[҂`4g60ȚB5@7u9ib6YSBɛ0#\KM*3R][`Y89V-!>X Ti}kli,ؚ݇E!T6n&Q +;I+`}"tDhRHQf=K_~DxzNo9F֘)zFM.]{kHUJJHNNRQSx,O8?Vv>vˮ3!e@b#~zN6.Q\UmM??܃-rʑ=wڡδGlMtıOʂ,&K&g-N0S|UfSnK$z%;iVJ5OZw3k WpG=\;x9Utƕ I +*zD(Â- 6+lr1J~#TT6(  D캊6\Ep +QTb1U$=}^>7fpZZ W.ɝ4XZ\d6u Aii)YDk6Gd5x}9G k%MHS!7D.Qd.ukLC@s`89"V.<6ۋ1Ǣ:Pdr[WTzT8~wX̤iC4M๑, MF e+k4 JJ@HZӔ 90Fm5վj_݊s >@L(-AD@j +t=DH)']QkVX1v7Hy,/3AIol5zAǿ(9"~ʟ:Y)-BE"{&ݡ,C_"vhnoȱՔ3!=X%eݢ*Ug{ q6D%l7#H$Zj᎝1[ ~E]yg +Qr XaǮN* T'ȁGJPeM(̖*,z3*BQtbKnv(o>E`eC3隤f(0{ +P^=3pZkq2# IKحlZ}YbN R-@$&IN2H]zl{ J"h#d@y}`Y' i[OhoI&O1wIh]B,5H}Nr84 +V.(HNݨ.34OÁ|2TS5 7,t 3CäC p1%-36:r}4DrլF Q3\5^7訉8M-OAjH/mܦHZ[pֵ7ZPpVjY͕c3_xrtSe}{>\MY=vgKDNLoc~i61]Y$ t(^vbB"dE$%SczƢyS\p>d !r}l +hw}Ehd(AsC.%l(vDt ×kjlցu#V 0Ɓ7PC\"%@I1^_?ƴq0P9WZl7qpm?ҏ p,9ʆ4"8i!>`D> D׻xwd Y1_`6GL`wSUVxSSph@IW hlvS21n[ZHIo4YvDDQYgC-lk:w]C#1%!.J7>r钇Lfzc&hT0Q"%T `M8ƒݥ?hVwa)4QWQjD1n VdM3Xv5bD*1o/d#o9*AlB=55A;gw1Z MmN㚂b֣䟝quGR,կ"F k!2ܠ:FS ,q"M0:?ٕeCwI5قN'yi '[c|uc\ƢR:Z&,aٜ+6Z٤T V, +(պ>=ê~YQA0InDlQf=Fֲ+]:C,tY lj7wo2lirmmp|9A%6 ]k_Eh< Z2-xP̃t-lTV2<XWr=ӫEC<# :;=T[uV1)Z3+@g.P;FR[~Yo֏P{?|R!S$@٘tTP*o!zE릥8T>4me=b8J0,;dB`fQuD>^?37b)l؄N9蓄t[[ͨH|nw 㒵p;2!KHG:v+Nw*vU!+ː"n$sڨPɒwxTѵNWBnĻUD d]%?U +TURo5y]1oL#)`tRVI}BbR$l^Vg\GF& {?c&Uqг>hNbcw7c??_w/~>~~߾~?{㷷?:>Z.o~#7^Ɵ7uk_/ձc>c6OtÿQ/#\ow[}~ ZPS|[s2IuP;D"昧+<Ž\3o8}*XdNwF| mR] ;!lXoUd$ɰ¨~yQK5共Xs#QQ;hDY*7tcPyk+{2~q ?@s hn +FwY܈ C,dфoE451A!o~`SüX=vЪ]QÎ3D4SNѺ7i$7:JWP= =x>GgS1吨p?vdѣdzu[ /}~o~BʇYؿ7m+xiR4~>#q:GJ4AQg<'F5pw+Dф m4%/ߴf5.q{tc} '0qcߏؒhGwa<^˄!{ޥG|kVr;~A$7il{"n.h$Ϭ춖y; hlϨ_9;t1_'^^;Pl7)C:NO._>Fȧ@L{) ^Qz<[<vrr叿xJ<?v> 8Wsۍ~I]SQ{c>ùW38=wWXU@i~$}|" ,vÙj s=λG}7uvOWSzkz;}QʟCkN;U:G+HY ڮ#\y))垶J?szPwf^6@ogO1n)`zGI?;`"!j ȇV,绝;mӘcbcΌKP1 zRC/pگgy+{^MLjƱo?w|W|m4,9"Q,nOW]"h,%q91]AGNޯ-o>×EEgNіksI;Gg*pr0|vcxR䌯^gՋ=YL6ngn_yUs#EMPz_UdvxC_u<$Ɨhkϕ ++ͤc[l4P}]ʈFyz}Ju{n{)/~n4i?̹~}VwoW?__!L|ã4}-fiO}7SֹU>͞d^}ڝY7莶+)JM:p>e߷!j{Bz_gS8_?7 ƶDcҎ2"։0N"%~l댐Sڟ|4FtΒw^G^Q88tx g=hy-*Z8_O5Dk(WRC1g7XzUF6b=h bTS{z)Yr\Z=ߎ©aލҹ~z@ixzsL%{'gP{yMg+&P +T|i"lj t?#Y͝;݁ƈU~MN??#\셁 ;pe71fdGv2 չyL,RI(_jg!'J^ϸgNԹ~3u'D1 ~Av\8n^rRb_>[Z1q:ټ{xL2>]/ǸENp7^ Oϧ~i}QsI|2@96&{BH Nw<;/q<Y.:=U}'"E:iɴY^:Kb c G1^8v9>iD&``r`{iF)ȍ9% tk鄕*L;i t>#Pcsϑrxۉ6ű՟ckQdQ#7 ˌ>8)!^x"ow跻a{\'3: qc˹'|;83c>s + +g~m*P,=|]^:({Cc@6M#nNʻyrwTǹچ_>=u&*F8;+FL|W#ܘ˻d;T#k<#h$6nlEƯuBջH b~Y݅yH/Xoa#GN`sƽ)^9vw"(Wӈ9D]9]-kr<_(6ektֵRNGTN*`mF䏂 ZOdU_Q3^`6E5V<] zGH唠D=G&(K+}F-'dj{ILܑIhVSQceæy~Фg&,7o PI#"MZB/a_ƽO">4'lg?m`!^6qO +Zt/IZ riDE&gj1NQ1t6nq3+!ʁH;hdqewTP]ypr#X VNT?Dz`NƉ/ +d(g0 :f}Ju%W՘ ҹ:|O!AuWuvӁ,ɂxbvJʾ6ℋ.P6O$ $de묊WOc4w-xM"<ʮb%b $yb,}o;1l6CB{9g/vPJ{QkGݵOf-T4R M3f/B8]Eu.arg R?́}}|ofI'Yq1°QmF'K~%xR/T bAmOcٓ 컱=uT-rw'2iVy#%ec^<6DxU;;,W>4Rȱz?6 ;rbX"~ݘFޟ>Ls)h21( ߉'/=r/Y_n.(E zj>耜dPO& +8< 9'uKs#D떝3U$)W3 }ݳ6n%#M'Ĕ^ȉF({^ĖPfy;#.Cً^ߋA3#|)owXTO&eABEfgܔvgqˢ,5^4胰1B:'sݛbSjlwI wIr^̍A/z1)hK=%F莇|I~P;Ӿ3nv]Wq3 d7/`S&/s܄XOs1u ?tF(N ~F@eeZ5y!GlKneid#YKL#A`8#?e9W:(+ظɮ'BƳnp]DT1^3l7 5Gw}]ca'Syɡe|\O^^)>{H+`ʺ0~lK>ѹ?5-'75H{Q^ +0>}O~׀q16^nHʻ.'T*ܓaz>~`z\ 6tL4:Ie5FNR"2gƼ%7Zrƣ*@f3]a%P{;5]mN<9S"mD*XUQ|;_NA澄vh-ODaaO֪0`ia,[^jF\ўr6ldIiZj;($\;'>Ÿ:0ߞk9N_jxyq%IKӐ"}ObM;:^?[7$a| oם=?ِMȺFB2!2¸q~Mcy7_C>"~o&25Χ&i|+퀵*_>ɌY;~WbN\N;o-;N%XI>؍E1`TFc0bӈƲTHD' v S4{}y>#D<\;Ґu7ϴWma{x +mWo٧Xyso{z9Q3A|@y1R:V:3 e#~F/vgt.jE}brd'>,]ݙg(1>7uLܸ{grg{?U\~y^,`eݾ7'gdN2r;1mvjj8MS֦)}6^ >kzƿY %;O<9H8 mP3{ynʁ&Jbjtk\^9󢉟qF5Xts_UZp۵K2#$r[}gg÷Hs9vc>(i))͵!u pg~$Bp* g_Gءl +cg:ۿ"6UNŏ>VY*\8srN7+Wq^;:c=QlgޱBZ=\K}J|zac߰%>\7BNFc91Y)yITRc&GN!<8K0=I Wdh{c7n9R +Us?v( w7v_&i/9&70ީrm&l+JD'E6i'Dۍx⭥w,Gɘ.XSq.{]Oԓ?[=3U[U]sXy"_2eX ZkW&i*~+3~V4ADrm-D$$fК>4]4n>P3l ͬdBB\ +Jⵔπ/c'sqLpk7tPTWu|T)l.!rK!o˃XDqiMTL3d_)zA]x|XL[R ++uۣ> XS#M4WJE/^jRct [vHi-X^TJ)x4 2NP=c Ģ2qϔLKe3G癙D*N8H1B2X, .؜٥`&8qF(5%1 B‡2 NG5B~L{Mz^} r)*z(-ڽR}oJV!$Y=;(eaJ2-<2f`M t9ujJ&`!8GR!2. [rq!..؞"+&U腠F sjR VTqxkBDo2S~%%,Dfh4Z˜V!hT3F!h cۯdqk5,V7Z j .VN{ }m2}ŲBJn\SsGӨpѝ3k\#] D8G| 暅1I +I5t =/p+ncL*` zNe (ȣnL$qrM΢Qu-p_uXoGZ# JJ`PT r-ga'}W.jkX%I&ד&s d -x3[ɄdfOVŢE$e)DL0{jf%Dz*IOg#Xt; q1¦A(#+PCH ]&QHDY0R[aL=TpI}ZH8B8j>EmkuFxL Ir}L6^iinuiCh8:*7L,%g iB9z!(F݂{ۙk<{z"tYfbI.JpB>.Tٮl.4m mci4J 'Ub*l6ӑ-r=7f-IC-)&eAWuYh/x0ՍT)]:!WaCU&ԴI f#q wRdbVy"JWPBSgze6qꍦg(! u4dF̬\vQ,GYh25b-[ۅIxT,Kc% +ѥBL>]#R93mX +fk=apfisuV4ܴ=c *~-\7wIB'i{6!V̴8?Q&L̞Y}ҖrXž̴p^yN,0,4o@V.^-1`gq5BMg͏"ʎ\I@ o22 FE+0qqZ*D/*jˤ07+-}(>^a!z6M֗l K}¦JY~(m +-]5 t&.qM@GʹmeKCIVzdRVmȚnNQ$zke&f\?͵L?H!+h} +- m +5LEՀq؃H(6FsK^6{ TjA.B!2gRul|/] +џC],3j;eFL*WUj. &5B`ȴhPP菶.1p +hh7ze.Ba.iҕyǏp`Q(kCރ^MhתnfJD32#nāTcd!`3=݈(VCA%a؃PrCbs=/Ա2CVB1#|@fxnp^2T(ij,D\ců댔Xd%wPi+B; aeR3"zȅz,!.m.1F.% ;R3b'Qa!n҆tMaO,Rh_P%tFj"*+4(x[eZjL\D&UqMVrdNSb31fC}c1Q!.I#]br֯ 2M_38tTZD,8JL,(I^* a)&+FT|0 u2P.^!ejk [A‘b$S-".zE` $H]{Z+p r+tmޫ[#y+-6-O+ j T(TE +Kq6$#Dwm4n%B +K=ڭJܨ%k9 v+gCVbXIa.}ba[!UXjh +KZiV9 PI>(zŠb\2^oq2qЇ`bf"RX!Q]Ox^e+'lSp(`P! QX#[ohi)'%=•r|6^Ӄ6zЕ"Fr݆d]8oq.FX[˙wqٸBɒ̅X<^Pm21Ct+d[jwjuYWN?l W!5-ÁuU%^Sh5h+"Q[JSdBIb]EmtTԬ99 ̅L{B*`jhv[(BIk)78_Zx@(KZJz35B|NMmfRC vN(es֕ʞ~^Y{m2{+XjipV=nãL*>$Tn%ΊSŇ 52P].V, ThX[<͛, NaKUHQitڅ?<Ƈv{Rbݎdn-t +rw. n/Vo.ݖjNg[w4ӕ7F{WX(c\uZf~MK/탉ۇ-;Јx8 +b0((q5%Ade!,4\]O*j=J&d Q*py* `ۉI238h5OOlӕ7am64Je#~q.r|;!I_/\uB` +h[|?`s\ȻM(-a)cⶔށIto?6 +j9ו$OtfޙVC<`ZҾQbo_C8ZtUpxHU BW몥 àQ,`!:ڛI$%.VW'%t-)~XA=2zX–lh :P.BOlЃr{ҝOvKMyVKMVQ, FPo\an)f`Xje d]VaJC BJTFޥsÁGdCI5]a"-k*U!Xca#UȅX7CBU??8ω#vxSm7 +.pnSKb#zS3Wt#RƬQ0bI +4Z@K 9aě +JϛZ\k6*^\zqr5#Y^b+={9%&(z+c{ۻrH|Rj9-YGZ4X1XnMI.\n+YeCKlyO{`c;C_rwz(6%6K-Sj;G|ok; Y`i/= H>J>p'|ՋpmHGRGQ'M*Q^}(>o.8e!a 7K'N*?S'י𩵓ұo@b}ebjƱ1Ⱦ\B8p)d&fӾ'Տ Ɩᓚ'secY>hїqސ6B΄d%0Ik/%b] >F[h5Иx݂zԮ*Zr51YC ބG1bL}bqiJ^^kXoT.p mq2׎E~gnGeq"s:324c0RKFБ%#IľvC{gC: a ]1%T|D`Ӈ1/$VF\C{sC؀ā0o!A;ز dعwږ\wk`Br$W*%gDC1E^cKK-]#uXKؗJ\al({8KjoC{:m@s 4^HGٛP0)F TRv:pn aLoxefDF{Do;q0 _27)MoHD(5ZL|xH$ϣؚ|dH7ޛ x'_=8`KJqp dя fQ4~Χ|Nk 2U:N;GcF}*#9X`R{^cɺOB*(Lu\>l2uC c0X9OhEd|iLHP}ch f#le J9;d +G3~( \r$.q6Ef32A6Ėl/ʳVLo3lhp20esR$6u +X3 KJoOEc҆I̡wx_6Ix~xC}^Jߐz PrңFw.x7D# +F +F. ר޴ol:h4sy6(}7 Ny!aC2gMcKƂn:OйAg2IAA0WOT_ +K><RX.}m6t3aXސ^Fp!ؠA/.`Q sL֖}i[Zпѳ6_I8KGkn:y^ ĺ |*U6u +9Mm/D)? lRD6t W2 MFz J\<x<ϨA Wm$k%B](} c%nm##f!gt3\mQ[to+3T#[dp0RbKGգyC(x?lX;?ћ † QrUKWHT9Hr +4RqHn`{N.DG/:t#ӏF2v Dx6f!em1t5{1XX->tP .:w;,E Z㸬li| +؈B~!4PxLXpx'XK\ڦ)l޾9Lti {S6u#t,Kh}S2ɍ ClXڦEGئ䍟{Dzf#3郱Mk܀??Tk*4*G?s|0}`=܋Bv;?dt 1G՗K @f`=x|c5߀,kL\X*i&st6f<##33Sfұu*kOЙpuq"? t!2FM42Ogc.Gck~韠Atl:cLfT&r ` {L@ &,k $aAoⶐA*︾ }/eCt]4ODE c%hL7 {+>dO4lhp[%*S/%.g#x#X ? <#6a~lξٰ6HNrf t1R)]=t 1Z@܁ D4|S-uv j| 1Dkx:ۗq~놰I㦢9mp[Uo=_4V|rߖ94>UPϰ FR\/ + Y.>cN Wk zR .]EDu89?g!_BXS+ 0RoaS?a eTH@!pz(kBm$ Hg#[<t ְlJOK+m͏09{f106C_S^C Gr t'k'/p ]BY >&-N Ÿ a68L`f:xIQ!C Ialb|~"jj ̻)3Bz%n@$M#%i1#LBx&u2Y5>[\3 +j;il%vK/8=jGy"u=d 2Thm Gut +6k X[D|?lq!yxՓa]4.?-OcΈ8.Yu҂x-睃jkR:l,cq60'Z|GCd[D{#q+cR ~doN X7z.!#}PdcAg &9f9gbP?Ki 8|\th> +&q/g~A4lE&2Q9eYqAFlzh{X"]|)O@WtWl6j U%]rVJ֌|HzeS65WDKwgIt|x*QϦ) KKA7`T7x)UqaY.%}Ƥn2}܃_҅Qe\]u$W?xΉ &{? BMWO"+Gӡe[3CA/r}$ҟ ,ևb@{c}A6 G?#|p:埁o;cKr9g;gr K +Xφ 2iT-U;>Z?Sny-g_p8 +s'0>[1}'aOg|HPP^!/ יACM]2: @I̡_gv!؊9H7򩛿̃d36NaDo3t$/J DEL }.:,v;%l!UyˊJivG1U[YuUlx5ߟ\o |v&wuTd(0;Ljt. *=3󘜃є{D;]=֔:|zc`l rX?$H߂L8<#ĄMZ;5WtwÆ$ d81P>8fJx=PM^A'5LtOC'%q 6N "]49Ħ8$\Xp>3+|J|pp+Jn \SQ!|Z>8<ИLd:!< x47ě8蚼3N$j/ZR?̧L%<|Oh>)MSrU5oP0l {'oIfvsIdӹ-SɺsVdfSD6%\ݭl%lY1@(њGz?^ȮQev(*mt3LtrmO:`5S3b}КA)9lʦ6p͓IkRۿ O[P!~4 +}yJtItyd_EC:]KN +Ha$ 6 <8&m%VO|ud߁#csFT̗-$n0u& g{2-KEmyJxAAN{1wEX6 ?`tMx?uT c\6w,.jz!L<СHS%Udy[?%jbP3bbLr*oօD㍯]ˈ<)&P wcL`:q$;6* ho 61hkGLb$Ą0c>e2[wԵޏM6rG8dpЫTDm7K[Z!혮Ni4RlaRU, K_l*]~qlz R YgwώTɹtR >*/Я\r #$kޱ})*(c-ny#fp8]?G5~Gs˕&6nxDj{1g%?&r$(`sujz@!m@v֓a#pw4^O؇X;1;0[8bS0 O +̡7LNA,֥;F@\ o8X?8jN~ σ}`y[Dp&|"`  [[Ne +9=(~SX߈~`ӛ»G0}!i;fQ#E|S VoM\"~M~r mIPҚ& +w#13Q|:ZHgo'+w8F δ=\El|B.!bHО~Ɛ+~" VE8^FӀJDx|qZ$ZOQz5ǀ{sC/n~>p53תE +֮ou+VIlm$J^1`bWlx'܋Ba7sM̫Qa}G(Ldn[F!r?lgl +qY,_<%l$H.ypT)ir+hSۦ3f2"5rC@?C\ B %lUdLSRC ̀2`{>4iX:)sq8q#u$@})ؿ<#vaߴS =3S\H<_D`C/:CA /Pg`[)a!H"Z,dr:.DxH֭ x#^c V %KZ-YJ굔|^EՌr(1,00?fЁ4}`&Lv8/;宷КoHlVHHʱ|HZBqFEbkIɚՄ( '=#|㸆c=ƊE@?vez0':FˎSU3"@V}o}qEcq5⨠Cf*ģAoC EtyVTJ~CnSrU-+2}2:gtUNJګ +w!b:G:߀JlH~(>{L>sR'W!>?p:`Cǀ! ޤ!z` 1adk_4gc&9+pgP-Oқ_Y/4 &a<|9ByCaqK/⼈Q\/]z8!ɤoB_'2É e6EKVHV8 +lhD<4bdk<{c>Qxr@FI4\˵TYlG?HR|[zUdT9 3*f`E<!}\yL\H09D@ š|\xr7zD_P}QK@EZTU XuVR0eg,I-&0g! .i +!s5GM60ֵu7KSr T}k:o ]|ȂC<7쨴-&T殩TIswLKk njsB:}*x>J*~dߐp7N +wSJ&`lSsSz\`vaȆ07-ז-,;k6ikD9S*tϢJNQۧ @ +]sB11ࣣlގDyKs+ 5">}p> eUK&y _9*}4` tj*Փ5vw%Of UisL,o-gn-%7+U<]l#7?__$"vw'yx"mswC.ҥ̨}_@V4<&y<fT[ +:o &qc +edH"lZ j 13rQ Š{R1 Fvpހ8Q13i=2U>tOk_ g 7@e}1ĩ !Q@l99`fO sd=^z# +Z>b"}6Rǥ3nm$mO !rT߱W3aLnN +s z,)= w%f^O*>4M٨yMSZojIfFFU:|$]s +'A's7ҝ #"jNTṴ$c*䋀;0?5c6M{gð@fæ&tsmD2^5뒣R8?n2zw1Zڵ; +NgF8[s6-d$~Wx @vAo@TrkU;%g=.BSvR +Ѕ栶Y ?QN=Zj|Tt&ȳ_Ẃ)8mhm@msw΄XD%m"9LN/ OqsR*e]R0p¹S5w&kL6q<7. "8P\)7cӘ\: ~?'{%\)59.F[rp7jC|GTo'Z&R%g떰TF8  rswxYlh:vŧ4cP9l*~fA?6aI~`VkuLmR fbl֙\t99ƬâΓ;%AF녤I /t) /ܣq%roxk9xo}#[&cr; ǭ3%!4Q{l?Q{NN֜^&ꐞƶvdw˜ldr¶ʶTZ*Y| hJ7X#/ȉ_#%= qTďfӷN6%]zx>n|Жhe +A<`DW ҫ2GЏJ^ #*GR1c_,fۺFb_—gjW%i.ad!;pN2ƒG7Ř#e s +p +0kThUh0"i,m⚅jηLy~u$|\OzG[?VZJlyҁ;p?su9GZA\1i/f%p*32oI)oʦ枘xjǴ;ݢzK/bRuՊ9:_ԭmWEeX2}"u*ۺf{)SIW3yWw]pDž|s,YSU=_{t%ҵ鞯a^cs vNlӓlޱyRqE㜂3;nƔA  NԆΎ>>bO׳{0۟DDワm/;PCվ6v~#>%}/#Xv7tr0{re˽oT^.B sT c˙e:lSoKwdˉ] AѭH5u-Ֆ׋}XJn}rj5Įk=mߩoxE'?=C/ֳ;}B0Ï8r {1;e/TG"3=: \{]å0c6{ok׫3Rخ |D3_wi oD7=Yb%H?bgGO`rdQs|cdZW-¦FfA~a:/,c7=f["7Z"e;_=*+`޽Vٟ9z1|k2rOvp婟?(rzqɩt4/3է{=w][Lˁ;jU˔bpPIz"j(>c:l՛(wrsyG |l}Yh{Ȟ;Ğ͟z5#?+c'̙7j[9ԅ>ě:ɍ<΃*&qnď:*O>9S_OeO䰷R'9{_+ɎTOU}Z +?C]4xj%Lc c}=(rK;r̞'$wә9ęjǵ'*SՑqꭚ<}U}y0u?uYuyq=GzIm"Naϔ#onʾ\Z|o**:2ao+T]<:t"eC_VVxb+S\NwwlS;U6YYuv?N+oE>|x]p ,pqmg>L:O?rg>N}~E)dӏݹ7c{w]_^,~Fޞa`ݍ$xD_yHwIrzuͩj'[B4օݫ +lyQL1u?\p6qdr{kz;km`I'&۶|S>x:=PLsynϏW>=OLwQBlϹ]\PdwShM^7:>vM[;؃h~tL.[~# 3IG +UWA^tptX&;&UXJjU@wK5J'jww/NWQGYCtBk*tr+ >Rm+oSR?Dӣon1p/duq;OyUEPR7*Ish{Zica^n?;ӳھ~nRp3.nvCݢƐFjor?=.d>=g}pepgKmUo/sOO=XBن;+_-RVc@o#J5p;qwk) -V_*:?׾|ձ*޵Tg<^W?V>ZyXgcc{ͷk3l]"? q~w"aIKփ겇)[n'Vt܍/y3oe֍ܪ+7"T}~:Ο:ޙ?З?0?';ЋM;؏z_^duoнɯ{W3N.y'+Ku_6zlמYnRfWa__r}uz:bui ^\[-]5sFss}zɁЮM1w*(r#bϽ3"Ku]]zfLջŷD_Cq+زC˷\K,Sy./VO{9P{~ua#3[?R-,㶾 ̵aBţ ų4ݽӍ槧wWKܪs8wg*]_uו,bw*R5?ݾʼn*W'j<_x:QyM񝴪}*.ދ*=0ȒQ%gE[~6]OjRq+Fl͵ƶ,=Yл. S^,p~zxDv ѥ ^zͼw*6:?Xywkʭ?/aΔǻ\DL/]_jlT[s/1Q{3J1~] ij%UWʿGtzlũˉ/'TPQ{-J|iWL?HHƝXX3\UȭNQRtrZMF${;{=~*S_{1zŴHJnf7yg#H\{g͏=kݿB~{6.Vpp[]m/VoD37+ӷbwމ/t#|#K7>xU/g[OON.Ϳ]S5rŴ[Ձ+T{wwT_/ryuY?,2G~w%vk5sw7kA];80+zۭ|W8[=  Y`)[NbZ";\Xb._$1~++_(1H{-=:lYZ~g9ĄkNgU1\nU활si%g3vle޼q|yZK4lQJJ6os3n&UFxgdǑ%{F|v'Md%YɗL$SFK&KFK&HFH>C쾟I6Mx1+YP~ )>lddjdhP$cL$N'2A*5kDf Y}sʓ=_(_O(qǕSKj]/p9쵘c˛nTW_˨ͺߘrBFn<)u2kʮdUsBҚ]5T=6+>oeQmC&MWpW5/L5/2 FIIHJI1Q#L$-$9.81pQ˻zVܳ(w'7/l׫ |gj2o_Ȩl=V|jҋ[ΥW}9+qe/T"}\q|bŏ]/x=fF]wwXAˀD568yKٺ,=#[o^f_-̘n"3wdsS\m8mddXb7Fe%1 Do] DO4KbjJ& y{1T~E퉼ʊ9gs*/eV֞˪t.rٴ}gR*OM8t6rRŁŖeʯy GG5?t#8+z˞u:zKfp8z~x> [ @x^ \ #0Hҧ0scâJ"*A 0'DMw؁ "QDdFs(&?afw[w>}uSPG[71, +E.wM%$dcx"] +.]̩ya׵lcj\ͪ)jDuѭ-06]wZN} _Wp{RdsW7>˩Mqi +ST]Ɣͩ;cY<&/ol~꟯&MCsRʼ#]l߼lYM'/6՜r\k|6܅-Jn(mq λngȩk(l"w;',v-oA}hH2uY1NlH?F!vu⇁gn6$؍|g?{R眩}ܺ_M]Dc4 /}0OG`m2>1Xƚ#s%l25ZLFC&"#9GL.`K`#z-D?_swG5fN5lþ傞g{-ݵNnϻٝdnn鶰x7O;8L +jF^Ϗ%hMdĎ|~> +$4-gjǭDS\[Kd12pE'zqX4ۻ-z>0Wtv\pRn=^/qf.b7nd5zJ-kk.W]ܶc7c7p=@7_f6_Ӕx|o`Sh!3퉸Mcx4`g㐙 bi,LW (d0 +M]&)ιhª4dwMG6:4/`#NEwT\ئ:/p!rͷJ?imG2:%)si_Ib-ľL +~kd9 xD&c3Q7훈Y#c6Ǩk/d5;Y GG+rd:4ѫ߯nW@o~ac1oO\}asypn^ȩ=y3ݴ~xq^f[͂:&͖_l(%C-=DVK~8d? p[p?YwDu]nm~0za{l6iG!3b?H̯GB D |4CFZB&Dod +kOk~?znaªo'W-swK1\{Ki+n:<? +qW9Ik=sCyrKe ̨}z#`N-O3snόMϾ'Df,89hLo4}-д4++ n,,2|n ͹Yg]TLQ#EY׆/N0̾ppqaaC3S~a y)} +|ok,Ю]8vιSUĈ= 垧<}gpU|øT'}v}8 F9Esb4*Ashan Ugp9[Vpqd\y9U5-٭"w`escǭs9.,_@xx> Om[Ї7&O_-;SRu^wUwPThh~C` chMT44[RfyGsVD46ظYyP[x| Wuu]N~-;۽5򟮕H5UΣ:#bM +A'2WB}lo+S%7k^68aK`UsR6{yi7YX,FS1Ȏ*DKL,Msi5Un iǓ_uK4O7AQyqwL{x%KzKc8g1y!7垖twD}{O(-|E#=N!q6ӗ<; p7CSgKqŜZR}`BBo`xKXVp:A]}{UuOga =1&z*IkePzFc_@%A%c80ӷS9G]~ {rg +MyW@,FL/kA165pc6h"/zi '2_ſ 1~? +aޏ-x P~+~$> + Ѣ[wZ׿-.ePU)].F DFqM!}vo/|yVx6=lsNpcNzUfw. "QY(nhzmQNOQkIyxOjwJj*Yp[p ;hōd]WvJvwʟxL_9ni+IRL1H;'!B. +|mg-^:'j~!r-gޮԧ6?| +xZp^/מ*woY󤒷K4eREk$dZ/cw:$Yu~2YF=# h-d=]B4_M% +5ƷcO  +*dʠxYQY3upy>kuo +XŃ'ʁg9я +jC7_X)`uV|ŭJR Zj7{lE1\QxEYTy`y@CFufZ"o| |s|$}f9}i:j:?G sJr5y}87//{,-O@,E@QQ!yS+c|$nXd?-QlaNMӉ#>dOtT Z|kWfY)}^~io.T͹Cxї>1%BUn-Xzջwc/Oa/NνmԻ_2| [DtXp}rhXEi_y^GM9Th*cgBmpfn煕0]Ou+gؠ뗷KD.KqɢUgS]c褭\Z&k%g[>._$^_IH Rԙ KH]~P"j;gK>-OUnjuX}ݕ'  }"{륻?B]Qg"JڨU;m!Qh+d<8'B9F>\X͑X=85IE#d5'gЅh2E)!UgHюeZ;I?LA8y`UuԆ);8xhWH]%4`el 5Lžitk'r2U*N iB'6WI$?|-PG%)D]Zͷ, ̉_9Yb*O$!RQ U~KDKD+g,D~N(Pmm6g*j ~y? +~+rzRVmI[3^`_lϯn/Z~ip>݌aFK/c|?IIjOu],>* .~/}v n{_'sM;+x_8gI+߸mx 8 /OwtdgD~MfrAC8"'j`3,(|mHiTeVϦ6u>XFu<_brZ̙Fs3o.O$MbD8T] v>[Ĭ5U_$ԧ .<),we{>Am:đ} 4)Ln86e1ReHo75`?룃d?soT̩7J@·R=ub| 5qZ ߢwzQ:TB>ۅ62iC6L27֕m|V +uΧeugK?8@䲰9A%ilI/ԢL4YGGj''ͤ*LJ"6O^Uf#w p<4d<- O?}9 7#qH,@6h-KSl{0uk:zBw?sn*>W)5OoPc-rǂ&L~?\^DJj{Kytkkwɗ}sTUwzo/-3A%ת{B)Tɚ SѲEN}RHІWlml&zk%p@ +%210sj͡t_SLVSf)kɛf6ŌЋg+HM^VX]OtˏLNϣkOa'ҥ'Kw^Iޏ9VLmٙx2$ Z]IE9@4iZlV[zĆjzhbOOוD$hh&kѩu&\YZSED49HQuOb[hcY[]+^PU=A|})sD띣dONғX駫=oD]؍lN پOv[8︿@\kH%Q]VzޯM̥%'R;:!9m'R*Lh~$Lt0L%Ml[w{`\8O Zu'[N̡UU\nڄ+?Xtz h~jN4u6|0;&[͉dZh:.]+#z;e_ېI[ a5:|ШN׆:iʎN+CSj~㙊-`HpN|D~tu>[m?Ay k=DoҰ^s/|كeJtGf3AwlԁԾ=e PY]氮&Km4+zbR=Ў*\ Ѡ6l1YtՅTDp/wAnǛG\b(nc$Ц +z&kiʥԙ5FgהjnVh+fp,m$׹@{hic_!mPd9Ll%t2~=/e)s˝~Ǖ;?ķ{UB}Ѕ3rLV'Q]ceG&˒ usfk}Yk*1eV" )\%ၯS/]&8^< +4、;9/hy&Â~,LF)لh0rq~ِIbĬ6cE#h상 UĪ5&PJ|pz^:1p|b./@cM* .o}cOCR@3NP +s @{ 4ΓT'wie0g@ÌLB>j q [8 @lI0FAC(&lM,*{8?mni~ +I qbbsL|ix7|H5|-,A{4]MВa~Nk_7MK{fӨ3 SdkwŞTW#ÏN :t#yI(p_s2K/on zyj@D uc3GsٶvW*NM)(Fg.A8'M'7X.N`ؐTmО +m>rhEVpK@CM6$ *(<ХM%BG sgxLAkаg*pLY<6_[,XMmQll3lˌxЛLk#H>P!I&5qH#k$кnьJ4Cu?Z |‚jمwq~eT`4m\&71,L6 |lN'44\`Q':]# F^"95V:&C|:dJC&"}":Ehg՚q;&}&x0cf}eί;MjAц;樬-rԳ`8Ӄt\ lh0ɵ?vc*GZrYrtIBSx O:{q,cHy$oeAj Ӡ_ +tHPiU&Li`AnH+E ['л_{_'荇|1D-w'Hv S6l]`saњIxx|&H#&8JOc,pRv@Hlˌch68^UU?tYFiN|e)_w&  Gtu{3fJ9M)?X:qw|Cn0 (|- +LZ S' ] .06asjԚTm*bHq|h28#<}ք7S<O +y hK}uF2)Ƅan(gC`\{MXqύ?%p9#~TU\f N&=^J 4'ϖ&٭pn.nx>*ңcթTm*E93-:.g8(ZN1b6$UN>Sa +Q灶ymJԗ߲'?1S/9ė๡s/_{;;.C"+U&"'`2A؟R )ZD#:.COѡkMylK˕m-_υq̈́'j>tu)~}~qYU$zi yc9p5ŽPZt˥]$tw̺Yp&o$7l;/7=OSld.K'\t|̀hG @ʝ0Oa3Ʋٝ$^:5܁|||t^ ,Dyj W5 AG31cIb3؆W.|K/e=Q`|]oOsyl%|NXБ zg6wtD{s-34E5ط q@'xp`'.=0Nni;d\1-a:lџ7Et~|}9pYAs0Aǃ\i5hiJ-<5+-794=ք{Utyw|+1GWJ~\gM_TGn)z@o0HEoԇ\]q@[_o':NFxH1U@PYqdhTn}S|x*SuTmزCө'CNNRX-ə>=|i.X`}:6w`_ b*p'oNoi_$ܬJw0ЁyHWb?MY~uuݗK։`g.Е$i[VEk(uV(#sqB4e9iO47NAţ U_`q|T1:06*Mݓ▗JpWx\wcE8M[hqFx`?svcdM$x$FLMt,"Z~q%WQ=Vφ-iR'e18f-# eОtἫZ؏F1tցC(E\;֒d`gXxe^2fbgp ET5M҆ uFUoOxfU[̱ IF[ɛM<^Q1 4 bKJvϐgT3 v̎n|"Бv,5[S J=/_G">LW*Gb.\ rGX*09l3 !JF|$QEh(MU&r6S dа=R{j.<`$,!Yx}",OƊQѩz#ȇkqZX?݅m2_3P#k5k\ɵ^_|WyJ* +|-W>TM&1[#q)辍'UV8eT^`jy@zme4h'ܱ#,o=jHYlM{jv7EE: z.R?YC,?dg% c"5( +C m IL. +8#hPtp f xőL  RGd[՜n-x T`/r5'ĬNhxʑ9yX0?1`u~C # >0;M'ɜj*&Cޞ26ql |I\6d#8S [Q۟:;vhGH򙝵^GEY{ȫO*KFIeAjpۆ{1ݳ +;'$5=Wpi= +n a 'd[-;]k+sO`e:]\7 @K=*J.b}?EElHjM.q[/ù_rvgˆէóI"R`} srlE Z-{fkO*Kv<>Kuenpl-Z<3[=|Ҏmk;sH6! <ºWY]pe# +)[eFH0uY@:NZ%jlmeL-cy6|`/A{3J R8 4XM {~X +2m<د.y zךr b2a eX (n!AQqx!p +PSkN D%>@ N j, uG BU\5撱 l ⋦`|ro<~wPt"_'ta~]H}e})|zR?fd_8;ݼw:|pE&q]@˚!kΧvB`=ϒn&^`g 痀 +-I>0[ fNո%5_;EQwbtn =bCU6Wgõ8w\΁6YUGf8{RLj΄hU{gšb="ԁjpErók+K'$AV%irA)ڰXgTET2̄u[LX2M!q>/ mFau i2y s-5&d)Ϛ +qY}%yp?0cF)$އL^|ptDEݓ 6Bp]!%v1i0IKͥEVAфPmAO86uZړxix~f6kʃ*)_FMNXa1d=Ylݙ$okWRei2)-J|fq ܟ6`Nm=M늂C5C]kW}h6|\5 W={ )j8>p!cԁ_A*دW{XnǏGyVaq|OH8lpDd ggazl0e=lc'ak[bV\bcp_K=` +`Sɽ0 {3aqZ'SӒJcm{cLM_/O ǜxgy鰆 + !f'&#)N/y1%saO+O%|_cOʁe|E<" `m.i >r_`/lGEۭqBpl9a]v{q 10 +mw͓XJk7Mw=qT+N ܫ'R#aP^ǵ7>w +Yۍ%tN +0vX{3̇b񰏀jBb'w2%SӀ\UsM߂LO[ȫ gۯ}z&$S[ĭQVc_V݊jbOdfs+걢쵡گS͗SMl>&#߸} +]5؇)R̀U(6G؆ c\p izyr1ߍmT8·s&o5[8rwC[9~h-oe->Kȥ"u +9Q=V/^'\}/|jb&B| +RQyxEH"[& ֆJYx,EV1dT9-|k4ptYruP +%ɰJ@J0൚r(t]%eUA)(1DIӑǃ,JHX9}({Z2_-4P&࿿dPL="-2fZFCA еZP\X6sK(QA\fC(#k Dd (V,PM Ȩ2SOWtMgE^ HKvNQBij9P +3a!MjeeUjc.ڄX.>[td6D&Ȑ\(Wi Selyw( TIF2BAY&ydPE I_9 AɪT!C5߃Ve"t]Ypȅ@2Ud5 'EPͮ2Y#'wڠTm>r$ِ)ԗqꀅW%jxt9@5G$i@&dSkr1ţaMWwn/>uyE6 en'(+L@HhᢓudmņZA +#iRy [eV9e D% L1VcZ1BL)3".d*uZ y3t@E(uل,}(Te6b>1@Cdr,KRiGg2i)cdj̄<bC(W)<4G`dq0Ρt$֙Ҋ} Djy`9NrYC|}9g(- !K[ +m%5I +~#%Z\F'tC7eאQ/5)k}xasTD&,51B +lh0(abA>GL3jDʤZc."OGLЀRP,) +?k~ +cm&"بPcF\`岤YOr"Rؐ7lIƊCyBsYD L>o$o +rcp +%G(6'Hb1ZP^R0DG@6JA#_&! Z2e:"u2 fY :,FʭE2φ3al҅ 0-(/eY*.sHW/O0# ybH z#J.R\]*p&HU{`#Qi O( M5:P(鰆Ri0(<>qR %\Dp"YvN%ٸCqAEqdXbcEY`؀-R&o4-6<^yn*6+3SG>P6%x,A).2C戴>i #mCHoمP%kPZ f Pʮr}y6wP"cq ,5En %o\*>$I=+2 >= +}]($6Zq&R`yC@i:\\*5:/I[& Q N)'ᣱ]@$Hq܂v7`;C,pu*;K.؀93pr,!97H^Y_.vK^$rKR#$0/A +¼!'&Il K࣑<{{%H5wo%Hq}31N8蒺#(@AeXF rt/P|̀9I؆}#- ,]'FP^ e nci3@&91>2eg'mq~ x@.At4 +Azc=>݀|CA.l#)Ʉ<ۀV#g'qYGl軭F-d6ar 8:w?HayE<W+T|Eϕ]] + +crLd0^/Qe {qY |=AK ,$8<bQ0^|½BW&&bTds%~\ ȣ 5i>91_Y)>{\[ 6@jOg1%-d‘gca #yd/a-}'CN=3py& Mw; K WB+}!c>r} +|oȞ1B/2 }[ rHݕ`2t%3Wn,cl!f6X c>qJ !i/:1g^6!F32IBL #2PEo| &lfbV̿ی5/P 'kAZ!A^@Auk +'D<`j`~ #Bu΢"@0(-C>>p CC`͓7X؎XNX<)`,LY%kye, Ro g0YaP:݇F< o0'e32Q`q\4>>'?tlj,{qTh 4XP=+/O|T P&#m {2 BO , [ j3β`ITҦ#IsˑgGzpw +yz4tRV#7Av@X4.<-O>| +Rd#L-q m@zq\w4FӼr ش/c=LV?75^bN6G΍4dE#6| ZN'=€9 88&ÎaCA\:z>HJ.!L`i?Qtx"[g$aNa6HABŗ!9+,y9|εf- +(gKf-eC6,G(V& nH]mRXNk +k,]{mB{bpN`܂>~r%zOَ80Ut!qFYpC)i0 6qEsA|MMG+sqX55a-CfQN b̈#@Z*9%6DƀgL +F`)K<>#vA:˓s h|#C9;wZ `4@"6,"z.sgGU + +V0$:,`@j~pe +"0 %EDBI(o'F|}, dQ>Zs(ɀ.^A^_S[B3ɉm†B`읶J܋.M~&]$\AGFRcKw;ؐWAFQ`5j-ǀU:v6`+k3!}n,H1e;}Xl1jFZMhP$թ +*U@"eX&K\dB]tC藻 z*VˀuW0Xĥ795<7QC d- };!?lG)=b1XL xz 1 񂳁Snǘɰ Lv C=q䡡aE%DBTzX., _Q=WCgA,d/ 2^ax(O`|T.qOzH>W~DRˀz}VKAxu>޸ +TG<97H Z?3N +~u D2HA"$A6 Z#rgWKSAz[[ʘ?u`'M X 럷N~DU`2~(D0_Gm;'_+DZ{ݎZoM~PPO77:u$T ˆ5wK" bv~$p:P #֦D(lH9CtKYXzp\OB|$XްlKw2ĝWa +endstream endobj 59 0 obj <>stream +oXj1\s5pzA@ZȉTlv&&?ĴT +,鑶 {cTt"X0VЖAZxqoלEӘKi`F#^j6ȵEge +Dq `OX:ר1vżQd Ʒ0f`=et摠{ +|YX9vZ'J*/|=u:Oσ0X/W[2 zЧ\ RAz qYBJvvTr$6<=ۓHlC! +agbH"Oٟ6^V(ۅȃ vlq `bڰ 0NEԢ +PCsnA^K*qe|r5{Ȭ` V"Dpa?dlISQ0l *׻m GKr;E,,B$PLub +$P E%/v (`sC= @Pg`>Bm`IV5'/tO{αYKY .P`shčX8Br 6>^K_2lЋ qiylp{$N¼ PD,`up 6b@D 8,~P +6_6c4o{X!D؅)DtZ-`rVP 6) =\MlaЯk ^53QbO4Q΄,eSk#&M* +-ExB! 앀>p~$BK pSƀࡹK9vO= 6,A=?䄁5_"LU?Y-=v*d|N^Z^iл4@x[OCPWQPkWzbPGEܛsM̫A1G( <$o>+@ud,ٗCf K_c`KO(.g&֠~ `!O +wV-GlSq?l(RjTi]_6|Y3Ї l(` DjC>lCj@q#FXȹѸ#:@z\d#`J()]*tMo5})k2 ֟`p +ǖ82`Z IN*cuQ.D7't Gρ!/eA 8Kؿ k9 +aE5`m?BLP7D&,%Ѧʿկ6 +}M 7`d MhS{~>Pcxu ӣWsQp'Q3q"6a=8/^'؂?H_)iFS ax=^Q$dx&6Q !or´&j>ѥNW6h7q؆-ۉm(zƄ X15!g"w66ˆj4mr\xքQcw;Y;qJ#sFɋykHSBB|h*!Ϟ례;Z%ta(<:;󉠇a(}j44\(\ /&B mg? Ri +dr^6SP䮅!iCaӆX1dEAo{O;^(G/^)&C'G.#c)*W@r5NAxvK'r+i1(cldn hεqJJ#ArVRrݠлA@B/g߰f m( 2zYTyYxccǬG'eCA7!^yJ A֋Bj ZAس"k08Vq5j˜Üo[qg+}챥%^=drV1t/jK[mx/[jqFjFMwd"<6^K+?l8m1".DW;T S}P<* s%D ǰ PH&L?b+\SX&Wuj XX^Z3>ąBc+th&;xM|`-8:Ҡ"$UG>y}FQ tu<ׁNŹ9qȷөmZjFBTQv :Vc }BX֎`oAuQ~yk.`M/~5JX_Ac { >>Y)q*K!O@`6ebyh]աo"Ih<Ƞ8&N(c|9Di cKf<,;bRPdk:ڄv62j¥:ړNnRb# +>wW =`_X sc^ + +W.䑸,ӁOʶu}ua #!,98#<jŮ D~W^l#3Ch*?S Q8>w=ǹ81̯+7V=]w9f>`en䚾 LGƗm}n.mfa $3z9ʃ\?3~wWQ1җplL>2,ž7V=}.񾽌J= x>X׀e2e3l,9 +4~sQSﶋ `]qJ랰uƘ>yy,<hPnY*G2 ')yai,ApV6q'e1;m7A!%qK5.VMBu0f kخ~ B }~Ÿ/k(|ap{4G ֚!FCnOu.% u蓭° <^LkQHŠ  ViCgkAb )Oɔj%krF ,Q؊Eϭh;@fB/񸺐uOW}V!*v +_m}i47`msnbl n'm8EпV}X煞ǡ +ٽĺ (x$aJ}Qc%ĉ>yk`Mqpu)pֱ O/% .I@/_Gu%Xؠd3^C aMg왲'TϨ}t̋mxdWu~a Oc^nWTl" yCy:T}P; +cZ";p:hVbd.߅!?uI!5;mztfA*i`3H%VF5K0"~zBkK!@_Æ=܀{`m}ɀJEd.Ы:qzw`ֽJUfʶ}{X[Q3٬%tj~aF.X~#k_vUcYEN a[ؓ 98(g1p\"f#¦QIiלdd~=jzoTCtK_Mf}:@e{x-GůΊ4fu^ 6n+I$&@_]E l&<]!zMiV\kL+*Ir#alD +)qLx%X3[`_T0D؞zdf՘nHy.UԖ}dL9K7@2; 0I`- <g"[q/ +|en,ÞndTZ~:0E_٤֒dr^xпN&T8R;a}s쩙{I^Z>~|.2:XX<[uJ(BuN Ian B6Q61M;?+yݬY8 83?hU+5`;E U^>[k4k9ܶv#ugn:U~a㻵G茯tHF=_mPqhlX"PCe;OIZ0WzP̕Md-ݮ-$=5l2ϩSɢMoҿUrft{A{o#],[MTU(xgN?D'%OO߫5dkI (qBeڕEW[ M6P¤uM瘜n잹Lk/EX:GF>ss`6iQsNTw3FAcH'~cn~4w;i^}&o,9/|Xm¤wS=* 1DŽq 1F_Vdkz bSOrܬ0uTj2>6 忤%X +r5=AG]G}}և@/K(f_8&>$n%kb{Fc=G>LnB*[ʫM^hij sU +ł^1:΢\pz ԡjt蔬HP"kJK^cAnDtS(niAZ0Wb- +:D[o"Ft@"(8+9<ЏYN3]4p)=˔Y2o? +8BfE@~2e*z,>R_au=)}$;|`wN(Ŕ2df ]_(ķiNC1w +tТͦgͯZݏ䑏z(ez}kVtgJ{0U/0]"&DRG|V]riltxQgN5}4v2oP940TCg/5M.*uF**/?~yI_?Z˻]M3C>yٿcyv 4%Ym齚bbCE&evu'ŷ[NCUiOQc4&T_]Հ,fF}v}*   +>c|jc{3ّgZӤ^qWbuݒR[k[)(l.iɼ2g_ g}O *_6[V8Ip~0D1O{Dfk QyM)aIyqqѤJRR|}eN>$zوꔸ쬨,yƆ=xm65!UT%ׄ{}>o?MȲ_U_? |şjB{ƈ>Uѯz%̍>}2F:*^Q>o27~UyQR[uD|Xn)C>y/!6saAˆӢ'Dž;ȻuɇF vsQUERcSqSu?;*F8X+jYӯMlkIۈ}/-:n%XY5&]kNhϖ0Cj^2*wW9 |0gQ .ZgY|:Dݏpy<1"5*7ֲ)-xup߬I$YΈzsy'>:$рI&M3т⾖ AwCͪ99d$b MK"D_CJm[ .1mYxxFظzț5[ӫ +ȗ%αJw˜"c=NtD ?:[$5WDe&kQe=̍Ȓ+(~~.5I%1t7Ϩ;q 姠 +bbCC*QCκo9]7.YO5I ʱlaޝ6U +*+.ׇf8U]ZLjJ{uMaMG{P|w`ǚ؀j2b(賍QSOfGJ>>ho zwm_GkJ=ӚpݘC}/x-C~͆u~ :u[j(Ұ0l:J;u?ֵ1qCל^ַmzO$MwLܲɰ!h}-6=6Mjs+7n7gipb~N51CWΊV~$|qmD:Q-+ pE%&5'%:FDUz'fV6Ǧ{.lCU|)#ɹ&"Ѷ:6f[8J*z {rc.&7ԅ'Ȋa~Bwu9 +zQ 7͋9Ցw566-֫?AՏlOu}39=C;uBcgk,TZ]V^bHS-]7"A-TǏ]N;{%+r|U[*O:G>ҍjlq8W*ا" J²Q* j=QhY32Y%Sr9I]dn]TpW{E{uCӡHoszS4Y0 '"v"G(OlVT!6nKST&6*J5'ԲJSt:;E|^'zDD_ALsVqOUŇ&M/u ] 8w aU.W(=knz:䣛iuTUm!fx#3血_=v.a2b~!)ѐC˧'so!&SeG*.'f'JZDl3$T:ۭ[ ZQoÂ-MEf)|1.;LjJrXDꐄ^1Eƽ^}i$eվ9,rHcۥ`4nZM_t1]&c=9w +Z9_6j}CnVLreR Kf Db1=䉙,b bvCbIUp_Fr6/B}=!waK3[1WjzExD^/rDy1*S)MC(#9G)t/,u OpFUyŵ^ z,Ct$>dWJŁ"nǛ{E6#6R%V,W ֮[I&9S첅 +Tb21C"FQdB#3UG5$>ظYHe#_D>,.~w%*[^u#^[ԋȼǯ]#y%Asrpxks/'Km1[Q n}k|X9g%{ޕ + tW w`1f4u21Zf2i1{Zb9AT78'[,ڮf{D8gu~rLb0XOB=+ 69E}[eё%-ϩ98Upxsܩ7!&B05D7}ߏ/W?F>aƣok$gV rخ^ rbc1_#,b0[ +C.QM%N]%3X~$;gYʩ3'(Ggrc/\kpOvVeI wxD?-p>wyRsWnѯ]BFVFUzK3tYT!5YռnT1ٰ^-38.Ϙ_)|0c#X9eIlbڨ<iz#N~v4}ST'=ٖ|ز)U + x%^Qm]THx>%a:akXk֟Hrsfsp?_ΌGwh)t&{I8&%11k <:q?t4 +D5qVb +>JE8bo&@3g~w _헞/߸ž-pM(pK)/qNz^WRX(T##*׬l(߳쿌鈟GN@F&f. C4y/$fZFL,6n-1[ ZɅu(nWpK$P\*CE_lɈD9&)ʕ)@L~֖7n~玨_[KL̖JztJpMc'o!E̙9i#1sbt~&Bn"=9bvl9J.yS5WC{j_{{zkgF;ԾwW?Tf T9V;$;%_)Nʃp}S`G)FʣQʏQ ]"6ƔxD" N/:F9G;Eki,d.T[yr, #9pxhd +1Kf61gJbδ ļeĊ[ÂZH[L,y5b܃ FIj9 ~Y+ ʞ{5qO()pK@5>Mc2*:zĺ2Z?8m1?c)?p̓7$4BnbބeĜ Qn^EM[Nb==_iB_""o8E%'3gr.r ;z/`/=bk \c8Ֆ;Du;ÜwLqJhO~[oj=wul_+t9tYĐмLم蹅d4ScƘ%Ĭkѵm&(TA1GlB,P$w$xbDl2{*'YJ&pRjе=,u>F5QQSQ_}6>B-{Δ5 C)+Oȏ^i.ǙIbO~Mf>!?n%ʇh&l@ys+1Onp1I,bA,gM,Uw% lj/jvJbqN)OU1AO@g}k{&7Lwgj-D<!_]Q-3gÿ]GbUMP@ !?r1 QD±9}ΔC׷=a 1c"cjBn&KuzsbѦҽRbVv nsU8eO;_xM }uGdkWi#|eklB?%W:$&G轸Nha ?K84Z\p~̔U\lldPN#-" &]h-n i7G۬Rm7Ik>W(wƼFXhtkcBwCR_Cj甮*G%EjqKv[&/q8LFׂU/*"MtĜ(W(rQL4\?g1o>b21>`M,|XJlv)u/{~_m[;zy ~Y^\䍛WsNn])2nw Im0:,9,sih䦬%zl9ZݚX݌XʈXp/yסԼ-;'Ersz@b=Kl=Lvsh*{ngY= +;Ր}AĩޱIo|bO\K0PRZQa_e_u6m4I6O%q10˙ 2Gyb(x(3'#,&(!||Ƚ^*=VTz̭ؓ9"f陶ӥbˏǭ:Pϩ~|{? +> |89`] ]9Fه:D V9'Օ:ő_ZTKg@渟yikug ߶*1_xmFяbw^Np0lNTJԽ? eϿnO +CϦ>qqQA9W*dgu!0Ӧ]f#bbrub'~qbVXVXRX( ɀ;.<Ӷx/VT8C>Δɼf+o߬iqj%վm- 8ڨ37 aE +?vF_^XUnQ4h2@ ] Kye[ r vL34"nȀ:/ԅ_1ZwN_3g|3z3\,:n{9-٢N.ń$i}"Oԭ',]c2_&z=j_])<?soah Kۢ˩̩prt r=Wvփ~ gjÝi/V~yS3QٲRW#%c$ӚכvEæ h E<,ym1k7&-/MYƚXM@l5N1߁x2Ν2nB#*8R5ha7wRc^p ";x]ڻW #gmYh`P hŔm"C_%_* yDb{ƂnS6i^ ,0-Ľi7^x']@LmĢ]b[#{WNs│Vs|?{Su\ԙJ;7%C`;V?slyΞuyKt9-AO'`p/FBBHG^ɷ ?d7 o!-n9ž0c[OJ/f_FfuRW? ?D9S>p>{¢0׏f'v~#T_N9P)k$s:1"Tw/ܨoC:(7h^CYPܹг0AAa;mY-ɇAW*Nq8eל^jf 8H=d;kbfj RrR$K:i7sM%Ia%^n quEMܣ{X4g+Ѳ>g\"ʢ6{ b;! ,흫[pgo3|k@]zwSޣ⃙?xSfyfGϽd<}AUMBm>H +#B$6KLehyM؂ͼṬ-7>UAK=}>ԵA UfoJVCjp{{,usyɮM&)3">xʍsT|t~s6z178н9t5呲偑iω)FoN)qnKLg yA!{|2|BުeU#fw pkֵC>]*Ej$-7wKNj/B>b[J|MFߛx?8߸H\n圩 ѱMk^[AE%7!z%MȔg4|$≉Vo!&"3_pqT]l*h7Hɻwv/u'uc1m>|A!gD}q\ۣdexKS/dO|m3]|F՜KAmcBMY]Sؿs7\4P- xΤQBraEc6h,s +hQ9G\_F]LOrWqj=`s* +܆Cl߱ԹIR=wnnֱ yh /a៤n5T!.mnnpR3QJJ_55UM[HݮJhʚڭ^432zʞӧLdԥV [|8^1[}Lxhw*1Z ?2?dy)zLD?}4>b IIk|%) [ P5U0|~Ơ޵;r- &6,W;Kgd|I P[ cfmf/N3ؾl%w"ui,e-=%N@h + VZpGgk.XYc<>9wBFTɂ.aQݙ2}+ +I @!;BbUSq!nDq7\iiv+6W~g1#:I%U3״]V{wCwk? '^EN.}BXlOv|AaiڥOo[uץ9W' +Ӹ q^)c}UW}sg ̰X.][>b~/ -Z՚[k;/CxAw|鰳sbX7^ρ>OngE?=lg(zU,^ EyUş< :G.e6sO.NfL1Ey| 3}q:{^#k&i -{47oxzxߌ3DX'lių +1[|{9.kfG W^3:Wi~ Vi1[U~sPm/# +w:V;^,;5ځܵ|^ߋ=Eg2&cJp_<Q4gė_%V 1W;n0woF$[y֯7m/vB7zF't9?>v mp\1/3"uNSj)5&G1Shv/ýQxGoCk7E{⢊<38 ow3|w|ww1\ws]uj>O; jaֺtk8K.8ZgLܹkf;o&Pi/iB+d[5ԁQai6R`lSSU/W:Ov=, +]C!jU;Q{pӐOn=|a7W̠Ig M7՗=|BͅE,OX=㟭8S]B˸{Yvf5 3Yj#Kl_c먙;zfim,@~5K3y#זI-Z$XjF4FX!X cұkkoa2]냵w.^nGA_s9d d~Z5 +ew׉^ +o +} ~*bfpx.ƛ0w'hxC>,o$_;(>$g|G9aB!p9V/."slQB^X>xIHk2Ț+K//v g~%s[iOs@eq[x7/۴/~>x>&F@?gn/U]ϕ5OJmO}]rWf͂e5lYZg/͞,WҸ{ 5}4>1h¿`FZ@sN|lNﯗz{_@ͳ*犧{W`b)e +43_镫O 򕗪pgon{b&o} PίWѵV8| ݹ骭P_}wO/|{~ݬ+93'(G3wLbk֛VmЬ1_e.o4`DB^-;>AzZQ-h0}+cŁBvDc_YÅtwYOsCH cЦ +fk$4:"F-`vm7M bjh@4zgB{Yе~Fl+[W-n;nN~tϟKQgƯ>.}JW*BIlreוl߰C%tK b\^}EO}ҍ,O<r\Xb=79AS\%W? =AF8ʾ^2_u@یk~Zt`+ +,βBdBlrҎ: +ǜ,= ԈО +jyݯ=Qh(pK/9I# o3yT}%t頩ĵFgp:l/΁Prʆ[+Ťjr=YպіF X3V|f|]r ɴId+OO:XczX21N[c %C Thqg@0Flh݁[DQIՎ1և  <;kwI^}G,8H,VoO8z+Q"B61Dn'".(g椳Q319Y_'9~2XQ6,G0eX Ќ:)t$hg7L沺}t vJ Vѷ vz;'߾w!y-b΋'/c0:eBr]ӄ1UNvn=ٴ`fO6(Jgpc>,f9Fm}4? Rh V:>Ԝ?xJNq*-nu_Ɇ/]X6?|?% Ǘ]Gq|Iܡ>Z Na/bf9`s$^%/hBydp0Rg6T4Vgk)u*x.R^\F,Z^U͕jeJ N&9uw|Y}4C{b*t0 O㍇'"Fa 8v-Mf(Dʐ úq*vkY~VQ,OwLxnV:X]:##4'A^tBғB +>uhts5Rf3G<?(v}zPz>!e&n9|/;9Kig[OF(l|hs.$՚ĵHrXͳ[a:ͦe5{]y' ҂Ow+$UNJ\lݲC=!/. ,wh ]vBǗk}Bw1M9wxr)БY<{%&͖{][ =BF#4pLC!j,tŲ N.m}l1٘{|:j0 O^7#& a>8Ί'NSNEjl+%<_Y>(wρu҅g:G1‚6BT3Y{G:x>p44ńB{YɱCnރT g EfS!`챘1||.Ǜ 93:v]ߓQ󂙅ኇf _֛bvo;̑5#t}C6脢'B׹vCnBw{wC^=Q +Br=lJ.̣q9owꕷʽ`g~|i#n,[6 +/]AQJl/O:`0ӊHl4̗+)c̖bjbkՌډ +`I,/;zIiwMBū?b):א9ÐR?ӡXK oO,qr+-ww;ޘqlr0H!6{]TX{rt+aw?o0xWx|QSv?jD=γ܊^du Es(4 LB~Rpjwz1.KO/@"#^ZkIG{K`3_>L@ ++T Gqɮ5j^<ˡ=$1N3Ԅ1y:Cc7^܅3xG\g>[K\Ω;^m?^%\/a5ŅbťEӝwCoN2ܼ{H{/˅;ǂ9}:1s:z#@pOk\2Xo7g-BbW5߉aiu&䍑Y*tWCWc-4ġ,;P.0lYi#̡m)7فqB%ҴEG"d,8cƱ%-,T5?:LHZJ|+WOC?{/[J͸ј8M͓"-s ?U>ok^hbgM̖)`g AR?ݨu\*&VmrFMAlxҥgkvcƵbXx +VCzJAL&)4F +>pPg .jJVݤ8B\|Ibvm_*b]lh54h2X%FiYG sA )0 +Zˢf8ʁx,QO$d n >4IH-S::̺)ꑓ 6J8+u7rde ,g.LZjtf|5^wͅeЬy4Fۘi0F;Jɴ3O<2j|3IN CRRlggM;J_3Gf(u NWY<#|[veN!bF#87d2_VhG]z<1癞3հo1jJ8Ñ~wzQy]w]Н7^ًW +bjV4%o>4= }x)1,/7oGˍs)`A:LU4N,zh ؓǩ u&^Kg{%BQe9kO,?Y#BL2jjY| 1G|24fRmrHHhO8Ek)Ƥ ][ĝ `>}bV,VnlP_T[L̶֙}8{^)Nͤ.ITrm;!6VQ,[;]H<2 $#_{G/5; VI{3+; df*0D|1&Lvv@k(hA<ƬNBF{=/}>xk64ه\Mw^dV;Agb/ O:`ǂGg=Z|w=DĞ''k`sOBP;S5`bKguB.)ǔ x4jaȨt2u9MwJ-DXgAg +Prg~vo,/ F;8c`+ǫIc"S +G(ZA1VJ4`w1, 5ꝃkv6]F'cn3r{c9Oxc} ,k&.G=oenfȵOm{zNJ2҇vr "~\[L,<s)w`:M}dY*0 ΊyJ!Yp"-U#;>}:@N!Ʃ`+Y![p|TW]YB`jĤs<8WeRʵ#>YX0׈~w=!j<@FuBTH> ‛&4:As9}Doa;'dUOpkoaOV+Ky%2I󹬖SV\sybgA#=2F;+wvVYg+u7ת cu3vWjh֜^W=/TgDz쭟l&^CҐ=x&o$ײ\AӭrBǧփO0ϡZKjZ8_^ +.:Kn/xii ϰe4$V˚&v@=/|q0bF!#)V\X, RY<25v*Vg᝵KTbG8&Ngص&>;kS挟EP㪾pb5v2|  {ў;Xyu6MRO{c~\3j_sbIa~A戝B?c4ӭ Qo _/G, 1>f>8br)1Cv ,g=OV|&~:7vlrZ#P.PX +&pCb(k~C@L0xX.\N}a`\o0ꐇMWV>ڄ\*`ǃΏXm&2m_}J?~#`,1 .'!ā.).=}!&RB;փe8T vx"|Hóiв|{ +A?gi/{OUhbg^'1,rZS>-ȇ7u}vϒ{fkxhxct⽍ĵŞKB8c+?P"w?wƷUse xv|V\[nHk,DY5gy#/F\ۇj,5*./[?.h3$om7&YJ)qࠪ +G~=|%^\g̶ #A_r0f[݅O\<83&g*89Gm+BF fKJ% {th1(}`JO7'>l!\Wԣ NL\?ZG*bR+'r=۬FCOE"T'ߙ^Z5\o{-ZY+b6L!8oâ +GQ?_Ybkno&][|\pw}HbJXiJ,NVuK (wTڛ@݋/XLztZ?1$0U7&[zVȇ]`9xJEb9_`OL,#JN.PoGF)a^Zzi0g"Ĩl[%Kῲڦ N*`d١)7#6\ƉIi9_0˫ ql/js`X<mϡz*[@`@Ϸ),W e|3u+܁Ξ׈3@gJ%,rm7MwVӞN +L|֩~glʑ[g1Nr\.0Jo8lZ*`‰,4MY)U<5i*5]]%v~]jzo,ko)܌;bYQ3~گb1kL*sk.:?̵|;Z̢6cQ6JY< Il9Ш|;5D +Y>*U3zn l\ޔf'.WGuL>`5_CqѨMP#O~lVN!c]3sљ*yuWB=3[jq~r 37H'V8Й#S:8HqWSF'0'٭Vsmzxb5~{q^3ay(ָT{>e>8W`Ţ̮֘]3V / h*GB;;$σ>yJ8+e9lJO ),YvݎʰOQ: :mG//g+` _r;fP\=KGfXW][$4:"s/moz"Vh8ړn׿t;Oi_svlŁE)Myyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy7ootОѶѶ\h'Ǐb_[',0!,&: >y3}M$Zdƙuغ_Oxf^8s/}>wQWh>CV\T>;8C>$.0R\8BbG~NwJg|03>$2' 32=`I724rrFO1:c4 +F%q +F!a X#/lI}VlXȗOɖ1t(er]dog?r%Bl&Y0n8%RE0nb)82ZNpRqx<iQJȫf:Qcl̚jEܞSŪD+.{/g!{02dewLW +gI٭S{1}nZ(5D[@UErY'&q)Gc'` G(;d",x҉>PsHlC7G`j Ǥ؂IR'P( ={?| !w FO!*ra)VwFo ,Njp88 wOY[׀Tk9zptU4J/ƘkLpc?f1\/R0Z +!)jx!*gX2/67SɨsQt={5+)jVTC^3d Un$rG؏lÇ%[S@"4&ZCvdlGNɖtIu&l/~1.s!>ΐR9k8o9 ! !YV$c+g¨14 JH q,5Q̲d0C-8+A()6JaP~vR}i!m'd1"_j@Dm3I؇喻[1(ed$Q:h,93Fs{gCfPoљ4V`)%“GҘ Fb}QH+)kU`#|>V`͐dc-r ^C4m$'|g@RbPQ% χ +f$ƙRho +'+yv1>5(B#RG*Evz5B2?c۩) jTj1UcZ14kJGi rgǖ>tOJPDKj@)i\}} 11U%]WS0ߋQC酆V^C|C&sGd4|2]*WbDHf Ʌ0J;)蟍]M,G!rP:N ?EY4VJ#GNZSB474FNJzf9m cC q9iCQ +028YN@̶% MU7QI WUȂFv/aa> +14 +cp]ָj -5̞|o7$Ah|> ܂X^+ BX $o!=S0)y)`rS4JI)"H@CIvW F+ ͳ,!A,DjD-1!3m0vH3lK`'D4OdFmЌ$-\K4Fq|)/蜩et e}ʋKԲ3 eCbhr[U+&(+ɩu Be9@[0$CZ!{؞bzjD!]t[Oe\@,H2^7{Fq= f/a,.gBzVKYCr ry<fc̀Dh!u~cKFD@V$1|Ƣ9 p)VBt(RIG..PJ.-$I+Rekya'0ڮDlNOqV!$ 2Fi?2@5*ǎFH}78Qby6 s=C6}~~6 FGL,~#=$y,ǥ9\SbX5|-13#4Zl Irv-}<_8p%'@-=$g6T@rZBh.$Hh(_&[jƉ)ƂU;! #QT + w(6UHIDdy ZcׄTakTI/ky=֑{EޏQ d!>^ 5Rb_`b>bJ,K!MFZ\ eT~r(1sIw+ClH@c\HXJALR&f= V"lZ4$AÀW:819)}&32>9dxd,V >  y;9Ƒd:_PfC1_f7BI>>y5d[`| [c`Ubr~ vQ}Y_d_)`Lz'fy !CLf$"m)aS$%~aC4Ns^Y$ežG6ǚZ,G$ ,LPj$,!)˔ kYr=&R24!;kK^/I2d_bK &oklv  +B$yJC#(ANXYI8Q!cy5$՚P:?hF}!f֐DxNl4kCaKZcǢo =KF>rd,V@F +2w֑?P3 Wtܹ<7| cq:#!Nj$pbB">mȧ o=u;Kxޓ1m&rQoz}H 4C!y\K cK iD^dH7I.fM|wyoa+ơI%-BWvӍRՐ;#JF!Åep R݇kI$w?NroewN:L9‘kw7IOvʝw\ eb3dq%uR%(}Δr'ݽ2`zS +k'y7Ԝ~,Mf Ŗˬnd9v{[䉤ʭتw;lr\X`ubm#emByp1 .;3'MRXT8ɚ$!ߢ\'3uK?N!nG0G_rpH !!4z!9I96r@YF/ozEYLE~|IOR UIs AOwcr?!2+ )GHCXLuRY|dbrXH"~kˁӻ B*.){Q,蟁(gM^uh/oT^gx+xb}Vrj'u!V$QUZ?Z}-$7m+B.^Gdyz)J@Z!ȁ qcST>z"^@fZ.@\.XN>$ 9^1$ˮt 2D[@:Hf=2=^t ~3Я^!eRv Mnئ>J̷OϮ}BrF +, |qːy5QcoJevHV\,yVD+7WX][2Qcᵑc^tlxQݜIj<PT]^>odX + +?lp,Pt,ꝅD +MW9?@Έi]+Ѭ?5K=8M$8 +M8J!W,bJm}Kx#@ @5kb]}@2ߦL="J_wi^Gcd:a'"ؚJ%Mok+Ng5k&@v9(ک_dQ5b@&Lu cLd;I1GP_^jZoӱVu;HjiTzvo\24e|-!^8g"\<^e+sNM&Ekr(oaEe?aXx G +#b'A + =o/S*,ROS^zrxTzu|(@$ + u)Vcy)C!u|ǽ]/vĄ`9)l#s8c0"E.Xiq%D3j'Ħa$wrb~̈́PȝwA>1T a?dǂ_zoe5ve깒ܑS󹎇[_ d׬|cA!܆ A켷Clt IT}B5";I=׾6֒}]=$V}{7(f:>"&!g,f£Ή^E 3ߥ2HlMZEu:.$ݏFpEz)BzDlY TɤO><s[I%gJCΘQ3P j# /.%_ +߉Fېl?syKl9U +GD!'B\Xc$[n#\Dtq?R0h||T s" a<(q{3Ed4I^Ptfr) =RVY84P-US&E8,k2IawNGw|{fQbDodHH=7An|w."mIZCO.g%'B/M+o]^=Os@F]y`O™Q;]=uk=/YN%ߪTXNhv̈́/p/\/7zoCޥ˷\g ߀+/oBE'%C7s&Ր<4=,=7@Fui G@RʣL.Ci|N` NI[c0evi)bk[I}l? ;=ʁ I.o\DJ#7!yk\ޘ`A6>dFE(4"X#c*BG_뚉ڑlNoٹdw1#r?w[EĒ1{NļU5L$t bDHAM L0X{$ytȝ{xkhXo:Qq@w4{6{hvmۯ^V]0_N@o=,$;L #<zˁLy!eB/w:ಁvT>t? .hxPH#_SPHo!VVJ$?@dI(hNiyo+Eupsxz䙐P=o__m"=:Q ۜJҍ WWI_C~{(T˺*ԁoqm6.|E-_l"\qOĘ P.n "M_qqւS=a煖[lXI=3 GL?6Q->@v4;gsbبp>}F3h,H#D2S68+}BzVh|=0*;P;U]zk\vj\}5R8"-@YS=Qsm5|FCbÇTۨVH8ˑ I^g6[7E^Y +EHi \ĹWơckp +ychڴA#Tk'L=\υ4w7 l0u;~|Z9r+3/Nm0|O+w#w=|8]yHVZ:7^"DE|]]z <)({P5^h!=۪ ~C͹冂iY,k.oU+/<t{+rRB;q{>\sKjn-%U"(ŊQn}@)ΕnD#wB݀z=> J7K g_B%BZD!΁.0W7evDdy[/dы~;r兆ˍ(9\15P:-~3`zJkpx}pj A3GƢYy++pÔtM;@IeǞu| +qa@>7x 9ފ^mt︰P7={BO>tz;J5{ʷo܍x`:Cc/y;F;zCƚ#b9&뜰/5ڔꙧ<7 p@E3M}G.pi㩎\Z6pE&\r@B> v&4SIn}_z"d[Tz +uuО;KE^!s~= ւpbjDDDǒ/unػ; Vay5:Έ8hDwC|+V +T2p g~X\!\qu! {_ags^l%ѧ*7,XZudaRZ71z9}*jp/v\5҉;rC}K/اtk^CoxY+~Nʑ9ŞzDĘѴ/կ/T1hs/69GrvFMvV!E N<^e‰ RM[>8_l|``;5sy;ä5E>P,!DP*>3g2&WZ.guM]6_Jޱlc|VZpFH?6Ah=3rQJ3=qr9"##s@{~rajeԧ`T9tu +rvVg]e 8:L>7*]th#V򨔚BT:#!0A͈֩¡WkoV^"șa}݁F(DCQc@|;jb3 >j`-X큳+h9Ywu9JA=/-znھ 9;OH;6g"L"rzw-a&BV~7P;T\\7YwM9b>2!(+//*P~f19p]);?i<\|yZ yYX-rd71gs ỌN>\T*5861^3 U\.4,̷®qNԯkեa5r)sR+.?ZO9+򰴆A./<}a//u΀Huu]t(;?&4XM{(U}'=!;g\='/ ͷѾUL=0hW^Z~XV WzB5^Y ̷2?M#C,fYD9-@ U\XDg;YY/bOJh&y0~V׀[wbza죲x-zJɹ?9j[Kk+ +>|‘ل@*<ڊ.?{~)gX)ŌIR9B7@Ss]A|g +miV%l5o&ΐI[+)(8,-V]Yg9kZX?$䟚5]Ý~^W忼ݏIɿypCytGzy'qϢŷW\Ov3Feء/AgW5rͭRƓO{{\@]B'u4f5F]w<ڊr;mjNKC{+v} &ʈ\p=Ϸsw/-v/|b'@sJE/.g< +vw +Ͻ亾ކ׈ ^;`3v|gG?^h/}zٮo{}⭟O;,(֋P+Q>>.>.<++?|OWrO7jCd8pQ réǜ0~ j%`p@<&+Y^lyل /vܥox%wd4n]|,>O+U*YNx';hO NF=(1_lTo,c'7ҷi74](89+:ۧ*W7p‡>@?2埾+_-[sѯv{w _e-Pݡm&Y +k* PA[(PwWoasf{ɳvtgf~Yk>_![ɨx6"h9!ydoV`%'ӚɌvm{q#n$ӺE:Lͯ5´n]aͨV4MY.vg~6P*A :wrB<6ykĔ*ꦨNReF-Wԩ=\$bl+/5 +zG= +u_>3'{tM~ x###lEvl֧+e +r{m$yVڨg#GeA֮Y`Y԰냚1m"o؀o5o4~dG$Գ!(G1zAlcA7.x"=찤v>.Zcj/ž|&Gn*TuUչ.s4ZvR\P'!:LȜAۨ(0qGˏbAрѥ/QnNukq-L+"yJt.;gaမhH"#vBa(`Q up !-HB2Q廄=¬D/?yd7!n5;\4 F`_N_~7Xy=[pIoKy_hqs]G櫥xUaAXrAbgGE$X~j~>AQ?f,dA?đ\k[ܩ1 A&գC![ګG䊊ͅ/_ ~7}OG$wݧgC0%xcE>F!ލ!+NCvx6ofW_x' A]uES$v# +D}I^/A=[PZ)2ޫ%bKA-yZ}\p$7zMw 6 n WC uËzxأ~9,!PeTuYYY{1*"(6/|0_pC@m&[: F*bDcځH⭟ɖދ!< ck\Ts/y)hݰ{Z^]N&]2Fz؝oFWI(U8m0}@ӉY+u1*xg^\*zxB|](1erkCzN#`G `N[vm?q/1K"L4V&!?H5:|VEʕȊ Kxv<>h=ȇ2 +h3LB4:t ߌRl95Qu6jOc׃Gc8_$hs6,Uu t ˻ΊK\ĕo/ +:΋_5979Pzm7}-ko+OJNCgfz?/*q;?tOiSt%P_)] w\ ]\yUaUb˯bG|&k (N~8C7XD-x\nG#y٫GjIQLrʬނ|-|`)Um)擢']v=VXw(ze+u65xKXPju#h$Wц Qgmљx=lNUt:ZL8};š#+|KjcSRtxHrlП Ml<7jH]1D .%ɒ=#M%!6{_']-Xi ^\kq&f l兞z_wI;ߖm0լ<5N.k3~zSh\,y]{"?CM6R\lf0lmӻHRf)cq^q~ bh6Eqvݷ#uPWd m~ &}7xN6Q[)}tIP}Wrr,NWJK>?ɲdmy~㷣d7'†*7Ӣ_WvprFPcFߏw^e&%6^IkH=בj?Q6Z+\;T+zaٶc]Ïcx ?rEu8?'z,݁rW2w:ł0щ]oӻ xBn<UYmSdЂ&?| nWZ{:~xry*L1l*ֱ-55),Ϳ),5G),L4w)Fe\npKs37rMp|hEp\h - cAr|BU]YUAP7;Lۂyc }G~kyiŽ Dʿ?찺c9&/i]vV.εe]/A7$Ysv2~DPVsƼM]$'qǺ吏ovmB["bcxK679GU9E_.ultkpk\++bTy^ +9f%6X?b=Ȼx!Q ###{AUx=\H}4E>D=h:){{m&8&J]%K+O I%Mu:^չjͮ-lt-mulH82P2LaN;a?y<𨏕]IL^Vp%=LKF±\d]3x-R-L,x5~FXWŝi<ՑrCAЋ8g =W_]ȡ_#w⭆IM{cG Gz|Zb̚/_FoX!O\ҔiXLk~C}dQm~xR_s&} -2Fôp&Mh+ӯy[}>Ӥǵܧ?Eꃎuz4e\N^+&ԅ +ZڼWasx5L4ԋu[%~{:$A\&(I/JtH inI=ѝH AYc; Ѿ;7ɱC&Kl6>uo&ڊUJ35_hPNkpR~6$1W +V4*4־jmXrdԟjHdӮ ٿ!vV QOZ]Eqau(ZF~u4zN#uP6?''{5 }`n u!i:غ 09'3urNſxyVEf\LIp8(>_64NCAf1G d0/J +J|(ˮχyCBM y7X] +gmw8P?Zv2 s0,*`><'[B` rד*?H3`WT9`|0Wq)X8a5X,_[vq/&y=m-xL?GrUO&6VځKsWsV6Sd0L1RR`Re)8l~E } b6"R8"hzB>NT>0.뭿;?)qK{JT\+XMWLIGLfo|\m`RGc%᳡'z3bXǵѻߨmۯ֬^ +6nZ t,N1>Kª%K 0 LPdJ] +.|ߙ[= qx_xOlw˽KW\ M >a|qLH|cpSTBW~?:dv ڡ2跍Ji@T }_oLkпD=0 q`̍`.kX?; + }h#x Yn\[r|㠏yY_.|Pl;؂2/< xwNP귶`϶#b:bٿo8d N 0/Dϧ6͂ r5&Ǵ-h&7 O:Q(;( |kיQ&snO|&]GX?U3nȗ>~Z[+Xq/MqﴋAe f}CmG9WY`pا~N?v=_*8o&>)J_O»W }"˂>QUA 5ºCz+6?>ޭxgE-wW`=6q9 >zթ`.,Pk-u[h]sRP=К2TW+.>^lKΗ+ck`3uJmY Ia~!Ҹ5~Ѽ}n_*vczfI>?=Og['2oΌ``;JM٦^ԙ+j͌k,M(NhcR7+#{hOJ|SJh651=U[_wo6MsLD`>XvR]|mmZo_N{e@7o}RfT{=/=(( zơ÷6<wiBԺNama?iLlt2ϔ f+,qR>iK*0]q%̜̝֫yG(iPCo=a"ń8ǪPї'گJ{ +}e #נ%Ҏ `oU|%zW@t*JMVvy*{=`.0kV0ky-=.,>_ +T{} UTx5{W(5F[;!b~[gB~r?}98FsIk[MbfI|-<`r]K`?_l 7lc 6Vmj2RU>OjyR7xٛRJZđFWh{jcg +I L1C:M3{TL0g<`*0ozu`MpU`am ך+D`{0.T?S^YNf}i B9>-p㺫<ќinqK_ kh&Ъ ml+`3ey@YVHp^97Ka |o p:452],i~@aWdyѧ_J-EiKz(|jeUn1q^iIؗvw- +#Wls⟱'ʌU/ gn7MzZ(n +z?n{p'lDqK]ՓvtL2eGلN|LolݢWwʧ5zF-4߸}!1,]0wNd`` OC|]}W8ɭXsKyf̐_ +`h@77N;G/R{ ǧޥYGC@hv9 +[!`$Nn CUuh$~]}_hs1GK-\d׾Y/#8'|(~?oT?L[PO?[Ē vgNRT]0K{h=4 `,^6{Nպ.`7l?6v`Fv.ظ[vcr{=b$ͬ/׭ iS!ӶVs%޷o?\:iJ?׍n;Mh&uN}hz`*^'huVb~ݏcT__}djmHe˗RUm0 SeJ`nj)خg``HUS6S^cgzcֺY .?ڝYtl4;-6J[Mis c'ن3. yմ5+syiSwxͤ#weڲҏMeqLi}\~M߂ODOtϧN^SOip7`{7g Z^4n+mm1N4ZwKS4+VV+nEk(t_{;i]v;mOGp}k|lVgر]Lje1 ].)zH` G^sQ5 q;,m*< Xׂ`Yn?3ŒB;>6F4ƌ+hN m]Mjb9MÉmAoGڙM7c7'h)7iYx4F+aQ/6b/we"quEP> *mLCB>h'-_U4?ki` ,[o='n+\3/֪Exo9kZlq=fdm9*8UDZ?Xa\J +NwΥ\!`Y:+rn0v!|Ui+(^S/Ҏ*'t^-GxKf)Øq 죂4<^N׮Ս> k]7_ۘ1 fUm,sJme^;s2eC>ZZ`xf7L4ٻt5}Y6sJTᙝQ02LrB$!w""yKIR;?uys)M΀ev21ZYO. k^Iz|F᯴G[KXt'l׿ұ6?qU`T]Lca $wnrNΓq˶p/OC۱]pOlLK/gdUr ɻJɋ ic][ˍMAf)NerΌu`z-t=^`&`}yҔq?-4&wCk)Pq)V> ЇX\g|p]=n>Fؾ`˓'^m~i>'fZExm'u=+ŐwW~|e,jnFŠ?tx!V<vg}/l'5͊$7b+7*vnVVCs4E^[%`57`eFDnI }X\w[E\$ϵ9yLC3qbdg5d 煿\fU(ǍEͅɐZ@a5"<_b!O&-%ln祼݉'>Oy >E=+HExިi1Z7f^c:h_;xy_l+/ +Tx.*`=е[@ëdN;m8Hȯ^74izx&2= +1`*?z?cɀ))htw,5 3{vo +s瘹6M b]XDpravUNJOEF{0k^M" t3G-q~!lW7c/jt4k/2}/~._iGNҘAB u%3InH \T:OQs 3 k=Ab!O` EV +֎ʶV,9Ff@GIhSDF7K&qxsqrך n}~K] 9,*ܕiK2^?g*-~V}DM,.j݇i=ɬ1tͧoܬXGxEߌMKL`NC[zi 8n&w&-+|@#,c #!8G 鋁P߸E#8%5 8J,θN3\i៷ F/D{nc"^g-Gb~Gu|攠;:uqq9``\LQE+7c)q杜Z7&Ume_UsRmZ7iH`\W\0ʺvpUSffr6r=ւC[wc8p; h/b鉝Ty7k +7 BpG`17 (ٔG-y%hrohao{ͅOa?s7ir>h 봠wMiiՅԖ=ċA]هf:&T5Yv8-Ϻ6ô=]Z*/(rc5`>;iyâ3qIKEc,QZ}vb_T#=h儴qvy)s)j+~wqs˷)s}焾\;'녝Z@c>0Zˡ}wVLVNUg,`+3e-hOMY`:)E._HqEE0, 2g&4AwQ OG xXJ,yuHw.vL{]|4^ m 1q?旻wo"?.K]u6`#νL ={>Fᶞل'13-,&v3ڷBAk3SL|0~"#Ë6`iMfyaxwYĽڧh?ȏ}?Z]M<ƾz~9`:D"p ?gT6XXнU|iVn~j<'XlYغhkkcև dž0d@_ 9cuJ؃ȿ=ڈX$n%ql7vmt +| 0e􊙇# jƁńTK]Ok?3?Q6T x ^<gw`H:,V}@%x86t;N94(Ƌ; +y1}U3GtyBZ^|y'k9TuHTŃrcYFu2sBoEk⏇ aII~6/U􊝋E3`.? uGvSL)V9Vv Wឩx/_HT`=wCx"/>Ó3̏ 841S~)DaYUN3(Ex-d͸>Q޲ŨYTHkwEƫ8Iz%c:a=x~זKlDdh-9;6w>|ĨuI#` fo)f-dIɔg4_xxGXΨ?ujvG"[ 1{Oɰz.O>:) "ĝCqnvwɀWȜ*x(P%7C#y"8,*hm}M0:H u.xu9{9bSR~K`_Ρ.B};>gv^kuRivɵVb CSQ϶#}2k%=ʰa%eq?x){O: `(kQz:"wPǢ \%!hEKgA\#~.;Ch/.~#oQ|)DF&gbw|~PJc2Eu5f@|cq/8:z(HW X'yPvDp0~ Do i ؼ/b!+O_Fx/ |a }&CD"`ް>rI8F*f +NNOLa FH7'gXݭ8obF(9=H_ !]^̈́Ctp!n D-bVNP͵K_oG : 5xМA 3 +ϜB&/By vm@ ZdH (bh`'=&bi'15,9MrT,Fq"NzOFXOH8\ʳuT3 i'bb!+nqFdH}}RAV W Bn`X)w`q/1"W{D70{ol8gQXaCe0< +8vBT l]!VN#=f>A){xYpLX 7OO1FzSsFl+7i<eo ͒vqɈtKCts^~q*VĥCL%LzQ0% +8׾' +V = +sʘg[I(S[+PEu5"bcg/OE@| IO3}'9+ oE6I@>'Xt#XB08MZt ('邋A*ˈڅtP[ts um9b!"6 q 냟r 0ZHO5wQ8g|0?ucJ~J^)a[h/oJBHȑ.Q !=dpǠ3{FCgm<35?&p6|3rGpJH)s^&Hw80G[#·$QNX1TеnWCDj>QN<0"mBHOtoyϜnJ6dheovX.xa)(<q\ s ˎ)N10>/$΄MGkUkT#}k5;(UKsiC +mB1K:Ïg᳈kD&<|V@|Ȱ 7zPwi]ULAdsJ.@h_=Ҁqg/2:e0 ݢ`L9qUBBL(6O㊂3gg\LZHQ2tPbxUE[Daw6!.Ҭ"NC:R~ 7o9Et ׍5dV3JX8»Bɓc;$TaMDJ"'+! 1D6%Î9c3gqa~bcbS +b|V0z3~HtEu b#.Ho8{e:q!F0N[$t{-ÓB뜱juE9]Rt;K<9sωdz9],,MrO3 iS[ausֱL6m]8H@h*<):NpR2`S{V6:i)DZ8;E+Wn$f"NSAGA1z-bf|) ŐKޏ4ipnN-~O> +f g!)F i2K,RF))Åy%)!\rPZSh k⃑ ȴr5<0Vb^< a{G//C:␂u'6p>=i|y`raD;H yCFLn`XL7Vv㞓08p<W +{ On=(ڃXqHG ZKCl"=F=u>陱ßoR:zvcqF1^si! +fQ~Kq oLxg/brɸ݂ڂnCqV<+Zop.o&-{EFm'35UZ609mk`[NMCxZ!2gĈ2Ah%L? ᙿd1Fsu&-4i:'Ž!-w#Ǘ#Xr$m앐F(F|2M 9 Qv1~+~>S1~)0&<2 >_C8g-5rb2`lsH857 DĥlO*y-x-x/B5n SrLj&m!7 6U„7(YAˊL]Ŭ_[ؒѽ63~5Ra!xg}!3O,,ew9 S'}_Y(Eg?WS4IW쑶X|!Z1P% ZFs[g\g +b4% +eUꌖi׸Hظ0KMF正n7qk$/O!!`?YYU5k&Xfōjʌv5XCoGATzO,an_F{87M/Zb=W +WSxVNJA%BeBK7֠\1<"p=Cd[<2!?1H;$"ҖS'qy&4N8azOaWrV +i@8@:HgFd4VmcinfOzNC*+Y+bq $ˎwf 9NS\ İoaڡ'o]kQtH,!7|[3YB!:2Ƙ\vVhۜ󜊴)mxK%Jnwh3v 8CBZ;"p1|6ʧKoxNl#}yqR KGOHk9FiF> ob .եDjy w? ;ݧ+.갲*y%&nc ΃%c2V sm+"ֱ(hV(d.DDLǰtm}nͅY}.ahgK;+ig{'a!bƊ]aS;<0 `m>)kyR _f +b-hǐ*3x01k"cv>bz37قqf.@zufnQEW +bR_7Qen0g:?Y`%g8Hq 1kh~ʼn?ׁ]q)H;JtmOEdnZvpHi~3!f5o fd6K2Hg1uSVp7ڹ;ߢڋ.!iHCS䞲P蝽8&?vq\x,ظX!ދ\k|n}q0rډ"z:0S䕸HS +뉬6mKy0A2Hm:vZֈPLd$ÅV'׉b;B.FZ܌>g|w"?S.Qg.`R O>X"C?^$}Gqg0zF- i q^]{Jr W&DfTjIkdt埵 0ڿYWcV-'3vVz A| +gk,W^2S;v'Q|8X;Cs1EgÔQ|7q1gvQ:O9(v\3[fNsocâʶm ,j-m9v0'\U;V$IPs9s9+QIfv` eʒk,c g{h +z xd m<~;Q`/vO]D5/#vF"ck wD=Bb_,)蚙Z3FYf9êzȢoj"Ղ90SU&>BC;{%yKMhgXaEljgm"ApIq$K5?'so1 o"Bn+CYiw?[9ha<<իFk&1W.^cl*g,T[4#" 碆i-?c3Wmn2pw1ZJ-_+IOb%N5J^վJݱjg#ŧ??kgySQss1-d8wmcT9JJ72lpoMqQrW@ti(= +6y(/`; ;?*,O=3Pt2آa=?$K!)15'۰? lp/Efo(\0q2)\A}GS8yhgA 8j@` `M;0 = Fp>1OȾ X*Ў. +t~SsmB[&Ƣ)BOFI-5MO'tLhIu#K caMcº`]ͼ0_WYʽJhgq烏5KkS,hH3\^hgEhg ٧sWEV($~-lEB:oo|Td)b>ʷTk.;I~ =UBY:EY"Y)'fB:{NQf]3QӐ?PFeJy%T߉X4H8>K(sc9p5P[{FGTGG+a8_zoey)ՒKP|̔2b۬УA]b0s  .|BH8hnQcBL{&rW/݂taTؒth&30]֛}`01T.rDĨ F戏+QsBdXL|'q`&c*dMr4}c\Uϑ{Os#$vY]O=: 5 cIyQŕ7- ֯FMHWT :oah=៴K i?VH?5x\Vܼ ޷`|λ@Zibg-Ny2{ ' q+ŷWҵik;-佈|M{2P Ng]ܲG?g4UpMXczl"Vd.:G1qtP (zX$F#ܔ{Y>#F#'d5HG%|¯'EhٻGRȼGT?Z[І<#lHrρsrS\ExGEQwyb"UBM=2[Q޶JmN t j`Mp-3t˛Vx!sG߸` ]D={G`䂯@^|b'!fG[ܮ\UЄHQ*vC's%u?+KN64[I,җZϧ5B`Q%wo,^[^T%19W~bld=$a'C]K>9#U(BKQ>Ѓ3a$7M1]IÄ +⣊:əhAއ{}iCsBG#7AV,ͷmhL{&|<¶ ҃3~Š-@5ZaT+j&bizO:WЊE1qwH~\$9B6|#0![paB>\'~(QA;f]+%lb##ѱoc/m4oq{@a?a8$hanz|&B7/E1Wʐi\J:2jkJ'P;H=;Stj:5x^]D5ܵnُcύ=ύNCEʁî#c7:=$Lڃn1yy}rnr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/ٮamՙjbKv:)˹v,YNNڪMYwNןΛ`\s;ki=O~oญV9۶HoGs2=IrE,X&Xf#fYjx [4Mf6F& fZsPde[5,{Sf[fv䡹n ̦ÂYbjΘ^͛kxG Oop(}FIR58K]BlO>[Ic6RsP^"\krtSK'P.Ut'%c$x(G ^^}U"*=J +n=?到mjJC.h  6z+?ygg.Zg)z+<)x~JBآ\2R;]R>=fk z1Փ7J>qC(SP81>++z #<>I:5Sn-Yz%blS +)O+~N>3`$cA` >䨊 vthύoPehx+f0ﴫ/A/7ڗh] +vW1g|Se.kg2;z\p42cCGGMr"sFTb;o-g}HkpsLf&׀m~g0!S Cz{z '٧_&kYHďZKi#C%׀O?|x|F/J{2>:T#)N.L)3k(!\|'= }3}Ӕ(M(EeBPHgO2ggvEsXqξ}Q^ڇ q}^Cܙ8L3D хgQ~02q'+#L\&뫧ϱf"퓋,/*z"[w E 1AY<.A:T?r.CϞ>R + ~[Up\*2G-Oઍ?c ֛0pY8bf#ORxj˔?YfspCcjv~Y~>lLa孍g-.prΉ8\[qg0._7ܴv#\4E9ȭn%)rxd||rWPpqڴ` q{J~ # CC|lt@< Pn +z8ĖJ2(#{ s bY8B^33(h><<2@ &v=bl$pT+k'+JƁwKܣGx{@}#1Wm޻gTk_!v'㷕#x_<JZ# NA:e-w/%GMp|T먈G|Qܮ!, f wd}t忳١_J{dɜ%+W}4)񓜕BiONqś@5?헥םG1 |7A䍥 {= }.UM{!IR.@|(7W`ig0El>_Ob3菄 +M{3T^^>fI+%6ѿyZ~| &v?G5aՍ?4 N?88PЏ𙴷=oKHCv# b_yFRm=EP` ==L}p[ 1)"t urOxA>@g~=ͥstgywqiR夓3h[@ޯ`wzW>"5y9蛡'-yz"(#t8] "EWݓw8Zx)|6%z #A%D{qxFA?{B!XH}> +?Rϣ11x1}pD8M0$O?KƋ|~ȳ@y4S?8%6*Q_Ià? +ypx*43r >A4>Gߢ[nAs,1d+'q$H+UiN/ԣB!Ǎ=9Ŵ747t"~:L?K>=\`(A}"d44 A G.KUn 9o{>w v@bD /e-2rZto?ʋ,",>,Ӈ !qk8?t9HnD\z4Β"?L1eG{ nq` Bg?EH??OeE/l~N~ U "]5zwW$ .6wp5/#Fxm1('ْE 9#G2>`4rYh/>OP@b,HrXg2|z+H<ߞ47\EaZp!΍Di;PF1N; J%/myk uϖ}F<{XE|ڵWP6j8<o|8(5Kj$7oO/vhǀs +$&7xE%8|}9ZB^šI|ɹ夎D92./^n>1S=z5 +z;с܂u!D]#vb_C 2Bqs`pP\ K#j-Ts I}, }|%qazC.F }ݞSz֖s6O| +>|#s8 +٭}$6#9%c&hP~M<|خoph"_\G! 1eV{9F|,$EDy_Q_Nˋ)N3\'FwoVd_}cq&* +]߱gq;b!)lW p+1L\=B +3}$;m˩ i=TS!~4‹Ǣf()}3z%GS[1QQՀڕ0Lʃ_=UZ|FQ|5չ̿-vy;>*{g)~}7 +u u62EYۏ[ZcA%cwjS/zR(iY#5oKw#+cR#pw".A &RcNSo/101e. e=:+)GB~ʥﴫ/Os=<'u;^?mz#xL; 6 >{#y04-8M17X %pr{Ձ]Z %5AJ0ΈzeG gYRCeoW#`&&ý\OP|PXZG )ntZO 8PK!xcBm\Eb*_Ψ +endstream endobj 60 0 obj <>stream +%_9T,N>C_er3Oo%x }H+nܮC:? GCיON=5ڃ_W/ >LJ.[.kEp4uz +ѕp;S*H"8'B@,h\|(iWXJyg>tQB9%-˹HVVsai#_琯#N܄<Kd |0000Hw5Fs/-ʦ#ğ!T_/Kig8}e[ճM 7lxUyܿjc}YkAlBN'lO ?HXR./K}.ZIZWXA8P%yϫ'_Es\$wN 2~=\\h9|M酤riWrI +?p[}PȊoOx},K&(ro.t*<1 kqɽ~#G$sJJ!'<=-iXh 4S1Gw:I\2Iʻ˾F9)1 +49e?6z:0STcÙyW?'J~jQ/'yDpLkϔuy!|f!oM6+HlIwKD?u>h= + ԓcO?]_#; 䎥5סAƖ֝k&|($FyPgubCSP~IV|kp$ܖ`q{sDw-Kr07q:@L1rE ԓ=ɧg Ka9cE|ܷ8G|y|(Ѓds./jS\R[/T7,ƞc$=aҚKHʎjcmx>dfr+6FEHhc~1wJH ++m ePҾtPΞ}ġ_*tV$N>NkK/nyqkW }l ,rUx=b l؆r5Zʕ4 +|G8q:%ӴZ seSFJ9/CknQ̰>*wԄ*1IkN}+B^I]N>=;'K"~rڏK1bKmBA'(b GQ?3y]CnGO_S?YoX?94ɍ Wxd&,$/WlC5 +ӵqS.ΥT_#vʅ́۴iF1q7 m %cj*1Ԧ t~)Н16՟}{=/,RF*FJr"<#j&P]389-x-xS3yK]2*M:ࣔQd~,]sPպIQ|Gr[ʣKKS !tiߓ|XfmbaaES +G>> 2wY2az,GA: ȉPc 1r Ɓ%T\Ab9T3wU,*NCҔm 6hc7`Dɘm}oQ+%w a4/֝}P: +8WW;t֥ܵByF-KcJBSt#KR=[SQMZ[OAׅzԝwP{/ SyX`7Om j!GCc 6FD6qTۂ؍ʇ@~}9;޴Z:#_ w#Lv?~W+ٲ،+i+zb˵W.֟0%2GR[9}954tEŃ ܮȅ[5MLMͦ 5`}0r?G@En2k2@KV GhAu3as).W3Q/~"A-y9KMAb&09r^vP~Ӫ5o790^tK <,X%pqSm l`}U !'zxu m6B|+vR?DEb_DZep9g/c +Yû:FcTfW?66PT>ėǖM+7*[-LتMRm 2OSר6o 3[[2Ƣ&:*3T#GCgm ?1zVZ +I] 8^Ik М/{uh*Wl-@Q~bB`zќȗ?kc諤@[@;5 2{B20o{f.W2^Ү{."&W^leB浥2}'ЀOK&YwvDn+ BiZ>QA뚰w:XS^5OL6wcj&aG5lOoSD?1¶%O)crp2<},$ if I fR <@bC=Ɗ-Pܸ/_Ö_Eͼk7"tN=Nqcsb +r~QǦC{K7bsCC7"zW=_Դ9뗣{Ǿ=bBoҖ\SC|n&[4J*L5 ^fS dL_F- +E& +2*QEL!د= !Bkv[ Qb|ysYgCCͥ5H2b2\4huCh=0+㴆QOPQ[Q4~I3ѕQ:t:q(jвSN mUg띡eia3-dZeUڷTKn-P 9_Ey$7%8\ߪ~ +c"+OTSlO x. v44C#[g)O7ۚ} +sM4) ȗ:<[޹n@Tg\$yi[`T+=b1"s,a8NTV}5!_G5J^1JhkP?+&igQ hB;I'(g5lMuuMTE7rd<1IP~KﴑV$D=Yc+i_:uM_h TF2k@2 OAo-m]g]_".FLXK`ICAW.Y<:'dB_O#wOld,ux2t[ZSqfs/.FVFNJs)\Rqzi-[~~{ߣU>L:P?"HyMX$c!^T#E>@=9B`r3co*ղ? +`/ =KkfQbe@"jOrAav%su3꙼3&z84PSOͦu +/ +e@N G{N̆l٥u*am5 +U"JrX` iGy c]w{dHdhx{WBҹ +}s-\SX7\9q&#'GLu.-J#!@?B$ȻXsi>@K-n To3,+Ϡ{{1wbMVTv Qǧ5.Lrг$ sq1 XGEN?w$tO7 +.uOq~4cYtokPX"Qt sIZ;,Z/-+K.Zm/xHy~Zy+j|#L}d׊Y7"!/&Ś5ꩆXD{|Q珨@BX3%壆{ ~ZQXkGuPO:WdD~vq|>zbxEEj},)C98gc~3}8V\ `/m+?5@]^S9CTb?Q=sӑatzتε5rgZ2!|Z&soSt`֊N}ѝe m{`YB_ XEMqڮMeŽ! +GW5E]c cF_(ԊLׁ3h]N5Lc#NQA;`/ +h2K=6nP[tBX-HGzkCqb.@co.zY@4/O4dFL=HIꆥХmd5:ى?W~T\=g|2|Z~?B:Cڶ;B⪺6yw)rݻJ/<*ǗQymT4ȭ+NWpUP+G}FL2%9 koj_roqOWc6Q?Wѱ6jyzZS̅TT?[•t%`gRJ?|lƹl%bmPݺz?QˋN`׊g+wڀ;alsEśeOk[ϝo?|*p?ᄃA^Qmկ7jBM(5rn/ +ǟ.ߴGof +WڹZ5O-Xay;ly.̡ZtEV53iη7A>PCr}+Ɵ/GbE&ԠcSH4 dž/:9|cd).5{W{bm>9@zu~ +b_{7޺ީåƖ {{=N.>vQ{jy􁍪\YؼNYh#W־0s'+fV)Ēss+ZMP=2zKT +zXC|?33O<#S{q3zEdU/WGrC&#s>)7[/+{*X Ү΃]/ UO ^+>m(Te}%|_A_I +Y+W^mZvMWF7+~4RhyϿ!~W\䯼*|Eٱ79pp^gtݚ?sO /5OLT`ߪsÝ{p)+o?V@~\q♅+[{;N;v+7酧{;ClR\|#*=O :z-Kxmn5Enmhi'wbMlaMrKP2x0|'^(7vٟKYp=zz6j('?*Yޛ%ſ.K?lRtʭ6;nk-.CX̌bo6 OcI+m"p{e_m7?H&K% '𿿊>&𿼍޿ק:=UuTD7$dޏ`_CϏ[uUK;ه/v]`_`'mJ6wUg:+ܹWtǪ.EvuO+o7*5Y5_vx)/?to=ty_سW_n.=&誼~CA|Yի',0?u)nu>Vzۜ&jvI]mI޿Yn/kّ}1@ԜnT=m|^Rqߘ3ncӮUd?\ωZ-/7T]:hWϿ˝V7ңm'g6#O7H/?ćBUMq֯ng9=?Rd_֗ ^?:[+AU׭,7r,r(z\\aAg[iҸ#e-?abHxEwm] M>.n|jVkj7^ϵ}q%Whnx* m{X2,k)F:ŕקJ*+;O[>G\u(=mf riZJv~_P??k wyZGl.nTN½\ؠ]l3nټ>x6Y{/4轐ʻ9eJbvNd;>=|ה*H}y9k}k~{ Wqghue Gyޝc5TYqtec}1X8ZVղԛw}+Gl}~ՅBՋdyKmQK"&6G?L.WvŲ~wG֚^8.75<9D]y18\ovlCBN݄Ƹy[^_ds.VouQ^nuW|K:`fǶݾ//c];zv.uSqTA[WZp7Vѥ&\du9]r\mܽg?;JU-*NUǧ lvzzثҿM 1;qjVJStVuCk}vn˸q'OZ=7޽̓AYa)yﮤ[m^Unsjz#_l|4~Y'yr~e;oSwӥO OTeXiRs/-.B~\j|לf:%4q\ݶ//(܎뺐ՑWs};DmT~q'JOM#k}7d ),~XNiCxNtSRTn4t=ݫcE-clV"Zo'[?oyj߯W]#նˤO7vJ7HLaTRcbyujgX?^*zQho j+-syrm Z˒~yfu"ǯ=ah~ÈbΚR廻iGa/F'E>N/x>Ǒ3d.P_ ?_s^:>2lcg=Z9FUG#5<PNIhHȍhHmN/KjH,f_5mas+oG>&URWDMCѭn#F<ٮmӚ&?H`|kpGj<ʪl:u'5(סH0ݎfo]>X;ԜWx/"vdv@SvleNj뛩6]mimʎ' mn(\Φ>۳ܭ-o.f۾>+||'_MWksËC96oO͞u;u|p`?wxq,?qGbLt8xcߒ&A%ÍK5MTyrO~z[D~Wfarn]m`3mcK^QoQ66gO5=޽Aq[AsSe ˕]MIP3QSMkgkUIHsV_S~с9od<. >B]CM׍\W'vv'>J(m,vyZU EF|gC}<ק;;G?J,>u$(^xnƆ>,ۜ?0uMuݫ_M)%11.\Mput}Rk{UYܻ~ܕOv$;m/)|R|f7r +# Skط3_ V_ ̨%>^oڇ])6udn/svnN?>꟝]*v?Y) MŻ4н80uІZkvh`!1߮6`-Yl5`*fޢKV20+AYW?^YHp}FV؜W#3o$_ϩNC[[MṷO\T^_T~+:nx^r,lZFecheηd~~O&GkOM|ԃ̱̄^zxF c"}_1s̬^-2 p߳̔!c1hь3X+fT/}fl)9̄W0Mݙq#6^Ψ[7/ŭn[OV/koEݸy.(zƹ;AY% ṹMIMiE%1 W܉˼97amy-i;w9T(mAkƽo`zw 3wUJ V~{|w1M|*Qh!wEK]ϒ̋iN.(]q=RfQ9gWf &X}fꍐw2d7FttL~SߒnOryQin7:Wc5)̬ӘuDT_5y>3e0L/O\h~yfj'-k̼""QsKI ٹwboTވ}=2C'fuuCod5%򿼈~z/Sخܼ+$?ٕUN̴ӈ%sCJ^Ʀ?yL5CׁLǫ́!9mzIL|#ɹs_~C2oEd &>&Ɣ|gӣ6O :r'D_&[3k[Bp[jAs̎,v͹:v#5ߛ!%4XPoW_ zu|N|2g¬Lx2b݁ﻷ/^G5t^rܛݒ0'eMb o`O\̹|#|٭u/fIo~͛vwˍ!d_Fwkgz}&3&3s{3?5Z{}{%Er_=w=4𼳷C + ɽt=,+²īRsSbsI>PURcK+KEOs%(AѳWӤ_)k}뙇{<חO.3=3r-3;gfu? :vXVJ]BKgu6a2{eǓ~-ٹO޻Y ?n>mޞP|!N3nE|>MC: :{{v>ε7Bn5 οs#$wBzNpϹ^{Ռ߄СR?8Ԟ|EḭEXE?2c&cM4eFO`FO2eFYnjf3v*6Lg ]y{bpŔl[ne&,'.RMpf.r ~!Xݠ7Co&רkeΩ.'uuOAF1#4G1u1eƌ<[Lv3a=y83cf̘ +f93j 3b:櫯65e~yv6mGcʓ'f߻YjDQ"R?10]-I VN\l?3 }F=1swCޣ{Uu{Q{A "ZkU ґ{Qf)*bX&֘{QvI9AϾ}qs泂.Ye񌧌9oDf4zS3[̌^,clmVs=%aώgV3Ǎo~9~ʪ?裣U#ByݏJv<$tf7 0羼_Na狇y>YHjFse!Y`HD sFcsc+2f3r9y݈>݈M2#0 q +5Tu0s.۰7sW723/iu͟9ӟn;Cb^,[|\=n['#Hekd؛#4أ-y~Vf87B!;o:3V0cdzXfҊ,fg 3ѽ2qax2S̜݆v=*{_#pݍ]ueW?8·\rxjͷ[\%u[ytR*ף#Fc1͵#eLb#NxFmӆgkhGo3‰G|#y 8 egE111q̨#.-Vяww%ypw77\z|ۗJ=$ٕs7u'/s^?un~{geA}>S:f9O_ҟ Ѳ s͖5Mؠ3yZf@f_~c?ΓŒ]B\P3/тGGv["}4}TH.Mlt;;Au|EQ׷ ^7Ê >,2cܘq><\c݉X 'c d6z2f+3zq30S0#^W_V%{"#9x_Kץ-7$<ݍnʩvvCۍ빹㹙Dcƞ [ПA/mMH2G{Gj&3b㴒獗7|?lؕ \yF?yٮd+E/..e8?vJ?u}[_)U~m[Pϡ&Gym^/hY^ӓO󷾹]qV'EG;iG,}"30=t3~3+e3gVb:of?8; & *o/yj傂f]Ug3W/[yH驝~dz/z ^Rgfь絏E_4r'`;JV~dJ)i. 'pWnc?EL^b+l3[̏=`ղ> d|/X~1CV0κ,/iێG>GoCMV^)kS˥ϾMUpWC3wc4=K~k WMf=p1c̸!K33`fx10ӝ9f fOfBY,J=3`q5U9>(>¨/5^,Տ=Ӌ޽ z瀛z3=U=z(>/~u$_^ܦZ,ŧz֊^W}R_~/goYOp}n78-x^-b[gDWAxByIG ߊe`/, R޺Z7bBm©'B蓋oonꅹKy8h43dcm5 qٌKac[.;cܿ/%I}Qܻ⼽w| {KzO繱_lӽhqW9W2ƭ5Ʋui ++m}+U(L`X`Jd +5,\z/^x.^{fFо7+T~`{v!*Syu,M^A=I̘1[,7\ z]Џ`5rw~)~y[O|ONE^sTՏ%?zҲ+թmoJdfU_vx_* z$ys|)}:w6c28/HŰ8#IӁo{T8K {ηKU-ZSZ. Haƍp1ڈa&#׆g&EZmߎt;Poz귯_1ͅf_?+}K${eڛOSo4lNd1#(m7gKv}"sU;cT@U:\5F{rsYp^g!7UON~?W߬f[>[94/u%kz`,LeLsgf%1˒X~wzԗkFF/K{#??vW2AFdC bs-K:'I?[.֞`\ƍdL,cHs ö\qV_z?\.f0{':2KVSh0z9DLS_{jL}o#e#?y🼈ܾ| +*CU{b*ƚm;;XFh.<ʚSex*&ń{) 9yr7bۧsg&ʺ. l~o)U"9:f#dƻ2an{_u{FuțO>ڨM>ijI"C\eafA@ۣos[_ggUۇ^ Ѩ` +[svR,8Y1m>ʍ фEZGڄ% nu||3CS_*?z)\v`k;񇿖a_//Zpb\N=g6Sv=Z|踽@xyۅSzOq-? =?/z^VP]xQtC/.7s H,2 O2 + +K4bOˬrqa|e a*Y (R/Q,\qR=I[Pc/$Z +Yۇ:/ew=[WqZGF/^<.o4㕹\ʼn "_|^}sΧʃ&kUSW +Oȋ|yꑴ+`}>' ?3O>

ܲ.G00TĜckLR7XٛM'D(2էk'{_m/:\&tO#TtX֟jz/AWg 9՗d|l~8?dJ%2L#E!~jf;e\}ΌZ4RW l(eօZvM- mih8}/C}F}+GwUv;|U-7m=j%S^:Xއm:=/n%f7  :Gym߶`00cHIܤ@M"\(^/Njv;G}mɏvݸR}P ~7n%eeC?zǾ Ml٢ace'˲2 =?MK7GҷY+5X dai}j}2&OF92U58뇨#L8r%TZM)-3,מ9L6^c|2Wڕ82Z]rM!KlU}E3-/lӕ|i]o#?@ ٩z#BYsd2m*1Ao>u;$6 +vVRS?ʴJawZ.ڞ  {©Dov{))|qh!ކ4bJ7ʎvUx-g/r_WfOV*ɝ{V*6"@ 5$܃RfV~<euLRF33'0%?G31U1 +O6f#3M4cU +?W,\B+>BeX!%fkҫfTLh,g =k>Ǿ b+[GsYuʞK=/53kJ|wQΕy)T~k/G[u' +U]\9SI0UbۍA[%{Gk/8)S[{zy)l;ě PDRWirlǭ|UC_ɸ}zP{*ѧ|L|~bkWŞo:͟Ttߟ˪J7kOVqc]n&[{t[DՖs.u2+0?y3v<2a6tDLʵw8pf ggq[Je`+V .Vf8)A:9$xٞB%ičJ,@e0{fJ-ŽQ/?+b~}|\\d=/X{ϰf{Ǟ3ϵDn;|ޘt*k WK|f!ض??ؑJ kaFlN T/s[gzId$FL8D\3lJg,vbf-2.28X`h &6|0l>)㺸{,أMb|eed>.ᷝ+|kT}Ww_)wΛ;Mx`\ݳ5>ʅ,#5|._m8W,1+\V2KUB7>]#U''ҷ[#\`|ʍ71FkP-v`CW zxuSףa!`sU} ,:hqLwKI%@|NlmcI}y(^oͧ5 J-AŅn$ +Yoe{^=/\KwZEHrbǃ./_:X9P+Df4N(Cj#XOܖK6G$nv[/e׳3`ПI)K{]-TvnePAH;6 +P`'Za-ȕC涫@y8‹6[Jz*+/z -RDSewUNV&gM_L'7-GM4‰ g,S"Z.^YMie`EA }![>q[纰ƊgKri>썂?R%|1'0ZS6}0GHo D *9!΢V%Ϯ[?@6meB!B8:Y{ƃu"ʌJUZSm8yx.RcĆ6LbjEBv[:0H 4 -#x!gA!k )g19J\bd:N*jM,sryfX'K$G0PEiuCJ1rD =HݾDa}osW\ʼLhvBOs*i? +>t[Gِ͗cZ.;#K> =KDjxp\PM$>ͧ Z5*u?x"ce4Qj|H-'4!1T[ +5iKSM\!Dd nS^{oe|'y̝tTɭ?1 gפ tgW 8Et_:e$HL/46'g .&ի$&L)1|XBl,|BRa(]|l&2ZK2M'gk UBL)8uB'C77,Ԥnkp7_#73fm#익#"ahZB7T>ɖPE@+CLo1Kf2ZB坎J+EO' 6`kJLYh>QMW?[JVm6 3lAqʓ:gRmO{r–s`y99"agnս+Vrl)j'ʎ}¶Qn>=|>‚][lN0dL8\ Hjwef̅a8#.њph^7xTpF&}Cg. T3>Q}6~<;`1Sߔo긵ο +EͶX1>Ɗ C?R{q lyj8 ~Kx{]1d )Mf]!xAQJa`ySFtbiƆPv8c.`\uQW5?l7a.2ل'MToTl `R x_I>(Vw:l@<ޓK`qb uį.{ޗ OM/YA?B X{v;x_=Rc +=3u}&lؐ#j?)cenL?yzϽRFMd%9zD؊ #"38oזwO@/p|Ra%Q˪+YDǧ¶b!t`w=t}4էf UA\+h57uKrMki'kc?MY+ +&Բm=ہ` #7.B~(˹O'&.aGڳ7ϟOמFq;p~l!Xh>Pu=#jx2^į*D7M*MnVrPh`jaiRKu$ +.7"뎗 >+_U'c\n mYgb &[ic-qBa"e[R ЀȨnv +6Ne{' I(zC?Y꽓ؾ^3ףCn\*O uuC<˥7Zuź3m`-\f ֱDrumsRbBQeD\$B@:"TO&s-OvVjg@;wIŃ4%G%q,!BA*# -0#1<eAGls-֚8FDR+1k7^oE4UCW0Ro|eƾп+C{Y|ə-~7jrf 53~4cֿM5>tEЎ$Ykg59a}P̀vˠg1:]0!M|YáEyjgE n8+?IC-1]#bF[Xj8#:̂wÅx=__.0aB"̪ =;nH;srm5V rELuiTu,'`,n1}5Ofb7XTk +-ojcwz -v6 f4F*7RBUZ[A; zɨ[;_;KG8c]aRD).uuȁs;P=-#t#!g[z5ƃM5klXq=4u^{ZL|)~'Gڱƣ'k| {&뮧C+X=VbdRaR(ԎXTjhbg W"CT0.H[c+9:˩)N)X;ZU&a=YكMCoY+)B;Kŋ ,bOT;ˇ|y@]VcI/eS6RDhN ]'K= 5v]+Ķˡlu9BB<9SM 7;o!P*w-fs.G$ߺJWe6"$yDp7N~V}&Nn…jgQ֏vU,#?EMXnMaB?YYJS;+}c +Ԑ9/v: $fT< + +C\t3PtK9{'hȵTYP}Vmhj?dC#jNOȅGj@9(uaRN-P}i6?GuM^t1m]5Nn8:MSX?XׇC :b9+=wh 7߻e&j8ǕP{]ITYx6bxk4X<]s>?jgA+Y5>9vVYvBEt|ma5߇f a~9gwU8k՚蝨i>@~iյ=ʡBR@ïoqMƒ뼹Ikг4OfGśHMǚ]y]yʶ};O̐Z]]S-;^W 4n =kk ZFC 5T bxu>'s)yՀ!=23{B !"ԕ& ۯ/{<4-zYM\.zAٵTUU3j0A*5Mj4TyQE@=MΓg`MCsF{Nb`RH _QT :o,z¿hg Ӻepz.qUŨUQ٦* vJSWI>2NJjgw99Ght +}94oIGs#S>@]}4s{-,]oq4&?\JU>)[Gj=!߹ حgf@gRo +B +y2IHcBݡ)I2B$|t|o=> u띟/\%lqv=ZCy3yvYǐK=a_{XB~ >ޛ4B݋#M'k)B֙(ۆCS{c|Z_Ӫi clӯg,uXC=HR+Eb4r$|7meduXQW#OSu|4 {"sut,巍DTC>1RӇ yDmQgd|A3PjhWv"5 +sr~c ZV%v\Ǔ;K5$bc3n}wЉz^mM`{M+I^ }c ]w?]m8$CXq(z;uD:Oh$UN`óLTuF%[pBn=3[%JoUod(zl˩BǍK.Oχĵw;|bE0ĊGBvg +qyfwOpCRo M6{hMQv7񡇧&Ie{o/ЛR'e[몬6Ri7Q:hA^k}i R h&wqݑ'~HlVL6 irԥcGJ3 7Y|zZgKSㄽW_ny$MOhMA >s-c4C1TO ZftnFSmC~.yŚ C1ڧQ+hb1uvH}6Hj|s1 J{zb0yNY5+%9Ի$6Va$hQ2ܧh: u:?l>1xpB7/Esrm᯴Ech\=6js7OztT!=7{it ؊N2N + +{qM3LD80Gh&VYMwǻxw;wǻxw;wǻxw;wǻxw;wǻxw;="V2OtYLQKLdH +햒:&<5&1!4%q }Ng}V;.q<'xQTǥS| & :q~wάyΎqSؑ,%&:&< wg,r?k˼.̙p\͚`\87{udzLx{(+vW`o&ts.r\8}"Ggs!/'r"%s.\Dۇg< PFhC<0Cjn 2 +O(Tk ~TE囪L&rMY̛@. Pl5nAM]c\gdƗV"ML, Jj,4 +%d?m5H%|R%&Df*i Xu!(E &4D7b +64HL<]6\L)B2 syfYU +1PJac'fk6kOuEr&ƀO3q{މZt߮!nQ\ϔ C)٨A]wX:OR7lĬ[>h`64W1В4򷏠)ɦb(&((>NUOw@> 5CPhCеAgE~r  b<xt*F*r>\8 dzgu ++SaT2M@j* eTF b*tU 6 +O6 U^2&]YRB`1uP!R%$B!HjC~=@*R$c>*TB_hN\m.t9_ ՙŝ h3jmAmj[؏adjrZG;J ZEњ-:k FwDb;bB: (v +Z想GiS2-mA2u%V IL@% 1L(-2\H)D.htJV|3J*: +X:[).ߜ_.ڡClN0"M@PgHNzm㳴[ !1v>P!BhC\%lSS9Ұ~Hj ݍbA?AO.TjX{ɩĞѕ[=gN;P˭cŴ!ڌݰdh^Tk_j!" =]}dr6 6terdӛl36Z:ձEYkP($f T-PiGkK,4ô)5֚< Ml:Tuuvb8: M*md i9U @=5jkt$R^z0:Ny[KugfPUg +2"V|zvÁJx=IN"K%>Lth*+!6{ a3ڌh]8)=?k5r(7◵56ԪꔢAsx/J˜юRaDmyD5M _w:Ѯ򮱚¶ J: R*j4]=^N?t4rQ*0qTM&7ثJc~ + +"+#c {DOP+xt1 +d'@lћcuJ"'> O1Qi ( :sYֈ7FGL |d)Sh->yi`-tNnRk 8rKuz (D퀄Ngj 覉.6gCAtT{)BMl9 ꔲ +kЩnfؖK쓌'*1 +tيѹ)U,v*Nd4Fc5=H~Ґf}DMͱMi3[%D%n.2[H1cUqzơRV0A( ü-FFm)%tˢېJ5]`Mv =0Э9>v6].-t %t{*NT!EBbwb-=fm徉ڼtϲ\B瓔Ta<w]Y[1WrsG}*9IdPZ0|tztP^bH\X[`,j,eRG"1DF2@gTSMDKi(@fmCWt4!ҐBM8md? 2iG\&5{w#3I,/ 9aюԞA!H#GeoA;IFn1d|e5QRSZMz "ۀ7 c1򷎠٠ReUYkKwӔv8v7y $0o@eQSC|OJ!(xx^msДA6Z6 NOLi.tҮJbk J(K?rr-} + J}N KT2]RͦZS"K-Įȇ-:K#v$X6dv\RWg|d$/Upa8ئ 6!ҎL2ȃhg*oݴ&d~P +Ʌ" tRB|+z>Rȫ0?b,~tf@L."</3QgX@O-vdS_I5bn .GAB +NP1R;Rʭ%Wo<3ÙJ5c t% )d b @A*TH@ ՔsSAgN"\&{~["3%'2L++$2}V8 Q +e*so JӯBI v?5 ^G;3H~LF:8Q{:HBP:d+1 +ICq@I0.$W Bh>8Ruj +5ޠdB )g-%'JY7!$H$Ӝ2U.o$oqGs)ssbk4΁fyF 3AWE985@tS:,Lk=ڙN':k5U/ 1V!5I|,YPۂ}j@QrU%!/wQ*hR5?tƙ,d OBlVL8RKG~ȇQIƪdcUfcLAPA~_1&2 .$Xz]`$# QuS'HINcG@)&5n#i'B)m/]w Cb2)6JzX@1ѨJ?5#qAf<V5r18RGMBj`".|6)[aŝPҐx']QX z}& yCrCA| RSh[)9y, 59ٍ4_^u|*"elLJl;;UT"<JKZ(߰1yV|~ElY1b-ܶ)Vl}z eҥ]b ("ݍt+\{c>;>E.|3ϸva9UNA&CL>~#\~(ը4q0d`!+1KDd q QRU>Ɨ;{d%^g$B0 ulWp:dsoHsbvy'p'.c!oڃPt0 &qgB~a;$LwBR;0B|x^`0pg ΐ% Ӥ^|<1YDӮt_؂z~#Qz:s!h +؟eaR78Wd;s'>Qa$9ז|πI b\ +t"ȍ +6b"_$LTxw׏;G+22(y.Lq0٘ Ycrȯm _'8eLu6|E]t6j*V T89Y!`㑢@SUmsac`c$AW +L"S`Lt%oQDzQRV2iHf!Y'1n_S BZCfOzF^I\0aZ|"&JWR񹈩as6_6z`.7ҳSa­h(SAbo!G&΋d ./| b_yf#9Bn `bA=Y\o5ܯ]:0 /q8c1σӉqKv!(?ڔ!lӖ&́ɬdB' +~đN+d_ ^3K|)sKov70j1_sc)pzorttF6*?شx02=enaf s76z]Ĝ 1 rגc{d;e@&\tn*hL8fD5"(G4|$FDcxN5kl]QU\2[h%3PJѕ;iy_'?j;LV`-AE8y0q0(Li'P+ +}{A6̕`!(15;0_G\ཕ|7pV u8/`j=};1sN+uT&|uP{KΞ _+L=<Q\ N*ӒdVo5Plz(fq[a#9HKO)LD08`?uT!I0 +O {B}}%BYB?0 ^#C><|(àD\f[<%j ̂t|P0&P )qEɿ(ER:t'S +sec +1'T#9](EHN؎CTHR~LL_PVi4a}09b(k3>aL +#t ~IΕLFe^P&{~}5^Evm,&`20F6TyLutЇ8B&|&VfԚ½a"^'uch˷ l~WpΙ*qѦP*>BLsp4KY €zGTR{6?8.)D6lD F0{Zq)AJޠ70?X@)\` 3p!6{T5'M"u:ly"9the|}o*L<И& T;_ +?`ېgZb,?_EGG'j '/g!YlfA)BLLsDpS@OkauageI0vl G9<2߬PmesV .LE,*6Y"5C |o3!7K&ԁ:528NNbnKb<G'|bwǽƂU*CIj`_!3+rg@ ί%Zc+{pN +mSJu2&(##y 9P> ܏>3"aЮ-hU!*< +_QSAfPÂLc& A͎(s@.x9yR!n)p_ȴϴ&M]|6R6(E”pAp 2#LM"dO#rP'MdžV'm_E?K!6H_m#~0':A+Z6*L{ +xv` +i4RGuU:*KՃ෡"ƾR|IJnYzPz՘IkӦb7|N8 \Dm&J?C2W$P<Q +,D)e@)BJ'R831?HK) 5a\dfN3᜶JR[ؤ]ܕN=:Okq36mPa#&b_0|SI_M?=AMju~qdO:˄9\Qz`A-ctuL1wCw2j0CKH*ɡO?X =_`́3C9̥aҤb6$o6{L\STĊ\j.Q^6CS)OeD)J/=}iք<{>j z7?? rmJ=GKN!=m>*W`*j܍r$Oȿg\t,zh,Ҡ S2KIJ]\ U lfLf%)YK_J,Q!NГd4ә:ԕzub|XK)&ż To)c8rqR[(碊qqyۈ^зmB|$j7٢/[i!(f,cl┘3AS>c!<1ؔ5d8q>/s\ԋhGV0.y_)'@KHK4ŁH?@}Z/(n* }"6$99G͑]LY ^=&qɽC $n18aHDȃCnES%*>qKe gOT'Ig"@ّZ^2?+\|u (^]*#J=*!wQv%UI=T0FlAS.JEanqzM]iP'gSf'Rg?uRa7(Ő&JJA&c/;K +QevGjwTKiׂ#30Qϖ@_01=T]\寁CjBTKx9fmqÊ. 8 LuL |ԁO|S,$7ia<ˀ +$88/=f?JqE]vʗKBɔdAo( 9dis&A+x/W |PՓtGrFH΄b}m$:DAI Wl2l&yuțjwj!n&pEA@%v>Sd?ao]EذwDP2!MAn-Z&E 7:5.4OUrG< 5%ѱǐ(EИ{lP5>!)jsQԑ(J4Qw\%'_J'/ +&2ʯN땾{&/ז$bRvv`_j4@0E25?2QO>z@UDJ}L شF"~}.Hi)k^6|pߙ!P3X8JZ/XrOx#J8΁(C>;& 8(H &꓿ *;񾳄zxM@Y屐G&>JR}лgҭtj.qz"_Z.e.a )1gqr6 +x]\?7Pcے{9?:$*C}#2'/EoIEcH=^vDcv8)_{ɿrn."|/{Q4q>p +Y7CꟳF⓽jP'DŽ% nsI^jZ>8;q񣠜fӡ<z^| |blPg3?Q) j(>?=0 +^31A V 1ldVX`_ McJ%A^ 6P|=Qo p6&iѤ Pl-U Cŕl\Cl@ms}o,Z1Qm{|6<"o,_Aeu^i@?Wm@[$S5wۋ%gi+g`FH|d U&??6;A.ң~y$@Mdvh`- ͎+BΘ:0o3AsNe"K6YU2.\L SA RkAt5CLXFP%|Vk5sKGx)PXr9gWR;gJ0+0%r>0/8'X +]$Š +j;TcL㵤7u BMꎐ3HMgtR&R:9Р/ +iluJU_hjt $x9K P򾽄ݢz5b]AM _,No2b;wuۈ<%8U:t+YzyK<1Guo`Ɂ::t s9}.Q\աcCHetr:\#Gae߮c·Ofq1-;%i N\py|FgUϕ:Ά2Г >?㈧ p¹ݘf/" &z*u&xm0qɚM}1^%aDfF~rOTƧ]tzwC(}Ұ_u1aMm5@~n%H*g"\Rj mY*ٓRJY$ $jDLdC+m<_}tB6P"c{.٥Ϧh-;n?ҨƀRhr*䥹GZ[؄FuP3ͥ$JE,?9 'TڇtJN&a$X^gTbvxNŕo;[աwڥl4{%L!mBe~fvI +>̽i;*}ڸ̊o NwA$݀fJ]oog頢5tлTT&Ag5&=:,˩,#˪.]QFp%PH^6`4l~)b˷ f,dvޮO^IlT3WN>&6f5J$lq5jur$߹f(A.@b(!E$^W@jvRV%VhjvI +J>Y&4K4_% -'++͕L7s[qԎ_'P:Gz1{הn&1uI~+ɵVӦkչn =Sw7>wL; sC=lH5Je9U{_,yPnΦjQRc_ckӚ^+l4_7lZ6ܠK/A jT5*k0sGaH3o~4o4fʹtr2UIN-;-8V.}и{$e ,PՈzr?9X\|FZ\~ջO)W ٌ.]xm\Hz$`|D(gwʸ^m= +͹Mg2%BX˟4gw˥7[%fZv4I2:N=2P.]Ąuѐ _$9* ImՓ|e;5_4D߶ 2)AXyio2U8Ś|svF_GV`^vEG)qn!iae)ɝ&vEN=/s-ޫS_D[څn ?32_Y*gvR|IitMivE!ً;P'r񛖓܎Cn9?kZ1ozE''ط_3"?Y%'d-ŗe$%g,;]"&_JlN}災pZҜ ^f6Smfcò`'%ŷXV)sP|ޯ?mo|գ|4nPtvzA/zL}ܻ\Ilهly)y`!6ϻ%"aH|Q5ekΈֶٲYt`C"/&B|| r5m2ٛsV^Vk o~סn}RanUa-~]yFeqMYq˞osϫn5H$\8ǥbL*pe(j(%I齟O7KS7.+8Ԝv1%³/&bԁtoҞGwv5Z|s~`_[q/2Re/O85'RzkBiqƣe6 +󊼋gd/OHV֟^Y1H_b{,;*+:)/?}iZ誵=J6]"gM>[ZYTk{UNT>!x6Wnb+9K˶WG[n%OM= ެ w\7dY\ok &[M3\k둖(lsQq="|"u 7 }zh BM"EN"N4&Eʰ?r3J[ m2twQ|VBʗONE_)X)z7Wx[=98֬"DT*m]—-l;*d&|i';k>–5U};v8Þm!,`qZ:F~mJN.u+sV1)ު~KYsS[?'jΊy"q/ft^q$kcw2K[t;UGfeŮ2G. QƯ;E7+aWQO)YuہOw<I>TyKpOpK5^bjZN[ s JT{9252),!Fc(^oRe#FEzuu3Eg}uGd/NT>;md덦~ކ~hcV+'&m(kf +?M&q*!㷼 ^8cɕ[$*"mcZOb|P`f}0ܯߕ2{}vZǟiHI / M/u]m[mT\.68.::]Zn\Tt!$!4%ܿ+D]JY@I_e0揓Ǽ!{}-ٛ|_~UU{$;U%[4sSn]>]'&i`]}anyOakmۆjjM\[;n ~q>1a7*CSn˒ a/ +:F)r .v?Ԛ.+nmWV\U[KYKK+/+'»;ҭ4(ڹ"(:=ʷ'ir6} ?xFxFGׄcJH*p6-oh75~? h +,J7Ӭڳ#R[qiit'^ۅިtM-u[u!:8!r(N.i? +{8TF_-r O/pPy61TmR0yכΧa@هz?Yc/{?eeCq㍙q?܉<|oHTׯ6lw[[=L[ævEԆ^5ɽh7l# ֘._wtf+ڰ73La?oi?e?}WxP_86RE&y폽F[ +CMw*ÓK/ŧFG':}ŵ\ME]p.-"4޶<:F[÷Nֵ1g?XvGZudGmLHNv +?ҒqikswcYbՙu%3lcttTkgOS7NP[F7EOR-5ߏI~)TR^؍0bУ iVmC>w˖}i6ǃwb+q{>4K.u {),{vc{ +B zD?yWh}VQM`9*ν'JG'&^`?fĕ:ǨA²<%K$}!Z zVnd0N ] hN=~y'ZVߎVժHru-Ѯ/N//Exyc./-w1. *K~5" Rhy6ZnZp?.f}`l6^S_)h*RF |ϗVXv ]m Z8ADoMGc +3д*HyB2i%-Y6@;/MjXE{o?0o{=*CBb'BJ]##=/ƻ%E5,Ũ"t? ~9t\j8Xt.XG^o;뗕OԳIoxw;/uAE/f +͝6L0Ah48TTЪhyg5bgi7:&_c_x灒q}S{ͨ~1o=Sîq ~1<=#Qc!W +]ñ?{)uSH{׈2ϘƳ~|lj/-6 {-)77MדKm٢-TAW,FZ't=NsKuVql4E04 &C ׃wFUĿ5H74f ZV> +n=na/|âyEyG)"5#J{\ya9yΡ^gvsB.r_ۼğk_>kzՈcpvCh'm~U +d7t7~S ߄;0 4*_MA&,G+7E<+ +p'i=t-:3= it +5?+Heů>4[D|>迬? "uw#ߛGwR>)o-lzz)+|UtuuDԫWb=~s)1{|'oK9:F؇J?ges&=wF= +M; ֨M͝kVjG;\*iuO%vg^zG~$9qk"_Dy*% 4űAW 8cW5) _]fLނOڄlDS'n@ǬFBGDkjkfmA[~G+6#<Ǿ7nyi\߹_*qI-wNrLj,+.v޵W?a}S` W.BSa&%єѤaѤ+k4]hbZ.qqV _xKqk^y]]%1]S7w9ac|?Gf tz-M#gÉ>* f}9i=RMWށf.B晠h|4S Mh~4F-Jcsp[\YDT{ƙ=nao85|l>0o[?9x8pG42MQ\OXfNہEu\*A3hB +Mm(i3vDmc>:F=>O&= /zS-05az㫊e6 ^8b?fZ^&ľy :a>ېҤmhdmʋ͑<)(Zォ9cz6xg!j߿`g/ܣ+\j>Uۇ;™kvHipLjs `j~ekX+"lt4Q3$|&37Yq6l48|M6Mm-:]ۧI#4c9z%\,ZB'5O:E_t?&$_{*wxc\qCDKCTGCtK}tӕZo"dE%4t^ l=vg +HibލZz4s4{.;F]Mg4[ҲE?i١łP,MaW8^υ~nO\xX#5798C@W|jK.<ˋӧc`#5DzQ*CJb??[bdx}sдQФQsohd!He 7 +Es| +[ +=Gլ1>*k}q2% _ae\"jڊrBه~ TmhXRiPj +u0|/#ngm2䚬R,MlhßOYSzHiRV[3CkQX7fU~ZVh#VW/{]3F#+ګk?\H,wJj+s\RnoF/A*?i9*xhlM+iLۈ}&>g)O߆f؁f)#h"]{-rA+EIhՁ%5i[ʏ;:sYO!!/Js=R "vc3E=\kiTߡ~`ҘbK$( " 4qLBKтh;{;̉+1oR cJc4g9欖J#?F3:եח5\* wM.) ) -tk NkJ3HQ"x{PϔjOŀ'%mI;&lv.۽K'hKvUS&/=NdžNXp|gB.4+sJzC}itz? |6G>+ 'Ds:'b- +Fsz;t_uU/l,q WŽlG6٭ o.Rɋw2oXlXٷ?Da*y݂{B-?<(k:NFWq 'm9E?Мeh#h Z!@wA+Dhr-x6Z*FM l[0rgjWz5a7oA}hz#XEo֢?xnwƯ;_&E<#(-Du}ǹj{C/#$[}>k{^&*qkovw/+ t/L3WE߰K`m{s9i|4s*Z96Rh3m97RY3k?,FG!Qg^|: ;x~yGCGX5%^?68]&|2m·[o}>%px#C=< ~FUKO&)6h5Vx~Rڈb{ m/)2x>δ?b\sF&a-+L2N\/,},[ ZYxe7W?fs¨5TT Un$TVRp6W݂KņmdެbsX?b]o5qhYh9Go@sU6h㑛7^*,d%}sGG8W2xk v?\}nn[|;\?j1 "gA'M.IW AF{\] =vCؐM髆܋K}9̾kߴ6MG-{/{~5g³m"Wf{Ëqyu3ʠ7Zj.+]۫6 kщCLwԿs:ٔl;'b\Ƌ?z=!n72Jn[kd駭,uTt7]\$)E}SGɜ$4^f$]N_uNԿUt(S똉Go3V~~Uz9SwJVBg,SCs5,=4+t^;tru䮅n7'irei9ɳLBo7N^o|k.y}6jg0q6[Simہz8^ LTf [(013Qkykqy騇Dq7Pݚ~*&}c.}:'̊\,K_:r+ksԅg/s˘}˷Rh4i8.^m4k5xѕIgM&1M{yc(R=icaްi!1{<+Dfǹf3&6o0nTt?g1}g{"IjeF,]`07)m;تmtГ􏚲VFU+o(1w kLal:I?kPe6^-~xvLtMƫA: c떳Ⓐsot]jD`3^OS> ehӂehuh2Z*=8=' oBQ9*>2;v.̢|17یVt e(F ekh%؅]arVzէ-H( ~8S$62U -:/T7ԫ F/y}B3~%O n-HiB>^* +yL4ʰcV~QoP0v55cc"CF󊂳%hFM[tuHg-qm#m'2BBcI䖊ƚ&Ϸp +3;$w?HW?k"W~~TEN-,4{!Ϻ)s)׸K<&w~h^fS8OFƦe5Vc+Ӎ"&}LҦL.DMM `"7H]u3ڸ`1ھZsGtϲ,=9I0 +yЕܫW;fѥB`cgr6!S8̅XocSRg9\դ%oS> ׾i +3> ~ai6#{HzRA`i7Dd~~ }HAc>#Yv 87F s='N?]'N)M'R*viMaVLթI_Ta#Y/x>6Xynj=#r%ԕ> QXܼMtuӐL9EO'L1=8"cI +ԱAR;EcA?P3BsMBS0oZ5'uܲ 9"A"9yidߑ!4^+ȏy[S.c'G3\F,RzIN^)KJ]#U=n. +۪$eNI #qMENb/e͇فԃ^S_L|2}i֗B[s7f /Nc&c[J{,uaB&k&ԫ9CF6r[S9B^; 9A&'-:I!ҷ.̋nI?y#curh٘26`P!ۡ'S Vߩv`Cu cNeN8XX)@?7RzDufgy|0+A|DzNi7uguqu}4㜌m#26a>?{PIj\ogo|03;ȼ[F̽N! JNI^Hy[ +{Zҹw5:FhݢhhUhh׮]Hڍcz3bnmc[XWYLك_mXR`CS qU]tJN8b|2d7$`W<)z_Irjd&)s˘Ee~сgp.Ai+q3MOZ +o#{XW${ir&{퇘O*w|\յ?*ۀMs膡l@ӋM䂱lɚ^$1Fأ1Yq\)6t%@BBrIHH%{Sn}~{䭵OH3t9kg^e}2iOquVilʕחM+f^ zU>I93onC5C + ek|esK])؁+}+^[w`Ӽ/s5ӻ{_0_k䝼.#͞I^ߘy=ʻ]osW{|_^ZS[ڵ/!uFo𺻗,2f>6A?9\w/y0wgWܿI>p|a_+g8oў0wK׺R& AЯe|_ck e}Ï?NW2X?~?&kKssWk]uuجt= ̽ 54j-I}u?^6)fl;a\֕sy\(Ėm_>nAjbP/-]#{|fy]v_^}Veg-tpk?07w{<{藷v?܅=? z~Uz3\7_胯^j\~yk\ڍs6yw_ qu>ӵϑ>۽so}mwՁK]^ƽ +*敉NleX_.j'9?6[{z;YAfU [ l>v ;v=QƮ}g;G5'@OE v2[}k^GI.m_qѷi>|ӻO| +,S{/wz_; ߿݁7 |V㻸9'.1[vx{s|\?٘_̳e-o\^άD2oCFn|z=#Xs#ᡭkx /}¼0@xD>\syM|k][ v ? +ߊ=<޷⑋Z%;.um/@`OuOX7u9cgx+clɏ%ckBmA7D_R-6 iWKbͿ{pgc h#GW,63 N(zץqXm+u# s,~o3]$OQs}q`A~;M?ÿ#-{ى}?s7觝~ $7Y}?ЖMSH{zcWeux +_jV]E#TqKu|T6eu-KGϘ k՝KZwdӘs{#]ýM#= 1o??/7܅럸 m'0n~}";O|%յue;#\݂fͮ+CHp 6}hF#0/&9j\2_%`.9`ïCG|U1%r˅UXrMP7\uN8)\яg6tә28.==3;s92_ʞgg&pFn>qupcfO _[agњ=ݣ a'φ@yy[(p*LtSs3y<ǩ9kp̍s ;[c{U=?q5]v5ewE;Ep!2\˛N8'оlOs$)0x2Sp\Z#1?_ގy+Z ya_CW#@ތ?~Z=YMM|ׄ>q.߉!$6/^5JS}[>1WaZ&?YWxwqVᯫw跷!b{#Wa.C̣0oͱ G>4=xwc =̟sZ;/ z2x*"m|juI>Ėq=8׹n뤘ڷU@Oo~~"V=w;yw ?M%bz8:ƿ1C`S?wޣ[{`3ü|#? cȁ_pIcrTy3 :܆W㘯?L?Mކ+B\?ĚcߊyBqM_C_t(_y~qc${\s +x"|B7ûW2bvV_^mб? S9_H֏7{ۚ7~ F9>Fjy`;b@] ,y{/ B$$b/^};Fl_X a:l;#Ў9E_֯]}A8a#o}É_iXz6vw+;NLymc ?0gWU6ګ>g~;?gs=G~1Ƙ׷C `AGky`/B{m= =޶縚Fb܃%]Zr79k7 qlˇ?3|5;͛u{#|h7 +.vA` 0%{jNx;Ṇ{Hhf bM]$sHN_܈ѵy+)YVI=v%Ʊagbz789^oXX&X >=Ck_m +,Xuv Lėog"ww[ cH.: ̫8,;`HyϮyyf47g~_dn8럹ʻdd]q7}ǵhuz`y+9 ^1"&bu+B|={= tKzT ҇c3%Y@vփ]s/bgԁA|+gJ) B쬆3:qp ۖV.A,TΊ8CWv5}03 n [#e0~ +ЅЯغ1d|_Y۟tGwEd~jy.;wm<{mmbh{КcW,kE|54{07⨭{H by[=.TdaX.bp~xv*xm8xFѯ#./Al9.q'r>;j\#BX3lތ:/>GU`C3BXz՞kӟ\v6{w <1~H~έ__.=ҍm|O2Z),yԉfTOk1xn`c?z5UG':8ӜAfag2x;q-EB{q!m /c3;kh_<`˒Q8w1cέ_޽6ܷRЁ6/;`oAƮ/o\C`mهޟZոC+_y`n~z<#رGʃ5߾r^]O@D@ Bea;z@@?9Ч\`$lc͓Wqo}TٰrW{ϥ+ z|Rߺ,z^̝w""_O;˿S v}u'`nM;;kUoJjYK5! ߎ>/bǯ~rF I k=#)qGp{o0ĥB`moDCL K<\YV!d3;K}5 =w/8ϗ{?Hy7|FPYb}g=j=e{uD?aӞ{߈x=gllwX]>; |_ v;d3\e; <1;.'n +W՛2Ծ<+sMtyQ9~ܘO8^!U+7Wuq7F +~~=w\tK s~upGpˑkq‡_xPGvݍ-vs/>~La{Gշmm ï>\*w@j8axlRhWHkg%*b) +l( /yhܗ}C~;;g :r5&, +a|n: +<N +>޿ +6~վ -{ 7:k~=ޗ-7߰ +rbRGÿ=ѭ'޸ [r/{R_kC/ބk>_D6}}X$-SOyD5=C][ok ̽;/B_ Z0}eaƈG#8+Fׯwbwa\}pbn71~w.߿tEڤbqBՈm9{c=kz\ĂC;_+cL1YȚն =<}w +;G>='^K9T+1GS,EG"3&\G폭+ɻ' Y +1xd#G.U|W9ρ)u30@*9ο|ؙ y-N ߿rWM{q|ߨa`?`<>p9αc'yrg籟q.?luDgH"m w?z1bK@tI7/7j_6߱i\kۅGAGAD (2B|9ue]216x~`&c1Afij<Ċa{_A<-Vxñk+l>vΨя$[/ g ~'v^A1 0W\`vA[\w˅L9񖢏tBX\g9٭q E8!b}{~Dc?O#!|<1Ea\u'{!>[|KƳAn ]&"N؁d>"`r8n2ߜc?c?c?c?c?؟S8qFez$;+f@tqJE*==֜%Tc*V{fOwLuLtGST#811b6M5B ufr2cJ]4wLR*vTlA,DWs$U;\XI<eVr2o&"љ=D;ڣXXI6DfX)/ t_<6fKuɥ}wHQʕL5Gg" c@;+(H쯝&T$LϘQBd3;)J';biK5ychc\J,8NN}K78cTuiҎNt`?;:ӌS K%VFD㮅d`DYamlAV]ӑn]`kR)ُ-<9Qw1YΎX$Q/ۿDX0-E8`[h-ͧRQ֎hSpZJ"cHsT="(UG 6'ԮF9LuGk:h%OSFEg<=&,0]hZ*HG +(YAS9C'o-_DˊZ[DVhKey Nm2HW[ZԵƥjլfմ/-e SD÷ߙZla-.k#x,g+#$8;38qH*^M[`ͲuoTLrd].K;dE.b`]Jg% 8[hxJ[W:A(A{N{<=%;1!1k$5SŵA|<‚hH7XQsAylXZl$lhE[-N8#Y׊QǶRShRR45Z<|0uc8I{⥸jϴgh4%a4{?xPUA"AƖFHwŷc"%ZDڣt+9VLE56:1!ULrbQ 4G1v#@<;Q7Q*ږOk|$GQ/zC9hO9iNOvh`=|qz$_%)>*_;O~VIGLvd[{#tNr,x-e%b cpq9 [,٭+ S|b#Xza[4mdqi>-)bm. :~;6f4ڻ=z/|\*e`?5\ٻ9ws2hRj5W/բXw~I{tnU)e Q"Paw4Ovh<`an(o,ڳ\„XkkgG*-aAd,ϒLBhqf* EZ"^CYo ۫8Vm,R]UKb#i Rhbxi$-%TeZ2Iwt^s,FK G: f@?s8\Y[s4) ܫр B,U'財dKG{izMfOU3C`e14dzi]^W({%^W({%j DNJ,E앨R 함U^4X -Z:o/1иx3H"x#  ً7⍽xS +]>Zwً7Yetʱ4{Q` h>R\*tc~u2f[y?PV?liNGX\X,R}5E:3S{:f QZb5a%c^Q˩skc;YYdeAޕNZPJҰ.d],Bb9;\敳 r'Z +H=vܝ8^H-Ȣ)Gvg1 z^q#8 Z`d +@_N8.H VXb0 VPCe$gݷ?@ԒS;>S;><XԎOK0>?'LƧX>stream +0+!ߪ(WsĊQXck4q\#fV{+ +!]Lt#Af= utZ#Q7D◗>4"ls6,ieSI/PNÕSb1H\ѓ}*nzسjK}7Rzg-KJ/)Ƚ| E5qXڞLD %~DzH]vlHퟝ̥NbJŦvdf" -b CpqG[sB%#|ܚ]l>XaGR¶R4͖wJ,cHٶ&[Ў%b-pdQdJ6amKq-)tSژR--薆o^BYІLmA+%#A;(\tJIZ%dHJF΂,aϡTJ676̮Ht_7-,s_RɟsVߊ\MQU/(3Rwl=6Ȣ4! -R(Kz%;1wKt rhjf,uZVJqoq俫4ţ^K5H# +Ds])k!H#qVIDVe V#B$>ìT$j*gΎ|RqOoyҢ@e>Jg 48߱1!MMS3-:HjLB-$kYJ.%̿=]S~tu5%ФȒd +XQ1v4w+cGwf|9YeY(A9^rPN%^i)YcN%Y9Hİ<#s4%I`Ddbeq#o)\Gr@;ucGSNIv0S9DZp2N9G99yx;CK"$Kr)-8N QSe(PN> uRE'+0,L;fJT#0 +K(4pd'Ál8QP4ͱ,i z7ndN*xk<9áE@Y|~})1k+'Lh51_IEC/<6t1 +Ig3 @qD v A)5ɔs/(5NBaBђ(;XɊ2@M,0: .K,C\xBBؑp+B`Ҳ@h D'JA(  "E|;LZYep$NnC&e +&Q1(ML$m @Ӣnd13s8}X 7T2Ƽ#lNԄ + PT!@h%5󢃑'hbE w1XB'#K yšI0MADCknֱ=@&;>̍9u fP4>CrMiLA: r1뵉94Fmbca &6p +պ#岴Ps蹉i:(Cב +v B5 t2 z$+HA\Ʌ> +-[Nl,HNlL#="L8dFPT`7ja^JE&~H$H2Q :\XESҀGiEAVtV4TT !9HIV䳺#C&,r1a'gD55ߨ '$Y9s f)̃M3}(v%/GS =JvLL&7%p}VgE '6UAՑN +A$O9ǃ 2#>.+o`ZeW<(Rrt2ј\aj(d-dzDlBQPEE='V"He|(+$4~x!Cu +T!9$_G+x3'ЪVs/̉ăQ( m/t'NGҊ7Eƴ )zAAȑ ߴ2 ѡGˡR{NRbJHR^7V6IDcA*f'/icrN*4N ~kOh%0( ~-,z^|eaT6BQdTVkțIm}}+嫹W3[r2KXRYy Ѹ1Dgmnph{ {9_Yu\(rt(N6>6s#vsTҎHł9@K@K_i$gFkr!hC^V Kb6Z 7B V dG|QRjLl2VA=)_DP1_Z*E6T\+g2RievAv)=@b9n y@*b+WZe\RJmYYh'hOttf,o$SZ9(c0Xn$17yNaS2Ãz(Z6fE ED${wô3@qXP^bYQ{MCaq͡ '-xUs-I.XrԆ+ /$|⍿B_ ߏ!逫,6\=e^T6|7 4CLu~5W]3/db"6H ʄ3˨PW9+F">S6dEhȈ0fĥ r JaHa{`C{\=w +&*zzV#̨S*_?vq$9fW9U9WȼS+/jZմ6Yӗ8)Ϩ3~,R&JQbT~( T޳mRy^8Vcvh=c~暣/YF:N)1\?Hi%*sfQxQeRڟ:R{"fk`EeBmC I9_rL 'D5iM\oo\od A^m2X\om6qͦܬ ++GvdS'SD9eD#(.oۤ4/9eVq95 wb7|m-(eL?hWZ9( H,Gl5bWn{ع}Vl]$L賴iH_WRO Д?֩,D֥T%_*E?#&6hyZ&VjrQ+ )Z|*Z*ъTي Epc-LIeg` Y f,KeXnMV=nnWay_4$dZMSTFYV?ccZt>种uGec8ʪ#BU%sDV~JTZmL5Փ,0Ȳ{˰La,/I@P!)E:Fõ+M7ц0`#ws O}vrJG? tG3cB>׬=},Hߦi)UZ_ȫF\4SV5Ʒ(d'#0ʁ6*h i%9ujr QÈ@^ d %' s.L"=ցL+N? +4hThHt#F,ŴFHnRBL@.*txJ(>nBrd[,6M$ IGaG}G?qz~ea|{}P/Zh;uTCyM>1sٲnL_kb#ΆIuRcu,X״HōU*Aڿ35O/V[r.nTZHQ, lo _LTwfԐQCRMf|4mA4nyC-o%V+Ӊ÷Owř#7q2{ +eew'NOTlGEg:PSlYԈoj:%іF:2UVVp/W? +J<,gXMTC_i&"_RIE*ZE#T rZ!24Ǚ2NvAL%2NVNdE-U_xNTjSZQHm(BS7E:z& +iEU.iA].:;(փT3My;xИ IG]'Hfe'h!5Uo7F3jݦZs=35Wk7ϒ"rn:Sf,Y@8_)LKYnՄ\4I(2XS&.JfFXի֥,HfI,e ]YS%MW$Du;Lqfi"S8Δ$9`DH}]$L3WKDoE&ڛ4 Mi"D=H1IIFxEչ.Z%cH  6 +&xEhH2k0Za\ u4RZb! =h6y7ˌpBR!CXXY+zf&@fLC57 OoIx:/V| /KJ$ id4¡dҪDTK RD'ÊlDHD8QΠ3ӐCfMMiΉF3xU*6_k˒ji%ˌYtfa L^It't_MX'Dg љi?jMMӚiƉFb AzMךz'ӽ3IM#iiƽ4V&iF3V$1dD"|ij|k6IKkIZIgZtI\294Ɨ +oO2IKL.9dZڵIX:DjVk8$CβZZUOd:p&Yi$-dyO&ai^JZkt!,IYWkljL8KiLkךzʥ$gR7DNƂT/{MHRnT$ry \ݦq],Wf1NB?vVN:&)59GM*s.rH+9wwzQ{(BxY<=VyhNqA{=dHjL(6%};@=d] Df [ "ejAAdاsn [*6"R0k(jaˈpiDm`ϵԃleG S"vH}d ;K%B.hw)zmLjO+;I]ͱԃla +ӻgoA!lB^ε;I +_Uޡ ٣rٻTԼ*WCj}8&V&5m,< E +£\ٛY| -Cf}$92vA]Z)I{׋EwrHS%fZ3٦e)micL2oi^V6rHo93Q읙Lf3e\Ggʸ}RχΔqA[l&9Sl^r j39Ι.h-s{hBvLs ڍ3yřB.hG)[^^r ذ3y.lgH;5pw-nzK! 7CpP ˖S^~pP } hx2 h8"-`+0[Jy9"-`pz3dZNfȴBj;rSg9=_H[Лw&R`9Q>hZV0%P,b*I^9סpc ,AClcrýL"dd9J4ᗫ74 +z ?}Fauj#Sôr^arKEW4reEs{K1sA54&by} ImEpGb2L;T++xQfVWON+rӪ\V{L\ ŀ鶬n-2wZ2p2pw@wr3G,甲l[-$=)KR:{NIs;c|/7TJNLh&/qK'_ P]R`b +hzw#T.\eTV'ՇVk_[R3&I]mW |70P1!DAeT8U'J)Lb溩WeD aPI*nUeHһUmjsSdiWgۤ JoIr 3Aty<Jk=іI3MCԋZ'jCFUݣojIлadE޹!tKW^{w~ k(6/קIܘi=Yuà*CӘPy0֏Bqi-/3}cz~~<=5QEndʄd6$ZMѰCsŜ1 +{*WVӐ´09`@&:e5s߻?m٥H8 $K)4NI/Rʬ}"JDTmp7C$hƁpPNN !((PUNȪd5',4)C(=U޳1=L^q̺^)rRmnCdɓU杬9O@jb +qr@VоVi :& 67*SO25h]2vyZb8 p'3gVyJTmQٹQZ}UpfHDsF*~63zE4\άa"WM骗ZOXZێI0 +)WNceT;-/w}  p` d]z*znNV2 aڵ Pi]+orZЃĺ ȱWXSYk(y-*Em+L.Y%f4OK+c)c`Uie%ւR"rɡmKzV!(Z4IMQ2F(ɴA[ԤjIg2FYTrnHj`EQ9L֊ iU9s14pAΐss +R.x:HQݟRS92HR$1j dGyz,+Acl*4)IkZ(mP^AiRv@iujS5.nv/Pux!ZiR]#OJml{@\91C +nOuo\nݑH<i󼛥ml㷩J= "O]lbk,K5rVNkŚ `^IZR0V(,$ren3!˜/4^IZr\1{^j_/F8yAX m^@ۉ}+ZMA%5"9g?yj,cĵ!1`ͣ9hgn#Ӈ7 ̱csd@:SAT;($SPz?sh,24̑y$N[7yyDÑ'S@D4VQr JE69HBJeՍRv9HBTRHH`Lq@ѥT4ؚl5&{u$~Dd%­JEÍL9js|L $dhDa*,l@zUvU].:!(B8GXqa\UkWe+c<tkHv8d)iNN q^2AA*G/cGk'IoNMӢhsF,yQXIDDST :P~1W cnhO;uD˔{';œ2KTE2oJPbf<;ټ0gZq]5 褅eFRHQ&cqKGHXnV>GQ]H۔mՙv +@Mf5Vc/Q9GLxQkX;FF$Dp>'ǩ9XP>CL>M)do\x<)sɮBObRE#851e}S*XoRlk.c"*%- +Yۦ܌Ao#4G%tyJ*#RQ+U0xMJ-+C2]mNo!*7pXؠѶL:9ƎvL2Eip@)T:'UDKg,}W[x߲ jrN!I74x]"Wh &"a}$ii S-.t*($yZ"Q QfeY"^@^\E"BA]f1N([:5Sn&rHE29 +ZnrhV9h*u[iu+o\KaɹFݿO+TzqUd@[*VCWʶ +Um8dU K*V +UUmh@[]*V +UUmh@[]*V +UUmh@[](*V +UU! +U +Um8Uvmh9[*VCV +#H#* DKJ<9hyQpXۙ˖u;F:S;SWRNNX5u١JtV~I Hf("X[*QǼhTMDvf ^z Ҽ̊( S0PDeGiڞSC;5W߀/8y(bxfWyA`(-)fJdh9Lс6 P򼠬}HD)<'q2Pa +2k+Y,:|ϵKQΤ.L98e)Jm,LQe_!ciNfpSYQ¸A(&T" 1)JRbֵ(egs};;%ˤ ,HƯ@%gwH8׿s`&%$1ƀ&` 3;~[B( ?wfxlhuUWWbn$ (dk^waxi^¬2ٍZY t8К!dlhp /%FB*#Sh vlF᳣? {} N;FrJ }foTEjMa0V߭PFLԥZc5 ;gz98g)Ov ,mVYg|?ˎ[ִA ?`i,9pv*}%wbBxSU 8>!m +K1WZ[~:̺WIL5÷..`$@zZ  9[[< 6ćOm96HqlL:94d'w}\ q0e jMmP4XE3{BmDsc*P$+9#}2'G?FFj#$wx,b1212X[ykdwdɊ~:QQLBRY&H&O繈#LDOPMC b6? ZٟdQOP8ҪKR+%V}xU}Y.:"=66`[̲mnk1r߬{/CXp#cov{׼;)f !,QH{(\?u&3|'qF x i_S[$ph;=!pρmQ4bp'QxWkxLQ^'qԇ>_ LI?xߩn-/3.Kꪎ'3*"3nb³,GAlZIZ0|ϓw5V+AܹJ"|lW&H8J>CES!q^IëYUn!X2D`xg,j!#BˇB[gn'x`)-Dx,Aɇgr An !)Ý~bA][tN% +!&Z $8*jhN v;VO1$FhƑ*5(&(tA!rOHJjnD$OL2]%(v"V7q5ű8.HDL)byIBm#jDX(̤~EshVϓ4BӀ؝`@ +B4szH~^[wdC"`(VT܎l*O";gۋ(-n +4k\E6Gq6j ld8*{K cY ;h-H Uxao8DhoER/@z9Dps>VB#q`hS@w1hWwcKf,2ፃ)g Effs fDju$Z`68!"l6`B@o술 p%ڰ<vpֻMFZ\Woh+E z:” 4A$  .Hot&U D|06 DqN D)f>ϋ7ZR;VXtrxYSl"DY+N]H/ryR!aY`h 'F>%>O'Ȅʶ +5qE`@A*g!DtZKßHQغ&/DK|% S`͑ vRdFl0nr;ȇQZOi +RD S0!ѪA +p2% 'EYO$T8aa'yt +]_E3%@0/B$I# ~9*Ci`'7s7ġH0sT( BLiwVvm`B%RF^<82c$OY7Yj6-rz.ke8>B^.+z`Aͅ/;J)$J6K"AǓh<ֿv"JV0"N 80Y'sC i`P?MCÞ^6q&!"OC"IUn + $ +V. [Xp)7F82@vX(H8Y$hF񍑰`XG(aY?|@y˭dJR>ݞʇ_w3ߜ pRչh:t +)os׌B|hϦE臏uWB◵&MAW}V;ZVUb!{z>s̓@Jk*SRJ#[+!;pdBbugxkwIRּ~NJ't?]PSQԀ>6$ǂ- U}QDb=@b^ D2lgz,,nCVfSTR.ޝ?mG5JqJ eTq}VaTf!BMnqf| rL?Kɘ%+{M 5Ił"ԖHP.% Ok2_kj\/v?2͉(A9.}Nkc\">]Z,#r3?X *G_"t6Pi<C 4. LY$LM*)~Nr?Q̑bjSaf3J!y j6 ߿Ed>rhSrSCؿ>[&_5Pyo MTeC$A K/S;qաJvU{׵["9戍 {R[,s=[Á Rob6Vzud%n,T2l1iX;Z῅:_j- +,[ӦRj842Q)-8iHN~6j8m2Q{8(_x2m;yŬK7>bA '&`"evQn>,fȌZ3vfS@iDqoزoDXU?FݜΚKh1y%vZy u_ gKZ=ȓl[+ᬍեkTyk.,`z,_m8h:f`KqXu匄–言1d<d=8vu6UpayރC*U +?3TpWPAl)cTkGkYSmf̹-հZ*v7e;\OΪlzƿeOy+a +|^)O&rpVm-Wbp6ЄjsHc -S.糕3$sIӝqnQVsveAMlC-곹Be{_oIWz/a!x C?Sj6k8zHʧC"77rLN?O\񽚟wФZeM2gmP$aL +5}{SDwN&lcW{bBioodZ.W:k8zZ&^)ph^Da^mzӕ;/zq +m4rYK ϥ*[ct==DA:;J~NNv5ق9humaB" Ѝbf"e\^TQE?F&[ՙYxݭWM^ +YgT*"Gt(+O.'%q*3r42!왍 a[,}A0!Қi^󠍕M>v #ٗ/"E9*q6E"(PGGƪYEйE<3Euo=T -(;Oa= hs}H5Q ,ßMgAp1m|찧R49$?QK`Z@X,5_)$-^lbMze[X,&a3x6ߡ kϕH[,nbq0m(X-`,T|q'^c~XCd\ȉh@0xr/3ПgEПS'?;z8hDك\QgpQjbtCox&5\Oj0fS ye>b_NK ~$5h/jx NT57vf/넟.]dWIԿLMy9s\_k S ӓx6ˀJ2> "βaŗ &1'8hGO⇊o@?DX`km;|siwr'sǧjڽ'31r_otlg\H]oqTp<-74]+1leFj{2pL){F[- pOS~-s?-,S/o>Gbpg^O9_^fڄw(>z{NyLtrhs\`٣NW$(ֻ.eIf^.A.|xN|~k{r9͎oE,@gbv?-t], +ajljn,0.. He:g!o{KW?!&-Vkbo,甧m@ GYWg+SYň⹳&-[{|ZmbRKNжչ^߳`a7 G/,xYY"&K,XrՈ-)$%l{dsK\__,۹RRrsqY*v6ok'ZX{Kci<̼{tÄslh/??1d}!l~j:˦wD"/dq8򷵮r4ιm=(;z1)Q +iCG,jq{ٰ3Z93ȃ :YΗV-Kq`dr$+T\\s]-WzG]C!t},E0VG`\_P}g}M>wY8૿Ggjq*4{DmOyn鱧Y~XxZ{V*`w[Ke7KٛYf}|Nڣ:|Dž} _+{3_#B>^e_'I>=s_l8F*_Dž8`-З_` ~ ܆Wtv *omL\mD\[Y؈F?$wt`",qh5 -L8l94aeT1H=9 +"'*+],S{% +?Kcm R&zٙ£9N^!&5^s~v°f˽Fq-ؔoyJ2X&4,?ym)XƜ .$?t wpju ? +yxXL8ET.IH=ZtGd">A' +.zOQc*sw]ћ֠}oBysE,nn|X 6W>_jtY^KV֛Z[|ϝT- +5uS 6OV !Vt>/ѧF pUr;.. wix,HK&S*&#$M3h\ol6FPֵ+3rTAV_+﫷՝嵷 egֻ[y`zUu*D䪍P:/ T۵[׼nxev^iS-~wGF[lrg|6]`~6X恽~|8#Q8ӯg*di {OA Ϟ&W-E}k^\ю%u1|zyicWFnZuVsoLZzoC}ϼ$yx>\L~Uuof)^];RTڍn^Nf0ڒ|̊V?wbѝ4]S B%ƩHG_uz͇uoԋ}ۚ?Z,nT`5NgK㏯>:uTwMWՠ'+,=s*^%%=?z-jִɪJn/k?/J=B 55Ig&iK6;ޕfM$V}pZgp9[J8RjMϔ D'pqW +Ol;|6 "atpZ +@3}t +=[l`q/tE DugOӸ@F6NYv ~<[OGSf~,CG*Nm^X;FW>z 4Ƀe&G[ yb8Qbz86)hy7LW-cCh @Q+˺V3A=m 0Sn{K2XĉjPb=U6K0|j[KE Q#58p|%ݘlU( +t# MSWYcTʦVO)~D{Ze-h]r|ͧFP>Ql>0CꫛӞvJ {nJ*MM;e7YڭUvoISήH +c3~j&ѽA{E =нcP4bC6DTD]d:;gjG.ݓ~lJXcmtZ#Г"h#<|+t+oyY'J5Z+) 13iӎc≖#n.vNl85i-duBrU&KTx :qLY[K|QT8b/G75-0m2(QWQ? ZwLnt̰Og'QOzҽ@+j9Γl:KUr)'X >Sjȼ*n}ɳŵitb¼-'f4]B3;i$B6X pyw).XAדoZj$D*qsT];1$ +0Cq۞#5Q/ֻ즂?,,3T| -U^:sWjV2mҝ /!T-&"E(ܥ#DO?F }M۷d9BYlwkR}%l)OήJѧu 6]psv\~rsk=FCH~9륆!UBlky]!lLW]ʞh ANۋ;zNB:0:=5gxoe3s!2/[3 5錾,(㖨ώʨ#QqwkPD^SҀxߦJ_uReBt/xSj6 B@O`[hHeyfoB5A=(Ko7(û.Z k_2toj8^_$YT.t5t3F;UUv :KT)~QBhH3u Cg$Ґ)$;m?B%ũ,<\" ƣO[XI4FHoяm! + #V%DdJ5#MR !) MYS?A\#DBN-j[0;ۻ7CFC^x!TjD?T[9 t Иiv]"T 鲇 @Kuj ׊%HHT^5|GW-nVqF'%?@F@ߨ6&3/VYMk +$2 :bD1=mɆh[*"]7q k؆B>1MT{"8Ź~$4'*ȽYNVᱬ..﫺;!*9P>וYݦ21~dqegg=Qyd]HTT^6<%!C + a7\s3^۪шxJpk8.ҹ&5IKVEF&Tl;LЩVLlB;{";K]Woqƫ\j81$xĞ6NɄч(x%w1vu2P^@H={>_4xHu.&YprTksrOTS ?A>He@ "Cjzܐi9!&[؝wUɺ*H6|<܇O4[p1xyvf'Ѻ]!J2qHSy֏$N~i{#E->8`F"\wFKDW +R0l+/Z ^}tA-Op-*e~(dRZ՛6~ē؄=fX/(g3)(m'[Ž a1V`E +v=c|:Yzٗ8eϲɺp95*\$݄ (2q=fɷx|Y0ZY:'^4T9w+&hKH00d]҄5 Dy|S96-|3ԓܹ(Ђa=p?KC>Nd.X5^Ow(]p3~F#.#_5x &RɴTJ0K={bNԐ/,̷^+uy-n^&P 봿6CZ&A NW-v[S׶ ;Bn$\~R҃]]8ix(_N GC!|r?5ak $- +]^B ex0$nÙb<+ƭ!S^Wa؇\& e|òo \r^!)Y5," [K*z(~ +rPgP~RK6+ȒЏs+K L= ")~&+EjD*4OD,k=/''n?,h("K0Hڪk_Q|9TtR-MPAu/܆ܢ .2nZ"}As7޼H 1~kť^lt]G_J4z9s%Q[#2NL?qݒcD#$/]p ;{nkTⵟM]EXPJ5K?0hT<f:Hp5{!KdGwe%ׯytBt~>t3þJlBbz^f;K3"_ + +I<~!ˋ'U#L}.:uH`>1FjoB5pZ[6/?Hc.߬;wzq`Czii\KǙl}q)M}`e]FS1M@^!P9PpkoD0c[A{u DiEv f3FhWBI |h|Йyp8z2#4GZԵ5m(tltG@Ze/d#e?8JdQsBwJ]m X7BvQ<v6U + d=%4]V׹ݨ:0繋l}Of!rۇF,ThLN-֦;ki/-)ߨI6ջfLHԂokQ=^(Uf!\]&?`哦*Fdh8' fHbM:. {= tm(&ء)lpȈm| 8NxB#qB!;k(hͥ*@'XKrg5ۉH;<ʦ\3@&Rv.5w$S,sKdUPy$P,Jf82u(Mѿ +S528rO|y u< q71T |P n3[${]emX~mTG#/^|a۫J ɔ=9Lr[]ـ{fݾu JI?/.U~_?8pb") Y7 //"U}L,[~KyUv`qQ/@Oltiq<`}:\xi(SD YR2`1W1:C&O +[]@"m'B/c˦?;{b~>ֳDC[:%½'JJ5E\ԇ: %&~Kc/ hQ>Ԡ:Ҕ#fMkP]1ѵ?%EdXCE"D"Ҽ?;$[ҋה;K'ea̬ZAEyAM~.7b6ndh +祭Xчzu©TO\@ t)/y| ՚`nz3-CE{.*D=C|g8#qClg[x +7kw_LTf%5 v5ZWFP[7EC*v`i X ux^3Ǚ>Ks s +bA^WϯzP=ZYkAʆy|&ˊ. ܤٰ`^r*:a.yܝIko(ШTnt% +?2TF(#JyFP;k}qLуJ&=CŪSC 3om#ox**4\ cgk.U{Fgm!ԺpA7GLxGi҅5P gfuHؾ0\vҷ)ů}_|[2 `ޮG +W:ZOT2PhmB!žrx`He^]9 lYSɶ0v^Z3௪*ERh'd(R5f0ya,U~Z: V~X#w|4 ,:)@Ы X*xs* B57VBPڹ• ڵm2Tx` VA Pl0ևʸ^Z-OSƱT!60nƚ;g c.2ZnAo cP39ֻͷ  S)w8:&rbćv]L 9s)qEahm~,͈4#sa}V +ty午F Q/Ĉ` }. ŕ*PD!xq!͝ƛƳ2P0PT@t20mK ^*&[- )Ej!\l~x3=T8e{q{ҋ~*°|vs;ϐmf\tޥ. +?+} +w"&[(sٯ͚?4UxiJnLdil5CGDGAÉYD&EQomՐ8я9,PX9nfK͚UؓPG'N'> MZ Of#Nc~0} +CQ{RhHTz{MjlWg:M# $#ڳM;S}SָgPhOB @Yv.h&;P~,vsʣ; H?Poھ8[<~\)2.Ϯ0qk+8I-K]=&͞LF.6qzyy1LJuCr9N1:;FȪ +ݜ T}&a>];qy/>Mk_v#|vtm"iP> 4f}lY#yh10kh}޿iW"v&&R{FH)MqqԜ~|:lqT8P=QYe?x@k7%Ae4mjהTli,62N4%Q”;,馨P伏(cO@k7{ ՚RcD0i(]J:ප{҆B@)K{a"vEK'Jnb0hC*}l~*P enUlءɐ-:r&JFM V޻X=r4f ZN-M6Fe }y[aRi޾mjش2:aG-nj[M5'?CU^ +Mtk3M*: +5+  ѵ_n3ruv&kte4zVǔ^|[-`n=f:8sTQ݁B`ݡL1jqf;i(Eƕ<&bu[rnUE+{(t7(X/b.88mzUhh6w2hS@=fm8F5(8zoe>~4wp)T߮M=fA4#Vp$of*Y}GC#ߴvs{r6^`*zh4A moDs iqW/Xվ|x;ΥԗUL,.ihC7PߞfՕ'9*$q@W'5ǫߎǃۣ}kYqJh=m؞vtRh-==jGG_P -p"}D@^pX&=L3f <>0xD?`ߠL_*KQ,<S%!I}4x* T+>UG4frՑe\,aV+NtL_YJ<9_Œ= m}ǨӬtQٰI4M/dI6&Yʘ TkmY]?]橚djmIy&٦EʠD'z4]J tv[I4s5oL)okv_߸MyԝTMybpæB=Z:x:śQ|v ƛVB).)JyK}+>MsI 6|lvoi~k {jO)jlA֐>d֝f?h5n#(axO/?ʧO/U-9]c^UN%Trsƾ#?iәT\O@%wy6S6Ey>:Ug}z]}+ocoinaE^T}z]}G?nIP6rNا7au 6hţ>#ON/Ӎ}z:r:ec^WHoO)ZД!]{>]ۓ5=ط }z0҇Իrz]1SaL>{ 2fC.7u9?#[̒a4 {|9``:qRYTdF1:il-ӂ}bV(:d!j:xi.mIDcuݗif:| }SC}~*%IHS/[~?n~\Aq78"|g3;ǃL4jqa1s~8O6^8z };'|m_㊆ōGjz<}cZZM8K|{kY>ԫh }ǕW&,NUjU-cz7C{FhtRb+CDoL?lioX8S&}]~ a6.DKݤbS355{ӵS^6PlV % s l{w`yԳzɗ;.G%_ޤG{GOqNg95x#[(tKFDF ;yš.[SCIy<޿_=޿_.DZ~}Z~/4ǟO_٘|iyLvUxiu6󣖛w6޿̾'WkIAt;A/̢:KnV]ݾ0Go4>ޔl +`LR/v>;R9φ7H1ka M4R/v۷G[_P06uƞ&l= QTh0A%}ھ[=m^ xG[Eqlma@Wq#q߭[jmh ̈́gtwef_ s${[ٛG~eDRw1BAbXU˖ZIQ#ؖ 6f6` }ޱ#Yu$[BU;"c8Gmy?Ӛ㿼4͑mUGKg-/ufi\7W>Z1#Y^}]yJO-ˑ[7|5a4Wxe˳e(Z^[;re>&">קXwk +IlkqF7t~WH |t2͇{/O3C,~:S̨Cdo|(MinH8;8kǜpW毉W+pk)Vy.{;Rݘ p\TvmXnC[5=n\/sĆ ZɄʊo/vn5ɭ{Z2]pOIgxnvhuGW%!{t.^i iȕ==,:Yu3)kOb6k#ؠsZn;ўޓyr/eIo0؞+w{q;iDs!; ;ﭒ;Oh;4v.]H;~ Te.y+sK{-]*8'_]0,0ڽ]heovgzRiq߸і#%){xݹĽ#>$51^^J>П'%1^J^sĽ#ρRNIvJ^'RWWxSLk +mfC< +5+w}fI +uN_h/ެp6+X +9_lVx(Vj:W:pmN8V7RW]Z{#ß+?bkO;΃ϊ~X7:7sSo,n}/(~\-/'?B?mzۇoO~ӹ>{w鿋zgSMx{Bwȏ.ONq_/~sd<7 Gگ7N]n-&%4Fsoٖm$my5f绞xdUiA+?qjmntEOxߺճFB걷7<֔$ۜu yeH^ +;ywZ1}3gnBлw9(~BG66O>]@3it%2Ŀxq-۝pΣ'>mwbm?cδ?nz^;-).lzZ ];ґEub/7׮ܾ{ [wzYW?IppW;G}ڳ`<_i‡y6LxL ԉWկϦ_gʯ<խuzw jm uFߟ/Xsx"1_o뚟c2]/$7Qo]1[:Z׵ s_slMfX.6lY.+߸s9uk&$zg2WS|eS^^~Ow}|2̯U̫Ǯ<{($OOdߴ7D벮fȗӝȿNo>}T]d>ÿ7:ߗ +ǻo_>(¿O\oyM_u4W/֟Kc C>=}ROB"GEyxZ z^%:~ Pߨx{ _7'Fkʻ1=jJnjߍQiD~:eY?ͯ3B8cN}irx=g/<ɓ*zOL 4㏁A!:{kNB_;{d\{৪S<݇\W^ 6q[S$2KGk'G%yaKY4KN"}׶~sWϝ녿-[\BXß6TuWߝC6udWxAekIZk|9C9=>s=Lܼ/I"m[?#oRn3:!_dcme^ \-xsY۳  +>,i/^m71޽md*(c>\WJa%gD%^@I~x\+llYcRX&a\֮Xl^qtc9h]'pm<6WA0ڛ7`#nDo?>YҖ9\_Kg~ѿo)&jRyNk/iʥuz\vhE8W"lHV߈gu8{᛭r"YCi- YKէr53LgW:tAZm 39K y79NkHά/}=ެcquy;֖iwOY{}}{]K?~'\c{x ]M%Q1ciG>Ö}tLyQ=}WB(-թ ‘<0υLkG?J_ԇy^=pgE+a5 ^ T[Cb+7!ڭwn5?}?|~Z=ՙ7W>~yﬓswn.IǫϮ˯nU_<қʙ'?Ӻ1߿!Voǯv +?UgI,pͿ)}wlt׏\z7wOz,}pVK:I'.>xpS?>Yj}i.?+՞o4_n_~uٷ۩+O7.ށ:]so?n<G@ZyYyKO08 +dlwΕ'c::/>ԋtϴY]x"KiCUt۫?A"p=8 SmPy 釜.<:w>s:}Kw[Ͽ-"4Eu{_p2wu/hT?C!qq~zJ}NG\?~lÛ|zכò_ߕ7n>~s7wC{ų_v=Rp_=2W2v엯\oqB?Wz}k=yrvyu⿏v7i̙׸a 珜xQwK;dPA:8]Nl}|Ǟ/w7?NTz_W4s7_aQk_kwGr5^3gc]݁aU1ݏ4]^R ۿ߾uym8}D||/k=/U]9sufΝ|[5W\綈γF.AFOOn\_=];! A5߷_{%oߟHn^`^!&Q\tt!o/nhsTӽ/p۟wqulp]m vsFԮ͈ ']Uu@SDC\uwrS7;G].+]$wu{8Luu'b +/Idmda6&$GH*3N2d*l%׆ ;9eYO4?]9ܳ_j߿?M&S1n=>{%^+ߚV>;i.(MdƸvZ +IJ:n?U}m ZmެDi(iǷ,]Q*IHV_;_׹Z׹.%j}dEX~ggO\G:߲Eϋ c󹺈:^CZTnӬZ_O^u\ҷ[x!&ch*3>95/cǒ1뇤|ȟ(ۻ!SK^WƋs=1q#j 7އТ4Fq{Loێ/+Bq`NƘ9sڽ2sh/U&qOۑ{[{?y Uk^.wޟg?OX!/|rwCطOGۃ>8r7yOv[]^OLtu1p`]wu^zO~1*|Qc33a7̏|4?~?:fɣ~uƼ̫MCy7c10b>lg#9=E4aozK{M +/֜cwv-zmp|'j_]{ ky^wm8maE|QvAMkK*<\+fn\zxut6o7D?[<\#vxWAu \׋(M~h|o߆u;wIKo]4xu+oU拏)Iҋ?z^?Be5V~h۝sZg9p?=7Os?s-+ӎ,Og4M;FJ42Cd!XWeoNVyc96U_] g]Svf,ʦ˱h˺+< ,rtuk4m芺Ѫ(/1M7;snlR(b\4mQA.8<#9?:8V0|ϛE_CRUM]|E]m_۝(;>xg2nX ]-dzQ7`:mSl [ ?׭-SL8þ1}֔& S:/iݔdAO7³trQMᄇI;Y0Ye6k+KC?EW7-Z_GnۮFvI4c;@e@qa_lXU0Cݎ0a:8Ni&6b(ơl6i.ε#k?µbΨ`Nt$pyL2G5g &6'خGh+.)rZY|Y<Y]I&3 c==4]tHý;d NN#C+tO9|p'C +tT~bR,|{aFfhjfF[؎e7jf%ffU~pb/D3q~7o."px>gE -c TmNl(apYU֍,|^NQՂ|zKc]^v\bl0A+Vq\zS #+E]W@`ꢫc]v~(bQ79,DW {ua*KQAu?ȌU$ CBr4Ĝw~EWhx]=@(X5#.<=6qU{Y:1 6}C+ٕ lCW F1ʦ?@^!mgy[Pb!RqZ>p<OZ&LspYeȽ]&AYYz>9^M@IK1dه m8$_q}ɲLr`NA  NnjM!7AN211AAG-Wڟ2d%“eQ-0M m;^" = +M1Q9z* +|9rDD(@-@keALGGHơy9iGl B5 m<"?$$Mߔau補@QXºD`Iݰ`]VE]C=)6CqQ A/;&cN9Dns!dKQ {jawrFօx(|}8(}54lE`SwspQPXR@)\G)䬆]O$6qDPw3"hn m.C6QKʻEUk"x}}mIXHDFMV\̃ l"AW'vA.wbv|b<В<'!*N&LHD}b\$FwH ҙ'dRЀ˥pr.&!(?Ggx{#>D1]u +d,IQrYiX!A}Y;NI ZT&)c5b;F/&VȍZQ|?MQAc۾.,> zԞCHzQLiꞓ BwmL,>* k!Bx^C "701rAdKF>~NSu"5DqN/]תi<0^9샌Q9SWw +)ŖG}e lNUՔ!@ ePvckqZ/w$dYDuNO?S"Vxl| -{8u.wD!=iD^; Gc`H2j}]Qxs!M+\Ws&N`GO"pp S$IQ!H! PD05CEV5'i'P+zB2X<)AĢD;_vTjEߎUx[-;tRN|~TdK5t}O|UWy +2z*DWjDPL?&#2A )ADb H: +$N{c@"$Cq|.s \#@b,ZQEΫ_7N 5l1zKӕJiLщ׏zm0IHGSV_tp|oASЍ2 Yyw9ΪЯ#OH`͂ݰ]:y1۞_8U(-J|zs`!ZueÔƲ׸A&A(;K:YO>9/jA`G\'a!)W50X@]Yi[(;7d>nMC!Ey/\wB]Ibձ}4^A\V[Q݀w҅pY(HE 6A_dߓ "Ar .ƨu#Gҭu܌@ֱe^ݯ Al`/x}ps4vĨkۉ&||4$ G![c<]ֺ w F/HEt(/WQ?h +ィkkbTUWJ6^x7vxWR8l!د_A$g_| g%[뵼_]- ҤaA t<@dTz~9CĞS9@1VMWQ@c9 .>) La@7B4N4(&> =^M&C`UM&sZƮB K*c̼4,!@)e5aVōXU+;,U&);{1>܍w6RJV=b?;Of*mēHU!|'E{@JMEB :D[{dv|Ow4XR+̗Tތ'9ާh{#"S72[:5=ҝ}SK eKad6#4lST+)]-<=B_ (9߁VL]hkq iD z:fU0a +Ÿ<*3Aj֬p3DaȬ}l8"q$)I-fM嬶^s?]u~*@^u(V ^#TojpdfQ-&/ZNZ̫ŨyL1C5Eti& +-"E@>! +Z +Fx9Hd#秘4CN9Ľіku9 y'/I?::~[bR$n i2(y<#b7 vl \ ;iI2lbx)I˩,0FB_M.妜KC֠'iq=g6i>M4lԬUۘm/m&Wr }7zOBy]&{.!y@>)sxo a1AsvȽ:1D;{IFȐ0%?wSQMÅѵp<r)}^H@Ru@ѱ*dӑ`: IXhNH~&ӡԤ*(a$,M"U03 f;mbr'bYDb9-=MLdg oEъ+*a/XcmT]AlBgdiap%7,iZqs}Adz[k'{Kvwbi;aM +Rv.{y;8hSX2Z) &,p^8ՕH Qb vz |U+(G4=gts m&0'$o8Ƣ[PVUH/qTDYY +$qLo !kJ#f1 Y$v&!)Rs|6 ^/9% wHnl:cP8ȎEYRHX +5|XulNjSHvcD?0S)u*]!}(X Q|%B?aGDQt K 9Muș4kI5Ÿ#wD@1|Eyh0y(g2~< CN5B}J. =y&`YF'(Xly}]WHMO mru) +ϡ*/ +!UBVrZs^8l?NC%f# +NAnaVrVRKYIϣuh۶1CeIT,N/Kpztujq~/9G593$,@0Op)LNٚS ےYPXb +wJioEU=dTC.|y)`FG=sgX$8ͭKvkBq +uV mҍҕUeU4nᄪg{ZЛi@r5pfcZ]߃)B֤"5ayedo CR$%;8g!@~rj05_H1 u#QDZѥ) I:\MlrdWmy +S㔄fBOxNߡy? kSV@S4?]9$Q2(6.:A!e +2mZ:)#BViS#jEhVh,qtw)F'#p98}ཾAm-qLcHPLCfjS6%]K"Ie~(,J })>٧d(Q^b2e5憼iCrkOF/C7\uPV[>H:\)moXp"ҽ3BE r M`lVB3$s='\]TUHjpMڃ)K#HmFV.8=b`! , +. CWr¥ՋUy!('$c +3,siN7)wbd&:4p n -T ԃK`+<'KK.jz@cQ%(qD N7)%l< #J0pw@_xc)DBR00L F03?WN54H3cHo:bor0b 14r8f 7R\*'W-$$9DeP 6eU(І**̹U|8t`L(EkQe ؙɄ䎗"Me2)S +#*Τ| Dq/BT|E*Wm`Ua!w#N!}"^c~.b!L468I^DUhs8\+MamӛNQjO6b, +r-&URWoaU 4 JSQu([. A'r_yP(Q0lj/Pu%좐usFfr,\ +~"*\~K8ҍc\tJ ,EޏBW{ ablVpE]s@Re+cv! d>4TI)-Rɇ552w;{$3bѸ{,QvHdQOGQ-RP], -ZQ=tX>Yם ++SxD7%Ӛ^$Wrub`B3[Gy{dߙXN9TMrh,3la`ȕ6AZPL +`$Idy?7@[kǜ26vkVa[ AA&EBơ*L(7(:uʉ()Qa#x]T(Ja"MNnkk/o7)Ԉ$K2i"15BJxVz%|q"hggxEb1*=X]g:uW)PP$L:*B:JT;NTÃg&~YΚxr:yF)%vHN +SY$ LA"RN93[ +k5s Lus==INFKB?!e.ZljW4:U%SV &rxQ34MAuqk* %Gԕn0N+!`K'6Tw R)ZNz*iЖ4U| + 7Co> G]&Xg@@op2@ _ \FW2.jG_:5>Fvt^L7&mg]-@n*+.DT +RuW bun@Yvf Fb8d߾};Cনx R۲z͓bɅ)WSNF|jډ͞SG,* xx]p`jv#4D@.3Ou|QT6wff 4$~U.ߴs\ʶ#[+)R, j25V"UMAOc +[R]xl\3RlVfDrʬ)j7{(?UΞajʢs*DC~ qD[TDW t9}Sv5QFLj@|Eb#F5 +#d9V*@IRܱllȻX,(X+7)^ĜxbQ. *%b/ +GvMj2(b"ƆR|e=&:8rfɢ9YukcJ '#QJñx<Kw +a)~9)|LNtErw_eM +7a*k7&tJ09 EvSHnhz]#*ĖRqsxp  cy}N-){ߋGծT̶25T?2Ⱥ=3r(^r2r*aUcj!)$5EZʲ#18ӆsZ@k4pq +X(8B\Rp6\D65-E&IDa]}ܗzA_QxX x{lLE +Úy}G/)RcNP})E9[G/N6E>VP8N5H#Q RmŽi$ wH5Lg[x|>!B XiP) +OC3W&}0 eȀ D1TaLwmX9Ôb̅b}=y*h].=:ItT(:T_74O /Mˢl[xVwqwC!2{Ѐ:XĞNmh*ܚQ8e"|i^۸<@¡Rњ `ɨ+ Z#KXȌZUD(L[m n 6awgWcUm8]1:)%km7̈́F_}MƾKcE ط +4ړ4ip WulbcDqף7ְh~ *(EF" V1d6!wK/&B7Qsz1#h'mQ75J^{%?Ohԣ&F?-6BwH%r9ҸXKN4%aSePz>9TMIީ8SVTuNT(C?C15D&D3 + F2$.vz+Aqr q ߔ4ip=&OQp]x(,C$uEʮQ*z #jPpZFs^~>P}Rݑcy\aB@0e|ak9US\~:s9qWJ}wI5{j#CAmi!I V#n‹# ?BՌ "_SꜨ`f| +*7 9ĥS"!J03 2c`-38|m0.yM.l8vk*ph@N뚋=HxWKT,z#*) =Q6*1ԡ߃fm"v*egc:A_\nG)LM{+NyQ;r4¸J'b6(YRȚrZNo)rYfȡ\v-Ր= §\PVPpT %v.Զt0d}pgMN)0 TFjVs&ܙ{fjW@;REVdꖑ֧9?(#қZ}UAEцPNQk%Ք +NVf 7_HmYqE_S8Mϵ5!4 XP +MFG>ȂE"]id=P<ݯ +* >uoۧ# 1CM>H+H8(a ݣtk>Q1)WU7q; +[n1UpMØwdgOXĤٰCp]i`.mC I9MV`]d`YQTKTKpZ-ZDOƢPG(ĒP̠) D"{ck%4v}ij0}$:6u\VR.erv,l= WtEP| ߂=doB[F%̛[ՁZVIn2k +.ч֦ Fȟa5 4a%a[O-uu=8lZ1Lnkk/pAQdd0f28r +܅_I'::/MB%yb0^KOhIlSLNAV_T'=>½>`C!EU_ʪx&`" +D1VEJ*hc4(d(j湟ơ*YdxJ3Ac, 3[%@~Hb=yw9:br_$T9#-Bs[ě4֤ +l#F޾Jefif~*oQrQ>r[<`=~ր604}>0ޛ\ݘ-zhSK3yCR&H/EECX4ӝ]DEjY/3 (D@XL9rcћ$20Zv%NeC$YΫ^V_YA]_Vm5 UBdyCW_{1(L-%R4$Vm7Z5ӆw-N2BPp(e7K?rPLZЌPGq,31r$gQXʴUD=rL/EL0mm.,dNI-Oa#ڶEm +~$$b ]mJ=dT ρKH+uI%7 G#t Nuk>3 a,FsyBKB2di~N)z: Y& +4 +'rZe|ݾbq2t&Y#JBrGA. QTh=ҐŕGIlCc -v[CphMF¹j +\U?odADE&wd/M:!8!(笫Hܸv^D ]%akH*䲄1U۱%PVd酜H7H(7P.LV +&`K"Ki=dRjI#1!`NApc@ڧM_FHH/#2~mhuC_טUpyk{r@Kg`7t9%涧q=x)Q(m9Q$RSeyYT2@z\?12s JYmş-[8r:}3N[$%&Y`] Faɸk}SDž}V$@KbqMvISǾp~`ؐy;VYm!_7 o!V@XsO@359T +݂;Mmy_ c +YcOh[ dWZ'ʞjFϰ' wxTپJeԔ;JѮɊ"ɘ(3i_*V|ݡV1瀵jc@M>Dl)Q.K_ +$b3NpGfK΢iiBgqQ5V} ܆'X׍1HYcA\NlI鈞9ީ=eH-j 9)b/gRZt8AF'a7V <^*nOo)`{ѻA!h6lFX58fGQC(LmxF۰4G 5S;—Ho93mb-='1AXL^?PO8|m)4(/N9_×^qzdnFk?r1i0;%_}/BYG4Pz ;Mus(|nkIy"s{"zM64Ŭ:mm$t o+jiGJ Lw(KV PdnG47Wmr)!MYn]QVt1ヂє9:9%P^Tx"IC>E`9 +"(TDmZ\tN+:G1MiE2&Z!hRPi'C ++qs+ ടb̙מ FRshD-Dgۼϛ +όCױK 2Soj`=zKU<5§3!' 8(\FWiXsҁP& +Z?$ڌk7R+ m`D^O^Ra.] E%jӌO7kjGt%i!T +ȝ!ʡRR.{Z6-x #r 6mLX Bfr㴳7}x\J^Fc_)2Stlhw@) vAYs֬39{tqRy,b:g؉6=#˅pSХ@^@ +T,^b^ҷX8}_a)՜:6?S@@# Hs4v)rD!3DvNYS('HڢmY˗yGy~V0x 32"pVP/B <ڧd ;Cs2c3+`̕O +Ꟙ=ttY ,|3uĔs`(t$'{lRN5lRa)+7kmL ̶q"+mOk3 ]0{.(eun $ ĻQr7r^W;Wrǐw/LR^ +*ZTԑe⦚ѵpyO@RE@ѱj +# ACH30pn~rP*'MPje [D*0sKo9fv&@u+ry(< [ނhul4B`LPD;7Ԋ"k`Tcy.rO 2gds K7M)07Mf&rv2mf'͈tbi;aM+픓1Y O936!ig0x=Y VR6L"]"HӓG<|C[e%q=Dq U ʿMCF ӌ +B#lki+KR^B4C29Q}큦VgwC^1mc>D>CpBcґ +Πtk{/8MiUH(D7ASP kݤgNЉMfі|6_Bi5>9E@MXEs )EmZ*Fj"7k\@Xr/1f͂?dkck7[W2~KNhǚsԇF2|4u;6sy5ޢdSh y1;%GlH[ +|&^/ +8K65.-.Ncwivw*Ys3aSȊ.sFZS"ψ?iI%=A:Vr 2)#dWGw;Vvy HexI,; %>(,W)tۿ'ʪ8#P1ёNɦd=x=́ZVO{E_L;@ŀ0mY\UsO*O83 +`<C13pǜ!ΥJƙ~G(p7]MSe$%cw̗Þ͔'=z#~FT!qIoh̀h^_uhi}<2zE.Fz). y90C)*R)b7%b:^#jx&?R* B3 +Ir$$ԍE]B| .41VELWp7XxCq !|v6cGpQ49na yhOn)«ZԈZ.T xU,xgiesMGI\2 +OJFky64HφD~5 ԱnP|TBeIrIw@k 3ulV3.&x!ߩ +pHMwlnl-Է 'vCNIgJ5It> c G9DY4ΖjX `1ȭm;D`D4\R瑝rs= 25AH [ +5%vϥm +֕KUEGU&b7Ew3gUnSn’XDƒBZe,RۆhtUp,96ь:fM)fDFFcE|DQΣ^sCb0ttM;,`Zg!p,zCwR AS*S% 2^8~MX S,heC͐LȄr:+e1{Vih_gacmDesRn}\99  fvrZhDQ@ UKu:pS92-*-ל^ [C a"8CZWi,koGH:?Z"j\Rӷ4/=Iq2m.˜.5}d~uTl= bnk) )=l +xDK#-9aޫW{DMQ!mڤ(]dۑ'N6Ubiԟmud +-CeVd2 V_Fi~Ш2˗fVvąL8aڀg7ܠ #E ҖM}s JO@Hoʞʳ" [nZ D6|K`R,iȪM/bgX:C((J,QS!I+.ӵ- +`U"0xaaV4hc7&(3fW)K| JnKZ:XbD5EA^v TxC@JE5cpaDfR>iliEl9zըpR%H~NfpT.BuTyPt:ֳPQJ,[Ywt^ҤNHugBТ?<菠E!}dD&j \R@>Fn)_1%uK0ity>5jvm9hק#:-eZ*$Q[ت0C"l[ ŖWufklʻ7)\jn|AnWθi^ԋʦ51z_E-3{G@?Ĭ2S "Km gsIwдN K8.ʎT^H_E(RHSq0p7AdJ6d4tC.lĨm2ҵ3U@9^ǁnor9z X"'Leh`PIh&"tHWe4L1 yud6HQ`H,BXG +%uSy=Jљ=@*IL WT䱮(ֱ6Bc1Tji Gk~!8Ռq>;e6~˺6u+,LdwA\m;V>@*Hp:\PB;WAzкQL)A2R d>v5Rg?:W[=٭;vAMi$/J^Gh^k"UM1ǔ1!hpXB LV\IL@̡^> y=!{JM4qe&""#?qCPdEsƀ.t8~R:Zܤ)Dx".aG&@Ή$Dn\٣P5e he:z'b; +ıIj6hlj"ov F{ bO.@I&dV%b %l6.cٌ0\甐jsPkhh'Fr˟MTe*KĘW*"p2[n(#<ܤ51(bkA*sX5yMR̈T&S "ڎʁrzZAP(@ݑ8+C&|>SD3{c;v}b|Dt\_l씤Jµ[3n{$&g*fL*$0 f4 r–k:PUu@)E擉.֞w֨ &ȟ&s69RS;a[9`}eK$L! l]!_NKnEj2"#C \{Qf\"NHsJvMUx~"(d6fvNhmSBD{ |ryBqqxxa"1VdUXch@c4(4x(R.?xIx r"JW=tؙZ%e=yW8:br_;etvE)snx՚4aem9]m+nK1ȣt U2Q -7a7ar2'w#q*u#y_MʢKfbsQ)k\༙(?{9ߩk)Oꦝ!mh-7G0d(Y)3d Dt 4ւ dLSҏK/zJ ox4VJdƎ<,lI9I׊/YyYA.@)sFq=ڦ\mOU&hV#NĖmgh(Z4ӝ]DE޲ isuU~"ov>7J$aMΠ \4*A7|>-/P%q0P$}')g%yr D}/&xD _/;{BPFm%,0P,ڼWyϠS0e凗el^C<GC#nhѫ0ϞHPõ/y2&HV>stream +]9q(]R̹ kr+ۍ +˂㭗Csrg'Njr +%|QP'Wu ( /RpfQu@?S`O~yyߐ7"?; +DQ8ȗ.srIhY-: +0N ~Ido5emo%V\ϸBG(Uvnn4qjK$ ƆCim6>:#̃"S눱^e疈6P'Rz-0q +2ۼշllɐ-AyF`>?bw\[U +8Oz@KN<bk,1+^ +\;gNY1)ۺS@dy{((Nr n,B$rlzmP[p.4?ڽ`h`~YNRQK~Ր:ܖ}K1\/4|9; ؾgw qt ~ޡ s[;j;ۻݺml=ܥNc)@,v:86SJ[)%B{9osV-qd*yCwno[&&k10߮y1ŧȯ9^3c֗Abzru1玠mG̝eYksz9Xe7s\d +b/]1㎢o{u;MI|)MAͶ × I_CݢTGR3kjm›6?f^FigTA^ ;i3xxNF;OӱoV̫WH Xa~r 5r@"stElϽ:ϩ5;CN5"l&[^I.u_m;B1&G$mÛ5Ż0>y+6z{!/nUTP$8vp u*MAu}6m_Wz?'zhPփPeL$ܥ~ UgCz8opQo/y'li*(fAo*i бk0%V@d~HcTRNurUIƧ<$$Uɮ$TG*M\;nm>(^w6&9<@%$C(,1F@h^fU15" $o=+"e75b[af&`[QlpRkdǚ[y~ZK [,xy"om0гCvn*^v3Q&֭FW%Vu^Erh̥>ۃlNfG7Jvo&'RUD;ξ?=ɯ$$v +P=X שTFـ| +[*&m:by7 eG!S #Ptc7ddžy3x"QqjC[oS}msKQ-V\vکQouA?гiq~fWOe_wj?JoH )ArڨfV ]2*Վbr=_v'ybuYa-rE]O|*…) +~'U%9_elPs"y5OcMzb7=(Wٛ{#="7נLhb_d0w>^}W~DWZK՚ w h#/ϫJ;5:-Qq~!J!X|4SS,Drv)Ƈ(IlBÛ,|(5xukh +h7;>\~oռ}XysFb_nN{yݽmu+|gt>]􉩔Жf36S;"Qzoښ 4=Muq?<-S^Ρn_tש҇۬n}ďH\to?Ʊfn^ٵ3LaIVwK)eo0~5G Xc~OtR6k`3 pR<9fa*ܾQkgOEW~^s Pxx9hs`kT׉ed4kKyo +QOX| 8 @eJv\J38ԣ cd'89e\aFkvY  ݬàcUQrʲrϲ(!S{ЃgyTPqdJ~%.-`g}KGH֢?;MPWwpG77ryO$`z[o$U̗G65N%WH +"S9sEC-M&;8y2QS]b9#c0ʮϗfJh1Lx(vd)/6v rqt.ѐI;q?bR(=/MI-hESO? z_-P׏U!NZW_9j[:q[,D,l4Eao =\(['\tf. ʃwux^>d\eIOGgtTao\G 6@9piť;["1MF z2UNi[$e +Z[- dBvLP̐FD?r)#8s 4Ɏ/;t~? Po5i$/H}R$v2 ѽ>FZ\)b⩐6hnl\ +#1Mg|ȮTܷ(Ö:_OݔR\_5 &ay^b[kB][kPxˉ o㺵c7hrV4Ih[5J9uj}pRU+ò;I^!} 7K-zs2>j/NDZ#j6*MD58"cs9QT\?h &(8dԭRW 5hDA4nY|a˖Fŝ9x^/y`y5>HlFxTކt;ߢ{pLp)SC!lBLn\Å3"` 0w]cu+T'.I/`kHm]}jd˹tnx@( 9.ͻh7ea].B+SA fFobni6OB_ۢX-!ݠo"hr1ș!.ia9Vt:F|rx:7R(2 +~]J`\{v$cl%>[{mWM1_cdnnhPvN| `%>[vn[85]=gut3a(Wk ?_Nb5M!&*&qML)7aw.|# PMoͻ|1] ńS>yG5Zo9:v}.'vOh =Q؆]P;~p~3}_SFO|-v@)=;2oO$ӓw?:pʎ$Nq?3óc0C|of5?LДۨ5b`)Th0-כ\GQfhIB D$ s3;^-/BX*GL\X'J|S uIF/ e8:`'Sehq*w~P$`\4a4TiH[ENEl]QMY&cPjR{ 2 N OwT3nP͔yT"lO:DCbQ8fّ+ 0֖ҧagrb]Alh!m)nr]&vGY>yRq#)]{"MTs?;=.D1CXU<tm>&,1^Hz<3ҔibE46<'Ɂ[h?tZb-V_D^NuRб +:?c}lxJ!M>Q:Αiiz0;#)1lDM6=Ezꢢ]`l[2* Li1+;I1;! к{Z>wwi˔ 4|L{I$Yts'я,Qt.'r KuQႚcUº?@ttR{ ahϣEZxC錹Z"gPf\"I#t[18 qbTQk&=+Zh}lyv_&-ntoЋ>gn sjD)I{Uf  Av5a厧|CV^+ MmF', U`Zhɪ,z4΄Άczw=W&jA ('򹠎^<\"cG6$QR l=盩̮T{`rC@*4u[eQL +**,),$3ΣK^|(rǔvmܕbvH!8‚ɓCڒ)k\" +o; 2MˣaL憩􈵋)D)ȓ^r]!k^ RQM@6r$[::W s?;ЎvjR1{Y$}1CY=ҨpZdb +P+J:$P{q `:?2e.Lč TȄz\_:r\_% +hn'=S~230@Y7uh&-E;ZEڙhj^T< `*C aK!Ah-J-k 6Џe]歿ء| dw k(GvsOv,/B)^FkUf=Te1۵OmP͓5TܘϐN?&)j3Wkq&TVGT^DTLJ ~ s3^a>"Щj<(SL +кwN'm܌6^; eFW4y1xoz0{AKEXFV<.Ot]$iJ{XU ++obSD#d@ӹk}_275o&DsB&R>ڒ(Nhsy0lWX쩻G[55c=0)1C;s!G~9@D]fl k:jR~ߦsǗ}S(kcF=צS`^Cݲi~vjx9f,LgL?@cjشh".- m4biInܮ=n.7 ٥‰/]ox1zh5FoF%tdx;$Ѹoѩ՛e*w^'u0TK8֡VP\BOy2g NGc^šG3BLB BP>._iŖ Sl97aK>ɜj d64%P0rǓwdp*7GA.Fb +!H¥UÁn3W<0X\ QUyTF)R6d>\ k{@~m?̏TnEMZaV !B =$a΁-A1u 9۶`:?ee˸PѬ\+s9:OtStT684c(Q#3t䴃}lI`s{C'0"}^Ly RI z%e@ws#c` ,:zפ1-y KID"0 "eW4H%U5gm3t~1-j_J +H,uoC)I ،41zژl-\ZM*ok\gT;xp{L'T@;hԺNXV(9p΅=U[įg(|ɗ\҉ =y?#911/{^rf"v~+\K@#,Y95Kn*N>%!3a[͵z6J#oKvQGL DyuN؞$ܩ5\/ӔOkQC=dZAם5/(Pp Hݥ/6&hmmH_ +\͵* `AB?#Cfd0[y(SmfW{ *5$q83=g`Ԕܵ/g:Ae>O# z#Ƈc}_T8TE[(r̡rDTpENpdF-K_.D89(9&30_%WޜF"<ƃ98jˈɮ:RFg=z)#BI(*gV=<.Ǵ*y0;>F*3W&9sFUkTդd)WE+6P8Ȳ2`Sɘm,K2ND̰ ͕tZ8@vXZnDF@)W–.hl:eVh/O4&tA <ʂD'jw4Qpumؙc4݇M''U r}/ETAΨ|KZI^T0^V$J; qӊIk^;JB `:w|Q-Tt*}(YP#w?g:J"K-H$8( ULQɹ4[emt:݃3_kN sč,Ta4eNbNQ=l#$ȏE"y}\FArǔ!=?ti8]_aѠv[$sBkNlVZ>Nu9Fз1d'#3V z/{:Ũ +.hjY6}PYӎet) КQApƹLv`t.c!kkc N?YBF~eHҌeow0)Ҥ+N64O9E~fm(%MiXܳ"TĊXC$x#~w=t~de$GJC!)8"+{C@CPIva-e hoaJL[,hR^M~Ms 3*T˕OJ׌OmWQأL'hRr/ 0&U?e:u݊yai"z.Mv E'Ya"?3DI>Ѽl@FXl%+yxI&|nvdi )0}JdPbk?lw-SV:Nn|U!Us(bk(ѝB"V(LaATuWc];}Qe8f#O7ae`(_²vN\̦t]5Jr +bw؂pq ? $By|Za S{T Y +Չ [ay᠌ haƽ <5/@3؁pHi]1Ɨ*T=h&} nzno +ݓqnrÑq +R=#EDɑLy O 4*+EQ -\}1[6oc ǂ8Geh~ *׌5ZDA2R*eU +y7RԽybpaW=~6?1GD(.䆁}-"X fCw*Szi@yELV- +OSEa?@uH=9_u <颥lC [$q--+O'S+ ȋqr _3NZ|ߊ)>͎꧳Xڀ,G@=_Hgb}6?se/NDYyhٵ5m +@]16HyJA6L;N̨O4$/rA9AyFJjFTwaw8fjIk`¬9vG|3/jьWzV4=x0$4p|VԦ=7sF(bɏZwJf8&ť0D'ÃDosXX4OZdiZ J v E^clxs2Ka&G6 mYQ|Œ"$9A۪[6RZ`|JWya(E0nrKyɏ"5Odk0\-M,LeU"t5*\ؖmx I„x_d{+'@U +  X +L+E:u0`rćd'ꮛ9e|l~j߀.e5D$tPU g5~U;$qY!0R駁d:‡̗}Y޼Nzx4sC+8rUB̟ڵb KCۤUf_[}Hr|آ *!_+zk :u~%;5o*$H3)yV +qAvs}6wlJpO;kRN4D*ʌ yy7螇_v$ 1@$dG(pKeki?crP;6>Vsi +U99TpF@r `(sRVx-8j> T00O+, B ħ-V$%ɧ!2kQҲ7A=hX|7Lݲ|I>~exyd5ܝg[99L&wO PMX7yW,!z&z4y"mˆ.oM~0:*{0/b,[c\(TVyօJTAb Ls+'j2PѾ#| +~wܘ ~؀EAl]$+%ˌo#T)Ke +N.? $ ;η,ٍSaG̢ͬ`5_Jf'"H#H`AeNb/R$,jNo sXߓq0 6se.JFC]D Yz)AމDqӱP:E;?c>F*.Ipugs'[z`R&R3n|B]w$-XaAq$9o|#,31HfտlV L [XoIk84K $5oҕo1>]6^ S9 A܂2ZT E`^zɍhM3|4[h#.R5@q)'4窃DD8٘Y 0:FJBЄ- =;n;yQ@:t&?qe "K6 9\vu]3aAxE `:w|>y,%#(a!9,5[l[;GYrv]<n&b)@_b5d*AURLM @a&\egy~7<Σ;,7PdC]y˫sA&+k> +) +L}T:yGSNGdG);Ax|[)R0Y佉H;.V992'@sǗ]w/+B~|E@mC@R)qv00: p۷1m0P&V +A3)pFHQ78+V{M~#h9s ФKΊ_sE/:z\^L`(k>^ol)a t3x߇xe?3AyE[Lq$hF]eCats{5Nak+퀞k2oҊoNX\ ٰV +J%EmQWQ6D,]wog&뇨GD۰@lY ٕj/RKƃqai?,-cP hUÐDaKvBrޖ I*yEP[s/ `:?sO@R()Yqj[@aiuU@c<5 frBƔZwho(@wshBf4h/(E%hBrwK[vw s B78c6ނ~L-ޡ Ã|y.K/M pA"78sU>d2J-i"EBJ&jmo~ *|lk52ބ"} +̵qy0;욇}",Eb 7^+P=C8v>/Q6W.<*ޏr?;~hxBS% nW]X(%w#Xui_d@OsǗ8[SFF<Dl$40 ;PA!i\%L ؀.9"j,~l;,رXx $BCnU!׉IXZr48f9/H8Zcρu.z0Hp 4 (]~F?AS(P4EB% PO2EZUH 8'Y-SUXt: dp)vkt}k== .(]*Q3i4cuB70&s˕^EgR)}&w,Y?@+[)R-⚡ + HjO¥WsРEĞ%Kz5I$!3J`ӹe|c4gj)]9؄T35Χt0ܑ''??On=("p^FL +Vc|GKB-V%DwlB 8Mk=Saϡ$r%Q>3'nρ8ibġ L +Re:ܢ`糡^ K$;;HtY9[F7z"[u +S. se1gIA"]uS@2@mΑaTQɑ+ƒ$-(Uテ1x[)|FJd5*LӓawȆ^KI>Xb)0RIJA$޷0s}'۷C%XP-Vurz-PfPxcY)VIzŗz)A\DÏJو*msٲ@ @` +JEd`p +%Zp6spjb%|T ϥ'&9פ{ (HZS0Ig@ a{|B%w BuV:\p 1As1BBVǥVZע{~݃9ȼk 3r + +R0دIv蠊94m5@͙YYN x6΃ܱrt:M\!(˝.`m+yv"TcJ?Ni2"=h*}4d~h1prX70Ivȴc,摽/uVߎ:܏@sÖ{@q)5@w[HM Eͅ[;qs69ȍQ>ɘ}Ñ]m_ +ECMx@U<; +2"~Q5hMq {G|3&3GS#'Pqİ~`S[nQa`~j0&y#QJq?Mg +ծ2RcOƹ-KL\ +_Q.Za +j++UQE%ҢȗU\t."`U P'-gŏ=-[kQ>1^P 쿃C^]S2Kf䮡fSvi&b{1Yڥ Dnؙ\ؘ7fPuz NW ޫ!;f~ln8+[] ZYFu0si2_Nm@L׵pN\ y#Exݓ_:@3λbm{drG>3T_3H~s򍐸A +L*U +oV:"[dIY:3(ICK +v΁r]Le67V4QX3X(Q ]Hغ +h8 }AR Jۣe28qrEG0iA"vE:9P$Bk ^(" od(8:FE.# 0u, Td52$[]Ur>޴'Iٻ(8)g|LxCuL +NaS YQ) Y\(t`$!^=&|mjSay42KN<:־7O'DQ־@y cv +~v:7lJ!@R+p'"N"1 +͎m6XG3$WX$r3QlILGLAh*!gۂ'82!*EZ(}i^d!B1q%H@F=O<ٚk,=Qf.~r. a,,ss t<$9LNGQ֏V`uYeѩ?O厧|C^%T*uw=D5(Ω5eIT ϳX:e?~.wsWCTID'r`o!{좯P˯)֙$d:{B!,E=?YLZx֍Eu`9bw'`p"㜑ѯIu558q#@Ғ@ C7};jl| T݆zA Qj}CWV@@,2+ݣk>tز@@+nM؁gPj2P]bX}Gd_ '0@hs4\~X5ۀK%&elby]BoXXW ' +Dyċ^ѹ<>O%g"p +&UL'5l|,1kmUvhFՑnf:&?>Vyi;V/=v\Y' "j`~ۙ1d#F-]45E@ݓfC&Hm9䊱NՓјg){6΃̖%KC[efBWXH +?7VA?c 8uuAh[]qIpS ȅk lBS N(lsp_WSμ3aLg,%R"`*Fפʈh ##rXPJ4=_u7Σ̕N$}E Bc i'@DQ+2"=_lOgo9`q󚶶 -|P᠐NAO +H+Wfqgy.6ʩZ1פBX2Jר?:҆ߜIyr(ڃP]xo&byG hKϾÐ+]E ܩT(F)ΖK^)NaG!;ג=n&wagW' +5DUZg&!H$'Ae!6H@^9P쓝=|@oB¿:YGKRt1erʊ&QSc ԍ95Aׁ~67L-GNB\@k[T=ɽ"2.QHՔdPIQ4ƒy1dI $nZG[9F 1 .1&S[W9L֖M ~ϷDordlG^1|.F,Xɏb]\!ݼFI|`60%UPG4{A aKʼ艗Z,(.%MA=pqL);u5)!t! DG #E~b:oUBr4m0ψrF*Hit⮌Z. "}MIգoQ0s'PE*GaG&Eʁçu0-ٴ($%@ s j03G ܤ]vAIɒ)5^'B$(TY ш+ǎq+8fs5H#-E{BDPX99A a046ߖ6-G8O&sǔ%h9l ;r=pc|TEh4Bc2p`qZϛ(`6w\YզakMuj +Ur7kv]̴, r3;Nl.z͑m=+**Y PJMDeoHTۧYgiq"g]ǹJkV>MND6XiZWxP2} ][mR` ^Dav;c"]_H1ktEt2ˀ84MwJ.TRU+r2e߲VIN+`ӹz|!9*1@X6 +`fYr@y:H0ţQscjp_߿_*Z&'+B")(:B?2r6B?п4?7XdPt*z_\ Un2F WKWpkD%OӥY!82՗/6/Èx"9V@%a^Ta2xG@]q9W %Bcjޑu(v}hk dJ@s?<Ǘ/u]s^Ƥ\gĵ?:jHC= /vu4`'|B33[F;}FB5Zy{/07dyc~6Sg |}^|/S4(5d _ӵ>TjW5c@%APU}:@ެk!Y%#ҳy ӀcFS:Sy0%9EwYatdg'l)LW#j&7G9- +1zQxii: V1|$,@Ͷo@j3 Ż9 y:?Psg}~C|9M z~7kIs( X%pqVm +;vLn5Ck2i5ǝ}gÆ4@3e6{X9J"i_nN{(&[Dal+#iIBwNHJVq]!p_Ι8<@vtrGfI#[еzPtNSihg.GnLd)ɲK^ ~ړvDbx7mW}X=PN0Bz&0h*Z) fgȵܲOs:ُ#$EL&!;Bиh +KyH})u°s4?HGF>B'ux%"<~ k~b@b/D4<&%m?ϨKFb6.G>p'Hfg}uYDTs;!7k6)(!lڼt.0H>a?>z~n 9=m@Firk+Χd[qm +-Lwx ٮ9nW%"NT3A2G2+]{(.sx]兵IWB]8J + P:vs@p\APa9i5%@/$RgrN3H(' M*xCN #x̌VHv0A|t[ݮwǵ=phZWFP%_7-P edI|rSmڐP6PZힼB xmVXGkKhF).ڌ:4A?v[G eᙠT%P$B)S/^(jyQ|G7yn>dFM~ۘ|7蔒b]Dto`|:,Hnq%@s_c/ruw[d7)期ctPu:C2AP4Mr)d8I@𿺛MZ+,q} ;OC)lUorQRK/Us#I\ƨ$+/WK{Oksz@PS*Q͘VMݥv׼]w~-fĝJ@ +%5EeWh1" J&s暓\ӖdWmZI5C[s)F6@D?SN,O2 |$p3*R'Ý/gr{Xߏag-3>HrL P©S'zNaK`2anH4v_{dɡڣC `7BUC^h-N 5{pe$=(w8C 73/ХwF@z]iO|ȑ1Xv~|֤~MVgU' H,`1@ae'C E0;t&:9PsԥY05!"&|U^&ItweY;eqdEdR^FW+>pJFJwVvKZnFIwr @6#; ݩrZSv4R rAR7kt| %_s?(!c +8uDNF4kĚ2hj#bw:3^ c28xoppw OSW?}d̓~vIM:aIъl0㹂Eas"T=cq1E)57҅~MJўHw^W13:E_Puo.AEX /sskd"E26?\iv9-16jڣI-M67WY2ZCWZA๨&)gB%/a+]= ]._c+Ys| lY.'s$r_FvJgωiRIz'M_K gp >KPb#:I"((IB!9+^t{$s~M3"|,AQo[ IQ_P;yy9o׃F <9|%dr;UV]JH@ZE KG4%f D5E.+?$r{v*A$zQL\oOMTlXHZ~!@q4*4a;v;9| Q%ش g`[8/,āPo>qx7׺¹gfbm8I=4Od?U1f=2SId\`‘Q ϗ]p&{ +>ے3yڂ,_6Oܵ.Uڭ1qU6-sdm%`"o؂C@vJGuIBP8Q_A8D8mOwp +yױYDc@IV뒭S1~]%Oo&"`TM41!qli` _Q 6uat=& msluy3xsYzn0pH59h ^>V3NQy bH2t|*wЇWçJ +2pZ0;[Xh)+E \P,7mW^=دNo.q +jŷ -+ n'; Kࠨ*O# /{?*3e,h=$ "!_8h/΁+0QYk@V!+sz=s]Ϩsn?|]\&o_3^# (UxM!mϣVa9Q $\> l"3;FI'Ȋ~ͧ72D"cJ@fʖd +ᰩ][CLj?1x){v( zPc3hLJ)W!#E/但߰.۾ ]狵 \BAٓKD7On@^{jw@C9UxjOH EnlȖmm |A}E@<6 )15A<Ǘ 6u|Ѿl\ר98t/5쩳Xo?84n,Od!EW>_>~"߽ʿ&ž6w; mjkH99rP`p>tkIGms2HDomF>Y#ӾO\^.DWfkKW]Y>$l-[@W뫛Ifg|}9| ̾㾜[jI/?7 +}%  [)v3b~۽^z1|_wdI.ez2L[9B̳ܮNǾ)4\vEB/7cVvoo4#Fv6UwW/>`35oxm )514ѐ9Y$m7J!dCjEq<.bt#UoI,{?K̚Yt}/@W57 g<(#/c3TTm3xqq, Z_$rVv@]oՀ"ýv֐cx=Y5U %J%['0h"fC5e4g#,7H +w}gbs"J)(Tb@KJypsB2!yIN 됎{Ţ ivi@pN)J!s<ɐ*YGaDo˻<13jO_F)p @<-T '̱Y~)M{] plV!ma+hBth8&Ck՝>] 3 h<  D1 3=HH?aﮫK$i ;<@.8: \Z~缙NUM[I8HkίH[?21gV8wkqρxoXH? lRA98?'xԏI}~W5FRY:E,'Ѯ#b{N( k(D#1f]~*$a eنS.bU[#ʼn߅ ~)ʓD+3gbs%|?ngbrFHLc{.9G0ͫKߠ-H&(6듿TtݱF.cJx"U:XN cWJcI$\#H.k9NU2`YZu%0&A)2K(PtlRxa8{0Oj Qǿ}tc?~Ne^@&$ПHȼ cT$-^x鬸oyscm؅ᬧzҝ.R~Ғ ;W4eywGm_K~yĤrn:KB6F-X5'!8oXwJΫKjob{K/W}v恘b׊n? >6laILf(Zv Hn: #QAԋ¯+xɠ' :}"_!)]]Kگ(n&[K$3lPfחԫU"9YEy9IWQٕׄLIU[DwKM>yy'ʢ{sOq^Y9tڴgo+~TWhm_ +k= ֖:=kޥCP+6RE[ 'OTh#G _6Ks1= + /vSΏ4;pVy|:፯hkEaF?4gRvL1˴•jrc^YiVΠt'[~qk&ǐʚMݾi][v/}TЮ28*w bJoo}d]]s('A+[خٱRTy AS]Ǹ*<Ϯ=΀8tUeNX5F)}OpڦA]*n}2=~~īHRp]c{]%+FO7h+85)h~AرV挳}˙eNY&y tW |HߗnWzC>M~C Ώi2Bp|TīVhm2 -=GlD`ū$}BoͿ7F +q2cZ iLM=7՟~$=OrUw WFm͹wj7dHe hj e<fv4n+xgu*(AI0vnB{E@HݏPH\o14 / @UXeW|7Ht 3inJFpwF/@ͣ%I: #L4AY3" ̩gr.ԙbTm˭ڵ֨ ,EF}9E6:~4P^]yqB|T޼!"zwgHmTsȌj;8d`E~}(:YCn _Y$!kٱ]z3ƧHeJ +)`UfƼc>r +] X4aYm>v"V0.٣עMN$jn]xV*M3uEW.W4G>@+@;aM?9+d<[At{K]HkG #[_Ulbatu3v8#ErL,<.vi~SD&M!in$ }q?1t8hhs<~G`(ZcFQtyѽ$oƒ,M=T2 9uef5G{k +Lb 8WfQdJL(F 0fB kυ-( BLu¥I'"Ľ0ŻϏ8&C$_y$l/5:.qaq2ܛqimI')/pQݧDY'x}𨂘m>V$psJH/kF)CI*,Mg_Ͱ|nI]IF*w[p;C&vx\ o`&6tGg/,MMcBg^1&$tgq>H h7Rcw4+JG`.L?Ƹ(Mx68?3<%DyWc/'e&[ڏy$}y*O@JP]OJLMN3 $j6opN Gu;Ku]'%:Eϻ?}I@, ^[Jjqu& Lucm6Mp M]KL IOխ4eԸ/l6 Z -gx)1x5򻏆݉I* j0s/ff_y;GN*Jm= 0 :vZqPS?]'I>]~a!KUEmOJ%)խ;{vingإ1^tP+|A$=7,jcwEa >?^㳮|g'kW}i #jFj\ɤ](3h*fLSE7;O҇\rldY!X_u{pECyũtӈ -Ҩ`)kfJ\ ~hvꨌFSl_WVIy)XS&wP" +]Rq/D~2#~>6 OZݞ%\CK˔Jjo+c%tݢTtu:4q]!tSY7 %w ɧ?6}j1\w΄è)- +9bᢖȹiK)ݳHN)ތAۗruv3ikE@ #7UdU[#"z z}Xqi.S+._/ VDUu;m$ Uӎbg`CJɫ']cRʏ+V*tz:@̢PY] ~>k ,Bn#&+ ]̚a86Ⲗd.Acw:oTCbQb. v:ܸCNnG y@(Ξҕ"N'J$җYL+mi3/2F.QxpkS.2Ҡcd¸y N;ƟjHv1U݇a͆ͩC5goyEn:Z{c"v2葕Ep ׆n2n>5X A("qFpQe'θ@͔#ڵ=&jMDz\ Q#p) +vU.Rs6{[`OS:vNuڑ2MDR>IHqʾC6XN4F^]:_^DHӺwET%!U0>[!ʋO>~X2!{ԃ+l׏{EaTCD@FA^]52 Y_O,}ab|ps);yNsQ}zOu"]}%siqG +A*= ?d,O6%g:&bLvM2Թ9V% @Wx*A+)KD"MC3^u*Onb>I̐}< YDF  rgR*xRV׼'c'=N ܴ-tE" #D2.gaW()wƼBuN"?02.jg)2e+6F &-oUVL:2ksS`®B&<15AS@@Yt:ϥ2\Z+@#b@O?U|0PP^ˆ.BcAZ YKBv}ؠ;-s GkI5j;y]`L i, +zaw_ϞTHsWX|Cu:(Z4#c,MpFQ] 1uW$"6iξGǫbc\Zr=-xEL.Gn1ȶ;,,w弒H X5+qfFma&O|5*J,I1e~"&!=^YK#^~|CR.T6-3fyvG@Hfmg;ՄR-R.?-{[z\@s&!R:\B><)6(xZCq5B=nZ w|ػ\ :@|7odFP; +7 yH2ݲ>8@kSZyOs嫱tT3o)^vs&${oI?Oղ:O^;̓趱uܜj>Puo{iyګ8c8߯{t#TI]ŞױSFG;U7ˑj} *kG_fFLns*'hdHcmDNv".Yp k)Q2ohpL JQ1=/ߘ[\ + Ȼ wmq0&iMlc:DΛ|f`\֍"Xki40@s5:,ekcv'> +'wͦ+E9/@˷:H#FH!~DMj*l㒴 J~IDi]3{LqAz[ui`^%v$!ͬT-S79SiX-rijym.,ie\ +_*;[tuBG +AM"zJIjn)ֿ3-pGZPղ-Rh +(;B:A[:ʅl^s݉Gft5No `a)6 tUיm^wSjr-G+EtG9*Ǹ૵]|a9i3rJRͺ(] }嘭ƕPXpn# +)*l5$Aɒ;+ Ek8H7C_`qĦ32ak>Kq(IaM0˃gFcd 3_Wa:_f /0!! II?oxe@,/C"ɐh5}B2*ig呋>FfYe>CH͉9 +dd +ZDҩP T U"&vkY wjĪ[{erɵ?/A/XpAWVR~;<#T{ga[{py`ںw4_Ѣ3`S_Q;O1O}%u]E@.҉UUo?]E܊MSC=Jfxq?LJT@4ZHqk1D.^oݨs/ʕb.2WU\bN~=5fWiC:?x}D؃{"g6UI iGq>.;$T$$8`?ZBf[MtDηd)@#Mz%iA+)t^"Đ|CUJ;waŇϱ>)OV~g!^O<1|&EVMggUy("̒;K:fwac1deSVMb*ؔKfx(t4:;)[dHXjf|է=?___R| +} ƣRt5 AyWw {?gӮ꧰>{ +;oh72\0Lr ,|;8hڌ3;HOZ#17xؚmIk| UIynu Q՝z!g>L)0e,9-תD1^!;ЦxMVd|v<e_uW1geEa9Q,c9m7"7_$=>WSDGгTel +99?f) /I)Wߐ}Hf7'ygWoavNRrWRJM2$l)? &^6ǽln>q,~e6' +a)w;h wN=caDUS'D|x9S$f~-gh-2*f'νG)[c53ifޙdCEm{gP Zc /;Z9o .9C`"[yWl V9ulDt,fیwOQwU5Dv І:X?ƎIIjӿ7享0@kg5Mp%J+v\&.sI_QM!~!P첟Ŏ]:=K cE22醸Qs\ +V1OXVMI}S}((@QwoCnIz^".xu2Ha,ú$*f%oHl教嚠9#5=N2&Fi#2 +dtNx4 +S(D +c5DZkMkĜkQŴkHUNuPPque~xTw3~!v(8%u!%Qv $:A(:{|kWLmG~{s+ݷm^Vn-ZرR=7g3g<;jn #),)}͜%cܻ) ֶDZP)û{N, Y]: +o(`W\0o+0ɴvok\ g_35x˺Juwlh1^FgYmb # o/0u؎c!v4N:̹m&(p t< 5Ȼd %9NtUPd1ɦs\yK,<-8+5lm2vg K-yr_'-{E}/K3=Awγگ8 kNI|;[iaT`#_ z,"b_n'c,D][;V@;DP0~ dW. {V97\Pdc;hIEZ mr[v=5sm@!jRu݌+K깯nMV6 ;e&5bk)g $EFCB愄%6$nw$ƝC*'ĔV5 h8aMz7\PY0fe23~QJ8BcrݸfO&.Z]V iAAnk0SM&٥ c)/ɝ %" ޝ2']܋y$wcM?vjl-ц9dIvi(VQ%VDZ&%7x(g 뺆e9Y?ޕz1 A+qݻ8z:|7fi[6=:o/&8rkd+#nJ cE凂pU'1>dn6ۡ/f mƵ Ѱ|x)v~.3GF2l>͕W~樽C{Ia.[^,z߳?nJzk-om+*يl1+?4f0ǫ7|["wu8mL߽EG&AE JLeKUůs՛'h]; 3ihY\ǕsAB*Tfձ4QHlB`o,=iZ|j}ZU>D>촫}F spj*icU:.-iΎdV2ycF)|ϗb4鵢XM^W7lKß &gecrWlG_X wIc35`߲&([8"ڞZCx{9B)ՙ ZB 4YtLk 2.*I5L`V:y nPQ:m(-'uBKx6ue)n<w ڠj=Q$i|o-/Ynr [N54Z$ZّӒzP˪bWpމy24av= -~;fَ xr9)<@RЀeHrqc,<c?%C%Dے`c,TwLT47寙J\Z cadoCYd+*1WhdAR88 2ٚx 7{'5[ςs b]Cg?: HMc Z`7E]"Sm| b\[$5$2Yn=EjH$vˣ]tUNdCD{ky&br끤mۂt_S e#DmCXec۲2"Rc`Bw|e/Wl U"v= դr@ +svԊAԗ@:[6_KQWP!tDNi/AT 7@pf@IkcɆGlXbao*+ +$hBDyk_I3Hf߅ۈn UTJX>z鳷|luvyebqW q NJ: WaQw@06gd5dHdBՁǨ*GP|ͧʤxjeך t< +F.U TQOң O@Z"*A1C^߅-_:TRBYݤ0LG%?񨌲l!y^ vs\9\2/o]5'yw+^j*冩֠ 2>Wh'M3*9Ogz˒xD4T ̃Tq<] }߅Jna@E0Ɗ+f>&eUc5/x˔K(}9M_߳wF2a@7ʻP](og*D88}{'O 5Ȉuv +USI#4wQ Z(UJ*woQi Y'('[[Iq icLu9U4T5Oƫ2Nŵ.6~ q.I`NqI YE((i1ět.ND-}}Oos;C5!bYӊ,^J?+6Pc.7ӍČ OP‰5' 4ABW\4uWoj{.95Pړdy+K X K0Ǣ{_ϊbn U^ i~HB|b#[FfOrCPRE |86o$I~sMO(p[FdB_Xӹ+/.dܙ{ ?7C1Ԑ{h!Y2<5۷%\̛+EkӿLƉhXd5>S]TRnwvGa,~meDg>t2(ƞm[yM/JfdM=ϠUmA} Ѽ%@z7#$ 7A9B`>B4I+hq7\#k~]v,j='ge:ͼ1N!=Am@*o)g[ګ匞q"A}tvknIhٲ)՜?ZY?QQ||JnZ :/E$2; +֖ + Sni94oբ|RH\RyBx\(D-$o橌zvg[wcjȶ +|&6kV7{$랻4PXAyMk15VA8Uffb]Сߝ!3Ðz֪.ڦD(mE'fPM G6"jއyTU[0c:tBv^FKrW~}G%AM 2/ȈJmIgdJgɗ:SLKN)ق)X7ܝ 2q[5_<;>Q rJ(e/HIM5'wҫ.ϕ20J}o _.> =A|:HTgN`EXP}KPKo $t6k i1|u3[@\(uE\Z +ĸ;TF"-N7JP7G>Q?,~(ؕvOijP'Qjė5?:#~u\d?DP"9 +Lͫꘐqrszo?MBL7\"i5[~gAbK6dĚ5MA \TzIFEItI,:"\:g?i'Zn㑡Cg1eXeR+g[7>(C=n+ R nbs@̼&'w(g_pOǝ{^<:P˹N#][$ 7攷d<"fKvmgs⃃Rj>Mז[*ZC k:>iAЙW+xʲ?/ Gk}&h2ct3@[8dG6Ԗp8)D@w.oB,* a?*SK3+PPgMդP:Q 5F?b6b$|'dĆg;笰 U̘)ln¥9,[S 5p!Jc>ʎ +N~7ϊvl+dPz$鳾޴ v*~6,+-N. C\ IU9-QRu4xLH(MmjyHGpua PD`Hu,{^} 1v }h~N6C죔C\36MUE\w$ !ܨp t$ -myN_:Am4Z7`(DCIB}8%Tm d} )Az`ܫbyޜdCLHR o5RՂ}0o΍Ԩklz:xB.+:V5gdW6OUC†:\ +Gv)T0'L5l8 eBݎI7{kZwXrE֜ 5#dw_9T7*7* H'5]V%J1Ҟchy2PK0@:vINu&&%xAyHP/~ȩ/Ϊ:Mݒ#E,](Oϡ);WY.‰0ɍs5WYG^!ĤŴy RN՜3.A L~zHTq>mTush3 $mĆd0Y8,|㷪P.5ې4~[Y椤bMg:dݝci&ۓl +*/,={H瘋mD8l +?c(YM+"9 (L0+y]E93_weH],Rwv?f3WXi-!0 F*]gH6ևu.&F D@ـFTUo.7OMuu6ӄ6Wgxi<.ƻTjN T2,PȧmTrmҠ4P^7c<$HIkn?EԳk;52&`ׯa4Vl3ٟB*A씵P?7M\'O +%rsTm|ymg>$*.h4QQQ[@*2A䆂kvnb2g<Po<'JB$lق+6Xd9˾{ 5F\FOuήTu7:u7:~[s|LSv7t…R^YD +,]D.YҖkAihBXyQcJƆ Y+XԪY#l5F>S@r%)ځ CP^'ƃ2b3,#bKzȡ)veEV-&  @޵;&}V|'ʭiN:rA9AL5_޶mB|eEJ}mv\ߩG5F|;i Ҿm5>ҬJQ5voPZި+iܦߔ%O>jeC`G7N,1FYr\ԹB`1}UA*i]& \7I7XCV}b^wsZsg)!oȈh7+k&ԣo]Xˀ+͡Nxy'uaTٞIֱ(}旅nϵ@S5q~(eꋮ1t?37D1TtV3%hb%ӥ d'9PKG +}qѥ~noUβuH0laCɵW3J{1-y|Մh}GSk4vir!}oMlBBn +}M.8NAnB4;8m4oY@M)s@& *y>'H +7-'lcT]bPuMeRYQp/y0}}]\蠨[/PS@\)Dmy( +喢tqWXQu`~]BsF&(j3Tϻ56ȉ;D Wc]cUؘ*PV 'Ԯ^ϝ(>*XE'.tj؜cg -:_?:#UFE z\F<иUl]˿N}]ߘhlfD|bBQ1Q&&81w7(Qb%EfXL՚O?[n-*;C3GZ+E*ArYIlQꚔc)s #ㆵ;yQ&Jr̮DV|C\H!vtrX[N3g*Om T48AXj/FM-"u˦IVI(!tͳ0}3̋"~3@hA^g<LW7E|kAhun;Im6n[ٟ(b%]*GŶnRWEĹ8rEty> ?Z:B =@,hގ.~;$F~@?Aݭ}\+ak}9fg̋-v$S2BI(PU\+DQ9e90A܂Ct=NVi=QQ6j n2OʕJ+d +IEum]hʀ|lGIU¶9z=m3= j]]HMԋr|)QC .ݧ.+Nf>\4/ۜA2J(+YKkebcDQ$ޣ
WN}/ oD!˘ƒj +,VNd7g' +$eY4S۴6m՟3c)5lT%tX誊ю{#6Vhb76aJR`=])Hvśnї-]0HxXIs,z4vwΊJۖw_^V6?NJMf^ v;;-Y,EPyzsx>O_Y@ݽ+yaciO* PѕdĈ+ +~o\t]^nB8V<BԷu[W|#yKO!7.>+bjǖy42Q"_գ9KFvBU=C?Za:ߦ@^2|:]H]׏o)G+#3Agbܮ5|Mhm[ wS.vwkD|E8oc_NvjȮHb^6"!E&1U4 N} VCD/mVxXNV@ƹk7~|Cw:ƭ~&f䀛)UAMft3瑰PAL3["YDY"FɪCu:<4Wr=Z@n +~)/o)vBwL-<u]l# c:VvE +(z3\SE'gWIr ?N%w*4, G1q?B<*g>j! eylHsl&?}P]a~KQeiW<]wiyWjN,e4ݻf̀9'K#sB} m8Wo(5\q r HfqW!ċ)pvz\&{|#Lkz=p\2;XS&&10 Gpn;{wSz3]@U[#>BNI-<ίN':QgE [Ԏֱ mJC֝1RFhwk~v7ߪ" {aiz)]n mWbt+؟kRIوx@x>vÜТI7]g3;EE=SK`Rr: E޲h N( WaRx6&I-MXs4xhƸ cǽ (JPt7(cUS(=2$Ғc+D,7a1M۟bT޹ o>XGۡmw Mg5'ܚ'Ėh" h<k?5ZWzӑYN?sE7b^.&svV_[#֪dy式 +Xx?(X(W0gW=vY @uL䏈ڃR>m}:ވi"n@U>uy.}y^AUA _ 6gHtax]絳*iDdWp4 $^+7CwOLӫrNN؛]#/,DE2cBB-@9a6ۓs1wZA=+}u+ UK7l}}ѿQAJ:-cϹrT4PKTy40*'st8g듔s 0eIԚž\ٰ'!ݦ "gэKDHt@t}&BW`;79Z L'\^L7)os5J$e/lA[xN(c\5.Hq+4?"i%Ha + +upj9M +Ŀ֚dWZ +ە]?uKPkM,>7*랪$@"DJ4QTEW&bg@r+kӍx*=Q?.J8UdrHvaFQ9gbR ل4ɍ>8=l?n +e]'owV̄m"a zq;TjG/Jղ5hL 8eߐZ]қP-ky2~Zn&\+.&L[!dn*kv=kq6w!\=I +< +e &v_ ?Ϣ}Aw_èv!SQt Er E8ufF689Y3SH2ZvOUgI,V@46kg9k6`Z^(LQF{/2l@ծ_Hopfy^e:PřY$3:zRuSt^$84 Om.Cp宕.r2٘RN]=¬5{ Fadlem5ӓJq;w=&,wFpO/篴24@@gU@\7ٲ l]CY"hݦý_VhM|%b]"9j4ݨtuҞZAZmf(s(djvLְ=}c9/o mmY7]kD|r1[=ؤyE\ߵ5j*b+k_n<H*< R~H\Y^%3A*Z@}l]~Q)wu0G|oQ)JiPUn={7'$W6PˑX޿ *]Íʟ@A E]0hPß,h(GJ/)NG N-)򃫛T ^bLopӽ.-(Gfkrb hH 3q##бK]TRp۪HMLdRh*v4 UenF?[enksly]5c]Fyb+@!ǻi"#YqQ_TH*Tp|{X܇2K[kB +'Ԇysa'qQGu ǓFDJlڡ~.]>p(EꙘhJ⦭y ]'׉R +~sI{5$"ᄜ<gB!Vfݷݫy~FEIj|s"${MȘs~A3"]^8E|AE7ZB)|]Zw6z{+\eu;[ yU( Cܰ8RA&UGq-394Wsmtqb`# 9 +uO 8(ILf;uGyw߀ e*2ʕϽ^uH#jJ!:G* +7JAפkpю*< +yMa&s5B_1SuDC@  !p;6i}M R<98d=W-BưIo@ƶ)_wVم6P9et'jb:/~tWDf}K=z +*'2ܰ{k7)*(`΁O*~~蘛H:.ﶴؽ#hd~<&UկgbQ5ȓ]֭<z/Y芐lȕD<ͺGZRwW[]Xƚ} i/Dv.QOJꀄ-=gYO]T쫈v/k\2, ɉNzEJ2LYcy;(_ks/U|Id}" Qǩ`lttKWY9X@>LPP=&V"=\ +vC?)T&iٵZA^)YsƚiRN<N%@i=O#WȨx/TqPD"0& @[}o؀Ʈ@4n$.6!X/X^lgį9 wy A,PںPY+|dؐJIA񋲣WVR +R5˸ᱦVO.JS0!=0,c~G_oJH#SZ<eʛ0>J4]aĜɁ<1])(qPcit&J "d)tz}2DA)/X7;瀄f =h\aqAY}xiBBA grisRq@Ɲw2V&Dr󽳠$~B䔿pj 78O^ߐo~\U4I$s}n9{2Vr>o^|cY\{ {ڧ$0s6D T{y,+ݨ&@YΜ$Wb36n +dqCo2ŷ@ 6H̗'k?fǂʛ](*͓6QWtY$عq~^iy4pMqv|iAB -cAs~Zm(x] ӂIjdoE& "0= 9/ c=,_jJHK9JcxSv&ւHx,yr IqX"aʰ14"𼱽Ooי2.I8E3H:q-"paC(3(7͈lݝϛG]N*2l9kA#t;\%`)9?ax{!jF HA>ؿ~ĔA%m`,S:aglZUQ玵!<StR=9\96FBX{3NPpƬoЭb7+ (ia~꽻׍UU卻MABv`ҭOsP{t= 1@)Q鼲-v~ XATp?l][׍ y55>A68iEyx\{9Ht@h +ɯh2ky^OP+GhwZ@ڄO0&g[㩄ڱbwL|W3OnbTMMǽ疩Nߐgr:f11'TR+"8y&5\B6&χLV@ʠ"HhS1i *z0 TD=uz,x_3xA.>T8*ꄕݾrjD&OD»Q)>gd.D4]uP\elS}ʣjQzy H Tn 'a\{<[<[Ѩ})[Ҙ]dS0Օ?5Ub'B(Rwr 0OU*I>_Bjخ.lIVmA"mͥc_h ]JԸW3fu8Z8]9 !ďBU#2 ;ZZE͌rI?t!;?2Dkv1IX ި:P;4R_A2& ??Ң\Iэi~2 `@ +U^OQ0k6՝~*8*Vܟ?g cyoL8 髪lcm +,:1W&WzPRo;܀(- D=d.ԡ[ZU[9] Cf 4Qu,9$n3=qKn6M4ߨ-#p"kNdo 4DNOSn +d-\_,[T!mwly!J t]u}}D2v-2{\|ON)2yj;1ϛD2^OQ^S4:oZ$ L9w^¬Z4jiBD|Oㅡ@9B??h@wM8f&@JNi{? ]WL4 A-t}W,?w=;cePRjg=Q4<*H:ڰCT5$Zuـ~9eHp2EԲYW +.'F}8Jd0/NU򗪻Q9DX35GC!}TeG~D{LQih= Jvw%@›ۮ}0L?)׍'EFXJ<µ ctڴ_my/*QD4d8A:ր䦼 Nh~V*Gc59^CxuK/ovdP~ՠ!ovia _>VU.h!]efl=[qFC56)™3AiJmt^<^X4>gj5Qoj rJ%a@]Ga &&u/4&5 Bb&* 9T!-˛J/`׮[{=~*bǗ/PHP`n!xt57 - ӏE9QLx!-;u6H2m +NGCr1BJx`5 m|d1r; +8A|isM'MFkbb a=q#nAFz]4<2ڜPDغr7#H"INhԉAVA +^p;gt;I? å~?QޔK/sDZߤWќѠAC,K&u&Oƌ"9!g|y0呜G̳626!/NZ2 YƔ<5B$旻FͩÉL]<ç\ j묩iͪ҂DBBPtg)Ws?dw>=EZhtRK6nj!Z2u0Fx|r di"_P]+y>mOpޝԖ*KWOl@_#a#=GLR/'QszМp4@/=o)kl9ɳIu5tqLZ<&ՄKD8&v9jT1񀰩U2 _A4i[k mÊ HVzKwB>ۼ/Je~(:@7 "Em}XQu?r2m,lj߻s~ЊJ9blX{R8GMH.(.ԕj:Sa`#kFˣڗ Dk92c nq]aᜂxpea8Ւ72C0^qsbM.NιHfER5&77㦧c,i8BbadL0RqR@&żj98iݓ(uwvq[Zvy4UJD  Ĉ*yVc1i8C6Y17_@ɗa&|]AyJCuծ`J3}4xz6IHs%P9ASY ^,"Gn9w(}^ mI9E0~yñ&@J|N`'MکU#! +5ȸ&ɲTl5~(Q t;jmm]/+9 \ +ƝRjnw"O.ęF 3 +`A5grO 'O5ȫjIlA(7ȈeA ++Uġ$7, >1T@2̺.܌i YA״ U]fl!;k<ƩNjF+kxQd[_Mr,qkrW;?ɲR@f'e=l Ux v?^˕rBBh~7@_# +C"fG +PrjH6bsI@T|@|\6 ,# -1}k-sCn oz.GyWO$vsz5$ckum|IDtT/97sxi%4r]mj젏]yUX7&^ͅ)9ʀ!2k|nRd&<< TZuD?!@cܕdC~?R@zb@+cZkW& +i11ftu2/iv˳Zͳ?7 o4 ws+@ƦL#S:R] n!&`kL4Ȁk uvd:(a[[mBŸ xU;ƣ!*s@=7uBZvK{y]iŬUœ>-3 -ܒY,|RYx5:DRq2{6{ %eXJ3T#Ɩ `zLiAMY .8eU=SXVY.Uv|q 2 ce5{a@PIyִ<`3$:jBBfjn>qkc޺PER jh\No+-Pz_s1W-; og UɍVXq. ][ɦ)'Xw?4DS{?>@c>SÞ<[~{'' +fk + Eȏ,)x<.6gͧ"rSЙ_=@q<7JݑG_ =NF&_O77][P[hҒV5뤧iuvڜa7.b +|I;.;d^谙b"jVXM+ǝatV\@LNV/?p;Kv]+l|NM:Ry:YzTy]]y@si88P98q;~c K&S=OVQ+髭;!86*b90K>.uʔ5JCjHv(v5=[Xuujd.":l#z&,GО;[x2S8&#(RtNPրTL+1>ybGUIMf=<;QnھPml>CtJPmpl-B<ɹW߸w϶”b3Eʥ;#ΎX 7ϲc 7VB):ē[ 0%:-+%msbgz4 c]R:YI: %G+RlltcJ;q:N\O,/76Pꦸԃ%6w4`Jd"q- QY" ec0Cv+vnvy(V#PQtfOPޖtwJU^w<5*ٹc\nޮQ"2vF0%5P"ѩ)G*AǛcmD"UY_ >-A2ϖ,~}n=^Ș[c'!f21fT u[5ق7T^7\ _n޹5}X'zun8,mC^9޻G#{^1۝ I=ݜw܎`j8?є/YvY׿t؆I +8,8ԸoY{5;67$i +%Ȓ;Ќ5.^ĊU8m9ge^d0bZ%>ӘzJ'w ~6õcjK‰wI`X'/RUSSqGN*Gj @Z4tx#.Q~1rnZ +CJs~REEq8(3R3p5лaq2Rlq= M'B<OQF{5_~إD)+{f&ctѼ VrT5Ǽ +C#/_w? ;|rvGm++hrxՇs2Rh[dcиd|_ +z%9MH)fl7;!R;͈Bg1oN3lyϖC_%>i5a<񀓖Ƿ=DM,!6P5" +B[tQoQ}5r./w2Y//'ugՍ vqs29 Fjq&(L[ؚFlq?cE}جC3-Ic$yy9pH<x )t4dKOh# ++>*X)˳֤㜚wJ{6aQ3T IWh/9U'WeA* <ʤDrW׳)MGjji-qM_YJI E}8*87s;àRS;r<ߵIl +ٛVez@v` e,1m|Juu -'柌9Xvn +J 4M XE_&hraH<kZYƁ|h0rZRC_o~Lj=DGLOA Τl$sM+%r ۈHղ@ԨVN z T,N<@ Mq:&t,씎Z + p$^tAC).>n^^Ik(:>8Q3wb8{ %^΢,CsBٺI:?r(]8Hs8>͙1hUeޖi]Ĝ߈R83sW6GÑ0{OAivU~3J/AUPWc LOx7ܿvG^_Xר/a-3 Kr.*2vDtqȎj7 [0~?ޛ>8oPov?Vz]'2Ҹ C; v1%$٫* +L +pT9V]%V n `>d'UD yҀuȦi%Tx/{A,QvQOVtCqf) 饴̖l fklRcdwΦWR b){TX[Iq [~=Spno^2 {S~$zxԲfs(xӣ47rDgjWr.Piv'^dTRX^,^_n+Ryȳo#xY$w)4t6L8E]Bʧ:ut+6wy3KS #9HJ̹i~Y~fnڳtoBY#KiZxlv٥ǎh5 GKhw_Gr 9xQ <1o'{Lu#]x۰ckʹ!FVΌ}d)v@غbUBFRЉ>\Pl/s*iʼn)A5I)͊٥d4'Y,-4J>byJhyT4X޲zTW7^¡NlIs3A]p X>Ne2~/Xr[e0giLX5q6SPLoL3ep.F +Jfy{Ǯcd:q[xЈe*L1v{~\;(vMXf.KK^91^(HUO[binU_h=&_^!v_A/n<#ѡm`m;ڬǔtm9(BZ c1>CgI<^=*(NfJlteĎ SeB +x5G+L3+t<8b5y:>AaW8\p&.]7d˜u&{#z저3sK;`̇ fbh2 EU}y)@}F2;MKWY&VLtԖbULVX9gU+\wΏOrc=[ }UzxX#~bcrL! ͗?Us)ي m ",7k)oBzC\6=ͪۼy)uk0C{c9TB8c2Mh F&76uxK06dKS-5YGN}v$OsvTQ7{=?ªNQ\PkqaS2bEяJw[-mHMf_$[K؈!N} 礢L(CDZGMi +99t={,-דF4xaժFѧ ڽ*޼`cGN2ų4{n,nNO)ߚLEٔ N^9ًw20Lrz^,%Ĩfxpcw&a9,ϔIO T3XڭyΘ}="oe3mw;SNcq6uֳ~!ҘBFJTHplZ̏oR6=?;1!R΍a39IE="?t< c@~M-x#q|k570i?g1!d^IGf +<YѿD{Q*):(;U7|CV0<XTF`lS7-t$&tJMj?[]dA|C1Tz4mTomUE3Mte`^LeT"]Z/$_(XJc΄k%7!VǒQ6%ddZ7 " +n0v-)Z)3,W͡ 2AXi,Xek\&1h:th{vW +̏54E{l͎W`; 5BQYyDĤ`%M b=d>MzڂfBWZ9neȠ58@iIn@x8jAYqO=MpZLJ]rPt{NJU&"pKIR\?2UM*ڸsME-ɣi~Ci؟C#Q9JrnK,.j)MNy`ʽl_ )k\;㟇*_/r!-v]9W='prLMkVOǤdk%kRBz.SH>-{utU e*E+As"b/-@kkV~f8m%ýlis>r0뻚$L0Ft/Nwx)zϖm%JE]2QC%vQ_RѴlB}-LD#bJU< OI}OdĝNl j\j% Ʈk`0-,q@rjm砺Y}_ +;v3YWۥEޡ{<zBVtԑ 9Sm"-mncrxTi\2Grw3jd$D#`)];-OSM|ھƐ9R ]J@a:/ԓjrJ59$ `âzǐ\(ӌq G^!L }kB}P瘃qp6jS>?MMplILjA)_c.on_g`u@[2?ڮG:W338GC112zhe齟:/M/Dž.qw~ޓۀl7żFE= cb%S@1ӊZALIh8_pPPȲktA+3bY#?!kϑޢӴ4GB{V:w:6\ҼNƎW RacqP$nN18&:U酛kqs^xf6zzn6n0s;4ߐmjWlBZ7+_2%LfmՃ+H"jl%-e-A\ 2EZ]z]X4^%s.qL٬y14X^Ĺy?M彽6GN4 +?_Hx̱k<- ̑LHG飼6|i#{/NsQAJ̼݉Ѳ`8[7 {2ܯGuC_]nb %+^BgMڀ̾.G)0X 71cAGkNq"n܈o)bbLUS9研d +bZ\!n3Sb1'3ZUg /!! re#UKN<܇dŸrƒcݑbFDP5+#]7Hߴ9?|z#UZD +endstream endobj 63 0 obj <>stream +]fHVVt ror1vnvܐP^^3oTYQ +~(Sl~*G=K )ŕ 4==g@=i͇S yCj|&C4?{j :^֦)u!Ct|$҃X2.oJj  +a.ƭBцGcuw Hƛf*iIxAyU%3H;{:֌2QR{YT ꀠpTv$\fzr暧iE/QfJ5}e"<&4q఑ 8ޢd8N-Mw9 AKtn5][=NOX^y \UG=RP:'M,Z9hUZUfqzl%HP7q]zm08p-ţ #|"$Izyy)Vk< 䅵G\@9G2Nw֥.we _O<b PZ6m|9rLH$5#^ڬnZlUӵ45I BЩ=OӉ~%kYD"C3bgl =!HՐ%HY(bC%' ^UzeB%\{_N6epL7W>(EpE.'1p(=G})DU|}O~׆"S̭ i\ŋl1" +PX#S8Ҹ!0P%JJD/r +*+ +y< K5q<ϭ\e\ɷ7I1Z>CI۷tJ2Nv'Dp$Ҿr!yJ;FRK8uAڪ}h@Gbsqlb}-X5C{"j(qx3؟DȚ'[J s~G!Ͽ? ? +AM{M J2O9 +I%2<}$ibAn c?aZO@6"@ ^?), =AkBr |Hڏp:dX"- +<>c6?~wyOg !!XF3Zޘg<)G +LyѪ:`K9^v2/Ŋ͉z 5"U]g ޯL2HPbԡ2Bwڨ$j@4oE{ +SQԄ͠2zږ#)jMsG<퍒6\]4Zw|  S\ (yjܝ\'nžV5,'iۥOx2{0jy0ș^OP$윾!B4H< +@B6e-lvKڄb8dl^]j͑HE ;`Y%>qR+A|F,f]N QV_OD7v,-IN vT\l(NIxEEdC {$5#<>ԥ7$=Fຏc"y3S8 zT1zQD[m当E7g=RR?2kP|Qr*:Vdy^#.яDUA: 9sG[3tcgq*(CZcexfi-0XJҌ/GݖIjaβ6Hjdy*2™ +9zT]jHXAdfs +(a'fu75q|o*{lc\@Wܯ5ms3GĨEQ3@?j;gG5UU,,:ǹ?6[~_0 ǨV(JkBW + AzΫPZS_rXԹPPgzH镟W2$ki;?gEWgO]TT&DSNa{mz/۪/)p81cr\jGW^wb!Ny}ܖ݊AF8փcq*luLz{1RiȘəȳ2ltd\_"inwB(;{>V[t)AT#'wwlGH{e6%$Z*!T~"9P=n=P~ԧtD -'XߣbW9?n۲sJљ?-kULa3 lOxKRU;0X֝0z6U/;%n,5;(Tw{U.y6iA ҝp!X&EPX"nw08ۇ1l[O:|!0rӗ#8CAnǢY.ܢK\yt1>r6I#2A</c;POiԐ U _ku+D@6ͻIJr75Yb/֗L~E 5ZaE"C=4y IVd-41xtNrg\LAenBV>+ +f(. $fIh`>n( +9]1_!..aVh@ƺ +A 7A8 HXJVA+"ɡΑ :l^7U/I<2Ax$0Z ƊJ́/6@ >B u}8L&X|pF*HN%/_@2tf%/xշbll\5}>O=3C-/ 7 +xN2^F/΃ziKG҈AO Y9-_ACcudS[{@g5WeeBޛr|ʄ["sT"o2?{- X<"ArN cWUG<~ )%Ps$*7'ތ2 Y4ȘDlP=ȩRX$BеЂC{ k@*KLN}v1a9T"KZ|o lkm5vqFaޓ߽HYS1[8'g~1_ňXj`SYX!@P'$%2O=K4ϑ7rZ:g}PyW`Eu ftijs!D~h(v ޶XqEJ42XS(R# uA>Gc>!ܟ‚VCG1H׭;Iݠ\olZv8!l^I0H{z u {Hd W35/y Ƃ&P$:@)1װq5-kjy1OBn刼 PȄ)/ebi!Wȯ&\qi]j F,ljdģH!b?vO-VNvPdjbĉfҭk4iu81$T( Ҭɣ"60k9"*o]?EXJI~5%yڱ]rLD Z@JL^y5Q/<+maj٦&īI;9z:Dz|8 $9+4s(\ h&ʁ)ff{ [@Rn̽RA b2!kA>Ycn]0 ~@Ñd@M1.րr8zSk~sX5QaC:!AURHl-yw#f7~APLߔ2U˫6 +4Ү "թ_&@X"/v 5m +c-G?3{xC +XH~EJ|Y# Tq wb}J^2$k_Q4K* yja LQwUlI63[mc`?UHe·=QEVtDpW8wD~8#=P,%bưa%m=42(%cW!;5_:l4[ +?h#H'jQw[^!Ӊx!KRUꑖ:󡲰}v }囉0X0P +M)Ҋ=ՑM*jcebc!?ؼl{̼f +]l0SLcO-%CaEj!!>]*1 O]t-*iz+b3 ֛VNBR0KmFD6RF)w[)W5ğL1IףL;2+Q݂6#1,f<&8㓧\)q4rHsU O $eB\9+EK6]<[=dHIzъC-)iE{69ng +Hk F-J;knR%}WI_~[%fL1@t1LZ4wJePDW\!K2[)9R AcīX/0YYqvxx +Lnt?ѽ Z4=((`4 Zpm5TŹbտcºkBej.ct{*zP{r}]p=~(BnM]CꄉiÐ)sCw_b@,ZWYT{V=0Pa^\uB~ lFByjG~Bg2iNp ^3Zu!SIX_m$? -;3!N0Q]Z&ݢ&J}o8B +2fGT[U VΘ7z^YRIi)^A[LbDR&PKg!x(s$l@«&}7s6z\QK+&N34ẃ+B ӕO (26X*ƺ-)kjM~$BTZ^"$wH:"M16@ONH*۬@Х(/ Fqiu䬩9yUˮ5s*\s < mă"b@GfF%&H@ ̓-pVn:,y/t/ki%ƭьlFPwHN-}8|[;HGVGOC1 C9zsSL: [PAI'wFxv#zTD6Ê +L15kfMFMn1Tdnaz]uAJU=2B_,WPIA}IUwoH&SЉ7sLB29(g27$Ik-nQËwu-ē7-$S2]d =lJ޴4{/u\@RBwm]O؀^wXV#SBRVH]·C^NEs~ҿ@;"G PIaƲ)츌ߐ_)V[DajBv͍zc37$u(EȃF_F +K(I&hE4phetjHzT6J ]h%/LđW5HA(dExA@nKԅnjFJ j6Qy@XBroIr ZTG%4344TXZMD)EPSp c9wC΅#ӾU9O:qh_~Ek(ܩj?>F/7]۫zM;[U, g9)O{}J' m6Hyap%3YNvބKm\"5™hWi嵅[,-߂i~Lw_C D`w&ęhmk7Xǂq#꿃Y17pHi}T],b݃lz3qbAf0(4}dKVj"gյ+%L0W /\ЪWYSX^kyXM @tTh[T-Ch׭N.aӯ'I SlIq{|F $S4B>ehGȔgoki Dbb7GkÑy]>jL0,MHTgzPf:sbP6$GI* Ւe乪 R8J!5_LJXC| +sΡY] +Z4:u}v1L*,v +U}h A F%cT?,4g&r f$쀽#O2g-F'-(fw1N6’*$n՘OSD]cǖKޖbaooncv4Fc18<6Fpl$Kcj&W!,dW}Eb13eoN{#1?t&IHXi7 qYAŃ҇fl,R5Op)5ځB.o R +6c6A<{絆v-*ZiJ +f.݃9y݈ROc/qSbip.ՙӰ;;>,',ǥ:AoYUҊ{_4u?-ɭD>ăg=Šge<e-O: /${&X# +poh;6sY-45 +┅?_Y/;aQtVpjѹv4mrS ]]mEeHT-0bl[.A>a!'pj5|Lw(ANm,s<[_=; "ډeY*A*bwdZ !HK|:ڠ/$G"'"@97ӌ9|Αbs:_ ݔ<% r?~و{`ō]K̠4tBJhb8]"<$6~m<9l:xWRq=sV܉<"BEp@]o5tP=yՀJ(Y^$r^p\1tc;=& Ǹ@Ë)Q2bkߨ :]yP'#DPcN-hBda@`Q}X}P-?:9HGm[Z1vعQ8i3EԪ#2v.NG+Dub{2"IN C *-y oBZgqHqՒ +xdׁ6D'Ջ-l AP:h/}` ʥ$);͌||Z]TR2h#=f| AGSJWGR%Kh7W& FE= ހfq:A󏣟-D~9kw)AT =EU'w$bUfhGEm5|1T93etw4='{h+{Zp(AxJQR؟ z+Z9tdjNzB @r|qf1SFy #Qqd=Q C_Z# 1! IxIjK +:i7 ]rH0qhjJf@=¼ CK bC1bx; Y7^\mX8fj!H;2_; (f |Q{{1'pqE؞;"$-TC7?k oPユ+\!hjqCB:1Gj?:R}Rb|9m$ҭvnqm[lso  %Uq L5EpQŰ8Z-4Y-}f%[<ʣ,4P ObsFn/C3ya "}'sH,?U3Dy^.[NCGV"ZEaアs/!ߴ_=Iq*&^Ԇ1f|½_Րyc[̈́^w5 i4yqjJe2OSLiP 1V25 rX@Sq(uIw3Ɣfӷj,l7<i=9YÛnon$OX Pw 4e73C q틮> ;t%Qhߝ_GC +DDAjWAEM9{G1!˃vu -< ۊ;8ri=-w:EBD9ۇ,\ n3u obVP#J|.BiSqԝ;efæ +pɳ!7v>i-$#~AALpZ6G{NRYrha3 u9xpkjmmOerJ ~2"CjЉzX,FϞ8M}D&PHdƪ:J{cBJ={zv&,uU_M4啳S?-h\ea&ieh覾iJH=ȟAă'Jd|{;ݔ| usґQ=sUM^NJ@P!{͸mJ4{rT(9NJ;ztM,]iG_``lN7.9&$Za U@'g7>њ;Ų2\ny )GQb%ÃjqL?^&5"$E w/M{W鸣9U!Lmp̑7p͗m45|lV IQӂ5V*6̶QƯWNO ՟DFٸNp4㎊{P{>I 5t`",fSl}\b`GKUB|3{_@yں4Rh2ntyjzG;,{uY/e^GLtIw7ڟ_!A_ִ.RKv Ճ%gUr,Xu%h^͕A)iddt29P&K&a:󂧰?HG"@ΧzaZfCL8"Kj~ﴛ~O(hR &5ap }t_aK 2H)ЎJYB2ߐ;O5۫^~FimdUӮD )_ %Xy +;f=m[Wg3vvOoxў1 ͣFܾJ 9ZSad*{EJl0c}V=LXZ&A$$dQg ru]5Jl\J_P?@MjZ@qKoZG! r7>EycAsRƒ*b:&߬yEWu1s&?vYaȟ~O2)>@4m)y=Qͩ8_/P㇜h$v!wXÿxC9 )|)ٸt__ݩ( @Tnu +loe@n9rR|Xxx :7.u-bdm Y,CֆM̻!OaT= +-c~p6$:)__?~"+<5oڕ"T1"u x2籒 -c}*,-<1vDl|Tf!O)EZed|ޑڟ/D;fǚ(|V1VB4дIO"#z9+([/MYG։\i.^FZr>~m}"tlo-~t+\"dIPV8sl9J + uABM ؚn7wppuPA|AxzKΗBr[! L:.^#k8u{^+]yƁAlQag5#^Rwo!cK#giġmRb5Am Ў%ˆH!mQYOX((܅P$AEXxZt«5 K^vnG5&{2n ++g1zo-3B 2ԏgȄ:@tIODb αxu~PZ闒"}2#&͡U W9LXZ-GeagCH!'2e}b{% ND9agb,O 'OUs A҇J&H75D)6 ن +/HzRL7F* +skBidW6 {Ln+:qM/=KO#1H垺`No c bp;Ea1kCvl>Qp +'85JJ[wjƒۯG1uWdDh8{ї@8DٟN.ORwQĺ-Ze6 0GD3=>?4ho~yB?T͉[h& 4s\ 51w˱KQeGRSs6/Թ8{'mwYED +mS4U@pA[L.' HnXx@l,߱ ".m5HlْeHp$xxTɈ GYj~ LHs_u53WsbK@ą@N>?(yOҵȃ>ݭRv[GL!ÕLBk05;A(h;$rفM%f.ŁFDi8}A_ 9ԝWCеYC2HfߐXi{bȌX2!$1/0F2*EqA"tY`;CVj(+r ssZ2^>5(o'pYrXީxǼ7SldOڤR:LiSqē,EΫ dAkTִ)70-|pb5öv6Nωrg?* *=PCca5Y?p4`!?~CՑ'ilqזij~e8cy<Q |c TB_[%]}XQj郲"DڂJH_{1$ GET8J1E݇@1(+,Scy8LsYSI2r;Tkfت`~0!kJ#L}yrٙ@+n,Xkb)<={,Lԗ Ӌ_qnO-Q?(]`D?5]ּb+VkzޢL!ʺ+E.H{gV܋9E dbL߽o +{m1٠-yYʔQ&"V\.o=hSWQ MVӉ?OrXv76"QwưQ=kT=caJȼSHWs:(6GwFFh] +/'i-fb{jRٛL,m>DLEiyƍC$;i-c ZOq=&8Uk68ig29*U>\ڀ%;ލsrþ;r`fטGͭsH~#.O~ft@$ptCEQz2\hfUbIӞd,޷<;]# 9eK2k(Û}٩HnˀɄtz׼ϸT$W3g>Oh4Dn?\q zWVmAjv)ݏfhΥli]ScPs r} 4{sՍp=x PSCMHG(mBǽ}[[EgܮMN"H#Iae}῞ +g˜WWrk&z8>NwYǤRSc6)o1Sj&qQs[路fhcD#W)#dtAn\>5W"28PFNou#ѕ"13COxcz\OI񚓽-H]??7Fcv(d k-qd,ۮVv|!q[Ǽx-%=1bvaDgnnYx+&F>~ˮÇ(V,g~:,m9;԰<'m<'Oi3{0/78aKL-vX3U|~gk|{_?e !$Ϲȱ⛂'Q>n/PZB$=J RNw;1H+58`?'?y|158oMJ)l(.c@1/=vX=3]$-=R\3g/!ǪpOn/s㬲;`ժ;v#lq .uͿ~8wjdoHNR*Zs;yM7 )eߡYc!lD' 7..b<1H&y¬Ss<"Msh3X`p'Es TM•v t B6j n3c2Y@4NA<\21L9˼~Ő0y}X#쇈%au\Ns$y\Ex2ť=5,KfҾlϥz+jzmV!Ϸls07f鍾(om47pfL4b^wd!ksQoy&&gg!¡E,'ԑEuO%>dVWP:.#4 @cWt sx%՛oJaD3{rLY5z7ܔT/&yuN݄ !yLօ3K$<Ρ*yVs^Sͨ"c=_dkS;u>^r(Wd7B]d,Y{/5_z&|q'Bb^7HvH2ga21ߠo=#5 BAi 8y@I`c q5$4ކh7A : cBxFh#Gs uóK:NGXS& +mxĉQq&Y:v =fU!x}N<[1c@2AkjݞRxfBLQRwⵒd:R 5O4Ѷ{ t~oK {1̼\>haD2Kg g<’..yJ~~}?p4x"3oٶ.Jvц8ey>«zmG3AHy~:.<8v*<# V<~~rE_Tlۤ]Բ[2w#M-}c=[kltOڐğO1DP gX\uG+ y1:c+ni3D5)83&c 8?]=~] k5Tmh4 ۏjيDٰEg?{uPNs:/pǃf/<}{uPѺ I([c&Yz/>Ht3ɨlbE/M/ǔSN-x@xF=+@p-rgFKWRH^m8Po$X'ʍcwT.XYL`$s%N<O:N*"5.m^{0n>.銢ճea{\^ +: "`@@๳Z5`@XʹZ{0:͇\\+}ݤZNOM~|taf*ҼKhfȊgKl}N#fV5{%9V{4ZG=Ӳ?^ze=(]'TjHG%X#F!^ $,\3ﭣWknԊH- Zǽ|F)Mؠcey&\S' =* g/~QnT <Bށh rP3;c_u\(v,ųg MBeW; Wi1iFÛ'.Ǿ""z0t0<-{F2NnuV%x +pSb + =kmtʱ*ƌ ok0S*ߺyh:q4d[e +d|Ghe/+I ܥǎ‡/u$ă ,ovsCgո6rOC, zOIqy3\?]GKX<tjVv@=w\>x9:K){So[Zo`}%@:HeC=f:s(YFo_8ƛOlGh f_0 䕭fr#xH6g%+0_ٕQGg3rI3ӑ!Ki1{/BqyO?SRyvvD>[f [~6۽q8{ F3(Bu-Ov.} R u4SDˈ,bb|)XјDȊ1&:q^;H ;CטXc(`z,ڔM}i8ώfX=CD>Fr +xSn=TS%-qXIF{Udm/t!V_ )%KDI?ΈY8z㴉H@9jb|7@Y"/歭< XeU +]> /=1ȷAwhdOB!`zdy@ޮRib`HW<[G n4ga +*ԏ4vFQ3u1G^؎@c F}8Ku5lZ7~7 $_>NPd؝ 9_¥^M?8!ˆ>8'%=ٛ#D +y w~CPM\e@ڏ5^mldxfWߣ=f +9bf5$92fD$d_ UuW]-`۰BeUj5F`c $GfG b͹ +{co!/2rPn-`1Ayur9coI=5JҠ͝l8dKgЕhr3(QZ vOPhߌ`؜-4in9̗L)^ Y@zP8xZ4 ӤHu" }M11gu2)T݄NyG~_͓iK&&|wv94߆j;L= SՀo/Pq0^KbcNhmΏTZW"T/ON P +x'}p5аk#߂k5P8[,y@3ف黎OVęD~  3驦L ŏ= d=9/7$,%Ζ9 f +pi ND b^?&,;A'IF?ounv${V$jw)>Y䦘M䶀B-ĺ'$p6i{4Qv#IhHV9غA$qZEVN9pOuzIniIF,iؔw守{cd_j4/n!$bh,^&w;d 6~Y'a2B"x\pXț> ٽ]Gwky Һ˄ft]=gE#F|Y9؇qԪHXCHڄ곽a5d!K[HBkjշ̯i}%qX*KhO Vd)=w^vӀ;ŚW`gK-{ =!eʞ7I#&Fy*&ZVnF/:iRUؑS/#\݉Fz +e{0h;=$0U[ GIUݯ kr2O x8"j5#WA_So Vޕތ<-=nIrT]APli7[m[mXΥ疝I?!v1Bbmu3']vFzw#Bj{yy6n <=¹xۄ09.~VHX15M6k EMxpR,P/q#ef[wٙM#]`\$VKhQA#j%<{I&qw/ }񿕥KVC765nc`/~N վA݁Sֲ z ,M^tI\!2±j72rǀX4rKv1v=02J_(<2 +O+ǰ _q mB=QtX`|11ǵ9?xA+vx h\LM.qWcFLg5\ǷcEE*Na$*づ-dCy'`Ro] ro?6 +û}x'_a_%Bt)}peD)6}z$X1+HW!2ӾHghX6r?"8SMj5^-/$ZeC@a-RԌ8ͦzDP6#:o}%߉u6E\Xc@Z+dZ)0qntnͧE+*o$-*S#]icBނ@Tk*K) V\m? (X|_d +뼆Y\(s}( 4[oՆ-lϛ%@:#:Cw=OZd锘 +d7R+͔1iۚ6j4h_n9#E%@p|Q|9zzT2?ƴq?s7W' WW;TȏcPx=t%GE@JKH?nUSGVv X)ݸN6DTkT-H Q* l#]눮{79wZV\kUZ.͵֢ԫ* K L@mă8HX9MƑ|F- ^h|KDb+j$Jv[L@ouN3dc5lZpsՁ +TƉt9Sb}Taؚ@J6Χg3.1HЋj;MFkJ`> +$ nV9^wzZ]Kr͏qhYN0&#YRcAH ^ZJ +Zk7 Dҙ\L,vm#i@Dl&DŽOS +p3=Mf #ĉv1jq۸cymBnâ)ثi^/3wzeX*HPJQm_!Sȷ_Q&ȸ9S1fҮkE:i.Q!iSdl =EQ LHZ&iKaI/!O|_ +WjKXC=DX>N +y+( Uk%: 2,o5Kƿrb5B}̥@9D'2veO~)StuNNfU!C ku)B"Ń߱wU_ 22tX3dGBգS3jXf,'1Wt-藫0$N#ΚЌpo:Ur噐?KlN/53Y=qLvW-RP*dޒ?c_",R4D}CNRw9&+_جPAT)($J ȵOsOƢHхrMUמ".:ͧ +n)ORم֌ER=],8ZkY5Bi1&b.I@E: DF(>r4k7M +)ڻnqN<4 D6UX b6z)F:Tq aD](e\;A`7 S,PNvcqHОjC,ZGx?~WBؗ+ &qVrKYT0 0eq2}uƓ{ZrǶh틌;2C⡘:Mnr7b#vIq#9uٌr 6c;EvbǻіaD)ҥf_:Z#g!1ܮ٭#gh)PLθ4G&iNWq|d¿}?v2x7G4.^qlClIJ3q }OP2> $|NuM}pʙFYTԎ0W/b-fdh$k}otٴve&쏡8BR'~o: +k) LE2P hF:'T'æb!?չŚi@$"n,EUB܏ՋEKQ"ӵhLLKGoU^7͡}y(۝ykbtQKM͏5ȡEW]84i0EW9e8E@dnY U]iKK_#fqW8QJx(7fBYNYr@'= ÈS8VYtBI}R%;n]}]m/VX5líot_-f>VN=W;ҭGL媛aEs-S9޳ַ %oռmTf%2Ңhčip'}J+ =ƔE턤]`UM4i:HfV"wYsyD%Ȥ%;A|AfUL#]cmDEQHƒM*ʆ>u_ArqhT8S=eF#y,MHR$x9 WKێ(Ϫ8=D,R5 bA%a6h=CWʧ.L¨զHn$TqRb_W)jΡbNeK)IXײO%L'KD見jM@ͳv]:ІD@e脌_;1oS14$wZEY'8vJc\!f&zָ;3d|_GK=QM ftf +U}C.bNnLee2sxp&=:,X#!!3;a4B{Վf"մHvZƳ[NJr;[GFI0я4q-Qȁ"bIr%5'r6}Y hDÚ:Oo2q.a/5VXuX;L-WNHs1PRYJms@[mb|xƫ7x5didȉ 9{30 0pI9/8J8Af0:yCHJaZo,?']#7ce?^ ոس F uZe:(EԨf<+`_Z +:OAT*풦Ŭg5ϸϑ] 1"Zo!J*=B5 lA*)Uu'dʱj7<[Com@PFZt+eAvC.b wX,~/W~/۴ЯEGB_X dTrEl$ D2-pW+0%9% a"*Wcsހ#ȰS픪>%F%$D`WPIV/ltM C;o<0CՕ!xP@<+?v#@zY?evqK.j3gsb})*A,O[߱~(KSzw[F_l k?J%+yֺ-:M`w>}m~L=:&ʘa JPJe@jyy\0ܕG'Eg Q* _E ~ +pZ$Wi` NKOPO||v_rYFp@D ن@*j1!$DgZ 㦉!=#nA|#}nm?IybǮoLHDEA5sUGiU|L5rɉgִq1\P#9VP<܅RguOLO-p{a2w.gm*L)tA(o/1icW0rtwG>Pݪ@kowTS\ +:=@ jc;~C +WНk*3;!:5)E\~`*.AAHjTeV#ӪQ`ry!atn"0묾J]wp%ad/{*b@:^6.D,)(|%s{ڊ"/k:LiS"޽9U2n?R^th0j&Q0+O40UD-9H+fb9s|0h@ @7UDSp 8ng1^5-B]AR+!LnETpFl%ehGי%m3Hqi;GIhZR?.; `(ofچ+AJ%ɈΓV{'>* gG&<h + qho?r.SW0\4,Z" )-܈b=;&anO/wbb)V3qh<շ^k|&P6)CAmt`_ + ge ;2P{-"*bJ:b;.wЦ2,z-Q5b=@%j$UWUW4V)+8"cpѴfs43@9fpj?vi,0Ez'Tu0"2+OT!iOxc @۩M + 5 8#о9H 6tbxM"Q ÿH;}5|{J4L Axe!>Wxو( 5fR[F\qLwa0ͬ߈6 7F~Fj )fZYR@\w(m#uPp嬰r\`E|{' Jv>v%RG +dJSWkVul@.f P^J37"2<;B,tH>ITrp,tEjw,+% +s|́P~EѸ40JqK2S05}6y %ifn{a}qHqdh!汱y{gֱO#.4jdV*ן(tPjnCVTU/1)ac Pq5ع]>1!SI!|Gy'했P.zc1}{;g2WU5HL䁌B6m*],+6|~Y6ߋ$B[p "m1dK)͏Uy IȨ4eYM(i eu>>80R +jeFp.$ &^,ǾKSS9-(n2R]Ouw *N2 +A9Mau7ɠ5:ągkڼF"@K+T 4ЄnH3T2Y2{|y|ϓo}{0GeGPm.SR))gj6jLELl~T \_,}8LnYKRh9i iۄk?9H)AA (<ݓL:RkgQmxRϴkSi44P6 HE\1'&yDDpe̍>g*ɤc1]ûj{XHIJ] HpfWk-3E9t߯( % kӳMx6P$8 C qHˊBm {/ћin((k0ˡdP3/Qb8c{o+/ݾ=^ix@) )%#{V!uo&k)P uU 9!JF^^^(>LMˢL +^: .Ղ @Mb!rB癹ɡ690wg%-zA'p(nK& 3HX%7/mA.=rw2خ s]f3B1G~)dl|2ihD%3|#rvB/:u$b[n=ghD{?@6%ql3o``ʳzY'z.d + qČ5#y,ڥiֲY3ɔ1,Jpweo3HVImBi&Զ&kX{.Q#\EHw#yHx:#Z;ر_C=M)وV +*@Y*QVEq~-)N$7ZՀ޴,f|wNbND l<}8 ^"@I1I#ʥ24TBV$j`|=%9 Hqo%yø[kos Nq9Rf*2㊘9Ti)hB:CۘQ5H8G'S>U;wvzB7W;fI3KϬjzd>2 @֠7H4سQR}KU8ONWb3-0ޙVAzx4OH81 rxV(#Ž"#Ws}iy[@$]O~Jpy_0jEH=uᢄn{5*$'lߕ$;GvL_*J N r!fPsqdgP_9p؎[wY7yp&=^ D؞_UV+,Q1[0D9ψ@F~r6~wA=Ug~UTlKwtG3&>bMFHwri7 H}@o[Y 1pqFeOwHJ՟=}J[\ӇTӍKִeANjH?}Yde6J FAC|(jA-Jyh1gS;H}`P*egǿ7__ooK&*MB `QTf#1|q#9ۯ535Z sʾ 2"m[p(OvZk2ugW_縃6!?) cr@^HagB&YndjbO#qǬ QԷ,,mJ!@}E7cki*cLx iG|mv!a4‹/ܵ?Ҽq|.8*1MJ>+g+G9YwbY: J9׵6feKtq=VY>;BU}{qQ J֍ׇ&Hb ;ipc^vs^amS;|_r#Cմ~tn?=I{1GKiմVՕi~*yA0j_* -C/xwޓ/?{:ߏ?/aɊ*q~[vetaߪ2͈<3HjVf/{:v_Oـq?# 0wB R\^L6,G {F`3ݍ_֧1<|~6Ԓ#m㴳_q|?F?媬~Ţs9i0U\x- D쿚vfXwԊ<iK`')GwL>N1kbc<I54G#//kV[9n\o?oPd?=Хive],EԾ4Ǩg4C۱_ֹ=6ƍǼнz>\jz6z"*$ه>wb23ٸO~@+q3̎/3 ڃ1.XxM5Vq7Ė:u턜I,x۽fI2m3Y8ҳ 9nm`#PQ:Sg8#ڹX}{{XWC#mP&jik{ڽ+xaoB7p<Ndh<Ỵ6oy ?ZG X2\(=A TV{hzC+_cPta>*<6dV̡mz.0y+9\/t{ IeZ +~wIP?A~չOja` Dh&f\a2 ߖ }ޒk$#$wUJ UzpgeZoW߾9Kod;hF)nm7k;4"m@9[tODq}Y'ϞOJ2MfX_`GӤ2nkQ7 $ۂtDe ?L5zL~d29څ*\ʈ ퟉ aW e@ sIcX_1x&/?ԅwԅxa jH]Kq!,q ȇ$(6ĉ s--W{;N:Xq b/f?I[(6_'6-{(Q&6ԡOOl-LJ[xy[xHC%Ki"~I,X|'!\2yׂSC(W($<) Xf7?V +Mf:?cnọgf]x O-miv꟫Hb7c.^K jޝdݤk+1űfyPUiQÎxF 2.Y5a0K8h&K2he?FV[8V7f&71+3-,6P8G*Eʊ-`ÌEJ#Ԅ\-iU}[DG[k{l݃$^3K=2]SxZ2xSo~q;:cQ"yeK;wXCVY&u*4~9V0O"{ --D Y9!Iv3tM@΂ܽ@9gc(vqFV/X@8ȸfwJ jkxPHw}(A(Ɯ[j@n]d&Կkh.U ǔ[~@}1Qӳ+<%keI$E܌/6H݊ iNks7g +/FZϯ&4[)}
    pP9zsw_xw7$;zݟ}y''ҥ{m}o}7u_} ܙw2ֿ揇O>'*fU7.ѫ*qU\IʵFEܬ?fU쪸M0(V%\?iU{3zA9uYO Uơ?˓OಗWjUNe VjUGWkdkM]jZYKW•%)e kZ֊kv]YM-,.ưZVOu^ˌ9q|;YF({E{+O`#DlO(g{B󐤓Bvgwn1_=).C +W(pCcZ\ 1sLY㔯M +x |usu +ONUקt{Adà1t}u}>_biY w99OܸQ rsɿָ-rBAǷh5UU9VjSr+1K6ů[*؍Բlj)߬Λr] +VjUMV)vU̪UQKi WTJ;ܮvڪmWj:X+Zog02qNLnp;o> 󵝗2'Wd)(%kqRl-wru-r+P^=\ՒZpquE@)B ZYǓ[u.\ %پ}e6̞9l$]w-YJeNF``JO' OD΁<[} bx@4 +[p Bzrra 7} qd@sAHKDZfV9c*O +D + 295x[l3 '. +r .$#pqK +ƈk+>r }qs-,/^^dxUkt!+dֲ-W?ٽ+a .Ph{*=.=,VeC/nW7Ag{awݝ}Fo*%wAW<;7$0 m^hflپy [9 pnЕ׸B88C~l]-e![l+UZ'r9tib7eC `I1m4 +rKhy*\n\zbwK"_(bd-bk#P|xr~\A{K/սtJA:kC-7JӯZ5RhkO#jm7inXK%rifwL6j6mt]Bks}esИJgDvP( +z< B\j7XtTaxvcw]tb(&/f  cXA5ptx||\:ŀle!1jJ1FŠlɅF/fbXVeb`|"D\'s7:+p8ix.琣A>n)Z]Ā7(i4Ӌyodc*1Sǵb{ut}u: < F6mč7ۨnV zۨBU5]B=P5,qE7p[lMZP--g4ӧ5ϳ\:W.* xY I!#Nacc?}LW;}=ZzuH1\pl(u<2N; +Ҝ͋ݧd7ix|/#*M=hΫL]hVy {}jyOFo(ȣ 1\A4̲F(#ҫ<ڣC~b=*нՋè3sr:ks08TcPiwl:6kcj?5 +`nەw|#?LsȘ z>#}s-]8ZA.>Kl wwn/WGevy+;q2-ˢ2&{ƀ [Jȓ'.lhJXIdImy6 ILQS'p{~F}_i ŃQ#:śS$*UtRWꑞRA|xsYgoW^94:7's_m(C-NtMpKIrm)]c*qսG<6LUݭ!Z~EU^8&K$/̀S)\b՗)ao&7uw.aE bHd̂jp+" icLnHb5У,Y\ӵHMV)J%Y"ئʾ$HMRYV'm_%\ y%%k ىv!G|%d)#EF^I'EFfrvN*oJ=e F׿݁ti foۭkǟ +ik th`{: T% XnVK{C VI?H`+Nkӎo^o>J4/hIn+aI[G1,%;umZCQ,n B9ԳFA#W(O*%]55]{n}s޹?'6%{G/]͚s{~S*\9r )rn9!{1e,6P31ȕmł}8Ų Q-cTKlىØ[qEXqޏrٍsy {N+riu&1@= NE +#HjExBEvT1)3Kƕ>J1|A%сj4!?0d8HET\rRTI +9Y3US81H7)oZXSʹ46BVcVWފbKTsmh"ڱ H=,8^WԛSW'%񹅫m[-Y@V~Oq +*Gddx$C)7M:|H]UҕED9Iќ^EiLH%ͰUƪGswk݂S2֒jɵTFv;)4?,b){ɽ\rZ +zl,X@U郴z21^MB9Sɑʿ .SǃE64])\܂Ky ڿ KTAʹ *uHU[ ?YqPrUCөU'kP?b+R3~gًw%\fMQtwmѕ,^'!ZM/*uIMK&}=xT=IP4%'K֑PBX klƛ`'X|;⍵Z{煵VU +l|m!n|9{L6-u=gZ~ۑ9Cuٗjk潥L6BŦ/yЛĞD(6|ޏ=.KT6|%Tc4b-/Z2rZ0[y|_[4^%ŷVJEL\YټIG ~oaAO%\k%{qKAvUHK)koCZ E\r5Bceb%/\mnB(@{q3N6wUF+8-vFў\5U_Xש̫k;AlA:ԛ($G!WT iVʢO][KeUsjNX.6fvKѷ^ɖJumzW_yy+WAw=mZΩddUN m );E +C(%Z[ n!<*ǜD{U5-gQ])R.R6R@nz={aU/s/mtoy)o窧GN@7.yM:Q7h~^a[]œIa&T=,FOvT']-2z|G|C]?~/GMΧk_=|-/ꊦ`| k;EMAZ!i'Cב۪p }WuŨy՚I ~Fycx}=GfݬFyZpgj= }gv+u%h];Z0>0vяGpXR4ZK>>%INe|18]O|'4ivٓ1m>֔]}ڎ >Rw#4& +u ғ(8B $fbZeTP +"8f e&U&v玀cV X=7%LET'馨ÍHhW6-0 T*YsU=T% +[Y~)d-7..W0l3[܅ⷥ%\,r~IW*ʎ <0{b4n1trSĬdX8JE.E+*) (ʀ?SM;[uW +\[\sKT7bv؆LPUuZ+easJL݊JQƔiW)缦eőGd-ʥIXmqZuDbٱ +](-UoR&׶Z|=>DQVF51uP%&]R%(ʵ4h|q&r [m5GQMYSmk;U)2ܭ+u(@[ +uveꢈ:;i?vݧ1#PGm +S3JˊRǙz_.Ӵ{{z;9V7Z|עـvZ4OojnɦpN]s`n0KUu :4'\q(#$-4/BX1=BS, +pDFI(Ft1pLU)팷5mK-]IVki-m嗑]T7Ne][L\q)E[Wq;WhjkoY@R\1`)A;-rMbj\MbQF#WB&΂W%|C_*ɫe(ZHc`GUB<al w^E\U\3 aE'n+&mm1lv1[6Ѹ6.՞|2.6&ikN3=xvcˈݺ[jΗ%T;-z\ ~(?R)ʏ#EHQ~(]ڽ4߿R|"hr9F׽ +*I*xri$,ǜ).hjO/Þ4Q@"m^hƯ`Q Ai2ѱ7:Z^c\!֟{os®!i}[/vn|ߧf7{N4785|qxsfsi܌i eF=#}uu[{ovs%wXKpV- PZ`6[lC4hlAt6Ph< T,BjpA t2ܝ.HlD3<;0IC' +u2: +{mK'[0)1p&~lǼYLZOWU"kɏp.ݹTos+(I}m/o޼WM +w7j+!8Z  5\'|'3~k閎5ߏs=v<Ԥ,W&Ga{dn˘нCM߹\+A1*Qs>U,` `B\cK#m"n1 9`Y#\0ˈoZ~U謝Яg~\Ko~L>%}gd}Gך3khp{5AM轇5rkp5H$ вeXc#62m+r;tW]l\5cEp;Z&SursϹJéYGa/h~}=E^P\кDkmZn*UxŵIR'S4lvX=iԶ~q73dEJn!DATk{ҘO*3F|%(-zQunA0mH4L{w+3ѝe;tv==>>Q%T/zWgm9eql)[\-i`U8젟4.lEց됍#)5nQ]ZGmpAmbks Y;zwu4;qۉ/4ҽnÅuBs׻ nՁRCGkq4GWqs G8YqiF4:Uf*QM1MwMKrq~d6oeb AAU`?As%?MV(yf{' c}q 2n8m *N 0D2fB F 2 +uFAFd7 @IQ0G4Өzz!#7 ( ,?,S@<|]nb +cdQ1j\ط\)ß}ǀvF7ZpUcʞ +[xq=~-WgI?gk9E}lsU7iQ75hQ6rrDO>٦sq&gzJν4 Ǯ5K%+q%=Ѡ +@))WE {'h#*vB6@ea$NupPT%7`,>K(j+2w-Nt{%o$i==R=SMR$FA{cc_s_3l)0d07?*Ze2_=.~~X4)k (+H 2<#J([;%w\]ڮj&d`d%eZiY.bN_FnKxw*nUT. zdm}]w-(F qM=`tܜsoUbiƭBk6褄mRr1tϹ6窣5CPeb/_$W^[{걻g-f沕:L.WzVh{Y&nl0D7/Rs{\W| = =+?eg982][veвj=֒{fԺ'*xXpLQC)I0V= ('er_Ħ.J[l*7Oa +uhX +έCFa6WpZƸP_\x*XtąK! +oX9Br˻Z] 6BOb] [rg'8Ⱥd'qzW"η{~R6ZDZ7^})k1G]`J]3e rNGzKPh*ɏ$I"?563}ew-vr7R6XV7^*=cH/JTe[f!g+T;豧֩T:AJ0TǑZ-F$HR~ $,)jmONhoʓEC1djĻHIh&h1Kɶ,TK1\kQl"ƅjK{*u2ņbqvѬY)ZW'bMx(ulQHsڸ8WN߸JkTBtQ6~g x/EF'($DCiCo2 8:34WjWIP6̻[m.qI^{}lMhqf1`w ~u@\ݹ5H{ϭάΫN}4_kt.=]jn&8m|=HX%Jѳ4}vvWyk\\t l:YSne6 g?:Մ6k+<& 5mwd /̖lSV/|kʰ!3c̏q0`BޥĆ5mGGe&Y%#㒓T)e\23=߹??=5Քj/573qn{1*xJոmͪ=M¤x{O{u/._!.cr؛Qq4KH)!rq`gDY\!A9K*{9,52y [_gJֲnO>.&w8܃ϫ =ǓO:~Q6u mS TXo@czpUKG գrP6~yS ߸gVՄ0M$iiy%|I"7]y0=̐*އ 1΁~S-orhjxjǧ%TUb~=MqGW;ȧnIqx8ξoo8Sx5Y%; c{ߵҫ%9jw@v%  56'2:4%:CT4DgZÓ}̔tva۠k x-(מ`QyU\iuW]ޑUNOPGγu;}ď{=㞸wOl'sAC=⃪zo_~~Vk|O_J-u}??߿_9XGwH`;y0 IدÑy4.7*o;u^~G?0E_'ؠ`|kWj;|?~vw/޼~No޼\ӛ_{`˻=7o3Ou\>M١H[S G JK 9GfW nS6`nVˉ8|:Z?uY0{bR(Yϕ!P1DLz2 "QC:xXs-#ZDe_oc.#Oef6ne#ħp4MAL.(!2E(ut[E%|p4ouNKx_tG| +  G9 ʀ8XSފe1?-jb7ػIxϏP4iЁAƦ6yA9AӁ\#sZ EgP6UtL߰zoL Am&Lċ- +GǸzkx;Ǧ  kH1#)˫QxFr-~LIP;[/Y.K*çۅoRN¾:b(p3 9$!6BqncXqb;/(b^H9TIMVɋh =֕)=cHm.jB>x<0bay3 ⃀ap.-1?%RO=] ȢKvy?K$FΆ`$%NVdjꊛmo8\Uq$9Yo\7wٜ7Pcs\:`Rk"'|%<M`-A!5T ^m7Yb,YYH-s݁CQ!U6*} cT՞6NU1-;eS4>GVtv~z|ʅ n7M^~Nbx# ] mAO>8z XP,;6P9JG^$` pc ^S Gg|J9ez*0Xki%T\#>{C`Cv]E@MO`2?4݌ A?z2HopIʐWh&quǤ$) +|"Ys=xY e]){43ɰB,+iJq ?RUp8T^Vr2b! +qzxx Ky zٷϟ%%|||\}C]⭢a‹Rױ ,C"T^;t\,ش^yHe$j1TA%:V&8bKB'@qc;0 NǐC +޵ehDw{+vRMhD2H^{Zli,?RU.;QlF積vu1ZTWޣlFA2uPǢ~;XE1)k!C#:Mu|ZU0Q '쌯Vh|q"ڃ.#2HU +$ rZC,TQYh |Umk6,yXTh(p6 UQ{>nm|dHH֤,fb]<)6@F +xkv $}GDl +խOWqt!\V.ll +`. +[۟0Rt?<#7l7V?2pQF h!a +n'om,b*ff$eLx#RFlS4aXlj _38X@!n bï։9ye`Ї%oUydxox fˢ>f. +˽¶$C-unJ@Qi̐7:| tGU! 5` @D!k9;hfhW'ט9LT4Ӝ0=9_.Ҙ/pP^D76we$1ⴑ +[Άqaykho`;T͵t6=m,t-g=mowsXk%lMtsm5w}bseWW&Ubk Ȫbmkl~P[k/6@}OY(jmV4x@`gu#B~^TLŔ3{Tϊ?X܂rfظC +$KP٨&M,.4$U!FCq^^K B4VqtPK_>U !X)z(*L.?C`*5.#T|INU>50geq/1iҽPG/K>iG3Đ1:hwK*r{ >hˑHxLܼ7E׈W|7N[<N=`t%"{b9*=]O!˫ymT1WEbwv vca޴Yq]~;I +@w٧ba,Z=ʢDc z\6NrW7'I &3ԧs:fI6Ub T_qA]10UX!G킖FM(GR o#ljjf3!ťy0t9T<Z4KeC%#Tί2*F\ph"oļ@F!FNb<8ZIGEf; gfomeYxcś>NZ -qyq><,+c jۇj>27ϼȵ3M96v'zhE"N%BæDܢXÎԊv8RngSUͿmF?dx_6c!MpiURd4\:]FP/E.1_ȵ5${N1yӣ6[p\EՓr!*#F= +LB.H{S*Ƚ#UEh;-nH eb3=GtҴGhNrSG>ƪɈlbv7bog,VaZӢYLj1f(#<mN <gp8XXd<_%'q97K,_݌29- 5N +1qK3ϒq*kFRm;GĢ}d-iF7\J +0PU?0i<#r,T] nqoSa Sj_@sĴtI L8X)9GH8Q8Jv /ol5ASOZbm6[N3:GThg, V{7M-ȽL-jj6M4qX՚sJ48dLJ=1aN(ᄒP 1&x c*1x}t pBǘ 't]t)a p@{#1A(%c@P2Aw11::`'ѐ'8^40}8[4x բ,cYL#E^ ,& ń8aXLPs\ʸb' q+F bDp@,vh`}fpĄ8O "8enl3O/a1MN?cypqbـ)ń޸@ 0;Z@4ۢIC8={if<4×$s=<$&6׈8<7&) +)JfjI,1D@  ynQ%py[7Vq \8;9a0U|3*jhQ5M<`\A_cgX'N\;4ƌ|!4[L-j:ʞWV]%aK(v(tH{k$L𴇖?b/jt`7܊0 r4DBj = ,N b%{%RO q$F܊sd]B4B ?5+ ק!8Ac_|ޯ۷-y`כW-\FSD<$MB=Jsؘ[j!E`#lD Foi0zkKkjPN|1^$qsEzp,BNʝP@+JyU{~ffbhiEgh֕{_Js-CYgg|SC20X_X>A1._ +Y1mZX=eưm-5='B:+Nv~1՘Ty&8}_uSur|!ztfDY,)ϕjB5F.%(-h +yc?3M4(Nmq\!61mmu*.(CjfRt%:-J`GS 3agN 3^ۀͰM0T)S-ZZby6o;3;‚,hAt$].$xtô*qq܈s)K·%V j[w;E2{ NJ&h6TX e:a%5z})cg5'1vVKѩ\%6@j„H-0L5Z7 2/ l({FK24¦id>K%<5 !/1Xأ7r  hiw]lv@!Æ?G3y@+06S󃖊==奆e\ei.K{pTK$L;Q% ⑀{HSG=V+jG osZ.rR; /T>5S֨٥)Zfɵx6-<.p{坯<Ɲ=v:Z4`$-XZ^kZAobkG"Pl1_KLܩDAbfh݂TP>5Q֨O٥)YPdL2$f#O"Z~T,:_`fM]\f~x?2[%8/_[wyooO?{.6>xquwOo߼~`߿rj\@}>쳻g_}鿾ݟ|7/Zz_yS݋/.==#*|yu ޽}~ B෫_ڧ7?=Nw_x]?'w?}I[Qll-J.Pr6*U'>z]>"|Vd"%a~lz_uo^]_^OG5) Kqbnͤ͢G"gX’Jӽ0xN.pzQԲQejHM`2VpC'7#/^{$9UyhX9؅mJ ;73ׅQFX#9 j,T[,HVTYj-b \w^mIU^ŵ +EU +JAORa'gN9 +'[idZK8lk5ˤ SzQ0+5*H^Re 2ߑ @?6n4W [VV +|Bw9lT6tdh9ީc$1G=^ iC3j%L h8E,ʓ}S⏏2e$f$Ʊ`d'LIܕbH"Uy Cw $Q1ɴ|ds `50!,h¿)8-4aRKN(8La +_<K9A VYC&](8L!IsBK`ܺ$ A2hIAFw M?yq.5[+-$O2iҌk.LB s0AiJ(S*\\9`PZL9[q!Nm&bg(YbUYedO <]8dyU^),=4Pf^̚\j&.2%YfVbx1OlHCUMs@bYf䴦Bѐ4ZڙGAi4#AJN 1 +,.Xnhґ5 K$-J ! ;QdVD3y9>$Hf҂|lĪDZYvhht 4 b.q| :{*O@4gt J 3ړ2D!V [@_=,apiD$.OԥcL`f\ㄶIxrĥ)$ ?Uoˈ!63ߔ18$oP  ӛ5@>w]ElCHč :%!I& &z$+IR.cpHXrl%*S)j hj^bA;<$}1$*xiqkT5 +TGh _A{Oy0uo &\ҙJ$#wlEHgF*Gp#@̨*F&$(A(d^--ǎ* 8dXq㓟_ vY*2:1HҮs)Ig`I. >7({r@vBjiwBF&bz e|ȹa _h b Ӗ9X>܋ Q]K.g]ãIYދ FW"' WEPǚnG_;3iĒ'WHK"dAc?bHV4a>r禦 ) +f;aw r(QƂ*#Rb~+^]U"d/@hx{ . @+" !j&%hTC25hia1`9]C:7%p2;,Sl҆_Y\Ess%\APDǏT\Eg(!RIM]J +85\&ĔB!8 N E5>/]FEUax$r֢撮Kr惧yIuHͩ +dO.Qf  p^ː!ޣW0t +ge%[I΅!4h m{X*@S E3kDcE w Ubk&oM#"QRN$0lqDIz^jU j6kR92d֥B;*+ ĥ%y5kFe2SȃXRA"\a#]t=1!x +7M+ TII!%{:+ %4I1; .?VHqC{koZ٦r<$=i ύIspW]!;.-"a+q^3Ns;8զ84%`Dj`y]ZU zCNFNh{Ru^rSPƹJptg +\jYܨ# +NiҍUnC- r|E!(bRQvYJLC9ʃeXM2YQ@Vq\J|P %'Sfe2w8%kJan',~dpx +b%bA?P`]ˀz M1 +j(,w* !)3bJ+>NBl<>fHƲQSHNct\ZB"} +n=k',Ux$U +O%E)'4A,sު;8481ez7&`dK[A,v\ څ⏵<a +fexe p.S!`0ADt]Y!\(+H1%VO8nT'fBEaB1Ej`r_N2JFVXĖ60J*2ǃ)9 +PPBt" QFrD+m9UGuSdTj%D1E8D{F1y|&w^n\;-Zf6M#s@P#fc-IPy#q{ +D(0uY\F 44w]D AA-D rR½`?٢*"c?Xs4`m{b6)l's53Y[`(IT +l$C*JM(%(--jʤF'+-em\"nq,7?R%T +"rdq +!Tq.RڛX[`i] +G% )qܠ!ZP'IxJ``ŸrIQߺ 3s#rw{ԃHT%U#ig"K<\ MP7>EmJ'W I!j#D!$J9 x0l +=c n݌B 0dB$*hJ>WJ) +EZ⌛iĭTOҦ N#ߑZIRxzate @y0ڊ hu|2sRnq!V{@^rys-$|b3JFYD4]N:W JG'9 +䫃D(IJAY'leIOͰERR9EwlO$kU/J'];GgbyD*WFb1%\P܌ll +b't1-% za"|r*lq r"Y8s s0$=V"@+C̪41וZcоZl*o_,JՔvbe,I|s+3$HT+qNRdf +zbT%$ƴj k(BZ4d$k~ \\+:Ɣ$amcr6BiQW0א?HD"~lckL +O|c8سMv|tv7@GV$zE(#mX9k% {#*IB/m}KfG339&- tśJY ØٙNe-WAA23 g{kRճw#{"KRIc/JwGzP${tRˆ.` 4F=u4l +;4e":>@H0Bx%hxuLVTp32DkT- ;sӟn%w&kK74uJ?Bܫo 9e$Z.谓!>e"vqҳoGs6ZOth $v4vuuɮKž#;jlcH [Qu_ױTߘ}oԁdA'>~𹩧mu0[1W7,_#LCŊ.j̵Y?m +ھ*%F؍7^1c **rg?lM26G|%-%IΏt$dz.x"fQH0"'4$Ĵ#`c!:r87pp<d~=w)VfBZn;R7UXcenW-"wfXސ;*Zm Vy&Y (1Y"74hevr.Oh@b*3Df @E7,mes?axfߖk ߝ{\ipVvha#~u巔a^H:]5,t_;E+ R+s^cţAm3.HzڈAGf9Y @ h``&E8k'!}(hF낪n=]1ieޒm-&;n sjE![UJZϩ@K[xj s;)Gsj#cKY͊猼@>pR +d6GaԔls Y'jni.ETw){/Pmt4XER8xH70=v?c1nO4Tyfm~Eφ~g#yBǂjY +8P", FK8, uЛ1ݨF >o4u;`i~ wqFL$"zПaD2q<ܼn;B ydR>4s>G\ժJ񹂌|N\E U S)Q}v|x)68LMSA5oѰ7jS @2 !o)µ9ܱEDmb7ʽcNdCHʟKXҀ#G*)ĸ3F/ۿsbJ^S. n<)9SDD-%TOԦp/k&oG f6泅@w5$*ÏS0[TҠ,2ʖՑx:sulJdn/rկQKLn  c +qyo8-$nXA&e`es Bo_*ORx'1~X*m>Y-Ll;ܥ]M W1H=?sDb>?bG9,]pk["S~0fUP﷯}f\5SeSekcnDM p͊F?G*"Bށuq(TㅧZB!GӉ +󗡇x ^@- :&F0o:H`74;OxOr)0r3ŷeLCsS`do+!1#憋/HNLC郄qeh1:NZ0QE:W>WP;{Pzӣau'K{뵻(oLw__0'Pq e}8u1c%k}ݵ7*,kӮr"h*7q&A4 vFk; J,#,Mr2["l y4- H.iPڻAm/i +|9ñC8 v| +|E4jXj#pb!H$hn n= h F`dޛusgDI,:yFO/6+i +z9Tco "g9;  +zL= DoGo.][IDg41,SF_?3.3dõsy 3[~0K^_m%i{d %*a + 3Y۽^K&T`&Q?W&x uj6h)FbrFw?zLw@ +veAV;8Ŵ\#ìg91̮=n9sݹ!۩ +ʋ%{_6^n~2 xṏF=)93@F9c%GѪ&V,B,2/p J9G7\gfgRho3/BYfR!JDQO ..v+5tųJ3%ASθ)re*.lƲD.֌Ţ̩LSR*qڈ+HpDP ~BV^8V$eS}73;ٯ0@-pI`z S*H%tإ w3F&i^o,Kj̀f TZ2x{$xK`y`YLt_9,w7*g2~f]4k8{#'+QqbvK Aj&FX޴*ƘC1tٞ3Z*HqrC X(uJQ>0cpd6шH@ ܌"0w½k#]ysׇI +g`iС@,y+6`AC@}y.Z+\Yr3{W,NHBQ(JL?8c`?-¢> +rP"b=vJ]^LD~@E'ntZ&ףBa)0sSmjȭ7kf{p(V#>7jz-Fm{j-(RS +me4k*|:g+ԩtmͨm3.57lѯe6ݸK>8O8 0;q7y:j29n2E `cxn76>߅:Udt|D.Se7PFl5'8>WsWDŦѿ Je8gPXi4 s "(-P q׹YUذ1 HNI :HHl2Zh=7V [nA(c& +j(UKQ(P*v@zI&HԔ=҇Lki{أ؈ ++G4,t ]^+xuf+N7^2ϣL,HTJWK%J!&):S3h^~kV73ՈZ:-~} uI`B`?= )Tč|AUvȣr03?%$ q `fK&0c~d7nhݓ4o@?n{ܵN]43"hy:#>8nF 'a] +_s!@Y{ PYbΫF8n@玵 TKم^FV?GW>e0 +42iu5aA`Yi'Z[ +ʴ\+rP,?z駓3҃UX[V``ySap[1t)7P9t~`u(EA83 +jttbSHx9D)MP~ fE.(Y +e(Trxf _?+nP `E| Ĥrz"Iنa`Yv( UE׎'9~spjXЂ2͌kZe_hV5>%2y ïmPD;sm.BQc*@Pq(ns xe#tHiTY;yq, &!V CH{H wP}6y_"gG?^qZK=z( =n\p^x!;lsQDMtIZZ@*ݎPьLH' dFVA3Ke [k ]nBx5~]}Tc0UWv{T{ ,&ĖH@ER-H-) Up ]nvf)~6JV Z}HI-9wQ,n#Jݍ<0(YPBtD9gA38#enNTN]Gӫ ٺ7'$!"~l qa ,c!`# =dk&YB !VNt67_%mkd.蒿BX3|nErQ@q3, xH }"!>w:ul9^~킽yiyA΃!Mfp=%4,aLjx [ + !!1Heg~MHI%q1;*;:g2;-whӴa[*l-:QnJ^DlͲ?M)$UX 1ckX8c JitI3g8-4IYO/C+GLnyRzr^p%Dkl*-٠4+x[.`lMyS^pYK#B 8^r dC(Y +D^9ݻPa=bc,[\34I1FZƢ`އ ޲"5ѢU7Yk\eij 1jzE_2yDʕ869+Ƹm}HʣIAp;"4LN4_ $mduXED-pTPDk14ky3#O+>LeHk F!mt9ƌ+ t6{'ĝdeО<VBB:Jk6+PP"RX ,jÜc3!%BKS}Ĵ+)nB[&ިy1w{+U*!. +GwI%57$*&4J! MaN5r6z(Dx{n\39:qrI%dq+2RDm, V-LS. +ɗꩂA5GkAEފGp*rj;:vq"݋Xqؒp7 +JdKU&kH +tnڜD=%}_gnԲC2a!NGmܤ\743GcrveZ{vEԚ/H_{hf-?3,z:w?zI!%T6V#G?Z5Ņۿqe*:2glx`[^BHȞ<*fܽ] r> <$Tj8(j_WQ%i)Ect- (Oz^9qT‰/.B;r4=Xq06ifRi~M6xP沺ǫ{0e+)SP8%2߈C]'o(SRb)Dzh5|[z$/*A0;wD4$<} Oeڱ^㝣J1Z_k*Z;:Xl2zkʤ1-ΨQ)?9Z"@+eK2΅j$B ߪ`4X 8KϫUPEK $fHq5$t0s S-z~~"үen;egj뀤5ɷY hFHL%v ~=oqTl[>N)K3WM`0%ٌipjqCŽiBq1&2 7-&Gcj +|wC4$22ߪ9vLG.?Љ4 k_:SƐx2OoZ6ީrϺ_';Dm/9}!;BwTFa Ff\yYuR*[~D1Qgsqoe1j9 h,1Eb< It+/wzNJ#{G+ Rk-;`v(cp6~w'1&mrj/jdJg?Lotx^3]oa\χ ˯7ֲBBbjB0`B7|ۃFqza\#'Ow ޛhmީ<m}űT3-i^fj۹k>e>E3O{QUÕ}i f=/{^]X,q藔qŽS?Wnʉa*HᦎN|-m<=ӕ?m.+Ηz-jU/:gBrwtտӚpY$nu*I[(?s\CQZYx7-apWUPd劁}imC|w/J}|l2r8XB*U8m1Fp'ke3à% ia<|ĹԲwbg\~0a(nYJ+^0HN/Gp F  5m.Oo@w1voo؅1ݼM1t~;enn0Nxc,_uwX=0m6_^μ򷱇9率6gݩ/l >=1Tg6 a< \>Qol>H,ܴê[T^ׇ 1t Ad\wH_kY85U^vw<]}X +Suu:.j;2Z}3V|Ǫˎzp^.;5?#6[9ʫ;# s=\oS6Q .cyCoDȫd>$si*0x@P)P0_x- laLyUSD䴦7N֙nά?a73kz6sK\YL>˜_˓LZVT + Y0^f6bo[fo,#bܕϮ9?Ml<'[—2_a8*9WS~|$a쑹A Adf , +pɻ^ 9fdr\ƴ;~!a)Lå.!t,FB&iK\1}3•wb} $l1,jx8+KRq+0 gca*>פm,|Kc0X{ +m?3O8R+]_/?aFfwL˕G^g6V!|U9{0H-6ӈTWt~z-?+ +P)Ҫ7zvT̉8g#a +YcJ`fiNOyz~툻}.k7a>3>(r>m{=8Àke'øo;a"Β&]X] |v<~ ;o S_0NqpP O;xՐ:$NX41,~ kՊ$)VoWaN˻7\&_f\1-ö́"UyY7m&L ӄ<̄t 6~wMIOaz(5uV)7fނCMQw%7a3ʹk-r~t ݡ˜p6y[B#L;xlubzR  5mLkqMzxY2&y)# lD2>_`hQL?a!i|N`Le,&pm{ j.N4,oߋdQ}i #_B55MH`:ӗE =mOx,K[õVv.^PG/p#D>!/G8"k6=Yds$˴lp?pܔ5/^NImòR,?x$•Hj|pEcc r? yrQ y%KbmY?4n#[&_~* rI/}rdwT2e2 9&SqO˘*>pCC*N,1*5Y(˘W82[Ƽ4y Շ3/v]μ6xkCU=ys>yec1P`,zYˑFaȵ-zY9O)4[L^fH:fjzfCӫRy/z^{:`#5L%k{ڠ@G`[9Xb>:$; ՙCЯUEݺؘr1KŲ.U=[X0=Lsie31҄}&ܦ=Lmaէ(P˴bQ568LPpj)2z\zު~rCfCWhR9p041bŖ]@fj?n6XtyTBxFZVD(jz +z޿Za[C2,q-;Sӽ.Xw_ӯ+ryƾ4ԟƦ?,8PU?VME4T54f+Gڶ.O*qt ԗjӪ4fd^)lQH.𨨳ŧLROTJEc9%އW*JH/RzYII Ieǧ!E2Ų Ozۮ]e4z[[(D;R rV@w{(MP$&4 ml&3Ws6(OP<(-+ՙewb゚|H3>9=6 C~{ +3e:ܷ'r Yx*vIJi(e Q*HOџ(#Ԟ-zH)3J_.-i|, DķPa%7hX4÷|h![e \j^g,>`J-Z\%ŞR_k˶<2C|Xc"0˙#&\P*7X=0Wi_Vk^r%9U/Hv HZҟ֖{sak#f.#KDA{WsK+U0eVBcCU`TJÿmN -3ȮC;n{Q= ˂yuY"1xrM$Wlo:vuZo@i>聝&"U󇱣+տƎGjC%nxBp_4,tm;%KbHy;3#EWHa2sLr`_6%L3dDr/ʥ!໛Nc"5mpTtKm9etst? iPTk4$# ~ts4Qi!e9 +\j`(u?= mlwy9)O+G[c`)\ 6rt:Li䨶o8~ȑ˿1*"QO#G +L3-J Rz8z46/GP-!ڍ:{JQO%oVi8 FZAOGplye ^qQ AM)F+"{nF +xFZ5] 6V'7YRTxtoMi7p(ݍY~MFҙFY!~B"z7zu8TS~1y s1><i 7hCSuKm8]sah4rh%I{%Ŵ|ѡ,=ӘQQF5oPy31"ӉBәQ<'`ka.gF6Bç3#eѦ +TOF:iڰl7hGX%x}5#HDGOf^OQ!9{7kAaHa]C +VMbڣ0LF)7V1pmjrm4:d܀اk5oFś~-Fd<: F*ywپnc$&gݽ1>VýQf+-gFPi`]Ɩ$cS^*c&5AJK˼тk捊+U*n0: +:I/ƕd>K[wÏgƛ#o! 20`0` ms.P1?HEB4WlޞW(>LJV!0\J\C~މw~W(QᏈJBL`;3;D +m>\aUZZ>D0SɟW]@Z s֘wfz,ĔhL w?rE Y9tk :No?t\*t|=OĜq_5 H>qMcCϧI58˛+\%_WiDH)@rpKhٕ =`J{ kŨZQ{8Q DӅӒr{}߮xKPlᵩcGjmYmUiy2;Nw 2 49ʉ?;;QMf FoU@iZLJ~yթҶ>Or`x9HO + +E':mA*/t6@Zz1XsJ4\>mdrje"ǟ_=9e\f\(Ĭ_~!L"˲CXNz-Z[j! uR?e\eUgly~Ux#B$clW\ᦵ>\&Z}. u$ +}]S k}|˶SFi~=Пe~=G YCsY]uA/#+z/@X: r"r2>=d _m[T-iLe G%'4]tZ +uBloSOm˗0rxsUN0R0Jc~.(i81xe +=>xA]Vo {m>ԏoٗ?Ay'ʪhD.ݾ~8Cdt-Pʴl,mȴfAlex_vJLm5>[ߢ|IrU~㹄'j_VK*~XpVm Gi4KOI͊JMjtstK &IM/n(-__FHQQd!m/#ԯ͍(kcӨ\>ʨ\1`TX Ժ߹ỦoHi"2u7< +e=T$q8Ӧ!J +PA '[(c_M3&ӿy3*~ +1@u'Y.Ld˴r+{j%z9`Fq!Y6[G}c|V!I/%M$0xc +1pMcܳIlwZ*e&qm4S;&SVmAVh#Q#a&8jF)]0bzvj%qB`d48{W-㦨Q>!} +SvZ02.YMzZ_K|B2NǴգhV Z`0q!@PkjdBPd~ N酛Lά =}zR'N+ӵMޔ7]> :~X@uBvh+[s{J_݈^ǍipS^ٕM%nGiw:z\z;Qa7CgJ +޺E3-^ +NU4v;'VZEgYsePl$-~"XfΠ$ݺIPU#rR +8bԧh%ѣ$ 1rGʦqzPrLS\mT[ҘV|R`WazvCX<BsTayJSxߡz5IDt5.0ˮy Q[^mSK8&D>Df9(BwE'v&!hf7h@fa8 ΝAg %Ail ~ؕPqtqT')@jEQ! }\=#{tcZfIs!nSJv;/ݘU[8a?la9Y Ol]8āilեl] xdWH?|:N]xN&$֩Jӕ o}wMF+p/D^[[{vюT%Mz ]ףz _zx[8~N} ?q/,}x(rF!U˘Mx?BӥGύJ>yu!͸-՚/Ndax?Z>,@2Wk Ec]9G&|ީ"Oxur +!l=]O"uy7F3EBk qK|R&JUi^H|*_?n(LploD=|8p10Qb喹1Wx1]k;m]CR@?zW#711,C2눣H{))ecSHUTx< +L>{טX+kd V.\ 4{X3S۷[KHc1xě($㙌@Ex4Nj +m{GU,kpG |6DL,Rft,VXpٍMΨ-J$:;[\ӢCr vX'O[nS@սuAZ0uHvu O@$XOۘeSB&Wq +ɦ~Q9>)5K>̐2:>L5#"GL{@T߆qŮ&4ӻ vѼcDWѠأOTvouت= M|%1Jxa>z(Iż3ܲ_ Ya\>v]iqrkEӺe}]PT6|5f|Xֈy3 ĆuZDSf?GHر7D!!e\1=O;: u?V5GvD˩;CrD`z_S pI޶ظ Fڐ q*lu=JÌу zc|_P҂ meJ df p ~UIQlYPǏ{d}O덨g1SC>",?@S +Fez;:5wg9^9zlx"?q=m㕮,W4Zp hROxj7Əjgj&awTo# "1GnSkʏ=E";tęUI+_Rn pH(gH5Gn Vi@v=)@㭄F将`"1vtw*XcrЬWxIP/>厙":VLrtvS'2$$/F/3qߚ `3`f]ˍB2lr%'wd8'آlպmar\>&;mjxM[bwMDZA<ށ9ғU簖b6Y)N#!(ؖpIuח1.KESh>vtokLXpCˢα=.ZF'vT|8䖂'[ȹ__7%7:1B J4*Wwjԙɯsb5DZ5aejq3tH{< GpH*n̠g\٥E!SV3$)$WL +j,y;bc }8$Jg"fҹDpg0g:OM?*<C +tg5⤄G]N1<ƾm3ǁ}fyjRe2P3L$jh΋sƌu\Y;`ӥ$3Mr0- u8[9[|]||d=ʢWcQїÁHwAP:DVK=lJӷ̈́H03Si ;&pR~ǔ֨ZR #3,*#p#4r4ezT`ٹ@iHޤDSo%SȽoe uٝc|T1ຓjeXP;9Ѝ"Y=b U@1dAg^$HG +T9uSRq 2 D|{/4=HS:r?;}3fP%tML1FrνֈFm'*5Z|n=-m~:Pn'*ӡz)滫jԞH.ڠ9g͞* *c{v|R#2| LYs#Z8جY%75 )^DmORw; +P}N3iQr_G{ ՗ܑu֪3u%lμN5́dh.rnaBh"EXW9c}mb~@ -ﵺu'x;QM. ڹ]=c1IzJ&ϝ0I1\~C$qbX-2x"m1TgZDFs?JHM,`UV~&hcٸ/mZ$2"p!dȩ@[ 1޵};A`\YІxvn3de +&t6CN qhs8&=Kf0K^NQ1R(:Qs\HFۊrʼnzEtèŸA03'h&*O cصP5¸Gqavwy[Zu^6w-N/04Lnc$%H4VpDV,!V;/%̎1:X7lYtvBZ.EJ&dsEM +Ae~݀QAjAG*>ݞX^Ѳ?CVTyh9;0h"_?Y ƁY'ѕ1 t{&=;"FhD|z6~}lD=f1;׽Nz>g=~<ZGWuDy:3x&\.OF3t4vȭv[pYX 6BݯG U7Oओa_O Cƍ 'PgH5oo9" Mѭ{(pN{ٍ؁)#i䐅b( qc2SQ ) + +3Pk6zx{ @% S2e3N Beʘd) OAP$DO?:o_P;G;Bpe1yR:ecK Tr3fb4:+Q4pIb>2A\cC(;qBs0N2BTEՓ4qlv0kbbL6CoeQWdviG/R¨4'WBsjBnIqhqH]#P]lc;SDFV.v)> R8^ELx3AITwbm1ZWJ6Ac%1}>,@/^F Ga%Xfع 2b5@nEA职՟05˯(}gȏҭ8Uў#to pS5LXTa 09bm! [Y`^sr-yp$'=t*reDtZy`E%uȶ T}A<6<<54]FAYF͔ +Y)qw drnqh57 ij-/ROUn+xIUJQsuq"4(lJ:ɞs~IADHSP*W &9i~K] hi0Y +?;eF\ ShnZD:-3^Bo@dT {6O(};gVH81&9BK$LCB_M/NwŴ3ѕ +;k+z1P>cLJV ASPgw ~enhd}ߋTMHu"і%XV ѪdEJWq5'_ )s5V$c]fLm!R=Cz($h +}RtX1^6MH5RĊ"Fl"i41^y裈S pqO~3@S!ŗ12Ĥ3NKa XA”M9P>삪F^K;`EC_8ˎ^?"FPY[ԯy\{9Oa*!#QlR2t?{y}ݐL: c{R0?Y<b+)5^+Jv&v[Z{8NK?Ty+,H +vʯ4El0vnx5Hg:[uz@WG]W̴Yg=^4L(@vZjiU5DgDv +8+P/p' ~*LJY ?*v`+d75˷xꊈHiaAѿ`"aD\Azt@\>LJMIWTI8UȎ%ESH&=|se ΋tc#j>4JFw\sy5x{xw楠LDG"4B}cr{LA[}G&an, ̩LUDEc"GR48Ù7" lFv}J_{Y[ֳlH- qD h9 E qԛ x0-g OX{UഛrO~PIЃKR<)Z;rp[ ,ؠk,uu: ?TUbvLEEW*H SHUR?]lc/I; ;; +ڰscOQelޏp3Ԓ>)j7 (U9: }Ḷ\{ #L:gI5#!>&y7Wa IVj 2>@*͍-(V/p)5~DTQgBrmiVC:- #]5Ԫ@,ߴP7|v@>d`mzsCJjw@Zc`'*lri8Eq&,/43\Hkݠ1f-vR+N.X4 +#ś7 Tmfx +γ.Q[8.\BeIј׮=qP% ##bWbUmtԠ ƷCx;U ȗah +LܹQr;8%9MHe U6/_*">",x]jՑn79AeQ@5jO;GJ~?j Ih1jsFAա:^$mTR 12N$-t;(;?]HMٔ!l658Иҡ PSdRϮqdDMb:r @)OVib34t+0`[+z:y**mh4Vzg[BjR-՘!)T 1ԉUqr0 JH~ Q,.~۬>f@3^{l1$uttS\]zcxyŌm s@~H2sJa>jG4m* Jˌ漞Gq;;&*V,yko+fR1n7C_n׌Ǯ,M93`MCff-ZzSid1b0H@z̕*5)AOvk;a#!RGVGTUދ$AE[@P~oDHЩd!X6-Q53Q~֖&"hҿK`ƛtr71 b8ߡZɊp굁;pk;6'jC +`c=.6Z4Mc&?`k-o#F+od L[L%<>u|sZWlX+w{k uS]\'NGTHa*MW>CDΛ0M|i̪O2/\9,zLc }P<<Ms5J7%4)NVu"fM ~GPކ(0ozs_*zHkpAXݫaJJhWZc8vmγ8kCIE(8U\S= 6 d̹o!u*|\{ѣ?#k(kxͻHp*,?k:YS!v79Ѓ/^ifI5v=n;INEљl8%Znי*inIYTY%a^5W>/T35B,1f041}=>Z/> SAmaf 3j]so j^CquKuEB=A` kph +KCD!i.D~k'IojkZs$*D$.iBv~՚L`3Lú*Y"L{5Z}.KĿv:x~q)}YcAa +ZOl3\ՁЄgHR(aɰ 5jCN;2\9Njk4׈tО/ITh*FM{ h'>$]s_V/F +D%r6CσZ(NpdA7V*d ,_{#-2_ QPG`˗_| +Npy7ok4t%rר$SzQS~{M; F&81$v?[vUv2삱۰)AQpŽZJ{Č$VD%UUgy__ѕеfgz~n]p0ffcTd(g4qzY!^W!FUPX]~ ݜ[K=m  +WAC9pGL$5nu^պ=nˆ<'/*D˨rj =րWЃZO(=CZ`kx3&SREeqli{X%yg^ܙ&U @ɫ\Jl}hRjal%l.3-רAlA)Ce K`dm&;)Ɍ͢ Q e@ڼТc(o=*M!@یW`{@5 i>zw(a{<OYY?i4=Ȼŕ,tUӞ/RMU nId̳Ո`[JSC!2`< xןSy%:KoaagcY"'n8BM"jt:gt&,J{IDsoEĮP-"ddxaYJ#)^CVȂzD~+Re)߻_'ɕnJgoK2Qv +u f!\XCqPJHu/$?}\DI'Mhrf{LB*R2u-Au/^qO_PNŚrA$;6i7-ua-T@O'2MX(ڃ`<\>sgZ+1t-ш +fg$uXj Y䘴Z+Tk" B*S +%/q#,)<&QHC-%s#tDE*C>w kZ =pFmŽ],/s^t^5BZ٦#*dɢj87PM(!IcQ 4G𵘻Qhrءm؍Lf4ۭTӝmg<$->Zpˈ"B79meάa,Ze3O%M称[ icn|BB,,,=„ZZ.t:n.bT,{iD\o0w;c&< +6dEv!T@t N"Պe\ +MҚv7vs^İLC f9Aωei!x*f&`(2IZ9S2F 1>*Jɸ5 +7oGD(ZKak2{ apBlAGR4s7n^.# 2ch(kyYM݄b/ȡq7sDt;/b; X8u<BG 􂬁S\lzh +)d0NX5]Ns_qp."8YHLHr^W<_Zfux.ZRcJ +ѤG~ӸSI-ZXyE'5~jϗrPd袬$eud,RP֑>lO +$ .Bl$M1% +%&Vx6談,etRį_M#"C31Ă݆#0O +-tO 9{*n.s2 da@ LOpsJdLs0) +k %r~uњ`lH=Kx͂l2ڐN${ҳyO=ŵ 4R1BcWÑ>ݚ,`j:KWj4lBգB3#^[#J͊)U ڎxV ʼnRzB5b4ɓO_xBEyRc ␘Du;Yu{K{9#[Ȕ5m:mʻMk,sHq㌅Nջz65Eޭ07Eq>22ER @j]3}ɏ]?*4&%+(ϊfijmTNt҂Nc(өzЦ&t4P|o8k~cFnz:L;T!%*0ZKĄϵF!QVj6&jֵxB (۳JQs!Z(gNP~#nˠ mŌCzhD.)i -ה9y<qا;'M,ڒ[ Vu>{aPZǤPGcLCd,KŔYè:l`t6\M Oi$r7@Ri/s,xB^v۫$^`˳$Ecvɕ@%w>_smWmXH7W \J˜RC(a6G9m.8K$b~6l?{~wůOկ~ݏ8_}~ogoE|4d?ZF:vZ ߂}$QBxg$>KyDZɵ"84TyD,-f;4?5NY:U]=_zT}U_(n9c}A]sZ$Sa(6=g?Q!W;ͨz3yvsD'7a81A 2$s& }l5gkITBɉkw{6N +endstream endobj 57 0 obj <>stream +T80pzUR&6+@;NZdD+D[Jy㡛T1šY"ydFYY7OΚ- 4}>eb ZF +xD8adIst$m_/|&!JXz3_i[6XUoڻΔ*u gϢPd,6#Gd|RH l=ttJopyLlQp@ݮh-8>Q4 +Q?-EMfHyl3QPݣUsk%̔, ;0FoFh f큊lmP*GH?5Hl%eRcitʽg8Rk@=L:&|.mjr} AAm}wlq@糭-h)kS'>p*H* z?)p;LFxr@7Zge準HcLp^?(U;V^-3JC.gp9N\^6[|ڊڊm#9ZE"Y 5R4K͊= ҎU %'9İ\GE%,zTIBCRᎳz,z؅ݞ2ē_ԅz%\H2/9Ю>V +Tj-n7[+Y0b*ie-Xg#$ +c54м:ijE_^9-R$<@ \$aʬk 8$zzQќv p8RӨK y-lm!_rMKRuSҒˈ7\jxHHK>&.n"lfB;A5m?`*nK`׷d4Ko ?B d?ˁVpvKU[2n!?kr- s`#UM8~~3"1I ޮ*F&sVY(:?T_Ӽ_,"32DκѬZq7.HTaLI'.h";M/j³r+\ZxwkD S6SF={G$DzقH ڴMCSC| <'Ajna%'Ю؊|.սoǤZ)ׁF64$ϿZY??` L=vP(%08@Je[ѫ1`WLt˧7n Qi;_@``9fv\8Jxތn~VYcgj˕u^p̠xПyU 0pKZ1RSEK.(b^~54) +TdPFBZ +YoR6ja#aATc#M NB9]Lwׁ½T5ѐ{ѫS%: 7ٕI$ PZuE~L5YDbBZi *(ʐM28O3Ti#mRL. Պ9Pj}CgT Ȑc!n$gjML{'9MNʉ[ݪ:,[hoEQLyOZDM~(מЯk!6E;G[Cj(#6R\# +".}Rh,LfK%.j^4@G5xvZZM|E@kkycHѴ"@ &"~V);巁l,4~v1#->L x5&: +4x-jE%s.@8ߋg&K[|@BNsaubĂ^lSmhe]UQb%8t<x\|i.4\KRV\XS^p^I2PvԈe JĭՎz=+2YXͺvYA492nQk{:Rgs*:]z4`I;Ft2SS0Y2wT B[4>&% hsȉH}4D46[| J{lv i9lXEot!`M}wᑂS|_p?oBODG̼\ϼځ}#D&ŽUZC{-(jsma<oO0ITGDnbyf1XӉcCKRq*e~S؊ƒ 82[wlQ +e|~i+?'4.=֩* b32kSU{ Dڹ0$[1[=)qُ03-pQv+R:~ +hB{amR%ēؙAz]a"<\5qW2Z ,cPTG]foLܯZ6eMD\Ÿ9dȟv9Kv(ؕ]gs@f\{c{ًdd _M0ӏ l%.V6-p>f bHx1=V0;r}QD5VZ$Z^+E{Q% G5!HK Tk̰y=Ӎ $XNu'{$#̪X@EvTB F|9UT! +*lwu!Xfbd?7?/ؠI{@\K hNU%O tx$N` -~VVׇNz2rPE5L!U2l4p$! ! .]b>US!@|CH|I,*kfuـSd[-2E1uhoSOY.O)Yw[*ob./PyYôo]Xr;r_dS:,ъ+lh̭gu- %=1$+V;XxHdjH,PPp XFdu9 hM5_IUC!'] +pzt#FCbzE +f0 :,Ant;㩧ڄ'%w%.6 +G$V1er +!(CJX8D܉ՑX"埒ɭK-P2bdv ߣdqs#rFz{t(Z +PHs'@¨i0OoRI-{CReP)[̔kY3=\ePQ-&lZaA,XZH9B!% [č#D fg %I>DKӟ! B' =E$e@HA}쓤e\ǔ1zk($8@J@BI19fJT&{I"-S%mA*:⶯DȤ 0|c2eI Fe~ղxHj§׍l25^4A 1Гg֭pQRK!T];@ÁU*tQ&9JTR1,QYW.dKeBxa{KΟf5$Ru{RHM%=Fxk@KY.amnW DkIYHu.׈zeF)Y_ \ <ŃS IȲ%H:H&SVi)u[ZH]'Ҹ%G  +2xs/k~w*HSnf^4m9<(eE1*E/>Kcd[I+Mse'Y\г1b +벦t} H\ds_Hz(^4\ C.l,Vn[ C: Pp~I ܆H7KBR5GZ Ɣ`ydD|ZHL_lu0 {t)`r WRN8X">E,G6h\tpN`uZ`-_J3ؽB`*I6TF}/tA\~f lL|t|2&?u-[8^F[J:h۳:{:q2Q2peWCrjPΞ1y[3ƥ\5UHOk&ȣCnat +HHq/6ɤ&eX:<ķUbD5{C6v>גJ2ʇ(uH[ܖS ĴXMf"/ViڹFYUY x3:TVɜ mL!Y)G)U_4$LaVi B' ++>4B2Sh nGbVFR@V sI $,|~JB9tZt }[%5{' T\ϖmWǘZTYG;,zvE4DB r+pBMʈ~ngh^0gwA#,tYTv o#2.:.X +^U.BZ;YwqK{|~W+njD.HXgD&ݤ>)Ԃ9koõppYrNI8'8sy/Ji\6(Feo+;E?bò9g@ήl9ǘX Kå \O^*;4cE݁U>>Td@%0_F]B6,YK$~TbDͩ#TbdCV#X}fu(98 Fs iIꆬFf H8 xqǣ8@)\ړu,NyRq?MRoGYqMB sdaBghO~2?v:bi[7}4*oom,I$7pl4sρG/,,J54T%Jj6HblIwv[>a=S%-W *!ssxFK" |7V5FZba5 NQֈRݼU## *2I4 +xHyNgHX7pp{&cPah:*h-*+ ǹqJe;? [<W9(EG?eUW\U76.mZ"́úYq%N6z<ƨWf^r"Iq;rܲA][@,JxK45>K]*HuE: +뾪EK(0o l&L"/#?`3<]nQsf 2[;ז݅+au%1R0>g:p[S4d9P$UD\ڭ-6Sl놀莪6y\Ȉw.j%KnAѵՁM1hg9+#%&EHm_O/5,9 5=KIm9_P;SvO~ڇ^" ^&.R\v!'4>d3yS7@a- +ۊ/6x}*v偾U=3j٥!lAIBÒa6+V6&rĸ" tW7fHr۵WmVPu!Sa2YJ[03d)Tks@66`7n9RFPg{NnEAJdAۿS:lu ~icf09AdDevT&p +pb8 ڐR@5Ap"<gfIF\ַh(%7@ۤa%N d pQQXLᎪ^PfV(wG/A{%w^@ +% 춀1ۏ=RpQZOdWTY+VPHOe1go̚;^ +:*ہf{e{mZ'h!5rud:f4rV\'2g}h2I96O鞇1l2B\?pIwqL!WZz$~SPXE;/|ٹ0].6Rqu섥ܳGVn o<3m tx즠rK(=S [ihj”髭 p tt//َ$\J2rO 2ס1~VfЗ^r5y= &QrmV95i +Vށz`z((+piVQr +GzYsI ܭz@PWjM7&"h&Qa;w1quwfX =lSدdP +Utk1f5)IُT(pp!XNmzy5y_lb' yA&;U#~aDY}vnX|)G1q}Od+Q`#a] +1gƇ0㥢{ k2/pEV %/@| 8)4_LWԹ]Ӏ@R0I+=B+C3,GU|A }n1 Nn\>=6x`n]^YWtK-9 2 -t!߯??^l6!elcΙ`1U="sqb#YN^ĺbu4ŚIPif䑍n@C1P5hV5@vJr;]A.eyۀKK !Q/{ 4]0|{Դ ܴi?Fp.%*kVby=ѩU%i-`PWQ!e8 "EySDŒP׮ Ѧul3I||VI#a=\d#d&څL_`vY'5ϑ#oSa2;Z %oI\g88y~όcJ)C3Yٷ?ևe H+xBboc$\n݊KMY$DUߟN"޺;6lXMaM5` $菈~WgW.WySYxC@Aܔ7t~AfF(ź>tr݊h9/CLz˙PhƧYyd2-/دx8J),g`sق *6vF|a}>\0䥎(CھqT!X({! |tu?鸛AMhEG6p0A]7dKBP~ XlE\{Op]rs7U)H;P>BE6{\ ++۰}8J"SVɿ Ol݁{`iz=$Jk!Z`H n[kX c{|޿ 0BØJ\> a 0t jC,g˚kTpEr(w[Q_j*-&]+[#2W*Qb[WԸV: z{멮k\V6q`Ќ*y'(UlCSt5qT88m{mhP[m1c/$ Ɋ9`y90{EQ~xmN1`]J+tQkX'kr,6|C d,]:As=X,@rfa~W;oˬqJ *S;U"? 맙"^S|9B5!泬]oKJjzgrXAlIM ^F(K]4&zwÙ#)S{JjsMߟhZ0%jg8U#2mIAr=|Q2)2I,t\'= ^v]N󊭲(sS- +Et&A5A<80Ecor/ nK ѐ kFv +DP%Oo[o‹gMe\ %o:ä+p/5Alw̐KvYCWleX` Pl/Siwzf=VQ粰w"_ck>n{8ڇPڐMG)dO$yH!;G.} >;1KYcD,Jan5ş\v-~`8!U))!99IE5Ovo?p`WXq-΄-ji=YؐDqWu5#GrrLʉ~8QT섵y}s@ŜFv8`k'}aU,f)5Y]2}?kpBG^v2r^'È-aI#P94~S +>ϬՂ/;҉']R^s(wrW>3$) + Tj6hVr**aۂ5"ˎPS Zzf84*p½*DBSYT(tyxި'inh'\BpV&w`kq2''gi\גR8Bb6PN=0ޯXvz"N6!uOن߈+~2 ]䭇8-.Sbט0q{sDP]>ymb+cc=Eu|䶭QWTzT8~wX̤iC4M๑, MF e+k4 JJ@HZӔ 90Fm5վj_݊s >@L(-AD@j +t=DH):O׬&b,ooX_f + mjhak 2Q +5rnE?uDGdO !Jr֚v~Zڡik#VSVL,[ +` ޣuT7H\5nFHN;wcbY?!2=E]yg +Qr:GŽ]TpOt˚PQ--UYV 6 +gU@QYOO/З$Q\*&M8l1ʐf=IQa, u'2ke{23g\᜵d|eHG@T 1[ٴjл +N R-@$&IN2H]zl{x%SNg2 '?XV+?h6~jfCV!cib>$B)!=8 MkuZh T0I^F2E%)0Ӆ}f@?'C5U<_dpf#<|pp?>.淤ef\F@ \RH~0j ЖFF5gߵƓ)(@ ۔\k9u-*=0T2zT=$&$oVp̗s>9Ibkn`ij-"h'ck7aFov4ܘ.,-$m]=ʢ'Y:IG Xd%`Cvbޔ4YjE\r_k-m,]?u?wx`8Z|'q7*JtKrpI#9]5ݱz-b![u`=ā5C)q` 2l=A >PRLW1mA( %!TV0lM܁0:eۢ䏅5F.K%{!&CZ*e.z2QqVN Pkls;rᬘWȯL0cW#&YD*BKRv+@)84 ܤgc4Me)7--$UǤ7,UFlumM"{yn(ᬳ!NFMDr{5珻X`p򮃡WӑDђJ7>r钇Lfzc&hT0Q"%T `M8ƒݥ?hVZShA @tchO,'8e VdM3X5 1"· 6ˊWՀ_36qMA1Qθ:#p)PZ#MVSEnQ#)8&[ QIʲlA<41LI1.cQQ)xlΊn|rjRKqSBwU+UAj= +_aȬCsL Wo UHt$7kǨN3Z#kY]].akuaqN¬P5;V7 +4r6B׶C8>m`Eݠ@QooՆ.Yյ/\"a4a-. isZ_<"0%IjsQ->"}lhOmE8,M0~(\Z<Ȑk~.wSV+UNTUm+#zCcق&FzXt-(^w +ڔa`R㉺wE8Bښx \mpȖM!5زIN*UYHF4JGHiҪۭ^`ZpehЏ k'n~¡E]QMS)ڥ[4峩L)WHHSJrΝ"TCzLm>ݟqF-Rk"Y3%eShJf&.NQ֘iav05lt + ;pGIoJY#U.Q%-jq ~ k$'`S9: e访8<]0#cXCe'7.>C +ŏ#&<;1 %(MK ,$"] _6`7\eʉ@~8Y mTlHBVëL/dyʇ_{"5 cMhٝ" *pAW`!;Va UkyB%` qnKř^ulZ/n+9݊u|iwr`x7>J| +: +JC VDat8>^pIR08 C/I(W:`4Bva4xa^[ש?۟?۟_/~滿w|?}WOw?oߟ~?{oo׿}~Z_ow`~,%x 躯_|o/Or_WW~zy˗ծ~_~^_Wq54/?o`ioGrOMۿ9ן/~Woz?O?;%?ҋWۿշyWwAkjokN&)jH}77_g/hShݶgW^biƿEnOw<$zs;84^7&Ǐ_3[R+{0X[4dF$="h?C>?я'$'=>.cK=^mߝqfz A K=.vޣA$7is~e5Xdv6{0՟گIz󣨩J  7^ctݨjS?3W3D4j=Gn_YS͔un/f){'a܅vgD3~ +'EayKZqFXc2rH>P4 x-&*јu-HƾGT-}3'315?:]3]9WTl19Nz~xYO-w^{bSE ''ʕz)zq s + +g~{4~uq~ '|]^:({CclhFRݜЕws҅8cTyކ_>}L |Uph8%~fk.rc.ec$pگyG#Auc+,2 Ur".՞k+ge3w"oy#HcaX!}v1'LO n܋Ż;ikk'p'|a8\-ȎSN@kޕ#(h:߲&GnOڨ˓{/ @|)XE"wA7kz;Npv/{͇y :6 18ޱ!e]3. Ǚ ƳM'2y"ڣysd_>s:kgܾ |w"񬕌ow{K?W'o܀Or9fl\^`~D|N)i gI_QXX#^S Է=gq ;=_4'lg?m`!^6qO +Z$UMNb~{{z4hlg3FbטLwߨ|T7x^9+!ʁH;hdqewT'$?#>ɍ^Oc=3X9;S͖f9) +_sH'(ϢT@+s\'w8)՗^MVcB#&H <q+d!O u\TR n#.X eIq.q24tSdz#[{YD,$4OL2β ?nKNf3%kxb e}3?\;~2k񤘔it:gЬEK޹RN%G~aDϻp`_p=ۅYI ic0lj cɯ{bO%pBޙ +D7^~<)c,{s8x}7'NP%TDF;O*6?:~2oDѳlKpنj #sѕvg_j96@O5ayGAK$Ӈ)r~."m\>[5Fz!t;AXN%!ˍ%Ŵh!VOL +Da@vٟ78Rw#t{nxݲ~؝$ej&AS"{V~v?d2W191ʞ%~>AYΈP"C#{q̈9hp>ēIYgPPlA9oJexY/A8C:'sݛbSjlwI wIr^̍A/kbi$ OYN}p(+ظɮ'BƳnp]DT1O?>a6OI@]v#EM廾0 H |rhӼW^ +؟n2ے(!httOM M1|YL%@hߓ_|W5`e*'Iy%Sœ{C74^g?LF#)S'))hMY1E7?OzܹJ}#ٌuW= ?o,Dx:k\.i(oB*qk_ |rO3}gY#> NpM@blS2j'0~hTh1V:ar>/ sB;X0iO֪0`3xY"@K}rE{_whȌ5c!|v +CQ\I$whO}qua=ytyxo쉮Qњ"Rle6=Q~C'11FU{ΰ/IKӐ"'i鉦ʝ:^?[7$a| oם=?ِMȺFB2!rq)6"~o&rkOMWkTc?|w==Ĝڹv*3jZw #KI>eFꉢ0T[`ұ{{1eDcajzr$"NRND;C)ǽ>k<3~/@efTu]ͦlsCh{XnJB-FKdN}f6Pr 7+oȿHZWFNN^ΰ^hLg`oO;;<׎4dݍ93>D{zB_ejG;)E۞^mgBTa Pmk)Zm}Q ^ʲT?#Z yq;BcseU"y`g_ ˷n}uw% +C47q]07^gH9Vs{U\~ V#$A!<1N+j+7>*#P>ָsagqΰk=v熿17k9eGH RL ߆"pHڍ|ʢ˦4׮ iTNӜ=gיN"rpU +~t +ɦP;@\˞Aӏ>'yPc-g]/~` +[q,kk1)9J2 YǏeKf33H23{ޝIGVkg}V fRai%Ѓ 4ZHH̠5}hiRv9:sk)|fش5\AYɄDF= +4k)=0-^N<`S6o(T7 (Rr!o\ CHB_ҚF,f7ȾSBbr$u[WG}be8YW{.GVh^d'.Ab.4Z@SKs4v6Rxi 2eh{9`E7d)}DgP=33uTpcd<|X !\,5ر9WKLq@Qj&0m K&E I&w#4;-ėSd Ccm`>$NJZTGvb4MPFV_` %N+@L Sa,B>F-k{'Lep>p|6|0X#L돑Z*-G۳#m6N҆FpJuUn&#XKA҄r&r31BQbڷ3x52$E/Tó\9hB}\ 7W]\,Di,h5BK 9NTm# z[zn SZ[+jZk@ 2M])FKsiT/LȤ٭L5ې5j+@IL̸p5'ky~B$V.0Zf0+jR]Pl5bTm<Z=]'ЭCdpub_Y?[SXf"254w@4;SRjU*%<+\Mkvi#(jOAgF 'm*\*bfKbAj"nE]ne!6\,WӤ+OjaQ׆6"n)UD/vwf*eF܈O+"G+xءBfz Qi!؃K>zp_ce~C!FbFG P:d0:r1Pi!VyӦXY_0_)!JVRwpˤfzE, ]YB\ +]b.]J v̥f +1/N A.Bܤ =輛g XR7:n%KDT:WiP=Q.f߷K4Ԙj+^}iQM┋b.2fbb*B]ۡG*_e'jugp«Y(p0RK XPT8RDMVZm +` + G-2eu]vB*f Jn).#HL[IE\څIB(E1W/aWmڼWm8GZW>4ZmR [d ?.$W6 >TP.ozln)I"F5Aa)ڔiKz[sQK.Xs!4Wh h*5rJ/] ,,¶ZC':FzҬt1s+H}P-ł;d e]9 gPD⥰Cr +KT#B˰WN P6JBޣFhTSOJ!,l{+uTu +mmr +E ɺq ]  +3+ (q\%yxXB.tk!-Ӌ+z|" xdbb)HvW9lqGL࿝~"B k^Y[5ꪒ Kj ++q=>VE@ȄNź(nY!hs-:Ys8A RXgUh!Qv.Rnp +Qj% W3vgjuE6-yD'M,u' hP4L+=32 E%$je.`!V`\yr1{݆GT|`S]I0PJ,b#ם0+ k/6j, +e:\XAОf%ַs)yכ73Y*@^–1vT7ZEB趵 i!(x-" źz[,K\-Rm]_8\(-&϶h+oRqpP,\ +u_[hwr-t/h -q ++`Qt QtjK܃P B)TYiTzLvBT 7 +XU+@Ϸef"q k*Hȫ.+[inl +h!HGt'h]vB_&"+"r]x;wIuo'/oP_'=Z. SNJKm)/6 +Ylj#~ws+I/jM3jx& $h۵TU;p}mXBhp^'\+;Kh7e6!(:*jUKJAXB(Wu,7I\gK]&Oh+X*Kj/ZhSqbFz㣭?eă-.Ruu\L;8X)U] +d;/Ki*r +-ŭ.dmXA}Kޒ6RԤ,?H49z{ *.=/5- +rK jPE<[T!6ܴߚ`njUݿn|}~z2^n_i_9%zY_d-ڄZ7?k +\/tKS l"^7?B6$.AO8 ?RLfrՠԪ+WeKJV%%k\{ْYˬ7Q9Zgk{լ^-7G[5ؖ 4XFUi:§:u:rkJtdr[*Zb{ػ9+۸EwY/a \Bn}"V9{[ɲO{a@zQk8kh^{donC@>*:`:nP9 +Cya|p)C a\rD>vW:΄OŔ|Xt-S3xFqL&.0y0ן?Y~l@6t <-E8ψ{po|hp&${(7 LEv \{) u/b@1bBƔG`o+[v5W!T4 Jx&scmč)ȾvW/%ԘK=s4>|,AxecCsٔ-uB^2,Iz$7; L\8.3&2w> I|X&3*$w(ڛ L$y#} u7= l(7$νsնмh_[5d5'YR)= X?C%z)}--Yta}/Wb_++r}=k`tec,Q >$\8%z-#YFsdofC:h6PIرvUUKl$*'$19Tc9_@64cc| d6d4!y/z6x$0Oj1#(b; a\H`ckJiH8z.?$> x$3cqUزqLH`=\bx>iQ0Oz2!YCA F[16@1*-7s IlV4.c:Y> [&[+Z1׾v̠+Ʋ< $gz$I͓)|bD&,m(!?ُJ'5NC3},_7׈u5c~)l7 \.'zÌC%2H>udjJbtTo0nhͻU%,|@>Ȉrr4&2>i[k/;ң ށG=9Ap $ ` Am{)9C'/6@:pH:Q|Pp/vُ(*M&\zӾآLlj$oh~s1`ؠ!|DH.$g8҇Æ[1)~>WpԌOGb#ѸFA[|as>{,(6- @?A' bS\Q>Q})/AfT$Kci\Y\J.n.E"SR)4 ؤlL&d <7*3PyD :Cy3qQAi@HKHg#%dq%!YF-Q2H'.AJZFGDJgoCHgF)\ HޤWB?*$g[FaLńd#G3)P~iٰwR-7= )n$8_?s0_hg ]:a_6(uF;ۏe6edAٛlBx.f"iwD_.x$_3^e:c:S5N &s"|0C:4;tc&">4m(3l0(l ]u,q`Ka|J\J 0oX.zVX7\U?'sزѕcAS̝٤ 0F̤svϤϦJOI֍c&?AgulitƉLp0Ѕ k\rd6Y~Ҝ>A)oRѱc茭_0S1-@1ɃaX̆BR.H! 8IFk c \th?u X?' |@1ހ,ZOD?2-]rIJ =cFf eJg cֆjX#dxC2k(_h=r1՟S6O]zr4dܑ]cUqʂE:dn?."{y*w6# 5o&a4Xِ8 HĆg: ++(g(% :ݓAa? }<#z1bS&Ӆ  4}a`*t3t*+.c[68-ƇJot7] AgƦ/(^Ȗp'*o;/%>c2G֡TEY+&kL:8k +t$1w&s4ȗtjT\X*r ]:,I%4|"i3HnlKy"ro`}>ݐ0.jԽo~&U5J5Q|t4뀴!Xl8$5n ?³nk'phEA0H9a[B?xOtE ݃"Z hw`̤|Φ"Eϖ6EUOl5Q{o=7w&d$s +s!Fk13' +qfG_Cw#q\V-X0~ldpЧ4&>hE&=CI%|qfCs*W!z/ p!<@<tO , cs͆@r0c~=HhApWdo[-l ¦F 7 Bl mHWc`ܔ'Ziؾ{d \7MB7ഌmȆ{ߪ~Po̡JoGWe0|-ȎzQ]Ȋts:`5|8XL`@ЛǗqj-*'&GEg>ÄÚ\qmz2 p-G"0w=Qyº,dFblrt6#њJ n k @j{؎h gc150dp *p8{${ ׀@w&| }+/5q`tPP o3dfF:Cǘd>ܐ&ֱh-p' +"?#.dY?aw?(iw'?m(YO`3)Ȫh-!q}UW!Nc(c\zxQ;>ɮ[Lo$oy${lEkd=7CS^cHǂt'{Fa;6 ~; 몔Iti]~JsFqɪk=T~_C]ecaq_T?Ar;*$s"'[AZLx { 'ubdiOp CX" |=c805>߄\Jd3 GQߠ5ŕx9 ƷDe+: (+=u I8ӱ- |[:=90\XPzl|x6$e7Ikhњarۅdl(?[{Lq0V0x#=y ߊ ا>? *?CR_ +̀/|)o '8l**l¯HOb: V9`0EO]|`'q +M4]=.IG"= TxP: KtYtjd̟wv&30_`'C_RI`qTSU˃ʺr:cTXpټPs[M`u7 w!~KWM(˔GI8 =s`UWʖW>)`'n>p'XKE `-! SCZ _}H炽*3,>>98 MG3caMk7Ɔ ͠{)C-Ȕza=ALڤ_}H_`!p7>lH`Mx cc䎧kDtRX+J>{B_a`#tLpp[|,EcClCrȅe?§|!; Ǿ<0e0xo7냀coD&cγ0oGC98=pD%U|*?tP3>4>/W_SP9f݀wϙm&`1D62;gE!^l6 @dSŒ.Z6_fyuUlW͏r^F׎9#TO(7\lQ1>#yoælj </A 1& UGsЗ!D'mDG6u_4YytX4|Kip| #ȉcҦ)\bם_G82;gO|B3[g2~&ogZn.c;2TԖdsWa .Hڄg1_Ll0:'!y` +esw⒫&bdmψ:O0Urx>YuZJuSbp) 5!&$Mva]H4صh^0\{`box 1Ƥ [?.7OS!l΁Ff bC)8zv ~$NLL8^ 3Z&w1M]K(ߔ`C)wtмሳMf +J^L!]p\ۦojTer0YڎF> u0&`)Uuj5ȦG,'˦7.`-ؐU?H|1:{7NK'u >2%Rĉ>bUld+Tllgp-ph٪ۖD YxK*i"pp73ŧt&fA»"{cnLUg(m!t +g 'Og7Jc^HyA>/p@kDk@I8JRoFv8P{o.8s(p %TToؼFcF_ZֽHU]-4]"n*Dԋv7SL@7@j /[b{Ah=_= f vyu@ 3XH߀,6+¨34ğ VumS!.KгD %1:%~ Mn z*ctwLFWAngAH>!=muJ^Ju!C|χ& 9K;%W8t?B6p`rD#/'w.#cs*;Gcf ɖ̰?4cRXth ?* l+rxS#=cVD띅LNt?2O[ɺ5{ρa~D``ЋvdW%])Y 񰨚T.ҷ# L:0߰/x9lbneGB5U=ZvZS23\* I9IK4ΈAv5)YО}A_cgD_op`X  <°آ{[7X/_'t1sp&AȪͱ>h,֛@0]vȌZx4m#.jʶ\oym~jC=_eEOuB옮;I)Y{UA3[^(YPmgoɧ8XC*GU~:@sڛt2$Xow!&\9o ? } nPU: +x9KїB8??>S+2:~_2t8R<Ӟ2XFh +ɪvCwwFTlG`o' +C(ڛF\ޝk*;+mþ8WoKozl*>8dFŬ7`\9G@;/W?+5)ޜ 5=AXC.F>kWj^<| ȹHk + +!nS +쌥:,!e4MA8d)ۆܵr3º=|s)]uJoMKY0rHń5*?iN4i{iͶ?!:ޭPm\HgOG[ڏ:8]|2S|i\y|Jlߑ-cwaJK_b xۃ=pB_=eg!v7M`wMW5<(=gJeNuTYTI3*wttC>Uk}C7Z {,y{H&VlݕTǓ;n,8%0 - + 1#;ʩS hLƠ (XtB>@Α:s>up>th0MD{?PX0c 8a CkzDf ?8Vؚj8;ѐ߱g6i8tpQmw2'o^sZb֞\Wmw1XXNt +.ʙL zVEs8hj7E8Pm~Hr+hL*u&>i"\4I團d~?Go >/.~2L)?[uDNU<>BS#fw"zet- Ur”3(;4rΦ[&VU_R/A:{RRg8yl퍅d93Fbq$v]ۮ^/@GE6SC.Nlj8cEn|Ak$6J^b"+fS&±#-d_>_4 (!r@>PG :=Gošy +M +]&Qد~uÃ&aH qJ &U6deԦ; r6{,6 8]6|t 1=oI6w. qFħ>j$o5!R|3 @Nm@\zY"N@>^dIl>c`?9mΖTÕ\lӭ{8~С m]vB5_ 1!YDmS}n݅CUo6 `ŠFбc5}܌j^Am$4NvLѺIĕ_ ѕB!f [8ԹAX|O*a|' +0&탰A&C5jS>.:<)`wMc49S#st!1\:,78 6> +URMp^986gL)~!}p k@o`>quy_W'WLrφ^cfMݝ!u B +; +|&LZ a}es@E2$Lka^SŇ)5st}# 21 LUu M2;BANs_9;f>EX;Y^-e]ˤk㲬i3-&p@kQ S=>8H?1 ! 1?#}c7/mo1Z>DH  dxavp:fA8b!f!+MD*o_j֮o`=4Σ~WxȌ;8bb?&/_9O2 ft/ p9 k->ll O8WF$U.9*eK&wSϬU] ̽әxfce:W1`JFwAd OU-_S"z3"$?e'p ]x`j dۣGKJmLn2<++f/87Lo}M4\Rnن/d_8/4 <'%;^R6U0!/+ >E]zgdcdz!yù+Bk`ŕ}#8Q +1 ~O;pWRE?[So%GC6WyDVA.@:e"UrƜn kAjxұ!7pkA^ +]|L3gcȊDMno6}T?`s_ҥcKm_[@c !MXLl|**q9T 2r$8bk-xko}]A x)M Hy{UvL6M2#>$.Obe[W,e9rvƾT/w1IgFOV]ڞ-&Z[V]6̖kȍ݋Ug Z~]GzOӅXtfD%SUC+^>;.emwU׫Wb'L.*Kz+%U{+>j~XYql^;nd/lly pL+9`-7Al(!UW؜s!Ezߖm} +|PT?%')['Mofg?_y;guW^7z\?2eQ>œ7_ةo\KnލgNq'g8_{~MWR-]K(>6jzm>6=Y\)a +W4)8cciLĎO!yt`OmOh#>t={s;)A_N4>Zb!= E9T{o:jG;b{;zSҁ>ewsN.o9Q.WF"Y2Gh +r 2Fn~i{l Z):ֻzMjصt݊_SYZ-Pmyaۇַȝ/ת_Cц>W4q#Oړ=b='s聚;ܽ>#Á_*Nu'>Cy_N0̵ǡܵ[N?\ +s:viڽj +.;#[ +Gĩv݇"w#?_yBr:OX~\Kz">uPyIު3ї^ןSW^S7P'sԡ&L:Vfȳ]ԃG̋ wWʸ =w{܉?QGS?q#}ZE"S=x4.GK̵%<F{˩#svB?QI-Rּ;4aymoQ.&r>]_~wvMbUs?f~xA@P^rܕHG kݱ̏~[QNfWC 3A/s yǟȝt]˯Lkn#.`؝y3w'Iu+rg{oo|q HNǁt$W]ߜy!.Ac]ؽZUS^)kk`L&Z- 7KtbmG9u .OT8;x]1ʋ9;г!{טk%$n&;xU~Ov7vnp9`ӎ=+aNLow?bAO;S|t i^{5dվJgKO]^_ejR徫VtTHn^zw{םt}5Do+/ҎN'7s/ՖY*2Ͼ<_)۹Oy>=Zva +AW*>9:|[Wu/uqI0'/Vw +;s3=hK)5 7Sf7-j nityf)Bӓ|Ww{?V2;%Ԏm9%]|+j5?R9n䛟X 7#/ɉWp9޼_}lbes+W]K|vzk쳻u66+hJW|;6^F,w*d=Ȯ.{RvbE7Vfȭʿ[3*AMׇׯȫ}w¹}$ێؙ'E_[w5䒗?Tmsv6/e?~^z*WGc/6PW"ŵuR۞aU3n9=1ɞ:קG+h jYQq'2AQyᭌ-7*܋+?s/ZgxѥnƔ^Y|Nd5[QWƖ_Zreᵜڀ5~(fsyyBuρu yіjeId=t2/e/pn_0?=UZVEÉ;?Sgdn;Pr9AƐͮ/NTo.渽:Qro]QkUWq^T鹇%?tFG?܏*9s/hm\zrU󍔪[5Ogl0Wg9lYrޭtw9]b@e%K.%w3;l]omLS +cՎ[;4>Tny9u tuv6>"҅g^.~yP`UtWUcýښ{ڛwWO*hH{W[w/b2W=c+N]N=~9jՄkiOU3O2wng2gqWEWFr7ڨ:*Fnuꍒڤ%Mjo5/^'`Sڋ՛.UݯDTr3=C =km~Y-ܳv;jsq~x#q=$^'SN|IƖ_|Ya|ǫ5﯒m_xٽ??zU}Jtzw(vym[.Uު|\ڻB|˫bYg89+_t] jlo7'+]_f>>V[U +B绫\{c|v'[ɴg_eN^4&i.3`7/}^l-LRrWzB־q\[_~CbKO?{B_oӿNWsG=ܚʮzV]vs;Ѿ;-7\OȿC:Dݍ2W_ nژw?wcݲF'5_fϟ3:QPߓښ)Oݹ˟bqYwgkJjǮ.6aE/~~0f^M +d*v^Lȸ_V|G9}u4'7d= ^O֧)lw>瓫\HFM8v!bӥjƾX5f^K g/Ǖv uVTs麴y5|L\P6?LQraL1E]o n=tpVY.h +åN!:pWIs"[\BF@kYaw=ˉ&&\+-t:jierjTK(9_g{-u˛eO"\T_r-aㅌMWR!P}#pC|?)t34o;#K<,4>l"+.YJ`"b4Z2Y2Z2A2Bdg$U\ +uWߐ&HKơI 5L2D2tɈy)YHd7G<=z\ ?8=Tq!܅ ^)=v)FJuڬ[).dsRQw)JV7*T ߾I,QQxZCM~crVn6tm¾ѫ .Xotɬ|e]sB{/T)caddd? ALa"oi'Ωpaĉ?L\ճ D9;Y̾yt~He^ep{=UyBFeٴS+^r. ?^+|9+~$~F`Oa`IoQH\?;,.D (sBQL t E$I(QHV̎a1bΎifvuw^ji9uu~K]SG7> F)?zyׅ†Ksjw^)hu-ۘ3Wj +?Q]tks ͯ/gS|!eoߞe?r͵rDb\Ϗ[YmN_!<dG~KkCۭtsqhPb^aGa5bշwB|ߘr9Asp,$a卍ЏG6C l g7Yz9p'~/DK_3aSФI~h[ +ZwwV훷-k2+qPo^￑[w źmC1zk?_j|PɕWH$wȢ m!t4ci__m0[VH {Uu+8{pBr>|t5wOol+ܕ&<>O\kvJF0&s뿳 vwIsj#Fh4*V,}~q3\vb~S^mTTuU ؿ7)}׀=sڂu;9gS??_jch K4R1IO@ZSH@BcL=ЌU~y-Nj\lc>!vu⇁gn6$؍|g?{R眩}ܺ_M]Dc4 /}/`V d6| +c5GKh;djLEFzs<םL: B]. ~FZ 2j.j؆}ߋ=.mZ^׻k;Ýܞw;60ymaHovq +24{t-"ge77_ +3:K,χ;(܏fZXOƶh-2YLqEbdn-EMclj,+\ūٵHrySK86kzǙM{ݸrN > +K6[/Ǿu?.Ée$χl%H4Z} 2׵AsŘhl%$M Ǐ(d1C,&hT + B\رgs%MhywBXȓC%*}SpTaˣۮ_߆}|Ynfo821zGmqSCdm, shӑl<"sx921^I6&VIsctRdzHc7Gb}:S|bG d6n9탬w;_>2sŠ)3=cs3#usd3$<3ј_ pah,ܶ|1xL x4) M+GӹV4nGCN/ѫ̻)ɗ:^-\Yw^wqێn<}ƗY[j~9|rNS:+2c~sOea̴'6>{lCf:6ӛ-0]&L(4ue*얇8 Ґ45HмKK_t8!L}Vo.gQYpc*xx…F6*m^ Ζ8}& FK2=+l$l'9Mcen7ѳFzmďQ3 ^jv&ΏFW~uhW_ݮ$ǂcߞ.׽\eӅݼS{ffݫi?>Ho,̶ֽuM-OP Ӗ :\3}hN&ȹ,Fc8@cMCXGd6 DD j,x}`jPX8(؉#:Iߦҫ嵭Kzx6=fv0흜׃YT\Y[-M0mчtd5Mp@XL`1L<\gY],иI"d9AD"<4G։> t w>钰 ,=󵵛T߾PsRNӉҁ߂E/8[0|BMaƫf#&m:$:+K,c!'ӑS懣nh]2]&MX,0qcR&byr41Dsfdկ|-u r~%8}E(Er @ I3lȆNCkЬ̣Kh/()'4fZT|KwQ3Ee]80NDžN +ULiwG y*OBJu@v9NV#FN4{ecWjVRf8L'"31͡,͕WQ5,,WsGXtGX +oYCősVՠ4f֊ύ2帰'%J~ZV=*nZ4<ojCC|(?jz~q_~ OAwJ{`UAQa?=Xf4|"V4qf FSlIYfh,Wdcf-bBmIaK7\uInwg;!oV"TO{?8޿x3{`; E7F2(<^ }MSț`|L;{QXpwK-UM&NZOKupnddaMY ;-3Ѳ6ͥ W]f.H§uORL_~/MT k~D? /B(B7BGq1u:U>/-!ԯ%cܨ{Z"^hN|6?/bCؚh;En&O_F06M-qFdsNkIٷ{K<~h +> a^ +-a[ursU?͇5/< +v[[$y#}#C*W} ~Q /7Wu~Ԟ/O>N[cfvݛ?1ɝ)7Qk^9l11qFڠɋxdЮ1?| &Ĉ"(y?ƶ@("('Dn iC\r𠥨뭭tas?BOťG$,~`IޜOUEY/?zMu5# +wA\'vЎ<= zzBVh@`/vb8Rc5Ly"4q7뛆im|߿w#,IqVXQt#K'9}z;=՞VէُO +dm$De f՚uE9E>G} +^'Eܓ⒃=%r)/+ݿ{ dZl%sOc3/CϢ7w}\)+ڙ+U0}`ӂ˺]z$y?Fg̚+CK25Ǭ3#]?*B +1Ͽӿ~*sCwx|ɵ{R6w;H1O4(^;]zkAtNz@\{r=oe͓Jj, H!JAt@?Ӓi}dեOdqS[|&GktR ~mB4N*ߎu<-r~$*eGeA?BdʯaԹ)ثb(pG?* ގ~)b,[s^+I)3:h ]ܘC沈ɲ[pEeSiWTGU/$Tw.TE򽓼~vh g4;-7+aհFQ|_}²<}KGGuNn* cd "7';D5_{96]O'$=QY:LH6h]7nl͙Lgާ{zէ οP5fKE_}̇89jQ~=,o}3Oaտ-˗;Vc $pGku7d, ub~veT fJDz/^ҽuU*,7wN<=?TzCYH4$IKE^v6dGVxcQ~my5uRsP7 +Mr B5jfV_w}?խ`{b_S-}+,u'؊VNwsicݖLqLlgO|%xa%#2H] +Rg[,[/͗6_\ vіBٶ󋨝/9Էv3*6CI-zч&i\$9?]v&>$gϿ.-غ]?~^_G5]Dgo'|rB54<!:4YM M_D 철KO$z SYfl\>4Z`|SÊi1gre*܎y>BVr`4}]txPRuZ:sTl)SgHVqF|IP~΂-k.]##w{I~R`/k\|q\Ui2$Oaw鞧9b +AM*.sԢ;z콮 u]V!t9b:qو:2O]"R~s+B~Rya0rl'W) QonԖ3d_ϔS}+pzn~4'$_k*r+2EC0[V9#o%rwDl +! ;!OW?$H +JH7T7j5Ƒ{tjW +iOβ&SpxY&ci\l كRa3SL򷍥:JZ;ڊU-D?.e^D//04>o~PXahYrSsXMA+-F>xёá ɥƠN՞Ku_~s1'Rf{Ol&ՂKeuZ0޶S{&.<9OV]% LkVxN*%[k*LU,=YݕW)Lbư= MۭA'}kl~!_[qjtjGGk^blOtitf Z\z`4QNcOUHI>P5YRd]*?4i1F2lzHF)4gQh-/bR&k3f<:8\E՜#Ko7̗~pOVXN*?2Xq+\G\&ےNbn ځԱq?\^)-?IRR:ZW 1Am>tѩrTIPW*]Aa^"%ɓ5qt#{f:]L2jG3ԋئ0ؔ-tJ!Dր{Kwp νQ1( FPG?H%wO~KՉ)āk5~5n d1g)GM'2]fMF3GL!7I"7hKlYIhKU5\Jl?W.'<6*܀ѓuI%FÅi1:=+jX{|B}˜{^|F`hO첔F(uw79t#s [Fљ=cA7&b"U0)sn͖FEgP Lnp琗nJ0"A^q|뭕]:+T_ ̩5Z}˶O:R3YfLA2z'o73?@/M0"5yYcI|Swy>,?2j8==9)H,z%u{?[1ggj!kː4DjuI`&U=ԓi?ҫYlb_LBHzmKEg Hpl㥤ٲK;Jՙ8e[o,dmz:&BsI/Ҭv3ib(Y~8iҾN$h"`MCU':- %N˽YK2<.%OJ#"D]s<}:>]W JE֙p'f躪kM"t\2"UG=mXZOAgm5KwMd:;{A+W'=́w?93KOb姟fIw=v`7Z9ucC3d>yoir!\gDu}X)ynf++;4n3$Kj">8Jw{0uQht2@3Kl7ڃoݩ|r(.>]/jIםn91WVq̆jhd`m5&lzI6g9ـfo5'Ziut:@}mC'm1"2<AJ:]Ao+;:f_OIg*6_n"Y;UlqTv3huHÚ{e>_(sҝ_9RR~5\_@euú,ј6 +!{K~A;Rs-8Fڰd/WWRýy!oqe=@+虀)RgX9\^SuX= $Uu@h\vOQ}Bix>3m}\-wfWfw參_/W=RAΤrG2YcܵeZ\zҬ>sWw[d1LwNlw/Fv,Kj2X mnd񮩄9_[16ԛk\r2`;' *6KO5ڲt^x<CJw#*$I/6tA2%#IZe#!t4AK%; +|7/WIRL'L{P!_] ?v:1Ѝ0'ѣ}~(.=W1j{,AVAdnI_!85Mh-y4\[7{UDBSςNrxqe-[$b1I kUtVS|d!j}iK*_$ Mђ*5QlK-#"想.3x-WUudrlf :ul|ޙo87W$lnkm;f(f4Yc5Y&n*h2i&LL,t2Z؄1RQkR KӊYWl w\jczWYLA8>+-.)bmɤAnd ѓuκsA7by=7<~=s K؎{_QOVq-:՚SFx)'7М?[JogZy"&HZ/UShZ"E +ZE4=Z/-Ws|=5`lեlUeUXk%taPX( +;&@Y~ph-*vݓн߹3J dњs^m|sL8w6Tq!`ÚbˑLנ8#oJX +Vlк +XUW=y}]+SqI5ѷ!RIr#zQr]w]ĭVDn}1?H3; !%zVBeőySQfs*E]抭"}B +z q}fgQM8.R80huX΂8V0FM3h2}2 4PUYM 07]|K+6k)w h%op ,ʲ#sLfM= F\-nOG/Ciqw)wKu]]F!| + @sź\*V8%Eg߀6{2z d6JǔKC ~<~OW/qhڟ9e|~pV+ 2C"1w$_ h.7agau]w_|l+/Y'c@W lY!cA[Wh є N戦m>T;}n`@$7pfT|B[Xsr@Rl`7uOS[^s*]uZDsY /14m\ ]oa̝"Hure&, g(y,dPR;K3pχ";&1{)g{\g.d9.acexlkޣVÆO;'9q:\X0+[/܀{@Gեl3tT1D&WwV~tuȴ=Y}ѝjſ|<,$·"rtn#XydxnKk1r"so1'pu"zD{Zm"^ C1xܤT|3_*OvV9p|;B44c}fgEzͅJ5-ZfUxlZaDx؏5TM37ѽnJbdd)P&A{3 gй:04ka?lZN#UT>qzCZKvCoX䒁BbL / "&E3;k ^쬰̎Ӷ +ψ<]JoKe&T[2Bܯ=2,c8rCjl)%M=S#ySםԝT_u98x! MEqܞ mX0[_e>Y~TTG`5_sk Ĺ|zXC7hK@5D8$u# =PR\=k9 p`}Q`\-C>%j2Ya|O\%ؿR WF(#SuaiF*rZdt\Y;`}eF*p E ;ff[Qf]7{k%U13oƵu9l=7BXa-FR!q}&::<`-Ov[-0 +; xɐ;+~`&URh>4I.h+UA 6Wu$mao$o6?xEQ$&>5/Uw(=CQi +{&,؍2;޻ߋ@Gر#ǾolvL'h+|)0u_p5a=O@`/̇X+/B> FL/7Unt N>X; ,ؒS@@Jޓ=x򃽒\:d `g1<`+ח+GDFF#͆icv|id` C׬up%z}])u.+`T\!·S67njt:o!wnǥ66TYQ9zu8/Qޖvߗw>Ӡrǎ}T"ag7 ;+Y0q\K&lM;K d`gΊ4 ԠX[*p1/sY77 &2: `+㼃\AѡjpGf05p\2ss_KyLEoyVsB2RH~8)Gaw &7\X4&s6 y{ld25抲]6%q%<ؓ\O&?oEmxCY#wvVgvzag#>iH,%o*k(v +(O$OoC[^C!Z+ l1-8 ~mteڮ-W&HѢ"΂%`)}y[,k)=e,=8 ؕ,}+sMVlñC|SSj C<#Pdo1[,Gj 8\I;{̭ƶ~"ڄ0^fŗvY r(lq#ee;I i&n,!1%*ӷ dn󁙊DU6K(1_H)4`51b)cʬGbF86؟C^kfqַ;>8ʴ1b ~'Er7•FC*C!N9a 7<8&;0/f0\o`A7\Z +"Wv  S;Km,vPew-k9NY +r<>Kqp{U0^6_>bn$&lxi:iWvtN䋺&|QE݉E\ӹ%k \ U8?_i >wq;VgU <;|IQvl2m9W k=hFSbw95[/C$!ZhÚbmpPQ2s@m1al6X2<%5H F8ʬqi_sԘu>k+_eks!# <g xxb0yil5{XuO7o8` u|q&u.5^PZa*SG3Cq>@\TikOr#vq>|hi(>R(خ;N\@L#E59c 8o`gug-y_}l>㲶K!ipϦ+M^ʼn><'p +'ۈ94a+ +vX}nx$uŮi\lY;<ƖrugHB֬*g6\1A,@lpe+q.uw|]ʛj=vp]Q~l73wOt'C_ Wgzn;|l"%n^7."{xT37՚JUkSu^pX<~`Hu,džR$6 chtyK|rR'[KITqbxc0G)Gp. kQlDzʫV~5GY:r&px4G!zI:8k d|[gE E)VvXPlIQTeWaܓ&q巌ks|d%O z=/;ek;}dvczcbii[󑘵bt_6@d ,BzSg" IctI{gXJZhH̆ʂ6+rOw"\>Y|^*Q~a`Bl^qaFAn?=[׆9[B#}T;%T-rplgxߪtE^WVt>~}%W3!"nVT;|r&6 c\Qe ~͞jj` lt1٘TSį>4&OOhB9q3|E/ѐ@ $1Ŧ鐱 i|a/^w|+ӂ|l)za+8_,Oi27đ̈9|fL+)\Z)0 O+ffbRcj"6 +k&89m96d}m\+'kO .1sLݩЏ2-U3p; O uX'O)1$JqL|6PGǤx붩* ӥ@::}|x&\g2wn"0a /#k J6 1ҝ3cٔ:H`K {OpI߷+e_^rϽ骽Әdm`?0G`ƕ&\r|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/ǗcPĠ)+ua #tKs]"C#bRkbeoe0/6`2+G;O[͂ߝ7g\IXP[["#"cҐϿ KSY┰~jqP"~[W6TllPLXy +nhyV#tYcd<Ŧ5d|yVdl%v.oCpޜK^O/'}-兡'k?_t0IXs]’"Cœ}9o+wj61g9 Y)/^]Ͼ~m-'1 tVN!' +vK d/e4TMD×VQAj~!jp5oHIdդaPZ) ԖghKBĊꮎ"jtZ'Rwb?p#]+WKikP1y5E4-oI#$j +IS4Wϐ"UsPj}|sjtx6ȧ(*FL*e&S^5i:xE1 +"eOSUח +GҴPL(y:H V T Kyn !*(ZKl%DMLHD,5 J~b}SjLnm2i.֘ӑ*4o=ˣr@(*K@,Qk +dx р8M<=Eʖʄr#EL"*U_Ui\WiCi-L%8D(DXjD/n4駌1|P^ P*Od/enc vOWSPOl C&c 90H),+6*m8ØQ&B,)yr퓠Į/6$ eeR"P3|>O$媤|ӎ)¾)0E'PIa5)I+욠n>ol}>eIr(#R:s~Ch"9 YUC[-<Ϭ6 d+} J̀ lDׁ+/7 x,zGd<~?ItHLHD YFфrko Lm&2[to=1:0E ʋanAY)\>˓*A|@fCXiR.RDˡT'"W +\ Dz^"=m!ET.2 +FmySvMA*J:T-> +Oܟ*{HA />H%o!eSIy67EzP\>AQ3 c3EQ~p&=6`@~ "bx@lG尊 e =B@>aF=MrIe>KP x9"CZ)HA`.A),R[{v!AVA;Guc1rreT&th0^,2&8GYGQlce[ +2PS}f`%p=b"B9d9++%ɋĮI +pdD%H[QA7 " $qI|4bb}nfb|)nr&> SV|dU\9ȼ ˨\Av96 px^[/p=$8҈cًӱL#A$ݣPϏ{%NFWH_7|Br#o5m~1;gj|dd&n6h5װ y=0Yy\Vd*' +N{瞱tWS_ZqD Gm\ե 0dAv + -r8M1H^R'GA+oG.4?T BN+_ug*K<,q~e2# B̀#H>8K + >.0$? |}9,Y`-Hqc(FV8W%鬭 р< +2+^ +O`\cIs if4ivs,kB60o-yfΡ;0HqX89R{g2Tރ; g!o"q qq|04 +r% +!8>=ӗ2f#xWU{C /xj0u+o5#^wWUӗ>^ xd`%7UL1a.<(9`R`gG< @&9{e؄gd8o31@Gt!xT+>dO;NI*k"_2vSOւ<') +CW`+ ~\Ox,@2FdpEE a9P,c[P9||\'o0籔 3 1 yS|9Y葲Kd{X  N^d`߁ àXu$[y+aęNgdP7,its=|O"+X8&hMz V^y`WWG@/ p!7xI{2 BO , [ j3β|`IT&#I3gGzpg +yj4t"a)AˑЛOM-G_է>M`d! XtX6D =8#i9Llڃ1dr&_K?s'obAY#F`GGof-ύHauyaP .= &(>sy#A:˓s h#C9;wZ `4@"6,"z.sgOU + +V0:,`@jzpe +"0 9EĨBI(o'F|}, dQ>Zs(ɀ.A\_ckB3ICC`앶J܋.N~&]$\AGFRcKw;WAFQh9j-ƀU:v6`+k3!}v,H1e;}Xl1j&|'Р,LS&TDʰL"+qb Ʉ+n +7w t=Y' q-(`NalKcos"rkxn>X B[@ +v{C(ڌN2R {Zal- +yA*bg:1a;*:0b$%J{^CCo;Bg}nK<0E\)X:=2x;yu{HOٯLۅ̂3@_d²0Q#>$ 2Зyg!, }q%mfK!$P^ 5xkXDzz8N%X .Hld&x&k%i_e.yLql{oX(cA׃͟&e.`A/_:2Yq6~h#Ҩag"btyx)<U u{lDv,rc1x0z)#,rq .z߂Xa<}( u7A/I}BgySD6|TcD9W YA?[/]-%ǘ]c+ ޤ6òވ/Fˁ|✖I"!ʷ# Etf Iu ЯBXϬ%GB t#}SGIJe}ݿl(X3DZ GuKb R8amJf3OהE ?W%Kz,FȷX:kO F:-ze/Cyhe +endstream endobj 58 0 obj <>stream +fp>5~7W箅Hog_o`CLM`YRiG/1rMZLE) som0jEvY$tQ:$ kt╨f\@|VlJW_ؠ +$1 EȩyjWE&2 b|k+c#`)q?/s_|0SS6t'ʷEnI +b䅈/9G 5`j x-X14m+<"щ _ƞ 3l`70W u/@q81rN_,v `E=b ],K*A Pd/T [H&[Sv'8aYRsrs +_Lje,g@? Ń0:Ub"1_YxC<ȡ("j+XAo!\:A%n>6K(RΎJnUBd؆a2g{i)=m(DbC6_ IĕI69ӆsa`yYL-N~LLC^שZT@j(ct:-ȫ`iB!\lwr2fZ RDdM6X1v&R{K_utf-,LRYpo[q|\k4X-:9[:1G2_.i +0PA 2(X[ 6 %F"{Cmo{(: o W?m(|"`?xE\c 3060{$+Γfu:'l|=t獥߃ }h rj~94F W,yxw YK!wBxal^~%/V6܏88tO08cKT[capj{-$j:Ȩz:#a~YɐMإM{V}XXC ְ l Bö ^V`j&`ryA" hSDsjp &Hf }؆B&t)=f7V +v(_caQ(Wu ы8alx(sBlžnf^)iFS tA:[bIȰMlfHCކ5^)KEiU%M|N}:Kށm(GՁm(?衉.6Y tx6|.O䉏h*!Ϟ례;Z%ta)<:;a(}r44\8\ +&F ޭf?Ri +dr^6SP箅!iCaӆX dAo{O֔̓^(G/^̡#ŗga{sឱr+C r0,9E`W9E왴d1O627ZW[a| +ڸr%Iv%O\uzng] ꛳ +xoXˆ6=Zv}*{@ڬ^Z +k<11cVn/<%ˈ[%!q}GL|s0V5@AƊN(#LReSU +e_=aaF ̕t೵8G_606u`)&T+m7z=gO/M{vjlCa0(̕/66G`5eX">-O2u6ZMS$EL*Jo?Һ`ߏ+ `_}cT6k!>@5!TKz8Veɣü*0蠗$y | sSoST!޵:-My"TQ :c K}"X֎`oAuQ;yk$`M/~5JX_Ac { >>Y)a2KEO@`n6ebyh]աo"Mh<Ƞ:$N(ct9Xi cKf>,;b\Pdk:ڄv62j¥:ړNnRb EwW<`_X s}^ + +W.䞸,ӁOʶumua #!,98#<j%. ľW^l#3Ch S Q86w=ǹ81̯+7V=]w)f>`eE䒾 LGƗmo.#ga $3zهȃ\?3wWQ1Q/7 V }dlm`-XK|n{`8]u{{@ٯ+x.e^g1Xr0h.nm-?`0=a͏9j>1}X!y>.r}$  A%[w|u^81Xp^wB/ +7r`Z: {P|6rš5c +c% a/2܋+p[&Xk ~[@?ֹS`K4!OBl7O[L{-2E l#3g&{F8f/X +] q]/ۦP>%S 7Bb+|= +8K:զ +PB-]YAL) x ܀z1֊%|» AZM_`z,Jgj +v +/LL㽒SkB;+EvMl9 هs#xrLl*\1_7wGx؋}4щ=gFBootFziQ`](s&$3]X!^/G9p1Ŷw^f$vR/ ~iD΁3Avϣ +q Dܒ`^ +F'y筁5~ե`%[dž*b +8:L?>k008/8'†_ו`I +V>`ftx 25!XwGBP=R*1/u3^ EA6@? }l\S20hwzLlakӬLr~AۍYIV%Շ3EzW|=}KhPkZޏB=#֣ŊPC1*!yH DiЃb_l9kzm!鑷 a}NM쇀zMBnB|33ۿ {{1mgp洛:>3ɠ~6 h<)}Z^4'Q$5dRZܳƕ +~IjW_m54@:E~OW4vMX,c|s[2aQ` +tPC6esۄC G/;D;)*kPJl-Vfot{ Ɛ7OhH4dv>M$*6~Yr^ژIT!{TCb ~bڭ.hׂZav'ĦZ%Y%d2ԩe}lI-JfAW"3? k7{t;:ԭԝ)^zQ¾pL}Ht]J(?l=>lyc?+G>L +nL*[˫_hij)sU +%^ :΢\pz1ԡ;tJr$^ZQAy^0O*)dSk0UKիfj׀}oQK~yyRMީ%J{I򳿨vҿeP2(H^ g.e@}pۛrjbtHJqfx!POd]qeG1!a~ qIU96NI^ũCL߯Y_׻Ҽc> ? P2^ܮ>btV +|NTc!24;m0n~"~eouTn'|CQ/t#^  +邖Lch4L<(h,xu"eü;B|ҤCQ 4q.Gxx*H*/=~yI_=Z˿]M[3C>ٿbv4YmɽҢbkbCEneu'%[DNCUiOQc4&T]] .Հ,fJ}v* ?e~je{1gZӢ<+*E ,o :AqoiC[ŏﺄfȌ}5tD}?6,yla\X(}vBQ<KJv7D%%֒㚂+VKɫz z q~9Ue#ǪS(f=XƋ̻5Sΐ*?*hTKkE=Voqo?ޖ_7~ٟdٯf/CM>O5!f=cğZWRF>v#zYH] ω7(}Ya!ͭ:"d$}PcjtƄy!fzXUeiǝA/L\Ue'uT{x7Tc ۪*2Cnj;vGz}uVPDxwvAf2"ǛĹ ]NuNlNO?0Ѩ{]k6qCuyzv z#;\LBGo_4{FCOEF5D.sW^eњ-Aq{'7xǭ@uxp(iКP5='_? yuT^^#m5zwIQ_MU}]Ɵ):%(dY/żk?T[ +czaLw?ՖQ kpJz62cS+]c/$<| +n~}k?0|sJ(a /mGu~PCp \+ݫk6H$CMGES}j?eTU*)r>`"m dTQ|:DJݎpy<@h< g?|p0M$ϚNJ^5YHj/5gVCf_g~:՚jE뵤S%]tgs^$꿟z\K%Q{_F1m옒LYY3Z :uRsMo|w܉;$DǃD˖tXZHƠjJ;V!͗klB lCꬂkϕ֡eevay.>Mi1FEu~=O"Ȇ?p1Wv/Kb8F-s-w<љ)/l\t[Jĕv07"Jv u M*qK?8f1+|c=Ӌݣ"Q|%%Ty'@r}t¿}NjpM@N@m`E hFXYq>$ mo:W:߫ /n +Mmr>{7wܰx߹KONOjcc"3##6&GkL>њ!Pd,B9X9@+|aߵ=bRy%+Lkvwc4嬲jࡖKѣ:48whM1-C4F6Fx&WWC=4*vQ9g4E㘅 2{bb~-b}fEbֽ:Eeb>D:P{2M-o8uKcyhx+o# +}b} +#B + p9+VǨ*XXC}RzƦF ] 8wsUQP~{lz*NU[76}"b|bH9b!!G'fsC}z\be"BSl'!uݵ&OO#ߚCL#%fT ]N(XO,XJf`Au[ +ro?[w~S!mCXAmwI垱^ Io=cn1u{w%&+Pt]shL]ƶKAhœ?]89?pcuT]{rrl6.ʼR Kf Db1=䉙,b bvCbqUp_Ӽ_9k?a󐛨S+5qo=# +#EY1M}H#9E)t ++,uKpkmX|Nɮ09E6U73GlڥJX@]P39+qMN-sqe db,1EğuɢϟGg&~k4I?7}2iqMíE}Q]JdlWTzG{/ +# +v No¼ٯ]>ύ>䯟\.EǼnE5RHtSNo b圕(m zW2*`l&|C_ &܁IĘhYik*r )"#Ҽ#+Rk?{csP\{ˠVp߹S߲WP8 ]XGwOB4Et|?\_{Yh.wPmv[7c>xJ;M۞oˉ\kU5²(&a c`s_G*tqsdSctW}ct8֠;Ykr̈ih_5#Q?ܘezz>)j=ASeYRP+ߨ;oܣ8G=wyRSWѯ]"DTDVzEeV!Uq)<=T)yޞbf#a"1[f +q]1',Sa8G7<GṱsʪĴQKy E4FN`( %<7d[f$a(e+A_m"wD97Yc]zX/*C,3ޏDֿuwf럂>QMXB@RDl'؛-̙i'Ko\c$T8%=/t+tL)p kU`$n{nkskVl__p6Y_tƣW'i#fdSFȡqr.t@,*=hw +~AX!)1]c7N %[v:߾.ȓcqf΁spAt-piDT[nQs!1.m#>ek4ױ9|?geeCBjs3eNAc&E׶SŤ1w1@тX߁XGbUT̞f)s辒˗ +݋|KA11q%Q1=UENjrLo_ =TEx*dV|n7 Ē-}VRub3PɚXfCfK2dvOQ~­ {ϗ$凇>{X#Gz~sp +XB+pR;ܲ9s6۵|$ZQj#<E,3L9t}3&,B=&fDPXgB(7#m:I,D, 'inl6XSF8Ǚڴ_GTvjDV>}uȧzVZĤ2p׉c6r0Fkk3S6౒_bP◍ )zļZ\B~:!јX 9b]mMv](UqU_D:ׇVTWYėGM:gkgS y?&`? rGQ> + +9%J}1roH׹Jϸ's+$mή;{t{}+qs*s3/Ş&5GNX1pBZJ#J/-N3 G@~wbsZ X~9h?f{դu=J7%ʁr9 +zNCtp"N._ וSuh>m@h'@OCrEH~ߞ$4bɊC\1>KʄB5B~bYb=I%D!&-PzƧ۶ o4YD~Vi䈝\>yO <6#|rPWΘc"M/[ٲ x%uOaYoǨ P 0O"}\{\\v;sbٙs݃~̴c!EG,ZcL,~XnMykZ'lkՈ+ՉBB1;mObNU3L/:o>JvmVrZVr@yUi \oϾu9,ڴUc?]?h+$'vwĪr`hդEֆg:gLXJ̛H,bHl8El'݉=dȝa)qp<nSg*[|=/֚g g|3zu{8O0 Si+z90p>3;n{9-ټN.6ń$i}bO-',]c2_"z=jo])<?soax Kۢ˩ȩp +rp  r=Wvփ~ g + d})˨lAhp1itM"یӡӄNyK?yFTg "mY y^Ħ,YcMYI,&$% g<_|NY}h7\PϑzS4rAְ;_z/ .Oʯup:9**Q> MdȋdKE^(XRQlgX/|m& `ª3EƤ啿"@c6Ա !XZؠkMl?ykvʉ{njn7O_q{z?x*uyל:RikFt lvrg?o9ZcNTbNK6\&ODipo?4lG1a ;E-ؗlqIqi%}Ȭ.UG5/_pgOXb1ՌNw)9e폜3wNg3BZl.+mMMkv(k;7zF>;(j~t-+ժ%6p_^qEje~\f#NY5ڵ rG?R:~䥘|sچ:Io\'}|IZXw2[pkUts#يk,B. vHG(GUyUmiI?Qv7 ?v͝Dv|):-ov:yb&IN[Eܵ` y[ C epZP1qY_ľi=FY ڸC0S,iYزm|/DN#'~XM]EZXmA챸5}nF9VqƺK(Mc*0,i,svKrat^:=}\byxKN[ENOX~t&<_6wGZ-Yar0G }NQlaKQq92du{_¡#tcEnz]6}tDzG9=J}oAUMBm>πKLdR5n?p?`3?`+h 62OyR;x_w"%yumPCQyi'I~% g_5K}kwĬI +Č r>T8U;c/]ߜxo8b7=& BS<0>14um =%5BȘBX;5{Ul>8^7DyvOƖo#VҾwW0^V[Lj$lt..hoҺu{U%9CU)[ȧCQK{/gi.vh^ΙߴiVt]|cP$ x&>l%d_BXطz _08CgJmgSIEaq1#s>k{ - rзa_7u^LAԍ6Q6Iiqm,~jnƠ3K }J?W S7Sus[ ]֯Xcjttqz8mi=U=4ZBY-M b -}=:|i4si"hh] OG{Kd,z >i%~׉U,AJn2m/yUvC;G\(yYyP OEXpbmtRÒJW)}Ζ3秴=o,-æ 4(xEO=OYd׸;EBD6G2UszYr5e]tMjN%b݄vsCOd@( :7K 8Σ$8\m4Y"pR@CѢs=N殆'&=8{4KU5K$ -:c s6{>E/nKE?Y-{MǰORaN^gMW6E7q(%%}B@BI..FNU{%&v+g?G)B$559g;5uUp6H:8:tLV{/_*pܯ"H,(D^??QpOeI~nϺ$yfb5a.2_swAJV?T U2+ߨ1wN\e9}êI 3rQcC'y暶NcpgAUHإOiڎ76^<, ZÓ|wu{3]^aw!+soR̵VzK>e [+4;X>'Uu%A3XKcRZsk{?swv~h@?4N/vrNLfb ґ9 ' veW/ꝥ‘ۋ?׿u=ݕ'_}qULfuN)0ӻީ݌)h35›O2?dO:=\gK3{xV7pٽefOo!q ĕU#x^1FCwo/ḛ4@K#Wr}F*o;Q#9fo_u>X!NjNjeB;{^=]Wy~t]f}Lc>֝J{=Wra6Juҭ=Xmd !wfNfCψ.>g~ۇ.n 7b7ySibJx>f?w:m=N|~4 +h/}m(w7oh]\T`g-~nO}on/+>x.Tt\͒3i}D6,ZngX댉;wlgsc*\;m@9bl&:3*,F +m |^x +JZ']k(Tj' +}Ovn|o5߾ 4l"ǙR 'S{S|ޝKh{/nl][ySd9Kmd4sl5sG,;Mȯf)V`&p26SdK^ֈK" #xR0U:vmv}-,^k}Vwn҅ym(c]o.ڟl:lOkBw:+_Wz[_XLOEx;o܇kY}SŇ˜67c0C(d5.܊pb\d _4Ja; iM&Yse .~aNC|2vb,| feeۂϧd et3 >]iϙءKnqp +ЬYRqf-+Wk٣q;ٳ6Jw/Af'0BAhCkZ"hi͉wR=| hvsyvB\s/ù +lW,#L&|+rAR u/7W̄6uʁ9O +o~;?]w.eoϯu%gfeYq 3)\l6Ÿw[։^\@3y-S(i*;v{%psPrj_~~nş?p͕] 1[8dO"|m-? +:{Wr'Z/+fUcr{>*ז H}M4\2}0[⟟ S1O7Fd_EMSKh/蛦BlsnBO[ 2'k_mszZٺtfϖ./ѩ`V[c3l`PKP(UX +Mԑ~i6dnM1[n1|lvNq;\ '>sQ< kuÿh}WAYr!̏޺;Ų9bn$bTWqɍ\o}}V_qi1YWzy>yf}hKcYIx4:L%d~SlL֕뽻MN.+fEƛ+&NunR^T!Q*>? >Q8>qRmL:LaxL1y2iI5Nc2lB;۩x{!}NDžf<9|hTeXcNz{RErխ|l(_.K私=svRNTݩ͕֝i7ۤXlҰN~* /ԋ__J\o/↾Ok zr?j.g2j*3{^lC=ڄqC;Rv0ʂKހm|'k‘2ix)bT7ڔRaLv-FG\c]dH_60fz T\,Z m}u^Lh6֏zmeqp*Í|-r#wɯtRߗB?xI7>0ETS>W>>ݵ™_`?_쓓vhQvC?A_뙢/2Wt]`ioC%5BK&'hʃbꧡ:CKB?nhqO6B!ՕqB^TYV_WMNRQG!꣤ㄤZ!n]0+ͳ ..!UzG̷r}p}섎T5XE5itb 64Ĥ1p~{@LU/}m~ChNHCBZO|{=6$ԟݸSq܂5 3 QRAt-O{sse j20ٰQhhp6^Z|94|lm.- 9+k$+}tġ$Dف}B!t.$CxafZL4]xKhɈ=8T|o\ua iT\X{w1EwU|aXȵ >ױo( :AD=H\>x [ѷA6}; #wh.٨qc54(n:!`w 10SA-~" +n 4:G>~QĐEu?ܜt6 +z#F G58+X$O V>*}29œf k!z1B'EN솉R\Vn~N*Ҽ;20;SO?|۷R76d{kF-E,yqPe PCU`,BHn`k_=*> 5}έ4lX nvݽ߇,Tˆ0&7_ +>0JLJ[ɩ5Bm}p+p W fo{(O2;`uGws`iC3]ݴE┱<@̬c1=lN>8īdM(oFXƒƊl-NEыHX+ҫB> \`Va1Щ[>$W]}C0g_6n56v#7f(qsOLrb0\9D[?݈5 6Ǯ%L;}PXRR16acX>A3.<՚XBE{?Oj=uC–i>-JKbx[#c0뜮[HzRs6^]!ߧ>Qn]{BŮ/\P*Cg;Vvw< }4't/6e'g9mScIv\xm΅ZsVnyvk6_ٴlf t9DZ‘sqЉ*qԬ:ƁghD|6S1(y3Q/7_So69&Vڳaj/O_^^7Y?Ar#Sq`c_N&QRl hEJmm5tK}{ZI>xMbg;%e8QF0ꧪE]0T^\ +CM#-?p^0Ғ8%';(.Ńb}sb*9=W +#rl9~@WZo{UZqឡm"q;Wb2#fuLsR^rNWC'{BTRž23@XN9G˝{q7>{Uz@?JA Cnj]r67PNrd`uHO/LL6q7/[O +=hg&xNCF95C]f'58pUCib˶=[vh'Ņ-0N5buVQV`Tn Zbi:ǵPQ=>:RB=; YޕgĤٲ z ᵧ[Ȩu&bs($VNXvq|؉ХBM3v:sOG 38KfcD܄7YdyʉH-mĀ+9uNS6FXӆ_JwW7 }OHg^]'Ph1>19v{ +x1,1w>$=3BE\,ؼ}z{^m@>9\?f/wPD:#tnMn{n>ӫ'JsRkzC} J烽|l/-֝TtfqJZ!G^RɅy?.=9N6^̏`9c׍bFe5 !3 JMeIGfwZ1~BCՕRb8%b2YxC~_xQ;_w}83wvweQ= "MYȣx0QR,4E[';gR'B՘}b:`k-t񉅗V2Nnxx_CwNbyǕ3M1T\YƗ_)6fːjkO.}壼w?g1vsqxMZܽw*=O7j;X GyA[؋Y6w.b=#QtV{/Q +NRN"eYDyKq a[:)\>ؿh㙛Z~u)_l `^P94.P`׫Z~c9tԱ8ab@P848\g|} ycgk9|ǫm|ǫ;PxpnHIwie7_w{pbzX0O'wNG_|߁!^w^WC^ BH"qƁ;1 2mԄ1r5X.7y誜|81`g*&Y-"-b9 1E<;0NHS`DyHS\`@$cW`8Ğs&G؃Z[)ϝ|jigeK_ =>y@]qn_ʧ |z+M,32,!Y꿰!p+Y + MBh) O}3 {R۾#wCvָV23kQjH|Z)螉$H#7>#wG 3ⷀ^><>tO-oU:Bdz,-!8E3z+V_Y*ozDKh,/G\7>=y++LD5\QG܇E"^ xA JGh+/bJǂWY7E=rrF Z'>F,!LEvrIC7,й뮹 8FިtS8ƈQ`G1v&vVtqR2YF7x&#¾xaCjTI`g^kvVpHcV Zc*goKܮ)P̨pҐ4ZL }U +Ⱦ]x8(Z'iى%qX!{r85y!kÚ?rilD/X 8źT3;kzD^F^-/!O഑ CX8BI  7sy?Ř4{]k+ҧOp@ު\jӍ ˔sV:Sxgo+T 9)zJXcs#*ꝅ~ sz Gp1rb1bkvV]r襼fg!*arF#xe`gY&v/Ƥ rP5.4ȁs 3g4٘U;Ir`bo%uGw͆61k4nӋj'>L,ز_C?{CGX,v Zo[dlS4>RjGtLl U%Ѿ>怗V#C- NƢYࠣ.')N鹅 dqBr/|s 67 t #yӤ򭻻M v2Y]_10tOo;P|p 2 +9q+KL tZ*Qv' K淒Fg2rj1pފ"8@,hG`gJ1;rZ5tN`6J  ԚK%ߚcH+`q\Ҳ䍓Z{8(~UWt;z09Tt9}I VCKK%U{M%#-^&59jY_xr/ > Fl(>${64Ŋ +W*랧V[N,՞Y4P~q)ؕJl(GĐ,xg-qcJڜ +x\WV\XN/Vaos/ v~5sK0ަIjB#1#uop{`B@rkT,q#2ltb/_hU;z5ڃfb`!!v' KޯXNtVj +UAv0qX EZc-o%k X/X FJG+b_xpQ믭 [&b|˝OدS{{ =%??1Ĝ8E]3åc{"db_Jhxgz +W;]xx3 Zo/"vX!gU2,e_ +M,Ė7"FP|CNt5pZYrq,bSoNsI(ga~'Jw]{vj,Ԋk i͓(+43xE{kp=XEFrmF $K) =5.T5"֐\(u}ۯd뜐 aٶ`Ѐa1x4kPFL[Cv4PɹܐgcƄL'爰W/cmQÈlI:x-PL)@gJYE6oc]-c=3`T C]5@Ll&]YgUur~Jݳ\|SlլyC9}u݌3vsW+-scst> z#6!B߽]rk/R;{epM +O5s˝JZn.}n~`z1\cN5BHx_‰?C_Փ#tXo)es%bUX|#`ќeыC#Tj^!V|h1,ۆ3Y=t^/Tm3YCodrݻkgEC0aECmr)u44P2=k*h޵؝R|h9,F<o$O7^_+b-AWVo>߮ / 9,磜"/PNLKI.Z -PK[L81ř2?e*7M϶KMm>e-qX,+wZ?ހO5Yr;bI}|م\秛s'>XYT12|L1*F)G|8!-oV6G~C-Mk_RbåJrxic5yFK{{h5:N< ]\wIoJi6d`LktY9:VEgiZVmdYgdtLkW_l7nfnO{sf^f!f=d;=Zs1ɲևdZk|8.ޚ[kI/>g0.jj@p\|7 ւʷՇzYyh45&X GhS,=|oipc_)#8~?fƇZCĐV5rF,IFa^W)Fq,–C$0R4P"3l!K5VbderT-SJx "<ƓC[ 'V8@DͲ#ل4kƍyCBP 1R,[CF[I. B?:6|X5O2"2m0J yUL'41LY3Q-?Ȑ3cʾjhz弄 =~FFq=㏌#yJ,)uXb/&԰׍Rܑh HJ9HN#d:"Nr6` 9h=e;_/C:jmH4{h<|T t["I`^Regdה?d29)$_b[.V0 +ސ6ti0Z-g)kvzk<1j-GWFs| nvC 2Fx+%Y +XK!$Z ϵ3DRKef*uN8gs%Qjjv́!ҍ$uZ"mdk5u +SHVd6٤XkȮH)67 ْ7΄O6e6ħR*!g@r !'!4!$bx0 !0ڊ$##rlQ4f`9^ ɲ!cS1T;ʑY¡֐1f|hg9%FR8.Q/-7$sĘ,[9F U1KmtQM5{&Ibprw+FlW0Jg`%'0{hnql,-:ӖPҊ y3ұRxH3H,o4i%evM +|`};ݙܧ +l,r^`2cZ9Kxy&1ڂdٚ4HAU !d{| 3_!Ԍ${80^ +ͷ-7 Yd%"t1g%PHbDH%NZTGb,|;5v!AʴS#Rm0jLv1fX)(ANc6ItT0H2{I>e6M$ƴ1 +y +{1Jb(9pjÑӋTyoĸ|(FzOf>c4+YeJHt،!pZi4c'1C%ޘ_6$UWJ)H2 !]!FYa +}Z "QOs$Mo[Qk| s!8Z˱-6acƀ0>E#O15WbF)IU!Ea( sHs#5y%;H"^`>BH|_82bx Ү9im>橐1ŒkiX<8ƨ}S3O63Ւ,?!oZyq)|Zvf!|!2YbHtuB;<cjzp89n$BH 2MIFC%b䐭# 6Z`i N{{ZȪRyi)6YQ-a + O8Q8Rra X?͆ygk"Ɵb{H8Bҁ eI`9u 1Ņl[H +~ 4kH.A.g~S̑`h-Aol(j$&X4r.8J.Y*Jɥ$ `%1_JclM!<#7F۵HIvI?Ί7${A\ƈ7GPF)'#SX,f9an4gư&79!ik(dφ4UjkZ^qdú4BRm3:IB!Gcy4c|BH*CJِ">gҸ%zcF+AVc1ɝ1_ή G.ȳ`T?dfHN_K(ͅg-c!'S8x<B6/at1 _HEؘCki +/?$ZAUWhcL:I:b6ӵRT~:BIwRj..뮬8]Y͇ MDv_YbQ81X00 +~G?dy$ʗJ!8ئ +ה#!Hc>"Tva#Qk⚰A*,s0J2 Q_cq-<"/:R~1: +l"kfCJ, ~QGO)w@+]B0s wN#"{zq%c(> Hb̙ K))\]d1ݿ쑸x}*P$ UHߠq\\ۆ&`rmtN$[W"Vl}C̴,{3Uo_)\/jB\ղ!Kei8sNf1x<%'D(O9$H;cuasJG5Ƙ#'dFCG  P; +G/!c'8C l(&˵? }RH>u;Ç r+V̀aqk y"*XBΏ.*8 0̖ _UDc,o8rɌduCD-",vJ$W /l~Ɖ \=赕|ߐ'zځ|$tDfk huF2 oB_jfH Ԍ"w<+':,G매9€X),& lZ,WVc>zVf%!/kPGkPVC  ?}f> 16JX_͐+Ɛt)K.$RgIp.,r8Բ$hބ]h'Z^W- scp~w$9YVKa#!G H#i%u8WR̀w_+~ZJvÁdր= +~zPX-}b$,'Ƥ"TƣNXST+ZH֐:$!喐 Ju%$e0|-YPng>$74WB&1$Tg~+_~%IKl$1{`4 tww"^[Bd?_P\=(}! ~ c:P2*s,ZyXkMl-}wg gM' +Ms)"~[b>R HLwbkidCY#9VWGHr}O)f|(d_ Kzdl 3P~z!տ9mՂc3Tk i&Ŭɔ/;m#,Rr83IeR>@hxj7.B?|QrrD(Zo@!_N|Ap< 1BgInΩbV)G8rmx&Nn LLr,NC]J>D\ϙcT\Y"\.d^^Coי]aM$/<OE}2{-,Gy/wtkt{<@[5~ztMB] ,N 4²m#c쑰MH?"5.^dۥ~gf$Iu` +"#Y1$[1kdwx)dMByɻc3?A9$QO=#Q??Ǧ@.}0% VCqC"ӏO2II xnPzm9p|rz䂸_R%Bw;c63匶b+w%jpYSuwo;o>@R,ѰJN$r0 9Dju>j[qǿX~"m1VE눓,oB=Rh{\ >90ra1bbדR\ L˥WǝĐ>!'k3uٵQN8AVh HߢGg5<֋n=!CYz5+dL*C=Bn# ۔7\)rrqRHH! -Qɇ: n2O@f"sMI +ݳ J2z巓|JXKWz}4j,6wk. c"3Sj>ʳQUW'-lk[!V!MY JAEHI# +:g'!1 k%fɹd1g@ GY]b6djQ@Lv)Ov#~(ȞӺfqMl`Hg@S.m[_y욢^'D[Q$\wmRwdu."T;k,jFD ncd :lg:)+1R[ˁ?B y:*r Scz_cv7[=1V-KR%d'L'w߫ #Ή?;>D0v̓X.%ւW-Lg> kבS~D $HY~eJřEji +5TCuQO΃e~D@>%j,/Zr{5NCb︷9p,':mdg &\/ҥ܁9;.dpFD"t;B@NïpJcn?ȇ#!'V:@ X@ƮL=W;rj>p+7 |Vo,p66ې|7vn!JOH\6F"Td3|v}GF8Z G#9dتo/Q_^gG$5̑Ҭ`Bx9~w۫赡pTI7) SKN?pET_2ڨ.Bb(rs_/#@3X "=! +[#?T=Pۇzzn4\bb2{3 {Ym>4%XK;#rgC}N?O{m!*^A;\+kdkPmh.}G +p!~Nd3l;.b2pxo׸̑&w,PX"Gj"< fb`ʄ/WWg4Tqm1pR&)Wnc >P7͒L<ԍEd-I˲|)eDŘ#zXb 1s+i\61б+5#I8< +xG Pn _@ǁ%˩[ M &]mлa"V"wmP>dHfwۤRFg}4H^ye(OR)LI#)`k ?f. 1%?Cly0)Է7ী:a}gBT9pA8B8~[}&d4O|,fЇ̨5_q&\q{`vcLe5PhH18ޚ y]3Q;#)-:;.~UǝB.B{ߟX2a֩7OX*aUH3~hffͮm5ת  H_Ͱ߃dgQ~!v@/u95q5/,q]Hn_ؚZ\6pn +3ÇN43<5"^#ikOJMV9$ +JdۘL;>4 )-m%NnY< MRG'>ja3QI*ikwHocŘ|yY\~S:>FEu"ϵ~@M`3[xxis Dma!\D +."5."Zpsw'rwtM;gPqf!՜&~r{삾Rpz>U~PlTB·hsiPZ/CSCRFbgOH +qQ%vxj>j^onW[ +PBף9zX:h8k'jƙ/بp(Zb4޻}UlpbӪig9r!u=&}F+Ka3q # 8rjB8tl=8{rMCVTB!o M^3hăjrǙUWCF=& ƼngO߁OQK:gCX|cx慷<)wwi{ﮇoCK:ӊSPƞk\H?+C\g;ҡeJ m^"g[UVOv9PP7;er٥rj%#`0{%U[꾻[r'/zBÇw}]|n>bBͭ*ZXqz>r:ͱ|(RݭRyN_ryc6!Qz_pQ YDHk($9p؃ZfNQ,`e67zQ/v59BP~yx`3+JǗyA^/@p.BM;A=pXܫ4TJgOIڇt@xG"cO ㍻;zLgzc%Y|X~S,G@߄`5[zEfV<\=q.rwio:X`w."z~= }ݴ?w?Ź/`s3k߇lz˽J3WUv{KC|0+Z\QQS81t7ui}OqȔt5khQ "wJG: Q.yC"zQl)MH â3TI*KRVR-zš8Gp֊Y70PkR*,ýŞ5 +>&//_ gS_{^>zXx3qGO^3lJB }9.V +u:xq;w1&1ۀӒ 6)`*rk(k ]sy)"l8tr7r7zbLڿ$WYE}i6p^6UgbnomcEX*_>/z8#h0&9zFg%S5ֻ\va1-鍓+bk`e;7"TMGIAglq}4_L}`%zK: l[.4q Lb_nZ:cl._y 'Kj]e&#k˅{zV5Ήv͡? &V\]=ES?``.pYjeRG)gE0>%/%5tQ= rDŽi׻o'}G􌋻gRv:ڷ) K+O]*[>ZOh++V)ֱxd3(( (~_lX:8 ?VI Bµ=$w91G-kTm@>ԇoY8280UG[Qޥ]|O;/:? X!嘣1I*9=Gft7b 5<_P0}@P-ͪ䝙2߁35WXqk%g³Ū+"gMkqYS3k/Kw޿p7I87no{?So>5$N}Yyƨ ;%*fAu@R~x 0|O9{ 蹫UZ>Aģvƨ+G[џQ^s|磭Qr{ib{Ůova@}C.v.Wo;_ؙZ~n1REc,'\!|=..a~e<\ѿklowpgw -08]/m6sOw?}z*^~%Y~҅zsWr噿tb_JFwW G> +D.c8vrAL?٤#_~%K~ҋ-6CŮM㎌F-tփ 'i%J; dii֨O#RrJe8b}X|V?M 'grWg>Y?oO3@Cu(Gwe˿e >5xnzq|ƟoM-pmuo4ɲXPP@]SI] +Bq/R| 3=sMc;3Zh9!ydoV`%'ӚɌvm{q#n$ӺE:Lͯ5´n]aͨV4MY.vg~6P*A :wrB<6ykĔ*ꦨNReF-Wԩ=\$bl+/5 +zG= +u_>3'{tM~ x###lEvl֧+e +r{m$yVڨg#GeA֮Y`Y԰냚1m"o؀o5o4~dG$Գ!(G1zAlcA7.x"=찤v>.Zcj/ž|&Gn*TuUչ.s4ZvR\P'!:LȜAۨ(0qGˏbAрѥ/QnNukq-L+"yJt.;gaမhH"#vBa(`Q up !-HB2Q廄=¬D/?yd7!n5;\4 F`_N_~7Xy=[pIoKy_hqs]G櫥xUaAXrAbgGE$X~j~>AQ?f,dA?đ\k[ܩ1 A&գC![ګG䊊ͅ/_ ~7}OG$wݧgC0%xcE>F!ލ!+NCvx6ofW_x' A]uES$v# +D}I^/A=[PZ)2ޫ%bKA-yZ}\p$7zMw 6 n WC uËzxأ~9,!PeTuYYY{1*"(6/|0_pC@m&[: F*bDcځH⭟ɖދ!< ck\Ts/y)hݰ{Z^]N&]2Fz؝oFWI(U8m0}@ӉY+u1*xg^\*zxB|](1erkCzN#`G `N[vm?q/1K"L4V&!?H5:|VEʕȊ Kxv<>h=ȇ2 +h3LB4:t ߌRl95Qu6jOc׃Gc8_$hs6,Uu t ˻ΊK\ĕo/ +:΋_5979Pzm7}-ko+OJNCgfz?/*q;?tOiSt%P_)] w\ ]\yUaUb˯bG|&k (N~8C7XD-x\nG#y٫GjIQLrʬނ|-|`)Um)擢']v=VXw(ze+u65xKXPju#h$Wц Qgmљx=lNUt:ZL8};š#+|KjcSRtxHrlП Ml<7jH]1D .%ɒ=#M%!6{_']-Xi ^\kq&f l兞z_wI;ߖm0լ<5N.k3~zSh\,y]{"?CM6R\lf0lmӻHRf)cq^q~ bh6Eqvݷ#uPWd m~ &}7xN6Q[)}tIP}Wrr,NWJK>?ɲdmy~㷣d7'†*7Ӣ_WvprFPcFߏw^e&%6^IkH=בj?Q6Z+\;T+zaٶc]Ïcx ?rEu8?'z,݁rW2w:ł0щ]oӻ xBn<UYmSdЂ&?| nWZ{:~xry*L1l*ֱ-55),Ϳ),5G),L4w)Fe\npKs37rMp|hEp\h - cAr|BU]YUAP7;Lۂyc }G~kyiŽ Dʿ?찺c9&/i]vV.εe]/A7$Ysv2~DPVsƼM]$'qǺ吏ovmB["bcxK679GU9E_.ultkpk\++bTy^ +9f%6X?b=Ȼx!Q ###{AUx=\H}4E>D=h:){{m&8&J]%K+O I%Mu:^չjͮ-lt-mulH82P2LaN;a?y<𨏕]IL^Vp%=LKF±\d]3x-R-L,x5~FXWŝi<ՑrCAЋ8g =W_]ȡ_#w⭆IM{cG Gz|Zb̚/_FoX!O\ҔiXLk~C}dQm~xR_s&} -2Fôp&Mh+ӯy[}>Ӥǵܧ?Eꃎuz4e\N^+&ԅ +ZڼWasx5L4ԋu[%~{:$A\&(I/JtH inI=ѝH AYc; Ѿ;7ɱC&Kl6>uo&ڊUJ35_hPNkpR~6$1W +V4*4־jmXrdԟjHdӮ ٿ!vV QOZ]Eqau(ZF~u4zN#uP6?''{5 }`n u!i:غ 09'3urNſxyVEf\LIp8(>_64NCAf1G d0/J +J|(ˮχyCBM y7X] +gmw8P?Zv2 s0,*`><'[B` rד*?H3`WT9`|0Wq)X8a5X,_[vq/&y=m-xL?GrUO&6VځKsWsV6Sd0L1RR`Re)8l~E } b6"R8"hzB>NT>0.뭿;?)qK{JT\+XMWLIGLfo|\m`RGc%᳡'z3bXǵѻߨmۯ֬^ +6nZ t,N1>Kª%K 0 LPdJ] +.|ߙ[= qx_xOlw˽KW\ M >a|qLH|cpSTBW~?:dv ڡ2跍Ji@T }_oLkпD=0 q`̍`.kX?; + }h#x Yn\[r|㠏yY_.|Pl;؂2/< xwNP귶`϶#b:bٿo8d N 0/Dϧ6͂ r5&Ǵ-h&7 O:Q(;( |kיQ&snO|&]GX?U3nȗ>~Z[+Xq/MqﴋAe f}CmG9WY`pا~N?v=_*8o&>)J_O»W }"˂>QUA 5ºCz+6?>ޭxgE-wW`=6q9 >zթ`.,Pk-u[h]sRP=К2TW+.>^lKΗ+ck`3uJmY Ia~!Ҹ5~Ѽ}n_*vczfI>?=Og['2oΌ``;JM٦^ԙ+j͌k,M(NhcR7+#{hOJ|SJh651=U[_wo6MsLD`>XvR]|mmZo_N{e@7o}RfT{=/=(( zơ÷6<wiBԺNama?iLlt2ϔ f+,qR>iK*0]q%̜̝֫yG(iPCo=a"ń8ǪPї'گJ{ +}e #נ%Ҏ `oU|%zW@t*JMVvy*{=`.0kV0ky-=.,>_ +T{} UTx5{W(5F[;!b~[gB~r?}98FsIk[MbfI|-<`r]K`?_l 7lc 6Vmj2RU>OjyR7xٛRJZđFWh{jcg +I L1C:M3{TL0g<`*0ozu`MpU`am ך+D`{0.T?S^YNf}i B9>-p㺫<ќinqK_ kh&Ъ ml+`3ey@YVHp^97Ka |o p:452],i~@aWdyѧ_J-EiKz(|jeUn1q^iIؗvw- +#Wls⟱'ʌU/ gn7MzZ(n +z?n{p'lDqK]ՓvtL2eGلN|LolݢWwʧ5zF-4߸}!1,]0wNd`` OC|]}W8ɭXsKyf̐_ +`h@77N;G/R{ ǧޥYGC@hv9 +[!`$Nn CUuh$~]}_hs1GK-\d׾Y/#8'|(~?oT?L[PO?[Ē vgNRT]0K{h=4 `,^6{Nպ.`7l?6v`Fv.ظ[vcr{=b$ͬ/׭ iS!ӶVs%޷o?\:iJ?׍n;Mh&uN}hz`*^'huVb~ݏcT__}djmHe˗RUm0 SeJ`nj)خg``HUS6S^cgzcֺY .?ڝYtl4;-6J[Mis c'ن3. yմ5+syiSwxͤ#weڲҏMeqLi}\~M߂ODOtϧN^SOip7`{7g Z^4n+mm1N4ZwKS4+VV+nEk(t_{;i]v;mOGp}k|lVgر]Lje1 ].)zH` G^sQ5 q;,m*< Xׂ`Yn?3ŒB;>6F4ƌ+hN m]Mjb9MÉmAoGڙM7c7'h)7iYx4F+aQ/6b/we"quEP> *mLCB>h'-_U4?ki` ,[o='n+\3/֪Exo9kZlq=fdm9*8UDZ?Xa\J +NwΥ\!`Y:+rn0v!|Ui+(^S/Ҏ*'t^-GxKf)Øq 죂4<^N׮Ս> k]7_ۘ1 fUm,sJme^;s2eC>ZZ`xf7L4ٻt5}Y6sJTᙝQ02LrB$!w""yKIR;?uys)M΀ev21ZYO. k^Iz|F᯴G[KXt'l׿ұ6?qU`T]Lca $wnrNΓq˶p/OC۱]pOlLK/gdUr ɻJɋ ic][ˍMAf)NerΌu`z-t=^`&`}yҔq?-4&wCk)Pq)V> ЇX\g|p]=n>Fؾ`˓'^m~i>'fZExm'u=+ŐwW~|e,jnFŠ?tx!V<vg}/l'5͊$7b+7*vnVVCs4E^[%`57`eFDnI }X\w[E\$ϵ9yLC3qbdg5d 煿\fU(ǍEͅɐZ@a5"<_b!O&-%ln祼݉'>Oy >E=+HExިi1Z7f^c:h_;xy_l+/ +Tx.*`=е[@ëdN;m8Hȯ^74izx&2= +1`*?z?cɀ))htw,5 3{vo +s瘹6M b]XDpravUNJOEF{0k^M" t3G-q~!lW7c/jt4k/2}/~._iGNҘAB u%3InH \T:OQs 3 k=Ab!O` EV +֎ʶV,9Ff@GIhSDF7K&qxsqrך n}~K] 9,*ܕiK2^?g*-~V}DM,.j݇i=ɬ1tͧoܬXGxEߌMKL`NC[zi 8n&w&-+|@#,c #!8G 鋁P߸E#8%5 8J,θN3\i៷ F/D{nc"^g-Gb~Gu|攠;:uqq9``\LQE+7c)q杜Z7&Ume_UsRmZ7iH`\W\0ʺvpUSffr6r=ւC[wc8p; h/b鉝Ty7k +7 BpG`17 (ٔG-y%hrohao{ͅOa?s7ir>h 봠wMiiՅԖ=ċA]هf:&T5Yv8-Ϻ6ô=]Z*/(rc5`>;iyâ3qIKEc,QZ}vb_T#=h儴qvy)s)j+~wqs˷)s}焾\;'녝Z@c>0Zˡ}wVLVNUg,`+3e-hOMY`:)E._HqEE0, 2g&4AwQ OG xXJ,yuHw.vL{]|4^ m 1q?旻wo"?.K]u6`#νL ={>Fᶞل'13-,&v3ڷBAk3SL|0~"#Ë6`iMfyaxwYĽڧh?ȏ}?Z]M<ƾz~9`:D"p ?gT6XXнU|iVn~j<'XlYغhkkcև dž0d@_ 9cuJ؃ȿ=ڈX$n%ql7vmt +| 0e􊙇# jƁńTK]Ok?3?Q6T x ^<gw`H:,V}@%x86t;N94(Ƌ; +y1}U3GtyBZ^|y'k9TuHTŃrcYFu2sBoEk⏇ aII~6/U􊝋E3`.? uGvSL)V9Vv Wឩx/_HT`=wCx"/>Ó3̏ 841S~)DaYUN3(Ex-d͸>Q޲ŨYTHkwEƫ8Iz%c:a=x~זKlDdh-9;6w>|ĨuI#` fo)f-dIɔg4_xxGXΨ?ujvG"[ 1{Oɰz.O>:) "ĝCqnvwɀWȜ*x(P%7C#y"8,*hm}M0:H u.xu9{9bSR~K`_Ρ.B};>gv^kuRivɵVb CSQ϶#}2k%=ʰa%eq?x){O: `(kQz:"wPǢ \%!hEKgA\#~.;Ch/.~#oQ|)DF&gbw|~PJc2Eu5f@|cq/8:z(HW X'yPvDp0~ Do i ؼ/b!+O_Fx/ |a }&CD"`ް>rI8F*f +NNOLa FH7'gXݭ8obF(9=H_ !]^̈́Ctp!n D-bVNP͵K_oG : 5xМA 3 +ϜB&/By vm@ ZdH (bh`'=&bi'15,9MrT,Fq"NzOFXOH8\ʳuT3 i'bb!+nqFdH}}RAV W Bn`X)w`q/1"W{D70{ol8gQXaCe0< +8vBT l]!VN#=f>A){xYpLX 7OO1FzSsFl+7i<eo ͒vqɈtKCts^~q*VĥCL%LzQ0% +8׾' +V = +sʘg[I(S[+PEu5"bcg/OE@| IO3}'9+ oE6I@>'Xt#XB08MZt ('邋A*ˈڅtP[ts um9b!"6 q 냟r 0ZHO5wQ8g|0?ucJ~J^)a[h/oJBHȑ.Q !=dpǠ3{FCgm<35?&p6|3rGpJH)s^&Hw80G[#·$QNX1TеnWCDj>QN<0"mBHOtoyϜnJ6dheovX.xa)(<q\ s ˎ)N10>/$΄MGkUkT#}k5;(UKsiC +mB1K:Ïg᳈kD&<|V@|Ȱ 7zPwi]ULAdsJ.@h_=Ҁqg/2:e0 ݢ`L9qUBBL(6O㊂3gg\LZHQ2tPbxUE[Daw6!.Ҭ"NC:R~ 7o9Et ׍5dV3JX8»Bɓc;$TaMDJ"'+! 1D6%Î9c3gqa~bcbS +b|V0z3~HtEu b#.Ho8{e:q!F0N[$t{-ÓB뜱juE9]Rt;K<9sωdz9],,MrO3 iS[ausֱL6m]8H@h*<):NpR2`S{V6:i)DZ8;E+Wn$f"NSAGA1z-bf|) ŐKޏ4ipnN-~O> +f g!)F i2K,RF))Åy%)!\rPZSh k⃑ ȴr5<0Vb^< a{G//C:␂u'6p>=i|y`raD;H yCFLn`XL7Vv㞓08p<W +{ On=(ڃXqHG ZKCl"=F=u>陱ßoR:zvcqF1^si! +fQ~Kq oLxg/brɸ݂ڂnCqV<+Zop.o&-{EFm'35UZ609mk`[NMCxZ!2gĈ2Ah%L? ᙿd1Fsu&-4i:'Ž!-w#Ǘ#Xr$m앐F(F|2M 9 Qv1~+~>S1~)0&<2 >_C8g-5rb2`lsH857 DĥlO*y-x-x/B5n SrLj&m!7 6U„7(YAˊL]Ŭ_[ؒѽ63~5Ra!xg}!3O,,ew9 S'}_Y(Eg?WS4IW쑶X|!Z1P% ZFs[g\g +b4% +eUꌖi׸Hظ0KMF正n7qk$/O!!`?YYU5k&Xfōjʌv5XCoGATzO,an_F{87M/Zb=W +WSxVNJA%BeBK7֠\1<"p=Cd[<2!?1H;$"ҖS'qy&4N8azOaWrV +i@8@:HgFd4VmcinfOzNC*+Y+bq $ˎwf 9NS\ İoaڡ'o]kQtH,!7|[3YB!:2Ƙ\vVhۜ󜊴)mxK%Jnwh3v 8CBZ;"p1|6ʧKoxNl#}yqR KGOHk9FiF> ob .եDjy w? ;ݧ+.갲*y%&nc ΃%c2V sm+"ֱ(hV(d.DDLǰtm}nͅY}.ahgK;+ig{'a!bƊ]aS;<0 `m>)kyR _f +b-hǐ*3x01k"cv>bz37قqf.@zufnQEW +bR_7Qen0g:?Y`%g8Hq 1kh~ʼn?ׁ]q)H;JtmOEdnZvpHi~3!f5o fd6K2Hg1uSVp7ڹ;ߢڋ.!iHCS䞲P蝽8&?vq\x,ظX!ދ\k|n}q0rډ"z:0S䕸HS +뉬6mKy0A2Hm:vZֈPLd$ÅV'׉b;B.FZ܌>g|w"?S.Qg.`R O>X"C?^$}Gqg0zF- i q^]{Jr W&DfTjIkdt埵 0ڿYWcV-'3vVz A| +gk,W^2S;v'Q|8X;Cs1EgÔQ|7q1gvQ:O9(v\3[fNsoxQ@rf4P!}OaQe۶ĀbՖ6Z;HI$(J9g9E$3f;ssyk,sϹn(k1Zsk,c g{h +z xd m<$v_$ң Z@=k^Fr14,DƔ@z@'>K6XRp53f6fcsU9h)TE@y96E܉98 s`28챧9|M|Лv1JΒWh~yr{_J۾A \ ^}6Z7v}cS9cڢ)%G5 Nm ' +hs1d 6縋RB4hR\IK|.etVUT; .>,Y;˫jg#[$l!CokJQRʾYe,wS}kg|SKCW@ɳF ~i{흄8^(m\Qe 4i- sh.S3/<=JgATb,/5qr!X>{`0==Y,jQza(0dT =t>1Y/As+ŖMΖVϧ)f^X?2 ڕ{GDZeZУqaՍ.k;Dq%;j8Q{UX_>,rC帧\t>ςӔYj"vR N9|g[3?m4O3Fk[1 J7-S-Cb2k#I\:y P//ȦR\l֙y!Pf`w, I + 7{4P +qv߀& +4xľhþc`ohpˀx@85&eh,"_ +^mzTbh]$BT:t=f1&[֥ yuKʪvz`:z> |pXpY|q:΂VY>c*5vVDv}z1[Zo%1_?bM<[$)F*jGL.s|Kum#z*3/_%5S("rb&')ohU[H905 ipmT^_BHEs㳄;? +97'[3 +^wo|$A}tX7R-t=`ɇLI.#*hn =5(::ʠB'U==&g"{E-HGF5`-Ifb=jo l)Lr,GMDoo8h "~1X6N9%\yxY8P^R{.%CM >>uYwCUՍflej9IAXk >b2}ShΜy蛩grd aeLfIcabX{>Ǹ.6b%H>BԠZ؊з%Itv"bh@S9\(EZ[b\򱙨#FsAJ^Q}h*GkФ*5ԶK&_Z5+y&" )rdP+CKW_tLQ& cz FZh1 {+8xj2F`_cQ؄oj@uOQJ5͡yK0ŬIc!|;X\kc}ʹ%?IfK>C(N JQOׄW_^,>3:-DWMWPMWϋ.T7M#dsqe!9OC@7q@ݺ{N}e!P9+m]ҁ,quizx_cXb%/=Ԯ^Jצ"Y;7m@-:Evm sMDQT5amwed`Zw=sQC$0>jb sSF*f]\M쏜st:9{"8 : BeK!bhQ hmA?wlDdK?<xVC=j"Q>˩Oqrhoh\-04 %?* bmيURmtbVOv{OPkhko០\ +tMǛc=c: ;=#|}[; 156>2v-Э&Fz@V񵓥0V>9+W_Yuz& !JbYdR?] $R<sW&/\c<"r.ɹc&S}8! 8_ BZIUć $9@oJtm(J&WU=꼢fBp(8vA8sXw{N'EA-d.8)=uR=1BuɽcеR&V=2BM6Fw +^#Ov6g 'a+tA_#{  )ƥ#&8f>tꉊԳ3IsYÁaKOTc]:{(;ܘ܈4T:?2vCt:=37'v9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|LnZֺ:F]ɫ6-$Ϙ[oa穫cLsZGn۬=}8MkOlci9rt4% ys,ҟkng?M<'-l]>;3{鷋p%K-7gEK] Y`R}"_H_ߟ}\Oߪl1Y?m>G~}{kVSz}~v}~|6kW;[}>y^tytus*;]/|3_'ynyFr-CΜ8oys|yb>?='DgkXb rGstu段hcƈ7ňgADo |R>9% p[}"r󿥷m>l9$a_[bٛt6nbukMF,cdaa:ha$l4[khkl4kC1mհ ~O}`o}@os۝ڦU&̊72YXi,s\o1kW1כ23Un4ۮmf%w ӑ9Ej&[_Y%cn̒~n&՜147[ט +{tQ&w*kp +G7ٞ8}l*#ǣ}-D_4=fk z1Փ7JqC(SP81>++z #<>I:5Sn-qQk[kJ ,УP^K"c]2}\†S38A׭̠c1FG[&q5fd*'-p[0#綧 120L#Z%w\#87MhUvhm"۴Vlyrg/Vދ-9W[Ƌzw/#KASN.QA+i8x*)OpﲫqWoɯ+rLj+//.R%kxb;6~譠-Ŕ/`kMc:pAW +~gaG@>J +3;ynd'ؾa[/C7C?0SL>:G+[Op Ϲ^&~E,=1)_׿G?'ÙzP @{w{FrTpJP]m:7r2x<3w՗ԠKwJM;+ \Ϙd)w2ܵd3a.8i !ףڦEsv9oa*W1 >$5z>r[ 3AIk@63sB驅?zEǠㄞŞsnBs+:EIZnDwgP5=*d==Ҟ9p3!@yK;⇢r +A)@=JH>3=IGOC+8Eߌ2z4eʸ}%iQ5EnӿL|2]\2Vo_f"a&jzhWjo/+w&v =Ct^ cL{hi{=1פIsH"Kc9 +H? 蹣}D6?&(k> %HPqG^a0o +4BE%3`\~ ؕz`9.+Glq1ڬbd{62&_poY;i)\{DƘq_o1}ه)󌹅^1N9qs L% Cܑ<n`䒋!PG/P>X{)"DψA\7S)mؖL쓌' +~"})ڮ4먊B{ɸI9{pAx)r$VN̂obO/R +N0]yl!8n]/a=a>|( jMA2_I|s\`z5a.?WL<:g^^4ѡ xr{Gz Cз[jetde@8^/=j xi?8G 1G=sFzO%rkw2~[)?2|=o~ނSi@ks$q)H<^7E N +ܻb_!P=?=rv춘LNw6;yKi,uࢄzꡏ|p&X ~V(zɵ .rxS(3(&<`ԞC~ݥ +Qi/$vC%HpO,FymGIlC٣i/:x|b*KKL9|ż&1oC#R^¯q/<G{8Ch&l񇦁?\\\i +1>'3|mi)5phC3=nė{Ak|?p9] g"h +l'ϒڀ'ٝIC)w$+w +^p 9F1w[._B6/H|ݯCtn7;`!62.\ʱtrtN +YĻ&41v}3Ĕ#s#O]d7!|+^d\H"QJ{|gU \P/ŀB8ئ~[a=dh/.o6h_9qO1 BrBGa<^yw=f 9O6HP;B{ Igxј?y8(fYF%4+cWP?q=GB5OV2xF==[t=h%SNB6I!/~BwRdD=~ |*>6s$Ir-8Yǐ~ذߥ _X!O3rgaNbD\ߛ$I='~ؓ3QL|cL~hO.Ä3捂x8\pWx(KFC +X y]yB\ LJ + !qG0j$V >J$ߠ\ۂ ~))EI*;1rh +(=2}jp[k>C,`~HdG,//s[Z-z.$opӡXN_Qd&h|ʾ]wܢ&@CSņW8bk4΁7KrJτ>̖̖.Z9З-=hG{}bRcyGs:y`[A1`}F* ++ Ԓ qn%vMsށ!NaBL&Xtb3pyτA~Cڹ޽֣}z|$/7-ʫ)uq k| ] \;c@_p Rm$ᄒ7pZІ~OXP(yi\[޿(~ T65Bfˌ4eǪ.Ӯ-དྷm=Q?4~A\:w,U&p yJ~Ð@;-PNג `gLN('u ʑqyWr#bw'G7у)p]hU{Olv ߉x  y=|%B[PL1:3hjh\12}hpI$ޢ +), + d< p??D,>7zPpRM}h\8N +/䗢 LMrlDEITjW3)Ft7b|TV}kET2η|v BGLl|E|@(Cѿ/ټ{em?RnYh{0Bܩ\N2JeP԰ +-=܍$E^J9݉-J}CL81O97˾XƠ02Į0 )Ӯ"rN?MbH~v{[덜Vb2)ܓ/& z$Ѐl4yǠ~g`6/l>stream +~%~P?<8C[p\'R6T>36!ˮ!r$]g?w;h +~e_ b'ē3+o\y+cGW~Lp"1ϋ +}q[򽢤^}c)F @JGv@|~,"YYw[9H⦍|C8IpjS,126Z!œG /'_?Esx*v~b+GS} rn*.arozmV6-$ ߢF <kBz@kh2>f""wsNrئ:gm |]9΍rYbk'y:͛pq 5|5f N̂OT^ʥ]%æ#+HmC+#+>v /Ƚ:\ѩ{@4Ԯm$Wq$ ol*+ILЂVb5Lƀn8&q$+.S\YЇ5HFh"ŏ~$b-uncsp:*0PO[ZwDe<#pgyBjcN׉MCr&YeTÑs[ ݵV,9@:0G.3PO" $-&.iBupi" yC͹:nNIs5KinA +r~"PQܰ{ҎhcLyJk.!*;!6_Il"gXkѺi#!ܡ+!_+z1–UBI\C9{^C.0U( +H|\)^)5oB0Y)b}{@& j̹+iXq:uz!Ou1K)iõRc36"jb;4r%_͇+ܢa}T *UcP`[Wnt=ޝ|z>=7vN|D|;"#GQ7)虁jcĖC#=:/46OrQ`s3c@3 = [~rg0Nɏ'ZCG'S?YoX?94ɍ Wxd&,$/WlC5 +ӵqS.ΥT_#vʅ́۴iF1q7 m %cj*1Ԧ t~)Н16՟}{=/,RF*FJr"<#j&P]389-x-xS3yK]2*M:ࣔQd~,]sPպIQ|Gr[ʣKKS !tiߓ|XfmbaaES +G>> 2wY2az,GA: ȉPc 1r Ɓ%T\Ab9T3wU,*NCҔm 6hc7`Dɘm}⳨;imkMWt>aACë +XVSRTMi#zwx1h%)%vtHg)Ǩ& {᧠Bb=T;iֽPQּFx6LC #1BY#G8mAFCr goZ_-ܑ/y;ſ&Qs?Xy٫lًUlƕ=HZS+TOC#NξÃtOJnWB&&fSs>|#q "tT7n` ?ld%Z#4_ְ>c+BjЦ 1q9/x;q_(iUȜZ mphcl/,@?6l6T0ր*hM[b麆6m]Jt!zn;"b1/s s K31o`s,]MEQ# +Jy*3O@~k(*c&խg&lՋ¦o6'|)kTͿjc- -cMPKDG~֣!6^Y+G-I.քIgso/ 5Gh=R:4+{e( +ui1|D!h [b=th pKFT33r01y9GՑB54޻-v ]6b>hXkt+v }K֙0l`6m0cLx' +ɖ>X]𸣆eGoOZ=_QvWoҸv~y}Db& +}yi|MT#,،>1vURms- ښO +=!XS7FP}Pk3+nK/iWɏ=U`62!RUh>whhH%,;;a"n7Bcڂsq-si |W\Ԩ] uM;yoQm? +U Ě'&wV15ƣGէ)ߟla৔бH98G>w˄󋤄C3) !c^(n\×կaf^_:Qȋȸ191M9?cӡ%LG9!Q=ϫ/jZCހz=t~c !biFkM>7-z{&{/3JÌ)r2_& d~"Q} 稢vOxf{׀X|vm!π5;~^(tc1>당3!jsFS1Ytb.t`q:!qZWAt'v(ਭ( ׉yu?$~aɨSM85hY){sZͶв4ܰ2V~oX@^r[e p%g7]y/]<.oUw?]m s{'*)f<aMFiyI6Fd6sz /vJ/S:Rne{i_޲'ef")2Eo?*^þcsC3(/b_> + l&!"GG- H+nͶ{_\`S/|JFB&%=y0!)ϖwJ$XKyveCN鄓3U`Ma+d,W >:G ZO"yIbمTsN#k Y }h]uU!h rԢ;mG ?Qj|ֲkתNݳ~ӗ;):Alj;вL>6lueK[WYחqGQ502GFǹE5P E; YSF]bE ]l "s@~C܋QҜ6z +WtwTܴ^,iZV>vh1ԏ-R}өw-&"@GP|~X:v܌'J,#On'{"0sj- eƚ@b9pXf(ړ\p~X>]Itݠz&LIj Si h +A={><^Ƥ@a([vic +{XB{R}:XfZ 3>E̝C]kFBt tĀbk'a>ln|0+\\ BQS"ӟA .`k~cŻ/T:k};zByVNK u;46xaK$R^|_"{ oE-5To$I5\°Z8B>1XZ=@뗨b/h]kҵ|԰wg1CV֚aiQӱY>_]$fOET<,tlss j\|D>Y#/LH<֥~=&bS_tg|l/Bc{yQ~6"ke#yƑDMkטBib@Q5 +"2&u 7B3SMkߤ=iGX{S}=ꎡ:؋:ҩgO[/Ԗ,,ݴP3o ґ;:Zвq\l a#y؛K^+K.٣S9cRҹ9a)4ti>O|+D-#J'Ҽ'$'NĚbO=`$hI 'gY7P +9>>3)B]KBKB/ݓ: :6 ج  +wRdZĚQ3*Og?yu+|:zt.i\ƥЖEWXBu Ñ_V?Mcq5$fN1-6px:/6ʪVp1൨J:ǚvc>ya2Әڨ(n})h-Q7|GbaxjbԞI?9R|Ʃ +}l\yZ6meSrk%qo1##r9Q|lbUti}]A .ty\`V|=WE`(6lx~|ߧ쁷~Y';ʯk'OOk^YHWyHW۶q_H\U>w1%UQ{W=%S5=ֵ ▊uy{iJ +*yψb_@9'|\kC:j&*:VF-oQWO|ꙹg[л^L?8R~#?87͹D^|}5[ݾQm7[7CR^#78wyQr ZQl%{^p;̡}.xryo]/\'p .Kt𙨬}Py +bM1_e' m/>TV]f^[ "ƒy^X|f V<Ėwy2_0cny{yK& ^[~vStý5L.1yG)bDՋǩV/﫷>T|E^epI{짺)TXY5uұ*ydO ^ZNl+,C5cӘ!S2CMvo񰅪Ý҉v+C'VWّmYƞ{n>rοQ…g6NܵOvwܽ.wOS\RvgAq5wi}x~w5{䵌I^yէܱ,$l揵\Cy5BFط}gp'ze{a$~J۬O~1h|*Wxf!?JV^Ŏʍk|kz᩸^N߈ceoe±n=^G[)}hMutt+Z=~]}ciAb(eXӤRԫ365‰J͆]g.R>\ϥeq C.Ͼg-jJfET5rN}-om{3=bP(>3Xe Xw&\"'+hY*;WO!ҧ҇{§ O /oco#NOjn9 c8xPm{V]wdD]~sW??j~[-xRy`ՙN'kw$mK;bݓM{AVcĻ^[ݥkm՗[K=6*n4ygiVjE- :sfoħU6ℷqRW[乿ŽoV{vd >+?5ۿ:'}jOa{T7&[ش+s(}4sV{ ;UN4)Z7XiN?UxrxMhtx晍oFS9OPU{SYNϏ>WhŇ֊ăxju+ͥ\;* +|XV64HY.f=}R=^Q||b,xӲKZ=fDsm_\e6>޽"s[F kNz/$nD{GYحݫَO)5J:l_^Zެmw\)7Zk١{(cbl>_6T=XhZ~?V_64okgu~yCx^QcDARK\QDKj񎎲bW?7fH?=I>=M}du*{{[Yӓ9odZY|m>kg[qqȇťa˕u죧;Q>l ϭnQ׶eh "כېt7!;1.q^קׯ#{ܸ ﭕ[][ݕ7η:G;X~-C/X׎K;v,Uxl~ߕ?Mw2mjt{IūŦ?.<ٹu]mץuWrwώRU)fxJiz5gg/joSG?H|U>00C]2n4gkIkzVO~nh͸w/ d}PVu}XvJ}|{kE+iDWgGaq\q?,ÿZpވ[=M_I{^ܱ_YNeg4ytSC:uӳջ{Vo\@ .*5YoI-MzWf 97.m}u\ά9GշfhI~|7CY'ȼ+o +˩Sݔt=դ[0͸7bO*{Q:n+fս[mkUoH2S;Ͷ /llyԘX@]nZYŏ;F½J\,zskVo벤_vk).z0ؽTnQ#E 4fq)0 ԗBίvz7[ؙ$tۘiGks[s矃:SMwoPVzy8AvYvClq|reWS-_||ӚZUҜUה_tFD[!Y> Ͼzאiu#Չ%剏C[2]q}þx$tِiu2imΎяO W?(^ov62L;vS]*moJmL̫ W>p;\]^eb}$w|ۋ`gG +#|70Ͱ÷߆ +QWމ̵{Ibۙ fu7CqGy} mn[˃9[n{mWhNm.,֔xh_v^^i:hVwV;4oW0,YYd3o%+yKL uguW,$>#rl΁ٙ7rT܈T_Oʍ!&_x:Uc֧G .*L/*_y7k EfX}fB/=f<nje1_>~F߯_MfVMRUYfʐf4yhFWK3>3FfE+Ŧ/vg-^Vp'wwԵ"n +ʼUy?ܝئ𦴢[y蘆 eލZwo훰vǝR*6ܠdl ?jQQ=;{^nhJsGf\f¨$r #]?3 Hf854LԌ*Ck +?[޽mwZ&y(}ۻgI4'ފήw3BMbv3uw3wׅgp3D}FH捻As ::v&wrOoo'(4kڛ݋D^1f}fi:kMQ{ "sӚ<^ d2}mMK`4?܋<3\yUo}ntfNpL$ulxu;17bs*oDe}ZxC\ :BP!ٷ2㚒 +_^ ?=)lWgnޕJmK'fiǹ!gIcӟNzۑܹ/Zd!շ"kgyvPFdcJQS `ogίv~Z-ޙ-!-WjfGH_]\͌MkN,n(kn cCo3taV&<@ [UϚRl:/d9vnyw +&17cs0'D\B ֺu7MvXn2B\;?3> 9뽙Ú{սQ龿׽Ԣ 9F枻sZx!^{rxkaiway) 9Ս$jR*1k% _e9wf jYiE_5Xbo>tC =K'^U ўČ3ĺBs^YwN{;,+.!ǥ:{kypJW\ǧ{x~Ьd`]a6oO Vy7z"?j}]uwF!o=i}~t ^X,w:@lYW]tϦ\8jn-‹}DТwCZ^K3썰9W(u\ScڛKGbE7SeR~궷k=[r1>ХKWo]+=.7BnDoL&]}u(͠pZiL5>N?7Dc3Bk3HC0Ɛ?=k3Pk"3,fFfƊPf֫ګw\&EMbBvhCz>*51爯,#a|77YHӑc[S3P2 |%~3^`kw23jB˙þeFX ] ם 33gb&-eZj=E}ۡdfG/FefDegw܉~Xջ7-eMEȻV7t/?q})̐^#O("9̈^Әa}f1fXf~C|b\󻤮!F?w]W/'d;SpZX 7Ê߹fh;׉?|'8܍RyڽjUkoGP}dGjO`"4f"f"f11&2'Z0'2#ǬcF|;cf3uꮼ=Wz~18bJ6-7UlW&83,vnPÛ!7ogkTo{2T͉ :'RЋ~{E#:ӘC2cFLd~Ȟ<13Df3j5ބ1rW2?]{n;1 E],x|5zxWo {?{Et+'.6h>Ǟ;]!^̘f0#!yb㪺ֽIUXQ{/(b^b5*tH(Jk,QkLDc=Ĩi$ g}9YA2xS E 3z3fckۘ!G 3aN<3ͷq8nPדn~W -w?*ݛ[_,lÜ~A;/f!%O6ϕxfm86"W6d#ύc&0˙3v#t#6Ȍ/JbƯ*`&06f ?goV_̸㦦5Jr;NZ q7ol{q` Z^oqԻm藎<?="pfxrN=ڒmocfS?$cg1M'f +fq\L^L,a&3Vf39X\fХ`׳i5ˏ UWv|X办+Wf|%q[UR'Rtd7~n맹no9og_Ǭ?Ksa32Zdْ1IFcбnNlЏEp|-3v@|J 3z/3|3|'3|n3n sAucF  Zҧ~mmVQ6;w\"4O^~ǫ~|E_.Zgzk܌?+r.$8uc;peFs'b%c7gyFژ˘ѣV0]1d0?QVu2s֜2_zk༆K.mԪ^/2ՏOs_Դ¦-_vh˥۔7 } :Aꋫ_>/ Z~k6Mϫ?^ҜfYУddFxQZeoNyܶjrgP^-曟5=4E>-lez^ |cfr'2F3cf&cfy%3SlfJT#33OLolA'd5Spda-5O-V?\Xp}ࢬ+~֪e+]7=s߯u_PW?Kʷ̌;ܹ2^b|"q'RʏZ)e8NY?إ!3aI><• *gJffLn`0rtjY~2>_BE1Fs5nK7VT?qgI~W}ⷷOK޵o}2U^m*wwٷY=Pn +R5TPգ7WwK"^}=mR|תm;oԗ޴ݽ  4DFr2yXLdF^LZgrƅgƵ4]ct +:__?Sn'YЯU/QUY!eyK}wGcͼ6_*o#X^t`>uq싃_mI}ܽ+ˣF5 ^iYn1qRZ+2nc;3g)IqdxVK:É-QM>Wf[=_}y[E-KԬ~{k(l-=>@Pz F'[^̒u}뤼H?/_$>y!7[QyllE{AS5[B~T+&TxZh,}ɼ/{We_|b%د~YxLzl5Ʋui ++m}+U(L`X`Jd +5,\z/^x.^{fFо7+T~`{v!*Syu,OYA=I̘9GŸ +. ^.G}k}09Or-''obW/f<&0)$+oEzxujÛm~՗׻./o:7Yo_ +{݇a N1 R1.Έr/-8Cw^RUzVkR#h6إ 3Ĉĵ )*fu۷g?ԯ^<en }sgp^F6Asq" a,qa`yۮQdnBjǕמw +[Gj6vO[n. }>,; + /5 +lg 5&n6[At_ݐiL$fYNϓr |EzI~Op?G0J&HˆlaXlexIdigӳQ̒exLxrfؖ+NK?ǥ ODY`J:_z +]/5ikORؽ_6^Dz—+hC UPCuryʖ+w~xjW‰"WmP˞{=wwm%_ F4偷`me-|zyn0rEx̥,3lc3:WƸ]D;C)oEz!M^j\AsӹN{ +K0\=υLJFbieǕs j!ɔ7 71lͅSSǦOQ< 」\"m U|۽e\ù٪?kk[{r&J;G+n.`ϽܨyGӧx9_쓹,Ҭ1h{4Sxmt /*u+}"=LekNUjœf0+/`W1!pBB!M#bta{KG/ž+TUl~G2USUWl=&Ô]x*:n/T4^&vS~\:po.sG%^k|/nEsEIFAaF>^q*ggWpBJ%",B͒kUOy ݓ5ÅRK!k0Ug=|QHxH Dž}v;FUut2ޚ81QsYKRwz.Rԅ<8OkV~8U~U`T~g١I̽2NLgsBP>{_{rNJfRFk&x($zJt'1AE< >tCCp˺P~s=0K`fo7mף@˴܊Vz՞|&}˷Xr{>*Sb [vʓ] T_ևq 9_DR+e\j3[xra\g:1^WkH^۲UG qZnkR51ozc(=4ʾU=cU=?ܘflQ&Z4U8.9;pp[sW9FU}QI~7? j9W͢]O\^t?AC?񏥲=#eElqNZ/Qh*" \0Γ2.bɼb + ,=mF Xl9>%S^:Xއm:=/n-f7  :Gym߶dX unv?BwV[wj_}P3^7v' ڒqT@Ù=o3_KʮT~b}7زE-#GOeez ~\#n/0PoVkr[L` #u뱌ՌeLreVkDuqQGƙp\KwKRb%%[gX=u;\sm<[and+Wqd8Cتԋ0ͱgZn_\"=u7<#:S|.Rvc7;9S1Bf i(V}o\wx:Z^z?|. +|͞zT͓;Z8Ul|Ej I6BGk?D+y*>襌ff4x "&T64(<٘4UҌ]Wy0+\h ccSk" Eh!baIQ1fbxaVH9H&leY+{,אϬ*{k^ +v${M!o{^{M,=2rϙ;1Mr/7Fi\n j(;J^{Q2݃ NKe%L"}J3ɳGs[f f1r +.5^]|zN[X\hPI5,BhaV Q6^w~By{)ɥga_8)#Sy: +|]fw>Xvzɝyɓ-g+3q^<*cdRp= +; uMC-cGѷMa +ؔrK$fgoN`;n-;~'Jփ򶏼 V> Ue_,|)w]hd\V`Ub_s|*p3ڣ&\v+-^̂)sYss3Wf|$7Hd|ySxyx*Ah֟ +{HC"jlR_opIm5lWuZF%RzN>?x~BOzP*iqTy${dpLQ(j6:և.V:;;Wf4 e3ٮ+T=߯^wRm<>+l:1A-qx.g /$G4̏e 3%BӱY|^lRF1)B*a5#ԟm!r7+|NXqd"6F[!wpIhH!`& +w,a\bXfAy;ߟJe5נ*\SI'n<5M`6TfF*3Pj!v|Q]yUlU#vyC܎~5<@8L%y&*v7?9 ՎG`G|k$TYlZ3.GuA8x`G*5d96XPuXm.%:ȓ1uq})ŲqZډͶʸ4cEx4;K&o|uq`R6֫ ݏvfbRi]_m}sˋ;o7/;wsunR+S|d:_;oǬp^ɨk,oV /wRUJn\s4[m(7rd?@JBr؁)]%!N]S ÇE+Wf_YǑ2ʊ/5/%q|;1{-Վ-&Q|z50TJ(+q$C!TT`(d5ڢypC,5jm"uNugAfcHH/ KcCx5X; S]`=q[.{ o|o]ϖb΀a&B&R,mGvPqAAM z(lBYB `jm*p W,ۮS +/?HbtlXp->!T5Hn'2B`ʅ%#P~^GR}IRvyTSd^>:}>5b#ʣ c-xk>LҾl}+ Ds䮀|1|0[EjO-W~8EbY6c1Cj0hL.6Pj' '~3³Lhze5eŖY0[nmm{N|+6 .Jl˥7 +OJkIN\!&Hi\O<8Z` ?n 0ٴMC gZeln0  1P%2$S5bOб# Ccc frmeyA,nH sgdt(3*C>TW@_jBO]gtKUHׯ2 mex F>@"ҫ˃㩆2"^h5.{(r’M_D;q$4ϡaL.@kʧ s(X)/h.VH& +{󝟻MQfA}Ta^Nn0֪vU)""DM2!$TPm*Ln/ O5Qrц\:)k-_sx +| M KOy]X6;ty0wbQ'$wO2]j/W0НE_=4ѹ^> +~ꔑ<@k 1ڜ\d1TP2aR +!B +KGvzYLrh!,Ʉ6;2 \.hV 1 -HufoدoXhIY?zo,pGnf(.>LGj;kG\Ř&`ɵn*|v-_iH3VD56acr1̀]eJ;uV/Oj=3lzה9R1}8R.%mg6P {Mᩔ'uSs۞]w=-.%=ss~Ǖ®P{ݏW:5BSFȅ'ʎ.Rah|7՞d> [a-6 R'QYlEL$5;*|0a5JpĂMv4qu120hGkwL֫.}w\7^*+UX199AotW|+?{QS偉BL[hΒ Xwvhx8a̰6+/yJ>J(MMw>s:_xi;k;>_-DuVX5,Cp|cǞOMX$u|Z~+ B}D2gK[jFO:oot9m=IFyz V:-z_}nuRʮq4?$Ǫ[pMlR vML5p[Yt%{Blw=vǗ^#REƛ@BxjZSmZ2q-4=m,G^L-e;IUlN6'Ky}G'^q?`2kIl9j.?6ډҋQ &[:tEQqa~J 1q-"M(r}$KŖˠ +(Հbu#XK ţYM=.ֈjڐq LP|Kj} .lBjSH,@nlψ' 9ݣTQ9#1c|\wn¶{.ĆPI)灻jKPB3 btw f]Vz/'k":Wp۟zw}]Np1| =֜4']4wwyu\.lN,?HuޛOJbXyt]?s|eGj{_Mc4 a[ "5 tepŴ-6yʑf ;mﭤch_=9WWgV3Tq:e~o&~8e!#w +gYvy!ל~Aj%Bio$&):-l`=xTs[p^vPg{mw|-7]wr.w(Ɠ +L3M6-Mߗ/ݎ]/ozj~s/QSv>YIj`Ѭ+bHnE_H  7oTg~txuT +`ؿf]]cMUbAj#n@ +Z $.'i#n\oSjOS}v68긇8J1Bh&l0epn;Pq'v sO'tc]AC~'> +!iJDE\;Z)X1yfwR`MOWIhg)3WC[V%XC𸵉Vژb hPlXHŖw>74 2*@:3]B*naމB +=Ozd﹗ +y،j9ӯӴct({)T~`S/icyJ+hEb6k,6jgiE;Kwԇ\_;jPmAЦK3gޟY]OWS;&s\!mAk@!g0qNbt7{=8Ca@[^o2| !6sRwWW~#x%y;6_ɝS{ixՋEdBit:{qt]L~ۥX WDu,q]@1~+T:DD*54ףl5ɦEz5ЃH5Ud zUAY5"]R M1`jsIC;KP<8`CAK>+8H 7kY\ {x$5lZc3M.,,nl8Gpb5l*5_Y,Žo +4{ʐ#^Grr )MZo/Yh>s,0kgS]l%4yYM¾~X3c2d NA/ qHivhgQ^Yyuƪ;JO֐xF9kK̩nWn(:-`k/$㪎)pa^O>jطHl5jvC;Һ?ܟO;w*pug1 c=TљXP mFnV f B TQ+;(5ZjgT f4ao8>~DX_T29o5*YF( 1 +_ ѹfژ,3ud)*{ |4>ua(M{O!1 ]k+n ʧOhUCr}kuVo>2K]sx:lh㉽7X+[Ld͓~ 9)1E暸B XB DcDb&jgJ덵?oi6g)ze΂^2j*ґz?$Ein f]5r \m鎱T,gH]~HG vHy}pf;}=xMŮ `nS>[.h;.WΫzT v=dB;x$vb oIa~ch%B끸JL4 PeفJ Ml r*> |m7PEcLr[7W +Yd5 #uީUɭ_8S,~`2Z>[B +Ze䇹I4؃M7YZ'C;_;KYjgcXԖ#v|N{𽡿Z`ڌ*2?GC[R4y}Z#0.rמA yI?xD " O6#-SzlHsZ ip#5HM?(g.Pʩ:"7/0;F'HЫ6Q1ȷ Gj6 +-_W-'>2RV~+v7iSFz\Yhgv֡sNԪ!JU;qT4BΉTߚ[GP{%T!P= +6y)^'" +חIn{Wp-Aaev9Ħ%}3Ks/P +!6ڕKǺAzz~>LJNT7ءWɹ Gk +GcoA^l9,tw-{Ф6R u+iwqGr!k*Tv9fJ!PaI_0l<&Hf j㫬PjsG@>Y|t~ ^ŚbJb!M4+ Cbr)1mAX#I\:X$ua_ב?3j.\h`;?hjOQZ8Xס"1yjY'h!(!rM;0 = Faɹ֫.q_EΏxzMhX4Yj +_z~_hH'tdO2:I>ƄO7})y܎W~ +,ai+M ƀe5ӨvBUC쳪9_hgkgI[_(\^A[I\}h 淟syWu*SI S][sI+$47ݤ/<Λ˹6=;|@Ilm|T ihѵ'lGhL +i%ȓdPӥX$XAUeh+=s9ՒiC.z(HNum^@Уie PIEܐ*N@ ]g*s`XL,0,Q bK#3p?j' "2iL]yl+'@[ >BG_,>մϥB]K5PY5è3R#ۤFCOulUt:z<>H||&44jn넮/V *ը)jE5<,̒'v|aJZH !WqA6U_lV-NRy_E!7|g"MA=Krگnbt@uɴfnDdԭ5INM5Kz%C*JF1|T8/~ .AJVk@Bu^ۑ(T˩O%.khZ-r h@pOVp;,Sא\JiQB'Wz5{F>4U$y-w'.wYjt1|zO'cƭ}@G`p֑9rX#`?T; 2Qinrh $l.S~}4%[F{e[N:n\r}z>e^{Շ}$ƗXh VZ$kwzxl\)uRJQk#v>󑚉uFЗ) % Fmzyfńl3jИ&L]1{yƥc&89gqî N:rjOO2msþO`>Q$+\z@>:!MN|`bt^w;wǻxw;wǻxw;wǻxw;wǻxw;wǻ4#!buhj s{$7EȔA9n)cScBSgY)sOsX0g` +fwΞ0G0ȿ;Rbcȓи?~w)7|b8_plE.o/X<{ |O 2' 2d0u@:-ryW3&.r^IkE~{5|HA WP@\,'E8h-Zh>aͿ?^ǏN-&KH_N$1K-Zx0><0цxHa26 0( @e'1Q(# M7UE*"MdC7r7)2\A.0Pk+0݂oO92\P$(4Ɉ/1W0Ef)Y2 `R28ݘ&QEBKuZ8unv`ά-t@Qk j#\eU~ĸ 3.&T:\j* +ln8- f4Ēv=O*hnKMɴfnɀ֕X$3t.8ƈO0Bs!]mc+Z(9hhtbi2l|s~:Sкh}.:XL6 BIl#r(:Շffl ,|s9@)BjqeMMQ8Jb2t7 >R%cAv${FWnE[B9@.Ӫk3tÒq]zQq&bޮb|\4t%>ғQdiӍRJ%cj̒BZk(1~B.d"3Ȝ7:V|?P\+-A >ڀҕ9YLoK̔#|hLV[Ag-:;A +5PBI2Rj N4V-dӦXk,4YfPeى6Evz2>T1djRёH {8m!՝HthCUE+D[y`v i(adm:,$d3AݪdFh3ʆv%ttЮմʡވ_֦hRS(- c[G;Ji=}04'|Hʻi +ƀ+H? BKu :hte5:-RVgF7Mt9l jKGhbANP oTXgNEM.Gt3?XbdIIVNxyUXјe8 +@}b9:O%464J A^q\Pѕ B k ASŰlSЖ@_d51_ZL тut~*-) !z(:Y &|B%TcSԕǧR\xH|)%s2yȌߴvjW&DRBH usA\Fw7ˤy&Ђvn9 |d&$',1311w3!i#ig 0O;JjJ+IT$bQ4A |,P֑3T*kmtF2_1/AD7 ,jJyhIV;v4݋vV +2TSA݉ I;-ѡXeSUIl D Ab'_N/~aAT)dtI"ߓJ@ +ZkJRsصp@E} c|Ǯk| Cu $^/6Ӭ3|ss"5|#o H5gf;>u?CõӮVbNqӅņNb|L?knSo:6Kj89ڕ|($L#Ft{&W!k@FRmj@{`"$G1 +>t<|D/µm.ov 7SdDT |%bD? !@AbLC~Z Ri@()K^ +5hsɏ7HU' uZ1j_Pl;FB! s((Iu0܅APP Gj2Q9Nv@b⣆_Ph!ln61/3A}RP8V& _C`'D:P 1 9?P]4d@qas[%vÛ-42HcNs;?MN?^9,Ut+oUu +ι#SA&|`\z@l9P#L0(a|&hR3fH㠶{C[GeiG;Sg$Ɗ1 1% 2˔#j[Oq](J:]" +b$n|08CMꐵA ?8Lra3u_ Ê)Sj)Xc6*XlLlL)H*H]OK3PfQd|!1Sn$#)IbL@R0Ť-#c/: ?Gj(PJkj`>s I}, I₏qWd~lI7:H*1P-2OH4g$Ctmvd. _?%uui`&H +7I<|nd)Ag)F EebB9F|,-;IgL僠uȨ;H**/.#?P3dk%{\-'m`)uT*-ߟ)V F,"gXE* X{C. + 0hI> + ~?D,>qi^i -U>0ֿmҝbPNO[oIݎ\˩"RơXϤTʖS-,zsZEU[//PD 7jEWםņļ#1A#w|u>^X{ ,mmx +v7.[@}ߧDsYttwvHw# +瘬9g 1Ǹ13n2iflDf.F]P)+Հ)& q\qQ^J&$KK▪B1$8'+U=#\؅hc3E90'xC'F&{@>;qiVy;?-mIO0;Bxˀw ' &axPD +ASK: ۄCe?{\Lp.w^&50xQκG&vGDlԣo{ԙ ASL / "c?A9LrS&9}!]H'|L + L`C R0|An\vTa$P`ExL~q&?]GIEsa#LUƬmds'@~=1K@'B`%(mf8,c?X״ .bWSIjyaOw82 &jP H#q &T0``>p8+~"֋IcF2{_8qzOur0{{6zOrB ⋷1OWELe u񽑞 +nE{@"L c 92p^$mG@MHv)O~akH23cwfLCO:jz~ҁI)EpV A, NsD[ 0F 9Ԧd+ 5iLf%:!W%Ls"X u%ӭXdGYK 0w^Bx޿TH8KӋ}O 6VӘ?li)sp3sMKGQ"Xi%k)K48t3PAc01&'A9 +ԥ1;%5 srq\cCpzʆ F+:(T|)Hk_#:Q8Qۑd&%n *R٘σAaJ;׀ZQuߣ堖jτa A!فx8ߗ'_#ȿN +hyqSI} #؉s\S2Z[w̘O2|Xd䙈RDqR$D|buEo7X + EZzJq`"*؇ل1LN)Vπ|K. _I _" yCuD&zP5:) Wøpue/Kب1ɀRdpNI(J(EHE)9+?R+S8R@)BrvB`bڀR$JCР CY+`2UPc0Ord嬅T|6*gZ03 *nc6ېɅo7 jl̻d:%[>\23z4 j=OF]L`{sT{6(uP%Eb5CäYf;z5A4wIoH&a#J7)xئ@ &K *TJ梀MA?yo?dKɡ;E+ss>/Ä=v~Sa0HYgR#`^.؆L?~N~cg$U*88 + !(Eb3k H8J2db"EĦs&ۍ*L*ELX/ ]>[/sH g9R̉ 1f-2&h+ +Lwa*2`)UԤ`'̂|1xjfd|c Y2ԑ-I Aiut s[2U! >2WDǐ|h!BAzZ <@)>h7 "@.<(:B> zG#'P 8 1SMx%Q%-J5jP%) Am#]!\]HS)B|Ԯe@B-yI$7sM«aJ恳 %~ Q`J+Zс\bB2|g<(ASr/Kqϱ$QH!yS)P9D DjB$~v +MIJ.cRH~Z !ӿ*E (EGȭ1o;wj(/8'H9;7;5(RILRj G_i;<Op~([gCpjPh,NT0}@ ρa~IAUtvmG;F +VAP +j7d,W3!_jvDrApLq8/LB}5in3A)X Kpdj }q. "$?ypoRװ<6|:1?n{(zYyAj9! ]!Oֲ/UgDS LģSH:[ +QƐ5\zL 55嗒KRv+LZ6[(Esy]_H&h3Q-̐%z 䡈ZGP`!J.JU8RęAEZrH] 8Do" 6swG WzZ&t}^'di +0(hrO"l/pu࿠ rhRe/%+}Y&2usLwOH*h# McC +IT)0rXBTN%|Zea. k&!y8ܻdR^'暢B%VlR[uRD`rJ*E.#J7W¤}K &牆5eQ3e qakP292Xz.p +P=iW?SQ#_ln;'~B%H=¤cQFc}_P"6XMY*'"^o`3k`23.I?L9Z<7R`RDqZ$٘աԫs3C>0Ltz(um_JLl6)eds5Hwā7zZFp0;HoWL\6q|&T$B [  ^{\HnW2Oso (Q#AE-}>U+WFLz=|=l$U}J ٍF1dcĜ H 5 SlAXy ~M7䢠^dG#=qJǕ=5@]B_)]GfzAqTTa l5!$9@ϑ=jbo*4H@g/M 9vI&Gj<֗&Br+ +-ITΎ-w^*L]9{:I>!ʎZy^à쨯c@%풥UTQ #(i|`M:1-0g +uQ* +sSåhJ(E:92{>:9`<(^ϖIG/-v6QpPDpMKx⋝gu&I]A]DuT y1Qr#,z0SXL$CzˠE1LXY&sN5!D jP_{ bs8?0Br&k%ׁ# + TnJbf `7ɫCDWTq3@. +}*t'J&{Ke4?(gƆ$:Al"| r;wo)2)-Z$֩qywH<2]ۆ(A=>`E)ԅg9 QLFP\mDT[*?R8xV07@̖yd.W~pZl{5i|$|ZO;/vWjwЇI䏰-~זE(zy#܅0%b~OWg]?nƦ5p>eGsAELۇL\ 0S rQz}1Ɗ{pQrqT@a= 6yfWA4 +R!=ScAzt7{( 7@eϹ!PԆ G +RDWP1/ObFzdp<^C}LP\%lReA03jjZH1c=*$[r&0vp.^_DzE =w)JUP Y 5aﮤR*vPE706S'b@MT^'BAJ0QmPف%t Tċ5$oR/<2QTe^ח>E8;n-S;w{ P\v)s k@݅Ly>uT""=eǸPߖ}cᤷ!Qj}Ӡ19yq (zOQ*;)$6wC#%L'n$K୐Kts~ˈ V8lR5PZ=Q<&/!_=wKKBP3ž!$5>XMT u.yD uk cf: H><7Bj'gߤ^WOG2aQ!r#h"C=CnIhv\r1~.%s,6(w-Ya^ >p1e:] +OЗX3p§CL%z|dJ7,ط]C[([qR? uT̏C[qu>9R{˸Hԧՙq[sB(邏; p?B+vs>|2k?6In)Ik0to纀@0 \@=6<|}1u6E PdG<]M0u\7{ ]6S3hiKl*xunFW-Q#73:&c~ҧ2>[B铆W5'돱ۤlZnńv /AzW=%H|N5WkhRɞR"X .P#g&=^IWn$:ˠ*"s .}6GMl u@ňF5BvPQ$/Sv2 % :Pkk v*| 5ܪ#.=fٻ(aJQl*6LRgMQfV|_wew̸ "5Szs~;Kޭ6 2?19iaYN%`YVŤw25+BqeN]e@}4c!شSv5}Lbٽfw*1i_7AWl%QfQ#5ˏC<&}6CrC ($z_)5&N]A-i1q:șkS%zCD&f}a)o4 pmu{J˪ϻ}iTIQ*,BKPMj؅}VW:r6Y]zJ -Ihі`ϞCv8' >[\v e7{$Oj_XItF6_U֮]opw[X!uϘՈєgieBaDrQ*˩kgɃrs6U[TJ:z5%s][֬Zqf+ئj-Q&fӪu}\ + jPR>Q];Y=̍Cv}!}1W=~qHrHn5i9r=܃&)s]9fF qͩ_3 ޝ5NhftkBrC, q#G8S%jsVh%h +U4<3)jZn8[.*e6Ӳ8QOiĥwqޏw"&Pn"yPIj$.ܩ)!,H]C O â?K{Ľ헩//lG7盋0`o׽C-7}5>-/d5>J_s;I km/NI4䷫-rJykm^%o".TnvSttfAXdJV>rLJ֦nH%/^݀zE<镋ߴvbv˙=Y%ryӻ-<ɾ>|}1ɂ-8!k),k}%)/>`1Tbv*.86{*4Xp86YJog4?)9,2:Lkm-~i}u!w[~#gruJ~fwg>fNlN ~-}Q{D{b&a/[tFi>D_/jOx+Y͖}ݽj9 x4/Ǹ+)nޔz,Z x\xu뛾gz3Eu +m$3(o +l̊ \f[d'}^uDvA"l5%XJ49.WcBU+D1UE9P,NOE~O_:ğ꼹=ؾwi_q̰)~1!%݌~s4p?ڼ}OTߊ{ٿO}'ҧ.{QJ[7K/_76,+(U8W]o<#{Y}B4͊yݾGcQY^Ii~IL:}/DW oJ열z;J=z_o¢?̩_De_2>^y>UYu<~jg>b^vTLUtx*}>|OeY};uffw*,؇-R9^6YIK_>n>(yjInH=8r/ee$Օ>܉?|-@}=/$}^Ҧ2OIq5ǜ{|kt6|Eᖛq'Sbǜ8U}93¬/7rUrDwCH$qJM'}PcqWzA9?mQ?`6в%7̢:g_Ƚm" vFy dzvC X)HȏfXZ8r+L}jf^׸[j$ߧϚz_]k0jZ]dFa{] 6nY^ӛ@ˮajˆMf9-r +O}q1)Rv_GvQiol] 73;2W6RuZ .*JAhJѳo۪ÝDZf!:Wi{=elaQQ'3MDO;i]doIe_u*יdm6C(4~hSztrkT\[o8ӍIVd_ʂşZ|%ߚ}v>>)PsVEϣa&d1f78ߧ#z ,Xؕ'1^L|kMYzHآŕ#ߩW?H_65++v9wY2~) +-\EY!{zOɪ|xYOӬ8l}|G_{_|bKg_Srڢ]K]Pҥˑ!uNaU!7Cz/zG-q6*rO׃P˝)=>볐=;"{YwBiAn#]o4|6KGbO5^I?r?LCJ]}XgO}m@ghzsjjsevEUցցrࢢ !9.^'Rz_J|,;Q5>߄naՏ&lW-vu7ۛ< U[[l]6 &~$yUG /z+{߆V$^N>ݘqeoYw׾gQ:iXq>&8:Uu1&(&iŅl|]"RK\"K]#<}yIpU^C|O"#a)}xʼͼϢ0T(OJєf6[ԟ򋥬÷'٩2,٢ L|0vmqDPz>1H s#{ +C_kvfG6DU;GGUşhHj\݉uksvQaםrGx^\{Q1NcXt{֬p&_qk8娴ZZZZyFXEl>ޥޑnAA Q>L{k^(ɿ+632=¾&WBBPC}NoyC׼IGo'VeUghf՞ՕڊKKNU>.FChjsݪ uu;DѿttM{qT?G}d8"4ڷrTl[xz{ȓj"5fɻXv> u>K/,O5d$ǒNԞ{F?^~a;]%*݊yf6m|v/ڥ6YMEWQƷ F>g$L4vHlذƴw pjtP[tLkU0_ӆA/e=Xg yKӯ)[ƒѰ7,2o6ښWVxjP^z)>5ڶ>:YY+wjZ$5.Sui Nq7"u +>Y4IJ3?Ҫ#;lcBOwsUH(L[Μ-1gj]=k|ğovjҨ7ҿ׿ (z~@n!!h~LK2B0nymH js]Opշ9l^so\"nuKؓNa#Sջ';ǰBL쳊mWu5>Q?:67#9F4z\g]g(^'^ ТM׳xu#q:N(2?](Ev[v ;ZU zvBUV5Fj 'hemv Miur,M}y)k|\|<ȋ;ψwwyuhqQlPW\[Y7DzD2爗ؿ=lt:Qw0cLY<FS2fKt jsJ/(]lc h&k:8W VA"I+\h5ylV +^,j +~yۻ̷QoB:?yPY}7޵<0.g-a1.FIyB}pTUڦs R?z\xYp}MxCǻSީe}Y z-zQ5 |UhyHe|)h Fh$ᯔd8͟Vm4E;̃??K1ۘ>tw$ V߃nF]}v[ +^Rqس7NaB;$Fy46;N}iIg#mI!Fw7h]j3hMh +Zb1Ҳ8qu[d fh,!h0yץ!?3z$+E1KQu_&)p {'<,+,2+ 8-r7%\E\SdԫFE68EB/v8~xmR /xY &܁1hؠ X4Ta,j +6a9Za/Y1UЇF?}>iOkљyN!o3߹c!ؽ?ڢqGI@ 7w9EznVXSL@HSo]m7@*5 '(~&Ae5mYݿ{~|8Խh.OykeӳЃMY竢#^X$aKٯ#^;}_(91>T=+636y-FVhޡoF?wȟlh\#R|.9pJ½G۪ȃ-YaΡVY`]jh˞0/烆͚>׿z;3ߡ}9u)M-|m9tk ~t/Tyjd%Wƽw{X[5S\UC䫷Α>#DxF5j24e$r;}kiğ{:'qLY$BKϡuAYy}u7/%<#ky.q%yIŅN ]sÓ=JCr-=,-loǭ@b^٢u xCEeOAYhܠx&a4hҐhh<4ar4mnTm9zFsĸ%  ΥAҏžf}/4a$F&}k~}XcsZ7F~i|XUO) /+^9Ii4m:4c4}&4e#:q{]U>1\kCJKcRKķŎKxkV,_Z?g!s5 ɊfxkҰyhxmk>5Mk,hN-b:|-)j@7!!oBcUc# "Z:J[s8E zo>nƿo7&+*!sf`{?G?SPFJ#cn*7ףSws)4oap5h:j6h-I-fi +ǩ?o.Ls ~r|3ĚJFcP[r!%_^T/>}տG8RR<"ۜ'+L뛃&}#/ES'c?O@*+М5GNhQ(VXRY=j-~fqQYs)Ao=w+{QV>CMЧjFĒJ"PgWH{6|wk>kN'dşҸUdfibG3V~ZbbfCJ34mނϜZ{1[eFz٫'$6bQ06X^e]cBBgSR[txy*}S8?`1z RIQPGgkb_NcF39gMy64s4KI)5F1hڃh Z)JB(u-&qGOR~ؙϯEZxz xVZkg}/Z]MEK5Ft^r$AYg x[fx`ZmlD ,/gN\/yMS94g-8VL4Zڠћ34zy5N~ʸ?uxo|&#roУɯ.E'}jEWasuhrIm`OMPl{^cp\P1$6GJ"!0QQ M +GSۃzlV{/<_-oӷuO1as ]:A#_0ğ2)yp>6 pr;G<{Z\t!}x_SB{KI#;9X XiL7xՎnu-ecv>W淩7NT:Ƞ4ba?\eT(`XW&NQƌ 5܉`z"2v5CM|nмET {~}ZHi Z$ZIyEJѿj춫,x ;LP=Jm>zmv;&iD}U_n_xsܗ7N^۷hAxb?LE%Ͼoa$JSɃܓnQAi^)w2*Mե8iX-IE,3G6A m +Z Z ZFkŋrU1R|m:hfۂ;S>WԫM y wG. +}}as3~]ر\:ް71.Ao!;Ws*]v?x!TY 2QC\{[E`|Ym{fB*]*k3I棙3UтuhQrGi{H!&j&|ϒOO_Lg6?~iu>+nS?:BA>',e4ޔiu>r=f)[o"v!l5ҬZ}-5IALK߽FpKhWC6yݒ+a۴3O5Kw6[4JuZа20JPIKWȡa~oy]k7 oܗ Ff4mBzZ>F*^ yFb,=<+^m(;z?/wtJ 6Pc'9 +x=qGWdorO 2c=vP~N†lmH_5^XrGϙf]EeiW>jC~٣Ws9voqXJ6sރ4^UΫ妟SRw/\on7^I]n^Nbz{ɦdĽ9>2^qYyuWQrZ' MM?me{=ۿR& N)ꛊ%?H$}YLlV7#ss¤FZL48>z)4gzI>}Пv9Wqm:hmR蜡_Y~|@Vm"j\o;Ss~m7)[LZ]&+ntrmT} }e3b,wAlz1}Jp{,<-]Kej3w{ "ǘiGOR\t6FƼC8U*jP BsOzcH_`/_~Z@NLg0<9:>3&U᭿m10D"S9(s=F[$-Gm|02sf-gmp-wnDTtzɫC̓6N>3g#K0KVئ%Nf_e;478㌤.* +ݯzt~>q;WP\4qTM2o;9Dp0i<; +zq* j&QMRl2k^\̄m*h̙H[9vrÔgsbwh1o[J'BD*(}!}ޘh>4B6uaSCs/KO֜sΙSꤰZ]{i[/T\BSƨI1mABA%)&9]~Q֏jp_o~:^-o`7z ^ qF'MWAF;7nDzF{n({i49=ki?u"sιqڧ3G7>硗OP[9gLݭo 񚴐f5sV$:a7b$Ϊ3SE'FIb$?n?Ec(pݒU`(A {m}X&`"㟽?%\Vi~INL]Kcb[Z)Z)yW}Zp7mAJ*RQeoPS{x ou ,]#2W /A7j"2ԗG:w hш+h!m;H"T8e75y%l5Xq䮶X)? A*YS9v((p u.rhѕ?e; y6N g._K͠]E^w$լ7CW5Әi}FWn6X76-̴o߷{\n1$f:6n^gr!j6n\Aꪛժ;px fyMYTUtV^D|Zid7Lf.`; 9$d.b;:ΡZ&f.ySuzY MSQMxNA46^St{,sc,圦,<+.lǵ׸ZF= svDzI MyߓFғ +K!"MC +[4[0zek1 [91X~w:qJn:X]RMk 3 *d¬NMb +9uO zy0scuWcO֧')uϖ3/i0mu;ߝE}d)z>a[OҕWЦ җ)g L(9h;lyӪ?!ͭmPߘ!6d.K% ZAE~s,ݒr+>i?2* d9eMr*J]T*AF:qk.huH(PV%9-{wdOZpUk,&p{)k>ez竖Lܚ+p1Kx!v(}3 x6T+g!ug,=y{.^msIUL\tv3Ϭ%b"1bYqc5d&`v(l++`1w>rhᕦ tT\V*f+ֽuۋKis fS^yf5u08&n2g 0+h3H[ÜSi07rfľsl ?1n[ ϭ0WY;##Sdoc<1 ˨LRNz>{1٩Em0bu +9 QR6Q^ux,|3z´з+)_맭=Ɖۏ`|.eiPWwLBQػՂ-&׿ EO1@F+&EB[WEvBFhn0>3吞vkz&:d"hìEҖ +jя|%7S5`f7uy9`$Y&e2qN3`&zHS#g7I]TG-*<FTn{(v N\'{m*~ҲWx7"&M{=6k?D|RAOwɞc?<u ƔyC yHg ĉeͲbˉY2!!!!B”@f ZJ--嶥 J>[kAGl$#,^kfY#UVx5U)U3nBH M{1=oF5C +W%k=RW>zݞK~}ῦ:p,zrEg +>c2w7poW{כe}kqhhNT_0e'{m}6@?w9p|a_+.󧷞kգbWj| A}RJ-Mm[/Q*-;%&້'UY|OfYk]99)؜y`.QiNyZv}7L:xw1()KےcsKvsjemÛ|+?07o6?7zk?܎8 ~Y~S7xkM3LKVy[*zo\ΤwHr%;.yon<[|Bh8ߪ=z6}ƥO[S3Jv UoBOx/Osl8'9Si\ x_fx~xShG?yo'~{w俦y-5.߽}lpëW#ֆo#c?d`RN!\ +g/zB%l|RFS-O?|wS0<1Gg4 n}N6l +dz7vtpދqx^Z+}ߧxǴ_k0;)c-XC'#:#xفx&<C߻Ρh|yk}g6>]yB\Wky\VЙ }S8̵ܑy'y~\\h<Ǜ|_w3BM +fЕ2 KwE{i>5ybvhb`N#:r\9x9\`+<=$o]|89'7<g~;_n9w%'˛͟l=z":׿ ` +Z^gyVp _-U)żk\Ըͫ?qӧ fkK淡ckYpaNyUB<߽Pr龻6 F\\ !Hrx瑱~kx+wa=qή_Ȉ/xˋLc(xԅ2y˟y0FѸvB9xi|`>z=gq}?gxa2aDӃk>5ᕫwe0&C 194ɕihB0s7.\2qѪS}p[q휹UnQUwGۺxDhӗaqOX߹i}Ua K1tE'c.~*ʥ;rMhq]ORv)̿ΈoL_ƂI(?M}?t;+J"~!i|_njkn8fnՍ+U3!&Nd7Zz7ϝ9yV}+֪@kH=ն'Tʝhh%C?г}oSn7}7EGf0/Tz 73U޿|?`{G$6 }ƗB;qg^do v?x' +tсuK|v]8Ɉٳ60O2axB+\{b.!CK d홡7y/A\ܡ/]h9s!nZm,1\? TwG+|{Oo3~΄ۈ9V6>Xp;ae uo3t䀘gwܹp8X{R̙ͻkAr^h#"&sau8  aXcmg/?\Dy+󃛟[0obnͭooW#f'bE^q{=-/L!wmmy_ )|Ocx3 +lI%;>ğv&U?yunJVv쪆#^,Wжo@ ?uzc#dw]]Q7 +qgzĀk|䌙 U `WBlN_,q2$J_[tr( cliKv_x(Ք|7'FZy*O{غ O/ +l\uRxri8g^1yhx;.X6>VsԪ'R{Bs!;VK2vnCG~$Zs9"r裺?SB3ϠuOߵpj(~{o?<s2ևmp[<^ub'b^`{rD.i^ռK1C=2lV0#M̷1߰/v?yߑq'~29s<~0yUKӳ=1ڗO0w# +vЫ~75gs}zuc0 :ƿԪCp3.׿pE5=1fy|RxSƐ cSCmI"f:܆Wot8ՔSB V~5[}v 5ҿ(M/^M>?P>4߽`kyMࣚiݿT5՘.jӷ'yVȟi9q~UM,/[|Mgy;;c; Da1!H"f uy(1b`¦o2&-gW0["?-τϧ\h_1u׽g YP>~٫ywmS}YG"];N +vbN#M+^ִ1j'.|hk s-',ey-O}|{xׇ]h^EM[t#WK16F8Ю-w#|67G}\3knSrqpzs#짳~>rqcL@ aAG"]k +_^8s7?x5zk|[N.q◄׾pEx͋WE_sס qlyˇ?'Ӛ|937 GWvț29.A#0"qcuCB; Ňwd֝I98شә-?9w13y>{p{1&#?csCL7&x֦w>lo}MpAKYw!sOw兩;'3^5cՆ w3:מoO@HYwm=Rp0 +Nyɬ93 Xż܄3G>m|q?1`(O[181h8nJ?)f4bPNyKF))a~nĀX,F}F6x{[ugrF.zFۿ ~k?ۧέpq(W%9u^4 @6Uc)/03=;+SCJxCcx#-Ě2jo?^rlSpӂ |O=q||b'6[3|נ<^>Bx0n30ǣϗͣGr_l?Mo~WG]}`+hq?wo#к7o?k 1qrMW}$bELHpO|=ͽ஑Dx5ݖq"#z:+fۆݗx:R\9~͂{>Aգ"Uac?x廙?ۚ:f4}<%tp-B{~\ϡ["^bg!^2fY쬵vV3w&NFҼoĹ9#]Aun'/#</xڎPS{ ʷ,y<,֭1lw%&>5ڴ'-^.by W?<xTl'w@5zdJD\=PU}(6|'\57> cG\ϞT!&vtF`OY%CMc]篪PoRk^q9ax\; ,M/xcVKc;k GFʏY0Q?vLxMYD; Fcsd-5"]C]FkkG7&w /y^.Ĩ4q}*Mҿ- 5O_\ +<".߀敏^Ҵh;{v^ز-7Mc󋟆as'LY5DY]DY+w!vIp.FRÃsu6vV'#vZ ;Ɋ2o @l}^Ď_7'A,%`~<P΅'y}m +}[߼CL K<]Y;V&|x)^䅾o}9w? ϗ?(N>m=nf1yS9sUyCwoh0~zq qmąm߾*{ƪY3ė>~Ȗ#/`CO Lg;ay+3 =UagaDi;k}Z3agol:mGm+mZȃ/в~-oM.|> +!. G&yAzjݿ1i=ٷ= 1i- P,υ|w\x1;7 .iOزdù x܈>XbY _Rv֧7Y#_݁g1> ,5W0o|v/!+ݷ\d+Ց{]_>Bo@pq\7iZx-N@1rh;ˆǵM׮zBa,?/~2o!}pn5sG,5A>zA$},a8'%{B\~]^܋2 l< +,Z~'6m'ٶh7,zȦMg`|۴ ur׮l6Aƽ:?tBoSꤹy=KkZ2`g?u(ܗ!{ ^׷"vVࡗ'; _\ue5w'vbz0>7_ZagmoZR5A#f '/ߛ_p +špx\d;bµ=ƳWA|~&|?4#| Sd[eO^ozqM#'>hmo>O;AEƖC? hyґ35gTӒ-c~Ur7s K/x莹77U!# kF8+F5u bwaZRmxJ|DŽ֙*/S+GZ}:ac)q?0ޓ -%}ׯ ؠ_a+p0NuL1޸4"izN $OnlUaԬqa|!aN vV`xuIh[,{>V1~ol_6|!VZx q˃vW QԓzdݳWi łCkߨ cL ,f6¸/@ q`A,[¯|Y޽N3vy-7Y}fO<ѷ~t>7S 6.s)%8<Wy׏'8Ӽp|j° q0~p7yNA?"K@Ʉكk;&˛O}_Ky >[_ Q{]?q]dx:K{֟M~=]Դn@vX>Dc< w G +TB:oSE $V=3 ɽ_Z6ёG0bi? W1 1F6^ڃ\B|3QPF/]? +hM0EAhl#4,vex'\1*|"+ يl8ty'7޽:sXK vl,y{\G8W0K@vkaA|~Ax؏wP +=u'?ⳅl|οm-c1NB:$}z:奫+&"!E>U=]z5a]ItsWzzַ&^$O5s79#8|q>8|q>8|q>8|q>8s?MKMfcFn3j\L( ѮL,=f LIg[3T2qM"Z`vwT$hO,´-\]kfL _'n{7'&6Ģ xbOǓ@F11egݬ( +.Y7'reND +aгEԳ`(Q13Ju +7;HAMIww-?ɬZ椒sd&_]ӧĀS/ N dE?z|3$w5 +zN-Fs{v$c540םu3.'ұ$&Lf?2=ZgMpM&@@w.&[g2ڡ݈ 6)1T3&ѹ X n%\<-fm)vIpo)T.Y\o,(A`mA,>Axތo(`3yE&Nؐq:>dF.1٘9*W4Ltef9݌X4]]ݱd ;ګXXIٝ6ĊfX+\,棾 l<6VKk,KK'՝nHG;[wwV + ƕÑP Н9C8D4,elVfپ7U)&9̍\J 6^z z<;CVe{JtL32$ZS8s6JLIbˊ߼GNWX '7]|&t-mc\7zG≨7inc8mSDj~ Nt4aj¡RMXunr +p^{l_V9OiJI6 +I'P_T'{*,HH2a.´Ry>:wW4k%Puh2KxbXⶦ쒹/Yf65ՙ:bhg%6e|- oڸtP*btDcTT`3oz"znp+K;T!+ϕJӇ6X;FJcD<Bb)-%Ēh.VDV\ ?3)=U =qp.WBEmkgmLl'Zlb*JL,e2kaqS42S`6vX ㉄2IdX5d$VK>m'lVa9rNTLrN. K6R.Vѥwȟ]t* KŻuvĶߕsvu]sv9]:gT)f9Tqsvip+K;T!8:t.`”1BģXv:ؾ)gDv:sܻ驸9  \kfLL-6ʆd Wlh#ceU%rb jQrԢ_pԢ844Pgq+\+p;JQGO):*:JQR$haky`%q+qՙi%4ٙi:K™iLxL:;ZT ~?@ ϭ*m4y!J*8%%E3_p.W0 !M%!zK,yo% *CVА~v;AܝUEgUYULz*TEgiX,9dpSSXfr:69&:9cׅݙ~sTQ\U*X9Zyjj:4 :ݠU]v,59/k5}^SǴ:Y /Y6v^FtV(g%YrV(g%Y+Q/KтUiuVg2ʽ;~ym(,pQ)2'Dzq^Q+~gl368rϔm- +I<3N3VYN3s8<(l αɃ +ɶc9.mLΦMs;I 32l,88g>xцrލs9y71TRT69|Gţӽ1*Eۻb>X=m_*8>co'B2غu +O Si>stream +Q.JQ;|.J\; ߪ(OkԎS\cq;i8x7TaG.W.nQB6D Z{,NG[c6on)'N?L/4hȋxGM%@:]*>k[,W,E ':V8ٳ:[}7=J3O,K*/)Ƚ|E qL[ڙJ %Dd~H_qḶOࠕb*Ŧvbf" -"CpQG _ pB%#|Eܚ[n>TaĜJ4Ͷw*,'♹@!cM+&ȱɃ +ɶc9.m1C$W2[Q0IǴ18B-qk+ĸڠ1 H8֭"+Yv7+ܢ+.cY%yWX\P$[RUD-*7E»E8(VjEIF1K[U8r-P87ǺFeZoʢe` /W@R<֩Uς>b`phTk$B_*\5UT.G +_Qꆘ"rV/"e l4c4Rg+rT%"0NR=(;&Qqn%& Wʡ8 y;ZUϺyY IR`8iҠ zM05 Az ++bG­<=rʪ: (!O 1/fif(6xkW.r gH.Qi)IaђU.V6fb_k)MA۸BNqT.ORrtVƵ`^&YIz|H.EPƵop\KI:p\K5Tҥr{P +R,o~"= IRTR :\xMSҀE4_AtQD*k~ސ$KAh|LjIhtgda'B4?[AAEf$/ ,1MdelH7Ci=( r,ܳL׮SRDMI\voӃq-b~U vuetR!K)"D+'p2 hB{KԪzq-3Dy3Yf [ƌRaFzW(ҝɤ- ^׍BjN־B6WƸ U0,s +}X+tR#Qᅬ;.)\3VC_CE+rd/u棵 \U.{zNS٥VYxм:PBwDD!|[L^g84TF&Ye 9eG˥ xNVbF]xiԃjỴMDk~:'PW15e>N&4N"5'4 +Y?2Б_=/q0u)>W`4L)PL ;rVWkQFO Z+F>ahB* ˭}"(GM("(*湅FQQQl{mG <86kg\t s4(9K_iͩsIc ]HÐ.xMւGfVyMZ +i5F-35Y8CkHEeU,dH4ٟ-^5Z+ۍ[5:KI/PjbZeZRVoEr/50O9]бqSx,֯ISYd%VgE0xnS0EAfa3*'zVv(6A;et lʂ"{wôs XPQyxCCar[@)AdO-]xus-I.rk />ٿR8!逫,6\=UQ6@7K,C](b@E$Ee"XeT\ 0vd#ّ+sL(52,/lrԬ‚Rp2/We띒`H$>U,s:njΧjGcDz}9uEcgN?ZJwʌ}~Q53orG5cUu[Eb^q:Csa=c)z2}RY}̲.ߌGs/ߋBst~e!Ò){$ WJ>wF)K3ihы6FQXs(4z"ĊE6Υw(F/g\gWћUR#㯶ɡ=:CP߄M߄&jc7!(5fl*̊{zg<}ěy @[XA!8 +/MʊY(u`sf֝e D#k1M ʚ9KϺj: lqM6#HyЫ =Ž> >. +-- FR~ ŕԣ,cwk u%lK-x/gqkoǏ."'eIՒ[/VBDڇe:#w\#"tIVenSD<ڳRA_YDUlAуlEQooi+x@2jwBx)5 L6uM4ZS66l0Hº%^…5^e\[3sS#6paZjf-fO'k>=w|c*@TR^L%; q 0*4&M[LE&:hD,J@#JvIٱnV%9m +Pj2yS Jr[FŮp3LG$F-ݢD>aYV~[? ])ǢSq[VS3jݓfrz:ɳpw0>}>A@6S}5]-^޽lY m5sj \lLo.\djTqK~zPLzg͛Ֆ܍뺵R?˜jβ5ЮUYM{%Z\q-!7quэ;,ʑ2]=b2ڷgGf;ri),ouҋcm-hwu媒[j[}lJ2>S_÷YWD dRA |M@',D_= +)EPE*V YbFXA0:KAL'rnQIe5/ ki0(Tk>hTɷYB-$3#H6e7t$du"j cEkdBo[S%$ʸ-$Yb9D_n3[ar72fkϓ&jn$6WVƬOy@_+L-*UnuDm.[$ fz IHB#VͪMi- +lU&Kf,zV)`4pZz)J0eEelV),"L+57%b"GD[YMdnh" !zKM&g!L+xEչ)%$!0n39m8^L!I 1+"ސFI͵ɠe^R̓&DT4bSZDDx jIl,92%wKjVm%ҲҐEfC-3iɋArl6'%Mx + N52VqX*@jYIxϑ l5['Vl%ҲҐCfC-3iɉAUl6D'#VZ4be_,xJAaqj Vu Af!,-+;+ Y4k6d`>:ifZgb4k\˓aGtR)rϨKW< %2VѠYl9֬[E +l%9[d9#f֫)zA)f0k ps3h&e +Aw32 ,g8vf*Et'fL_ͨ$XDeEgfՆ[Dg4"9eIZ O{gA23"{iH,B3/dgFƵEb&)+0 2j56l<  ɴ^ڐVosi$/4߆dMYe8\pȌJkLRVXej?"+qY)YUO$eR˵!Ru,2H[cG-,2<,a,$ma^xuͳH,e0mԚ6[.u'8>{ߌ!rT%\6\Mg7oBvbY[6?Ǫoc茾,sl7Y4kV *pէ0ׁ@)Ȏ ]pw}۸F.eG+ӋlghSHTcR)`E% } *ԋlc/ "jIAdد n"*6\v0ʥ2"7\ҶQ! /BIvv0;y=%"DEzm,w{KD.iwzm\jO+.m ~E󷠐6 +H_Yڝʥ?*PQa]\jTRNRKث* ~e\h+Z6"(WfV.,d(C %liY.I\j]P~QKry{^Ԣw}/* LajgSf[,^13mYʥ9-TAV@j˸ΙjgNʸ3Ϝ+в~tKG+ |\fs\6[KΕp)[m9W%mYqNs/MQNaΕpIq8W%Y<^]r+Kr v9G¥mY qus\]rs[¾^%Αm {{Y7G%e}Ǘ/g92-a 06`i [R*i Y7G%f][vsZŽajiom~1 1xɫ8BC?8-pnH&KQC2O<Hjnuu? ,w9jtdXaܖW]5rVK"F.nSVvRNPǶd)#i4皻[s֛yō -W& vߵ5 K kk0muWp7BUN5zx\hո(-2mH ռJuu_ [@ń&:& ӿRT5CfTbmy R*n cvu֎gtɲ&(*B٠ꫡϣ@gj;Pyxv? Y{#gSKO[N49,#W/[Ҡꕡwӧé C" T^(}wq U_mN}JNL C9ƪ~d. ԏK3`yx~_X{ImT>hڄJF PZ}hU20k)掺>زnU$t v:4N 7#|x)%3,E2m Pf{- *I, 7/p3J\WլVpR UkHdVU79TI|QQz?wc{7^qʺ^+j䪭RmnCd)* bdn^\A'`UFBJZAd"i'Ym]6v[yZuAH3%^{tN˒8Y۹+PNռ8ȒsV?Kx9"sهέa%tKd,ml$d TgkӮܢwZpq_Q=ɻ&eU{ѵuÃjl(hx +2K0i!3 vTBe!.,& GOqQBA{ej&(,}Ah Zs̛檵uޙS]\[DoWà0KP +K>$Y5,?+K&GZVvs`#9< <(V+7CjyęXb霭$O LpN,!,I.UhIW#J.+˸v+Mm>Jc66(bz#hIeEF Mx:f) ]e2eAcK<)8r1oQcB%qiNeKQ Ģ%@# 6 + +?OA9KkҞ>;iX ˊNcw; ea(R"A[D ; Z!+U@KP +>7e]7XJųC,׼JhZy&abdղ20 I7\,G^S/)%RV5R,Ic;>i~#y]P@ӁN@!'= +Hj#kOq-9}:x5/BeXp[Mity!gTu jn}۵ u\0uQ)nN5ah5- gI TS"t. kAE< a%P̨di40 ^(xdzL 5Z-uz/sC8bJ4%>IVփ$Z=Ìk}=XE6@ᒟq*@u0W䌬 _k&ys-XXF>DZ0SD +60"a5iGHfmZ Y +'Kjp"C̖Ttn>Eѫ.qlfiQɨ̙KŠIéU[:Gs!yeHcM>9?!"2 f,ӯqx^ڲ0,x^ެ XbuŊeVy,atQqi> 2JkSxb6. t޶ܶƕ#h>nK {w7%D{6:w:B4O'q=Pm>]kdk,(*5vQIkņ >ITzhVCkxl]YL+J5H҅jd-h]_G}0բqm^ y g_' WQ""rKJj^_m7OGr=XΈ\C2gZGsn}:Grh8crO$kK?IճxDx2׸B~b1՛?ι8wH.QOd»xLdrч@ +QпY%>xaÙcpSQ{UX>ZP>G\1M)eԨoZ!iѯڍ4\66h-Scɮ1\-u3Ew 876lgcw[_6X]V2怚WER`kWX\6^26D6L]ic6?BXEUdz%* +QD yrYIx8SDIOLߌL< +v7lD,v%M0g-f)(3miHUPIܷ-{TZһ5kXfKURC3Q3(dq|N:kZ{;M1)Q폯tAl915ՙhm0gU 3Z`;A<&c Z9EbX^bxdeUCr Um*R^q˜cyǁeP#Q[U +<[&KR@2 +aIge=s> `=T9g~xs̏c~Xv̏p,+ahSUQU$TrrXN#35$:ű.ĺt[g1Ys]nVY;NN>殰T:Kw ddf&t0vǖ +ۘ^5fJ}úY|1L]?M$ ԬLlJp9<09d /3}2Jp) d<#pCպNA'h4k;{ٲhעbjki7xĺmȞOu3XEԧ"莹*P`D#X^X +Xg))Hmeƹ:># %Rye2*s䬒s PVq̱ +Z(L#:҃m&磱' +-jHҕ$D*Im9F +R[e o.e5ҷ0a(RVDATX1tfVX 2'}KYYGsHSy1)ń@We}Ŝ#>hnȜt!n+yH"(d^?"fQ5v1[lw z>n9rCv܉dTj-*&Ve0Ůa!ݬFy*ZFgI=8gǙ~ {C> +mӮ1ƙHt,ɺ؟+{q欷8Fv*jS1m _2W,A jg-FP +B&&Ψ$5̓k &Z* 8mFjyN]I'm~ElNIs``2& 1AL4afg>~[$!lvgVWwuvU`d@~gƀjR8aέXlnp'd~țy[8a,N~Xi5j\oy=i. 躪P8d2A|63 !Gh0dK]-:阴曢"Z֝m f./@wxn1\ot<;VR;V]YÞ4C*(,-%}z^:ĘR;Ę cwڦGOyDDNʿӡ`ʬˋƨ;X[o^ޑļ!3$9h)0횫5ʩ0ȝݛU:Y-]ǽ9Zl{{|]MpORJ>?)Cز;^㈽= ͗^dNqŊhqo¿2'Wz-:6cC : $[daht?oa:. {Aڲ,hu&.DUWN7Ej?-64UM#kل3N7"|S-lR}4,g!h÷d6/éuf+W띛^5#+j}5qG '<>9;Qϧ.`?!C:eL_qq@QPU}/B ! qBN~q+A2D`Adqe_)tK=]=Bt(B%V,_gDC4* ߄TP$Ņ,$%Y  stP~pMwɄ0 + ;0:l9C.4I/}a)p|C#l.GIE ?/1x' U%0Djel#ÇD(h2eh,3ȨߍYqьWA1H(Fc( +/ XS*b@[@hW +0H }q1`<">F$0Z߁$( Hi2H<aNK,+CxD(E JcIA ц N aP1DP!ޕ;IRiR, 1DR4gAL ) "$ F Rd?KH0BvEtM GjiE4a($J?RfAGqfL3 <z) AaT@UhƢW_2ZS + ,Q0*OIL0|yPQ~@bB>&(0)eA^0Y?T z yY& 0$-u/b\oEN HD.#؜.ǖX*PT0hfƳ Q84>3+Oc?.ɠQRF`%Q; !&I&$-Z16ab҄ gx *' j(  )(W@#aQfGLP)P4P) x]@T?8_V`)3iL):B݃  +AiwP0rQ A70H!, +%FGأKoH  +"% HT|m +Nq}@{LȂI+U@!x勺AUÈ; +A`8OZ + 梦`LahdΈ9B0'Bͣ &.*YtL!;* +Y1C`:R\~\!1OrX}X.6}=(5HpUFKSH`#R* $f@[{N`$!~Cj%@|)+5* +aa +%]+y.8$<*o.1? k(,R#v6Cjv_L7&mwv"-wo]׬|oV0TU/|wMwd HT}1„̆?Be +cd9| +g\ $&c-C6 +"j +ma[ +m 2/փ̂ +b#4_0HAI?AGnRihA(/! BDXDdked !ZB"eAͣQ"IV%n3 O0@O>z'_BE]8pg"P] i]b8C4'pnP t1f.zNCyXBF T]`f;&Y"aD8^=+6׻H/E~.EV(xn@~HZIyN%AF%E7 h8Ҿg<J1=n*Y$c4$Ql k'A0=HB [z!XhD8,a $e)lbw/d(LZ:%oaB  +$b4Td"DDaAŠ2' G62OC".>t |V[I7g"i~t:毥Jm]t3i?$5Υ#'jsF4]' IhzN{L$L1J(~R)P1!0pPa\,yY~O%Ⱥ;[N9d4P:5,V^ @(؂&"ۋ>dGgٝuN%}tNڵ-Flq{Rh[Lsjά؀ o`/6vRtl?o,ֲb5j m-' i߂Dz nnF +Э C<|?)@E@sx/?F`vlg\r36(=Gmw:3m]jk70?YbQ 'gэ)"ieGVA!H;vFSN"j`៿8fܦ;ngLǃ vRZd!|I 4ج u.֠kr$Y xv7E 2Z/%f۩xf?Yl702B@s.$4HG ! vߣmW{chSXhSpIjLbƛno, v]6;nȖv'h./Ƕ]j8+`]9XOj7zs!ݙϛDpEpٽBW(K7 D^.6:+0`9)@a` 2jpn!$8٢X*r-$(#}'始^wZZ0IPcѸ?idmѩ4|[u29VANjȐІߘw0)WY +gSVaY"Ek7J"O.nyEcbP__sZW_&"ZKQĆc^;CA6!ʎ_T>?qj(-zOCe IvQٝuеQ{<,\ox?Cps9= +E$NNs$`\Nz-$ +^ӝNzkB^U[ād-!E5^u.r:#;K|%ō1s CDiy)2ԉQ6qtw_B &J-q( n45ؾa3Fb7NƲM}3e1ttNvӵwJt(*|,Og3 uQ_ٿsP&Q^x|YcCC),+ŅDdx:^B.#oP% 5éyp; XbjuF_uC̑}!MsQNѝA|:R-Ψ@&'[6~E(pR)])aԕ^T1Ɇ16JODx]4b>8x>ΊiOzѷy2J>çӫ'.{y)`L7 RiŊ>J@_}^%/)G~^ؠ<ĭvn4́rYבߐFT9.g}6m@Pq$xן^s~CCi?a3FR4h]('/@,}.葉95'.kCGPN'CZF7 +H"iid8 F6#iE"-پ5{E-%a&)F5C:kcƩH1e;Fڍ(mXKiESe $%#f|Ǥbrk|ꯊzD T"{en*AT\lpȪًvzXTCN7n@EU!)iEyJMah!(M|ĵ@өvgSB9)w뚞֎"l+spHH|eй1iuٞjm",quGM%kE߄t[IRfC,tq F|r)H`aQh%Kx_ȷC>NȠwVl7n!kuZ-vv;t);9Μi Y?Ҡ[XvI}R {Dw7̺zӟ|VhQSw?uYQ GH>2paGi7^ @+/юVC Sccr+7Xw>|io|5 +"!h!k_N*FGzی%^a٧7U+"2|& +ݫl0Fc 5z;_ܑ t\*a` \!uG_-n\q?+=.zBoD\,:z]M֊HpT_D-o `\ ·$b[+ZmրJ1>kߜJQ׾9u=24 -@ikzp+NlA P ify\^Py?Zoر[fYY{եu]sEGd8+ $Ft,*.l#CK㔾de>AhM 5[pv 0'uHc)OivEVH=F7Q]4$&ɹdVt~ ]goф+-{ޓv<ǭ\B2B>&2t2ESct +f8dnõbcz錿zU,V,e:zk2ڄ'"&l# h~9ݎf"_St(zVͧ~}3*}36LKz 2- tO8F& cc3A.=|<1Q$̹6.:֒ͯ5M(5ۻi;i1LP"m[^ S0M5yS,^G ~[BQrر#z~/T7}2#hxRf1Ѥ!GSOd}pmKe'mʧ^$2$) EV%(&_c SMĝuug˹[?)Lf4/F Ob 2;{2> sDs/ vL+S7llGӝ3Aݥ)=tr/I1ˋdckSYjO+;!Ϝz_LR+vcbdq^ߟ̃O)&uqFj-j69oLH؅_]h^+f9!o흺kG=""7LfkddnMgŶX5!&6&W)3)2y_&_4?11ݙ5˙hDoSvU41˛%;+S(QM\7>Z&SfMxjn>L96")l防ե)WJnSJmTZ;kT1]/965 +x7f“5=ub#5M_L͠k4˦Ѣ1Mlčiy2-2m<ԍTn͖eb,6cpov wm}7nL1?#Es0G#s޽2'V_0Js05_n0קws4?Krj6w7h2ej^Bfcg,b \,qm6 I?,Afݵ=:$Omji9K=Yj/wK37ַ:3{ͺg6Ӡ';6[9jg[bt[ilִyb|%|3mmuukr{G/Tiǎm;؇̣>+:$q=39| 3G3qdsGd9o//ݾcP\86iOq}?9r9~[YM·b|_Jq8˚r|gy|o }ɹlqVqMƯϮ͢v:?^ThqGo=wo=]yXY s0GǒP­ʻxd׹_[<5Yo͉klě&ot/]N|wDܩ犏hJ-G*_]ߴ8E{7ojdCo~ Ǡ#A[&u#h}dDsLZ 2![5#%*^Z~";JGS9WbƜfw:|klH/g#0 7iw vG9u`M_k Ys0N[3~/e\5"o\`FMS+hc]/ ;9o&`pR6j;tus ҩ@) KϰWS2|]߹KЕ'?E"9 u>ȍq30t h&c_Grt.ڣ.Ѿ"U"9ny5|zyӱkvGXuY-A:ɗVX- +S@|9^ڮ:~z.˵nΓ^-ᄿ',mO4VSb0,I>G&?Q~5LﶳTiIRo%\&u$UM1=[ˇ Voיb˼Gmq6r9/dv=u.s>׫nyS|y_J\R&S[MnF5(xx!t~g8*:m1YFsZxQ}^bOo8AaMZ=c +]nؓYqV%>N+1ULEMnctdϷvv*h5FPgSN5jԵ +/Zg3w|W ;nfuFԯO +byx:M 5 {~rz.EU3:ibd2WZC[L5޷BVs{5gχ}TK1z{|}BOxiu\?ޞo37㧗2jzk6{k_)2i6f]}Spl0r;{zNNߞ7eҽNݧDjwhVZoM k(9E"bO)nևWXm?la)Qm:4Q?kjxqFw O/|6^ܳG!6 ۦI+d'ewz M$73?Uc6{rŹϳvemWKZF}p+~ ]DUZu\l~7.X(1uޣ'i㠭Z^@pretAbh'jQ'4Z&K{Q| zR$z_ J%_.=Gw*Ϸ,GDITOHEcӝ*QUa B$U'T( .ZÔHʔCs]mz(Zb5G@wq잋P爛_BJksrqalWnpZl/SwQ\Ksa]q{1Hu} + 4́R0P?^_l9POm凮Vl(˓++u@ #u4Dּ. ۀl\gBMҔB-6)*ڣkTP,BFK9rPe^^^6% mgyw/=<62,h P7\`$NDMQ[4βYSW U*sH+vߴpfDP랠%oh o' %SeŰ }R{&{ ]kJTgD2v9 +&CgxFXz #J5QOT7;ZǍ'rJa{<JO*M;a7_-zMoASƮpJT'2}r";dQ] +U D5=R4bc:L:aIO(4}/1 ۦ4ixK5EڞW=}i[՛JQcn*L==֗MDx%p)+նT%d_BgC\&o>Wʳ\'%`Ѳi%*nR7wUkDZx??`)|O^Or(f3m.l>6 bOK6v M)o2Z - :l?xHUJܩ[;.ϥ+*ZF~;AfӝK_n~bzwW7N<7elR4"$hOهK<ʨm"V7¢=.2FvQ +v%W `Jj5D*kJx +<"Ħ|R u6ܱ#)<1;3E"ܘf{MjJP/ʄ~C/8Dնrҙ1lreCpXt?#{tN4w}!-2O_Rb KA.==bIԔΙM9iZbA|W'V`]bi/ǫlׇOM~ihVha1EF9-q^Q.bOם*X(@xFSkٕtd㽘c~$G,tsrٗ=FY٘,6Ol(./m2ʘ=Y.]vw[|c]S(BNڪW-3Ld*u9) +$LdG j~41@]X14~KD LI3S*xsW٠?ųpJš ZgQHz~vS$m3]f)[̧ )N&=77ſ)$!Mi;4_CHR|W+o z3u̢&WHBV +; >oDq4 tf !~D0%РՠP 9BKQOZ&G#zGBtJ:qkx1+`%v'Q%H Kڃ΋@ҲƟ⡊_wJh5.%ҋrwW+ #1q֨qU +0{43ݣ%"Z>.~*Ȁ-m\$^!#2k{1“n69KܯQtKK4.դ!ܞGO#F&;]!Q֙O2-'SfYw?aR9N=!_j:UÖpn*sX l_O/zru ޼wcN*لe&ŷw-|_M@+W &u+4e~4]%#DBEd5lwOά`H@KeW4vnc*vzx!w0n䨒*~_NLC/@-(PiGh8O"no jx•0;މ3Gv^{"||Q0;J +2{wv.C9Y;TBboWW%o)kxHsr1uWKlg@њmr@x FmFKI+MzbNGW,T`׆"FPT-5b&>`@D)t-BAN +sPR&^׭&G3#j|VT!R"!~dh+ `޺Gs,^"zoIjTpjd"S"a87޽V:P'ezq%#Al:MLr_]]H-K8U0Ję60b97O@b?DJĽ#wgb;qڎRj59rHUκ]PDC\ZBHk>+^~.~H_yܹDp7}Xçh[V`,FeJ͊Y϶&hlf +g=6L$ԩvk̮d@ʑXydBCX StSvrDG~%T*50:N|k >ˌ7Xgd\>* ֛Έ!䉉G2LNn 4eCw f+$2d6$puR/by‹}((簩i/c]J.FUԵcYL{Pqg֋t5l%7+@'xLUGW3E0`i$x2ʅ>SUrQY)MʗaQʇ+IłLr;cH̡OY~S7Lѻj-S +&f5 8erkX*FP+]-k.7#횶k^0fnDg)Mb\>r%y$ x0W`X۽seٶK.ئ\&3Gĩ/;M}~n):9Zw [Lٍ`@][V3nw2@I޹:33R* Qx_)B -fͽQ3Di~oIJP1.%yLX3Gfh[ZMiu>+v7w(kC;4 n2`/dO CC}HL{p DzUѻannrͫ7sMe'l:' +5_f +Ib+n^d%e?+%zG 3twq}r٧a!i& F骮PGZmsmooށbfrd4jәD;Eƶ9AxɸΜ +:s(&;d>$sנiazd}Q~g_ΉԱFhNٯYkR31er3l?vX`HEc ν9 v+ǴRw +6{rV]ݓ)t|%ɴI!r2Qto(-g{gW74w?BQf~[%KOΐH(oo Ӟb4";jf +U.=1zH6}K&\|(ey?Zd[ߢ(}q%g[s7Tҗ)-A)2y8-M]~mh;Ȑ_DͻM6l<8~o7Hr9qt|/#MD_S$3 4 q|sYY|V3­1eޠSdzlzFqY!.s򃦴afgྗGV+Iˋ׊Euk,#o&s6|:#oS@#B%%\*YvɎezKNE*'z#=Iz5On)T/;a.=ShXnouTe Nv>_:%NE_G?'ww} ͺ'*pu(}ܤ3On,X1Jcufdr71oG'ɕy6yFcx>H9UQj KUJ0cɤw"oyW&셞A *Z.\KKG7 +ʗqJoTJ Ph퀠ޮrPӪyzY[jP 3s;CcJ+&x~\C2;vֶPywZ +x}'NTU5Wb>jP <>UM,l fԠŸ Vry (xI}ioۄuo5*T@]Ï^`IO72ɠ>ʼnr!L#L@:(φE 0dzZP߈PZ?|JU.ZJ Yh85n7r3:kBmrzPp9lo9LתPޖMj;Z'O )OSP3W4N"S{Q\ooɀ:ԪۼtWN?84\~^ILdZr >`*pCW}R-9oN. U0;[a`8ndHvܑ&zYVǕ:@Ms.6ڭV3fsP(ZMv>CEjM1C&K^Ts}}_.KRJo*q0=>2W.\4)Ze݂OMT0~J ^Zsc m+ͧDj6*¦y}<VL.}OɧF+"h)כEUj-TЭ{Kh8j?m_.u2/ T܌2OnGU|7GA7N)x\42v_OS@@m^!~EO#墣dsiJ|"4)"23ӥGCwTm_: * SOpkf&d:/3\͐d§|-ӹ@]$n?,L̔=V6$s[h;t^a9G毄vH "^A!5b?H*Bzˠ>hBwIkCE~們+!@OPLN)@RZ@l*r<{LˠG7C 8_s]NƾTp7x׀фfc_2žT0jAPw ɷ6Tdh =?ywV+? t0%$ a@!aˎ$pC_Z{|< I{][kCEb}>eP!A+dW.o HFT-&4R(VO|4w4E0J ăNG\ƊXr`{i㐒РYPlL,?ςGV ڑ-#~}o A/8I?nV[CLeDږ<*3DvIk(SԖ>)Ҧ4n=i/:zLWg"M<D Ӿ=A_ +)}R(+Jأyd8܏XCL57їENwAr8D}ųG^ϞoYu*qUx*&wȞG&wL% 8|,̦7|ɶ#Ͼd))!OJ{~ ߲Đ4?bDŽruwʱ#X/̞z +5̀]WF7vysJ3@ ag@?;y7Vd!4 c>V~U%qCqmpmcNU+4;&f, oCʖ%:I * OR9u#aoEjr6 m5Eƍao[55UFU^)*baoMuXYK{&14&dikj}/ +(q@~~s ^!=aX:q#Tzk#S5v)츣[ l$sBoQ5Y*)[C h:Ži(AЋB}C1&Ml;@QfY;|\`M]:?)ӯS6^Χ_ {Ot||<||JYΧ_ˇDYk~.~OOr>Z>ņ7{O}dly9|u`޼bL +vtX˜%MgZi m}[qTi8 _}ylJTi7?Zl;?cY^ T.9txŘ+$Х7iԪD{ U: ߲ +9 SR/a&|{)n=f:29sRVݑD!hݱH1*qdѳF{BKQ%v&G[es 3V sJ$Vkҳ $&K'HME = cc[O;M\_Gk ++|Sⵙ +vS*3O(uDchI\>je+zGYC[oQyyBo5htz?ᔁ!s>V윌4o M!N"^IJi&:mbqABkFmU=Q{ #:u^?x"7ʽP퐀V*i :˭YvSE-kvi΀8CN6`︾Ay]-L=6/婽v1CBGJЁeӮYm*DjؿDm +6! t٥iћݰNPFˍGo/OZ{ficV:(Yr(oNN{Ί?ޠz8>x=w7E\((ި &xRuJH)Tgm#i:F i,g,͍ftiy5ҏ=tz8@>iP#w&CT*KTF o8X AW8Zwj¼pch~k ;T6d4f2בsTۍR睻2O&OFН#}̼9(IJʿ* 6+|^E}E}i@e,YIom} oPmdׂ:%/S;ˈ%-u9/|Ԅ +Hi0q>޴ +tmy{KB)A-5"YM5%^Mra>[ gi0lKv6?%cz>T v'A +^ ++UrΘj48q9v +ld<5{N:߁MS2s\fKwt^\no231٠\NJvfh_Op;ɯܓ6 dl[dT2[r9x>Q1>5/axO->&O-TO9_aZVA& Ԫd|s¾?)S銔$\OH&w +yvsy +y> 2Uug}jU}+/}oi.S[aI\\}jU}[?.SY ֐盳3Tا֕f ԺuS ·IH^a\اVp>5@OOPاSr>4{¾c鞩OmDl}F}m䟱O%JXa|'ކgnRO#NYnXxk +v +ym_GJɍ'%*z<ᾱc%Mݎ]NosOܘCwZJ|mvT+\VT+n͙(-׌PRc`GoG~HlRi8}y 7.@KӠ`*396k3Q +8%e`&`a81h:7Cwq=N5|yXb`c褏ޟcrc pG'PԯF +=X~JSnS]Ɏ6uTo6,6ͣZѭn ^,adQw+Z(VLYZ*EI\0J &Og4I} K ;E[LbQb/Txerh_ )J/K]M]'2]^#w ߛW*K1U5oNG;Z%o:P6|~( t)K-_EFN2/tKkpetzUmRP +0A՚FX'VO jW /\LDԦ+k(Z4^,̽=o-KxԋOBIv`YHjdjۙX%AXBWպS^0dkbG kݖ'f#iIN5s6v}I[F05ۑ\Vq'@UM5M=RUV/;-qK}<zgh8ki@x1H~); M6g-3mFa=o]Su֝UjfYXbwփr +gG7_๽YC`=uBsk=8A`ɟZ9qA=Rt+Iۓkg3wy9w;^%lkYһ_cdoub9 v519n:f9HxymYga`n]zN"yCi(ZԕdSYS+n9zMV%'%_`vmۉBUU[ThƎ84,.YO>PdJ }lO=E&E~Q}E{RZ\7jqEI\7/.I[xN$έǴ/+IL?$N#/+I[$έG<$]pIqIzđ%y%k!%1_3= +l/VXav_}Xaiah|ׯ>p+\^ՇCZWrZxi϶djzgt:jrzHҁ.s|x~ =+1rC)?pxxy(}bUsA~?w$gz[nIv <\~ӴCihɃ <\]l֗\xYq_b8p$<\[^s`D0~Ɯƒ\M;F +8p(>pO12p՞딑/?wǮ˴/xYi _>Pl^0θ <\.zlכEpa.#[ZRs}W~B^Wx~qWŝ3pV-&,K?/ky˽_0p}~pw+.8pL܁@W|x~A|L+wHǤ2ĿxO޽'WΞ{ߓӍG?~ࠆ!ٱ`Z]pQ.x$ŅOo;hgB92gb/7޽n._ϷU}޽?n:Y?>͍#lSp^~%y Ktտl@>pQ/n|Az½≾{xnҿ^Z_+f5_O/HEq!R1O|ӿ'"7[yt߼zߝ?ݟ/uBXqHfE~^/4ꚺt\DƯǿmR%E3w=ڦ~sL(@yks26>Sn|x)qGn\m=.uA,!|w^g E2nYiD_m }}#_ԿܹNynKGׇ<=EpXu&A$ӮE揃-gw5x.|)~tI^}o-"6p#~g{)s ?y_ + y_α ݵ' -:ԵΡmLWD,[4.Wop/ Ow8pIhQ'ݻ]p|w׏[6ɳ]9~1ˬzS4 ѣ.^k^x{wgN:)b'%ͫn{[eo||͖9#EY|`J%Ϳ~a!m?vmBj~ut4c;8p_b6Ƹak@-*em6GG}zoG7nJ]1k/}5a&E&Ͱt2N<]J^O~p^Mޛi);_>EruٟX3"\̻;}}XԚ%}uIV~AR7?njX<*5 gB8YMay+Iz۬ű8h/rv֦ה=gϮ1w5.*ѹsӧ#qDjBtC'E>N}1ҭg_vӶJ +;m+33pE%wښ"q kvZs/--fbyR0\kC["ۋ:Z}=ȶ{쀰k># :>?l/8SW_ %n1كD>ҋbsTunjKV ;[XG5<7&f܀೮ivq%{PY +_]<']oo^yu;Qv\1~Zm{Ia 7[oap6kVr?D[JRC^w [f'G/w3SGTN`YܧBq^)r.|_|L ss74 n^KLiߔ^kk!8sn6Q8 7CMɉVHSN#Ekw藆M&wg1{H`w}xz=2ExMqk'7h4wo ;b- WD |o޷؛/OGo<}$9h3sg¹{a<^1qϟ?/C N?}s ӯ]mSl웗6gt\㯗,8ݭ޸Gn˘N 5'>}CsR߱L/\3.2pw1iI;=޽w/.݃:ɗ6>}R[npZ3a-O}{LZ9dlg.޻<>_=ʡOk,8ӶhE& -)B~ܷ~܈I$ɖ@lJz[/Xt>}.IsiuɹwWik܋}\HNsA ICQ^~ A9J|{<eKu3 +Kkw4õ>tΫþw޼zaZog^~n;ܕW{^:ʉ3/)ެr|׏+m\:Oۿp+ H~t޽}gy~ȮrߧGE}_:êƒ!%l"+ 珜x~mn"Ä G]hO|p+^~گۛ;/^xK^~{}K7opqao-ÃjzJ(+hOs$wC>HApu. 3&/NqV>+Ǒ$cP]D7U<ŏ/q. +Yk!T-_q{//whp_>ޒ+*[2jz7s|AD Jo\=9_n|[Nxkv z>|y olcӓKQ=xbrJVT,~فuo;{vz{*]q8Gelq}$<(͇M~[ƕS4oy~&ěX{,n+srgcσ{p">V_Zl!R QvlvWy\Zé\yY_~yPK&i]Ν|{K̕͞$DH~ʧ~^rǮ_Ɗ(pğaO\/ˌJ)59 &cHt DϷ E!ݥ-nnI2}B|Ȍs&gɥߗl<^"j7ح ]Yۤq\-]bƵ{$F~o]Deڥ0VWDܵݭWtk7Nu!sam +2C7BFKԣ̲8 {/)~s}]TE쏹p陫9|gIXK?? b?!)q|p\?y_bYB~njL}}Zmѷ9{y"qI}ۜ^<X|+XA#)y_sDp.wpnHGI]ّ̼߼OJ87F"<@B_ͲՕEIkcxͺu?~/ׅlPwr7yppܔ#ðHDEXM +Oe|!8#~d䬗_|>Tuep1w5o,]܌ &bj ާ"`h`JQ=o_thBqvwګc͑ﴻo; &//CBr1c/]M^:ytecZȃ?bZF^p?x)ĆܷOGFcf\ǑSw-qx1J(Z "j :.Ƌ,:_8UK/:ޱՏ'U?n+^~_C?~?9VQс~Q +ۊV|1jd7| g#gƑ?9h4hi}4I " :vfw t2U"āVIx_qF7%oߜ;*#w}Lވb:AyCҷgPɃ/y<,zIiaQ_u(8Fo TL%O>['" snis)ZzlF!&>]Khi/Cכ%x<7$:ۼ}CGgr:ٝ9Bc䜽!ke*vɱA 2b;gB z}kWSA^bP`\5> үOЯnqO/㯷7WGk+N3aqCiǿ޽}>ǿӍ;_9|p7>M5O mp:}ݻ7xt{w?ׇ^yuwwnߞ V)S?o`~sX5:qs!zlq@}K?)Aps c]_ϧ3/ҡoo[6V mzmtTZMQ*gto7ƺkڮ2^;7oowjz_Kg"{cRc۪jW0|4ۮm^[5 1z Qhm{iEݩUlNASTo",I \&_^v֫.ҖiLB,z5"Z^-7qE/oUk )k]ANKus/Z2ӛ>"PMhݔkM{ڤHh6qGM~I󉹮_F jj1DB[VK,|m:X_=26~-bk7"=̵P=%VxZUxWxnU~sO+w^] xF{+[6.|&:Ǎ"A`T\;"q;ҋΗ/ҏ8zic=js/-&zZ( + 8 peҞhm—H2}5@YfKi '$Q`$<IY+޶t4mfC-@?1YB"/ڮ+{fI4eSVhfHc#B7r%K (b BYOeP%=݅$\|FAuhZ[P |xX PxYNВ.vm+DIl5ޙE>pE.tG}Xxlץ}ܷOywv=3{t <)!qA m`KVq~a&pA7- PFb u񄆫5m16w;qIzByu7 TA2z碐.cې)w |zu +o!Z,L=L1k)gFиBAI(ky|ؾb{3sY>woߖ.,B }ܡ  +Ad*;H35:fz$W~[XȮ|vѶb{ڥ-~8]N,PyH:9=۫"b#FiM~Rܕ5}6Xis_03֊q=f_hmZh{`BЅp>7lO相mQ<ܾmJ#5Í\,S>L$H9h ׸vD6-qtME޸0ҒizCVlIPpkC +W#ͲqҩմZ~4rtj[2L ZD%M\)d#Kڠd:4@бkʒB^#dNZbB/kLIuz!$}iWĘ)Z!!@ǐ*=&b+RƾɦNWz!/ml9n`yZY#ED + D_nzLP.LrBӱl +CR**V70imėSю$1l3F  #S^g,bs:$CiЀ5ts +xUB]VR%AN΍e TB%tC'uȴ'F bѧ$%\8@$/-?Fmyai:iޘ>/Uɖiחt}&l֑Rߣ]z$Gǐׅ[/e;sՠ7me7wH@˜UsWM7AU$.~]\$"]᪢ +0DA۹ŤVbce@0yATD\n:-{+ eeD2 +\"t^[hgYq>4r@UH +oV]ۈ!il]y @;!I؇Xp#-TdHA wquMcsg➗j7+vZUrn!?UMTF !~a+)F{APYeJW%~qaK]M"%DF?m1]%|,m+!tQO$a[k&md0,rWibc 2r7@]vDaSz: p)H4a(֖>h'$Ajs]pɣL4QK_H$ʐI I\[e! }GW+=,H=h6.>{=&|%I#3=ʇ۾s)N̖#=WW"DF0j*ylM2m2gõ2xi -l1/|']=2+Ã[f7"+Ҡd +2yLqC*pRQ*kXl.CCt/NL_XtpIQQ2SGFdyMx(:(pN-V=@q@MMS t gO5=(jx:$/MR\$hsTY8OGJuZ}d + rA*6+UԱl\(7mSYa:ݢY!'. %R8虯GZ4X!ѺPMZz죇Ⱥ*ۆ^ B@\^V41r^uu aiK=2XK@yq/-e[YUR+m q<02NjcmtzeZݸjG$N\GX:8/)T< y~p"Q԰`,f )ଔ?J&+ŸňӾޏ5xrp@N.ޠ*n%YzbJO OMUa +n—5Y.boBKpʧ2.q{dx#BC,X) ]L[t)Rc+Y}8BB.DI0z@;BC5')C#)== E +|iQ9FR([+_t =!Dur!σhX$9#)nM_oLN7njϷh"ҕZӒ9_ZD*aI53i=H*48\>:WܜP_D֝bsdKHOp#' x )8 +'5v,ʀ1=8Nj/ͫRa: 6H>NC <{ jZ_'zS2_qLJDC&sC i蒈أW$0"^~qtAM9X=-$xubD K(':"je=nuoWjp ?X)')T3z leL2Ah>T[h09!TtdUk,\ SlC B0~Xm)4_ٖЮ=LV:-?&ln+VZ^=`dIH_InJW.Lgp ">U-m'ty.,@j1܉GqѠ~wtϩ"@4rxҋ|>`J&4* +v,⛈ĮFuf] Q+~ȸxz[,J&[dgpQ[cr;uKp d,#!1z}㗓CD-]we]W. +;E9ǽwA\MfpmԱKJWuɚOO+*ѴIۜSjSITϓqM4AlDzº{$6ƔLF5_:!@|! +0Z%t#|"%vcaLXPuYhK2QJG`KL :DmKra RbI%IheDiwIxv}ːL1LdړՊKa`:] 3ӗ~llC9aGz_DciQ!2Jd%/5h/'fݹ]eNaV;0 +xһ[0)b8Q$tt-dԠ>- ]q%Hfб5{9D=7 S f螥S7A՛ 5B+ŔhbcRC:~&]ExqKɘb'm1/4kzmbpQEɮ%vN) l6?nbBT*D9Qg9)6'ptqM" gNNT&Iۆ]11!1U1Tf>u}p,D+h;Q2R̩ 4iˍpұT*Ϊeϣ/YA/W6`ol lb>n 3d'QV裷Wiw&3Vf4 |Hݓ5Thc2Srh'\t{p[pI{ۺy RϽM9ѭ 3L2PRezu:`éM%Y"VL/x+W +$`؊"ء 1l)`eڗ=󇲅ef9&B> ڗ4N$m@]k]7 ZֳMf)5D00K4` ڟ1} !Iuh F#mU)DA|A3u=_AbƹlYV lPt:Ȱ/[{ +D{L`M2%*lLR2PcR^>˗KVxéSt0A +lE'8 Bft v 7P(|Yf3WOU|X)'|G ҈" K3{;X:tͤ? l܆h6Z4L2 tRE~4*9C-:)3l|,["*} Q ].CMnA@RRɽ5򔨏@I b d޻.R5蟇f\$& '<+&4BVX61g^gc=+cǝb̀-RH]. +KmK?zEKjpt;azi^&3m?,RְFS2h)چ0mi\u. ǔoNWj&8j/N0C#_{g95J;n $:d6hCLC! 9-ZR{dy&"]+^l|mɿb'L1Mb'~޹0YRhMi:RX#H_heYmh=f3'Fxf,ёDR3x! 1PJzDA+:NsQJTrL$c=7i Nrc3X;tLUS@0)ϝe<$YA_M);A?Y/'= +7o#G*IGk<׹W^"MP.E FPlxTr'UĊ⭘X`#7 rF?}u +>.22H̒kGr Ҕ$ڱ>zKc4zT2Uޢi~a0;hDUF'c4f AwudLyF睘,f% +:8󓚯D)MCGF61&8 |{"9:d*3/ѭC7H Dq%DDDO=yfe|MraEf~\"i(1!9I#L$/⋦L2Rc]KYLwOQ5Xl<# r~$0L//>.}-6B=~4dؔ?64_\pC$Q1UX9$i'Ӫt(Tp/5( ,StLqD65K>M rH&6PiPmC0L6髡Gm)|I~ AW}&JBh#ՈI;D҈IyO jJ3 s0r{ QBˉa+VxfrT$!=_?.w bJ#)C3+CJBrH%&^f9=#w㢐*K{iZְX(:BzjZed%μmΪ,u*\hDmD13L1Mfж8U 7_#iA ˚ i{6ע"ޔ_wg!&g>P hytUߋ:%ڎ):9]Q:C8w_ExDm)Ԭc*W`oKa~"/H1L̈́OVU#Ne8f/QW>\Y-6[m8®PYtqMݣ*"RDe_Az@Oa ܾU'\s~ +z'I +I {F#VzFLR}R+w̪H[PeBp\gDE?1ccKS2?P%osE_B7$ye:AIGK #7Ёnej:Lle3LnB <3YT]ш+#TSE 1e4GPvy "XQGm1S†gDrDL;b/TH0Ox L'agdS6d}N&_Yb:3&?Ƽnh9S҆EȵԱ.iM Di Td97S6s"`ퟃg1kY܋:Z/J~#K5X.htT [lkIDy)"bb{$SFg(sFȝ*g0W6DHU(V) N .2 t mIw@\Xu\Wv\zf*zp2bŸ`dʱ>tآD7 Zr9t'mxM@ՕAYlKcQhܽ7a9KUtb%s`d{Lg,Z nԈaT,j} $n Mcs aaXiDYU>T5H栭pkcd3ԏ8Zt5zB+yWAzڂ69zQX04x +PFثrXEtir?8oY?@&5PXc l!'dbd' DB*"(FAH0p]Ge+̠fWcg$8eHMHY +)N@'GJ)"$rM?UB  $[}/m6~Fi T Q N b}e5 rFA:ҾGMlo0t]fWG(#ƨ2qBy$*Os&&uUĬ*=Mie_eJD*CTNP} .ċ){MxfвzaFӜNj·:16TͶ h :=Wu#WMAZ#ţTZ X-%$(rCRi !tmH ^uwM#CZhŕKHF +r`0*d/ j#t,gS* ZRһi_5]"FОUCEv~J\f"/.L_S +jsrd,(Q@i: Wĸ] ]kjH8ۿN! +xB2}~3_ SIqK{e57¢Ѧw10ĕo/AՊ6Kty˘)"UhpPE$ %i0֕3 / ۶:qE-A MTg'=ٕ&Lb'R @F)O @ ]+ED$t`m^t/e=O"[8B6"Iv/2w 1 'ÔcL%>NGtb POTFfJׇ$1n:TʏeDϑ-xr=R.Pf7,gE:i;4mOi\rh iDJB07U)DD˴͈jIܴeDzćh Mܦ*VF3#UqY 1ޔk"(@dn[rSxTbGrr,r'kɹ[<ΏN9ĹY^AdHLW*: 8d[b0F!' XσiIu_fgGG I]05}Ԩ91YC((:9,ڏPʨL[zhti) .XJ1*}~빉ly@)IL̿g ؀^U+83_9 ZLrSM1P&P"ɹ:$To zboy[Xשs41M%7+F"`k̕2Az>"d,Mh ZM6HP/+4@-BZX`ViZ3 Iޏ0)>Ⲧ*L~HDeB5g5L%тdgLb8^5N!YMHi_m@ OIx, +<(d"gC:: Zk@ȘCh6`" m{Ga!Hs4XJ%xb*jt(}U [i?.ĸ2&f">Ȗ :_WtZs6բ\Ƌwhz)IF4/&%bdGAyFi;hMt duNmIHוHKG(> )#irD3ș+.nPxt9>FCǚUn)\jete(&5? RxJ_'! )VSg҅+0\hRO7B(UxQL'Ev)6Ń EisgbFq%h^?\lDc9iEz3Sҥ]]u:!)40=5Rt е0`Pxѱ$sXB3 3P4(JY'M 0 + $b//,3bi@U(oҶ*w S$L1?u_e=1[wȫJVg W%xVeUS 9? n2ne1osk`ǜtpTP*m5UDGKL,P]uh` ް|uX":3DzI { b8S8p?]"L(=)E7p6\֒~H&]%=<7lA2hԥPp:6mN +Sۘhɚ&Z8IA?6z<3b+.jJ!1GWnj ArNt +Ƕ6hUD).'l{j\(}XhkJp@\YsiFbEҪjB/G4 Gel*mS\|?aLgS{1 0@zxѻ@b%I”< GcT1AÕEJQ`c#}( 5VvKĐHRs@INg 4A$W}We1@ي&1T -xWK %B׺|Bn 4kXIW8Q΍˼/Q00)/ h8:vT[,DԬ)nI~XٷҒ.BfQG :1yX2 )@8Q!0FtdG[ue4&O0s"-Am%wՠ0s: Q24!`/]5Afs8:yaE^UQ1ޢLWne)bE;FMNIVFm 0ݑ>ڤ$U+ \nn&PiHnXV2&]sЮ$?¦ILZ _Jø}@an0twɇ#^'K.0z9IN.&&R6"ex"99ꦅݗ}"3mAP&W(^x Rc:Ʉ#1/1)gplK +߼CU*@jRtiR!'Дc#1KN:u3rb~)9뙊БӤ;WUI~R|@,%I+y5o_եHm髧x #?"z`Оԟ̛PjQΑG@jЭ8p!"<ҭw'Y@wSӰHh 5+D4Igbq'P<{1.qHZW':C_cbEJGT{tlژG$?NXD !-dtf116HJ!TYm HPxש2Ew#-8 tJӟ9!`IR2 KK6iKJQØ)2\ead| u/tuό9K-}od]ʘCPCz&~#ND_ҺLsmFD}~h{8)ݑXa.!;[N0Jl۠'!\Tvd[2PW"k DQH`B +:E2:, TݧsLQj|eyh]}˃*B%$4L~>-2\ҏƣKtUy%'sUZQ"Tl_GrqrĿXd Zr*̘Z:YW/:iD\5}dKrf&4qy%C ۗ<𸁊ϴT,&/[nSrgS҈pl$ +l! ; ONzj.Vh|Ъ':eRxTnBt|r$(-Gk3d)x(V! L̠f=g*GCqQ_GW_:#bNAiQQ 6ҍ:Ҽ4{?D2)c[9Vi1mLӼvz<(k,(IҮy*ȳ05h7f  A*6@dfTutjs^aޭ|ӈfP\by2uJ[0 +ksR9I HCsAq2#G$Lp8&U+1DS $( )maG hS0itWҢ'AIcd5@\ա6 4%S%^ \`EՈ!@ Lkã( ].4.6z`45\/o'fx`XzW#$ފUK}e{ A۹/ҶexZ~9͡emU;ω䥏 þXSõ6LRlJ>mi tS̓f- xOVEmxկ73Ir־A*`$Ae:?I~%R"1|c/Ț2Ia)ZsY'O:. \%&3 ~&>'QBVŗDDӽ_Azf2Ojb+T%pRc&bI "/ ƙl J܋/ijh3Seq˔.-qG($u#$vBRZ€mFG94>g)2woP [RJ#%G0JǽLa6=jYX&)b)󎠮*y1_=pehF.ܔoI*CD8X\}ᚾ3Uu{Ux] R[&oKc}>! IVWI`,I4LDžBM &7ޏPqHHjs5 >"W 蚗Pi{MxiYSf.68g@"H^PXq;![PA8z=2y)Ibs'o.98}u)BـJDeF r+k/i,ZGȻK"x7Gsj[ ،j'MR#KyBӬd 7U*1WGփ} rcj@It u9X)(▔K28q?eaM'LkS F D"(5\hLe&X˾jB{n F'͠,$p>/ +3_/3 +Q }tͮʪ,#ubg9+AB P5+f/sW +[RHzQ/:MaRDxoʬOqXoٔwπZvݏ@(8EZsJIj" Ptd9xi`)uLRۇ>PHkG@2[Kw?Dli*Ɏw(cә(8lEADmCXZ3CAr YnKLr̜ ۼ+E A- *7XH姥^|ISwcĸșO%4 }$И!DkcȨ^Lܢ!TD*`iBKpُor&!0TyzD.T#>M ㅶ +Qϡfy誾!aG͢ x,|nqFs4w$5@HW1Ay%dŹJ>%SC87*m>j*™$%ɟ3* +1ަ ѕUgJ%Sp`ml*>/rt"+HMMj:T#nB/!E8d}ӗ_ 2`4bc&7o0$NΉBJ> rsV*k& ڲ֊OvC]H 45ZxEDثv ++? "lJ|`%LjL!\BHsY `huS0Ю(ߌ\VC LEk { vzw-粚2,ÐvZ'zz݆!b^S̟Ȉ@y "?Wg{_j|øk&x 8}0> \ZF_|زoc}G/`mc)oNfR[U\4OdU!ϩ܈ rNhE=(y׿Aj:2,Mϻ8.!|7E"HwHU:n'61'@N=|UF{}Zjus"-HH|=Onڷ Y:%2>k|]l0`и6Lw{O\__]"pH'kfewT!O&C|3x$z~{SpaL=բ`c>{㯿gSWՑ VjvܪHi=Ro P- (KRnA=<8}wϣs(' '~_7Slx/']ih|CĥY 6#=*́r~^{xbqY6/&PGL(jrG/.c Pi^]Wi]{JaViG *ab` x{rQdȋ\!$\KoY|WƯIޡQnwqfm)2k+aCCxWfVrcD3njC^3}C@VȑMG7PSjE0!Hr,-Bf%M*AwMgxQƹT8,%)d^blпx?ʊ;$Ūku(8-/9[ ~2==_\lk{ĸS+<;-_BjZ\ #Jev,[ԪX#?bz=Bjo(zM.HP܏P?rM-u}ŋm }goo*&p> io TFhcBM<c(mPXUx# =XyʃTOYLe;@?vT,Ui>ApAM&5}J +endstream endobj 61 0 obj <>stream +g}ޒ[$FBUN6yb[l P'b:]g6щl9m_'Of[Y%V֪*ryj0`B|TySl?2Rٓ'g@^è- _\L mvP;d轣or-M-*6~<&ܽ>/-5ғR\̍}>@O ڧV])4+¸P b]R.!ٻxoqoL8wxM{&u<"1`ˁDslw!R*??r๎oS{MB@%Y znH%#bXy6]\K;o<t1۳>x"%AH/7=[r skaؚjG~,?O4 =`3-ѹEC[ĵ5i6xnٺ ΆwendfŁZunI K]6 6(AgnF䤻(5} 9^-_#j-N#7ٳ-q&/A%P+ +LI-y6}_HNt"#PG_SgkAcT˦~pZ)>hVWɆr7{I " ~Sb܈" ?/@lT!S߫%XI&+ctck&tH`*k[7Hwo,Ϯq5U}˧}x$x(6 wH7 VnOή缩azn,]_op}gGUN[hwsBr,ua&tÛaN~A#=(qdξB:E$sx@Ξ [p ` }O3qaӇMI2ڄP;rfXu=jyߚ @%yt9 d+K0s7觗,u<]PՏH-ћ<7ސ"3c,;LM#m-)=EGs23IB7 *KGWe s7Y6X%@%G~l 8OK7w:}(O@Rc"6n.=R q! .apt_~3B=C^;:P*0peѲxS}BEk6 +j|.AGE fmcN@5:C@m6AڕJPTg4KUiZz)dcl ױUd#;W}VQ'N(nU#9ēO,DjqgTlX`ғ Y:Ekӄ:P7{D#dQB"~ 8l-졪*;f O +"GX)jH_鼷0+6yuYC}Gv|pXv_Ʈd.Mtj2-q 23:ĿQ"P[Tm$@,eL'@ c%MNe@475'$d \ 9ش(+}wVufǖQ4 :8bxr߃À\ShX}>{[Ҭp .(0\D*ˤPyir!0rm˫| 4<8/U;b; >u,idsdv B ѩ8woD: Sϝh`蹵aϋ<,2ߓ {Ny9cJdkvDAxnqZ[/2a$e"l򚝋dSk+!*-&RȹՀti60/=ހ3 icU񫹜t%UoR"wu}|d#l-֏~B'al@vRJkWׯ g%U7J@eW54[YntB. +(2vCwkL͜< 3U*c f&(Dzpv k0ywTS_+Ύ?itC?較/v:ݚjyLt,2#7yIDu"h@;otşPO' U% XN1A?gmPB( q2`̩V2 ?!&T"em׾O&~<,t,/njP?bw|G^7TUOQ6TԬ E4E[T tOԱMf+0!YVG~$3`?ehӦMK;B_ze.*Jbi_Bˉu v>i9AܰH uUkPd tPr +Z\cxv[ُ~BPϢ`zQh<2KIn^[y!.a֣yĆ 2JTR)_w5%4=}{-WDl(P۲ {2!{0Ru̦{M*B:#݇ةOCx(LHF̠ U79l3$\OReu[G ^7OVՏݩ(?gKTyTIX5ҷ"K@irfFTterTcԻĜ1aH +UP ]քlj^òСtj.8(}O)[s}7K^:ӃGzѵC(&{>}AZtPT!Hb +Ak pY%@Ժz%c;| [&,ֺKgbПhSThZ-N6Om{6mpߐDK2vX.׾*]h h>udAiU7G;$RAJ9UP.SQ<۬Áxv^ k?,X[#8'a:h coEJ]mD.{&&z!242 + s/Dޡ1R UE:K$%6Zόap&Dƕ"}~)!43{Viʹ= q] 蚡t?#`6o֣K+K &Ʃ9qȇBmP5ibU#gV'rɑQT$3sjb4ȵDO1Dڸ2kSp'yܜ E :5X]0A H/\o2BvHMk8g>~~p];p`2T /ۢF3qJW:? IYS@sʄ2ֲn Ƥ`S}TQ6@zxc^ew0!\?oD~=TIhjU;yc#d*}'s }eV\)'BX9,8dR{p i(^L$SjMDn?vi`JV֊5_dAȦtm[c!c@kgD(V18rJ]T[E:ldAg]P ^}-눯|L{jRx6ȫ89$>zP %Z8z!QPcpi2IU3Jba`%'R~ЭA895#կװYPx֮R4sW:z R/bߨ|14  9OwH 2ml[u\ Jm'8 mBTY~HTmGdʻ UyКvF wSY QAdn /iSi@ 9~N굏HOTgυF_||\#Ct4h&6_n5ƹ g'.[ JP4dZñqJ7ȍgx&{4V@`$u %{bl|\+*b;ْG@w >;620`MJm9o:H7h\e~lK<@ym#ϔ=^<. $Zoo'wׄ +13, +><=!aWPwZTa64y1;XHz˹J: +v#j5)CjM}kE-Fg9&^ DˤArP]=Ī.] +29d6>$ @b|67]qԀ ^1ţCץz;v"g W %BK 돏A׎%q9*z(!퐳-2!t@>=)Ok@.f2Z͞ kEPB% j] IY R} W8^+} fIՇBnn^GdTa7ęE«<HE&b(h"5 w]LEincH簹'7DnTQHpc%;VT* rdM> +I"f~9!Oxi^9Z g_^]΀Z*:׵Z8PS?Ѐc'A聒K4au.57F&_\jŖ84U䎽R"ZSb +'Os ~-ZoݨdGuTL9) pKoՏz%슁^!EFLֺ%In)1,{WɼW)sDq7Vm!~BW,px 6OD 'Jۀ6?%W=T"ZȟG &4([*a ҐAUMުؐMy/99j1v- 9=[ֺHz3 `V6{KOhMhN| EuJ'fÛ8ab#kM!ozp=QDfCCA[ v /.&ZI,tʥ@F,tIov`5^,KփHn "4#I%!m*|=nMkޱ,Qu]Pݽ Dۮe] xɔH?E;HϦІxNeә ~r (\0,T +[)fF/t2l+ӽn Ј :$l&6kȠ2~]X܎B6[IJ-ž,dڄDL3|AuuMKq 1uEj(3ѧnG^qҞ|NN:5B"\ޓ *ɞNN֌:a"η]2sIDV2̦+Z_y }Kƅa4n!rM<&T1N6דE12mS2֢v)ۻ.7i{v^U==q+(fCcZ4OQ +FGDzRU;/0Pq#^a_GDN-b0y=6q#JޏZ^0rOՆABA f0 *QzPܩR5/WSt +TN[UDtm71I?.3Ht~DA+zM ;t=Hb}A}[Di3h38RnB 4݃2xG[ER^NLDT)Bz4UEB3Y8\_瑱m!M؏ϼo쯇pdF:v~~B߳R7fD|~l%pq&]xd,RFa@ʘW*zgsdZX "?%hӼ'\(!YsIܲuHbS>)aӁZ@ahh .ljm@ΚD=޷䥟M!a0?#4DJ5!B6liRc([Ick\iV]ʮu!VDvv|^_FlD rpl hOh5ʇʛ[p' u\L dq3T8SZƩOTWȫ5bwx:Q}Yg +I}Y {6xOHhlB^=AěTu>aNZ[j=RPDy%@ Jr;K@I{|(v]e2͛(lZ v/e?VBr܈`)sl,rsrT!O]=DR ~1ER>tȓ\xrgmډzMIgX +DQ@x;"ӀzTUHϱ:!L{~.}_$Z߶0zbF:5 c&i_}!e$Cס\W nدqKj +T2Hn9>Y# j +Y'Rjx9έg4zvh#PS}`a9݋hEM~\#m.ɮ R2-[⯅jkpfW"Qk)X: ;ײC}[82Ry')e\A*ҁ7j?0 lwJz~ ;MZ`ҭ` + ӭ*$o61DJLjjT9-hwo!>p!5g3`"$c*kSP*䬱E}AHv%UᏱRIzF2aAvN!ѧ:( A9ԎƮyeԲo[!C:BJK+eʽI_w [~mrOl [+u3L + ] +>ui>BqWՑp\QZB]|< b7 w.Ze+W(ROH)O4^gR;kr JQ],|m5X )OַL1B|4r$Ѻ$cpgyQtFg DU'uU=<-sTtݠ#j׵ +vOOGy/lXE J=oB25e|= J#:VW~\z%l)lͪV K IAFD\O}7xΟuddzrq$[na?y6qTe#y6Cmx}3w =3YҜXL5#Mi?d8I e >BޒP¤M8_>mS}AXPTߜgLK# V J`<mض! +4Qv{=8)sj`TSlc[8> I -a3u5e+!Se/ZM1g[Kd>ΐ,bNt K|KQu6%?C8laq)}w'qϙH&,fE]NXXFQ |WsALE>[oSG4c n[QV1=X5H 坵T zhmƽ<@%WC)LPpFn΅@=ϖPgp`m77䘈d:lKV{FQ:cfO C&v=*Wv< dL֣jzːψ 8S$6Af8Dف8Ӫ>{~vOY_q ף1 +E ),QNנ*$r2 i~΀LH??`ɃAS +$&]ȔmS;bpjor! a?j<DvUgD$cDS&tY ѵXUx ϖ,UrR&%2I9Ѷ!\ D'Rp#7Tn24MJjͻrR X_4J0:F8$!:ϑےCSD!rZvLho]OKPt] wRHChJ$0eq9K5m.H 笊kVwn7Q= ܃;ƠO!}Bݷ +/x6UQp-Uw )53$%DˁZD[#I@.ՀqHcv)8PBF +AO9 nqFt+'$_o yer* ~ "r<<Ϗg,:3XL}x[ 1LR6_)HeGd P'Z@)]R>Yl8aZ +x(f%cXy k;'{`Ɵ~\a'U7N<~P6B3f |D˹Aε&F'R5| wU E+S s#fR~dO9"{Qvрh$cS*Bb-G |c;FSϨ@ \Yp\ғ4H̲e(G,eRC̦rUDwnQEnTξ3 lwtפ.D#Z,L2?AQ:TTzKTlsL 1tjĮRz|j!k9e`lBIw>d\ s䏙8H{6HߊD$taƜ*pI:la'T;z@A-!P֥lndfB#pe6\E.0V@Pب{#W | Rwv&d;/;fzUkMT>_}6NVpK[*K l쪪Hy$^3\˶ev5UPW)Mt(?,mXۅ#R/&@= :$Jq7 |.#V*X5CKI64V)kl|j$iS@AB$iil̓ϣ}@Ñz;39r Y[gg jড়6YO0IÝd=!=48Yԁ2GxhbW_#X<5rKqhVr+8X웷X{ -eeM劝yWO1]Pjos h??8ݾs{\ch]u8(?FTz WW+6ቃڦ|Ƒ1KGyB^]s:!bGa!ohS +F5:6xPWAXN'վ)ۤN>w>U: #G>c%3tqPU̪DM" "q]^+ gav L^?(ǫ@v{vʁ.?^MqgFߖ=8Zm8e*}^8Ȗ*v6ý"x=EZ֍-0W%>!+#˨Op\js)vo AeC럆,@=FCFT6SZDzP 4֢QyHj5K xNBz dFhD쵇 T43Wq~+ vx_ÐAj!": 20љF9f}#h4Y3"d@1!+@=dR ѽ Y b#SC@5Hi;~=n ԪڊHiPR -R5߀ʪ&\r0b50 1HnoFo j{orF ܉y@ZE MRꔡpIx@! eLF=FL;֓W!6KrCk |BΠ0OMA]2ȕFxGx PMC ( dw$9o(JTL<~Og6)㪿wt0TAy*n0N22-HD'8-Py71юx`ikKxh ́7I6GG??YYUyrmog܃.M*CF+4i%V[1u&%8<}uuq=#4$e?Iμē0!6΃8@ȌiXԽ)@-'Z8#JŀZa1W'tX¬΂}_c7nzGK~~Wy}xߞMϩvd!6Gż`DyQer~[lm|$+7+_jeJ(;`aHlݏx>Q%4m!R@xv рΗ>虥_]M$2buqe*` ыop2ODg9 Tjk("e +IɬR.p[?C0xpoo+wLK?^1^t?N_nD= @x_M/)/z1i*O2ZSzF񔏒̻[,NrJ{|ksomp~ԠFe9c0Or nm<mB{4/H : :;l O/&,s~S7ےL~s:Vjحh-K |9`#uק=9=ɶf4n P%V-,sz0Vw]j(~Z:iԉL魿0*ɝvH TWc:QiB^bkQyTŇO 5Al>yg).8&'ubCy6XdyYo>=1J TBVE7r~0D;BOxu{hFt=f^\u}ȀY ;jܖoռv^A4~X 6c7̈́QVD^Pm?CU0Vr#.ɱCg$cdMJ*LdȎlj_'jH/̲7qd[GNK8'nMM@7!z iMH^T)Vc?uİ@4.6WgGd(X9:3thf=mvRbӖ׾1!f*3V}=,WDb?+b~0>ZHd?IpRLTRBxoO|Wڛ";֠^54cl*(qBTTX +׶(K]'(}nlIxGPs-5*Q$6/tIwKh H󙪺 Ρ%پcᎏh] _?֌BRFlO>ؖįu@ Dϗ!94UGZh0Ǽ$5wMY DJ,A =?gFhR@sێd2wW*=v5D=[RfZ!`1@(:Gn0n逹ڟ:F&䐩~g8>)#\ +ʁʳ *QQ=PAHr@ݣcc=IkH +%/5 L%XCF*Z{O6H<Υ~g-μ"ٶNYJ23\Ma8tᑪ~pSy9Ib6op%6o:qMD[^ F}tvEky|R@,{ir9˦^[% 4֩_)NAS }> +a ZJ[ ĵ ++- rtSg}ACƖj]X3f=<.M5:3"5X@ʣyҴo0հ֪pdh!Yb9 aZ! + += {'kfäѱt{,A{b5'00o d_?R-Qb[ِC9L`C #sRamZ46wiEIovIS`Pls=j޽1H69W02ي#Lkj( (z`R7~˃-@7 ١J!ٲXmwK@9f_U<.oԣL.:u."աOU.w +1T6sWc82tJ{y 1tA.YI볉O^Ȁgy}%6]e{-_a'Q!vL1K_n{TN?/̅/ ?f8:i>i5 ġjƱ* 9ˏcV߇$V\|9&uܛ=H6cԏ;Rft]׷%RSz%sږK/D({1wNe#[(i Fz>r"E: Dk8x̏ Mh BVJ4zGYV{TrCjYpiJbyBb2os?3,<&D]j`WQ,Mu0~6$+e *w8;8:e=Z('pI^7kq]1JCr߹hkUVH@e XޏJn#f:}#(ߦ6gk%+T^yRQ94Y#A=k)w}0ykʎ_٤]vm0QDSN B8Hp?֚;Do\ IF&~p_)lUDZv᳄ʄ` ާOlue^JEY;^ֶ$1H 6BLFc\lDnn@{:Er3i_,AQtx}HLdNKױ9Ր-m'L\<H>0]C>-n+N6.D<  A35đc?UyH`c&A НL>*W.U@#\Q}m=t$a[ )jH_t9+6d]߱mZ"ۧ I!=;u|$Z[2Q+*v׸R2Q-Nt^px_Y,7r)،i1а?cn +@ Cp=;-ܥJ2eFl.׍ +H}w'׷3R rC to+D|C k'x[ +#IrfvL_O:A_Ccj`uJdLy|уqb12B 8V +xt'4SqrVyW==A5AU1|:xJ|Cn tB8Few.|rWk-J-RO{eԬ&UTFL@}ٞb@߾M75śm +)@K1bjZ7ʛMr G0n+_b(Nkgu-UЖ9$}X5A/b0I +:3Z)1M{f/yи4!լ&sR|pޤ>O5p{_4Ld;abURUٍY Rk),ǘ0M:Uy ^99 R۩J8T>1 =VL?&tr0g+N\dH:":YkEd7]agC z!#/GfpLD>ǜ*XF]SyZ()aN^SS= +(@:`ʟYZ2E/ ,'@+2).w I56Ho> f[A~Z|7D +0*sfy 7-|5SgtT#vB]DĎ}|`z0 i S&ܷkgݰ4ĸ*\pm &xȭ|v?Ҫn@Yw q.1UpqG͇L4[:՚b.g+~dvDz6WLu-HB_]GniW.D'x3۩A՟TnӨ_utۗu>U(By9s qKa]`mK!H9m(V_sЭL\NiKvee@&Db{|u4F=NBcт!6߉,&Dgc1XMN _ +!ԭ.A O9V=!Ϋ6 coii,[*b¾x*vQtPʤ ǤbA7@L$ύ۽S6+; +\70$tjs=2BgbȲ-SՒ!lDt?׷c4%H!d̄AZ!ڊ;!XkqxS)J,jy񻇎6^¹`:'7w=*U5CJg 7vvNED;/_SOSl")~ al>Kk!J5Q #:=y#^k,iH?|Cx)SlbJ7#=z}ukek%TD朴<$htbd2h+;%u4h8r[I߀Q _J"ioV@jbGH+Ex)~.IsPcL3lO@a%UojwAlaL= [_]5'r3Lk<ˊ5t"A^BtBjٽA6e5]}(Ec$ߛ8`T$ ̅3±A + +4I&iZÄ|%y~LhxZ,JIc%غpمm/fݍ`@vC\3RߊP!27̏~+]CQ -qcP4N/HwgZ}d W +38VCFԍ~/qFk/{nō +%|`sI5V>KM\$1}~iFTW&~/_C ep_K&{ N2GnǍpl +^O~ԐØ#@62!~L`56(qz[PVcd] ud H`iM7\g>%Tfk$#fQ(ZTRL5ȵOOE&3L&\[t~p@p 8{4A}R@1.1g HMCf>qS{.>:(iG1L_}kvIcY*OZ*cM+u@}*J; Ny6q賭; ۄK)ڐԶmGe +ɇqp AK9 F%8(E 28ol9*($l,jWSbw{W +pPd_oc'}BLʛm׫a48NE>?!M rߡmo!dG ]`NDٺ˼~cRbRp;~{ZRSe0QӰqcSM>;30VOJy9Z|O</#QVu436 =f4=&M}ǟݳCh8š bkbz!b"ftaj0is-M$X`9A<l950 q|( $Pa浖 ؋+aۍK;")X{w/rȻN CxSi@N\(DJVk]hG[CmkیGU.vש/kn͍vil*7i AeCEb-sm38Cv1dEߦ% 'V!<\1)Z طL!μ;Vi+rvp4/@X7]d\s"{h̽L7wזb)Coqb{W>*<Յ];*|*_D*OD.2~HwTNV9'*nes>ub _[8S}@tĹEj' vɌ"붭~+ +YPצ5=洽0QTP$(S*TbkM!opweHCEɹI^eZS%Ѱ5ʕYYK fC&{7=PE+CK@kHV wNM5ȵ:O/"v|1(}`'Yl&U$PyTld?t +T6 B'#w >[L`lHR+ͬS_eW|ċ]ܡ'ɈBm3"ۺh T#HWC_ݯV?"S(ApKB[x%(^,jۛ7ӧDLi%ˁS(WΣHWG q+|g,.')F{Y[g֒LSyٳT>P\ ZT415}fi$,Q}!~EuA>KR胮L+D V8t&@nדE2Vw)Q9 =<5wel8T\ChrѐcII"񶣫'Ucw t9$u$ +)fk=ۣwA˼ /z ǗVPe*GURW~ZVG^Vylij6HPTg[+=\5 -CTԭ 5.a [-kF|bT١cͯ+z~n%qXKzevN')8/h0.U Ԧzמhg 8 typyie|S!|I'HsHLqחąƾ<0)_MZkʧ9/#KjVF7)mjYE"/OQD鯎T7p*C S%]%ށKiuRNA&6鸖9G01j8"])|N'9ip]UF2]/Ť}2V +2{Mh13DH3U4.bgy 12B}Z* !ef(ngB~.]s\5E8b332hOXE/T(>+hRh^nF82e +ǹ>f"Z^ics/X%1S_= 3 \hdE0e]+EʓW.̦#k acd䓃}CU:̫{yS)Rkw^ lUɇ:U_a;&.}Rqx5ܕ.c.p1KoNRx&ܰB{|PCŌ*Ţ:aX{Զ-PCi=CV2c,;Gd +0[3 "Os-zd!&& jerEo,R̷ru2D}fθj]=yȶ7Z 0cA!bn{"ZFq\^wy*7ؗJ$q/\Ro.m9Z-~ HCbݶ&ު+XB= υQ SN-ƞ[vy*wWQ|>ʘpz 6I/yW]v\Oi^>JEO0Fxޥi.|1?!ÅMz&Y= Ò\r+Av~cnv,2D7M223P&'  ڂoֽ2Z!Ⱦ_!篒ܲzG2\}j4kioC:bBFE+<)>zGkSښR*S.M^{CBn*4PV|lDďmXq[]3N^!Api=޾UZ7y()@(Bp`)yuk-0d$Wֿ D䂠C\K ]'.0uu,Rv]kצ%]:E?,{43;w + c8Ӌ"FD +45O!pWY("X4CrDk4YYwm 9tݘ5rмco.DSjʉ\jm(y2}2ty + +d- Fp=CRim22;ċsMqL =<|h컥=w!QHIs~^ ,a +aYS ۂK#Ƿ9w(i%}eGvV&t@7"d<5}&[d*bcA[,E,\4dhqe/,ƟAHI7U8ܰ HX`Z6LɔM:pax(j!:y>Tu~[ r%aQ%#;,鄙݊ $'W탊@L0و fk +ZNFZ>'<6iظDf1 N~p޽t)irPSwn\U^\'u|IDkql 5sГuK!3G*pגDX܀/:6IY Ydb%&摽oxsĆ f$19 y>]QgsEjΘ|_wˑHMҞk`{'0ɢn +e"m ' 7F`0 7 @@h,6sXHmaTY'aA` tPl XTI=lRڠ (^F@$tM7 #1F̜SeE C/g-GSꘜh2P&aH\> zD:7P|׊ j5v Ёʞ,!&Nvg& SLpGi_<2rglۍ5=pSF U.Q;-e3kI>mՍrwTh(]Pp{\YRz"ߜY@Hx +t/v#pTf 6AI^tP뼗|Jd|H-b&\:R2yUv7n1ϓ%|6܈DKxoSAae ! ++7۬ Yt'@ϺqlpRWd@@B  蓁S AtNQGY}@9U ө4D(E;v"f܂aO\I__']!i0CRNU]`cd* +1eQ}_~Ng)'4` loky?iΏ?ɮLYBjW% JNǡA*#; zZף:X; ᶜ`h') MV"Ig;[l);h-A"C$EXuu5v\Q(tU׵ .-#޻k^ӥuٍx7 4c57xNQ#&7js>p^\)ewWQ6h}*TE!eM{j,9DHBMLaSYMt5=g'8 L=8S&QzhI+>Is`1X]#+hW}޳|dV#Fqq +!,&#*ѲK8"3ϣ#L[AA*/t+ l9eV2<_+kgMq0$Ţ:zPCJP]dݔX ם%'GAMS1ըpYe_O*KSbq ↰ 5^V#2'YonC9]gp9Ae2"5X$O7S3wn]iҜ}B>Ne6q<7OFh$ l]R9{"̙₠sN;~zBéKaQVtyiw0jyuAThP!Q)N9TnTlO]w4hC &*{tã{)ϰ޵_0mDW4@i*0D!Dr}f.QPdzq2D-n#v᪔#C,h^~mjKlʵ Q,],=& 7Ȃ e?Le#d"[I;4oyBuK, L>|Xf%jOW +'J1ZKU㍷g\:ˌ 8 e{^pr1g(L2>&Á)>݇p? @g&*MGE:6]Dh7 :#C,D&e[ۘdؖvMB/yNI1s=+ 9$cm_@[#G!7.0/ $}rd=Wi7 H*Qm@ wHt`:S)\U %KWó r(Ьh?ӭx o/_BelWdzU8:Y@  +l6Mp㐣Ov!aU>0;Q@qؑ\:D2l*8T'|jVIw"6a%H#Al$z} <2f:w|sgYEU6O;pUX/to9|BjaDR~T{x[/tōHa'1CrOd}@xJ!;j[<"AοF^.mfp7|p^ &31Sm Q S Xm{ P%<DXT\Sl( Sf$=@ }\4sihE1r:r &b>P!-E N 5kDƆ"=17p k%]@ &` װ\%dƚ#̓TEr9Yv\p"_2"9+n +j M {H3dj[h*bM(\0KQ +L9ƙUχ*Z@  OO.x=Ha.ٽ@(-C0`^3[ +~j|@z˔[ wA!Y4v"ІG1km&H"{BB>ÙJVfY-HVaސ۹<6) {-Cf' MVVىPu ??5b ĭh"X/1 i ݆΋h!Y3nM'JT#!'6u~Bө⍸Dh%3{S蝊и x>A|,UukGl>+]#D.>D-5]54N7WTxGCmB ṇ.IJ!3.ڲƘ(dF1Q4!8L%3DwN$pn[ Hu!Lg0S2* + ޤ[ k" |xt53?YaBK3dL;$EViKr/5 T[k  u. % _SesÇ9$X,`. "lnv/p*cT;zœp% feH8,s["F7*In4Y!,1zmd!ҳʦj;XJe&ŖM +MRZb3EnFwG`k~v"^ ۏ%/lvZZ`d϶JO" <]Zpl#/9pE xzw'CfH(2e%ڀ\Ijy ͥ:GDZ,s2 6Fw0L5YC5}y`*gr_ Ee8m(#ۑ RS}MIҩ~ػT[*zF}Ҽ+B`l|'F-eҮɋ@D@Z#uw_J3՛ lI6d6vZ9ioO7%W[SU| tѭNC2J׍W Dh(A0wz^%H\9Q|qwN_ RO^ X :PH *cK6Q@eU-6(^r=[=8zpOecե:ZZGkYIi{D{)K'îQ\5,9g d<;3 8>#-=DZr6߂ VY(g{3V^n -@H-5[U}.!g6%(jnA#:i)uGC4P)8M9NTJmHRۅm CBxWp!#)FF7Aт'Ry K:"~UsǂS6jD!XA~Cܝ3.Bq- B(Wşap]}N- 3n\o# TӲ7dNrdL$ɐ3}YiRy(КhNPGO?S|ckYGG!`8C|QTk^ڱWBeLDl!c?/{vo t`yqyuRzqzqr(J%kbKڪeU1ݔ,z9rm895WN +,s5cv4z"@6{F;QdY8$s"@r +rq'A\c7q3 \ej0p.#d. yÌхE:P:50AZ2w+e8Rn "*;-<װK [k:9FeJޝ:R@.xGU͂42C=TauZcwE=ly]>FV{" q@wfM{0 ȔPҽ \/ER7TZrW|܏t- ǥ;w ިC֓X-4-K Z1gH; f؄#jfuWAb|JBunC@C]9ӛE`\F:?,x}86=!`e}h2_#: d{}O^@ثqGMyoEF|i}:M_,/ֻ֛2u-~|S|Pge#&Wl\V_;uB8 +SdS ٥Ң ǵ(>S`+|hS+{B? X42%5&fA"~ +qUJ}:⨘<5~8A-MM]zSUcf-?np^hW1 ,twW-}-k]7Hl~kؾh!Dijokֿ| 2`D|Vh|y|g|%üԼ|g\Il7MQ^RS2¾1^^PR1 o|Őʳ|G|@=<֫ ;+?;7 o\w;Ko/5t|5xzu 쥢>בwudya$ {s<ވsN3/9w|qza(֙腿W7K/\htݣ[M[?XszݝWc/l}@777p/ 澺Խ0{뜷. ~/{\xp%u5ؔkhcXk.h1 ʯN5yr~3}D_~+}g|:?trՆ;;دoi_+f*W濯_3~g^S[_=_zYƟV/ʿxLag_yҿ5kiw!/|Fx"[ë؈or,b.EXȋܑo%O^$dcTW2/"j^ݼ y"]ЋPD~D̗wM/Hʢh&]֋_oþFH3{"ZEJۻq^e}}^u&E垝\x$ +o_& +|x9F/9] +,ɯ7ߒ~oY\w!6߆v~zbH/~CA#Q_G~hzcpcUCg]N,ȯ}"F%$_aO4>ur g3~O=[Z]ˉ]6Inܬƻi#[ jTje^ՋϿ1-[ MwiM^7^7Ի a#dT.qC +ntY`NvԬ'b' k[ւnaDe Q7owmݔZlǤ[.&1\q=zp!Z?uUl-z6bx aYx믻ÃڼI]-qee@mP띿Eʳoe C[r`#;YwC魁HIڌh[ABCp}jC炔l?@t 38q$VsCL@< ^r9p{; ⏀ a"2 \Yd>scS*89>+.sҝվ>(RLxu:j1<Nu&!dp6\V=̎46BDt{VSbE=.ޡ9g  +"9 H4Jρ(ot:,K}X/<0UbD[w29[ z +D!.1 RW75@Z j0 sC%ΠN}˶\OK 5-{ /16EeM%!7-d6 {TٮAPkW퓈XtW:{{f g @qDcAƓ'uSZi+#|Vi-XF}3s%iM!;l$#&׆飄Ba'o;9WA27M{͉ٽc3 ܩs雨 P +9`:IQW*]w(Jq|PeKɕ邨/`LHbě~x_9u> *%C-V6ѨC!&q| +ZH~W$ti.׊G*[c+~収 *I6\Na}nCyt +j$(jIˠφJ#g~Eg aDW 8UkMV'jR_-p)RA5 = N)MR R>ahqoY¼^ zÆ` tcDGe&GGž5f R gc~K +Ȅ\Zb饠qSy: <4sCH1yRI{RPR|,ҍb^}py;?vb6'a /^ *΍ҩfaoFD48Ent’ 4EQ 'R'l"7س|aNAS꒱9W-hY tRVYutL؅ݷ~jiGHE/Zu騝|&O|5xoADB"!'n@ 1VsZIAkO/w {;7,Q] +Rmw}wPg2@\i]('jIei U]?t¾,CgA*-!ںGڪ>A1nAm ΐYO D@hzp}\p|;A{NE d& JnR7T^v3.D.@l;GY3NiHbiDĄ:Qsi î f[}YyOE¿l#+Pux3$78*;<HS%™ySlx艐ɞ(er}N0jkJg!'0mm49Oc\.DG 9AX_~ԇ>bES;*H k:@< O%'%"ȞDGH uA[l_AE[ p03=HL-7^x* +lU+g?Lp^c)jn/%C+/Wkȯid(5X_8YNHyԱ3k@-eyD؀tq*ۢt^l{bĴ=N~+WZQS#DwExT *|( 6h Hu砛[oWgBLY [ +@'휜,wjYHs&BA:ҽ 7YK##a!-Qdadb5*+K)"f1x@69HjAP2SϔҳOhѰ bb ) li8"N-8M$&Gsݧe5%:S=P~˾; V~6&wezc}2l9b$j~}UbH8̻'N0${ma 9ɽǔ\ ,ZAuC] ɡ,#*(:>YRܭC>+J9a8s^3TM@8F:61[9XЁ>a@}<9>ڙ r"3 M4xʵ ktSXOv֎V+z-:WDujoOZN/Q.ƫi?ʵȉ?V9I8 `;v)VX[lbbkrx)ou_Ԯ-epC]԰Jc +!HĬ+z͘?w呞؉OB`fkЈ"AqCTbKDu%Dz#q=K@ƞ(rH|;@EIJu"5]0ptCwYHN< <ϭ[{x Za6rwZ<-yhK"֌5hPl-?hPpuA@x%֡m#&zUae+q<*!E_beun=*AX~A\OFYɂY=Ҫﱘ1|zr(LJ#4i|[9 +lZd.w32XՔ6{K~4tE>"m)2=TFv"c!" +C!ժE;va +1;]!+tz$|-`6o_'UjvV/خmqۂ [rp6\6F +Zp3P"sMùo; /{? ˩pM|ulF5=ؐ*%o¹|J~]h̬DCOܐNzJ#ܠ>kdOHdPc{ eiѱI( Rp;/% %ׁm5s\Qbd$h2 E\`wRLE+` 8ImQσf%J +1sl>2LFJ6T [4g@NwGX(FsZxӜ|QKn;qW]z@frlHeF n?-ӹt(:7* ć|-cHd* t#Ŭz4(ZE}X}e(:I7=K1kB3 )+)Ȩ ' e'O,oN moC dD4)5%,$!Ⱦ ݄ϣ Zoى{ip搨=* B:61@;)%{ hmpB="xn_K13" ɱ!*9{A#1d?nG4<6ٔ`"#ĺfis:h + K`V8iO{~:rPtf7;`[F{ ėcUh28[p+/ĵIMX3LKhJrdliyXۢ!&d80,buhiRb#?uIR cPl)OJ`ܾy7;CfC8tiT;FcF]s7vcAkU$&fIdM*a'}]oˁf<= gGn΅@Lݎ]m.vFn{"Wn{om'4 ±;+H +WDHδH¹G*hym&Tv[ zH5:{˲.#pBD{|磀xuDcC=^"2et(нz;lA.1xg3Mx#H#UA"jv +OOb5"6?[xvՀ@ +˚Ha!$gy-h%aݵyi“U8 k@y(=kp!7Ax9[$ A{ +p1}pu`O=$=vzwhAVgpQxH65DL,:;d@BGI~4 m@; +T9e Bl \/QI9q[`85W]ϰ$DJkt*cko i-ck +?Ώxg\%)[M*,Ӭ@kCq5M^v{S*AV߰>J0gۑqg59gш%1Q @$ iYTad, s͕&*ĆWۑ%'*Fbj07,aFkۀ$4]V +NHc*B$[Lf*f+I2lTE@6w ?fڛ^R NǖC>[Cg\FV]PMZPr =oL&Oq +pgJ'wzQ c%DQbYGt0@|黲% t6X;)z3jŤC6o43nSl>- k6&&" kay,{_.'M!%:JfN +=x-=ӗӀaPɣOz퀰K)4e Ѻspu )I=7!s4I +q5SEЧm7 +“9ЎВJ~ 8C Wٞ$vf~OR| P +P#. u/H1hA`f"Jb=Ny߇?xls"/ۑRsh#7n;R%,!d|҇ uQ[uƝSx>'1%;wZhKq hU@\6 )p jz 5+L+RÔ>_A8(ۚO@iSf/I! EPA=8VReFE5 b!6)E9 /]>P')tho#=tm/mYm2$.;uc|ܽe$@H遰9 1 *}hX\#B! t}#- 5a3eD: ht8IP/ZFjWiGeΩasHaۦDCa)sFlb%@Y {QӉF~t Z~Bhٿz4{bXhv[Bu~~=@e.hT?fͬ҃OrWC@o}p:A}\R`*6B_waWA(+I뙚{mrPs/!(n*i@ck1a +"j\92#uķ؁.sCTu <ycXv)1(~^Բ! & 7T({L`6n'f1csFA L Ecʁ@ī U[W|APct[.].j 5?ʎZ4pPl?tW="ҭHul\jހ/b s؂Fh||ldJEP^dtv ӊ{f2s@dM,WS<划D⬺ ~:s1!p@0rEb8b;ZM)o\'Y1l$.z¯~@Z;<{4).MK$uL^3\X<@|oY/ɦDq / E. Fr~SE+0KD*6k2b;e|$YhKssE695.Ht-{ޣ 켁ERmUw.ZHLH:ܲ I\Er WF|G+9Bt >^_zn@v8P܊sJؒQbPhl +Ad[0}ZQ(W8ċ#-1PS:kb1 V +@H|:m-ˆQ}gX%vCy aJR֭x=9h626^#5|G':X",g{/P0ҟ/' X>rvcs(u!;\) +g )%B B2 bmy@ $gMxp:@x!ӓ=Lqjm 6`j2$LM YXRڟSjC0"w-`3\Ϥ x&!AB@|Ѓ@sY{㮉ھM`^Y kҚ`'=xeK~b ꜹ)QpxXw{ɉ(\ U60%p+Em "} eAfFgfK;|H0%?B @#ZR.cg; +BS.HEI[cN_Mw$@S-B/œxS%C,?xVý9iOE,Hj:s !2qW;T>OTnAa1s,J{b{{1#x ѴjYc%ہt2[cMlsF.;'jg/jIјfJBlpZZ^F%p֠B<0v_3)]wsWASd6 NTjpyWi4!;SdjЍM;<spLh ZV&̹lrp\OljR^?@9&{}yP9L6\;.,"r!+DXI׷47g }B81yb?7I;,qC{ $B4bէC>ãZFuOd7.xw%U\UOYeQ[3w?a˥X3N",B=V +u>':G [ףj t7@1}es [Ϭ^RBVэ ސ) sPw](Vf_Y[Wcw.=ZxJ9&4R+Xє>/wZIAwh_3GAS ++ [w\uӞl@^;EM)8F5pLFpo2Fej@.H@n\^23큰L&Aw.)bi +e:Al Pp/!Wx(z$LD)X iwvjNڽgAN{} +IğF46b=*jN.z4*PK9nwA,[HTvjij~O.IM|^lh!A APD ^# zi+dp^qISnņۃϾt]I`G+X Oba#a6y xs"Ak.Pi} NZ}fWimaPg½=!QibU< Tɺ9BTR쐊yd갟˩E9|M j7 +̰.ӗzqX kt +"ЊRL0~Ӡ`ƆGkڥ jA@I ~ua T^vd 2;arbxu>lǤt ڧD1pA,r -JmLΝ/o{šίxPclLi=כfbuST Cu1lEXyh]Y'W;(nx# +. { +PDȗ}p7A|5@  +/(G ~@8,FR7 ¿bjqoD_D|@˹?xdE!¾g{=F!*5?4 تO1Zw(bDz\^ylHf5jv{Y' sǬǕAk;_kE=Ŧxu?>TS4^nH1{#]!TiCA/}i2ZHh^$. BzDf#b%ً@4*% " + JūfdԍQ( ."{6HG5C/ª3g,$b ᤆ=V{t X0zaCuɟ#h>+"pf$c `GtݾQO 7~My1e]$VQ(ә=:j&2*WxCK^DRq71 ! TЉb8mÃD)_g8D2TW.3nZϤS@B1 cԛHa 3ó5YQ +2fm5k7 D[HMT3_c!<S!qwAٷ e%lm:y,{6ܦ%Fx|$C0-DtGp0F{# Ibq`/v jx ڞ@G؃ 8ҝ)f\x5N8 ].l׉D`*vR?C1{$,UkvA81ZlQv>xD;Ʌ@@PHDjR/Cv}`uK_1H=]s%4ph`scႻBy4{(&Mu[{L)zE6aj;08/ZEh̑Њɮ"Az}B vcnӄcK ަesErǭ01=4sT2Pvz]PMǖX84 X [gmѧEY7hz| +btڱ!W;t űIaPֆ2YaPSdς(б}:}8C{2t.zL׬c%ώS5A5}hr(}83o7liM 4=kFKuXm "~pJ0l2v[}PCT-./o`豞sd>(gfއmA}b9=m,9dMPevT;dvsCp&~@Q"@X;d2h@9XN| a)sG럊dn <!{4r!m +]@5JBŬn2] ͨEp8օ@8ikI\.*3Za[}xW=Nx\i(OK`Ybpf)wU}i( kt=£B=Jo2 C psMtFXe"f"k! +8 dP6j\rѵ62ႮF}CėJg +RGB +&56Ȥ5f׏˕p}\#xR/EJ էw 8QFBݳQ !"$YvA'Xz܀7uԽ|w~xC UIhCSYs0*$9. rd^5m.sA`P s"$AO5W"JAZpAzYD+Z9_s'[6FYDFBo&Uty EMBX)bATV#Bl +f){ jcXv @~3/B64W%(ԙB@>HbL;{傠la;=XgH7hfNܔ H4li)7l)^Q+)X>%g< [UM gm3Ie,fKMu@)7dC{Nڕ L6aȦVe''RkCv{鸡zQgnHd,43-6z]p鲛@+N(1ZJ1hmA#.MOqK u#e- OqA`㸦X^ 5!upNH^fT쎀SN>P@!ٺ+`-gIQiS302w'UO&+IBJ`Z?q]j5[OJ>F[ =w)bOl"1f-5C5 lbL![j#0ԉ-Lj(h(ʏG!z*M(H VA*˩(~Zܐ}Jș6t\ԗSAElԵh7ݙP~ˉN; KBG(uYsPe2FSM<q~"ή *?yOA+Iz@,U.HXzbLYqt&ќ}2jڞR UP{uC'կ?5䶟Ec(xGjįlUs2 *Nckb^cm0p3(DU[@L*wTolA5>4C~BՍ؇ ]U>,Ϻ +`$IbU'}J⾦L]K.?,0ѯȦIfA?O??_'??99xp&?-SPq|>O.$Ot + V7M{9I>gZV +'2hkoEnf8m3>.0_-A=( $~;@S]cA]=3JlW'koTz#FxRR $; l 338 <-{-RYx[yP. JT*U(CA5_$hvO#F=wd?}AObIR0 "'铸6esl-~s.ͭXw[l "e}P 2)$Ikc;*ܤ>LhUon*).R n-&7wr,!n6uQ=1'&t&IbjWB ?3}s p06' vHhA`g0DT۶FpՑ +'(enW ځY$;ܱ%SnM f!ff`h$"~rQ\'!5r!+0. J T]6bo$XM C-n/Dkُ2 bAlRWX-F8:`1iRvF&:woen DvcY:n$`G0-V~15E#)zGk(Z<,"tmWޱ TA@:)wAQT>\KڃUN"{s~aXF%Aߤ'{?4њNߑ`5)†t +@Z*1${{|*ņp H Xԥ4&Ҝ':FC! jA!O|"b\NRc>G-Nr!\΁4piolHujwؕe LA.!UtNWب8) UwH""dK zd)u5: c¢v)nNαyd9\$z ,C\׬?L1 ɴrDԍpUWyBt?_bVB$ JH +B(ħ*dΙ BZ8Rh1=׹E`R.kEňC (gK(Q]x $(Lv@$ cɩX_) L SsHQo*des+%)6j`[%Z kR#/3@&Y">p` }@4aHB +) eg:.% hi^OLg DVig"h=G'T@ V*Iw!%EM"Ycč ]CFl5;RK:*lXZ@$qHåQR26w4uY-Atdt/UqETH3XQ6-!!F1lD$ +܆@eܼ|AGWplȡ RGeC(?8ކV[#(Qţm)R3eFR}<CgfWR$FKFS #NɒMNODA  +[&ӊEa׆#ŪxaĆY hnJ\e4#IUX yTS⎅ L Ņ)XyMʆh )@ҋkѰ1?iqz攌V0RUHad'Y.-kd +<-SA"^xT|7u Bhbv-a]͑@֠DEU?x':o+%<ڪ^u9F ESwi2^OhKOBA,#XӮuqd傅w0سiCmOάN@K.g'x2A/`=Hj ݰq}eӑxʟ%FIw$%3q\H<\(b>ZU k@Br K_5oM]ьND>%$rS* !$C'Ysd 1n2e'X +tt,@!}8:Y+y`/H$%A4\1Hc-h97@PhG襚4΃p!n2v t +$q 6 \%2-XGm4R1@_y~MX/碋k^(Hj;0zRPgR7'WK^{(zx 9`úy +9" *N@/VF. (0¸@cD9>:nC$ S4mݒQl 5 q.շҜl4i,%#.UbdZz +}cxg +|DȚ!OMq?"Uz2H:oC֔&P-Bsg$*+m$"zt*Z|!#߆|sXw ,+Q7teA +3n̚(M*y%c\6\P?2jm?܀k֏Ae/E#7ib3TƵD!PhU@֎ ;@Ƃ4@+ ɥ )Cklq@VvD +4~M<_v*t%4 d\*6NTJ vW, I%FgV@ +g(ékw5}ֿRn6Zcwqg-\^1sU "D7ݺ|zwwR"ƫ۷Ƽr acm,-Zi͊w-&{"j7Jc^y/'nJFSsTF7&|=v*1OIM[;XՐ\(+M2XY!?޷9ylhpύ|d? <5Vuj',bp+,yܸujP8Nq'h`ՒIŪ)ܱlSDc2:QPj6 EQ8=%Gʝ8*)s _O\n<$0|N\4'L޻;>>SC;*fE~&v=h Rp\9yIBEJPϧ I&&Z'ٖ4 f`PyLFeGN=<> +=LNs\YS4mlފDnl~$TjcZIy]|g4ђO#ƀh<2pdEc&6e?BV꣞k-r4lz>ҒFTBAsw;m8: T:nĈ#J6@!;֢KNd5 h#,̣ :2HT@Tś$}HU7) ȍa3[ǃT7▂"҂T7Cv_=DqGg1\b &Y,E-J.GR,~䗻 Ӡ;F i$'PhQ5`@N P8 60WXRR\.=<7Ģ(2\XtZr]@ k{;mͼA&Q:r9GDQKxIWn~whEꖮ*Gi|ʃnmd@L6yCJ +t hiv8_M~ ysIn- ˛`?WsWڡaA:IJ[=>+LWRoOE҉+<3,ihc^8y"g=hJ˅FlT= &nRL\m\$Gb+ kVbe Qz6ZUgHJ6 +ہ7LIx.2oY5$NKbE*z H--E.R1<w& Ev͓QцB +Um% _iDpyDXJ}5d%έr,2An@udET7 WSVYW?NRŽ@D&HRVRD2ˉ R;]$PtsrP׸UXGONWs,U-@@ME׼nPI|!c$h r0-#EbO(ئJCuj^>:@3=x"`I!L~c&[7o%Wy(C7YFjKs9>Ѹ6X>uEJA$GF@:eCJКLiBf +FaP@IR7mdpJƜhP?n@auV08 HUpuC3L i"؛u +#SFiFoLaPV8:QgZ`t]`8r>L4XB{D>΋]# 7Vr 5>8uc-!܉臜)t$oWWTXʅPr(@!4VB`6Z`r*4* JL7dZ) I@JuXqD>=pI噼:Z0X 2줊l9Iw4\p;A,:.HlN bYH%C|g"=1E ZjNs*΄[(V]rD-[迦ߧ3Tů.KHF[2um2hgu{|;,B#T x`ُ@N\JِOhdX"CSt@%#]C&39(){lǫcrb +Sn3^ݤF$6&DrjXܪ^; _1; Q~ !uƂ$ J}`b} 3I +d+rֆIY:1ٺ3NN&#i&5CltuN[B]A8ǚ&٧c3/bAculdoÖ!|9;Ul9/ d;ZD" b; IEyoH(hE;G>lN4רROb6A0ip<8uO߫}%1KA;R }$҂_߳]F؉OҭNy jad Hm~MA_X%$ )4)W J=y &c%q&rGբ_n[~ {. ĎF 4YV K 1Lgt"Ke+lfs<(/zrUGtJMjzD}yڊOIq%RA ZQ\rQ~@ +#gD=7xmE^րWt3:޼|>Ţ7|L}246pi(mrVbb +}7F*4RG3.P}~K0LmT]β<_en $"Gy{`hfXhJzҁbսq?H!=}V,TκcI+7@pt[,nEf\7kR#!ikLO$'P4ؽF`3s?)R "AriC3?D; +~>Tb¾HI{HGzM4ff~Xg46^Sg4xی4U]|$NK \f- G -Q +vG{;`~IXgC"OQlF{애#أ KN1@Цp!wu϶C,yG*먩9[F8]Ilq76nKٖ ,L~ nӒe'rYZ -$ΫuogX`'g^Ȃ*(2IΕz{=\1:CI$lR,3 q1y&rҴJa[(sBa{:Xb{]w],; eTlGT; m *c'} v;'m~yF83ժoUaAgEѵr,&Rv wŠǟ'Aӕhu)@Y& +Z]*6,Rs-WMQP QVc(ѿ& +t>ɍ0AyTiqK"c Dv_ ěJ)CbjJ9RrIH&/uM#A?Җ tq9oUNC] tiz@Όd5:q6 Kr(Yk@5q7ՙP-wBpi}~ ֌o׆H`Q֣J{2- Z8W"(|Obq}<5.:NCoZZC?M).-*u6)/(/@`}@Z a "$qBHڸãbk<9+ +.z=i|,X8O/@2B۹{7ZC&O #LSMk~Rߖ-#tO.ş}Tq8:P`QJ !Vꁛ*X^mY~UUY'%,Wym8g>H!v<z ݋rϲ‚~IMm_q>+%sr0ش+B +آ?VUĮmX8Ƥ}p 3$ӑ5 ch9z!_aWѾˋ䧇zfuAoʍSXH}]#@;|4שP2aL]W!8)|ZS|}ehiT_/{vT6kQ`(\R%ibY]ل4,NxTkOҡY5H +me+ Yn|Ԭ,:=CM!+pAr +-% +hEtn$49;tL;?]cL[Cm=feG2~8Ttr/>INB{N.Flkz]l^iya8˟ rihQ$N'=OtTğ(Flt}Zy +䱩n&{ fG|sĐ'u6n%raNKX@ Ivkt4feA8aDࣚ17Du0N8yWNF~.W]bKM7PLw~{DÆS) u8]*rCDAv0B]%XzT53 1!Y;Q=1fFtnqM +&H> i,P0? +Pԡ#H:5# 27!p8sϸRP=](XTVڙMH#.&1ʋ /Y2 4]66Kl5ypß8[RԚ N';f +LP NZw &kò!S8:?yn u3k[W{˜\!::/L{4\m5?7~t79Pc@rdWVu % _jE*j9uOdopG\/5qv{}0`U~qi:}ﷇa׌ɇ;>iA*_ygB98 xPd j o",џvXb +A `qy `A=3Ou e. +WAMM yG\L +6m쑑![}5=Qlh7[pvu?OI"xKHvM@="љ&0۪xGUD:._H!! ٲXh3ok=)K\g4ƣ!۸ktueAn;C-ZºBn~*sʦA +ξ{(=o^]3PN[PÆ:{8 qU"É@\0_G}frRA@dNm{D7aM##lWG2)eKw,9 GNbk$BƸW R"96dD!EU'{re*L֢_05U!5}Et ̷@oũbv*WDNH7[i0kT?>)c~T[_/KN6Um +])J09P3 `L +o5,H@e +uDM\Vk +mNzd샡AjȳM7H6957`tT>ٶV9L])D_8H:"a'Żύ}:5i *_p\tx='(z)1T1[q!35Z>Vb;{7QY:yLqڝ לƧE@䧡> wbc# Gɂo%/fe")xB&>;UuMӌD/, +=Wp,ܓY!*QF;kN0yND)#Utcd? jjO ;V߫U)f̆a]IS.J#$ 9帔Rx6. &c+W50SQRu7'vye(tU_NPɗ0`ry=D)Ҳ .8S٭|W/1L<@R"FLuH OfZkB L6DY``y 8n +U#eKGw/grɟFZ7//AMq 7c0> "|aNwG'ַ~Iڐ2/lwL|gA!>xo*k|QKF8Lڦ /2 DƤ`@Z6-)pQIau``¸ł=kQDFlQAktS$rqDf q$$Jv|skB+P l +H! `h-cpQYYܱ /HA+д[\8~e ++\s$mhp׊ ŦI7'@!59mm ! ߇MxMz 9- y@8O: 1GS5+:xJwgrd&IVHH{*S"֧ux 1:B;vUv ,'J;ҷUmVٵBŧώ +6zosLغny`HȕA.wCr6wȶ1#)G\2PpZ)cD6.õrAg\<}ojaX8N#viRؿ*ǝ #P]5H:t}:^7OC9w@{nȾV32O{,L.%~9cr GWDN*y^!VJ`GeW@DjD-b=h?^>]@.M"4MشEp\(0ũ51z>*PE{'^ B +endstream endobj 62 0 obj <>stream +̤v8{+2o5G ķz8b 0T"vrNyB0G8~q2UEz&ԾVe<^"`)H&  .pPp  +Fep2S}^( qGRuV8=]q1@զL;_0?@=GsFEz${(_.YB^q$8\2NBfLZ\LP{]Z+졊0~E9f NLk y&c˓?dhYtrF2BrKW8`we+lLQig @KmꃉPxؤe0୲W-Y.pT:,IOz 8[w$x;V[wd!EDk\f^J 33ׯc;_(K!bkpkfq85j@=1G̈́VV %9S]a'Zk&RQ-@i.N궷c +;l(F.'2C!-ZYT(􉪛GNC)ƾ$;PiƸ`4A'$ CS;6{\- V`Ňo\By2+r*9QCp˛kRC5Ceyx}*\d5C!ҫGGvmzv%VeoV粉=PH_4оv"2O('乩))S_VdkA@s0 qҦ~ tnZJ6Ʉ&㻓ZwSz5ΓZK8JU/n8; I*;%(V$tVVL*$oij +@wV ,{K˜RpDLK~8ekvk,L\f@dAQSеPB ++`Zt&"v)[FPPrb4ȃ:Ͼa-[d>t$!׷7!]nMQ99Gg {Ji0$iaa[MqSTZQ%Qd!@wHm~ )/JU_Me:1\ެt" sYň"{+DPu5'e{4os9t-o; 4ǡXR!мZ_[0Acx7vc~a08TEnD\exBZ@Wѩªq\3,HwM8BwEdZaIQXu9gm b? Q='Tx7!9`M(VI<%xλ%a`_OZuDYebyswJFc _[lJkE6CbipX5zD* aD|6M[QD pٸ FԶAϜEeFDS8h +hcy`b3Ƅۦټn9ZDS&ujs,^ۯ]o9 p('}B]>P6;z> AC)O;_^d7uV-8VS"mifa9wE'k&S0Ti=v:|k>sJBL&o?'K /\h<]ž40ŋ +feIXڒSEE ܅D0"_ +|Jk 8~(M@_Arh6Ƃ̶FR] U#qvl(NμK FqMaGX{_9!8?^<аl`rc`C sV\ 9<V7@ȃ<,ufOgqQ!!z۰~uό^;ǃzNVC[i'@wÇw lDG-:$-x,bDnt\è?4:S=QT&fhқ:Aakvӡ'Y !!dvty+P$;} ߶CXP5<7`a=d뵎 v"?Z;RLW8;fmwzkjSY9RmHr0hg9RUcLeޑlDOНEx5dQ! X6ˌHY6*L!^YLo>:q;]_M{FCkU.qv!5f^ +I<=4#z:FU;!GQ GmL +CUSj-19'wiNe%@5䏎N0'\KW:~u36Vpu2bK/,t#~?vJr,6J63GM"4q7ƴ*(8V""3ZiMboz&P}يJ6#nNZUR?NeUzXsy HY|(Y 1 q(֣wyaI~x%V8w#CN5X7_ +Rj>.DzRb +`HT}zW}&#f/m?ZVIN;FD,^ǤNm:qrs铓!*!:`z호!6Җ +_MtgXٜW h<) zmU({5]o|*0<)qBłs; 9"0{VK*_C + ?OL]7χ 9]A7%ӽm4b݆b SgE<5~JG]9nt* +Q|k&{[= ao,`.=c>n ֛=p:%I$l`@-pA2$5}s G5M"-,X~[CB?w_˗_g?GH_Apʧ KA"(t IJ AU0R`'wjkf]P!u@ʆg,b]\^? Zd*#(dF>|\}˩?.}IUp \V`t$75 +c["]V'0z˲dvB0 + R.)j?(a?(!7ՃlS}NT:NUq.Cbj`Ʉ9qHΕTQ@*\f@ꋺGR8x  +ԳӈM1GM!]WKWk} +> endobj 17 0 obj [/View/Design] endobj 18 0 obj <>>> endobj 42 0 obj [41 0 R] endobj 63 0 obj <> endobj xref +0 64 +0000000004 65535 f +0000000016 00000 n +0000000159 00000 n +0000051112 00000 n +0000000008 00000 f +0000051163 00000 n +0000508768 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000081986 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000508838 00000 n +0000508869 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000508733 00000 n +0000000000 00000 f +0000083977 00000 n +0000508954 00000 n +0000051574 00000 n +0000086961 00000 n +0000084277 00000 n +0000084164 00000 n +0000082048 00000 n +0000083415 00000 n +0000083463 00000 n +0000084048 00000 n +0000084079 00000 n +0000084312 00000 n +0000087035 00000 n +0000087341 00000 n +0000088604 00000 n +0000108982 00000 n +0000174571 00000 n +0000240160 00000 n +0000305749 00000 n +0000371338 00000 n +0000436927 00000 n +0000502516 00000 n +0000508979 00000 n +trailer +<]>> +startxref +509172 +%%EOF diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-w-text.png b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-w-text.png new file mode 100644 index 0000000..47a9aba Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-w-text.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color.ai b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color.ai new file mode 100644 index 0000000..d9a39a2 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color.ai @@ -0,0 +1,2613 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[6 0 R 40 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + color + + + Adobe Illustrator CC 23.0 (Windows) + 2019-07-10T00:11:09-04:00 + 2019-07-10T00:35:07-04:00 + 2019-07-10T00:35:07-04:00 + + + + 256 + 184 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAuAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FWAfnB50vPL2j29rp0npahqLOqzD7UcUYHNl8GJYAH55l6TCJys8g3YYWd3z7PcXFxK01xK80rmr SSMWYn3Jqc3AFOYm+jedvNejMDp+pzxoP90s3qRf8i5OS/hlc8MJcwxlAHmHonl78/JVKxa/YB16 G6tNj9MTmh+hh8swsmg/mlolp+56foHmzy9r8XqaVex3DAVeGvGVf9aNqMPnSmYOTFKHMNEoEc03 ytisaeBZViaRVlcEpGSAzAdaDqcNKvwKwr82fNlz5e8s1spPTv75/QgkH2kWhMjj3A2HucytJiE5 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 /9k= + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:b18d3c3f-b3af-234c-bc2a-a4f99b99c360 + uuid:b49ea55e-e503-4126-8c59-98616a79a6fc + + xmp.iid:31d99a91-2f8e-c54e-9b21-e8d06276344a + xmp.did:31d99a91-2f8e-c54e-9b21-e8d06276344a + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + + saved + xmp.iid:d85e71a1-fcb8-c245-b84c-ac268702a414 + 2019-06-24T15:23:01-04:00 + Adobe Illustrator CC 23.0 (Windows) + / + + + saved + xmp.iid:b18d3c3f-b3af-234c-bc2a-a4f99b99c360 + 2019-07-10T00:11:07-04:00 + Adobe Illustrator CC 23.0 (Windows) + / + + + + Web + Document + 1 + False + False + + 1646.000000 + 1185.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 0 + 0 + 0 + + + RGB Red + RGB + PROCESS + 255 + 0 + 0 + + + RGB Yellow + RGB + PROCESS + 255 + 255 + 0 + + + RGB Green + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blue + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + + + + Grays + 1 + + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + + + + Web Color Group + 1 + + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + + + + + Adobe PDF library 15.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/Thumb 46 0 R/TrimBox[0.0 0.0 1646.0 1185.0]/Type/Page>> endobj 42 0 obj <>stream +HdM%}aLl= a{%Ҭ|{gd 0E&7"/߯o?/ן\+}\/?>~U֓#:ǟ^qYʽ+7G}U+UQ{z;+u^mu!Idޥ-޽Ւ%h:<]Y~hwҀYu4=oT4P81N+z[Tqp7f%OU<$j*mB}UYNO(fĂW{Lj^y%f˫N$mfɂk֐hԜ s#CFwqPiOG3b_.UHTSoDdck7٩, NHp 7)_Cfࠜh5YG|1Sf[¶EN< ֐{RDFvZCߝvBטUApwAm^+ȑhR T $E^#0D.>&lcr4'@ )@?9]Pt[YÑ(@YRAų)S! ܄6ƮͩZ]KגMVٴ(}RE|b8V]/UʰJ@"ѣa-]5&jr Ki)D|/5xqFb/exv#R/NEDM #8J8q'8lT!QCߺRrx}+C=Lg ʝKꥦ +A_WՆK8 AӶ"WKQP_e7}(B8;Ҁ- + :>q8F[@." +&QgPS37qlamu Qm vt>A&m()l~45 .ks6 B+L2uwTCQst$TghO3=+!%:T0AfCS )K 0O[> 0@ܷ^*0IC5^-xۀz4R11L]H4`YR<"IO1nA5B񎢄9A%,3sPO*'r͌m ۪C0Ul&!_`B`+zϱ^]Xeeǀn?&ȊcZ_(ϮUK`I )HQp" +2#}`=oWAoS*FT"#)'&0TIW-rgyNi5jCX'<F֑U9vvn ֑K=8$ܞ}?x;=5e=٫nJX»s>O<t==_hi\;H1u`zPmtM +}W;T4Jy8i @8$isNeOLME-za2OC8tClO\gJDaC21>Wz٬[4aM%g;umy^>~9s:Im",4|&0-9<|"DhhGRtDHp=d:>'cm>͍:]{|ck|.>YeqJ2,,~wi {t0\\;-sY׳6Go5ydf=IB1̄ :T,f.LqgxEĺg!qaE>"V7Ų0[O>SsfjD0cTC!)T +WN"ý NcA3IAܹI Q1x('$ܭbH5dOivvRQⵓLQhwf-`Jm=Im_S4DHӃH+X ZYz"AȰǹdp{ aD ɗ"shsZrHM&:6alGU) Puz SNPK/;vZO6wT\U^;JA&Jiy M 3/pρ*㊴!mm0I/H+8YvBP|%$!b+{H4y}$KWr>2R Tt<3"t9:,n zStQJ򥢠H:r.z( JEN$DjmVUXHz&Q*պk[lgL,:YknGfIA@,OOd]FH<ۦBp$ J 2Z JbtzJ֌e-}`-|,jn9vIdp +ˈ. +{^@䨭BLmhIHOP :yM'V|Rbw!$-cN͛bmbK}h>Ǩ/-^v ^iÑl +IO$m~&"* 5TG!x9f)Ame1ڟI:- ?BbgreO~3JHK12 W]UF\lurdS\!]_f֜>`BONwJ+IbZ>`}6喈0O q*I=$P;x6\˘|>y2ʦ5dTNzL!i}{ܩW!Xmx eYM%Q!'_NvTB@Q5;;fQ}ٔ TSGUUr[4Z PV(koJT4cx0$}.V +LiIBSYS1R ,X`dtQπfX~3gC3Hfq4xU+d)T'՗ys8]zϨZ3+)aSU6DDƮR{D,xQM4 q K=)lݬ4nst ]4^OxM40kƠ&y%tQ'bXg fk=.2my:H2'c( S&FWYv. *H|U>j@UpԄm_0-2.M7=3Lh1oH +t -evU$-{g.ʺv :9S+d +gUYhŗ|h0W?R[vEt ]U:~S 2+cR`?Idp}TN V\\Q +y~{FkԣV.|p3@I …WVW{9,@c:!q`*b{6r1TܱĮ)Ĕn$d8HdE[FH~-޼yz1sUGl| mۃ +Ȭz~ښWA}'T?猥ԙu #ŠuOcoCz۟ckMB4,y iOں>{Q~g{eh^fQʮUv{嶉l:/_ɪ|}FOQ^;&A*y>L/F}o{OOj+ttHo#/Poyq>2|)2/?FG%@˳8Zi[/Bu\+;/^7p jdHcݧ>$YЏ}o t'٢G vriϖ._=acY m"Θ:tS(f:hsJLfBgڒuۨxQSO_H#VƔ|K<'7OHRsmσz{kL>g(@/Uw-d} NxDw2d͆ZtwǞNeudxfrfT3zäɐ+u顯d~}w˦C:qgh +̈́LqeG( +]Y{{j_]QJ(PL4-pR^N & x6BNFDT3 ! +m TqEWw]5wt_#)q/:lv;+_qV؄Z+vrrK-p$o; fKnL푧RsmiI{{Zufb SNOiѧly~K)q?R8_ɜ+,Da@XqL)l*/.=4qjЄ>O#[F毽iRT)eujϗҝYm s' 8TlM#l)965yX}q~ő˘mkrSn{9 dxqvt)J!c)Yqtw*g;98r)U~D6n*#6@V0O> ,N0pK u&4@jcTkdvbk xwUBo"X)\6R}(OZ9X<-0SJ⮶kr_,[L7D:4@0{DqSU&Of? $ե@aOő@Vb|`? d6^Wb9`9:.<|Ƞy=|o8k9 h}_\:(o[b7|ߓKYoFh}m-m9]__aos#6I`hJه\3 ԝ6NFH\V'muR2U.|7KL:iD6TQo_>R/nNWv*'O hDK)_9v <F`XX}O>H@NA)Z9>m:B각м}H}}Rqtd>rc-3dFh+=Ux2M k⤱'D{CFZ0/f@ $.y` ;)YyԬvvXF<@4?u1|s`_r;~*N֎r!=tA-n_eNB =MEqEx=91釣E|RRD6N-/@9?ٙgnb暝bx@u./D|).zOn_pkq6[ަ>fa2Ԇa&ZF( ~]avf+vf%nqV}~)F4p g\tKl0mYn?W55E |L:jPU/FJ ,ym,I  ͱ5-Z*- SxޘZ ?-džU>"S;ޮ0-iMV;BϫB4R6phY/\Ȍ)xykzlYn^T2?O;M OQ Ƚΐ#ựK*kdޠxbnbnmH8#Vl}Lڱ'%Bdpl`EI-dz/BZ|XqLl5ӉO6Pdk,cPk$êZ@,;]՞',5 ؾA%GlqЉi^Vp2e,0@#=|E.2}K=@ь֦PI-QHҶ'we`+x۶7!V ǖ7~kاLY}Q10%BQ +}0f\3fAY^[AV^bL\:>. s,#]Vv$9P+%*o{F+{_yqr@)Br$l&0 <_9QeZl\3 9ZUgXu^".E kE* +_AIL̶) +pz )UAL,#LFa#Ƕ.pH@r 9]~U̇ʇ>㨑CE<@fɄ=}<_W +P̧ [e:86HNF;2nۊ,Rg'H &Io{> ӳ74z@; h\E0GIʸҽP%JQ1Qf/74&d089< $ۨHK*O*Jȹ{_H*o)<'l_@*].Ɓ#Ѡ,m"t-GryF3Tͽ5|TR[G48\}Dt({KxU{P_\љ1nd.iX. z;8o +xWnn1ԕE8'EZ-50%y>[hb}qd +Uk6'atDiOr|4X ǠnYPV9 +;֑@`GOy'I6ۍRb (ڵc^Jn,BDCr.>ӡFPz삋/b8 ?Wk:%9IӉA ⋖eUZV픬0ЩS*E=I,>mdб@I_qce U/,]ȮL# '|֌lvtۙO&nj81e:fW۳D@G.Ie> +)SHL%kag„ #~Daf$2cBBVb;C;,%Ep7J&A+L'znAlY`¡FbnmM_#pXnC^0pFE+\>$?vM3xΦ(HyxxGK !`xx /.z$SQo͏n3c9-+1ʝGa .(A@ϐ?(DFui +s/˞Qx.C/r*+.eU"31^y|w07G:"ZyImXd~Z#tXPA[5Chj#>X01=#brWET+pΉTO xze1n#3إ'ƧAn=)T`f x+,Bkc1hF(ND/%rE#elEU/cCͨ"AyzpVB#737bŲ,ylM6UqF\3=&q1.ݰA zS+xXvJsv~`Õs#Yᓹ#:]Zh(ل+?:w^(eܨ z6ojG]J,WC 1`GgA['H|- j@;v/{x )2] lbπNcc!FmPjp!ph:>?'PZ> 7׿?|iW-}>[vWraMƭ ,\'#f)⤟F|^^M%Dx@ԗ{ubT퉷| 0f/,# 0k/zѕE"/T0N-bxY[^}(1ReK|0$ő3&E8[pC^Ǡ eZ. ΘDĹɡG+N#ȍpmeBpcy񏰅zkEc0/)V ]I5x]KFՅA{b#υWMXJ =Hϒ}(HAʞQTRgYACy':,=8 +e8?CU۬jSeO /) K%'pq5w?W\$t1sզ{2J*.2",z)O8bV%tU^߁P"p|xbWό~6%6g>[EG̙]򦒨wP/Ѯ>Iu?мZcZy +TSU{qϳ)vߩ 4crT׷]Rm"A1f2(A1[g~6EQvi-z"ѽȚb֨~}m&N:fz;{*R"9(8ZMSR>$E'iKdʋpMQLר/'Zp?paW$GוkyfUa'c[]tdm6ku]#UZt6rd#Iu=G׹)P-;=' +o"u@Zwݲ9c{g'JQu u\^l/}U ^ω r'+.=VDoFg MfێFWa~|Sl\b&89!sq..VG2(,[\#0ٶihrU5')3jʑDxvE +{7t֒nmkgd{ uyn[J-+K:ݥ$D[k*j?5 7fo67x2Yo SP}@  N<ß_ϴIZv`s$(d?QyzDzƲ)T"2ʞ+#o2Neٓc^]toI(zM7'߲̈́}'K+5Ӭ6LjŴjQԐ0 A"x*~ܧ=N|[\Ufлh?aj{oٓzŎ bUZDs,W$CdL2˶5Ae&&0mc0J +FY(ըTjcxloګg*xj&OTF n;:uy1:~rwd2B<^Arʝ/[P۩L}4T'Q΢  +G1zDB^x+%qF8$^RO?H ulvGY>"(D]HF0$!g^՞C̄V/rfnB`X) k!-G+taZ$M_-)~U$ꬴ"b)aAd08=CכzWiDz>CW.=\Y#*$fjnRC:`55Y5W ߛ놧B?<Q`k{;n"Fi'Vѝ‚~{&ך!. +^!GyMYn&2=)+I[do K7#K͓-h]]a==f@\PnwRyq T~)#">cqe +y7&HX +ۺ%^pU(UgOǧetK}{N`oIߟn',ѝ'(G(pNG-W"tp>s"GqxLǯ8V7ʚoXO|P'9h*dh)+#wes^0uI,K)) ps_,VXt&W-SG?_hjmF6AAb1}GMմa0R1b2D2ɲ,qVa8jnO5'.g#w%izɣrxXRis@C"ڱr_P4S +<&ŋR.t<"Tqյw=sbF>^؊siqkvPn#*7M"ҺxVfi` Dj؉` +e)HD%HďqXGȄCVM/ +PQ8r3@wZ?ID{s+/j}Lɳ1}/ʗ_zL8Aqu{[9/d +!/ŌZR1 u/$, +ܰ*ʖn )+ hS.$p{Nx n/V;&^e%`JӪdcY릕0ay#!`Q1Hb ;,BiGZ)|0LUbi&zAgu0`mkt3H02x@R:Cme`%~.1+TZlʫ ȒUb^ qE ұk={mA96~aFt/S>+%Clb2Ѯ2;c,q #eV.QotlrZ ,^K<_K7h/,b -}yN=PGG0ۨiG j<ATQAgL3a'[9t3>͵'QK ZR<(ܳ(Б|%VuҢ ;-_P ě̱t;l!a М!Њau bNѥًi\p UL4nF׸~.u Tᇡehֶ5=4&d1K&DN(@nKY,ףwEUVbێ+l0|EW+HgU0 } r(yGDsextd_ 0@u/A{Qӵ|dM>w4n`]ߏɨ }#W@^TλUsjv>}g2*'-3bJ3jI܌RQ5*uDW>UqB?|Y7SHx "Y 5 9dz#'uL-"xڼpvyw+qTM{`;V12MM=]xwD+tQ:d ,&Jy@Ub .v[p[ZǷǵ! >Ƭw8ڑyk&3)ڿϺ(NWD;0] +hBO8.:8VjiJStyB+V2ҨV+&zf~*Gw`_Wج.OSn[/{]i˖o:)7#ƙ[+wn?sL==:YYl&8mkа63DO>k:zrC1 xr!K'\>L{K},ӿ:^o1u1Z=nW2?2Bn?¼8_܎c^є +l9WQ7 +zG7TɮS;< +hǿS~c$Iu#Rz'$=0íeȁ9hQx#jO6'*ƻwn_9A b;/z,n-7D:eڀ'%d";o TJj]?A3\ G0 8E[7U^A@= <_;C2, N.h#*2pz}~PcvNCHJ o%p)&@L3s+q'18s-Oкijm:hyZ mJz]hF߅iB.2T3v']kD%<_ `VU'p pD-Ld XOBƔRBOǐJf\Rb٨P'{j_FP.th=JK S~gU3"URT]zPS rMVVȿ>9"LueQ,Ͽ=o&Bǘ^LW[e)JMkO`ureIs ]u6}w>FڒVthl9ըe ;1!O^r5XǗ{:;e^0>*,piDͩ7.AuxU2]nOlyIL+HY#(1G>>>7iPsirrFpFE0Q5d:I(sYW׿͖>`ja>=٧%/Oh;%ڮaⰐ:==^؂!U6$Ӯb +_ӂ?WƙɊD70^rTn ղu>4n4lPܶo/R]n Đ!`gLrcEs +J3}91`㍲ ܆j3~ީN"_J95AU+D.wP/k }n 2b0SE/%fTw[;D@7׻?;F#?neJJ{@P@k:hQOk(Bˆ5j`3' Áauhř05wE9d{A^w*7,숮9B- ݹ{Bw61/$v)}#d+-605'mȎ ,3{o{JKa9A~e|93ߙꋁ~E ʞr:>f vcඪp{#$P;^oяPn{a0*:kTV]ĕfWQ@\aP#[I=1}8́C IGr#n~϶k>G:A8Zyl䴹%x!"\==8gc`\|pQH s^{rh/0;~_+a'SAZ_wTїG9M FFGPg$ >.A߆vmа֡`~0>9=/XOUlM#6uY?PT2|jtyv|DAD;ˉ$ڗUp}GM1B{EօiaTJHe,)s4C[9黸 IAwypnF^Őq˖sZvXh]sl'P&BSK F IPb +&hly|T!~ :0PnNM,Μ9c3π 0䬊3A y4ze}Z䛤OA9hz'ΕO@[v׵JCǻF'FPdDP%Y- o4,yPZ4/O.Ĩ3t>FghFNcQCr9.JL>}*aT> 1ֻ~4p/3Qv W|]~.&s 0%Ӟץ2dޓ^A,hMvmr<yEa t4 - =J(>p*!a` DB84EA=D#p=:I9MLR'^n6U @ S3cpH6!3Q%A.m!lxFz:堲; +ZZ9V5/$zc0+bm"A@JJo晞=zv +Y!4A;Fy"Z5CtkĜL s.# +krLc+(}n>U- /bZ!{Ё9-F#{egy4|FcW"defKE✬]`e"VĉVF&۴pܩTD^3<>VhW1q1y~-KzesHWs$+f2V]\hw"ҫ%f<Oe N FpNzKLv;(c8q@kdY_GfV!=9Է XG'֬_\Uzi{R>8zKm :.G A`s՗v,c<^jʢ(R+= {UI N +[ |kf*~knR~,c^nI#H/ v_ȱ$5R꒚H$ R&A"RrfB-{e͚Ԃqv[TJZ]3Un-u/+(# ˳X O3Jr+3斀;X1k +ɕb굟[瀀*H4x>֧r~Yc3 +຀-V_O7+L9qh(R&D II/ȒG>CJ}X}X7W#y"HσL:yMĤ/ -{ +`)2ٝZc $HyK* pg6N;iY_.!ӴibZ hgx$-j- (&Q_Pyx▹ uAÔ `n>‚nhݮ0XoXi،_۱]R+o*k~A+/ԭ&k{΄^6gaPQ{{ 8]mCo3@Ll_Yk? HǩҮr,T)A%bVĔ*ky\Vbo 2 HHG7rÉ{:/&' rA#l*,8j=,_#B@#?}UbC/i[ {%b(-^NW^JH5s*!BxC4W K]?x^ޛ855G[Vyn*V@\LR@d^*s%kuWD/f=`'*G!k.LjlRxc<^A[z\κDnchz>'Ԝc:+lV*m$h7#ڢV|=3 AEq + ܭ(@M8*y'"cD|*2}4@=rȋH!Oב3ߴ.WkƓM,Y/ Z3RmxaCw !@FM p +%0c-ko_v,1};Wg8 ngZL s4r8ܴ R_e5E#2 ([7gfͥH.K)~ OK#̥‹@gb R%6F#R+OAн {5Zj)VA3k\?ʂRBiA9FvCK8/(<'cLgwPnO= ́VAwN>2BgAv[sIsBcQH>fK= E:[k,uW@gL*Ş3Ҡi}>g; P)E;ﵾ3^ hVLb(`@R+u< A%οQ߫>\#CdIrv~^_lz IpuHJ8;3Tn1N@6!Aԟ|]GU/4͋shec'r!aWW/?)Ű_uՏGP )dwu^b@#˔##Pt2V߈m:lno9P;= _sZ TmT10#MA ռ|CF4CR +j=*w5Mz|}k?4ZGceBA]pu#S|Hٶ.DZq-0ozHZU`ZQdY|5"LT:~d[KXmk@ubKa..&RhWь|J<|dfqh!.hViihǷZ}';h{$TH ͍~&#8nd(zn {8k m)Nĺw:Q>N7Va,y‪" +j%&j WJ@iPЖ3yS£K +–0S} Xbvߜ`r<;xJ}@шx&9T%F(gu[톀F?:u蔅XEw]9\|+GpR ~eJy4\x/}a,#Oat"7ZX0T}eDy4*5I0ۚp*S7B/'iS,+8ԍTX|'Vq8TRL6R%+QKkڦ ɕtpa&pL- zl0=wFadHª2P,=>'R<>P2|<`ؖ^ -`M!MR|^Zme +mvyP(V.^4r,"D|IHZq )88-8 >蛊_ܩSr0:†,@,J(]H\#s. HEh0D'iI`u&U_vd'/H@VvJ7lqJxl͔@+#ݜ&``~0fIJ&'24*()͚̒v}`PMBH6҂8$emб Ni +"Us`k8à` 2,k|ZY&zM'7>`:WH$prou1ý.IGy$J <ҽJmr7/d=wAhG:{UR9-@HaIt\БJq;⪹w$hz˙eX&S8&T}ecԺYOO6֡8uڂXDO/.\ WjMr{xt٧Ik W: 5*n % pJ$JrN!\尃ޞޮ y.pmC?N:>rɆ([% o$ u>/$hB^9Q!x kg0{ K Ðѽ}Ƌ!?V72X6Ӭu 6 r4;K^(ߔ @JkD9KG#0GWjաi?Mw>/CQ.2W3BkLWRqAҖ@N! PPZЬS6JP0t]91bzj#DPhC-/rAO?eGW"6] +8LjXJ%4q i0My e&Bd>Xב{e|W#4U;(G +Ѳ{'UFU.,3xC];548Kׯ 5u~^Z E'WG!,rn + #' (t;zc@q: BvϦ6f#RJ8Kmhг!>qf[c7cЀ>Ӧ) :4PH-${zBJg.35u{JTRGv$PXߡHane&NrM" :9{^(@I_;xХG0`gw~We-΀vP<1!*\N= ǁ5<p%j9z+>ՅF?uT/CbfJ|etHڔBb!N=n{ߟ}B^Pj/Ϋ!.ӥ9JN@ +@( ?U&hl~xTmA'Aյ8nG'oOYy=#fē&yhGlK7%g'>`d81HòHFz*|/7Q +)G<8Ӳ!*n%(#SrP9QG5ТhhAXF娧5jrXTPB1MzV93tBSH[ךE$ŦsYz;5PE +=e:%Mv(^3OiڛI2!/x۴GᅧPp';( ՎE@mBë2;?r#9W YY  h>ْ AK7XжJ1{sՔ]_ +MeW/DwL JA~KהY£i J !]#jr9/Qz8e&"pJ )Hhy (E E2ܖ#_Є1I/LYc1%\缡]kA[ z犒nK+1E0o}І&N+G .mQ+#T;S|kmirO>ZzG1c> 7;ݕC2|Γ(}2HEQ|K.%ƌ"mK +RfHX U6_MOr1T8m0}^hP*h,G q:8HQ iۤ*E^ʀ<'D)\vݹ+=/lO <[.l|)a:5+[{.=a}9yT+°*c0}잌Yh׷sl7{rȤUۥMch΋6eq;I콖zˈB-Deudu0zY]HJ/T0yMC5@*GwϾ6޳۾Dܑ~,Y>ߌ{ ?-z>NhU/|8[w->dB&及{ o +ãj|S,F}bX75Qۥ̞ zv1#lLNCK{xUo=H#`_bkqz3\e5q ٝS\tg+ UOYm=WjN{Fn`u*1hw9>DE1<@At(Z`x,f%[Xׅ@bA'Az}B Ppuߓ#ƒt/.A[GF\ f2 j}C_Q?%EQ_UD]kOb$9ظzFxUw􋉪X3d%~vvΏe0W*V^iΚ<1X +v|H~7f2)8vEI +ҧ==F) @yjb`x\I4L uCel w21S{EzIPU.:bb>QA"jF c)_e׿  +endstream endobj 10 0 obj <> endobj 46 0 obj <>stream +8;YQV8Tquo%#/]<@D%b)4cH_i@Ch?Bj6IC8fOtE,M-o6+`=/mDq2f"=r^U,R]a=j^ +n(ZsoZcq+DJCJe:A3Har,Gd]GhC*BoO2gmrpq-Qj^-(e&=WLD)<>?gfVjV\Hd6U=4 +/a6$fT2[)cB%@,S%mijnL?)DNd?CQJ?)R<#BuJeePa+Ud%Pb^BR1)?Igo(QYd1RSo +Bj$/VqACNrincP0Qpb+@/L*+q8tnM%a$@jJK*bBVi,ai_F&]5SFt%IN92sD=$3DNg +,*;kuhF?DkCI""Q,gq4"ouB6]F6`Mr]:up[Vhf*iEpf5ld;u]?8LG,VOe_A]7ied= +b;-!Qaa?tqIpnr<#@JL"A6e;pgI.? +G`#O'*QQ[9B?-(-M9`G:W#1A`I[81Fuf2XYp +\X>oFCQ)*?2#(OIGUDck_KU[5Br&mn![3ed7)Z<>`Aj0"6H:OY3Nf];:;ON*R$UE1 +GTjHFN>Y(ocN`bumH#6]K2O8@ciLtMRj[A^b?jmL3r<>dGlRF +/3aSUls0-Aq1'COB&bhu#O"]r(o;.a&N!c;A,.OAkR6<)k=jM"'f#iiYNr1L>3n3g +>uKbREsJDPgdPngMpQ +endstream endobj 47 0 obj [/Indexed/DeviceRGB 255 48 0 R] endobj 48 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 40 0 obj <> endobj 49 0 obj [/View/Design] endobj 50 0 obj <>>> endobj 45 0 obj <> endobj 44 0 obj [/ICCBased 51 0 R] endobj 51 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 43 0 obj <> endobj 52 0 obj <> endobj 53 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 17.0 +%%AI8_CreatorVersion: 23.0.1 +%%For: (jason grover) () +%%Title: (color.ai) +%%CreationDate: 7/10/2019 12:35 AM +%%Canvassize: 16383 +%%BoundingBox: 775 -4151 2345 -3022 +%%HiResBoundingBox: 775.00001249289 -4150.732421875 2344.91690555004 -3022.48179284205 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 13.0 +%AI12_BuildNumber: 540 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Registration]) +%AI3_Cropmarks: 728 -4186 2374 -3001 +%AI3_TemplateBox: 320.5 -240.5 320.5 -240.5 +%AI3_TileBox: 1163.4000005722 -3891.0999994278 1938.60003662109 -3295.89996337891 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI9_OpenToView: -10690.9042553192 3369.87234042554 0.081597222222222 1809 874 18 1 0 56 151 0 0 0 0 1 0 1 1 0 1 +%AI5_OpenViewLayers: 7 +%%PageOrigin:-80 -540 +%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 54 0 obj <>stream +%%BoundingBox: 775 -4151 2345 -3022 +%%HiResBoundingBox: 775.00001249289 -4150.732421875 2344.91690555004 -3022.48179284205 +%AI7_Thumbnail: 128 92 8 +%%BeginData: 18840 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FD23FFA9A277774D7E7ECBFD18FFA9A27EFD5CFFA8774D774D774D +%774D7777CBFD15FF774D7753A8FD5AFFA24D774D7853774D784D774D7EA2 +%FD12FFA94D774D774DA8FD59FF4D774D774D774D774D774D774D4D4D7EA8 +%FD07FFA8FD07FF77774D774D774D7EFD08FFA87E77CBFD4BFFA87853784D +%7853784D7853784D7853774D787EFD05FFA27777A9FD05FF7853784D7853 +%774DA2FD07FFA94D774DA2FD4AFFA84D774D774D774D774D774D774D774D +%774D774DA2A8FFFFA24D774D7EA8FFFFCB4D774D774D774D774DA2FD06FF +%77774D774D77A2FD48FFA8774D7853774D7853774D7853774D7853774D78 +%4D78A8FFA9774D784D77A8FFA8774D7853774D7853774DA2FD05FF784D78 +%53774D777EFD47FFA94D774D774D774D774D774D774D774D774D774D774D +%4D7DFF77534D774D4DA2A84D774D774D774D774D774DA2FFFFFFCB4D774D +%774D774D4D77FD46FFA9774D7853784D7853784D7853784D7853784D7853 +%784D777EA24D7853784D7877784D7853784D7853784D784DA2FFFFA8774D +%7853784D78537777FD46FF4D774D774D774D774D774D774D774D774D774D +%774D774D7753774D774D774D774D774D774D774D774D774D774DA8FFA84D +%774D774D774D774D4D77FD07FFA8FD3DFF7E4D774D7853774D7853774D78 +%53774D7853774D7853774D7853774D7853774D7853774D7853774D785377 +%4D784DCBA27753774D7853774D78537777FD05FFA87777A9FD3BFF77534D +%774D774D774D774D774D774D774D774D774D774D774D774D774D774D774D +%774D774D774D774D774D774D7753784D774D774D774D774D774D4D7EFD04 +%FF7E4D534D7EA9FD39FFA94D784D7853784D7853784D7853784D7853784D +%7853784D7853784D7877774C7877784D7853784D7853784D7853774D7853 +%784D7853784D7853784D78CBFFFFFF77774D784D7EFD39FFA8774D774D77 +%4D774D774D774D774D774D774D774D774D774D774D774D784C464C774D77 +%4D774D774D774D774D774D774D774D774D774D774D774D774D7EFFFFA877 +%4D774D774D7EFD39FF777753774D7853774D7853774D7853774D7853774D +%7853774D7853774D77464D4D7853774D7853774D7853774D7853774D7853 +%774D7853774D7853774DCBFFA24D7853774D784DA9FD29FFA8CBA8A9A8FD +%0AFFA24D774D774D774D774D774D774D774D774D774D774D774D774D774D +%774C4C22534D774D774D774D774D774D774D774D774D774D774D774D774D +%774D4D77FF77534D774D774D7777FD24FFA8A27878537853774D78777877 +%A2A2A9A9FFFFFFA87853784D7853784D7853784D7853784D7853784D7853 +%784D78537853774C4C4C7853784D7853784D7853784D787777467777784D +%7853784D7853784D787E784D7853784D785377A8FD20FFA8A2534D4D774D +%774D774D774D774D534D774D7777A2A8FF77774D774D774D774D774D774D +%774D774D774D774D774D774D774D774D4C224C4D774D774D774D774D774D +%774D774D4C22774D774D774D774D774D774D774D774D774D774D774D7EFD +%1FFF7E774D7753774D7853774D7853774D7853774D7853774D7777784D78 +%53774D7853774D7853774D7853774D7853774D7853774D7853774C4C4677 +%537853774D7853774D7853774D784D4C4C7853774D7853774D7853774D78 +%53774D7853774D7777FD1EFF774D4D774D774D774D774D774D774D774D77 +%4D774D774D774D774D774D774D774D774D774D774D774D774D774D774D77 +%4D774D774D774D4C214C46774D774D774D774D774D774D774D77224C4D77 +%4D774D774D774D774D774D774D774D774D774D77A8FD1CFF777753784D78 +%53784D7853784D7853784D7853784D7853784D7853784D7853784D785378 +%4D7853784D7853784D7853784D7853784D785378FD044C4D7853784D7853 +%784D7853784D78774D4C7877784D7853784D7853784D7853784D7853784D +%784DA9FD1BFF7E4D4D774D774D774D774D774D774D774D774D774D774D77 +%4D774D774D774D774D774D774D774D774D774D774D774D774D774D774D77 +%4D774D53224C224D4D774D774D774D774D774D774D784C4C4D774D774D77 +%4D774D774D774D774D774D774D774D777EFD1BFF784D774D7853774D7853 +%774D7853774D7853774D7853774D7853774D7853774C4D53784D7853774D +%7853774D7853774D7853774D7853774D784D4C224C4C774D7853774D7853 +%774D7853774D7746774D7853774D7853774D7853774D7853774D7853774D +%A2FD1BFF4D774D774D774D774D774D774D774D774D774D774D774D774D77 +%4D774D774D4C214C4D774D774D774D774D774D774D774D774D774D774D77 +%4D77224C224C4C774D774D774D774D774D774D774C4C4C774D774D774D77 +%4D774D777E784D774D774D774D5377FD1BFF7E4D784D7853784D7853784D +%7853784D7853784D7853784D7853784D7853784C4C464C4C7877784D7853 +%784D7853784D7853784D7853784D78774D224C464D537853784D7853784D +%78537853784C77537853784D7853784D7877A9A8A24D774D7853784D7EFD +%1BFF7E774D774D774D774D774D774D774D774D774D774D774D774D774D77 +%4D774D77224C224C4C774D774D774D774D774D774D774D774D774D774D77 +%4C4C224C22774D774D774D774D774D774D774D774D534D774D774D774D77 +%4D777EA9A27E4D774D774D774DFD1CFF4D7753774D7853774D7853774D78 +%53774D7853774D7853774D7853774D787777464C464C4C7777774D785377 +%4D7853774D7853774D7853774D77464C224C4D784D7853774D7853774D78 +%53774D7E7E7E777E77774D7753774D7EA8A9A8A24D774D784D78FD1CFFA2 +%4D774D774D774D774D774D774D774D774D774D774D774D774D774D774D77 +%4D4D214C224C224D4D774D774D774D774D774D774D774D774D774D4C224C +%214D4D774D774D774D774D774D774D787EA9A2A87EA87E7E77774D4D4DA8 +%A2A87D4C224C4C774DFD1DFF7E4D784D7853784D7853784D7853784D7853 +%784D7853784D7853784D78537853774C4C464C4677537853784D7853784D +%7853784D78537853784C4C464C4C77537853784D7853784D784D7EA8A9A8 +%A9A2A9A8A9A8A9A2A2777778A9A87E224C224C4C777EFD1CFFA8774D774D +%774D774D774D774D774D774D774D774D774D774D774D774D774D774D7722 +%4C224C224D4D774D774D774D774D774D774D774D774D4D224C224C4D774D +%774D774D774D774D78A2A87EA9A2A87EA9A2A87EA9A8A87E7E7EA9774C22 +%4C224C4D77A8FD07FFA9FFA8A27EA8A8FD0EFFA8774D774D7853774D7853 +%774D7853774D7853774D7853774D7853774D7853775377464C224C464D4D +%7853774D7853774D7853774D7853784C4C464C227177774D7853774D784D +%777EA9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A97EA8A2A87EA87EA8A8 +%FD05FFA8A8534D4C4C224C4CA8FD0DFF7E534D774D774D774D774D774D77 +%4D774D774D774D774D774D774D774D774D774D4D224C224C224C4D774D77 +%4D774D774D774D774D774D53224C224C46774D774D774D774D7777A87EA8 +%A2A8A2A97EA27EA9A2A87EA8A2A87EA8A2A87EA9A2A87EA9A2A87EA8A2A8 +%7EA84C22214C224C214622CBFD0DFFA2774D7853784D784D4D4C774D7753 +%7853784D7853784D7853784D7853784D787777464C4C4C224D53784D7853 +%784D7853784D785378534D464C464D53784D7853784D7877A9A2A9A8A9A8 +%A24C4C4C4D53A2A8A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2CB7D +%4C464C4C4C464C4C4C77FD0EFF7E4D4D774D774D772246214C464D4D774D +%774D774D774D774D774D774D774D774D4D224C224C214C4D774D774D774D +%774D774D774D774C4C224C22774D774D774D774D7EA8A87EA9A87E214C22 +%4C2246227EA2A9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A8A877214621 +%4C224C224C224CFD0FFFA2774D7853774D774C4C224C464C4C7777784D78 +%53774D7853774D7853774D787777224C464C224D4D784D7853774D785377 +%4D785377464C464C4D7853774D7853777EA9A8A9A2CB7746224C464C224C +%4CA9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A97D77534D224C4C4C +%224C4CFD10FFA2774D774D774D774C4C214C224C214D4D774D774D774D77 +%4D774D774D774D774D4D214C224C214C4D774D774D774D774D774D774D4D +%214C22534D774D774D774DA87EA8A2A8A277214C224C224C214C7EA87EA8 +%A2A87EA8A2A87EA8A2A87EA8A2A87EA87EA8A2A9A27E224C224C77CBFFA2 +%A87EA277A27EA277A27EA27EA2A2A97E7853784D7877784D4D464C464C46 +%4C4C7877784D7853784D7853784D78537853774C4C464C464D4D7853784D +%7853784D7853784D4D464C4D7853784D785378A2A9A8A9A2A9A24C224C4C +%4C464C227EA8A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A8 +%A2464C77FFFF774D4D774D534D774D534D774D4D4D774D774D774D774D77 +%4D774D77464C224C224C22774D774D774D774D774D774D774D774D77224C +%224C224C4D774D774D774D774D774D774D4D4C774D774D774D7753A8A2A9 +%A2A87EA95346224C224C224653A97EA9A2A87EA9A2A87EA9A2A87EA9A2A8 +%7EA9A2A87EA9A2A87E4C21A2A8FF7753774D7853774D7853774D7853774D +%7853774D7853774D78537753784D4C224C464C227777774D7853774D7853 +%774D7853775377464C224C464D537853774D7853774D7853774D7853774D +%7853774D78A2A9A2A9A8A9A2A94C4C224C464C227EA8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9537EA8FFFF53774D774D774D77 +%4D774D774D774D774D774D774D774D774D774D774D774D4C214C224C214D +%4D774D774D774D774D774D774D774D4D224C224C224D4D774D774D774D77 +%4D774D774D774D774D774D774DA2A2A87EA8A2A8A2A24C222146214D7EA8 +%A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EFD04FF +%4D774D7853784D7853784D7853784D7853784D7853784D7853784D785378 +%5371464C464C4677537853784D7853784D7853784D78774D22FD044C7877 +%784D7853784D7853784D7853784D7853784D7878A9A2A9A8A9A2A9A8A977 +%77537EA2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9FD04FFA24D774D774D774D774D774D774D774D774D774D774D774D +%774D774D774D774D4D224C224C224D4D774D774D774D774D774D774D774D +%4C224C224C4C774D774D774D774D774D774D774D774D774D774D77A2A87E +%A9A2A87EA9A2A9A2A9A8A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2 +%A87EA9A2A87EA9A2A8A8FD05FF7E4D774D7853774D7853774D7853774D78 +%53774D7853774D7853774D7853774D4D464C224C4C774D7853774D785377 +%4D7853774D784D4C224C464C4D7853774D7853774D7853774D7853774D78 +%53774DA2A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9 +%A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8FD06FFA8784D774D774D774D774D77 +%4D774D774D774D774D774D774D774D774D774D774D4C224C214C4D774D77 +%4D774D774D774D774D774D774C4C214C224D4D774D774D774D774D774D77 +%4D774D774D774D534DA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8 +%A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87ECBFD08FF7E4D7853784D78 +%53784D7853784D7853784D7853784D7853784D7853784D78534C224C4C77 +%537853784D7853784D7853784D787778FD054C7853784D7853784D785378 +%4D7853784D7853784D787EA9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9FD09FFCB784D774D774D +%774D774D774D774D774D774D774D774D774D774D774D774D774D4D4C774D +%774D774D774D774D774D774D774D774D77464C224D4D774D774D774D774D +%774D774D774D774D774D774D777EA87EA9A2A87EA9A2A87EA9A2A87EA9A2 +%A87EA9A2A87EA9A2A87EA9A2A8A2A9A8A9A2A9A2A8A8FD0BFF784D785377 +%4D7853774D7853774D7853774D7853774D7853774D7853774D7877784D78 +%53774D7853774D7853774D7853774D7853774C4D53774D7853774D785377 +%4D7853774D7853774D7853774D78A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A2A27D7E7EA2A2A9A8FD0DFF784D774D774D +%774D774D774D774D774D774D774D774D774D774D774D774D774D774D774D +%774D774D774D774D774D774D774D774D774D774D774D774D774D774D774D +%774D774D774D774D774D774D7EA2A87EA8A2A87EA8A2A87EA8A2A87EA8A2 +%A87EA8A2A87EA8A2A8534C224C224C227E7EFD0FFFA24D774D7877785378 +%53784D7853784D7853784D7853784D7853784D7853784D7853784D785378 +%4D7853784D7853784D7853784D7853784D7853774D7853774D784D774D78 +%53774D7853784D7853A2A8A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9 +%A2A9A8A94C464CA2A2A9A2A27ECBFD10FFA24D774D774D534D774D774D77 +%4D774D774D774D774D774D774D774D774D774D774D774D774D774D774D77 +%4D774D774D774D774D774D774D774D774D785378777E53774D774D774D77 +%4D774D774DA2A2A9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA97746 +%4CA2A8A8A2A9A2A8A8FD11FFA24D774D4C464C4C4D4D774D7853774D7853 +%774D7853774D7853774D7853774D7853774D7853774D7853774D7853774D +%7853774D78777E7EA8A2A9A2A9A8A9A2A9A2A9A2A87E7E777853774D7777 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A2A9A8A9A8A9A2 +%A9A9FD13FFA84D774D4D2246214C224C4C774D774D774D774D774D774D77 +%4D774D774D534D774D534D774D774D774D774D774D774D77537E7EA8A2A8 +%7EA8A2A87EA8A2A87EA8A2A87EA9A2A87EA277774D7EA2A87EA8A2A87EA8 +%A2A87EA8A2A87EA8A2A87EA8A2A87EA9A2A87EA8A2A8A2FD0EFFA9CBA8A8 +%A2A9A87E4D7877774C4C464C464C4C4D4D7853784D7853784D7853774D78 +%777877A27E7E777853774D7853784D7853774D7E7EA9A8A9A8A9A2A9A8A9 +%A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A8FD0CFFA8A277774D774D4D +%4D774D774D774D774C4C224C224C224C4D774D774D774D774D77537E7DA8 +%A2A8A2A9A2A87EA277774D774D774D7777A2A2A9A2A87EA9A2A87EA9A2A8 +%7EA9A2A87EA9A2A87EA9A2A87EA9A2A8A2A9A2A87EA9A2A87EA9A2A87EA9 +%A2A87EA9A2A87EA9A2A87EA9A2A87EA8A2FD0CFFA8774D7753774D785377 +%4D7853774D7853784D774C4C224C224D537853774D774D787EA9A8A9A2A9 +%A8A9A2A9A8A9A8A97E784D784D787EA9A8A9A2A9A8A9A2A9A8A9A2A9A8A9 +%A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2FD0DFFA24D774D774D774D774D774D +%774D774D774D774D774D4D464D4D774D774D7777A2A2A87EA8A2A87EA8A2 +%A87EA8A2A87EA97E774D7EA2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87E +%A8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2 +%A87EA8A2A87EA8A2A87EA8A2FD0EFFA2774D7853784D7853784D7853784D +%7853784D787778537877784D784D7E7EA9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8FD0FFFCB4D774D774D774D774D774D774D774D774D77 +%4D774D774D774D5353A2A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9 +%A2A8A2A9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A8 +%7EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9 +%A2A8A8FD11FF7E4D774D7853774D7853774D7853774D7853774D7853774D +%787EA9A8A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9FD13FF7E4D +%4D774D774D774D774D774D774D774D774D774D774D777EA9A2A87EA8A2A8 +%7EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8 +%A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A8 +%7EA8A2A87EA8A2A87EA87EA87EA8A8FD16FF7777537853784D7853784D78 +%53784D7853784D7853A2A8A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9 +%A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A2A9A2A9A2A9 +%A8FD1AFF4D534D774D774D774D774D774D774D774D534DA2A8A87EA9A2A8 +%7EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9 +%A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A8 +%7EA9A2A87EA9A2A9A8A9A8A9A8FFCBFD1BFFCB4D774D7853774D7853774D +%7853774D7777A9A8A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2FD25FFA94D4D4D774D77 +%4D774D774D774D7777A9A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8 +%A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A8 +%7EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA87EA9FD27FF77774D +%784D7853784D784D787EA9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9FD29FFA278 +%4D4D4D774D774D787EA87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A8 +%7EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9 +%A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA8A8FD2BFFCB7E +%784D774D78A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A8FD2FFFCBA2A27EA8 +%7EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8 +%A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A8 +%7EA8A2A87EA8A2A87EA8A2A87EA8A2FD33FFA9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A2FD34FF7EA87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87E +%A9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2 +%A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9FD33FFA8A9A8A9 +%A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9 +%A2A9A8A9A2A9A8A9A2A9A8A9A8FD33FFA87EA8A2A87EA8A2A87EA8A2A87E +%A8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2 +%A87EA8A2A87EA8A2A87EA8A2A87EA87EA87EA8A2A87EA8A2A87EA8A2A87E +%A87EFD34FFA2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9FD33FFA8A87EA9A2A8 +%7EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA87EA87EA9 +%A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A8A87EA9A2A8 +%7EA9A2A87EA9A2A87EA8A8FD33FFCBA2A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A2A9A2A9A8CBA8FFA8A9A2A9A2A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2FFA8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%FD34FF7EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA87EA87EA9A8 +%FD09FFA8A9A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA87EA8FFFF7E +%A87EA8A2A87EA8A2A87EA87EA8A8FD32FFA9A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A2A9A8FD05FFA9FD09FFA8A9A2A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A8FFFFCBA2A9A8A9A2A9A8A9A2A9A8A9A2FD33FFA9 +%7EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9FFFFA8CBA8A87EA8 +%FD0AFFA8A97EA87EA9A2A87EA9A2A87EA9A2A87EA97EA9FFFFA9A87EA9A2 +%A87EA9A2A87EA9A2A8FD33FFA2A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9 +%A2A9A8FFFFFFA8A9A2A9A8A9A8FD0CFFCBA2A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A9FFFFFFA8A9A2A9A8A9A2A9A8A9A2A9A8FD32FFA8A8A2A87EA8A2 +%A87EA8A2A87EA8A2A87EA87EA8A8FFA8A87EA87EA87EA87EFD0EFFA97EA8 +%7EA8A2A87EA8A2A87EA8A2A87EFD05FF7EA87EA8A2A87EA8A2A87EA9FD32 +%FFA9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A2CBFFFFA8A9A2A9A8A9A2A9 +%A8A9FD0FFFA9A2A9A8A9A2A9A8A9A2A9A8A9A2A9FD06FFA2A9A8A9A2A9A8 +%A9A2A9A9FD31FFA97EA9A2A87EA9A2A87EA9A2A87EA9A2A8A2FFFFCB7EA8 +%A2A87EA9A2A87EA8A8FD0FFFA9A87EA9A2A87EA9A2A87EA9A2A8A2FD06FF +%A87EA9A2A87EA9A2A87ECBFD31FFA8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A9FFFFFFA8A9A2A9A8A9A2A9A8A9A2FD11FFA9A9A2A9A8A9A2A9A8A9A2A9 +%A2A9FD06FFA9A9A2A9A8A9A2A9A8A8A8FD30FFA8A8A2A87EA8A2A87EA8A2 +%A87EA87EA8A8FD04FFA97EA87EA8A2A87EA87EA9FD12FFA2A87EA8A2A87E +%A8A2A87EA8A8FD07FFA8A87EA8A2A87EA87EA9FD30FFA9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8FD07FFA8A9A2A9A8A9A2A9A8A9FD14FFA2A9A8A9A2A9A8A9 +%A2A9A2FD09FFA2A9A8A9A2A9A8A9A8FD30FF7EA9A2A87EA9A2A87EA9A2A8 +%A2FD08FFCB7EA87EA9A2A87EA8A8FD15FF7EA9A2A87EA9A2A87EA8A8FD08 +%FFCB7EA9A2A87EA97ECBFD2FFFA9A9A2A9A8A9A2A9A8A9A2A9A9FD09FFA8 +%A9A8A9A2A9A8A9A2FD17FFA2A9A8A9A2A9A8A9A2FD0AFFA9A2A9A8A9A2A9 +%A9FD2FFFCB7EA87EA8A2A87EA87EA8A8FD0AFFCB7EA8A2A87EA87EA9FD17 +%FFA97EA8A2A87EA8A2A8A8FD0AFFA87EA8A2A87ECBFD2FFFA9A9A2A9A8A9 +%A2A9A2CBFD0CFFCBA9A8A9A2A9A2A9FD1AFFA2A9A2A9A8A9A2FD0CFFA9A2 +%A9A2A9A9FD30FFA2A87EA9A2A8A2FD0FFFA2A9A2A87EA9FD1CFFA2A87EA9 +%A2A8A8FD0BFFA9A97EA87EFD31FFA9A2A9A2A9A8FD10FFCBA2A9A2A9A9FD +%1DFFA8A8A2A9A2CBFD0DFFCBA8CBFD31FFA8A9A2A9A8FD11FFA9A87EA9A9 +%FD1FFFA8A87EA8A9FD36FFFF +%%EndData + +endstream endobj 55 0 obj <>stream +%AI12_CompressedDataxk\Ǖ-]C·t*+|c AATYfYkqD[ʈ';s?~Ϯ>ǻ٣:<ݳwo ~_{ˏ~O:[]*=-W/޼f-x՛ׇ/޾۟~SŻw{囷g/~.ޡ.\A_XyϾ:dׯ?ӛߋ3@i1l_|z&e:Fk u{+}]QO +ݡg[>O +}v 5X𩔟ۧw_5O[o|ۿ$A +x(otmW_IJȼYX& 5V8Gcc2頳Mǀj +K`MDŽ`mD2w}q_:Wo}Vóʟӯ_޽/|Tw/񍥋ۗd~q;˯6O)X_?W]ׇ˻׿/2ԟi-t`m3wPGϘs +:8|8pKuOH";~/^gI~6T|˷/>_M4TG&?YI;Ota߽{7]s7c[/jԡ#<ŶOԥ{5*_<'Cg{co=I?~a/߿}o{tx^G/Oo^/K^?{__Q tɆw>ݿkI/I}16}zo>{g\w?t(=g/_/|7/{;I:7o^Uaxq߾.3Em0v7'?S>{.3mUN#|J[_ ^ o@TN^՗dGٗwrrZϖ.Sk{g?Fpzn˷>;/߼S^Wp'Ow/|WŬ=zV%JޔU9Iϵ񶖛Ǭ])%hp*iU2UJV;3ʍ]ڏ]1?˓O&J^U9Қ)Sêr5:W=\cM׫UB[Zikβ9v[w >e VjUGWkdkM]jZYKW•%)e kZ֊kv]YM-,.ưZVOu^ˌ9q|;YF({E{+O`#DlO(g{B.Pݸ[LEq>賿(gs!i >Đ)\sИC1O:-$SHU:sI8xl>LY㔯M +x |usu +ONUקt{Adà1t}u}>_biY w99OܸQ rsɿָ-rBAǷh5UU9VjSr+1K6ů[*؍Բlj)߬Λr] +VjUMV)vU̪UQKi WTJ;ܮvڪmWj:X+Zog02qNLnp;o> 󵝗2'Wd)(%kqRl-wru-r+P^=\ՒZpquE@)B ZYǓ[u.\ %پ}e6̞9l$]w-YJeNF``JO' OD΁<[} bx@4 +[p Bzrra 7} qd@sAHKDZfV9c*O +D + 295x[l3 '. +r .$#pqK +ƈk+>r }qs-,/^^dxUkt!+dֲ-W?ٽ+a .Ph{*=.=,VeC/nW7Ag{awݝ}Fo*%wAW<;7$0 m^hflپy [9 pnЕ׸B88C~lz~d9?ӽ|tAg^g R5ՈRJӡWc-MkYXeii4Eo] 7xJ%kCu;jS +Ov M@.Q59>2lhL3KLcv(C=KGAAJ!VN5ޛRNE:H0Ӂ{N{>F.b@²ads5%Ә|#bPBr1,_ L2S10LSO>Ss"W.ӹDr4<sQX vJ 7pbai{i<] 71Z1V\M=:Ab:Lń}#QFmTQBi+mu.tt \F긢j-Ov[ +-[(ۖ k3Ӛk.Q+Yxyj<St, +gŰ1ݱ>髝>-:$}.w86ގ:@TzIGiNS2֛4j<>DUNxO4G[>?7OQ|fYE +cdU\VQ!?1|\ aԙ99L9cDp^*1t11mknhҸw1eQf3T^O8ix}n{NJGF\"Vt^|i;߾}; c1mppxٟFGI7YJ;>KaRd̄Vj=Yuž. %O;泿ۅˮUAvnLK1⽟Q=WC *>DE+v&*DţJz]pTzjy5\gkەn4͉nx[(P-]n8RRDG[F؅Jl}u=Qf#4O/SUwnȿ_Q`Ǫv3#<ɺK3Tb`;Wo巘s|+>|JMdjݝ{.zy-R-Y"`܊,HyX$"Rq.%c "'|.RX ('ut-rqʶ2wIyn;$)|%uEVIWI9WBu^IZ,9EBv"!c"w Y$d~WId;Yܮ|cBYQww1doZ,!+-penvnZڟ-ء<~(!eIB UPURA*vp=;q~ʹ#&ų=o<}o ~[JvXQ F&KN]Vo}mda,+tPF;;QP* +:JI״tMMמ[ܭwn}IMEI2{^ѽKWn^}=E_5a`~3}^3=~yj)ұ_{*iZ{B+ecg.VBO7uʮW.e`g”5WBhe9rCȞurG˾ Lv)be7reE1E`N,C~D#[v0u\C.Vܣ\v\8Cgx~yZI3y!POuvQ$ZѠ'PULJ qeO*)R?@ 1_P|t+M::RDч*h;FҀBnV jE` M?cʛDVr.q=UuE{$o>TE?Ъ4 zA(o.A^wh}hWBExvI}F>z6Joի)ܢG[+ȿvl¡* R .Υ! } n|nj얫xˡ.A"U.@ʟJ".^5PM!mWtkQDRD4'i~R~3l]ZEZr-N +O. X^r/W"⼱5֭1vUd ^?i(ycWSPnr ` |e +94v^o:(=dPr.qJq9%my/ϠhVxj\;+ԧ\tbɚ.%O=)؊LYaE}IWYuݦ-]}[t%WI庖xKpJ]D#+/[?&X 25|xcmi-yaU_[jJV[Ϲ1'^UMn Y*xTbW" y-:1^^XKKqbx3[^۹QC|cN WVsdmmdRdأ 2U ѓIW(PWϯ_?{uASoh_ˋ*vpunCuQ0txcFmxSfb58uau*\BU}1jޮD&-oq߹Q.;czQY7ofܽ9Zgdߙ݊#{]-Zׇ@0@ ]Qo,V$&&kOD mS8p l,Na>M@]|eL5eWjs¬B]9$ +Nn+E>Ǭ.YBIɲ# VtuϢM S DzIw)jp#6M L))v&*@pl|U +/V*B0Dˍ KLbiLwm"~ K\l_,#ϥ }/X0[ T(1+.YkV#RQKQy늻J +26O1TNVAsB x6*\Ru;Ucōr5T8FVJj؜S%DR%.n1=vUʢ9iYq$YrirV[b)n(~*BcXvBʢjKm曔I-ߴW {JPN` \ӢXZ-WzT镐 @ סqjp8C/O>ƹfkF9["t7ŝWaWoHXщ +m15sbj[ mk3]LlV&ym4 F' fKFI>sLi0E2brI5N)ʏG#E=HQ~(?R)wvo"_#\Q uŸ.t +^s: 1qJ )=Ƌ>1yHۃg7~CUƈ`8Xw zwOњz,=ĸ +{C v 18/Nr}vp>4_kwld,5'ũy %(%e?]ی+3cKf,mOk(03j{c#',ZznY +xh;ْ`A3es 31B9vAbS%*فYO +R>Q ƦVk^?IYs7c[o_>=ܬb֒xʞ'n" 8]sN~sqŧw~;v[DI}oL]}yjRy_W_ y>@<OB<8n$;\Ktt~Syy(g&.gf7578"#s[Ƅj^T@K} 5TgήhHCJ?-H_Mu)n#WpYXAրYF|Cx4Ь5l*Bg~,=$,m:GA3c>YukXui`%?hP`ub?`!1J0ZIT3 +2"IO9B X'FUՃ?ի I|4ƸaXuG)e$ea*`WrU QC¾LIud_8mG+7ъc_W$V +(Nj;Uk:K9[ϑ-bcS7IAÅ['&|6E琜s683$\M=Sr젹=X7x|| =vUy_J,Y(Q煮U(X5NIȸ*B;A( S^&Z( #qJX", gq) Gt\BV[iּSnq3+}$N7jb$5jg k,*d+w=O톑%YW*:qqGcƒIx^CK8GYA*Lq) (P + @ J&5_/+vU3<'K#+d-JͲt`sf7u ^J=ƻUqbr(l] k[E{k1\D1Zm9;ܟ{j6sO0nM=_34G'%lᦛ}T?WR5/[7{"~߂U=k1MdH6;m5q_טd2uɾ-֫XB:4qe;9&|qʞC庺m}cq^=\6&/M,'h?6ǑBT3E/}/U3u蹵{5=95P${趆S`JL4ݤ~q_pD?.3dX/"6uQ +rf+wWy +[T@֯CՐVpnF2@ ȶK4` +n-5%+xU9Ţ#.\ Qx$G~\ޕ(׺*TDugnzJ +<;\E֭ >лqL?S "ҺL2KYA]<Sꚁ,Ku<[J͆BWI~&O!1T7_3d( nI8ƪT15$pF[xAP"(2 9[!h% A=N-$ЩR!:n1'Akf%aIQk{r$]E[~SEW|-r-g!S#~xFxHB7AYbLeZzAZb֐^1.T{E\ؠS٬,6ÈfHJֺ:kijg_g?oF@x@ɬeʄ@OŹrWZ*#wǵ?{(2:Ay'!J[\UTzՑɸTJȇa5j{pKbzck|FS<w7Kk&έA{nufu^uз8.ZsWt Rs6ƩnsX7o^Ar.U5?i.Nsv[z~'bMPf~| ƦJExt+1n=[S0c `~. &6줯߽o{_?<*3H-MeL=/㒙=A`)V~ݽqw;ދ)VSuhmV|l&3|ګ{|9v q{<gJ4tݤ\BH@;'W,ςxBl rYRa\[?h$_<^>{Wj=['w{p5(^e&I=|ʴK\hZHԤ‚~حcZ:jPUC'ΛL:O=s&i%)LK#=5 ,[Mȃa0U>oxul}c涐CU{S;FpO<>-VqGnޏ;E>uKr{ >vx;|8!~Hū9Eϒg/XIM{3^-V=+ih&hO>ѡć.ѡeZu!=Vfe|?gx6]{^k1Eq$(-|m*J C,R,rzMN?rF.'~?Ľ{b 8#T%Oӛ׿{*u͓OKw޽{\W_=^1isG0!I`t820;W?zǿ.>ÿ:|D):b9zY{_~ϯ޾;xś͛_y}zwo>=={߿xyӻ~z?v?.ˇ-;@P`yk8hC5Aisw!=`JԔڭt&lj}T`9gOG . f@L1iTоc2*#f _OD$jCux.%U-s %{ƭL<|PiAr#(i% 2DFwhe.b& vxI@]]A`$0(3A0k[bPø,E~U{7i7? :0ء B \&/#'(c:𾘋pdN˃ J:8}]M!V;̈́ x6VqPWo oش!^1Ӷa )?p$:ey< +Ha"؏4 j6w#e)^|>vt./ +*0\"mAr8Ivk?Xgāg5?q.>RU<`b@"u0HOues9lJ)tmcnЃG*5m5؆Cpl/ F' `t؟?8mp:z OIbe!c@/hR3]a3D^XxWPo. m, f7vsOd@ⱞL$&'\`2,IjAe8;1)D +ȸzV\^+kCYC-djJ<"L20 JqRϼi&@x6+lWL2]>d za8G:G[6V6ffLX .f Ÿ qxaDQCY/PRklQ>9  N?0 IDVPJN lh{NS+,UPN| R l\1$ebwwht)QފTz>Z ϑP +PE0\,|?s> +TרvG(dlL)u%%Vr'-D, E֭6yp +H?"35#76:iv p%S.xȘ3%6cD&;"DJf& 4NR*)V37܍x+SA)&8 C#mFyn#yŁZc8 2#fX.+Wq< Acڍ÷*CiJ~Ъ, F.IHXFLw]YA_mKHy RFk@4 bTgq-ZxEgh.tUۚ6 |^7Z,*4 +HUuT[ 5REm5)#K;opaF Pb)ޚIgǑ[dgukqxG6"x6۟K' G>D<#>"ψnM7Lc\T>@AB[?rJFIވ#lmTd>О݅ +5ĕ|bzP|(+ы{ $PT݃Ɗ9n2jITTҧ +$+EPE%Ʌ'X|^EtLBHm:v>7у;`/DU KlaxёH +fzU Y"5M D6j5 -g[ @%z=YzLu`[uY,QQ`FK5W[-:Wb̃kJ? w 1gHcq:`"qIm +<ꚜGT/E + &'DEv\FwR#pb︕ʓb|_J ݙѿHeM +9p +*o\lR]־PK:?<;IT:>0{"D +>fRitc7Tj&ʳt<ʯb\Wy?9wZ'Vڤ48γb߯uUug,S}^yc xE9[M-vaw&xC+u,(^'>K.4bDtJ}gqF=U._ۺ ,b;g8Y[~q*yε<62y°YjqWЊ 9+R S}._M߳|+|Orx_>JBOWhֽZxQA},Pr&qB.FVOg3%nrbvqh9JIǾd,6>:fH{ lQms3WFǷ}1ɵM$/bߗh7Be-Co]S?]rMKi-켥vŸ'v7TV ]P7r5 7s$l4b?(`?an1~+I00GгXN]XKiB1<2m ܦ P۶o5Ьlt4 +=1P8ĿZ!S#mQyu4hxxwѡ*Z]#lmV3=_lxњ F[jܱApB\^Xfh9i1OѴXZ?ϕgh h΍ӞŢR`ӢNxi(o + 'C[t,J 1tf Gy$CB4Ŵvu&maȆh][tͼLS;5C: o@hXt?RjEtXcc*/ q ^?;jJGY: 2N pcq0iDuV`"P,LE BGY4ChlAk?uF=^݉U +$3Zbut|Q',FuJQl‘⋱#N0#bС+f*+B]ҨQ(b@JAbėg LGc[s ; +\ة:'-†ίn'ТsEL#Ir=Qa14`J\ 1b&(DG#B:x!-B:Qo$iL8: +A/F'Cæ .jK& bX|a RŎi"Y`-n(.8˴x-jA pL"N [Z#B 3I&fJp+f '><|$g]B%#i0@;<.4Aھb,xqJT?J04P oslQO8o14CZAG3ު>jjFP-hcmKίZt4L4`ZUKWY= lllUr,u1&1L_ukpE$T,$!RN +m+]!]>^J%B,f(jl(. +ݪt,9 +O(,4gS2t(6aԔX-Uվ=4d^*ĩ 7 Q&ac3KC &æQaE4bLrȹ2L&6bE ?S ,D\mhSŝ@0ZWf#dTTRXn\1k'QKUV{PkDT]! ,FAiVh& *yр1$]6sU{zStW\%x #hqg s`Z 5A\E|E#H/'R%ѩqC&O` +i,>(#pxzGGzE+KAKZYCqPe I;.k5]P`a]/A&4j qW-m)qmngm6"gڦ# 6&c8(#HE)Ö$mN"%̳xdqon:aAd +0aў7<t8V)X:k(E%؅v^: Ľ W[#LPEag${{4Ofhi,ʛD3҅ +o21B\eKvpey@$$=v,] -г7]z4`2J0OLsii\M[fj9aGQ͔`; Vv9sztK314x{:|h{w=[GMLQxf;4Ρ:VCm:xkZW˰O0%[uEH.uYVt$(*9F'5%b8 sq8LϛT-lh;b!UؽA1L-wЬ_=汀QKu +Zif<45o­"+~ۘ~zYzt(H F8u48zOvS(0S^ bԓ*EDw H@3"FN]yw1.؆f1 6щ0o&MFFfKhdkιfa!#@z߿;lpT"Q]U\Kd M@aS}pvv2ߩflqD`U]qXֺM\䍘qq6( @G+I@6llT1B} rY ,5 v xZkzE7.2u44eQ}A rPRvi8f׮pT(YBաD[(|ؔh[T{ѝZ1N?VZ`j1J'?f, ~2آRʔL_&sX'+q_ꥷy%& =dO)&1pzf Nh<6zP.De$5G RȾХiojQ7ѣjhcvEMstC3a0QlgX>nU\v3ͩV.wsX5Mng>W*Tih #Yls+HIJˠ{q}GGaUz %*ZwZ4)U-vL%xx3M=ݩvd{8~NGx>z2 S"lV:C$R"t>bE뽛q8XQ3%c#]!&x>iY3NYe(CmGShX̼>}AF8KT +&'`Dqk#[5 ajV tzNc ڂؠ>ii<+% G8 +G5X<卭&=RQq*0SKfiFJw팅AjfE}Ԁ3[Mͦ3 Zz>㉹ ?15z,V|t~a7u3#[ Q.viƏjg?uq%+m{oirǑ8O8cL@#:o1Nᄎ11:L;N0pcD<1&%c@ܠdLJFB1:(.&FGG0L℀0r| 'sP'x8ZT}, pqIJhń' q AA,:_14N#^>z8W×NLbl0'RqbBd-v `&1,gq,Ԗܠ#X40%c7&rAS=f[4ybgo=fdڠGCQ17}#WP!EL^1S-%("0-1ԼdqX1z3j3n g 0 o`@[ -꣦;x̃k"߿kL,v$݉kݘ4fKiٻVMgSʞgrQ}iIZ-2mJti_`^y3ْÉv֖FG΢; -ڜLߟ&sCD?J<<< +vVdxu= Ʃ8Nx&D'm/{&QcW%a0@~^Ufŝ-w,9qƂ1ōKƵwCb\()&&X$chh%FyBw4a`f: f(@mwzOMW)pw15ާSDzx0l E.i~quI2ǘx^LON|[&>ZHxBQSHm!iAlDs/D*~!DӨ[r Kȡ2^f%4'h 7~<1Lz|ő(~TQ$IGis+Bm0d[\h,~^|$(}H- fTym}M _۩o1&׋5`n1HNEÉcUrE)jo0x >LL9 5 ͺ֔x1KieCB8ojHSQf ur#H0u"8&1K:9+M up}"yĒ\h]\gEީγPtq/s2UtJ;knJB#DLb"%6ZMտE"1r猟ކJ!^SH4s\0w_g=}\TX +MDKO':IەmFEX#h>6%| +V ~*R3O-$4qx%<fj1Uf9zm8 &UI0,>[ -7L4`ZXտd,9)b́nnFKD(ұsJ>)WqQ;˫<)_S a}cy`x}Ԍ($&r4.*ß^alQ5N4`ZJ E$lZ3'NL$ZSX {D~ تʖ Eīa5Oӊ>IHDH{cZ C3zF %4pLDaF4*ɘqzhXn 3+˃۶Ԍfu_ + [3g) k4gI:4 RגxErbԚrPK 4PPa={l~)Zũ{-_2k;&ͣNWE|(BL.8ԢdBbVǹE] lh*$y& d`t *`|*S ZK ;o5xm;=sGuf1\Xe|z#@ Ev#RnV%.#q w &,:0ceXB\H!K{2'K XS:,u@xE2}ZY*7jyЀ8ՇXPL𜋳3pijėi3T<0yi=0*qZ4?Gw+Isq鵒1.THa@(wah[g}|NENZj +u;4E,29o=ЦvGBE|BVo/ 3y"5Ǹ^T@G˃e|{Kk_1>-SL3zZ;2KxI✉;t]W?>U -[ +jGF>:4E_ޗ4vx`}?K_ʿ~|5_^]|wwo߽~¼7Wk/^׏~q?O|RuT(hE( >M{U/o{/1?O~sWϟH/HF4>o wX_6׫G[pu<={(;ӻӑ}Dbooc$[3dhDet/ *p8^Ӥ>ީaԩoe'k$ҬG *Lxpf.:\IK^&IvU%:Z4VN0v!uHN BuaԩmNB~Z< Ŗ& h`wr٣;`"hV}VN!Za2iƔ^9 amMEi(TtqAm;0 w$ig&0H.⏍73a$"E$zНf.Yqp.,/bNw*X/IQτE"Ȩc#ЌZ 6Sf|Q6d(#LIIīq.+-&I%!S1w%X@&';HU3b':!:qTL2-*?3x$L) Z*/8q3NK#MԒ= N:SXc2OzNPUPm D +SH`XD7&tB ѕDw6p2$1Wc>Ll./ /p"W#ӆD C$e.l(t9Ԅ+GHA~2g +|]o|,чԌ!DeXۇx8$!Q A =FIxPڲ\a]eCӄ&d(bi!5zI6ۭ#SF#.$m1{Bɕg%3=+EfX'u1i6 CX-ŚI[ȼHԳ ۩a\1Qt1u2tDhokZŃZ+ƺT#s"u%N +.q/G fgڲQY!&T+*>zT|bpPWxWqA*:dmBs`5MJB$u+gRgc)jɞDInu%MC!zC.0}P$w۲Vi*O/IkZ*s#iRG=crqNKrHtJܶLS/\A(4N*Ml /QX^VUC@u*䐃O xsyEN>h_kinke C(:khg|CŞ(TTqn/B>+`i7*+HDjtc[P8mQ'?>zpT?';]VSPp򠧩(~DkLVPDW/!kJd\'njHfgt5/BUSsɸhZq5{i 6L+bu"6H(bObF-3K@I1 (Њ-+y3Yt֌(BeɔDLNɚAXi%[% +&n*Xg XO5l0Ph[OZ tU!!aSntQ M*+1 NLaލ: *( R Gu&HvcOw~^i:lG/E95?'*m]WhVH< +*>-RL E=!%dd59䉩PQPrvL.&vG,'LQ+&m!nM@1R`s>H%EGQpJ[jN,fQT?bjիZI(QqFph(C}QL4vbI㝗r)Nm)ME-P=TFX D%o$-Ec-TH^Q.?L@a]$/;E7Cia~P:f 6TA7p/*@H{6 lAi n +\ f֖.-0'ay!B3[?ɐR +Eɦ0JK &O YGTX3o>ɸA4k!OfPnbZ]:-䜠[nEds՞e,\w^\ 8?) ; yQA8:MxW{ƕ{AґIκ Q(JRPV>[y|a3`i~(IJEyfQ,$ɠZ 1 BљX^5ÕXtp c pT7#[0 ]LK ?š^.;eba +[\5@\EvrHVc'8 IH$hb>M BuX/9ou@2uV$xR5+XK= 5h2xp&8%k"ӟS*$ߘ$>l=1FM%QI^1~m,z[*FꚸA%ȞȬ +@KDߒL5BIE ]&0kGVgmvf3SCoK/AЃAg نZ$T ȒTE.u$8n< ^$y }(>HWH'u./xz Bh_G360MSf)j Sk!4W7\XKtnIW1#CfYHղ/:=)\y~ +a{MptCX#Ͻ#o]MR;S&;a'=v47mDx@bAc_Ww*n)п\;#V:˻[7 +ouK5Zh GLXK4{sW zVs +yM5r4TH2\ [kxEk 9֠? ,{F1h_{+$cKzWRLGRy<1\r bUيd1 #rI@@AL<<l!ws CQHѣ}b` -#uM^%E<^ +H{قَq-,rlF͍n ٸ +٪UhЦWѠ +aGj5΀BLӌ!!y1nIJVf7/hi$$20NdTtc͢FX]6gFmϟ`ݹ%nyf }leG*8ދ6R(YW~Kve*C*UR@ձS B>75f*yY<Dp<ݦQ9낤ǫxtje: OSjJi0 :5)^ӡ4|+YR=JLzzŨ#0cŠA&flr]$8dx +c0jXb WBk K/5M#G&.0FVH4S y)\kx<.^p2I4ֱƨ6P)pё3t֫x.Ҷ^\GT`jϵ7.1C ύU jT0{/!9>ۘ`z850S-5#>DHWoMQtYzl(1׸x6`-]},]؎ %r`4:bX' iS9HiЍjt ~VLM*Zc paD B==F* O#@GH&#IC:7#Hh qU+Tkɥ_aXR0շim7a{ 4Y  {Fk ;PH$s 8_"\{\J_,-_F-v;D6di! 8|TB=c;.1咟oP1ND$RBMm +fv khc>[H t'PC\<88 +O* :."#l]~wzH(:PDEN Jzo\UԯYzsu1<=N? ]wҺ+^[̈́X{/3yQ7`P6؇#>0O^Q0V ]zϡ @ +ұ< +]O .NI,z+NO|gLC!ꝝZPlGlJ ~H,'2$'%bGC{2޸%䂟&on +G8?1Cbǧ WDv>'rzO?C/`Y&Jvyi`Yn{?w1MĢsh2of` LJ5`-2~f>#/ Z +\ͤ]qSKxJ,v%KF#~S2%`323)I^L6\;''0U|!7I  сuVGP꼭@`>O$iBup +&jm#xe%`wh bzh1aL u`' DJGrw3n-}MA*Cg5LS࿆y/)?"z5WX*(fdjot`k_Mk/hl9<L >1ŭ'7 R5B/Z%37q<Lf*ȑI R͈I.q8+p/۾ ?E:w}(`Ēj~b _0tA87YK kȕ%78ϻw\ 2zL)Ze4S3l=B+,s0iK*W +_-  63nkLdjy_tzL@٨iJz3$^yo'{y5 xU<ySc" [ +Nrӕʬbˠ*\$K  +vR ͏ע0J!0c\op=.VB0) 3[}0ަ܊A~h + =b;2s6bѶނ,?VF9;oǮSB_c}A4h`]?`. 9@w֌+2Ր'~!Q [è *;nX&#@sI{c2Vm`ϓ}E;s=Wf`*0p3c_8Ӣ(p=1?_*VSѓBu_JTjki<*3Y [P21LAرm7pja?WHv:=M1]Q(*EL9#13ci0y֥ 5D +R%6z*nfm< 'Xz˘@]xedIoyxuS&.I#éO\7PV{vzL˵" 9~:>n=c.=^5A [`ڊie 0 f่ʭ}owQF9<N oA~nbbL-(ЀVۅC"8*V59\DlW"QED~ƺ]:9cgb>gZql37^ѸC3䡒Bwݸ ;7LL :w;z$A,\ 7xP>_X5wوS4.x*H͡tE/6jkh=f bH/ va l))ό|iE9\PmpկAb 8zuVl̚?uv -c½=zi7l9`Nl|AJ\|DR>$hiwi%DKG I7|l@41҆G/L+;BшTD+a- +~bm,Pkb0trmKG;"g_E45 fɼDA3/2t6}ܡ#Ba.YȲQ=)9 ʛ!IG1zW;s뗄Ue`_K|4<^yy/_w  F8H$ (c + `>|l!$08OJ^"h쩨/+Jh0^p2`t #7%bz6x$}Op>a0OҾX=gb6EDN(^U$ ht MAfh=4#D.Z( % ME>& DQs+}IYgL@>3_\~eG8MǸ2RkHlD D_D,2Ҝ"[fgvgëth׎ +º3{/A;Bݨg2k %DGTs=oq/rPVj,=Mۊ<Ȭrv$jÈ$(/Su{ir5ZK'`3i^eڏUQEU`R\֟ZH{eq1+O  sf|cl< +Ĩѕue>\vv#$ F=# `\&݁),g9Q-ʯp=ب2Y`TR*ŽZEY'/o e!aFtzY,0qU)7fUI%߿YS@NJt~_LբiW-<˾b1҆X[%Ke}Ӧ"bH|EZ.­7yM%rɫ%.琝u'ZI 訫KT10:/p+`,[ӔB"9m_Ec18ϹV3<РDF:C.BJӚԝ2Iq w.*;Y^O`϶b}r| *Kü7r ֔?7ed?"xHu)A6t⟥ޠKuc_ݽzlC.69R%>C4ca, +&}-+b[#:-Z{սfYM<sz{WX)%WMOK\9csjܦ9ߧp[ȓE7wf:U +@Q=})k n+tΖ$/ipp JAg:orcy*y5eRt[u?WkYt? {pIx4B +!MD&QR;PFZm)Pn ƙ"@I 5_P[y31^Ǟ[yrViӁxDϓeZ>N*Bpg(ZClTjnZAczG`JةUƱxj^I`wJ\!0GG4CF/E{\bl–Z\ކҁ&\Q.tyG yXω#ny\gSe[4<T Ӯo./BôH`픁J@؁OҦKVPOb ǾMAfáL}Ϳ793$,PTPhTJa*BgwBI6]VyC`%dʹ)c_$j%x/%٪6阱,16r^2-$:է+HL*Un*?`qБx׽^2 Rpt^/Q{|l@B`BëApTS+j#XRJ a= 5#Sa *TBaM"!o+EIB@`-R4%PН|*DL?ZsfTx{"w#ycW`)b߽~y-wp$|@T]j@疬)OSWuVF-;/T|MjuS**MxP-Y*L)Tz(c*2mʈL\-(jF91۫j˛m}%b51\~SغxIʦDB=QBDL? UC*Dz,}DS(cAe М<9 cK|ݑЄp\u膯)?tWq8TˠK[+FĴ,G +߲f=do3;rHJ{2qZBec5~ì_s1^\kWۡ#yφ< +v߽A.\i#]m6x ,#pPCJ鯆㍢z%QaQ4vN w cG%hk #I㍅CkMofFA-z$!ngm.{ QFk<U`SY^+ 05qBb:,%F,V[ʇ)AcsADIrcTV5;956ìˁ :"1+oG#)[!@rmj6RD6g_b#PR;F|WnMF|@|bT߃YQU@/aVЈQCB _s!n:@1ߢW 2!j]VS}HZ|+U fmĈQm'l3MUq+㔢4;C@*zS7>+&Dg#((j/IzRh)p4w;ԡAL"sj/nyn m,M30n;0 UN9Ul ' +f8U1P a㮄wqVYm4Xpm? #/̱a"6+Y@b:Y; C*d֌\d{N$< ivmo `Wׯ7?OA=Ny__y㡮pM`vGVdFXĤ xp#TNV@8vނ+(mGZkF|hꨢ[>9$4xZ4%~su_7 Gqu1GX[Ɲ0VS$fyӠDrDj!;0w" ٽ2NoNj2gw{c2&֟ˮF~FMe?E&m|ܰIpn-z.$(& d +=/1p=o깭e6^ +]J%ʋv9K_BsNk~5JD%EUγf +>C1"o x"4~ lPivk +<]!֗;\K5SNےEm۱cAYa?^4cx}mX>\a^2o{9{/uх"׉~I?Qh=_3~&HnҶ:A;]ږrN| A:ߢVEs&-yM|7AW;a)19MVh>Α q3e 0U\>Hpm=5V:l1P;F/{hJv/[C2Gvм_5 5 τaogZ>1EDNk:qmaZH@ \y3Yi3e58Kn$1.as̙i<ɤiLeϛ ef#eV<2,6]TsEP.|y)i8z1E]̗O26[TDa>\b+u3l1@&oL{ +㗭1q20\Ob qOb$T9NmrUڷ-13{+\oz}w!&`~H–^?atJ!a*  86b|Mg4 0} 5 >#kk{'-ϴ\y?|uoS_a_ +Y9Tڲam3?Np|L=ho՜"~7jmp@~65v +6i+adNaݎf~s1:"FZ˟ +^+,IͯL`!~O;a!gC^ꇝcVZ0u))?JW c@"EC@j맛VHb՚vtQݼ;*ee&BLK)Yߘ upSf>MHLNXLo3oa}qהTRCXgc&-X?T܄+Xu[p6L"G7a:7as*4̈́C0 +V'w0N)op^ߖפg_Nx/`2{A!,n5/}ҟv7d &.TF_jGiߖK2 vHؗ_QͿ1E+TӸO^݄3}Qί7 io^11>\{oe2%luzwig^>Bcr#jyOSE1g/ި9@b]>L7>.MPuhh픔؆>,+BÏJ"\ *Ɨ ^:l?^0֠-Ð7N!ː7Q$&ۆQXOC^F1eǫr  +(ҷ1/7JqGU?@/c^&Sѐc2ybK>i}_܇h9^L1e?||y~X(/qFmKY8|||z,vn [R\#~ҥXϗS;O?_cl7 Zl<|%3ȗ8jM8FtӽW$K Y5pU&9;PO޳NaQ7z|{ɩ<S> ioh*K,!Au[ŐOݵV]]{9ys3}/^[pZ"]{;BF`$׶{H}/m:ՍwE@a+6k˵WreͻXe9%ٷ>i96)V|HJr:6^a e쵆,xx6wVuw\c>Fb䮿qg2l-u.Fuvwb_wٴVh9^hFwp~ym눻K&m5!˭R)=MjiDGoZTqxXjIiTz[y}w%-~LLK +mYZNi%یxm%{yۧp wk6=~-&r|Gi + h7SXerVpNjQt~Ӓ6|'%wZU穾ۻFzȵ,/צLzZz-e6ۮYNiUa9Y4]Y1޼X, > +~*ʠYe: +4\ȱ,UmZ[VE83(hćQUQ%X8"vnz[AHe}~w<ݟMSAp,SRON͔ۚdKTUYyftLi59|/7STNGSk 5`ML5<~41qyOo廛)-}21tΥ5Y^[M*l~:y۸4!r۸Ѝ9rƥ3J KiC [9:YU߭K)7T,Rhٳu 1ןvX9S+MPimF`kQ}Q5LK-+Yc uGk*SU0y魚臉)9df0oi~%)?cOS+Vl dn6:fjq(JGE,$iTڏhEF'p_б5$S\L͂J'ز35 uy5 +񧱩hh"wi{HKIilSȂs +U3hT[GNu_SNcrmkzrmMp +I}ٚJ8QV;}MlFٸ{26uq=|M LQb +:ýwS9XBP^T6%/RmX‘5Dbr4Ŏ.Uw5[S|4-DխY9Sr}xZ"۫Ԭk q*lٛE)o +˙; ːTv|*OR9(S,:UfOQ>;Ǩ(:Eo|XB$ӽ,E{.'n.= D;.{W޾bt %Lba)Mf"('WtMyfA]R^c(=$)/2~l&jd7),$ύEO3I[-,pm&yjLlHgg^BڔR#=fjn3Ib#Ɛ&dq~9$ *qġdHCjD1x,4tG$f 2"TbHN}3H&x.m")d:xX/⯬-6l2e?#)->Q$!9F%Q&yB@J 1Rѝ={҄?#;zc??si ex7zthԚj z=*7fR;~}=q0c8D:sD<SeZ 1ƫck˯/[G{$_؉(i}<+R>;Za9AyQ;m(x6?l-^V(eHCJBH׶[$)1sz:RtUa9 +/3Gt,eQ;$8CHD+,-R\9<(RG@ԶZQ.O7G + b͑EFCx9ҀwO7GL l͎RvRܓO Rݦ&xc`r`rT{96%zm#GJs!_FjVc缍i +%al4rL4N=ܢ$ .GSm:pqݨ]Qh#i;tqwz7^֌\UqԄkD"2jvopn+po]s޵ވ`cIyr)uI׫^OFA1iݔ{# Xmd,0oT/yh^ B.$⫗{ӿfgtS% 6ǤR lFMFX{.V/?1:]m`ӎQCeT1.2(>sωrfd3*dH):|:3Zm`KPhv qpԍE_קY=Dtd2wFNZJf5y@oT>ψ,&=jSY끩pmrcYOƯ/F3A h:}6/^ +o[ײo!GƓ3o.wׯ8F"mr&9Ma@?e"B|6o nauhlIR>v1eި2fR]d-i mި\ P sg\I6~ûD˫q7hjpf +Qz826 3&<" snjj+.T${LsxJq|hpåĵ<jHޯwe1)YC1CІVJa~HI$ +C>) 68Aջ! lЩאoJΐQ${jB(3cx:XNo6*,?y孇C!qӘ043LOBlv]{Zn F8>s6 k ""O?A>(gf35q5 2gp'`wkALَ]Ԛ|#] cKN&zKwHwL!w+zHyU0`k9xdN>6T|Q"u[uF|@D.B +t =`]i PSH"f]esh0O4]8-i!7k튷Ŗ^:nRcz1ňzZ!oιN5E9j&eZ2Tc'!xP=a!GtM[_fid4B%EA> Cr;^/+4q%87e|;s3*27#sl%Ԓެr:,{)ƀz+v)cwV-ɐ8OS2"qDƤR]wC螷UsP+bЗUfc|d+:T<<@z{K9{9nFzz C&Ӳ SOw0&(c8 +.)EwZCtŐ6?mPȉun6:]|\]Vita/w.Jx,˔ eg'P`\?t^Pi[g+-D#vejnZe2ܰڨYPGrЗEqh9e ևK[l;>.XhIW(YW*>{Đ51Ud2bҫ ʱP/+P-p|/*ʪOQ/*sӳJ˪նEҞTjY~T"qB31:O\+̦V1u OML˦ˢq݆Lk6y4Im_eԆю]X᳕z->̗$g]7K{e'\O>1g.߆J̝|FCԬoۤvL7On0T馏BIhezEBܱ;x~p9*A܈<=ʵ#>F˸@ۮHLoKX˜썄&"S'#ai *)p_CEQx +?mrh{ 0~2݄>c?G?!*TwDL[!)Q/ +XZv aPweuO)O0nEb∬\rxAR +74=vةZfF33h2o<ldю:rZ!9j2sfthZR`!hVROi'FƎyAInGA}=nJ:*g=EnuS,)/ޤ(-TqL[=f^D U櫆A)Af@Tqz q(_^ppcЮZ٧'uRԸ2]MI~s̠cMT'@o'?5Սux7u]Z(&@-vGثUUv:tvDhml߈[<⥐TEcsNj XtV^U=Z&AIҢw(e JҭT U5r('Unc k%0B< Ew /v|ETdOC`#hU^#(QDi39M4D!mܜD}E'T" Ka<.0)@wU$Pļ%>? ] +w8nSFܴ0I'x`؟𥔟|<ghjQSKA0:5u0 L/=0/``7f1uSqűj\N񫎂XQhdcV{':Bnƞ*_<\Sl&XGXhPQ +២/%CuÐƤyք(NUmݧrc!F}ځY=Jr#w{l?%:yK+F.yXjj͗+&Qpf zpl7=\!47AE/9WcܜDHMLDW!?ϝ|6lB:Ad@Aj(aO}G\}r`'jbfp,k@)+kٛx@~R"!p[^] %!G7#tfB:6d%ǁ2I!/&W~]foǫhYtnR:u]j&2Qn0+c wDE Tž?4;㣋L,~ Y$ +⫛3I:e>F;d#ҍYcx?eĉ=CV]֙xqNzuI(qɧS$z E*|TlBk<] +Ba ۗN}ٴ,4]zt'H^'PڌRQqAOd!qeX4֕sd睪H!4ٌW1! 2R$]wc{;3^+DhGd_G(e^7amS\aX[>IDۃ͇3 + VnsѵU:-5M/pz!l0z5Q~-P#8!8BBPV* x(;9TEA +[{w2ٹM`N!^+ϵ@s`.53}4G"H2 TdXHHC餶p~ϯжztN0Z򹿖 +|g*Z J$̄ʂpQ-eFb5݈: [Вq D~e5-zHq=$`'qa!1u򤋌[6.< T[ESdw]DrlșMI,Q;+1h}Kȫi0Ql*Gp[(=aR N+TCip1"qo>L%m(!WmLh>O?[,/!qPkܸl;jJx =jDuk'ѹ^*p݄W]c+{`飇T;#\`޹-}! ŐEecZmk~E:-'6YD<\' +_Je^Wci'e8;@l@lQNH4expDKpnIRLsZJ$M; +RP'^j=n]S|n1z@s1T.O` zm5Gd,>m{xnĮ RZף4h=x 8ȷ%-VD LhN0)WŖuGވz358-Á0zhdPJSsHy7~hӭQ̆'6^rH݁6/t}c~h2V}GL6 "}J>69ȯQ$LG?Z1~D/z !(rV[Cz4`Fdkדbt:JaTkx<1 ?(cGw5& Z~qۘ S (^8i g=Lg7*IHrh26fFA݅x?|!{-!G]rryH#y-ʦ [ 9&OCn!kݦߤ(v4z+=IYuk)6aNZ42X0mI wXw}X4ucGv$ =,=ۣ風at;y}bN^Me_l SOn)xz u\~#DquFAo8<'VCZV7KlD-kn-on4~RUY*=cl{cv2bF4ɿAҮ +yk!Ґ2:AYJ a˷)?m ç51͚U}]*"EH$uE >8&+uǪـ^}YYzY'l8s]WD]J),i(R_JuE8&Pނ^[wBΛp{C1 DmO 38tȥw;D'6b+,>'ҦCuMd4VmXg;8FHR *#Bʍ +Ď S]TˈF5 mȈoF>CV  QnIg3W11siqأdf!HE;.-5G5hnğH!WWD7*޸) +33fhR,>][oX.kx1fwU%=msb 3Osiz6K"[rNc%Hdrb%Ӹ&:x N My (7X%]:eV-HF` j^w[NͨC:Hs٣a$6zz$]:Yi}yn]{ؿ扁#gq찧Sb,LH6LB5f̌si +'N$$hi~m̛ǺC@2r_/Ncؖ&ar_/%_' 81 HϨkLȸpq)\̮!˜:se"F񽐒Pv%+QmY2tr(XQ tNn*-^6=(h0ĵrIP#Ydr{-xS#/uJ79YjX;@Yւ\ěXIٕ"?u#h%K?vV=ʚ_n3 ys|]Eg'5RdjB6\2aYq N 1p^Ŋ-3d%HXO;/cv)eڍQp!@>ke}2j])3Y9BwWmҳz!hʌFLlͧgs6k@zyN>SX)o|wsh5zTp^`\7K3|0gr Rd4SNG9Poj%Ś*m`!z/ZQŌ~N:V@;dx"p2ufTS/a,TH +˸T聈2F@Y)Ҁy< Z+?~<IO( r\i{0CxmT1%X~:T 1Qm-.Y,_.p)XK̬td ի OBIa} x|Tȱ- W-Pn/QQNS-:Lu/=c oF -K#*3E Wa @,#$<?G 4SG~0ñoǬ# tG+67ǬV|q(ݜ ٕ׮vۍ4J%K'#$G hXW၌1j ;&H<)0D)Y0e4j; ÂyB"7 x1ci (08< +e~oKhUFԹd\8UE3'L`G15a%cr+RD:kg|uPX0yޘ[@?; JֲyPK.&ʥǤ:^g)P4s'"+#)K;XT[=JǶj!&4Ih3ZV6u5I`6z4RP^--.Mpo2z%4F/d{vVZ=E) U63qLhd +)^R!mS Қ((ة+OX7Hq/,fFAn<uUd|X*bi8p)2Xo fL`2<%r\ zcoѧ&,Q VSU\l{&fJ#fN"gM7bi•:,O3W (3XVc?#~X߶4WH[tj)GT枖M;r[v$]X g/#rRu* 亍A"&|O9IB؛-ݜQ`Af FRQ ^170rC=ny~_QjHw܇qN=bNJHQ̃/[rCsuN>(8$74E*g|#CL:T6m[ P@I$L9ۄЙ~#.1m\@I]8d謉$ߘ4,M<zd"X3ՔE,',{ ] :=fj!nxnqDcwڒ',`fY$n9mKQCx :UÉ)bAeEտ{̱2r%F,%CGܷ ۛ~0'% 0^\+.AB_Ebdg"n׌4cN‚tx kj!x.`7:O^4:c_ctUtz4uL[-uHEcʤ n@@!0vi|0r3m]AC0j|57]׽Gw`^ +JM,01}~x$"AJ!w!9&טJмՎW~D>n2jV̒p ϜTEP4(r$)EC3y#Ҡ6kg7Dջ>EEqj=Fp0IGT[@[&XgJp+wӲNzZeWU NyN*4+o =ȿt %AK2XJտ일3.9{0@2k "^W^@hXU/n4]ıY @ҁi<] Ȗ=ܾb:$ü#د ʯ8;>U{G8z=~M-9{OxZAARşp*VAwM `|;K]开|Y8J Bɝ%S/dQh(1 +2\ek"+MC!ҋ9ХV|1TeQC&sɎc:gDPzNH*0#DBwjm(@%Q4MkJJkS)Zzp 5E&U1GI$}~3!b~d)6LJǻb#h֊MXow5]͍!&,]((iBJXG* 0+!=,С{J _1 +a ?['8fLRGGqH# C;TxqJ +h$]!\B8^oKd6<"+~aY{DU5HR9T$kLZ@neBQc1*imi"&mI.ws F|ӋZ~9H^csb66K"@nO8fCa/R;8btrAt@.%T/\w =7qʆ5ܱbQqP:(Q'8 ~btD*t31D 'J?:v +ʬzl!ө•CɢTA<֠W S 4g]#ϩtS2/A3`]/lF̣5zS!짌誥BH%yRBީ7q1B\eUJ0$\Z+TfRy6b<'uPSHaMΥ1(8:qwn0p3E\9y:_F$ZTYVf H3[˨׾%r͒ltL38U0rr>)Jƽ6>n H<Jhf7׬${YFaztMQeIb;MW+ DWRwΛbP%ᢃx+J9n=XA׉BM_㇘$VũXo LUu{MEtDje" B锷h;j}(X{t0w9:lL۰-a֬|O +$4!2bj +%4)*Pɪ[c8G3!OGqɄE^o2`16 lU_;Q,wH>%8i"-NLL]5?Dsq=KVȏCck :Ҧ{ԘR~O(xÝݬb ߸ А|4-?^ow隒%TeB@:)EnP5hPĚon@ls2:dM"-g%AU+}*F{ +qOIxv|#}@5Fkcŵ :L3%8Dp4@n"92F>17OG[[PC40v] Їp>&o=s4T#r}mW!Bl@U{@0_n9G|W-J,1X\1gqD%B%Z*GVv'\ddžq=#Dk л,Z!7dVBγX\XZ-"9V.}۩HhRY;V#n|DB99Mwr ʾ`x5ĭyKrGI i /;Qٯkt6?aUɷ)KދKJH(9bʛ}z< (U+s)Eg~* ?Zm]Ggkq;=5>A=ҨܽuğYۢBե&"iTVHفw2|]Dce AAx;fS0b6_!CObNC m% JēD/Ro_Yӛa_"Gr94΁Ma'N&IH!(|@d$!q%O]P骯4 *) fĆ?%9oRfDPZL|?F'B[9 5q/#(B\4F}Uѭ2_Λ NR|Ҍ(g$ab8AC\\#Zΰ ZW{ mȈ;87ɫF aؽzN˞&zuk;cW<v8D]2Y[5ړk3@Ɯ6B^׋ε=s<yѽk lx7X޼[^򳼦 `?Ralw =fTnƾT]VS\Bv鮒=E5UL9%>Zs5)q Ju9sX.TOÏ9Z)Zlo +C R㾜_?5HmֽP018^ܡ5Ơv ;WTgZ@M ,v@@;m;>џ(0>DLYڋB!ۡB$vBO)ymv;-ORKDbV dwkp[I?A034!%ͤWqN ܷ+4HM:\nW5@տF=%)ZX9Mh{$E2P)F + RÓHXLJ+._P8  攬 +澕XZDz],'Y6 +¹O!ĎPF}ءfYW{7qb!VǏ]qC䗘Kϥ;SnCRH6|J@L.ek`ToFMszHy*D^iޔ׾ʻH I~zC5ajb@T"g;<InMtcBRb7*e@yfp|7x.y&ܸQFzHW9_>/wJ2%>e7ٔ`H;軓 +h)xa8C2`s e^e'#?P. +[u w^ڨGhXJbNTPUu75] ]Khv~ +km66MI^IqFgǚuUہbZ5͹x`o,. K0r54ۘqDB_V7U][~ +*(=qRrL$_J蹌*G8&C` x==% ױi <?n2%UT J^XV:[w5ʝiR +*|ȥևn0^P+ů(VlVL2Ryʝ2 8QְFV} f.mRO,HxEPP -j=v.٣QRqOGTSX^>pwɓI[e#1-MӃX]\BWE<"%T$A<[ 5|<="Ƴ yqzM=1W<yz6%zcJ{`-$RFw:qpvAa¢$N4_D +޲,B +MvH9H((42.R.5du,OB.eZH*\)DO(Y~$eװm"Z`zhڋŊ%q?tKGZKSE$~rڄ6/`)r(UM-ST"gēCE +yeҺb%b󮈸XHmkZ Q,7IcQvɩ@R'ߒLœDR6K7 MDv0 Q,)TSs<;3E@ DiﭡTMQj} $7ɋď!-I;x@3“p+oxh[>vWH}葧dw! ֭3YAdT?I{;]KL`&.EAR3~v6IvcmTb 6WҌw?].e<(fm2qTt鵼B%Tub}VH!HI{Q t,<؁&H DG4 iع]vҷdkp$qY5@jHqz2 -3/2K9M(bA;q0GADg+_)0S!tDK/<͵*ylN& dUU4"$ʄ$ =A?/24#C,m 9qBg2)@ +1a4A43@P"gg_ Ɔ׳,X& D",!=+WS\@ӯ-e#~8f{5yӭ9ɺtXFS1?/&Ty^=..==u +i=ԬR0P2.7`%P(e'/^#6@<)['Z'E;6+IN]\ǽ#;L9IQ3Ʈ̭ަa1A(2'z{1X( 9ɛn]Xh]oc_^D;\ݪzS/#y]!U^ +{5ܗإBSnRhfv(wqXO]6%H^v8.ĂO)`;'ؗǁDTX|Gj`5[IH`ҭU."hq9RW9Z ͐<6ޱ*lPDYf6sSj&eFritcł49vSbx;!b'eb֭:@dLs9jb🢓ޓ"*rسn +DxSx +grUpDmJhB"2@YbS U;a,| SyG\C5p@_['ݧr +T@@It +K3$ekܯ됋_ay^@ɟݡ-+ A;ȔEޢFTVS7nt+r=wfM\ȴzL[qdXXٝT<.υ䭩j;ldUU49=&n12p0aSkanlgvwWᯑ5`9GA +:E= 5lj9eShV5 ^2%0R:()Oz]Whx~A.9 FEVg}]"a=72?_ӵH +CHY-SMx-;a]3q=k2aYƃ 2rVIRHxXzGoT6: =FD2eP9MDU} t{h;fOYËx1tG/t]5ޘER7LT!BKjW+{kysGK=uIIF4"w0K.͐}`P6N-] +|O"?]Q$zm-8'݄VGxB4{΂_Իj)dNVM"L!Տ'Rq6!$JrsSznymP_J<^I1L*EM k'ͷEmDA+Կr"T1%G5?n$h?ks\$nc@QH?9R:(zDgDtM?HPOW wP۩ּpy*Ҹn]!qD\kvD"9heHj,^d1n%L,-:K1$8)g2&n y\V,P.>P`faΫ%PoVV}!6S AbєHy#~jDZ`ndn$^ [z½E#OWwq=v%xHkbЗd +1-TLʦm +*op]MA}@0lǫȴCRbNLX\kem#pmf]݌,02={05q1p(O1FP jVH>4h1AӺz${̈́Di+ͧd%Qe/-`1lUS e uL +zP:Dz\-?tKȒZ9YL)5sFgmF)w4 ,E=RJL3Pv1~(O޹tv2 `Tt'* \h~~) 2ZMk) zH5Q610$X-ZQZH9-TgeƳzmFWrzJ +(G7 0 0| "^ԔdrdG+B9jg$yry*zu'dui:H>stream +.GO[%`bTcyM>#%cR[+M|7]o1JJI ڄl&&h#!wA֮x@bGd7I:ځ#ɟ%J*7nAƺ h% I} +OK]|,!aѐet)PЁGvq@&d1MOwhW0vi]랡L@[p, +EV`b:,}`3rJ֟xw/VKG& ǹ^D$ق)EUjRio$,6=*}P5׾VLذo6Mq`dQ{Pn8} ˉ[s\ү]F 5F*{֋#VW4`Z֪-'pw۫yvqtL}>rm>eq7xCa4-tuy6-]fk ʮދ46H4ۿ(Es + 9yW~>2|t0\i>LyxPBkАc*5rx(zܬTHYW[ I!LP=:b(^ɮ$X~_ryڮFq& Zblo'F;s ξ{ VS,e\r%+ƌL7kdBvܞ=T•8^% `ezV_<[KsCeO51X5c]AjUp:>c:4(]O{&?j8*EjSO@P彁X6˜Udl,zP!5}@ԬðO/XPrBC uT4[¢GU+4$8ǢG])Cb,B?#CIj͊'zTAUAЯ[FKT\Od}.B3r-<+,¥Z{7FDx0exhjMCsP )ڳiތR 39l_Zo +F:)9( @|{QmD fkf5C7g5vxO\Zj ّWUʰ + +#5U"5WC@uH&j$e&O+`I=D0G 9B(Frm@{IwkytM鄋_խS˜V8V(q E4q)$^I@ r +`SDs~d=5$:!h#̥?
 ݞ'>bdW"uJTqYguP_7M{+Z0 k(1lY\rsGS=P.z%x8E +e;ljޤjNʷt[%U~ +I$!]WX~f L^Acgؑo:BS8ԀWgC@wߢVPB:h|j⿴ŧ].m4V-֛ZN,UV;ՆV6[xZe)6 P:CsNǵ;̗VLõd !q+վ kŅ5%a?XX 煑(mWMXƠtqHܺY۳b.3L%ܬJjhM# /#uv>LsڥGs f=aIg|(.35 s!#G.m/UMCo]RH ⎦>ρogٍM+OD3[m㿕)Ϸ0&agϐS/1LU6AW~W:x~)='ɹ!~cY/. >Nt̻8;jX 7BJza"*!Ze5Tgxˆ2H96͎$Qi ԯ{LpD&g5 ]0X1744+"X_W(1(<03-u[ ]~P;_+pwxꗶRsROs`p 6.C6|]K Cҽs%m|ޚ2./מ39b e7-%ڿaޱ6{k-Dm&% [A<^zߩ&+0ZCx-Ba*8Eu$ +eǤ1eQD$%S +Ji'(sdꋈ]%~:\++d:NF=38mM,_bi 7,#a c#n#@ITcE©ឨu_UrL0νpTc2D +B G3݈q !LNdYy8ZwG2ʬTd7HH8)`w1x_E`٬RvY'bɱ_x{a+F{jr HPxU`{VK[QUiDG7@M< geez}7)#UQRu)ifIAJjېH»<,Se;T?ėʂ 2aZ :NMV+"SS6:UHYK>q&/梯g͝5Lօ%#IխMv1YP;9[ {͆vzyFQ"PPSKraUDΊBzaaeDV`t\Te1 !{ҥYI7b>$'[9lȡ A@ؿ#91z:MxR"!qWrn}Jrn%X&22#@d/͝H{]%^,R)]*Ԣ9 ),6c]5u~CFDv 9ѻ!$szL$ +V0q1R]~`0tŘ^;fu&{zd7^W!P24&g95 sVTGF|˥/2CP &Qj=,(܇>I +_uL#F H tt +t !.t#jK;a$2\Kc1)n +AL;=&S֘ېjTX-&|~&>QSEp=y{fJ 7)e]BD`}<O\U |N%jD%3uU=A$Q&T'WII +`_CK"8_'zԤ.\cױFZ^A +DeO/{\PrhW +o^@ЍSX41 UJ̵`;‰&J2iFx\=sp 秺t𛉁m$q#*JL.$UC!Azz4Y%hL ,[LFJo_\̀G +a/אPp~k!t)rSnrdCƥJDJP +V'Ze@yMLܔn& IkE+!᫝ۚnD^]8ú3He X$~RUM[=LDn tRZsK#-3kFpd fe*d; {H=B9"($C75L7QUZOwݑN͕l (vxJu+8o"ۮgWDC$*B +/ԤGvsv7 4B%No6B!bݡ1UB,t{u$wkB}̨I낊duF4lM +-H-X sJ6\{*zd{37 +5mBٻjTQ:#n1,)3QpmsuM 9\**-%OQCj=6PX@E& +T SJ_eN%d̢zEL׼njʙAU.v!NԜ:B\.F6 o1goVWS53: g-ՎBoICh$@g&_r\ĥQ")*rD8+ȌCf6Y݅a/ZbK0@O[4:}VV"=sCbHg7`3/%6Gňqo%.y +~[U(_\XK=dѕ+FR^\pV9 dDჀC!`4ОvlnjtoFЁ}<3EnH=Y$'E l^!`8 y+*}(k!$;[NQa)+t6?Yw-^;SnS v)0}G6zV]?͒DyF3hc[ts2RϢTCLZf$&Ȗ|woXß3UrŠ=@aI:Wg*wcUc%F^Y#?<e8*[,@}u1ơ"rGTf/hZcpe#B+\{t S[%{5- Zu3k!֫*q!8[%^Ǟ\[qkSo +e%+7#g_-޵ ĢTY׻1+9JP 9P4K٥b['\d#9 .`QlᱴB ;Xfar!@1rs6Eh:gƫp=.#pm]VH\#h]qj +#~f9GC \=VV3D8Sf d/t1=)Qţ\-7զIKDOX1 񶺯+H?oipU +b*/KTy7$}@!Ы2D7 zm=*zuEq$<פIwMŻNG7A1I_BĘbm1rlIk%דAr*(!K ?F}MlCHFd]f O>(|o' H )TtH! w,£qAY?|6mhe}끆rQxMp&Z ^@wIՈ|!hfl~wXBqPA + +H؉n N1 )彡DvEXڙoEA[+ TsJϬ;uY{{"jvy'0Qغ|"<RZ!g^YGءcF#gu"#yh*'Jn`*tm +/iNXJ={dn)Q3 A̍n +*3u+/LZM'I2H¥tP.#D sXWhYhlL}ٞ%G[Ijr,f[S/`+Q;axb +'ifyE), ܩp1Wtݪɨz +[k +\}D_qc*iGL_}gJAk[s&= +APE ݾl`f]H~m.U}+X&vr࿙m"Se=Fɛ/7i5,םB{Ch'4LOP6fk +sY.m|C=^*'߰K1/caȌWdڐ\bRQ +ǀS›L()tE5 xq$3#24rThq@v \k#H9ZPFUXuE'|oߒ+rBfRP6fy: +FS)ZZ#9'F8: E)VIPYvhFو} T:dS UfUd(Q6o; htrB 绱JM۰{M AmD +QfK?@+Z5YzH u}ξQʱxߚ@k*)2]g0rKf]=o5}R)*_ip0(f8&s[3 +RXxK Tyފw8Y:?4C(}Si}Qt' 4)o+V8FJnlڭ菻J2(JT%q!$ `hH᭻Dd7j^ %<|=8 6}`|G&b;y"NZrf9-˨oCagc(I^2G5@b+uHb!RQGW㘎49݄V}daz Ga,pC$ of[ĵ%0w E'VH6L XE.j5?II)_K}5CrDM6DZDܭP,X[-PY֐co"A>*xd@A: M/`$lrf@`V೾ c+2e 4.!Q8=C2˛[j| F.P>궵5,ѐ= #K)*=ր Nv<͢|&iFW$rǾeթvje:a/{BK%Ct~H֣8^uqyePq5؁AY㍇=7Pgr˴@gbNUq!-yPu^ܼݭEfMY62Q@Uy7`ng'W֖.*D_=osEK ls`j+  +ee͘鮒w_64M\G#Ӷ'vZZ 3B8zɾ_ GC9i: hW8[(c хBe(ZzV{{H!7b';d)xLvmu:g؃ERT.gFIw +ǸԠ2:Y%~9/ɋ!%>wK#To>$DN.ƬwF*'ynf +$ +el⻤EK;HmBxw798G;=޽_b]xSY5!Ӗ$#^?I%"d@K2M78\e yғmg54;*RH=7բPOn] S4{O) wˤHNX;dPYadigڍ +&pVebR% z)t>peg *)H%=V4b+ %C~7U`Z-xy#X}"o%E9r'/y3CBp8~JʰrKFjÌf-WXrf-_#2? Ej& +CQ@: W.+ܫBTA >XLrO|WOzy{) ner' ֽM!CPZpbZpbJ{v|-!#$F ^_ncZo-dRmH"'pe8Jzr2~=.vih|^L'1G +哧&v{<;&XTʗLnI{EGyw%0L6[0ĮL{mpP6LʑĎM9MSlvOIYS+5ܭ:ӫ ʄD +KơJC+~j+)e&(Ж&Y6 "P#VOZNtDVJPD-gIaw(Ŭ&9rl5etȢﻥ`Vp=jYJC\~5Q [fDT-*,b?DbRz*TMh8V ' Qr<D[~6? zercff6 n""۳$FYYj.@5 Ý +pi.C]Q 3Q;]gƜ4OÁ|2TS5nȣU@gfL)RBքc,]jVk.5:F4jjT:JMh0r]lQAjM4E_#RAͮ~{!!|Q bqŨQQ >pJnjs:%쌫= e٘~1d5Y_ P1RaIn Ȯ,K +t߾ SNc8ϔ25ъ7a H\: &=%zYb]WD֣V-:4p֎h RDIr#:f{41U^֡Zg$j|l` U〸ne`K#(k#tm;&V /QmU]k….FY֒iNob$`,md^El-•ڪʏH"G_:p 6*DZ0KȊHm,~LzKE]O4ecSw@@k0VXtk%MKq|hģ{bGqDKaX(v0260Uͬ j:@vx(&a:Oҵom6 +J"5;%KZ|Ǘ,"18ީU,CUfkB%KfJfQUDN;WC\ V8S@vܟT)HPUqJ%|HTB3hIYA&EKa~yYAq-A,uݛ^BWA:ao tXtVrMKc s-V{.j)ls8OO.)OҐ+a ART]ຓ$?|sFVƶh>:R$D؈6)&zw, 9B^dZWlXO/ސ6g~EQK#(R(^I68܂#džVdenŃ YIr<kR%a-D\&270-P[*r?u(i))B;tԆZg"&<5Sr]6d6m y#b\x4k{P)_mlhd."Y*x΀PpiTx<: S2OsphVd3t$:ԝno},X@ +JiC/ՔJ:0ؿzl8%4(!U/6凚FF;>O Z\Ǒ.9%X&K:( +g-И.oj/Kp!&IҀY +7消ª(B>9;S^` +@O < n q^¡IZ[~а8,HI@ Zf:Ę& ,1K\K<bYspNEh2N&(R`@fk%6xw54$EVz`2H )ֽ5-DYS + hZoLV83PY~Rk-Ec,y[G|"~n/u+]kdtkwd8^ +zɬњfZ'%D½ +Ẃr%jM)\Irzd ɛ +Qb?#4j}eO]젯LaC2R/e9$ct 5{ҙ,akț.+&^_سMQd(%Ii!jSFϰ=w8qD=HE*?_UBm]'lݠ6Ar6P s# 12F59\{z"9^8h2^ʃðP$\Z »ۻjH}]a/reP;u!nv#UNQ(yX +䇓RFO?Q +d?K)7)J| RSX?ܔ)0{uzVXpBcP** X&[X>̦BfЭ]_w +h~'wwsoO1ėYޜ4D^-`EF狓 #(#2r՟!FC /TxhFc^g:+5oZjz*{|n:Ϟ,_㿼_⧟oo~|w?w_I?{^O~w8W%:O~O?}ݏ?~R܀ZXWw_~?/~IQ_}}~ꮗ폿|y^_>Z.o~gPCov Ɵxhz/G?ݿ?s6OtÿQ/#\ow[}~N'?dIvD1OWx{sy~P1NJ \tT5[МnJ a3ǒ@~"#IOF ˫V^:]/o +ɐE#jT (W?p +Ժ>vonD)~͍0ďr.f8MVD##a2֝3lk׾+?'E{y7xvDW԰ +r4 ~)S 𶸨qIAmŃ N <|{+ʀrHTv;]:C-N/Oaom+xiR4~>gth'EW\~Ȧ'i߭E2ѸhК4?G=W+*jyWF-u]hF_b;*z#>Ʈ.!M״Y~$cp3}ֹoƹ?)=m{kq}%vif[t3M7Nj?9H1ucr_<%G ݞ=E#hH&hD/>3Zs1{Kr2$vy7ow:IHO^Xn\=TNr㞶ߟyTx\ LCdB❕rq=|>'5s//\ k,ۍ{#{{|r]W&>DzZa/W%^}p{}׸b?Jn3 Q{f@><7rNI{۹9v>):&98s)8&AWAjxN,oEOޫ8 }+=9/h|%=gxwmgHz^(a+.Ff4S T3Vt3'WVc7rpr3iyh5$RZܝ# g*pr0|vcxR䌯gՋ=YL6ngn_9 g>?ZۡsUdvxC_u8I_g~T կi&eVF4ʓЍ*3Hy1p>|pIg^>FYmލz6?8Տ:C@3 xD@?>LYbVb7{x]hwFda?;ڮsu{{Es87ߢq絮'+h<=Upo~\WKi>4pKܭ.7bgm߃6  JE{И'Kɒ+6vNn9_{ )M=qTw2~_wk:gh}ObY!P/M$>"A ktVsqw81bծdS#ROۿ3#s +=tr=,3Tw} +g{}ΐ%3/ٶ=uƫ_Iv\8nk~F)1Μ_>[Z1q:ټ{xL{@L/1ED!6 ">I`P<'|Z~y$>9A96&{BHxv^N {geLd\zT}'OH)IK"TYwk /f@8卙DZ!o#2 gkܘK:3\^͝Jg\K'vP ngIkg@95=',hS'^8EsFvB~A{}4{=cJ>+r\co,sE :a@S_a"k翓Z|333pv{G^WLg1q~5O@U#:>Ȇxh$ ]y77O ]X=;*Mu~mgWƊ3Prg&H/7.Y=J 'ϙw4T7"oP.'X:rV=sw!v7ҋ4ֹ[rgN`sƽ)^vw"(Wӈ9D]9]-kr<_ g2O5K:ZD)RXx'tcgg|8HisaϐN݁yZ_Iڍ1/r0q)[ hm'PgMzkrc=4"Ҥ,KBIhܛ$b3OCqveJ$O{IR$&ZȾ硗lN#*v69l$V{tzIGqc<3Fڈ[vGqJ<+H43)1li)b=qY,J 2u{7>YR]}Id5&?btSHPhg:@KdA8Ex<;]JNHB/,}o;1l6C\B{g/vPJ8s(ʵ'y*OI) + Ms_p(䝋,% \~6HA; ]%dq"98(K öF9ѐNn=>ZK('^'D@xSB?Ʋ'9WA +wc{"$ũ[BOd$q$r{}i'FiK=jWym22]iwvX|icl\ݝwĸDk\/1?}"R: e(Qc=>P@B'i=N_zڍd^rܨ]2ɯQLm|9yTqM$qi7}ϟysN/};NF-;gJ)nIR6ft?!r{~ggc JF|O)3x3yY[nCiO e/>4"'Ό #`Q=@<~5 +;[g @3x1׽9_N.6=v}gr)/ h3:9mwc=sjއ$媲g/+ꞛzRYi0~ogOFn0xN;0M` Xo?e_gr \;!E}5%/P9򘺅b:g(N ~΀0&jBjg .`%>ʞ7*f=G&Fpgx +9⼂Kz}Ҿ{y )&-2&NGԴH؞#q{Ey)\=^|5^YƬ{w/\OΩ>U<'9tJk|(@ld!-e+kT' W{a̸^36"}9͗KKm04Krzߧw_Gs#ǥ8NcT R[~aksQ b=Mtz+{'T x8%츂_18FU.jJޡ|qݷ^nx\ށq~hwl3vHaߛG1ƞ%*"6!S\ˏlKh6H; ǮѓJ[<ʗ6G$l{׶ /FUU#zRh}3=ot~1#3Css4{mulbC i5N"#)F95x^rT(}3]nugA<ĭ~b aT ;x!~ΓuY%! 9Ao8 Oh5b#ҹ;yNn?04 ){h9Au^L"7P`v) ل;h$$Syj/g"os6\/1ܞ-"fio!'\Ф1/yO+>yç۹1xJC̩i2%|=k$3Xn(C6*s]F4*G">M$D1q;ﳶ9Cdc#ܐ+VWK}Yb̔x\w5IAXOiy7Щ1 dm>;SL-u3)gsz>Wcgoy7/v17J?swii{ExR bdI >TH<]!`FUEl6_-=7ƾ$diD4ۇknfa( ,pr)|e| tv0a~.pHCݘ#?^C)]e_ƮvbYͽvf D5~6 ʋѶN9Uu,H3x{#4[?\vQU+vɑml\|w]wg~Y;Hs{3q5/qj9gn-I&8ډ9/gnGB smF쵚9qӔixc?MY㚞~/EV|I S'O!o51NBt[r }s냨`Ϻ/mt>SO~?rKEB]{ 8emx-03;&1 ]iCfA;<+bѲlsbfIf{ջ399ߟ6 =2r +{(hD+1R.>z`Zy2 l5PA!P]nA.RQB޲-.b5R1YT;o}-8mv#b2mI)Hm6pb]L6\)zO]H n]#icziRm*L4 +d&$;C s1n=S2.z gf*H;#Qxb0BX*jcsfāML`"xȂP $81~4 +q2_A_4nZy3EǧRLB衴&k"HR+q[Ld! 젔i@ +˴W45V:3ԩ)9Kȸl%͇#`{g +C TgBh-ESJ!'[cR Lji h඲&Ih%Sd +cZ2SֆVh-nim[kJ.̆X!:-ŠBz˚ +u+erMM%FwĪ_`5w3st%%dVkb`&5+\&di6d­d28fM,e: i74B _259F!&׵z}b&hnn.()C1:S0ʵA8՛^eb$\O5 ._3DVo%: K V",vpG!Af%XJn}2ZOR% +Ik! }>l!aFh#721`'UZg31Gxm)֥ LG2x1 LfbLt og,kdH&镋d_ g'8s.z+9r qLSAnfXT-XY kv+N'@rT) +LG'y~\Li֟]e&JՂwBVDT7>`Pkowa긇\!A~UXSn&ノU`&MH9iJz=[BTp6x*]AQ +Nj럙ĩ74@ ѐ2r]LEEfD׼ +lm&YQ/(ZD +D2ptH̴a(2+ub]ϱGY ӄs5`Chsin' p؄X1BFj30{dUI[ZO`2VyB +9i{K0S*XxHۃY5;:76? +7V(;"p%]14pEF,VTiPBB/T#NzڜJh4Z_%x', g(ed)_+|.Vnw׀e@kDžS45ӎ^,M%YI[j!kV8FQ药qjNd7+34#H]a*,JaW*Ԥ2U b"k-z%xZS{]N[ ȴJԙ뒳łv+D֧uDdjh.ivj"2ժT\YKxVVB$ěd:!FQԞBBN? +TT̖ł*:E 3׋ +BmXIW~?JÁEM m{z5ER\^*:8T*ʌVDVRCt#npXB e1}(bB PS\Z닇B Ō¡zu`tbRPBMra3RBbTAp ,IY#껲xt]7K̈́b^F]*Izy7Ϯ]H ,l8}6R\R),B;SDkRܵ)Ӹɗ=(,hb+q\ +$ Bh۹b #TXkbM'^L/g;XXmTa5Ou.*,jYb08VB&=-V ++[wpxAiAsςKa)Du>FzaAN+¡mB,Gan)3CXWʩ2,zMAWT[;5uu@M"hbeo-gV@AWQd +&KF rSb\B[W*u D +0bxARslީ)fv_;D,%_T׼ jU%8zMV{|XT#Fm)6+M &uPRaSBZtp.02 +ΪB9l +]&|iq=BJ,j)A*f4"m8e[,6=N~K!XN +$9hn%>[WO+{fE{e@gɋ2KAI\Bc¹Zb 2`RbXF;+NaW^l&Xt@wXPP=cJoR47ofT:-cW"o2FmkBP7K[EA|Ku;X")!޹'[;ںpZPv[M8m!LW +L]bXvst+5j5-5&n[^B#[ *W@62CXSpu=ȫ('F@5n\W@Ӄo'&-Do"8>T?W?]LWb(:(CNѺd'!PGs )LEVl)DvKsv"O$^$qΖ@X]M87 +BW?T^Ц b ?G[0c []&@v +q>%R.BB?Hw_Ӯ?U-7[[],5YF B%smaI'XvZir*U +?\,z_jZ +A+1Sz哉%t%xxT`aX0ZGT!j` J +UU√b<'4J(MA(HM-L;o_=XKFÈ%%rh)--ˇo+x+?oj)rL/KFx:]wޘ\#fzEr >:c4I.koēDZ+ҫH_ZWK8#LH??5KCcsMum&ĴF_Ġ +B3VLncp*J,M\3'g +31ȪukPHk͈RL+kQL-Ӳ??N[hTtzfbXBMMSgMey2[6#Fq} i tLHP2 n1t@R^*ŀZcĺ!])ތWh-Jj`%*g_C:h5 +Mx!['6XntE|Gb p9f'Sޑ}8^K1<{i|tXƁ Ɔ ')[>>#C3S!dY2Hko0w7q\BgLd6<}LbgTHP57> HF8-n`{PnH9{/[{^m9 9yWѾ*$kXZkNzRbK{8~J> S[Zl^*ľWzWfc{FYT{ګ} 9H8o*pKZFxd=Ğ!tH0/m7c} !uHlUNHczs/0#0"#zsމxlhPlLhzC@%z_ lDH.a \i[rTkh$;~oX_.0s:s> uZpoyǨqA|P>"w$7'V*cӐp2$]63~H}SAHfǨ&e㘐{Z|B$.`$ן M{GeB(@c?m0d#,cU2%[o^9@9&qجi\Ft.|41M%Lfӷ|AWbj}CAWeC󇓁)x4H(8 H'SĚLXPzCl/6OjLfy#X$0okL6R2nZ#\bOƇ3Je +}oɺՔNK`HE#њweRKYr}GiLe $}C?*^vG/;ƭ׏+A{$s H ЛIO(RrOd_;m 0tu7bpţ_'Q0JU0v MF}cӱE3Hcm:[2tցH :Or |RH_HrӸm)\\x ?ކpRbGnѽI~THRl91)˜Kk /FTfS3 a#[Do&0{R0FIV-]!Qq`#)H!=κ; tþlPЍwL?;?l= '7ل\RD+1}i\xH6f:}t.}t7.j4M26ME`"tiw&.kLE|xp SƠca`AIQlp0&dQ>f'hMڧ[)Hk>c# +aB҆РCY@F3a`-qiy0{fe-Mԍұg\BD*<4InH& beOŲ6.:26MT'ok %#7>(9NmzdX+4)~X"]K$T94T9a]}qAzFqԽI^ $c> +Wd_Ee73>먑d d^c*R9hԯ +a[1!s i2wo&^6t 1.kpo,գY$r3zr +4&x7CXO.`i/99\x{td&Ldsz_^14먨qlDH߀`\q%|hP.,g` Q!A XXCq<Ϲ&a߰^a]29n47~%O焱e+ǂI0;I5A6`IIM|?7GV!L\;~΄ج褍a Aָ4m9}:t9 $_#@SHc[`2;2ѕc[c1aYð ! z Ry%]Cxp(ǠѬ (Op.Ac:L d_Y~x +k qЍx.l}?'˨CȢ`:n,}d6Uw[䒔+lczǐ*˔. ڱGx):e(Pdzb?Sl + +iȸ# x)s t&~\D6cT&wlGA,k0 #Lt1Zhl}1A!q4 uWPPKt';#:Bkc#92x.*S xгf'|a?"g8,`dّdс9tv;ҥ& \d1֕7Ah(~G3=Jn@ YI/0ci[ЙȾ#}@SyFVbŦ4M a&PAh<AiTL(. : g0TWt]&ƶl zq[Pn l?όM_Q-OUv=_J}\d)؏C2WLޙtp2yH:cLiT/ԎϩT\*tY6Jh >D\8?g5ؖDx׀NO3<#{۫ 8o>lH,V}24}(!a]8Rp+{^QMDj󕪡k6i"'i-&CW +qIk 8?zgN<; a9,sPq2`;0 IkFAE~A&A9z5IoME-mBtk` ߔ{hoXpX;LDH&m5lCHPcXg0.pO2(̎)d4G$Z71s=X[>aȬOidci/9M"}:pM {L#JD̆U"B8_Bx6x=x7鈋3Y` l34(a Ig#{5ۃ!*Jc[@MC7AnH@8_g7ڐǀO) iO6=^}>An8n*#iۦ U5>/cEcUͷZ+mCSގ `T([л?J3thpk1p71/ +Ո[TNT#L;| KB%5#&6e[FDza 0{N/u-YȾldG57.>4A  Qi)b%&g,& ck aATxpm7w [= 0U)M2 0>挈U'-R{9v(.:g:~wdё9THE+7O<&A|OɀEAӞNq?)Ї`˱E6tzp.ak}& ɀcgEAk+rVDӍoVtx0g,9[fdĦKg_,"j/Yŧ͑Μd [KxEQya^%/Y%gtlXWL_6e YsUAt~xInD75!lꚂniit+IuR,RBgL&ч=%]xlUyQnN)_J _Grk +x9x?S7X?`m"?耬 -$D~{Ut A.r4Z5?2 +ׇLR)h}:P.W|?&({(dp3c_[v3t,{6s&<aԡlH. n 8IUR5:喷 ؒQ e >``:GzO|HgaT~Ƈ қ__(R@| Nq>TU _ +u&k⏭sO|?at# |N1,ZCsѵ3{AU Bn}ؐ 'LOװ+褆 VI}h3 .F`Xģ? Ǖ|OiCv}0^ +cy``6 +:?@߂oPǂgLV4ĝgax31]s6pz&ЉDEKT>`ԡgT} 1i +Q}^r  +M5qm3LNc.l:e*YwΊ,BlρȦ#]:m? 0%ZHo5 ٮT90sFTZ.Pnؾ7_̣Fc +||FZ~0H2%M&.y2_0UbcMjdi 9dُT/1oC\N<.<1l2ڿh"_c} 7Vi:ӆGǤMS ;#;pdwh2 frd27L@sϴ\vܳevw-/V)/(ȼi/4#\! 'c +#a6<uOB%WM`1_/|:u!:a|괔,>:|\ RjCLI@ºhkܽa:>[*.bI5T,~\B'ndB\F%!0Ć"=S<q`@Ilpf'Lf.bQ)RygzjC?cMW5FvrO˔7`")&|@`M6lAS%tcUwk=MˏX N4Mo2]4[ʵ?!~b9b4tn1*89N0!A|TeKn5y~ ;/<@e  q48]p ?BGC"Aңfo?(]{d¦Mb6St/L`AcDŽTlnN1X`(= N#Yz2` k';yfk?Gc +FiC!~94F O)źt' 9'RG“?/ay\`P/Z1odO:#a;^bkILA<p +`^uzTx7upH=/XR>m a: +|3} +Īmɚ+VdկCZ.óU5- +TZDWn!f:OGL͂wEߙQ4=/p~d}2雧Wdt *dxp"x(ȧ=ebdђU+$67$, >,ޘO6/Q374;rmUvV!ۆ}Q#qr9T5tbU|pȌYos~9>wH_>~"WkS95 |kh={&W3\(}f%z_#.xs6t+ChݰէLKuR 'Y9C:hp\eQSjG k5/gumݵ| {Rtqߚ1|8$`$ 1;*m k*U~ҜhҚmlCt[ܹl +133;up7d}7eӸ] ؾ#[Ôr88{+7L%t˵%d0{&ΚC속ojx5QzΔ<8,<>먼fT068}$B\n8]5xXL0U'+'}w YpK2a Z2\7b.FvS/;$A(zzA|Q/&$p|΁y0 dח0g,p>~bLbxqUYUk&U}#uZ|f4>|`~aWq~pu5pvd!cl>c434q2хfQeNvUCz='l.c6߱V5BmZAV\3m>s8qU np8!dWdюTZdM|bD"h(Q191~6Z#02|^\jdSꈜ:k6 y|(-&2%GtEƻ0?iZ1)g:QvhQwWAMǷL(Z_,ul&Ϡq2 y pƒ ٍ+Ȓsf0 ;8&85R/ !H쮻#]^k,:5lC | ǁ b]8QpƊh Ȼ5ƒKHlĞEynC5)>|W̦MۅcG[9?.2ds}'}1!iQB|%䊁|@10u{cC>->jC>p-L٥r_&+)4L|x$|Lj1NIClFUw-Ut|TkMo' `l-'˨MwglYlzq?l (A8c&Q{ޒl\@ BiO|BYwՒIjBWf@22J3)78ڀJ$Eh|s2|z4~sڜ-ө+ [٦[KMp ++CU-O2ۺϗ kjIA&^c?Bp`,ݐ yt13`l:}#c+`/8>krֽ>Ih@B%uY9+ȅ!+G9ČAps5"T#7 N` LaǃLjrհ<|,]tx.S }ėir>fG<B.ctY8? GYn q*Al|6rqm.S"Bd׀:8#|On Tq) n[3; e8GaC@1wL6ہ1>d +s]I*¼eS6j)yTyߩZ;Q '/Igk[Or$R6}Fdb@DidvL|#0yPgsv9}vvO#6ZlyI?0נeYg0c[LX#^֢ ^GN ;z |pN)7u~bCb~G40ǤoD_<b}A89i!${G7I&Le)&u)p<58lCCW|T +Ԭ]30(8%=ziG +wp.-Ĭ!VOŠ5~L_r|ϟe + A^| :"s֣9 2Z|؟qHƫ&b}]rTʖ0'M&Z.:YZЙ{3a)|˴ub +.mHZn- +~DlygEH~NJ6 8䇑?ɶGKU폖/JYyNJvZl`B +.^8W|d6gCscW4+Fp?b s9[gaۏGww:u~4&|K3Vmꭂ\tRD9Y}ւ1zcCn./-M׎f *ǁM 9H7,! +r y_`^ +?>C_BLQ<:=4.?'ǘpXTyr8^b4 .9eA֞W`%{43s$[-"|M51MӰObBwqzd=#ZG֜ḕ`>d4٢}F j/Y'jɚsTASD!ݎlY" 9LYoyRֹ9\ CeS7"ϙQV0[#ZI4>}yd9xkd䠇!|l֩p9K>Ѝ 7"L;Ch}j!UzUrX dDH*q, rl[Z@0 R6@L$%l 9dwG}I\xs0SwNRUf +-F5%MVU\Pmv_)sïęChrժOK-ѻ_:pǺ<r?vn<稶W+K_;f6MS ]EcFA2>M% *ڋ @Т<+;߀-:iyDӝo,[bΉ=l z5vd1MC6deʍ]ߩja4]|ПĖ@PM Xʶ_r욍}8_t,c1,=6"W=[Lv-&td;l-א| xvUí@N@OB5۞9=S9NY+Uo˩ًςԁ }е޻.% }ﱊ=DxA%W͈KV?- w}Cw\-W)/fOnLU]Tp 723WJW8&}:h)=x7ܽq-Wǽwȶ_M3oS Vsc[TotE9PCZ9GB-jK&O$SNVb[wv2*ӿw&ꮼne^=ˢ}'oϽS߸ݼϜ|N}ϒqcqQݵo/Z"5+Q|lx!i}mz;6SJ>hSpp-Ә26C>R;P;G }z}wvShh|BzS{zBsFuΏvvާ$}Cw]N]fr6=]ljEd*db9LSuw Λ vw9k!>鿦P>[zöKɭoW;_Uyq- ;5} hG'{zv7zǽO5w{=}G{a>fUeO$}棇T'akCkb~t~-5{-z<]vF +Sy+n9t헝'KڹC,HW7jnSxL[Lk5j5Tth:{ ?2/lZ%e즧lUWK:~^\`{Ge|?ܻ{̻٪??GRo?oM?\.r}Bճ<EN/Wx>9߿Ƒ#e=s7wA v#^箓~Ot>r9GjyWCw=]oTDg̴?Zz[n;度oO mW{sSS{Fug%y읚9$9қ:FMyK3'gxSg>yPW_RWP~"ÍWG'gɵlX3grk%aɷOKa=Pw˙:Vmyil>r[}E~iGnt:3ǟ8;VDE|: NUg~q/ +?n> n="NC/)M7,Ru䭒͐g\B]ﮔq*{ +<~|Fl,E64z,2ib]p)Wٗޙk_KypOSEG8mjTGߓ[y#wh+*u#]L^|ә1ɻ.xj7+ћޭBPnk<.䛟OW +W Or_0ҿ͢޿M_+~QZqzf]U'qo<uzu{ڕG{3;}Ū SN'ڃ<+N.r׺cˏndtpg:_N=@xӏ?{5;w+y~yXv13y۝ͽ'?qWIuww͟gcsOK_>u7_olTL=07n8LyGU_GهܩVu=/};wf,{NVˋ6=@5;9ܣ쵻o+;IN.9UdWC@wk]ƺ{uUA͵>;ߟ)>NS?ւ .&nL<[@n}oMo~g l2dۖrO]pw.j?T3bs^wgC)1Z;JH݀M9wn +ܴFsѻ vk{ӏWœUp3e~Ăv>A2Wp%*j^5Ƞ۫}Ζ>\{dդ}W+7]I +nܺ Dًk벥=[f.rzcד=uOVz?9պ)6N^e܃[[n$UW~^dɵ𢋷K݌)z7֝kJ^-;t-|˵k9[kP̾h:'W=|=-2n +\{ƿ*d^<ʠ_(!߿Na~z~wͭ +ы8wPbUw].vzw"nQs!]_\q{u:Iw;⽨s#K~,9~Ur^T۱Ѻx+j)Ukԟ\alKrڳ[rz9秗 ʎKTmop]J7|gw?wۘxb̙>vh|`rL ln}E T;\讪Ɔ{I5R7'{=[UА ^Rqe{+{4OVX{rBޫ *nd?>gved>ދd^||z(ͫۅwW=RaǮNʷ:?iCu.iM|u]fv7o^Z[ҙZ[w' +}u]mcZ ҿN焵z5]3l .ӕtv}w*[*od5nRYu+yЙD޿̿yX)vycچR\H,|PtZe.Uѳp]\ѐKB u$V%ү%ES鷒Sd*ײأÖ{??MLVZtV*V՞ɩj=VQr6:aZǗ7bI6*LYEͻ.6\SJAîk ԞUS8X[[`l~}9൜E Q/{<,斻o}S'x~>J4npr &<3x_Zjun5}?o43WF#] +3> +ST]Ɣͩ;cY<&/ol~꟯&MCsRʼ#]l߼lYM'/6՜r\k|6܅-Jn(mq λngȩk(l"w;',v-oA}hH2uY1NlH?F~2֚FjNFPgcfEk9^r.f㸥 ? T|S̴H܋TdiB:4f hc?P[w/xk¿=|oJZ]ku)mof7_|rnk =={-^oQTRp1ݖ?&]bه}~>G~4Ӛ~0ELmb+#sk)2,FfhDO4nf{WeYG8\*^ή=]@˛_ʭDZY8lEXƍs._nmU^Yz=vN,&y>d.FFc 27,ƬDSf+Ѵ%hm8~D!rd1FcRhmƎ ?+iB˳p}%B*U򆛧 +[/vb6_ͪu3{̭7|vf6I~֋W}?h#?GC>F"Smsd7@fFsmL g-GfˑJҶq6hM{"CK71t8"8] DD<+ԙ{>to @v+̹oduQFǕlK8?VLCmE## !ye眉dp$~Fg-@tc],ǣNYh_9εt;rR}^5 g]OIԱrmmʺ8vFvqg5vV sֹ^O۟ =x* 3d=i,&c L}2ӱ\l7mJ4aF+Sd<49MX,]7FRlW_Zb a胰s9{ʂ u5vTQE=.6BΰVi'͗pVYp0|?5I1"^ؗYao4'a;?dl/uSܾh52֛m#~LMBV՜p4q~4"MC*vV&9?ptQܽ*.<慜ړ73^MAzge,mlyφbd( Cs0F%}efǠ7J4~m:"nl^ `%ZuPcі#UANO6^-mX҈ms8cݬml0㧇ot̂zj?o`n >#h'n2m*d:ۏ1vfy8bJdiM!i ٸ9N4wQϯ~k\Nog/|rNo,:%xť߂o_bn ++6^561lאo!!XI]e q?,?2?pKESBД4i +dlǔ"4q&Γ h_%4#h,~kaa+.z'Dq߿/x&aoSwbj:ا}ۂސ֭ [U^/lx/}m&A|(dFwA^hYdfH V`62荬WxiG-LX`´bn_xɖ7Kso/M9>|EmCǣtBG!jq7'/S~Rmڵ 9wj1uB󔧏,OV6d:و4hUfQ%h-ڭaWu`y` ;";R*.՘+/G1V,}nq.Dž8>(SQqҧᩍxUbD_W#ocq' +⏼SߋT\| + + z4q3]4ꖆfK,hΊH4ӖFf"74k1SjK[᪮SNr+8{=} AϿeFӵ鯿~=yuWǛY{[A,)0A!HcA&^^oBޜmmc䆠} ݋‚[6l)jrn4qb\Cֆcx2`N{i?]X rIx&(}~B=*/q$xIo ~,#=&3?F@so}֜D')?.r[ߦ7y2wfvhl)s7"sZKʾ5[@U]MP8=o ] +V=ᅰS<_{Nl>xvVs?&zDO a_Uq?{Lp Rw\y"}T|yqC>5яtOL^3aňe-?Ʀp5M^#ۀvU/DK7!F!G!1@|ŏG!;!ZtKN Ņ-E]omc+AH|X,.=b%`'N|,b}k +孫A.V' ?vlѧlӳʷ*E;߶KőШ`"Σ3\4dOnmuaO" +f1]>| nQ>]~|R {n%A$*k0ŭ[-)2ic\Zʕ9frGpAP$$|Vߥ5S  8K#D-Z}Zhkciv2DUvia#a_W/ =* xq2'W~ M^x@9,;QAmh7vFK+e؊O\IJA˶^X@z/mH2+(5,}Ȩ.L Z: ?!zso.ؠL4G9!5ל|:|$އ쉎aBRAKxwqck,`8+>ػo˯>Mvͅ97[z/ҧ0ѻ$wB۠jM=KV\zcT0c#]N{e6c>ɹWzKaaxy➟ }On1\͵XX ; +]!kthfX?+sebp0S_$CTYfUs*}<}?\gzB!IZ-R(&S?$ǧ?-k{?+"G} +MžyUhc Qs|0~vntvo_e)?YVt*k ՘KkddcbGx8{"+ +)A2U:b!zi鶋֯ʶ_D|~ѧɾMټK5y!Wܼpot'W2LDI +zGm:c2Xc2 +a|6D1(קKC>9Gpg2h M&H4}\";l"qSk")?v)hG5,0eM< +齫칌ͣ7~Ĵ_NW#[F +[{Qi!mXH<^J=2BBg3(+V>>y:9+'Kl2tYĒ Dj4JOxIhɔh包*B4BRW//}Go%TO]oVJ-~kfk쫕MBYv4 Χ7Q:Lzhie̞>TG7I"IG7!ů>{un`Ap$z=|| ~go':#xl>i鎖Θ쐗ѡlB>hhG"DMlf-]}")힪*7cԦѲ˨+VLN9h.öPyvt[Ó'*·}kҙgK=FS6KsE'n' ]w'閸KH{$w^S䊜BNK!Y|XL|[!sw>!ZVX)Qry{('reW h8u7w? y!FrUFPBA`~¾P̯5\KwVRH~re5҅;z~p_O%7K*e;pP^x|ǐZ ̠ڴgm,9NVzZV|wgݿo'q_/KX a}}h(Xץ⌭Ʋ F˒ |n Z1o1lL.5-v\r;=2{Rf3\Zh.ӂh՜3dg@qԱ$ݿ:K{X%ى9=]}"Z7'YbȀ>NȎ9JnIwǶq=D~~gf5sD^ZuQGwiɩ~꒐t-Y`^h\ +#tR(Yw0o5b68^STaf!=Aw 8Ⱥd? Ji[gd4-^Pmn k]dg{ ؊SMS;>:2_Үe{r+N3M1D5צRw{RݨX5oENRɒ$ WIÌh75 g[DtE@5JA8k7EkѸQ2!π_5\=Ł*Yz)Ue]Ċhu +Uїϕ]:R2ݖtcvcd}_\JiI½ҌѲb=ojX7KN֗LR 8)Lv[ٳ@7􌈞l7bZQ;8RϜ^6mǦl1S &w}t[1u9FI}]6:A*}\NTL/&\[<' }%Ouc 9N)>onү?Q4l29b>HA[fZM*,E[ZVbr=QL|$(\|H*1"̨4.$NIXqూ9?U2N4C Sߎ<<-鲢kcLqtIs$y;NJ+XK ]q` -_=$T ,%:Sg#k]4y15jZr;&ʷ 5yMfswVO4%2(ME,ĢQZ BJY2Kφܱɓ;=-|p]kNΡ=\F?\nAzfT"v 2[ 0D{`4@GDG1ADs;N2 Qtx0mG:L~T]u+LGo4*:[J(gr??FS&~FVIZt>sbfѻ޺oJNCtlI\|3>?]-e?Z4RÔ&HTŁTWSdIڋJlNfLBve \TG+}ߋ\]?CMro)\C>ڜ.a-v͖Ο?2Toʳ6ʁYwv]{&C3Zu/Y88Eb Yt;~*Z vS m[oЁ^DB"fN9 _}*ԑb?0ɪ7c +,eO{?yS?f71zlrjK⛺`Tyt9LqDtd+1ߊ?;SY^D!bVK4R=6>聦40M t@^7`KPM_Wg*FkK ]*:c8hGe/%5_ϖu\ +( _z+?t5HךͩCU!ɓ.Hk :#JYUt5[Y١)tv$YVcGG?d7A֗Tc#U͏DNd\b~Nu Gqz|VK\vˉ9t={}?Jw~m`6TpE'kN1aO9[͉X`6{9ђLMǥqzDok=i!1 =PUP' z{\|7s}*TO`mnXo{ zn32ǝ6{/]zBp&;X6j-{fh*$)g:sb{}1*kdYRĢnNl @oCt#wM%<ưaڊQ4偫<-:`08\[bvX0Ŷɨ760 T.Ώ62I[Ն|l>h}0pqB8Xu6[TK;VQs_ x6h I#AÅBq葒@ +9hF *cÖtX]nhyѓ.z hqI[-!nvuaYw2-9 (hhPY:~%u|I֖Eem<4O\W#Q!IZ|#:@Ll0@/! Or/%h+ Z2,iMTƾ|iLRv`pf>al +bdӉAnq==kSFqQ͍A//TCh(c.x op"vN +Yũi5EÝh%DB}+ޢl7C SZ.=Њn h賩&a෕_VtD5[(a,ٞ):h L)k&U+ cZZ Ժ#@#Z_5Jmfm]rzicdZ8:Ʉp`-!쇆-c%7.# 8͗zu؇9idZw-"QI&cZG+/@XS;.stB,0R +62mK&XρJd:R1,4]Y_iDrQDZ3tdDvW{l>Ѽl`vO,aI ;"ڐu5_Οz_}uzÃ+m &ǎqLBHXӷB# QsXN[\W"IhTsWg1q )$m,H 4AKAIԒt:->ʄ)7 l 6 )>1|Wvaazko_8wO '1QEzԚ\y:MEõHq8qFvS#WG VEk5F̦JCЉ-UN.5RdVx"?9'g}*l_a? +<::3M [D r=0ǘr<7ԽqO#tsgY9`'eCwE SLfU:S +$A˛hDes):Tz-)!zi0D-c.eۯ/.ʔZ[/-;o,2BQ18@nT랄ΝYWb $mfw}&#b*=,eu)<$?@W<1n}8AZh;_)7lfX6ӂUp۞;/ݕO}}+(O4 +&!~7fr{,IQvtp}1ʅ~' +#o x.ϑ緌WTYv^wش#1mNbK I?^~º4S5l73LvxYF=:ֈANAj+\e"ԀZ`L%b -`T(j +#¦gЇmi :\bY,؆\y\.~>x/b%rfҷ&H!!b褳NDХcƩrڭT9`Լ}| T=F𛠷Zܠ7L"ț/㚯/.+h/e7o:X~n0Ruzhq{:z!?zH{M|}_2 9eU8^(P8/a/<镅ݓ׃^ T:L_yK幻'ei+f#6ƖU.Ŷ{'ң qajt~Wj~9B>qh\ \CE^۞x+JOu~#٠ZĂD"e}πA?gQ=؞5\%\v ^kgOe [vh:㱃@xIʓ%{>9է0/e7 9O[º@l xz!wWlW%C) 8-X)N:0#JAct ; ۯc{_y:qҐ$M`ʸh zʸBed0Nlp6G4msYE@6#MADguC<@'u#s`-\^y_Wv?A~+9 8DTK$#ܫjj-&;vVʁqL~3;.ғ8Eh.TUh2cs +#~$"h 4uED8[O# d2*6up]7 WD#ý,&Lz|7 Y`>5wՁ٠Y 7f:pa|rbgZz ,g< 8]p xa1)YcEJdge WevWUOU`FtnWzXPL/32~G]}f1ÑCzf%hVfXM)1Tn>ɛ<; tUa 94`h*2LEhÚl͆a*#Dt 8j[K ;ǂA[I$rlj&ᰮ+IXE!^Mf0O\KR[8"oq ,)P1ΚkDE~**%\2,m2"]G#[?O6X܄O]7V'.ӯ/3Uc}lf(O7-/70ۊZ&0;X+-n.ʈ |3#Ĥ(UDg*-mɬ4 +$,'3q׉k)o1̧W YK?YC,5FI0wA_b lC*s9cw!i{ ? y)+:&6aAQ~s@JS}3an?ލ^:6y?4c+ߴcw=AX@KHćJH̅A~R&6m[}a>Ē|\qa1 ezpDC^NئwJarVj\مvԁ%c8; qO~]X?* :U/0`0xm64NK'MK{&jdf++*O3UtY +q>瀘 + pS$s| a$#w8.ݷq5ʪ L3y}YL\;vER- ;miOYYSrvXV7aSoEYJ';+GvVܟ쬤aL@Rvy1 %x~Y[|~ U. 82;kyI[Eb(,H xpT^;FQ{V@a|·&xzr՞ +. Ѳ^a׍7lWdl˵|Ǡ+vm%|n10Z!LfhþGEY%U( Ș TI8nq8Kκ[ C~@Xtx0ID?Ov/s6vNQTbA{^eLy)[eYg^1nmb-s%ܘV+]rqUt`"{9b9?8R[Oڱ`}s`n5c&GX6+_0D5eبt). UI_O4vc$X ٠)1Ve 0O&sTt?%:pbup\BBJ!a=KSf'>5م5O4X/Z3[\Ly!P5!|K;->(*ϕ\894Pa +qj [`A@(5a a|A0z0q@`s4 ⢢N+_{7 LC`MCqBypPvqb5e+¨ɩK_y8,@';;myc!] +,F̩ c]Qzsx p+vMf1;CbfU7>bbۀ;([sWT=챃{csȾԜ{ҠcWׄ=Jj?s Cp`Ym/q=qҡk5 > + L Ym%=+<5L%f( +wO2 +pgbK2z*˿ 57+e<]%#u-yrhyH.H6.#XC #ض++wM#Ls`☏ĬB& `` ';:SW]Lj O*;b$87eq4yŰ>#/t.v4`ctğ+u,I92`=G-`å7 Ge<#ڮ؉/Ljɔ4 ncӷ`?SoV(-Ƚ+svp qkԨؗnZ5x{)y|@\awc6ᜉ}p/- ) ]'VY.6Mm`Lk&o{y ] ^䃰gKQc {7`^ybyJ)`!$eFdS6`?fB<^MLLx°_10h7V_'WX3q(qn˱!{Sl +XΎ<_|{0Ā7G +_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9?SƆ%e=FNq\_K K_ +또jeO^c}}(O+{+԰yӭY8zΟ߁:j9 lJ‚l> +J_E}e]8Vb?_bcbBVuEG̳r;ϊMF讇'/6煟%[͟gk%Wγ +od%#tg-oet|,^2za>o// %? Y8Ji5h-om->Kȥ"u +9Q=V/^'\}/|jb&B| +RQyxEH"[& ֆJYx,EV1dT9-|k4ptYruP +%ɰJ@J0൚r(t]%eUA)(1DIӑǃ,JHX9}({Z2_-4P&࿿dPL="-2fZFCA еZP\X6sK(QA\fC(#k Dd (V,PM Ȩ2SOWtMgE^ HKvNQBij9P +3a!MjeeUjc.ڄX.>[td6D&Ȑ\(Wi Selyw( TIF2BAY&ydPE I_9 AɪT!C5MW% %DR%- d(Tk4@nOd]WeV˗GN" %A|lH.q!S/c JĿ rj 2HҀ$MFɄh+)cGdUØ O6-2^|-&mN+OP&W$$J-5E'Бڊ -cFV8E٥ʬJs.6EJ~)Ahc> \6c2!EORf2 Db]T0A@gH &$VHQFe YP©l|b<Ɇ y +IņP,;S^yh2c2uaC H A ) L3%069V%|r(䲆)R% <Hs"P[= B.6C)s&pKFqk(FJã .&_Ȯ9xa$ o$M !p_&jR!רϛb5LMX2!jbJ@$bЬaP| +Ug"Ԉt3nIsI\DT0YR@yP97H\bJ._S'SkH؎i)RV&)b2Q:PJ4B"MJkͤ< d:<.q~ @)&R#(w$}IuI?eԏ+υJ(Wy* {m/(w(7[ܴ{Gl̀2}b*6L(ρqEJaq_Qiáƌ2eI3oD$v}!o.+ʍ%`ೈyz%)W%vLQM(>dJ +{IIZaEv8Q& f9-㠼XwOC!dՙGa %"oj q|f|}H % v\iKP"mO`#b(`\ylcуF>*$MCdpu?D "eͲ5tX&[{dȟ Ug6h3: $aс)ZP^ s ʲH)U\>>,/P_Ta G 2J#tqG"Z]:TZM!ҫ l F(tAAP0l#țk2t RQa ``lQx|$V[-@ +JxD,y )+TJʳq)͇ 8>#ƞ)6)6[Lh[lx)b >r0(Ul(-_WfȧV"} 3m*K*XR\(ei7|.0jMAF +s Jaf2ڳ  J֠ +"ϓ>$ˡ̕] 9lȬ&B5c*,E-+a-ֵW;\bw+HÜY(*!- vHwµ~ \o %}3羟1}{]!K͙^Ţ\9id!~-<ט#2XI(JrdX +] e8:N^8P|q>;Lc@ȑQ-w@)f>gACĿ{)BȘe=;D!mG8*D@YO_%Pl@89}|$L&/&)a|tW m GaހKHK$6C%cHAAn>Wș'tN]G[Mk Wr 2,r9(f@Y$lym ȾL.H#s(f/O2I )} ]C3n@vB6?? < {:Mz T_E g~ySns qȍx =^Oǔdmry3^Y٬L\^6VTd}isYu(:aH8{"8uX^,/O!|i/4ŶsWB%-" 6 %{{H-hch!F@ᆣpOR- O;M#X~r9p/E0?k,~8 +1r /)x/4,4/\_< deЃ ōɢ[\~3F(Ȭ`{;+>qI%AιOws + ӤY̱DI p9Xx aHKX ɐSAz>6L8-{ǝ(ȕP+hL_bȘZ/F_W S2<Ŀa,W z] V CO_B4Cx2&fcfX0Va3DŽH0xI`“LdRlyх8P(F|K <8Ah8G$`}zh|Ʉ] O?Y 8(@\ r'r [S >' Tn1u!/1@mQCq[pBoDf<"v?R. τ/$!|LgG",^3c1X_:p{o="4b 9>l9 +o@g6:) A+8ΏshತYw4?ckTcsDypj41XyA|]g8.o @\2$h#'exQCNȀX >3g&#,62i|]tZV>,| 7,FbZvcA3nhy,2i_f5{~-AojΝ - g iȊGmf+ N>7 +z8 s@xa"ṀBt|.^Bn?6^3πM HÜ\qmFH]K.!l CVr ]V(X"r,kQ[ QZmbg)XQ諭LFA6ݐچHX$5.ȝP}>J Lq``)q},o0ȳ p5)` SaAl>|EuAS]q[ V(kk&Ú;͢Ę!HGtUKc@>f?Dqa(4,c(v؎J /Oɂ Rf֣a +Ϗs X[BD|o$λO>Fށj/pW۰ȊgDd̝>yW*b+Xy<ϗbT9:Z•)Po, VGz 'SBA1 ~Fj9Ρ '{Ny\l_s}%濎 Į BPl('rW*r/[; Xr3v'svޮJeߏ-%c`_mED`CVHWwِ]lq۱ uNǔRaWrH'clB0NUP)28^@&خ+`|"5lLd^ą`9?Dz'.!ΉȭṉSq\ _-rgl'wRcvy ,{{#-C`sZ$(BL8<Qq&$J&@ +Q.c=!pc@bS}6TӍNу&)Adv`& Nx>h:-]4H?)1C,Rΐ?]S+^/,So:? ba> 87,@蕽 qU7;{ +endstream endobj 57 0 obj <>stream + \ ^蟻r"[ ~16B9f=KE-|85i1]V6ϽEdiлF%g)G4撨tXAW rmYY*q\~Qb*ؓƀ< 5kL]1o|,/M<X=u&[wZ2*qB k =Rĉ閵[3:l7lRwAr}VUI _w#kf$h~ Y,&Vx lGMT{q[,YHBN+}"I#>,8ry>l =Oᦎێ+ +GsFs"{Gm$X"'z~4 kпD#{[{FǗ&3ZUӠwi𶞆& ΧiC֮%'-l'}I7kW籋c%~ Q@xHJWT+^+?5\X%/6843(~Q\JxN3 +۟ T/O'[!ئPԨj5il( 8fi0 =PՆm؆8l#Fj8Q̑sq9y!pGlu1uɐGLQSTכps +uSy?<&-qPme/=< @JUƲ +\:&oOQg&C^҃4q`6Al[?a1r` }3XÂ00j& *~@/x9X ɡnL/XJ4MUp_ͩm` 6 An4|%?^c +-ѦX)}|.Gf^Nֹg&PG/aեo6%؞T/:trW &6.Oj>{k@$ӡŧh'n=_1,pr &`6{`/HŦ)5{NMlCb O c%؆z_5>O=AXSb3O{7<zmK=.x4د +UapZ/yE+S  l(Ѹ=s$uY$L⟻t c}^p>j.qY StCoEW&);QwVK<ӗA[ZuhH60gsNWI9Fjk`;d jI;m$tG+?cBل()MyCl(qO[8>:4竱 u ̣3WBKPP)G_bK|C<j6N X3 ң+KV}?z\^gAn&%|>`*N @NmSxBxP4P}Gu^|~ؖ[.9c fX;eE!7歑8g,5! (a}%,gݦ^1q"pģ/?; =ؔ!Ɤ!vYk_W4 C08 ``ySĶ~rXvm$-r@qA5sMTZjkȀ +NPkO:I /Py]%Zm|a&LztIx _l((_{BL>!+Vv)+Pg<, jlgJ/¿l(N~۠fK<9Or&TIX.J>@JJ/Z5s G($}Un +wGؚ#]lX23Ys=1i9W n4:ܧ@lXa{>fG<хXG9tiS A*ݒr58'A8r ԅ1x k4:𰏛vsЫD,^_ { ^N%GDc{Tp1jL@v0XA>v{xeHzf_K"&z2f_{"-"VlWd"r ]EżFF܄&`[u{2߃`A.}weTzaf +,ye/CaX`~W  +xm<O؋z;Z*l? ,q茶dV*B Ytg2b0&ܗFs8JX+Ɩ vBn؆_k^7~YX_u^i~:p+ݫ)H)02=JBO֮a %v06᳡W2dύˡ3}4obkp#~>~m{?a/ +F'ԛ %YƓGGu9X) ttv `yx XŰ7z]I6{9j*~ϰz:r;b>r+55rK^y)AX䝷W 7o^1+00y8¨^ r %{t_W%)X +ؚO65pOք`z) 1~BJGǼ؆׭xN{5X4&qO*b܍8qC5; 0k ( +̮f%J"] +Z\ _S٦Ggz6sTbnT!:*[-5l  +כ ]wbl/Gz1i^e&lGȏ }9Mz^_Bve%;7¹. xW`96UqX옾a!=ɐsxc +Ō*2 +]ֱre4>i6풳(B^tٯǿUMCz͈x`kɬOA5v_uỴ.1ѫƼmt%iKཫ螁$+6)ͪk IvPZ%iZ+aKdˠR|WR{?# +zePI{nsN٬:Lm&_I&$Zh!MmGƔ4xO*S r Ԫ ֒`q&R~ѻ W2::TxJkOge 3tZLn 7Ʉ]'Tj2}bnķ"3zDϳE]Z2-@+[gi6*ln#ӴYf%%ye$9u$ASծ\ `USPu@]0ջM3mo7Rg'煉[W6[{Nm]-A iy?^ ;X>Ȇ+B 8$l:"Mk0jBr9Oi뵅GbM957 Y ]LPCJΔnb'}Ŵ}r>e O½V/'"ـXi){Ҍ:$FMpIi9rnW*Z&]Y|j%JP=]\5a>hyFn˄av[Du(A}dnt37 m:60]廊Au*q [cu0 Cޠ>ys!uwАIz6~XWweyjc&S]RLQAe9&FK1j0] kٝzkufɨSR[!i(%(^3t֯I% P>Rw>3>zYG 1Q^!mtw;(a^TMLA૮ 3<*(1PXn).3~w%w̵V]&&76,+\W>^~s{%l:r%lR*)YCSˑ`{ kFEV{F>VHNI5´V-QV٫>^6ZtD". EyH6Qz(&ګ"KCɠ#y-߁noэ"* :~ĉ1@Q{?iWcqwEı jt'%6WMDw$;u&yʷ2yTrV|VJf}Q$^KꎱH*v'g,jCy@zV`rZ)M:SXҠĹ-Ƣ'$/N C>"HEg='g}RQ?+|it`?2eg> TG7ߌO&LE[Y#c7~Cdr^2.})絘X&]RfKU>0ic=.]ZDÄUQAR|QE_z-؊LibP0P}"{_ * Z3mO0PSqfTLc IE56z62XĹRЯ֮]0K")d%I|:h-w 7m dg"S'~%JҔf&jNHʋ]ي_ԝn; 1VڧՄ<j ޟ_J}dۍt Td"u6<'zdfe4nAQ}^J>aWmf3 Oڏwwy v3qUYRmS~Su?;*F4X#nYѯlkq}/;n%XY6&]:לkޞe4 }pz]χ9e.R+ثZ۠v /4H3|lڑaR_wYš[Aw +baѺZFMɈo.6v:q;ɲ9=xDkVJtPӛҋ U-m"3lgɎs1 Qe~GzE J>~xac29^Sdz[EkJ푞b$AVݯAk^Ce$fܟ,~9hIq2dPz^xzo׬yܱ'F}5a¶&Wqww딠g$Sn)vip19$JT[ng~Fz(sڼ?NjˌMtIrNp JКh F*T=P_p)'sLk3*s㋾8A 5lpLv6$]o#2-6jNQCQUQ䃉 dP:^D)/w;YўҮ:O͉I5./F&:Uz#*}K}#.7D0.8<4D}Ŵ}cJO3eg~>.h1`rI*7=q'p-[m#b=k"=3+#ۇ[7_ +* - - + +.G?WV[م;gDZ4  < <3w}"ѣCk jk4s-,(k vy%!O!WN_@Yq_um;|ԝzIjF%7z^hͺzyHc=w܊n uWcQ\oZd*}oɯyVc]jKTzKTrkgSA~9'4-[ſƩy${LEJ܌L:KEo +UɌ~Uqv@㈤W_L%uU~N&vsZk_ԙ'}"aKesr[I}(G6͍iJLwwKhJ ] .ǻƻ$7;Gܬjh^UE,q}Vu1"=DgNcSZ[sEXqJ\Vo%*mW܈(/ʷ7ڭ2$ֹ&$6=ƿ/lP~ +-N/voDRt7jpI-~? ;5992̺s٦JaeL'x Y^~.*4!h^q}.?9< r /s,v>ۘy1%DkvCQiɇ`Ikѯ>iKy乖3 Gߍ9"g߬^Wѷ]LEvr憭CGGǺ4_3jȿMB=I3[6V!̻ņ4պF܊0|Dj pgj;gdxk懦W9GBYUv;Va&oݜO"j5#刅1AEs sMUvX>m>1~k1IV*3=R?v90c=xVb*%b߻jnN(Ӓzla."{L[%a嶡O9'UFG{zU'V'$5"ݕRC}O#Ȯ_/}.v͡1u-.9OwjÍZSuiSQ3۴rb+K6g/!䖢kEL"&qx~'f +3 }ơʗOTZi|N~嬍^zCn^OqobſL+p^bdfGLj7aWK\#Q>x^)!,5*3bc:'R~qT+i*bvJB䬌59-̙jmd-T b1B%>G2?z<'YDˤU"b7'sF_?"_dDODtOd+^QW #F(p+p%.wJ#;E- gv?7~rK!-N{8F'sV8?1]ીNG|5p&cFLC_'e&f%o;L 19uDov=6;=),[d;Hc^;Wƚ|xQ1;HHm;Aq5-ZNz3^Ba,t c!|? ]Lqwr5cnޑ:W"Xg:uB]bMs#\`{?=ZzWk=ߙGSΨ9H絎OnfbNsb׉ۣorՑ!ӣ#z8<ӔYPZ݀ư95)![hQO +]=8&% 1k <:q?t4 +D5qVb +JE8bo&@3gvW /=_q}[PQR^%692#¡2<UGDWEUiY}Pg?_^>M̒]@L!iIP_H2r)1Yv 1mZbAb3؛Q*T&D:WD? <ْrLS+SP\*ʭ%-o"i;~n- 1[vel+I(+5ɏ]F̞;s1gB~vBn6b植1Tۍep+fͷN\ lvGd}En\R޹_P1PWZmP^k%8EM~+N@L)~F*?2P.YH1f-1c:bE+Sw"6# SevN™ +{8ƾJܻ|؊B"2wNEEα9G|c<Uޠ򿾖&8XG~*GQhJ̗J̙LXĀOYj@S#f-$`u!nIo /^FbR9a3{)@aR"ȢbHt:߸C;̓dlمj Ořa$~8L!f&_I̙7{lX4xzVy)brP%F̝{Mq玘6߻bQ/{\Tc;D/sO+sLL,f3xS0F=<{ïMBN#F!MXF̙Uܴuh$LCC̜_%bbS*-b{;z)r+pzG}=%Sm}dGc<̹zǔF厈Ks{_xMCLE ͫh͔][HLFc8=fYB̚]fBn"OzE b~b'VQI&ӧ2{TmJ._*Lv/ + - +/Eث]RǨǨƕ8Du;T:vT9E_W{3e=n7Pfkq&z~ؓ_Oȏ[! PJ̓G,\LKYK]eB%kb -Nl4ʐ>E J;&)r<_wbs7Q*|b-c Oh}HWWpokFDk$eP_Bȏ\Bpl@3e-"fOXB̘F-Ba ތX$tT/XO3-ݳ~¾b&NSgjӂB^D~Q%][YS25!mZm+j ^\'0%Xx hDc8?fBOـJ~*Amb._6K_62(jsUEFcb.4 we7MuTmV|Y5ob+Q(wƼFXhtkCBw}R_}j*%EhqKv[&/q8LFׂU/*"MtĜ(W(rQL4\?g1o>b21>`M,|XBlv)u/{~_m[m:zz zQ^\k!眖/ +b;] Se>e5\atYro:7vOFnpx9jgm~4NnU]U?((ʩp+49 FNtZ8!|6&0 \W6Nա1= ɍ!E~{҈%+q) ,yg+r Ċg'Bl[̯n@%jnjn' gn[#v>js}>m3Tb?یA_9cޏb7^NxпlNdJԽ? eDϿn'H +C&&>qqqA9W*egu!0Ӧ]fh1dIb5A=hI{X"VU#VT'* + EĎ )?k8UP3!|w4* +7+m{0뷵Z=kop[u92Uq&3ls=p߳hӞWQt`jmݫU-VP7RXh1a)1o"l!Yt'vR#wTĭV OOߪl Zkޟ-Vzp'Կs9wN;|q>>N,pN!ůlCΐp6wNd;zs|b8b >mSLtnh~N,_G8׋~wp(vQ:qu~pGs-. +nZ/w̺><")<5¹60\4z(Z(_q5r[Vp- ;+N6K!gd.eF9JH5+a7l3ON:- QY5h[Yfcn6 MZ_zAg!5e%tj$'c|9d;e+g;݄rA=GUpN)kș +9[n~Dt3p@?w+#tgGΊhKF]|~4c6!/֒/{uwbIEIcI 4t m`ZWފrٴok<ʋSdS. O^x6bjmb5䭑۽*'_Th>|=B:u^sLKҡ fMgWF96Rh}':QyKt9-aOfop/<wj#XNń5_b_vŭ'ť  S#TՄO~)8=aъ}gtT3n;Y*/攵?rR9kԗoԷ!74mMۡA(DY\eٶT}yQA*Nqϛ8eל^jf 8H=d;kbfj +RzR$s:i7sM%ia%~n VquENܣ{X4g+Ѳ>g\"ʢ6{ b!;WVۧ'xoGk22؁6wbx贸MR I$9mmBsN3ŗo5x wx}'9hALf2{@n8f=-gce5Ң2kbN0Gfu c˶n.־9f{c)7ujUb֘58cУXNhP.#4u|gL!sۉ.)˅e{YtxEs]K{j.;Aon8A?b ~S~'amj5d]j”u&f:GU|ejz,E-}բ +Ѝ}UwGewX(1NQsy2`uР+q M > bz6١S3c᥸i{(#5Cώ7qu\8'fx㸸ʞWޯZ ,M'C2SwL {I-0u78Jp(|%GIYKAUx~ڐ^bF-UAK=}ԵA FU.oJ$Cjp k[,uszʮM&)3">xʍST|t~scLc^^$}rOYHDUV#Էm'!c +a8%Va| z -~>[ [I]x[!Jo2ͪXYpJOBd~TtҖ +?ÛWǗo!1F-%>ƃo#M57"g58R3ۡy9g!BC|ln|ZFXu~\v@I0ϳߓZ| cb-~Xl*{t 3u* M%}Ǎd^''YB҇}y1[qS7ËD$ɓѶM:dΠ:/j/*^E"/;ta$ >u-哱-83g\'2Vѳ)䶽U)n5GreCe/<b;)KOK+]a;[Һ .ҠC_i>?f=^R 5px˰W͙9g6"Ԕu5;;w q=aNޢ,84ހ/%L:3,sAfuKU AF92d:h:ΟHRӬ/yVqT,6b3=Lڐ:/cd ~7?Ij:Cz] 7]ݠƥ:  ',˻9UM[DݮJhʚڭ^432zʞקTdcԥ&V k|8^1[}Ltx!Zr dy)zD?%}4>b IIׄK|%) [ P5U0|~Ơ޵;r- &1,W;E0 c۷$\ +f <2BYq'}JbFEB;X8ZzK>3@ {ݯ  ٻV3$aXy]<ʷsH0yTɂ.cQQg7U~2}+ +I @!;BbUSq!nDq7\iiv+6W~g1#:I%U3״Cwk? '^EN.}BXlOv|AaiڥOo[uץ9W' +Ӹ q^)c}UW}sg ̰X.][>b~/ -Z՚[k;/CxAw|鰳sbX7^ρ>OngE?=lg(zU,^ EyUş< :G.e6sO.NfL1Ey| 3}q:{^#k&i -{47oxzxߌ3DX'lių +1[|{9.kfG W^3:Wi~ Vi1[U~sPm/# +w:V;^,;5ځܵ|^ߋ=Eg2&cJp_<Q4gė_%V 1W;n0woF$[y֯7m/vB7zF't9?>v mp\1/3"uNSj)5&G1Shv/ýQxGoCk7E{⢊<38 ow3|w|ww1\ws]uj>O; jaֺtk8K.8ZgLܹkf;o&Pi/iB+d[5ԁQai6R`lSSU/W:Ov=, +]C!jU;Q{pӐOn=|a7W̠Ig M7՗=|BͅE,OX=㟭8S]B˸{Yvf5 3Yj#Kl_c먙;zfim,@~5K3y#זI-Z$XjF4FX!X cұkkoa2]냵w.^nGA_s9d d~Z5 +ew׉^ +o +} ~*bfpx.ƛ0w'hxC>,o$_;(>$g|G9aB!p9V/."slQB^X>xIHk2Ț+K//v g~%s[iOs@eq[x7/۴/~>x>&F@?gn/U]ϕ5OJmO}]rWf͂e5lYZg/͞,WҸ{ 5}4>1h¿`FZ@sN|lNﯗz{_@ͳ*犧{W`b)e +43_镫O 򕗪pgon{b&o} PίWѵV8| ݹ骭P_}wO/|{~ݬ+93'(G3wLbk֛VmЬ1_e.o4`DB^-;>AzZQ-h0}+cŁBvDc_YÅtwYOsCH cЦ +fk$4:"F-`vm7M bjh@4zgB{Yе~Fl+[W-n;nN~tϟKQgƯ>.}JW*BIlreוl߰C%tK b\^}EO}ҍ,O<r\Xb=79AS\%W? =AF8ʾ^2_u@یk~Zt`+ +,βBdBlrҎ: +ǜ,= ԈО +jyݯ=Qh(pK/9I# o3yT}%t頩ĵFgp:l/΁Prʆ[+Ťjr=YպіF X3V|f|]r ɴId+OO:XczX21N[c %C Thqg@0Flh݁[DQIՎ1և  <;kwI^}G,8H,VoO8z+Q"B61Dn'".(g椳Q319Y_'9~2XQ6,G0eX Ќ:)t$hg7L沺}t vJ Vѷ vz;'߾w!y-b΋'/c0:eBr]ӄ1UNvn=ٴ`fO6(Jgpc>,f9Fm}4? Rh V:>Ԝ?xJNq*-nu_Ɇ/]X6?|?% Ǘ]Gq|Iܡ>Z Na/bf9`s$^%/hBydp0Rg6T4Vgk)u*x.R^\F,Z^U͕jeJ N&9uw|Y}4C{b*t0 O㍇'"Fa 8v-Mf(Dʐ úq*vkY~VQ,OwLxnV:X]:##4'A^tBғB +>uhts5Rf3G<?(v}zPz>!e&n9|/;9Kig[OF(l|hs.$՚ĵHrXͳ[a:ͦe5{]y' ҂Ow+$UNJ\lݲC=!/. ,wh ]vBǗk}Bw1M9wxr)БY<{%&͖{][ =BF#4pLC!j,tŲ N.m}l1٘{|:j0 O^7#& a>8Ί'NSNEjl+%<_Y>(wρu҅g:G1‚6BT3Y{G:x>p44ńB{YɱCnރT g EfS!`챘1||.Ǜ 93:v]ߓQ󂙅ኇf _֛bvo;̑5#t}C6脢'B׹vCnBw{wC^=Q +Br=lJ.̣q9owꕷʽ`g~|i#n,[6 +/]AQJl/O:`0ӊHl4̗+)c̖bjbkՌډ +`I,/;zIiwMBū?b):א9ÐR?ӡXK oO,qr+-ww;ޘqlr0H!6{]TX{rt+aw?o0xWx|QSv?jD=γ܊^du Es(4 LB~Rpjwz1.KO/@"#^ZkIG{K`3_>L@ ++T Gqɮ5j^<ˡ=$1N3Ԅ1y:Cc7^܅3xG\g>[K\Ω;^m?^%\/a5ŅbťEӝwCoN2ܼ{H{/˅;ǂ9}:1s:z#@pOk\2Xo7g-BbW5߉aiu&䍑Y*tWCWc-4ġ,;P.0lYi#̡m)7فqB%ҴEG"d,8cƱ%-,T5?:LHZJ|+WOC?{/[J͸ј8M͓"-s ?U>ok^hbgM̖)`g AR?ݨu\*&VmrFMAlxҥgkvcƵbXx +VCzJAL&)4F +>pPg .jJVݤ8B\|Ibvm_*b]lh54h2X%FiYG sA )0 +Zˢf8ʁx,QO$d n >4IH-S::̺)ꑓ 6J8+u7rde ,g.LZjtf|5^wͅeЬy4Fۘi0F;Jɴ3O<2j|3IN CRRlggM;J_3Gf(u NWY<#|[veN!bF#87d2_VhG]z<1癞3հo1jJ8Ñ~wzQy]w]Н7^ًW +bjV4%o>4= }x)1,/7oGˍs)`A:LU4N,zh ؓǩ u&^Kg{%BQe9kO,?Y#BL2jjY| 1G|24fRmrHHhO8Ek)Ƥ ][ĝ `>}bV,VnlP_T[L̶֙}8{^)Nͤ.ITrm;!6VQ,[;]H<2 $#_{G/5; VI{3+; df*0D|1&Lvv@k(hA<ƬNBF{=/}>xk64ه\Mw^dV;Agb/ O:`ǂGg=Z|w=DĞ''k`sOBP;S5`bKguB.)ǔ x4jaȨt2u9MwJ-DXgAg +Prg~vo,/ F;8c`+ǫIc"S +G(ZA1VJ4`w1, 5ꝃkv6]F'cn3r{c9Oxc} ,k&.G=oenfȵOm{zNJ2҇vr "~\[L,<s)w`:M}dY*0 ΊyJ!Yp"-U#;>}:@N!Ʃ`+Y![p|TW]YB`jĤs<8WeRʵ#>YX0׈~w=!j<@FuBTH> ‛&4:As9}Doa;'dUOpkoaOV+Ky%2I󹬖SV\sybgA#=2F;+wvVYg+u7ת cu3vWjh֜^W=/TgDz쭟l&^CҐ=x&o$ײ\AӭrBǧփO0ϡZKjZ8_^ +.:Kn/xii ϰe4$V˚&v@=/|q0bF!#)V\X, RY<25v*Vg᝵KTbG8&Ngص&>;kS挟EP㪾pb5v2|  {ў;Xyu6MRO{c~\3j_sbIa~A戝B?c4ӭ Qo _/G, 1>f>8br)1Cv ,g=OV|&~:7vlrZ#P.PX +&pCb(k~C@L0xX.\N}a`\o0ꐇMWV>ڄ\*`ǃΏXm&2m_}J?~#`,1 .'!ā.).=}!&RB;փe8T vx"|Hóiв|{ +A?gi/{OUhbg^'1,rZS>-ȇ7u}vϒ{fkxhxct⽍ĵŞKB8c+?P"w?wƷUse xv|V\[nHk,DY5gy#/F\ۇj,5*./[?.h3$om7&YJ)qࠪ +G~=|%^\g̶ #A_r0f[݅O\<83&g*89Gm+BF fKJ% {th1(}`JO7'>l!\Wԣ NL\?ZG*bR+'r=۬FCOE"T'ߙ^Z5\o{-ZY+b6L!8oâ +GQ?_Ybkno&][|\pw}HbJXiJ,NVuK (wTڛ@݋/XLztZ?1$0U7&[zVȇ]`9xJEb9_`OL,#JN.PoGF)a^Zzi0g"Ĩl[%Kῲڦ N*`d١)7#6\ƉIi9_0˫ ql/js`X<mϡz*[@`@Ϸ),W e|3u+܁Ξ׈3@gJ%,rm7MwVӞN +L|֩~glʑ[g1Nr\.0Jo8lZ*`‰,4MY)U<5i*5]]%v~]jzo,ko)܌;bYQ3~گb1kL*sk.:?̵|;Z̢6cQ6JY< Il9Ш|;5D +Y>*U3zn l\ޔf'.WGuL>`5_CqѨMP#O~lVN!c]3sљ*yuWB=3[jq~r 37H'V8Й#S:8HqWSF'0'٭Vsmzxb5~{q^3ay(ָT{>e>8W`Ţ̮֘]3V / h*GB;;$σ>yJ8+e9lJO ),YvݎʰOQ: :mG//g+` _r;fP\=KGfXW][$4:"s/moz"Vh8ړn׿t;Oi_svlŁE)Myyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy7ootОѶѶ\h'Ǐb_[',0!,&: >y3}M$Zdƙuغ_Oxf^8s/}>wQWh>CV\T>;8C>$.0R\8BbG~NwJg|03>$2' 32=`I724rrFO1:c4 +F%q +F!a X#/lI}VlXȗOɖ1t(er]dog?r%Bl&Y0n8%RE0nb)82ZNpRqx<iQJȫf:Qcl̚jEܞSŪD+.{/g!{02dewLW +gI٭S{1}nZ(5D[@UErY'&q)Gc'` G(;d",x҉>PsHlC7G`j Ǥ؂IR'P( ={?| !w FO!*ra)VwFo ,Njp88 wOY[׀Tk9zptU4J/ƘkLpc?f1\/R0Z +!)jx!*gX2/67SɨsQt={5+)jVTC^3d Un$rG؏lÇ%[S@"4&ZCvdlGNɖtIu&l/~1.s!>ΐR9k8o9 ! !YV$c+g¨14 JH q,5Q̲d0C-8+A()6JaP~vR}i!m'd1"_j@Dm3I؇喻[1(ed$Q:h,93Fs{gCfPoљ4V`)%“GҘ Fb}QH+)kU`#|>V`͐dc-r ^C4m$'|g@RbPQ% χ +f$ƙRho +'+yv1>5(B#RG*Evz5B2?c۩) jTj1UcZ14kJGi rgǖ>tOJPDKj@)i\}} 11U%]WS0ߋQC酆V^C|C&sGd4|2]*WbDHf Ʌ0J;)蟍]M,G!rP:N ?EY4VJ#GNZSB474FNJzf9m cC q9iCQ +028YN@̶% MU7QI WUȂFv/aa> +14 +cp]ָj -5̞|o7$Ah|> ܂X^+ BX $o!=S0)y)`rS4JI)"H@CIvW F+ ͳ,!A,DjD-1!3m0vH3lK`'D4OdFmЌ$-\K4Fq|)/蜩et e}ʋKԲ3 eCbhr[U+&(+ɩu Be9@[0$CZ!{؞bzjD!]t[Oe\@,H2^7{Fq= f/a,.gBzVKYCr ry<fc̀Dh!u~cKFD@V$1|Ƣ9 p)VBt(RIG..PJ.-$I+Rekya'0ڮDlNOqV!$ 2Fi?2@5*ǎFH}78Qby6 s=C6}~~6 FGL,~#=$y,ǥ9\SbX5|-13#4Zl Irv-}<_8p%'@-=$g6T@rZBh.$Hh(_&[jƉ)ƂU;! #QT + w(6UHIDdy ZcׄTakTI/ky=֑{EޏQ d!>^ 5Rb_`b>bJ,K!MFZ\ eT~r(1sIw+ClH@c\HXJALR&f= V"lZ4$AÀW:819)}&32>9dxd,V >  y;9Ƒd:_PfC1_f7BI>>y5d[`| [c`Ubr~ vQ}Y_d_)`Lz'fy !CLf$"m)aS$%~aC4Ns^Y$ežG6ǚZ,G$ ,LPj$,!)˔ kYr=&R24!;kK^/I2d_bK &oklv  +B$yJC#(ANXYI8Q!cy5$՚P:?hF}!f֐DxNl4kCaKZcǢo =KF>rd,V@F +2w֑?P3 Wtܹ<7| cq:#!Nj$pbB">mȧ o=u;Kxޓ1m&rQoz}H 4C!y\K cK iD^dH7I.fM|wyoa+ơI%-BWvӍRՐ;#JF!Åep R݇kI$w?NroewN:L9‘kw7IOvʝw\ eb3dq%uR%(}Δr'ݽ2`zS +k'y7Ԝ~,Mf Ŗˬnd9v{[䉤ʭتw;lr\X`ubm#emByp1 .;3'MRXT8ɚ$!ߢ\'3uK?N!nG0G_rpH !!4z!9I96r@YF/ozEYLE~|IOR UIs AOwcr?!2+ )GHCXLuRY|dbrXH"~kˁӻ B*.){Q,蟁(gM^uh/oT^gx+xb}Vrj'u!V$QUZ?Z}-$7m+B.^Gdyz)J@Z!ȁ qcST>z"^@fZ.@\.XN>$ 9^1$ˮt 2D[@:Hf=2=^t ~3Я^!eRv Mnئ>J̷OϮ}BrF +, |qːy5QcoJevHV\,yVD+7WX][2Qcᵑc^tlxQݜIj<PT]^>odX + +?lp,Pt,ꝅD +MW9?@Έi]+Ѭ?5K=8M$8 +M8J!W,bJm}Kx#@ @5kb]}@2ߦL="J_wi^Gcd:a'"ؚJ%Mok+Ng5k&@v9(ک_dQ5b@&Lu cLd;I1GP_^jZoӱVu;HjiTzvo\24e|-!^8g"\<^e+sNM&Ekr(oaEe?aXx G +#b'A + =o/S*,ROS^zrxTzu|(@$ + u)Vcy)C!u|ǽ]/vĄ`9)l#s8c0"E.Xiq%D3j'Ħa$wrb~̈́PȝwA>1T a?dǂ_zoe5ve깒ܑS󹎇[_ d׬|cA!܆ A켷Clt IT}B5";I=׾6֒}]=$V}{7(f:>"&!g,f£Ή^E 3ߥ2HlMZEu:.$ݏFpEz)BzDlY TɤO><s[I%gJCΘQ3P j# /.%_ +߉Fېl?syKl9U +GD!'B\Xc$[n#\Dtq?R0h||T s" a<(q{3Ed4I^Ptfr) =RVY84P-US&E8,k2IawNGw|{fQbDodHH=7An|w."mIZCO.g%'B/M+o]^=Os@F]y`O™Q;]=uk=/YN%ߪTXNhv̈́/p/\/7zoCޥ˷\g ߀+/oBE'%C7s&Ր<4=,=7@Fui G@RʣL.Ci|N` NI[c0evi)bk[I}l? ;=ʁ I.o\DJ#7!yk\ޘ`A6>dFE(4"X#c*BG_뚉ڑlNoٹdw1#r?w[EĒ1{NļU5L$t bDHAM L0X{$ytȝ{xkhXo:Qq@w4{6{hvmۯ^V]0_N@o=,$;L #<zˁLy!eB/w:ಁvT>t? .hxPH#_SPHo!VVJ$?@dI(hNiyo+Eupsxz䙐P=o__m"=:Q ۜJҍ WWI_C~{(T˺*ԁoqm6.|E-_l"\qOĘ P.n "M_qqւS=a煖[lXI=3 GL?6Q->@v4;gsbبp>}F3h,H#D2S68+}BzVh|=0*;P;U]zk\vj\}5R8"-@YS=Qsm5|FCbÇTۨVH8ˑ I^g6[7E^Y +EHi \ĹWơckp +ychڴA#Tk'L=\υ4w7 l0u;~|Z9r+3/Nm0|O+w#w=|8]yHVZ:7^"DE|]]z <)({P5^h!=۪ ~C͹冂iY,k.oU+/<t{+rRB;q{>\sKjn-%U"(ŊQn}@)ΕnD#wB݀z=> J7K g_B%BZD!΁.0W7evDdy[/dы~;r兆ˍ(9\15P:-~3`zJkpx}pj A3GƢYy++pÔtM;@IeǞu| +qa@>7x 9ފ^mt︰P7={BO>tz;J5{ʷo܍x`:Cc/y;F;zCƚ#b9&뜰/5ڔꙧ<7 p@E3M}G.pi㩎\Z6pE&\r@B> v&4SIn}_z"d[Tz +uuО;KE^!s~= ւpbjDDDǒ/unػ; Vay5:Έ8hDwC|+V +T2p g~X\!\qu! {_ags^l%ѧ*7,XZudaRZ71z9}*jp/v\5҉;rC}K/اtk^CoxY+~Nʑ9ŞzDĘѴ/կ/T1hs/69GrvFMvV!E N<^e‰ RM[>8_l|``;5sy;ä5E>P,!DP*>3g2&WZ.guM]6_Jޱlc|VZpFH?6Ah=3rQJ3=qr9"##s@{~rajeԧ`T9tu +rvVg]e 8:L>7*]th#V򨔚BT:#!0A͈֩¡WkoV^"șa}݁F(DCQc@|;jb3 >j`-X큳+h9Ywu9JA=/-znھ 9;OH;6g"L"rzw-a&BV~7P;T\\7YwM9b>2!(+//*P~f19p]);?i<\|yZ yYX-rd71gs ỌN>\T*5861^3 U\.4,̷®qNԯkեa5r)sR+.?ZO9+򰴆A./<}a//u΀Huu]t(;?&4XM{(U}'=!;g\='/ ͷѾUL=0hW^Z~XV WzB5^Y ̷2?M#C,fYD9-@ U\XDg;YY/bOJh&y0~V׀[wbza죲x-zJɹ?9j[Kk+ +>|‘ل@*<ڊ.?{~)gX)ŌIR9B7@Ss]A|g +miV%l5o&ΐI[+)(8,-V]Yg9kZX?$䟚5]Ý~^W忼ݏIɿypCytGzy'qϢŷW\Ov3Feء/AgW5rͭRƓO{{\@]B'u4f5F]w<ڊr;mjNKC{+v} &ʈ\p=Ϸsw/-v/|b'@sJE/.g< +vw +Ͻ亾ކ׈ ^;`3v|gG?^h/}zٮo{}⭟O;,(֋P+Q>>.>.<++?|OWrO7jCd8pQ réǜ0~ j%`p@<&+Y^lyل /vܥox%wd4n]|,>O+U*YNx';hO NF=(1_lTo,c'7ҷi74](89+:ۧ*W7p‡>@?2埾+_-[sѯv{w ۿ7~Y{ }j@qwwIdY^(P(Rw.@mB] }Y9&1ҝOf|E-'$O +$WzqZ>Ѯ }4xӍdZZf\֭+ yՊ)*]_%A_2RNHC&oREU)X +6Q]<j:uKv$Cp|e>TAAGBA‡udv.? ݯudsd䛭.tW ZAnM$ܪWuvu,9 ,v}P?M M&ݏlz6(^>ށm,Z$NQEk̼_ME_YؓUͱ_:7eON $d^ 3h~S&Q,(S#7ͩn-yE$O΅},y^ ,0 ID{.\B: 9,!x!ј](^<|0P~'f;yGcv8 0H)39я#+'=}+Q4."m0𥳐~"n ("|\j=#,K6[<|Ul^O/Ǔ֌9,8k |;u6f$$zt(d W{\QQe1V{~أ/|DlHB<{O6Ļ#dibȁ|/͌/dAV;{*unD 3һaW?i@%="уv ^+Eva{9]lɣ#Ⱦ%O vĝ~SFn7!f!xmj|4nwcxQ{ԏ/%DWl=KV"k?#z/FE~&Ő= udKyA_{HEh5A;pi[#{|3d2 a uM2tN0/EWq6qo]KP+q}IܤKF<Ȼ]͈3=%xjvRHr:1cw.fU>̋+]E/O =LrmHisT wܮ-'5?">{>U*>S >S_/Ѫc]SY5aI1՗ގG Gp_f>P! v{C^'؟1[՘ ?&5.~`^R)yyLzq 'Dmᢪ7{ayYqiü%aEy&&QqU-RcmiQIiL_ŕ5n)mvJ#%++P+o?̱_l_cAOQEÉgW~|kڍh>o5{U(yY )I[[EԓY?Em=%z|RN ++n=0RlEn¦oI{c +Rnd3*Q8$ V5:ͩTGX롗 ǻo8td%oIMrlJ?Ӗ.;ޕo6ZI 9} ZRz]_g|P#F k#ȷ~q7Y2vԼ}UwԢ$ĦYuA}+> xk: 2QQUx;i۲:Fym"Oo*͛%kR79;Bg6ݹS*+C ƙzi5P,el2;+./ޡ##A ֦(ήvx.B4j*lu>zĵ/Oωa"*6sc7#%]ϓֽjbڈ1ĔZ+)~:2Rm'F>w >u +uZ<;ۖ|+?bq Qߵț_آ.GA7P;PJ11^Xp7:1|qz!R{O(ۍ}7Wz + Zs~ǖo"mJ+`O0qSR?OV ?4U:472ŝ嗉s#eR֨-WbZ}{Is=bnz]  %1ra,58OT"Zjukp=k +;fc[0ov]O>q-ݡ#/;v!(|[71Vc4%ŹqrqUA2֬Dב'RӼ'4y|8$>}_uDy}y!u :⑦(ѧ(btW'X2Rm>T'%;ya>`·'$##量-W2u\{/* xx HzwiiKtIs6w%%Y[lwu>>5uOo#U]Gk +EF,D:ΘWY +߷jaWD|ѣn6GQ ɯXBkC2]RAqqoԖ=/!|[zƉiC'NJDZ_lOMi%6:t椋G*"fނdYRV{ : +cqzU&}Y%{V_P)Uɏ~ J/ vۋ*΢747嗠]'Dɼdi5!Dߠm):(YV]+--J11/ m~maa ]%P55qBǫ:[ 5ޱnљ G +_|8?i''/'к+ɕ~qKNǝiH8֑+ x&E?;~oH39:rS|(Hzg=,A +6 94+V~N#i}ܴcH=OKlYs%kڈm+K2#m+}iB|x_,Oo[j+}Τ63EF#hФme>c>O}`_xt"5yC}бT˩׫}ed⁺PAK7*lFiUzNr/{X$賟$#51V% Ei!ލ1's/6;kbl$w&9vd-`͕D[Jiѽ}QF i n_/׆$fJaܓ*Vڷ_KS-ןl`?Bz$7󖾪p-z{/ivMå1(׆ȞyJߖGBUY97$eIsMݎX~!I5.=0]:L.CwRȯFiu{t +D`!ع0ؽOl߭<6V[w!dN6Ӻ/ϪWo) gKކ&\é`h0Ȭ6hw EQUA)e0oH N ;` rJhJY̎B;TW3@c3ʁMi r340N~|5̝le pGa= w!-+ys_\no11/K=keO#m>z[P%ΉJT|DLW,7^;)a&0TئY3\s$fù 5[5Jz%=uVc:/4dM_\$Cٻh^ǿ*b oZ=zcEC߳5)0}v1ulL8Boҟ}6g*|9 lֽOOծ+"R^}wb'^I˼^Ix7uO\dYԧ6*1*(!rZXwxHoUyŦUsu_ӻuҰ(en0W~:c_ڜ< +چ8~>{?7'C:3V``En }x_^zZ3Q^J{Njq vR~~wl [QM>2")/D/7m=^??qLL=4 ާ3GlDf͙w?vGI?@;tދ:S }Sqž)% p [JSWx4V{$~3IO|Ji`-ަ&0s vO7Ԧ8x:Ø,[ԝQܡ"ϴMi/ HxWOJ[ߌr%>%q%R8tֆ.MZ߉46o7T`~?ܟMNrslE`8N*'-1~ PQZ+V7sz5o%j'[0] Xj62DU)1qÒa_]~!9;bM6YV0 +/cDhN^ Iu*0w0~0Oe/PQfM +f'om`hۭ\|z-mf_- +f/R`z6jOOPj#uCu)UUҬwOW}(OA㥪TTQDOЗ,M`֔`Bml-tv*]n S@L/`Upܽgʊ}d%޲w>)5/ٻw޲2︷П*GWHi[47x>>QUi9iNpN0oa`Xy+9@u,\CMFQGTч1/㘼ݕ%R'Kajoas +w^qJ=`h}#Wc]ON`<"9'1t0[~.7i-7s X00XI = ﴅq`,X10w V3m&MSu>zaƪCMfXʳI-oR/{S!P8Z8*mrOmLA9Zb5fOgrf?c{?? +? 挛L^MYT7C߼̙ ο}`ArR9̴mZsp,bօ +"gk5ݬ#yA(}_'SC{\wg2s=MY-nY0bOB:q-p&o~s'X00X+v;>`7X\u\Zn,jvU~_Pt':}Tlyz_qlWR7 ..G5CDu|[ -n:KwUmc"kF/E&/PU\hTYs`Wˠonj`,W,Ͷ`ٶ`!/ Mw6M>|^J<^"TCVD밸;/}[`*bV~w<^Vkcq:f?s|/ O5εYp 1,@ufTiA4..Ч@uP] T%3 ۏ(l?VKoרpq¶-JPiHLKw&4фzFfniu^h-IjIW,/?ǟcl >KkeK `;%ZW9sL8\[8 X00X.gEk|X63VO1icz5Kz4լa`Қ'o|yU-iC(nIta˥*S&2!򒓘, E`&970f :U{u\|!ʛbp^SXUVkYa`3!;>S;e#zdѶ!858pv}sNuX\Y˲7Wd'R,㼛b3/F׺D%6k1@2r/g)-9B8U:Y6yˌ +5~x(jxgZO=Lۼ!3yWOwC535봛h O'Ki3mRTϡ嚏QZ#-=n+3 U|mN3#D``#I4X5`MAm-(nx+zҮ)Z(۹x~کMMA[ +9Z&ZϨwBvZ/85$Ƣ+^uщl L4io /|j'k/v)όUa>C_ ?M +Z̯qL_6l]ʣ pvL^ , V0bfzSoZW|=G3ww}_ikSI?mv}D=q%!fuc.!mJxルt\[V񞻩, +/[p鐈i+`6 b=`&s/=L۟AB۫ƍ6if;_ޡ3@NuiW{j} ±Wh ڞ+zCz~5n-ino ԗM,;C]Q6u"6Յ3^V 9x9Fa7nSWMgkZr4K?ޭgfXr_h'ƨ&cUӘqmii}]MS>Gڽ_9W 1(^b6,F,nTL$.uhy*xgAi1{Ȱw[EP@u&vM~qB0c"uT}8W4+KiCA[ιT؀+,KgE΍n0;O[*1{}Bv{eUqBTQd;zӫ_#x/biV>;yٚL7e36n}TuGZb>c7lN&F+0rڥ`>+ SިB6|p~k }Q#DӰ 7Y:vR'is4}]My=Nrih4?x;;K IsŢՔYN3!yWb^U ytRP#wq>mLVrkѹ)|,ũ?XΙ,^69kߣ7 /5:Q2Fx(}-0 +3<:'c p˘ ,\c|`Lj/6\tac +q%+Hd/Z[Y^X~6z!^2fC 9hkZZCJ# +{*^Jj`K~y5\촌ӈhT-7齡>un蝋642oih"N읕쬦0̹c +6𸱈p82U_< 0^q9@$K, ߤĒm<;G;)ovaׇG\Wy%y链?m8fVUcU&ԬK\pwcLbg/O6˙{V +``ԥ@e`v+hxi iՋ&MoϤYGa_:LG?]g,~@801Mu=qfÎ]a3W})_BLV .XC^.\#0ʩS U)hz{ իI$7ģn_%!D [f,%WfA`څ+I^3(\ȟζzr&ɭɶ^'7.ap-G#Z,ZC]^45JSixڻ:_sA?̿ _Aej7rw>oݘP tHe ncܴ]7Y9h]N!wߠw꾥,_hmbBFWi9M_FODzrP0<`h_4lƑg &A"\s_ 0طxe $(k#D<;tNh:w"-%_֜|/]sT= %ee/cxs9q>F|-bc_dC$=rܧwq?е|:ڊ3G 訛6}j@swpHf [9xv:$OОt..SS^4Z٭r/s)b`𯶫9X2 sP&‹֣'V{@己ϪE͖C"? 55Mս|h蛱iI̩zhKV/m$eqĀ%uc$h#}1S7wC?huX@&0aBi澙+-֡Abh#mlQPwTXAH_[ΗoÜTxB..8G ^)h?3vr7e>TѼSCW5Ӥ쫣Yy_`.[JMk&6-i|k^*FpSY[ +blSLFN}>gZphn` n9eC,=S +bc1/{B&UAna,&;y3X@%C<C-m])g.7-^G5^M Avw?<80 󾺐ڲx1(w_{B5p^l3Z?&YfzY\+W%E~L^c[Gp> 4oXbf n1i(q % +CUgVW;Br^/.%<K^/?ruX{~5/t4b_a|#q:ڨW:ȿY+0 +Q0/\{lN%5l* I9#w7X㕹gi*`6(/ZĈp|s9L|\9}yۊ_$'!4i)h0`,~Pk%)l滦qsF;ˑVGtB*|m)*>~bYpHrJcZUǴiü;˹ܒgONFb8BC[=X +8al1 ſtxR~2Cqψ #ho\{֦th8)wBB +~!|&~Q:|:/au_B<㯆̩#؃]鈐{WM>` e!1?oṟ OռTTy/Ĝ,vz#`JakwqqV1 x:0wgذs!\ [y+&/)3Qv.)S{ k>S,0i!nO\C\CBL{*ݬ%~RfkUǮ^sĵ=򽳜6!#/e.ţ_m%ﮃy:nun|S8eЗ+xd3t`8[ h&\k9ϒ{"p՛Iʩ*`㌅?P~e松LY_y2 _'0? )9ȰƹBߘTD0ބƟTWـ;uB: +ęHw~Ki>5 3s=ZeXB.v)qƖxkA0&rNMdt lĹ󞀟gG(s<<~6f&ń Tˢk#ձCY_ߏ;LrHj`47  /-Ϲ]$ScYkM=+[mmm``0Д,벁!pN)c{Gĭ1.=<f7ٮguh f7=]Ihgo +A9+(/|l 4E" ~C{}>Qk+x)e;;Cּۿq^Umd1 c7[q,/(bӸ۶lYإ Ԍ7֊tՇ!^!/l0z^1^}_]8~i[cFXG]<&b*ċ'B=yL~n )ZŽ؊SpI#g%xvRcgQ!O6"Jb戎8O0;2QHYˋ8Od-' bcxPr,0ѨNv}T荵'gio6\^gM0!,i;)|~嶪sV^sc"~hs9*c#jx\N~p*3u *,gN{ OG{xypat'#f*co1=,:Y}|_G>5[5 +imѳHxU'Iy S"/\3qÒtrve#gbG#<ڇU>iۣ>ی;M1ŬX<3;;L[ /v}@gt.YS@dwk!b?X^eBt]bQ'Ż>AD<ڀs(n`?ʷcк9^>3!}h8#v$O皥v1R  zXc#Ϡ.g/GlJ/{ 9ԅYy''+rN* 'o#eoUW yM<*ZZCwXԓ3A}̇5?b/k? Zpp^`ktbi)HX|JcyNшm !썡YR6N;7n bQcQ߫Xޯ8NE?ފt^ +FDڗD@ +İ'BaNl+b*CxkYTDl婈; }d:`eM8)ȧ$3kОZ{KơI ;]p1HqQ*bq nA:4~2-G;[0f!!b}Z#}F ƾځ.f~n#b,XOK:%b MI 9e=T#+an}1)ęh +wMjcAco^fxbXjs`. sH[!&7O#~)bVxy9|r{ ۄǕjot{vFq._;HU6;zNɘHwGp# EF [鞓6'nsBq1Jh_ ay\Qpژ KI b # +61\fCJ *h(&BUݩqSGڀ? =\Z̪Bb2^ SxU(yRLxē9 0ؗH71S Y}dy%A90мPr1qRl49OC_zL,wRAwo +FoO>1nAtŃ1mgL'.Ĩ0iDnexRh3AVz#GޠKJnGv):g9XL@0eQIbf!M~j>,.bN: <f  cM'1[q NJl +V b2 y#X{ ݩŏ}I==>gwŌS,;8!Mf<b"X#7È>6r080?KS_k +"mAvM؞SB|02tV_G&J,ًgTD: b"eH@R}.ӧG4oyB9LY.ۀtɜ!C"oȈ )J.pysJSaO6ɭU{+騡1CkiMD^hBC'=30zTJ [On,h6&k#-Ds,/s b" EL`=W[A[m(j`gqW?BߤbdF J &' xmuɠiHOk=DQyC&h"4g|cZ!<O^;(cS.ؤ!mp@X9X`Dz:2}ZҨEhUfihCKQ'pM[벛uQ͋4к ټ8IM20>ut ^n:8hM񿨟/XAvAr1L:=ZsEm#2k5D9BV'UCTt&ĺo`t.['3}W?`݇Ky+]~[RTc#fGofc9\j]SX"u6uTqR Gi@Gy i ~8h$j|LC lڨ&ʨ'F2,d_4qF%N7Gٚa/K; Q, +b&=/D"#aXhnxKLA=F]zCJ>8M7_\i|C&2:wȼu&ue)60,c';JW|Tx,=QMѮk9Yi%̭`h/:Y+QG@Jj>x +I =HD蛿L}cqy+ fGDG}lGG|E) :6QЃ(S6rҼBZ 0.EL#8!]CQ*쯔6#QГ͈!8 IJs~g]FZb"3;²?+"-@`<~x5 +TkuصVu*[/OroiQ/6%[ȋEs<银!}ĿCdV6=11z:Яr)7'vF؞RBq::iwFm"wsa0"*r3Ye G|0g<igijrTDڲ|<.xSvޓ ÔtG1L[) SJJs# HHқL +m8-1tIiHSEx%k_,naX^q.ٌ6iJtw56W;mk-<* c4c63&bkF;KOYZ>DX+ +`msS6 pi#3D-ڂmƎ|h[Hk}G.F7c Mωx//Njdt" yi- 0İ Tӝ´zեHmS1cw~ptEVV%Dכdu̺!ywVfÊ6wpyE:uqV39 +圌^1E"[yȚ6.WύC> υ;Lطig ,9xO$,DX+{jg'&sal8e-ORWBeRmPeF1fM\t"gBLo{rF:[0NԥH-jJZAl^ + +6ʑѹ, L'' ~ gi>#5w7!f-ﵿ8: !95iGNMm6B냔Β8G:] CqHdaҟYsv+K;m=}0Nojg $F5i>< XK_}!Wdƾ^F߇p{{"ĬFMzLfiU),nʪ<wF;s[4w^]{%D1 ihS +\$.·+tX7#5+{Q+p͘í/r\@;QdtXOg؝f~굡9p=զt"=H[霳XGQ"9>Ylt0ʣ$q >:QlQ/ +H_یf5o?;,l߀P̢CksUc IE9Ls0眳HdlsN{.o}9WEQ^s9\kLYrue̾b@xL`cMaw]/Լ6,cGNĸSzt={A+bH.0&ȘQ6hbgpK +n1f֌fllΰ*-*#/ڦ;1v@`cL= gϼz2^IRY2gXhgYߕ^ä-]|[9FBQuٺiHvB|$h BCΡkV#_X]E,=UH>4*LnnOW<-k\B5b-{k.GE[UAJV>Y-H^P3MY SkNS R,߾o:-YA2\4Mjv +Rv۟Y;ZrЎ)~oo@ L+Ϭ1VO\a]*`O:1>ApIq$K5?'so1 o"Bn+CYiw?[9ha<<իFk&1W.^cl*g,T[4#" i-?c3Wmn2pw1ZJ-_+IOb%N5J^վJݱjg#ŧ??kgySQss1-d8wmcT9JJ72lpoMqQrW@ti(= +6y(/`; ;?*,Ƅu ya"n {[YYՓRLGU;. .k֜/NY +A=+gL&rΊO/~A$+QI>4[str1eQPR|o-\vDQ~{%uERN̄t>$%ڻj )f!.Kɱhp|PpG!r$skFً6:rWpS%㗮, )eĶY% #ԍG`T4@G?]q'DŽ֙L`_!è %1LgPma7`b\娉Qm!W/玅f5sɸ&Q TOL8T qhT(L#F%I.ztjґǒH+oZ[n%3_Q̯tހ\#z?igqYҼ-,~j>𸬸ywoowĘZ$#xˢ9hCk SL9=K>6|h1\ :XCM(tT㡳6zɄKfE5QÄ]Ĝ!E jeh>=ؒΣ)catQoWxר] -=CuG~OmqW?5Vz,pQy\»?JS94o 棘5t/Cs@>P}9#U(BKQ>Ѓ3a$7M1]IÄ +⣊:əhA&挙Fn|8 =[RTDy`XC Iuӽ=GЂNNpJ| +Mg'AT[-j~èVSWLN#hGu:;c.r‰6HrlօG`B!N'P΃:wVJ0ĪGFc ^hrN+:pIЮܦ!L8a$wn"4_broᯔ!_Ӹtd6'ǕNv_=Qzv"t;k86{)jl9kC'|ϳeǞ{5SY]Gn2tzHN#b/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_ɓm]kZWۨ3yզŖs;6򤅍~tuf/vs[D,^hy~9,]B_D +[uuX]m:f:MȏܣoqV{zmjj\϶Ϯ#WOofjgO'/;O<}n_eoϣ8d@s"ҟ?OH_Tӷ%ș_:g>MY8oΒo{/O̧_7'zdۿl ]^ߟA|}nܵv;ml:=^xžT''du|__DN`-ǟ#9$LzK|K,{M,nɈe,l5LYM<-&rk c3 #{~9c`(2沭v)-mnST\ʄYFfz1V8k<4eΚ 8f*3fzS\pʭv۵ͬݵa:2(;_mCsKd + dv}̭{Y60S`֭D3f&?Wf+3QCa.JߤnR| NRb=>}؃TeDxܠ/Tţ>qp#T :||j ^-тףkw_~{oնȁJO^ Cºv-[PiEM2cFo%y; 7EL"Wo'}YiX[488wՑRFJ{+Cǣ'Lr`m1A=z[?3nr +*'W|zEvӇ>YfmZ݃Pt?<B z(BrBO}pVQX:k)x+MD*4'>j3{ Ssk CSz4xkiYdQƠBtՒQؐ{J~'躵قߖuґ;ȶxk<&֌LPc }!f6ZFz c>_k¶A!k +3MuրJM8p3YX*{޽%JW`ˠtx?]ez9hiå12}p:(w% O%]vS8-|EAc%ebEʠx Ol%p3[fVy*=+rSl z6xtbmiS~L`3hJU9c,(\I!c{&y'\uح{$W8lyhB&3zfG(we A9@9˄گ蓥G=\"6+B~z83XJ2hbCN k-@FUbNҞq}.|@5`~s7^悻Lp&c<'M#c16z|T۴(w.2m4L*8?rA}ЇĺF!Tna:hP>ir wfY(=@/t|гcM>q>}E2]B"~ҭ_NL*}'W囬۠÷7}T3pѡ!d(OwpiGP`RNY#8G g=}}QFL=@oD9-( 2@?{O&>=C+ڟKƊs{،rW>l؄WM@BeaҎ!g.ދai-w=Yg2U5 \_=}5i\dx)p,8Tag#xR0=w;bFeGPdPʹ\8={B`H+l7mWsUXѷD|<6z2Xol6ge%-nT0FUL O|S[ׄ }`?2k'-k/3V:/><16z1+F9'p}nĝI~!p;p \r?#Kb/ >BrW1S@?fJ1ѿ }_ycOb/QەF{UQSh87?gt.(/EWN"`RYMRiE]C ٻk52-}У+%' |G0@)T[B0+xo 7SV&%犉Gg ї>:{PΠqxo@d1`UQ (Y#1%G >4GbȽwA"ׂBnNo+G ~y[p* hMp$.8gыRT(5_ ~Q{<xP"=!Gq⇠\N[3\|ܑbif6O|)%s\_\=Ӥ OrV +]?9eSo%_^wŀ$L738r1zBV>7w4$cHd IףT^( (=͠?>s(0{4EOPex7Rx>i?'D" xhDkQ5Γ%!xhghׄmW74GK8: @A?&gRdC-#% p{ۍrr/} .KAL B-0]YR$63i(s;uN}Y n02Lj?Ns?y{7-7F~_l#$]ƥK9NΠ}nyQ|\;x&Zord~b.z齋<ӣt%ҋ_d>J_wOᬶj ]\Z(۔o7 #p% +G0 ?`!a[HRN(g`K> wبF}%}J'(_AtJRȁ<gxvnͱ|Y<9]讀#UȻO >އf7I8++2}FWN45I,7W{3UӜ_2GrCُ{r8ioio7E1>u2|z&Q79 . +E`hhB $9]h4ICAr2~}9$HF +G_p[p/e8(XEoG~4&=XMEY໇}RY\ ;`+| _C 'p"rh%E ~bbT%0CBԅ ~:~ˀ3_$7/SBT7[tq]|h*709;j_Gl9zicQN 'ْE 9#G2>`4rYh/>OP@b,HrXg2|z+H<ߞ47\EaZp!΍Di;PF1N; J%/myk uϖ}F<{XE|ڵWP6j8<o|8(5Kj$7oO/vhǀs +$&7xE%8|}9ZB^šI|ɹ夎D92./^n>1S=z5 +z;с܂u!D]#vb_C 2Bqs`pP\ K#j-Ts I}, }|%qazC.F }ݞSz֖s6O| +>|#s8 +٭}$6#9%c&hP~M<|خoph"_\G! 1eV{9F|,$EDy_Q_Nˋ)N3\'FwoVd_}cq&* +]߱gq;b!)lg+Z .[ԞT!EL>6ԇ\4_ +^o IEcQ3R=)^(ij@Jz&Fʪo-VT>Yz\O܎sZh@ xͽO|::woG- 1\`qF;5˩_=Z)VĕЂK);QO1y 'f)pٷ2`F|#!y?wxCDI'pѹIux؁[ώp| 6~Ӂ +\LW&ւ{`eԄ_<&O,m8T=Y.wd t%ng``=#|3,Z^x{|GšƲ+ـ?SYuYp^Q.{s'(>_Vz,飆o:'OWFE]j}^Au16"1/gTO +endstream endobj 58 0 obj <>stream +*Bwxr!_w /2bDF'$7UnW`SӡL'nA+`Axr&[|%-^5_8:=O^xto)CN$yUy 4bZWo,3`Qbp(!~_ȁz[$+kr9[ܴs' nB O|2Fy@X >XH$;#bOeOvq}{AM%L3W-٦$[d$|aMH[9_z _GL5Bn^}IPPY<ުRԼ?1xྫྷ5 6{!ER䂟g$sMI)?˾-$E+~ ([Փ"¹Q.ЂqBld;Oys.aƀ& B҉YK+s$`t`}(ed7'>%7@_?:uOڵa{B#N\tAM%y%IZʂTдZ,~)#M;$q$v]]e_ĘAWW=|GE)uL漫%VH?5O(їJǓ3 зyɕM$я$__̻}:vlPN\1_qXVNBr|ݚ cK5hvL<>aA9A u)iFp)-ZCXXO*CcOQڱ`m 0Oi%\eG1ƀ6<k39ɕM kY#ZW"~?m$1Dw;Tw%k`bZ6XزJ(i_W:b(gO>+q( +EɱӚ+ҋ;E^ZC[&=?E^t\9r% +;Q>N\'4-}Vyl{\YD3TqRι䋳Z}[35_ +}#bS@_pʭ}УWG׻OϧÉo_t#F#6=3pRmhc$@#GſI. +lnfq#'xbakOLF;Dk!c3z|p +3' 4&0JyĜ*mFszX8ܱ|ŹxKxV9u6ۨ6F8f?dLM%s8S1FCצS>oESE]x_HINgDKw4آ{q'B4pjQ)Oe|coc EC|yl$qB̄z^^- ?E^pjcQm ?c%c,iB +zCQ}o9C1z1pSë7k娥4)Ś0l~w|ef]+w>{ŎOsQs:f՚ ̦ f DC;+ w԰,aMS 6n͓\.o2/Hlwt{9B_[//m|jcC6ƎJqpCP[ I'k*( +jmr%mq%JA9"j|!^Z&d^[ +-x )deygq;L_hlQ_[PBY`.6s.-ojK {#@5?18GꕁXDQn|wJ>fx[ȶ;ES-l^"y:)(Nbv`q~ph&$vн=cآ ōk5l_Ԟ v#B;y7q1')gQxl:7}S(6:>t#"'yEM+~9z^`y#6!\V,m>5T}`1$\Z@ {Ty(c*&+NŞLS:Q;sB>Nk +5EeA:1o?8etn_pVuZ63B{UV K}K,"=a]TGrSå +=v.b|D8Ќ/̠hT= 5/)p<ƈsN/ _E2}CGTʭL~ϗ6[}L_}?E_uclp}Ek#>aX޶M1Cׄ1T訥!I<آ>{My|U l9OHh DDׁ'8x85w n:"$KG]Dc)/4֎ {~H\)pr2 R=:Qb}%@GPDk[^Y$7IL;jN@=i$M:A9aon*z#!ANZXz$'Q-Z[yMZթ{vVorG;eX221M4_CmZf@xzli +>1t1f"ƚ_H8H]O +uqG>!+z +KLb#cÓRdŸ؏vh6{q1b2v2ߟUWO֋%Mkʇcna9Eʓo:"DO(K.qU}Se VdWf@{aXv^X3H,+ Q{  G+I4Q @=6ճWzj6SmX!(g`vg=˘tb6 7`e.mSa}kCQ`QOCkpL'8;e뺣#C!1CV'%웁,aЁU=[A(l=أB뎅Q3?ȉ1bO{&CÃػ7Ukh1*2ΑW4(/;0==Lg[uiP +L B}&tEKiZZnqQGzgA]Ӈ}ػ{hkPH:>pYld3̇ &y_:*rJ#{3օPp{b͏sqc̺x{[Jbb4sX]h#O֪܉`}!npX1fp]tѢ8lCʋOKDz/䭨J3K^+g@S؇rrxb6kXcbBE?z a͔^ ;fЊZ3l4+zE ɗӺ4د|ܤӰVLu,omE{bX_:/j؏fXvm,v$Q8ҽ)b]={sRq})|ڥ= {4b*=gAJ:7U7,.o]ceDDCbəXSm0)l>Y|3G'w|&A xIBhװ>Bh%{r_A'Bfuv]CNLkXº#jQe)~"LQvG6bn=oXSE=˸ڲKa։yˊi#10)tOFYU +.CYIXbnG"/l^&Tw]ŭSO=%HZ?uT/B[3 1G?685@TQ԰@5/PrڦMl*^Vw2-}V.B;{8_<7-Zj7N<7 9]uY.m=wR|;tÁ;yH%]&n'D.h⏿+̓~k^ +K^yYy ro~IVdr%hBas{TԸV8Dwɸ=z5S2y +8]li +cMGرUgn΃paբ+ziŝxLv Rs[1lQU<2+6BQlh86|xy ^';LqW_nBXSڃNP.5 سgߋwtCWˣlTU-uʒG|qUŕ"W>R\Nt)wy 쫳K1ef ZX ~Gu]O=Y@2櫻 33ʪP=k_X2 Ċ5?[f^0-7ov7od8yn}#ط)?ԥھ>vzz Oz(Ezz8}֧}ثlu9IuT[=#J+]\c}C:@%yraK ɖ7rEef,t?d@f}M:Pb{\:n%^z褼*;?sTͧµWN7*[^̆ԉɎ΁}QqovZ.,(n|rW>S>/6.Iڭ"'! ~Ls*mOux~<ߪZzݙ|֞>|Ow{;YoW*/[ݸ:$\yνm>Vu)R}GpU{]yWy9ȪzxKyx롻t͓žrt1FW{ҍ&,ͪ^-H<>q<H~9G/ >|jo~u;b'<^`rA-ַWZwxBneپ`{GE₝ r=TVYyq]<C!i3OtNGTWM:EY[ +k݆sr/o+j(Hj+hI-QVlx ')§IOlNeoo++tz7Ll5=5MOHA?5Oؕ21XRO߾Ne#_"ŞO\-Õֲe͕ޜm;W~\>bE.^'[-?gl+.z\09,?ar.}t;q!ږYzcr&d'5x?Tu${wή|r]VGh0?%X|yڱгcw{Ǟ׎غR򇣼N&M.u7xt';˱u^n= Qj7>,oQ w=\`l^mفSRBՇf]{^߶+v_ƍF{->iM| MdʪNwoȳ|w%M|ߒhZ<,v+wW QT{.}jHg߿~zzw/M|hqUX4w-Iwt}y!Gv]ׅ8:ۙ 2hsCߌ>W|o_{~9 wMa9rJsTw [^%{/J'mQ{e#Waz;Y]xCV~]&~jٶSAbm-C˭V מ8Rٞsg߈B{[W[i˓%Von_x-m]4ۮ9~9ECFw֔*M_< +s|q0=(qb~PL<4f!t~R]H#Nf;gѪ1ҽ>VA憺.ubNBCBnDCz~hsz~I]d^RCb1un n?܏/̿[y;2'Q6Ƹ'rnBnu\6uvm;\֜7A^'_[;"WcuAPVeChіۭ>A]Gwv4{u)Ԡ{շ#s=f{>.uU^L:VnKS>oKVvcrиƉg 5 *n\>߬o {" ؿ:6Kݖ_wKﺕowݜчn_=mksQg9} [Ju~V:=.n-ז_jJ”oZS=[JB܈9}+$qU2mnڿ:-ّ8}gdU^9p52;FBNI1; o^[jH>EE巢+%!!*8ϢΖeT6\&|O'>釟dG=xLnjg0+'3"I +ܠ +Z=L2Ì&j15bFgL>}ԝY8bRnn⎺Vdލ[A2gU[۔TޔVTr+:pu̻[ޜS_;}ЖsW*C?ކvlAV 6 +>g|G`6bS MYiLҟL5כDag0D~ gF03s1?Zeh0`Uqۻ7ܽn_w7b{W,[#nF_̮s.X}n`lnɼq7(~xNvctAGW??-$ev^{{ȫ~|5/_L̚=Yg)jADu~Z3L_ui{g!M~Ң ֝[ 2)5)ον{'&;FlN卨#^ Ͼx=T}zh֙+aYG<\>~;$V}@f\SR!ˋx?ͻAb]!_u`L=Pr8>4U`lT&w@1|H~2ؖYݬgčGIo;;^̾q=$VDvlc2/ʈlLɷ~}6=~jl#wBuQOk;%4?J2kڜc0\C_z{]rMÉ %{v5РW׭Aat sq.ʄ'#a{+uYSM,ν9->s\!X$0flĕȜ7BZ~`.ݼnߺ}7^؞BFk|G{g23a13g7cXu7*>WZt9!sCs^ ;{;Kro^Ͻr-,;N:1=/>>7!6] A!Y%9t{ҽd]4YŒDm=9MzKM~߇νyAs}ɿī2!ړ1#2ӾsfXWhܽ^ {oe%tVg#vo-.C^IWv<גt@0^0, 5*>F?^s^Ͽ;C ǣ ڏ? ˜N-Z~3nHQ+Bs}朽St;:Cr +%3Bw[;?=݁kyL{}"HLfrP*{OvcK.{jxaEׅ\Fhvٍ(uPCV6)$s"ԶwΜ|=P?'hbFhciqF|3ô'3zMbjMdŌX,zU{I<@LmHϕ>'Y^&>&e$&F];9}:r~[_|wJfa S]pM#NfF \|5|93zطK}2Ca{:ṲRZ{vo;ڼ;Ũ"܌UNX;_zZ%)>y%? 85R[k$iED~?5_2k3,fX Qc2L#o}/X,k~5njpcc +\ ˿#4fXQý;7Bo ?z'4:Q5OW͘|-M|/#>?H Wd [Č[Č#3f:fDSfD f$Sfüo61crlt滠NݕJ/g^Lɦf\jr"g"8| ~x3$lrͿvoY未9qr[__d_z{|`ԡhd3Bs3Zg3z\f̨ɳo1ٓ33fȌ`FM3ƛ0#Fcj#\\wo0~mgv4ƽ<|b F]/"1> {y޵Xr/nf1mg0z~K~;=23z f9Z~'U)bEQ콠DzY֬A#(RTĮDM1Qf풜s;~d}sg]ʜOs<saFZ/c,clmVs35a&̉gV3NǍ\6zR?u ~xG%;q{3닛ms_/~qü],$Du}I3|?f2tϬ G2FB"ʆ9[qqa3f9|n"bn&QCEIṲfL:y mʛyWw՗ԴOIuO !1捂m/nxyAˋ-W>.ڞzґG|G5 7OiG[ p 3l*d,Č[2 b+%$bfl#LU43swT?zV?MZFzqʮ47~pzC+v=\sJ6 oU=nkJꄇ:UGForck!G$˘2 G,rM򟭡9 Gb<1d:cgK/0+qŌL\^L lf2:W޷XqD?ޕ/W$pn[n_*gW}՝솿m{4w׭5m,u?}I.lFF˂5[2#h,3|:V݉ 1eO dFOercd a-!s.{haAK#Www{\ j>F|K$&6靂x ׏:XKL/stXoѿ~aE΅dnxrqWdF1™L2\3r3z +~+3f30S=J٪NfΚSKo |eݿZuU?^inӕ6_ش+=׮m?{taA'H}q0A_=?ӯp]f y63K, z3h'͋b{f1ÙĪq{/G["ļ̘QIN)csdfv`3oa|`4kG֯tJ*>JJ+~}EÍzG|s9񾖮K[:.ohIxҷ3ݺS솶s33!p?,hoA"5'923&x80VǕ$?N>oaǭ@?3)v%[^,9ԥK晁7~>~zS'J?] )۶CM\ j׫>^|󳼦'o}sާOO݋>wlXDf<|hf̄~,df*Ljdf2U-(d̳s +.,eꇖ \ueۃVZu_l!릧vSU/j'zIVqwG3r>;}ѸCU xڃO$O*YQ+ )4c>l8ɇG2v(hqm5p?`Պg6n;~~>OQ6]Z߷zɻ3{OM.>6U/k#zM_Aӿ~ N܍|,\5FFszf$ןόuP0g0qdlf^p)3=S=$f[k8k櫺s}P+}(ӯQ_jTxJ/Y{{6w˙~N7rgz^q[z&Q||?_nIīM×7YOZy^^vۛ͜w?aѿaHA9OыI ^3[θpҸvcCW~^!׿]˹bosuV$+e^?~?#,xh_|W&Sz_-}DˋP_.}q5-w~y=P&By9+/ =-&N[JaEmpgf,%s3LojI~8?9#G׬z_vK[G?k7ov⻛o/b ŗ؞Ei->TRz{旻ğZpZk`1Ǯ|ӥyc4 CSIs?ze+s{E 9_Ό4[ o4"yɱOe&.e^Η0x_IG="ྞ g?UoAdby|ˋYco]}>';/~+*w|6m8?m?~/H}F{Z^Ïj߄oW MO.jU'-eN`1̐xRG/dOcd3qnuB'ErýO |6ۏ6 oxU/m:\X.TVTa픣5qYX 2|TITa&BӃoԚKO /kO4f/lܞ<_qW~ +;w]n)+h53q[лO&Z#'qRe7 ],r&x~|(YoW֓]Nm~xS"|0ۯ}zW%}``M&͛K} ѿ;l)F~A*QNŝ|ۣ_ugPv]J\ojퟲrY@ +3~Ft=4a6b3Y,nvyLT}LÍo.4ޟY9 _"K&h?.|Z$zas:%.Wt//y9̍VV2ړ?RBUabXbexǟeܼV;?A:F\~mlԭfk<끱2;ݝ,K:<`{>yR_R/C])B 1 ͵ /,mlX{zVq?Y2q4 iU rI}ZעrGԚt3><,YiRKO|륻Q2M}I +K宾J}w[3kk/[-vӃ=JxyM)mɾ9/~|˹N=~[:t2Wf(fьۋ KH6)_5 +}bA?y};__UdU~5۰w2w<]x=5's9=#TtUL {Rr+2oŶO*jLu]\Sv4Es]udGXLp e 6yL?~8A~w=xn5,cT7>^|d%M]#6bv={p P3݇XQx3mJjȗV:O|Ώ/P]8B>R*7Jvs}o y$˵(^<}l^,}oY0 F4e r`lzԡSC"h7}ot|ֳ>'}2q1^5mf +͑n}ETnz#W2Gl٩J-x fL*7&Dn^hZh\4DiR< aO}`r۞Z}x*vXj;q9ل<3>yRvOE텊d.{ʏW.?wH>z[}Cu_E_ (|! 40<((,Njq>Y."TH)C:"Q_]Yrm){fXj)dm꼿l9_ǁ/jo"P{WrѨNP[s'&j>~y)A_叾V*;'iM֪ʯ۟ +/?;#iW,}N*~gb/ }x`q_0@ɃqwYɬrYʨr̈́/\WUr\cГ$F?hž>nhhnYOVbα&qzqc[SړĽ}U_.z`ϧTő{*_,aNW5?Cy_K}XP2n>G 6?^jrk@m"}?5ٝ2^>L'k~-)+q[d2QBSrBJ&MCoq zžǾX>F`WgWՖ،6ZK՞]W +^%gp3N`KwJ:Ǩ9;8ɏtA7vYKI^˂n6'TVgh|/.ܩ\P6T CR"yTfE?w\L@ͨm:?G=t${K+}MgmabAh>۶qُQ|/=Bqwe+}?ONjמ'KW)JъObwQ?t>S7J۾PxjƗO6 tR塞;79Pl5Qd˹nKì$q7̛@1 p$c]zf \MWUg`@*Us {ơ ݎ|>?Q_[a7~(~8p~kI|Џ^ocS[e"c8Y)6>LCO6Ok$ m֊u Vn+ lanc=q_q_ QLbjc.N!8+_t VniSJ|K wnk>ӱgr;-Sv*LV\g[Uz9L#te_meO;=:HvA~:?P(?dkJALfЛOlݎ>5MݳG'T&ԏa2-RgcևKfgDyBǞp=ŷ^y>uG8G| +_1FȬ27 rت8]U'^K/u/W!/S#yr^C !F=`m矔>Y_x/O@Y'ƑcOQ*'J]*f+-zlljTd2D35UT3*&L O43J5Gicc:keσ%^C|wQΕy)T~k/G&[9u' U]\ŹH0Mbۍ9A[%{Gk/8*S[{zi)l;ě PDRWi4yhnLd2YNWŻƫAOvYb˃+OB*tƔE-Ԋ!Ҧ OV:o/%, '}ģq=ϖCGO8 \KَKݯ\tt*~xvͅA{U[סG#3/yeqef2.˓g<]e \J.gQ\TC|G!i(|ylh6V7~B)l\Rnwx~->rlǭ|UC_ɸ}zP{*ѧ|L|~bkWŞo:͟Rtߟ˪J7kOQqc]n&[{t2[$Ֆs.u2+0Y0e.3v%x!֚M(W4v\ӹ|\=_`}Vɝ] .HƯ1TdAmN*SOmܚBBɩ`_`b,R;Kٸ`G +U;gv}JN>.N.?X.HOCo"_+,Lm*Uzb~Z*:k2M!崴\v + +2^̏Y6ӅYԛإ TrRn$eR%kN1%eDdpYͶbٙ`hDg 6S,3]IR +v M`; +U=0ičI,@e0{fJ-Žј/?+b~}|\\d2=/X{ϰf{Ǟ3ϵDng;ޘtĺ*k WK|f!ض.H̵x#6k˹-e}$Ry2~#n"6X3\K;1X?PfO0fv{ zRM>xq]=Q&Bzu22Z>Z̵\*{ny}&P/6]'+r~S+U|%*QUۭzfk0 FVL#HɵCC;0填=<:ݩ{Jpah|0ѹ*rی 4 8RW&WYŻF$ΒB b'foڱŤ>JG1Qϧ4RyCydOxՇI}qr`hЗ=ՖfH (V tw3f,f|HM#&Rdo3Bx)S-}[2 [`˭M}s]؉Oc3sSm?FI)#|-)>+7i" gQW+g׭F i2R !x-#T&$DdF :VX{d"q_u t ČRN 8/蠂-U^an=neFقcև + P-X6_\K<Rb +1bCuX&Rb!cLo$GQC\z`yp<ՐVFͳQe%P.1\X Hb'5&9tX<3ɥXC#"rM|tK9E"XM=IݾDa}osW<ʼ,hvBOs*i? +>t[Gِ͗`Z.;!K> =KDjxp\PM$>ç Z5*u?2e12QDd(IF>vu\-W 4`s&J.ڐ [g"emkOzc}I{)/ս7 q<U :֟Dr[FkRM +談":G/R2y $C3UJ>,XJ!6^>DH!su4.Ro>6rI-%P^զs4uGf*!&: -5)@\%B EG>H;{gks,M3n+-Ti&ӛ&l R.kLPyJBIGcyF X>G7S2OTOҡե$1z[ &aPa:<|j}S\뮧|إDgx︲XAu@J1\&[hʨ~sBԅ[7^*lړ'c+,صfAC6*˔õ0񑉤qg'/d\f-b< 3qCăJu35  +=sY곁OE+ -$vq|KUǭ%sU(/jhI5Vdn+ c`\3wU^^*[@A&[NQ'h2B ;b5R +3˛2,ŤL364̈́2?ۮ.Ӷ_Z%տ?vG&l"tX XɎZ;.:?]mqhM !zEﮂƋ_We +3:;'7̀ʗ{Gc}7b<0Q4b Y2d<-o:5&~E5OG igR /mm~+Ϊ˺Ɓe3oӜcVK/|we!=_(ԻHluiXmQ(uBURMwb4'# _gLFz-m:|Zp҅Ǧ7@;\z1*$`]Qh=j0. ~ˮ*5}y3펯+Nnxr64SiFufir1 7qe~wMOσ{]זR7j'+I =A#uVlɭHKIx6{"b=x㓹 =/Q.>0j\V\"Gl>> k죩>5J4B x h^Ae${`\m +]CM;^;iGX)PM6Ѥ mj;wsg=ğmDu;F̵?_5~2<1tTǦ +Oc zHL;<B|8.њ+֝ok4c%#k0oC(C&zͽ&HTzxb7l>W}@*ȵS;Y$K*)>Xm.{hg q +V1a(hg&`- :bkaT1&Z9Yk }&0)zۅ -N༆Q }S+E7Mf]rdHΔPn!P%3 gp7f-Qul-v&1Ϣ_;^bt\=}7!i3,+S;+2o.Xuy'](m9mE5s7BR[,}md\1eԾ.,I<wكY fV nq7t@Z7u'w;?\ ^Cj?2 YhBN-87ܯb D`=XIJ5# P;b=;Pa-!4\\RJ$ey?Ph#mn|x蠣.ڦ;UbjV=fe~#6]\yhgbl,/2B5HQsIݟ|*]1"y;UJwZ; gELf[?YBgKvVA 05b{6}T;K dhgkgiU;+O|p+RCvЎ/i77@ LQEghh+דC&YkrХB@uړ3$/!R_dAb@[c$~]B 6rm nf#w,ԅJ9uXGDAto)ֽ7zT1~>*AqH}SKJ%ZFjo~&yOH2SS;+43:4[pIZ5D +5w6jsFh6\918[zXQa#暓zm2`"e%xuok?u AF}@0-L6tYX_WZ9ISwx~4%bfBRT`bX7w8[OЉT9w;;9WtMaHb5^c -܋-眅X_ܡ%X@|[WBu%Ru#_]_LB,dFre{~HA.8-hKc$kTgkn4:gwF7 mTq'M9jRBu:T$"Om<7T<$@}'}ШC"l99Wz"@;(Oϡ m<&Km\abKoܯt B.,QT|8i]`ǘ/7}8qc]%l>4 =bž bay|~΂Vֳj}Vus" ~,i ˋ#z+{ksNR9REx5_;I|vbk{.Cu>_uT㦛ys9צ3g=i61765 "ĕmhw"556)^_!myLptc14k>+jb̵m]w}.Z29 v8RI"khaz4Xנ993vj>R 1L}뗉Rr%0ClI]{dgPABD&+M__5uEh~#~ A[(@4^]Hk6f`&c2ljjgw9mН"sT#|םw8W~l%c{ӳɬF:~(A|H= _)h'cI΁\ݓM.<<-씺<ɩuItb?qcRP(:ox!%H=9@j ',nG[a$=;Bh@S9ZkQBt p=՛ޟ#Խ7kBLM62+L(^/4Ag k%.8<&tMIСrqܒΣښfXc z\cv-u%{RXs =OٖO.7^Ǹr jMG.*Je\Ņ3sp}z^7~T!qvaBup$1{TnY|B!DP>:o7 {zCúϗ [.-\@68 +^O͡xىz;x_cXb%/=]oJMFE&ؓp !L~Mm#s½1>jqiՌ1gn34$rFuJ"19o"Ϩ+里:>Mj=B|: :F!NeoKÅR3z2?dѨMP#OVجmFm䚩K;b/gA +Pbϖ{70=pX37Hњ9|f[li+)bv40+Rn rb6چj5Q<5bO:WЊ:;c rJyl@ a.6 IĠ +a`6Gg?I!q`LߛSswǻxw;wǻxw;wǻxw;wǻxw;wǻxw;?&y$DM d.x20<]2<<<-%uuLxjLbBhJvX0?4+2%xniK̛L^AuL("CwYJLtLyR.r^` ]ΝeCg_8C}~!OxA AA]Ns_:E2OxE.ϫ"yosY 9 +KED>y?üE' ~k|sɷD"xӼEq1'gr>)PƆȢ $sS3 +ed)UQ䧂  !w.*mv0tEcaXJ+@'4xYW3]ƎdtijZơ]\X] 嚃K;/7nMtILA~f@.i%љ&sTPnM!>)߂"M4t:"dtXL1A[ g$l..&͔Nd<3tQT(0]5ykOuCr&ƀO3q{IZt߮!nQ\ϔ C)٨^]wX:OR7lĬ[>h`64W1В4򷏤)ɦb(&((> +NUOw@> 5CPhCеAgE~r  b<xt*F*r>\8 dzgu ++SaT2M@j* eTF b*tU 6 +O6 U^2&]YRB`1uP!R%$B!HjC~=@*R$c>*TB_hN\m.t9_ ՙŝ h3jmAmj[؏adjrZG;Z ZE1-] gu#;"1! XRNI`ٍ#uy)̍ PRú+$u& &[h.XRm R+uT%mN,MfoίYg +Z!E' & A3mWE' uڌvR|o;Gw(E{Yv!)GiX[?Z,\F 'Z*d,=ЎTbʭUyK3(qbZqm@anX2nK/*D5Z/KGz2 +7mBJ2RId,SYPHk %&OW%QLdrVǀŠQ0]9||%|x9aGP29t2M6btRbb "E_5(PAbז[4IFJ %aڔkM|&6 :;1٦~624AOǜ*fqԞ[Mj5:)a/y-#3smtu^th+Ln>=_4 %<재C|%wL|&:h`W[=mFPtҮdtڵV9MjPuJ 9eashG)ްgo暦bDziXy8Maxt%{gv\h)A킮잠FE +GJ9 (Ts&C m`Jc~ + +"+#c {DOP+xt1 +d'@lћcuJ"'> O1Qi ( :sYֈ7FGL |d)Sh->yi`-tNnRk 8rKuz (D퀄Ngj 覉.6gCAtT{)BMl9 ꔲ +kЩnfؖK쓌'*1tيѹ)U,v*Nd4F4=I~`Ґf}$MͱMi3[%D%n.2[H1cUqzơRV0A( ü-FFm)%tˢېJ5]`Mv =0Э9>v6]\.-t %{*NT!EBbwb-=fmIڼ{t') +Ty " ++ӳ \ȵO1Gׂ&[Ciu{cb3:vfJUe-5^Sီ^H+%üEM)mc=)=jbю{#SASJx|*h ;?3i%:}J*(8H,3ɵ e2R6*eT9̂.I{RR tRH!6^kMIx.t6 N|H/!scځXb 8upm/!t. _ՠfwPwn[o|rl~ǧ.Bs(qt՘Ji!nx`pI)cٍvMfI 'c^ѕ% B2id\H"Q}tD*!dH4_5qM hl@CdT2ް'h5iqM4 I EJ(WJ\K5|WYaX̀*?]hG3!Ey2^4#gV[R%7 Z6d%6ɪ>2j(]B6c v[KLsyPg@E3Lk,ui8qөJRE vU)(&U[ϠEMEMRnAc̔P0DY$D(H,iORAb_*M%%ٝt{icSfRp 1f$ Y ;F@ 4BVPs\~H($v%à\5J +]!rRHM#;*grxԩ6H@|ԐzK +-Mԍ1f4&ew]>Wv&O;CW܊ckH DH*$f!Gr4Β"?LsbT$юvx!CPBfbsi.BbI!Ik0_0bE~N9Wwd +7d @8vD %,_Aj8#ԌwVqO}hHԲlp2hg:~TX1$&dDfr$Cm )E \gtUVB ߍFgI;uggI.l>> dX1e`J-%!kF%"ilSCU:c:Ljź%|'iq|ucQ_BEŅ~jFRx }d՟k cq2B48~3ԪE\lS;H!kOqEA&M2@aA4ԇ2.+A +^SsXjr6ii #iۑ|9UD8뙔 +Q2^]w +哅\swnWcb JPac@*𑓘cC>&w h\[emkS1pݭ" > "KPDW?d}wϷu}p=\g9}1q VAy!a&k?.?XFoj UR b20edL(n*K❽ /P3!e]:+8SD~2Yй7$91hlb<Ɗ1oi吷Kv(p:3![O xr0lOEt!kt!>uydpM8Tg|iR[S>xzdiqd{OTlFG=V(G4DzX0p+29(0eӇkKH>gPf1@. a:egpLh1m` +ƯOu \*<;GI`ەydjT<8TulN19wyWsa:8QT )V6i`A/O2&:^uM .v:p5T^gDyg0HQs )`⪶ U۹d +11i+A j0 {(h(a+4va$,u7AKYO! `-! 'IlY$Lj}. 0-x{t+{\T09QMn=0Yȩ0Vk) 1#aEvԄdRFA +/<3!pgnM1TÞfH.Rg8?L% jCmJLi?]dV2rp\?'`^[2jLvt%s%7;L587{9D:`#j lm<{f2 03ׄtUPa.bNk1̽]戝T N.c:L74&JaHzR@]JSS_ +"1L<'56Ǯתlx.HmBǝmut8:Q0>9Ε:E*n:E%ygό/Nۏ{_]LA(Ed.'iI2Mķ(6]Wv3Q8^ŭ0ΑP&b}Mx 0:`*$b 'a{=\!D,!|ݟu u!>aPGd"^U3ȭCp5K WI{kpQfA B:t (щj (E`Ll8R_"@)s)1*Ex~.P "$'lG!*$N)?& (EHb4 >10 &c_:sl$J&]ZHWl2zvz/EK=sP";6l \v#PƼJS:aeuQLP!>wI3jM0j4[6+8LhSRJ]RT`!&A^9ta8L,l@ma@#h*w=\C^Nc}vd"?y#m +Խ`B-QOoP],a. +HN08X=aj*g&:pC<S2y}>s>Lh7&Aph̍d*epf/ 0rm~3I-1vLR"ˏ3pۈRD,6րď!C&&RDl +9a")RtPR0|`2$p6#ŜrnsJoRP(c⊶9@~"sRQAMj` +v,Wnסf>J7%@š@DVK'`1%Se1iS@)z% O=~y ?b,@Sv@-2̃#䓠gp(;jp"1HS1e$>WU|ϘآTZ[YҰp.M06%J"Յ?"T7@XL $>"O:Kr3P;$d8; rX@&˙`*u.-$SN>|v8r?%DZbKg[?5[!LN !DIgPHДT2vQJ)E@o +{P=:RۀRqDۍs}slD#ȿ~c>^c*ԡ$i0֐|q]pN3cWJPQ=|v86PtJ:N M ¼G ~TEw0h}snʪk y3a L&1fG9 S@)"uaJ @?L&Jz 2Чwp9(r`M&u cCGC^I/%~`G$ѯrd-Rp&LO=D'TL.Q`6̟B I+ZBe{2!W)EʘT%ޅ0LtV.`3q'x__ ~pNp%ǭElR.JܧyiybLF6 /A)/&x +rW ʞ &:?\v8P'LeBo(SG=GtwtxO1A:Ș;Dꡀ;J5B S!%AP'/QҰviRAcɽM&?pi)*Tbv.U(Ef/aR2qs%Lڗ4rkB|h=XSf5SP6%C# s6|+C05fqHFs +'AQ|3a.L:E=^^o4_iЇ)kcdqb..*6F&3CS%C/(ETuI2^J:w1c>xDRFob^~J7W\I|DZLxc8ze`{lǗirIŚLR:/䞙PͅT\V:85{1{!t9Q>%}m!`:͡xTsQ۸rug7AE>ZJRHݣ.,fL8!tc|0`riqc}i"!"ВDn8~B2'3rg-aUW?.> ʎ:I/[r.YZJ(;vX*L̇ ֤S#@@s6۠P078\zhR)ƃ:l)QDxobyIbgICUP 1|%IaJ& s\r'I P35PC;ݥkAߏ(N gK}].Ia}!5!P܁Z*ptȥA<Irxa^AV&J:A &D?')~LXg40e@TGq%8ʢ .;K%n!dJ2Ԏ z~p\Äee29PK٠F +>IO##$gB16_x?J$o6 x:MqA^78 䢠|IqR;d2ʎTF.}yolػM"S& ʎ~Z-ҢLb*|g#cQڅmcH _"h_I]=~6m9HQFY @%(λa/Џxk|lG~W J_ƽWƗkKw1TcRj0jw5v}A"wm QA'y\=*]S"t>q&flZsmQvt>Tiɴ}ȵ@/ c>Eq,%Ic'J_a%G@ !`gzHA y +/@)U2<0;Gz}WzQu*AmrЫ uKT!}58P8$aGC5dz9pE8\fI-^3V*(U(s =УBe[ goN E>Y?PzWYɠ,qMXK6J*b[|cc>z"TDz(dxYBG@EXC&,uX#IA%\u})>p]s:s8PqU-e2`ΰ]}W೸ 9PGN .R . `]Pq uOmI܇=fNz[F ܇> Sǀ7$Pa,휡"(\ClLbq1/;Hp1QRɔx/F +K7ᗽ(@8k,P!Y#^{ 5kE cB y~$/5S{I-rXa8QPNZ3hDEPrOGT_=^/ x@>1f6ó5Pvw+v6h2Y+s]/ۦ? B_` yc_8j ִh҄\(~e6疪}VJ6^!yi|6_67Cǽ l~7/ P_:/4 _dv6OM-^I)BλŒ 3bm43ԁs#>x2QxMuu *v Q?<zQ &2;4Soy|0䖄f!gLsI +^9'br2%,* +BcCo.Qzم})\5 |:TJ&t#(>}+5􉚹%#?`N, j+A)Kꝳ W%pMHeA^K~{^.vbP P*1&ZRC훺&uG{$& 3:d|[ +hP]46:PZ%JD/4{5e:ip c%ӂy^BbznQZ{1}.E ۠&BVl71靻m*_,UPGx=%W# ~@A}Z W>(@@б!$ށKJN:S .#o1'v8k䖝CPM'Fx 8<C +n#ɳ*JSgCQI쟍qs^Wne}Pj=:fn }e0_}3s?arz9'}*.:O!>i/{UsRMʦupQﶚ]LX ?j7 +w3Ptj.^S~,I),5Z|&`!ct|6H :r(Ή=gSzĖP7 TKiTc@)4aUL\U?V--lB:?zؙRK%wLUL{U*N:a'ް[`,N3G*v;Fkʷ]ɭ;\co6 +@At6o2kO;$~޴>mof7Wvʌ n_3%ɮ7tP:j*n ɞVTZeUQLz(Y($AQYWK|Y[G3M;EaoW'/$6+kvrU |q%Ve5RӺh9cg3 \ +1M+ERc"Iԅ{B̟1׫)&15kLZ?Do2oL7+L ئOLYI.;yiAۊy'aJkȟT5[i)Ob+d 5٤]l},gեWMͯВmϓ]9-}8j/{B#{՘kep\v{ںGfEZ+Mgi[EiVweRw;_M;}ܝV!6I$/ +<(7gS[EIۨ |ͱW]1WڵizPgmɯVeb6JNnPǥ`Р5 *޵Sտڣ0n7?ҷ?zn:9G$}^ZS+>h=h2wcj(jD=pݜzU,.n>#-.`Y'٫lF.6.$w=W0>_|;e\r6}k\B`QES3AjfyoJOHvқYf3-ZˈS$F\zh(]q.b +UhH/KnIR>2ɝ/͂o?L𔠁?,㼴O~rnb|tcz v ;r#JW/#o 0o/ ;"NVSyu8󐴰VNL~"螗 OJUʩ/Z-kByNf7EGWnMFȯT,n3Q)ɤjq` im:&4\EQѝ _D̓^MIqn!iyÉZry-O7٢Γѯ^~,ؒ˲^ ̝.ٯK%l>kcRiNwc36MqFa~oM,sÔf(H[X7Qw>r7[(:UH==r&>] g}qiOtG$(fMg fCuF>eklOL0vӀAMrK!>@J\Bp6M9G/bـ˅7P^~f}0W QT0Ib<[qHƬe7nEvUGd$VSUtOcpR{u1&T^2KSQ U͒$O_'KΛsqj ;ޘYRr1@7giOC;߇Id >Lu9|?ODwR)}'K叚_ug}ySuQIaϲrYQyEE3'$oOHsOq/۬{/j=旟>4cAtZh tA~IK$PS(騿,i,e? f!,Ü*JT qSEUǃ()emL]ZEW>$^(9!.'Sg&_aiv‚}"SO;8e$E1惒Gԝԃ>/JZVvAR],o(lQzÝߏ2JW%m*WY3z̹'Jgη{_Dnw1%Lm|ꘈSч3#r.wQ/G~7It5jwW|.&IUo-[r,}=*R\`'*natz<+k7P 1ive۫-ԧlzoV[qHK֛J}zyMUܵ٭& HKfE>`:> zv&dfs"n'"enudl%-6mrx:(c+x!sn'UeRޯV=ʛ+ڞh}k]"ns^.\^2>Df5a˚ψ`;jaO?T_0U8rIFf{?Ԍry}A6G'FŕV]s +?ݘoq?J,X_Wwob5gEX< +V8`rwMciv3}:b˸u]N}s51D׈d-z\\:*}eQbWYqq(םUT'q;ۊ$ Ӻ#u'do*I62FSzoa?o}mt1+TW6LUz3 &U8H[mұ-wgtF|6u]` ۏE'1~>(Mk0a>HWJO׽>r;foC-4ՇE{V{:ݮͭ*?PPa_f\TeX^iX.- .*S^_}.%ʬUDzqUIc^@M>H_h&}Ւ^mg{qqYYwɓk.~* b\ş[EalSoBJWuD"мmkU@oӍW?ux|uN6MQw+ +m묃^[sklrmV\.%"%"5³7J)/-^5$Ҝ={7̋ + +,Z C%oO24MifHeMYi>/Xʪ=||*Ò- Ĺ͇ k7~fwK g4L0.07Ҽ0T6pogvmCD|\stT[DY@`۝X8Zj!p)}eɅNO #9Ej +|l6x++.ZJ%묥l^v]V\P[ϴw9慂zKb <#S #k±}%$]N8_d74~}vr`__։iVّ\][uP:\/BoT::ޭZPg\NKIдGsON潏*B}/G_(&G|`_^%n/0Ο~3JcTAuvauv %~-߄ {=W7s. +ۅRiZeRݼU@oG+TjUcF9 ҺxVߖhV'ԗ"nvHw 󍼈hqwYGYȁ;{%N}qCdG4m0/A˔USl4)IhTK@f,@;wJ􂂎Uq6-f1Sxh`<|!RU^,QCLN˦~o5Ţ?o⷟O |!mCH^]w Şї}]zF"{bTK{Qmgz].GU5m:P,U7ޝ'٤7t;U^֗պߠߢUP]pWYNTkƠQh4FkJ MF*SI*hFS|zSXtGᖌp/Moގ14:Zyv2z +^pWk-n" >_VwػMgqَ#Hݻy ~Qk򔷖[6= =ؔq*:ں:"+eMF=e7 +#JC }߳2h9;obd&kTyϦ[5B+ϣ.:3E q/#nv|85qSwN/\"߼t|+̥,(*+ҿRDz]a7B#_3گxU-[5lVTEA^is ++;y 8|9{p7^u & f*BF) +ڵ6_VKwđp'#+  +<ؒzZ1{muֵvBq>hج`|ZWϟ {(3#Ǒ;Q|kAk͇іChW:y}MNFLx]rxUk|q o\;U8Dz3qKD\g~?/[&CSL"g ۷߽FCpqĉќE"DZ'=eWwRs[/<"_v~WT\,%:'9<)#̡44.2p"v ++-Z^ǀ7T$Y_tП?: +O4 MQ iI3q& Y *CF,GӦFK՜іh)_JCTЄJqx!0hhҰh҈hh.4g1~Nh-8h8Yao/cK{O/Ƽu.w.}WZ.)?}1#LXJ&ijďxE3>͜)O]+@3hYLyB4} REʋXB?muh_%18-o.?w,"= H0~X{7No + {6Pn uN<`8# (LCG.F'B3@ VТMV:f.si4m!6FSЌV "61Zx~e݋'J=s}Wc|EQ}eQUv}UEqI~yLW{hD1N@SNG3G-@G/EJWb߼MhmHi64y6Hy]u-BU1A=_W5_s 0ѕy.Qx*[c̵V;T8&^H|[숹Wf5}2mx6Qa:>W𙛬8o6p& ^׶MSۤR=t@ |.-' +V̯a ϟO t/=^xm;F<1!!!>:SPfyjR:icp;3e4b1xF~s=9u=BF wX.h3ffi٢bA(Zm٫yc~q/@D?.W %HREW۱|0Zqc(!s-r +I}T9hڨyhҨ97kR4u2 + +Ys9zh-գvj>8^/sW.xmEN!OC?T}mK,O(r 5yvg?˗ `xF6trMV )[EJi&A}4Oke,)Fh|=4C)FJ-̙(n*?]_Qo4 +|Bb.F` +cilqU 5k.$t;%9@.)L77c,^ F 4]u4}&jh4?m>3|֔oC3g@ԑ\c4k=k$@ZגkGny-njZXά偧됐aN_F1~"մ?]PT0Iiq]mA%Gzih& XhFK`͝r)؄11AsVKBShZD* j!?CW4筌\WƛGk2"=ZRtYt;W&5'ǵ %CbxD(GA_N2 ce|!pcWs<5O>=gklbjE6}KXM6;|ޥ4r%y O)OqOcÀ'ksijwEBۇ9%Tw4k:>c#`DV +h1mY9Wxuo:x*C6x8zW Z^6f#~j~ ~T,~N5_ˋ ZxA/UFfuebTe̘ ]ÝiȮ7/"c[3[Kgק(a<h<|׆lw.ëiFW]7?})pŻ}f7,6 ,XLD\yZFԿipY09S-XgE)wG[n~^`,ę_^i#wwX3/ {OnM^-cݎ>]xv!b?_#ͪ'ROďd+iXo?)mD W1ν6}5dw-IM?^>tgE_k *q +.s st=F%qo!O V}pndvXAc&9JcRՙWk$vicN99}ftg]߰kM1K.?lS,-F7zm-LQ_F}uTQ O MjyKQog1.9n&wf'wr~-a?TMUq諟w39aT*r**sTN*+)`Q+~n%bC6~oV9 EK_Ygq1ϮJ8Ee4~,4q̣79K*C/v?i[y2߾# +نRؾz7QOQ>old|` 5vk3Ϡw{pM&+ =փMmu퇮X!lH&vUQE%WxDifѵoZTF&}壖=t=y]?gh6njDh3=HŸ]强G^n?e˛a-5q͕f} u5!wK9lHnN۝As1.zW{eW7~%5 yVc*.u.j씢Q#dNwNme}3?'ϯ:'L*:~iuDS᣷Bs'1ZiCxEצC6& 嚵_yLJ -no}/B63=Q~ǤnF'.OJ&LG[6#V"7ywsТܵTf6sG( ry$$NYEo3˨aol̋ <ϫ[fѾ. 1WthM< r%觥h atx9^lRś}Ct nM!2#2WsnKBqdv +#8g2&גH{FDE算9HyV>0 +dʼnmZm6Z&CSzc+:H +NQ_Gcj{x E7OUt sC4g >`I3`\ǩ28z>fձ$&;LLضMRΜDuОc'GZ:Lkq<'fz場^/zj|/LҷI.Kh }^.mS, +-<55I8\]Wf٭@=&H*P-ט¨5輵¸tunM~ G?k˱sXY>ٓCfe.}͊ +dg +Bd㳗FeLѾbKO[)4e +4C6FN]z]YmW+M[ղNq#}Ȳ5mu.t0n+sπ$m^bҩjkwelpy^H^x}i! wjdyBtqE=]ylsFgl熲F M}Ӄ_3)|oi9dWB{u4k9ETJlx^Qab3E^Sܓ~.]=Wh8?_i 1{¤̙͌"gMyp~ Z'2G}:s}~#z弥sfHKI inVC;7oEv#k-F::A]tiPt-FcY4JٍB)y-Yf`QЧ/l&2KYr<{e˞d5{^=&e(uү=wէ~l/<\&f`eX1U+Ǩf{_gP;u11!#yEZ}&-C:H}z}׀ضj!1$rKESvc][_]\Gjŝ«5ESi+?R? +P"' ]C]x͐g]lyfk %IYugIRz;?4M}U3)^m֧jtfle xcӲL }ǕNLҾmsziu&&l㦈M0m\m_ :g`$N<_EguJUIܝFF|^dR!V0α39)CLB,өK +jRym7Uǩk4ՄWdt1\AIqn;E2gEUH xQF#l̀g}'KE);ش0B~B&Ԥ/f0X<]Ny,p}m6Y|f0r^u^Uy!_vs^mIDpםQQ YWY[bE$‡:h|llQiHpvPS˓} +gB;ܡQ}2'F , V)={q"ь:h3<>X| Zg"]'eR1ʴDajJ5dN*15, b4sWA\oeª62~UK0NX"E]Q.|%}y40_XmSD[v#CA Wy#'c&v?_9'Α].?XEo7Z"6?>X #V~x0EZ=K\Cfr1Iowʶb,_S^x.w^i: +)q@?YIljiݻY6,l6e5`oWml^>Qc-sc6Ս1̹?<>8Osh+aA;)?L/ +sO:8:>qN6ƃS韽J($5d7>әZd#^%5l>_!U瀀B7W.L.}Bu+~c"QFu'ͤ|o/-[-Hbr\D# njb\q*uZk.k`vƱ c=S1h1ڭgL,+C&A/6ZY,m@ )ת\r.:QfvS'G1>k Fe]+c=fbW$952qveLe|Ԣ23atLfbϕy¸w[ݦ'-{7\,+^nܽ4glCL'D{9?:8c۪Q'0̃ `C8!N,km[NȒ$ LB)@3B[ZmKKK +{;}>ѷ:,Id9G Y:{{ {ﳾ rՄ˯$N~kMObDbnȦ5Ŵ𓿾q0+lhl_Exv\cޗЖgH\_{.kIs=//>xNފ]Y+㽏v|•ͯ^y_o}nzj̗М>?x]KO.K>w5OƳb̎ss߁9N\`#pM>6o[y;9yM3nQ2v U=*Ouxc bu.0/}2bPR#|=;xFy]8?2紖yKOۆ79Wv8 s=an ߊ'/m~*/ns n}q&ҧko<ךg 6:jo\ΠwHr;.yoi<[}BhX=y6~%OWS3Jv UnBOx/Osl8X'9Si\ x_{~xsh񺳃F=yo'~{w俦zջ.߳}Lp ֆo#cd`ՓQN{ \g|"%t|eRkGQ-G=|wS1<1GgS=i̷?p:מqmlOKgorͨʽ|_W>ܿO9k1;)c-XC'#:=xYx&<C߻Ρh|yk}g4>]q"\Wkyz;| t3/^;e~߿G=~F_0wKwq}/3=+\4u֪Ǝ?b.n58}i +P _Kx{O ݽlz1<*!ںb^O=?w79}/sf''cb.:,' {.; Et>4ƿ!>Z9E~N( G#..h$9<|{5C x컜8g/dC|q|p9ۂ޸n֪L3Tm]4"18'WB ,O8ӾhY0e{s1Lg?w5R\|hlhk7P-]}G,a<#/}m?z7}㗱/fP> +w~yg)ǟnw0WIO^>14>w# OR͍[x]Â̩jӉΨC<9s3'ϬoZh9sO-:r-\; +sE!n l[TMMraK9Gy'׿~5or C_/b\홛<s{6$W\3*nsCor -1k`I&5Ock^%vH8})9+t0/#8;0_ذ-GֳWa;-Q< a"w/}wOޕp12Ƨ?RS~gt?6,оT!.-|֜uλ <k\6}sBUw@"Sz"B{8:ٜ# kl[v{9yNR _gV̛xs[p[,{Ոى}?mßtAO5Snȝ8GwD@[WsC?C +.[p.kUeO1B]cnRS:mOSI3 v}Cㄿ=1: srci_}߼Ᾱ]#B=?u1oĦ? 5?7RuO]{_g'xkdwlٮ 3#4T!,Wp 2}FCE)? |;#Ky1 愪sJ[@ݗ . +?z5e:0sz mVc^.Ĭ +S`m/߀ 5|ÕgDқFn`bok7ÜK0f/| ݿPp#6d3տtdžQm#+#haly9'8wwA)%nߵ̆?}-_<Ysj›YR}"LW̕X],꽗E62I:NhZO}2-9!ўÇ={wvAL=_gJm:rehS`fL)P_~w '{{N&PG̨BS[%_+VR9w؜h$G5E7rv;g0a~*Яxm +s1nJ{F_O?5ާ81 scLf1;Ɲ?v>`cwp9:TyBsc.oZ~Fsh)075yorMqoό`'~~p+ +x||_MдK"]8M~#:~_Rh񎦃u g>a.kv_޴jG?a-M|2mlxʧ|&bb~qsgu[:)o8p4M/.oLn[\oKOD3Z:_N^[;5?e`4Cֳ1Oz`סn@DKlOhYإͫW=~`[ͬUkcD07A'7~'> qY1(acW_4={}tNsq7/<0m_:@o:wS/}6'wo-Z;s2kDcH9=>œhO0Ϙ W9xqc= ،1/_jraZ]ww~;c^u1Z[JM{>x7 Ahf~}kn<&Bū{i34bއ{]lל"|T9ß{;շ*bys׽t5^m? 3={76֏7۽u}󛿉Ee៺i#lo30ֽb@]yݏ)$bk^w# +/l&Ӽkrvx{>5L,{ʅ]ww&bu,9~F9w~/`'}۴bMKs6x207b^|[Ўɑ?ww}xay߽e]ܴM7b|dcc鄃 jrq>2>gs}o)=措u>-5=;~:{(7Ɣ+x$ҵL\%E3|`o07}Ӻנ|߸ױ O ~Ix WWx%a\n|:0gq=ǖ'|8#O2yϗ3"{#ذ;}a~yX `IqO(й} +Frfd;ṇ{HhǼ@ڳ(~:eG1.yF#!g} .½{/=_{gw?c^x_·ᄏox?k}uzB=cs !vGSd;O?a\S3h 7 V +A|8"g@xzȧ /pOw4?i]t2b6'5|Mug6WB);w)Ai ʩ|kB1 o8qgygc;7Ikeoݕ\y&b?x;kG/{+ڏc)s4'/D\ Ž3_M圖g?ijl4ag&.FƦ6ΊX_Zqkv|% ;k=aMfhĦ lxK{rcΊ<о89c Ly[O`l/ߴ)_OC<, # c(nT̫i#_rsϿE"ăn˜q1| vZJ[PeCcy̷n-q|d06aOԦ?mǼψLX^ߦ"v,bQy!|j+p=fyCUYp՜`0q={'RA?eї 6sNjVnvCyIM8yW":mvg+p퀰`7<sY/eFpǏyěGxV22*?bgGDY3yb7u?p^dњ[=Sm$O|@D 5Z;G\>%7#kxWp!FEhSann'Uՠm!w~q9'7xҦFճo9 b5-s%@!̓w-8kT3 bj_9~2ܱjŻOE'/=O|ٸIkIxaFqBGihIu3U >c̞4g\GD֋k;m'. +nW35V͜Xv #Es܈g?zbZ'7/X6KO~p`Ae5|I ;OYz_g|u'A0:Wk_qjü%#5YiȶW#=| vtCxͯ߈ؕgY1nҴz+[Cpc6<{vkۛL]YEX~ndBˁ݆kX}HfpNGXq6/epXtO 6m8N1mcfN T0wXS:6mӲ/D^!rY*{`zh Mxg~/viŞF]#]\ ϧz_rjocn}c.η!hZ؅rehwZ6& aU75Lmj8T`CO} L_xq|;F:CɄ{_E_U;qQ'[hl"rE׆m8>vܯtfoCAПKW? ۇ}W6{'Խ#q_ʿ㇬$jz 3_߆Y^|?UpK1֜OYYxx~;kz{b`O +6i-|oeh+ k~᱑'S\2i^ bm>2.ÚNfP׃oހxvxO-o>ycDo5K/C?I1[sch/n =DUE'KN58=#oږCX2l?}Cw΁xƶ +1php]|09]>iŮK cЪ!FhsW;&δ~Z12t3# K᭯ހotm 胅7~]_L5W!78BbƍyH5vr%yrcC +fՎ qX{'X;Sv߮KCbo{cS,}>b7X<"h`g{%bqN=.aG>{Vq5>+D >cͷytڦ]כkq:t;@գCeG?-<x鏳^<~&f!L`/o>["0|>Y:~ +<}k~&.7ӻu&=ї +;{i ~} (Yxvtކ=x: B$>q!nџh~??on<{xЇO8~:x3#?HW/|Y^1Зx\=\¸kPt4vƽhc~,5dZ8ih0=~!b O7o_p;fO +u=%~񸆊{3k$L,#aۚ6.] g`A"-<X12܃8P?{dSЎyDAp˞lG^djG1?s5(ρ{ gP*[·xK ڇ^&ĉzZ\:{kxhE|cF>q/ߣ?hOg ;04|ݗ> G]Ȼ/s=?#)5֞M]'a,Us &\``g g[m~~lG/G~pKdܧ{J}p0|eqywLi^\s,{1ѻ}O|5X~:c:zNozf,*lh}"=_Xa4С܀cb3p M; +tm<3xy5AG fxʡ_~fC՝o`rG? [0fɥFiYx,O(|dηEWO A<Yj< +ہ%O3o# 7{˹t<4 +:%tLxx^qn쎠8F{tXy5Cq~KG} +:p+a8"?d'z> O Cyp|sh|"g ?Y xvE,:+}e[`u8I txKyWMD B8|q>8|q>8|q>8|q>8|1;56%}ȱ534D2葳2&oSh5hYuS\]=t "wMr2-P~eܜ&\㴊]>OM{'Fu(dWܜȱ 9BO]+stAR#G&GsH5n+ #e495N4$kJIǓxr^uNNd;7MO'Q(٩}~~~XґHt|nw&E"LG{:?hKǒt0#tj=4;55'޹(o]hv#6Dk gxzP͌Dh [4c6u r񔚻 ֚NA'Zi&{/PxfCsq-3x+y38t-t;aC6dʓgZx"fc*\<&;[3EvX)t3bL΍vŦcwwǒ6hbb'ew+ap|&l +pC#! +KH}Ķޕsfn\RC[ֵd,%bKۚwK6dڔxWg"%3l++莦6iJAb_4?QQq͌,tPh +bo2bxʬцM+Lu. n/c/h'N'$E;cՐhZqN. u\ZT%;}S)394N.HXGNT!vɆҩ074.W٥~W٥֡{vk%sv队]bOKvtPAR%٥,tPhR=d +S` b`J<$9;tqcz6f4d(&p2R3\+Ǔm,VX^Tp|sU=Q%EQ:KQZtTS@qEYpq(EG)=踊(EG):Ju!Q]Vg7_fJTd[=P9x[g,b'NJHFW'&*I'U^,s:!k#u(q Q΀h˛(H 5y;c\g\$'~V§R; 6om(@o~nn,ڻ\„⃄x{{wW6-iC,RNChs斪 EZ!^CCArwVUEgUq0*:X蕺hSu2G`c$fc KMZO%bIXۤT:肳XvU_.wtg@Q1Fr Txb h)R)q +Ѐ B +tVtى䬿TKWgqzMfЏO]StB`g14d-z_YrV(g%YrV(g%j0DNJ,E RJTJZ*(уVE,ʜgyEmH$BIZ1f9̉plN28&j*&Vz9T渴EJ3N86Yl'7l hPLW33?ږZe{eFy7ܾPIQQ6NV|Ujoepcm}zUAA`Tq=儗^Vآ W-l:etuNzP9)~l.9>^6x͏:j,1иx3D"x 97⍳xS ]~", rośxci΢;zL9◹*-=T23Dx{cʷ(VBc ؝۝U v +Ytp ,wI>:+{caA UQi 3П2 2CNHolr?e$Sdͷ?@ԖuS'>uS'>u<8Z֜ԉO+0>->'LƧX<NZ)'@uT'@(9ɐ QmT1A?jiN:#TqFvX;"ԡ T|L\ _TP#$.#'̠I*Riz0UDՄG5=NyUĹhI.ꌶ3=vez654!;qWanJv6{B_ +endstream endobj 59 0 obj <>stream +F*FM(rPV'~6釂Vݫ>N4$v m e68 gXG|Ep4 JpkGlP=M3;bvw*4gDȎM6نvl#&~*&Vz9T渴E$m\vnE9`pT\'Th)mA2U8C|Է*iGq0yβO?]F'kYM>%iD7l hHizckfLdG4I-S9P e-cI/G==sS hRM[kZtQ*Jg4=qkbGv|%UfUUIaQq1nVQUYQUcngÿ" +,EdAdTUsZo 2YpjvFf܂ qX" +fUFݬ +jNp*vUdH"]ժ[bVrBArnIadW,Pc |N f n^xʺZfNԫ +'qKV, +2nUm@@몆z[*nxj)juÃ%l^7IqXV< >9áE@Sy|y}pYրWAR*|Eb$YIb<7aҌhJ%JQA^B;I촚TFǹyFT7 \)0vhEV]1P +H Vg2 %׆M6dRe`e+Jp4-AXVζcNĬQr'fTsyGlI4J 1U!AX%dl4-Sܒh$E w . /pX$# OF<$AkMaF  6NPu^jAq]?h斂 ȥj3(ZH!D5$EKjVXؖml}64Joc[ +i8j_Q<-znlKiuT[ VRƃ!T{)ZOd%=(ZH!CR@Ak-%-It$SII +fBM*KEbX^b`j!' 'IQI]$pU5MJ[fZN|AjU1F$zC +,IV泮#R@&YUН䒥Z/ lqdUSĜ6uib"Ln$~˱tsϦ3F\&LN7%q}zwMǶU5@ՕIiKb`.\A_4'4Ģ M,SIĵ<MOfz1pl=R5E_pprw&JAO4x}7 +u9Y +ل^PTðhi*bWavKf8FA tsXV } ȑ%ԙ.f0OpaT!V9uMd^[eAB )_ч`"Moc0m|{el +dP59f7]dY-&H9Zf=vQ>GVgn<7myh[<CO^b糖Xy;W8ܟ +`Pd@G~YāԙZs'\<fXC2%,[u_fGU=3\ƒ6jc&CD!x69 +:,,=8Q7ق<*BEE=W`sG7QѶQKปt-qFm6 Z$R@.է5Ri&5t!C^^ K6Z Y+rk_4oj)դ=#rfdDgb"xoUV |#d֪{՜V_jl7n80.%(6C%ZkkIZʽl`s1d`h7n~0 4(jZPp eZmʃdXvtZ'NmUXMjiEP"OT3V0YU 橪^,OXn,LWnnPa[y4$ZM[ZTAyVccVv}.Ni^7g8,8ƮZ*NJVGq[@BtOɉ'r"<#ឮs22@X/c@/q0c;/*(*"#,8B'7yve&6% DRuzu@nEaUvZ?GÝߝ߫7^iMԬݗvx}kZҥ=.ԷY%p3Ǻxri'Q-UjC:35o/V[r7.ZH#j/sk;PSCVMfZ|4m^[hqƶfU^<.=HS<[n/5}H|*DAXPǂ /ducZsP,[2ȹY(Fe&i[Ԩզ Pm(離S٢&f +̌ ܊-ыU3M +omA-P r0EVl0PT-S&"I X56a*HVI,el[ $$K'IZwEhE5p.r ++IsȖ }[),D0Db׬ޔيMd7Gle5ɺ,&-5MEJ04]T8X3LVRO߷x2s($-Ĭ$sjzCVX$i6"H'ZzmH1OZwP^B҈Mj21% 'Ȑ"B- JY`0KJC͚ lEx&/-˭V^4)381XiġbѪ$e%%Gxe>Gv2x$ՌJnX1[`.KJC͚ OlEt&'-˫V]t[jYf҈Am!+ũ%[%6RU[체4dѬِx5iɋYVrm/OJ J9> +.{^n,h\[=Ffut/[N0ou)o匘Y +n*$-g9K.<ͱ +Ϡ,>)Ѳ +pȬ36ؙ5LExƢQ)Vʹ +`,g +B0[J|A ɢ6B0+ /*=W3 ΜY~mA.K35%`<*9VM-Ste˙:-;t3|'erYEg8ffAu36V4,4GjS +sfΜi3i%dm/9z{q4 ;YDgXљA3}5b`]FU0oL N $k6[>Ej`p "5÷ ,$˨xEZF,280H&zkCZYe Ph|~EZ7ep$!3*5-2IYaYHĖQ\YddU=LJ-׆zK%ׁ l.9u"+{Rf֪_[e²yVoy7"-QkڐVo }3QpXr5acܼ IڍWdotƿ^r59c~ +3ϱhfӀqZM.U\G";&tݝ^wm;<=d.O/},ӣq\^O!RIMƦbt_p, RhNP/ b.o7%a/Qԋlg,"r)ET0o(jcˈ84"rIF$ؿ '"Q\ڮWED-ݥBRW腶rosKCѹ2.iԊse\r lY/9W¥lY\ V@f9ͽ4E);q9W%Y\!#g{Rv +ȭ(/9G%lY< igqs$\]5p w*-n zY8G%esZ_sZȴ-#SۀY7G%lK(7G%fSumsdZnaj ;rW}g9>_([қ:.RQ>hV0%8PR 88@-T/^f퉎NvO-=m^4:2樲^lKWMj. XB7PyU=7nV9tXf~9-*%;Ѫ3}h=@Ȃ4P?".̀U~,}cQݏdz&QM.pj#llŤ)I +1C9kBvUWvː¬0;``&˻UY\5 ߻?cۥL8܌(JXGDb7ϰ @4$IΒ$ܼP+ #,s!\#T[eH}J.T9"%ZUU܌R%Y_)F=Dލ`z5j+zylJu H0-yYpUb +q: +_k ka +^gV-[diDup0miQ"ϜxHFӕ:.Kdm窮@: TN#Kճ#fo[ >bT\,]mW̊X̹f:R%H/S-PMrji}E5c`DNk'J4WG #@")l ?,6ܦ\hi4PYPq іBtC#Λ$RU?abGR +OlI7h1o2lқ~&fygLqMtk[e^ cð/A-*,dװ7 +/:" +iY1"C[f0 +ţX * }g^`s?1839ճhD۲$;V%](,ڭDV77 j* zE ۠E덠%!`777Y阥$w5jVTkDɔ-4d㴒f66G=: Q"x[ƥi;-UD1<[0ؔXbT+(HP&z<"/I{x^A`7,+:퀸O CpJ8 %mm-'H'3xr,h,ƒTT-A}(pܔywb)A_*kE2֚9AzHV:$$pC@0zM0fHWZ՜[K_'1ݎ:uvvCOvK; ( 5W?ǶtT8" ٗ 0c]fl.O6u\$Q1_0MlV0LֽSnr$F(Y:Մ (23Og,&&PQN%ˋй3P -'xPϓ(;#!$ ADL J4& Z*[nhh3`!K~Ƶ`d;=HM@'^3.|Y4Qz[tV\J%Of O4Kkc)g`U'khN+t hH_ +ҋ ijQW&[;HˊZKgIo+tX/u\1[RZNE,kDZMF$:3g.C +& Tm#ϙՖ"Պ>;7AȐ.DOhQS1z 4C_kJ2wyy +`yA2a+bE+{PZaFƥT([=n:NYzQڸ4k7Ӎzr:Wi"2.#2-Krcth:y7[Glwt <@Q;_]Dtb%2hF&Akӯa6$Q)뵢YaY6Item3Ȯp (״#iTKzK5#TbKu}K8Wǽo"y7%4}'8\Fm }/)y}<9ISc9#rmɜkF9}pə>e#^GA|"b?AE֦ݼx?@TcUBRT %AP-n u G@Q#jX?hĨ1: +*5 >o(@jxQ#nT-@ "KMq `7ƖdjұhK{@(~VdJeQL9z$k|J24[2 + 0UYT^C  A=UqUm\2.!(YB2 #{Ug\U6X<!p3iNa J 2;CsPEuNheٝ6' ֚K&fEy>݆?_kDUx~k#ywufܮTwmB]q%X"7N(1- X1:?gFq]I9ekGӭhUKmxVGu]=9;fܬ}bZ@{bю ]n۠s; 656a[ykLXc2G\53Z&a$bTG]|.ΖZ)`hI)[.%zw*A /L2< .$qVϲ7F`_ +eTo;#BD?I -2aF +*FCjek6|A9gEz8NE٢K[WcškB!p4Qj>dz1(&L' +=q5htxׄ0"OgcQ̼iBmpZ<'j$tihd-ns#|8TiJAYiKfES;M;L[ŷ#֍l@FU~7$(>Dw5;V)&7ǪUg GSvC椇xq3_%XFA!1ՔEzogk {L1v@ΑNx$BoVhQ1*)v $!Lf5RΓU2R?LaƉ8=x8ca8^ov1V 796az 0X&i\4Vyh3R˃MuO?iˈ/}gwH69(D6  6L4afg>~[ +HBݙ3@]-?<>6Y@hnI!܆`*es/&epB\쇼霷E’t'`l?}&_mo&7 CPn{ \Pȏ +/@,Hg#~.rA/zTf ClHǤ5Ѳn}.+typſ__PRԿZI_YÞ4C*(,-C%}z^:ĘR;Ę cwڦGOyDDqNʿ`ʬƸ_[o^ޑĜ!3$9h)0fPkSaݝ-zu:Y-Wǽ9^l{{YOpOR7Z>?CUg{1G+c EkF.! {y,@LNߢso>6X?A:D/M%H&B!Fwc=" -Kp Ha"kA_Vwh"OtQſ$Lc+Z~jCSJZd7kMH?l)N-:Тaʆ*G#rҿlO0|Mvїas2Zg6nպf)WFHZO|d;]AԊЏoSA?!:eCL_qq@Q`U /B ! qBN~=, (ŕ^|AY[,xw# A[I\UѨ80(~P@9̞0~3dQ2x AA3,}$ ,_Bw!tز\ h +R~]R t G \nH12D_cN*JP!X*Zjelr#ÇrD0h2eh,3ȨE, +¸hFB,Jiȝi2Ī"yC0\x IH P]/C'|̞C@຦QU&S$HRA@#!$(AQ!0dg)rPنĄHE Qp BL X  dlEͨZ􁳢4\e16%& iF^8LH9N@3;lrѽGCR(h$v $q́#)X "ȁ!Eq6LՇbӇރRsW!n=rM @Bhe L=V;:ҽB^0[^0]q}ũ$1$WysYG_GdU׽oM@J9\kQ~9u1p7ikKI'8kɿw]=`_DLwd HT}1̆?e +ad9| +g\$&c-C6 +"j +maB~[ +m 2/փ̂ `#4_ @Iq?AGnRih +@)/ABDHDdked łEX Nt!Ȳ(@g $ +@X`'`' /Rm N83n.E4 +hAt;K9Cv1M+ +_Ph H@0@#3$G" BA@c;ȆQXOnh +\@SPANkS/, 5t! &D" f&G秀K"L> D hX3i~ 1 JCa`6Ds@D7 +qڃe8f%jOx1(ۃEz9[/n%Je$P\*@t _"j!$ !$J6Ko""Rqq}x"b${Tl?5@`GiH>Naz-Ј2q YIbSĔ^ QtJ`„@4I +$b4T2ajsS aE ߃9sB'FlADN +|*Q¼{&ൔ7u۽v gpy\ +*'R9kF!7/ʽiiՙ׼n].ޗ`tSg? MᲷ۠_jJ"B @Y fr3V 7l_o` 401փd{xZ<q_:,ܦ!P%L +t~@I$/I~y0ܶ:h8, (B\~Q@yu||m E.l'0Z>"ԥ\ہ~K@uX@rv0ZnR2`\9`j ?&WA-/6 ÷'ssEIp<=>7o19r >9X@6uoBeZg)>byGeNfr6-Py,ඳ `P`ܦ14×QXVoB߂2Owq5\m'Bֿ|&[cf׾1Z/Gf'k[̑8j41E$m*ANKF M;jfk#'r[ fo1`w3 &XN!!#Y]t=ўB$ b{]֓tR$ $y!lvpEE ֡Ug5XC_L<[bٛ.w[NmT 9 HGɊA vߣm{chSXhSpIjL?(c"۟l;݉Ă'|–~iȖo}7A4Vbjʠ?/X_'O~Yz{!݅ϖD 6zgy)%ÿBW +(K/DY-:+0N5*@aN/2jpm!$8\)*$(#}?'?[v;`m #& Κ;rOzc^)L@ͷB]-CMaԨ? mEgC *?;xƙU=dXHMRHuzS$f Doy؂;d7qNr#y@.IF b>A}o!p e¯e *8}kuDL߇JMr!rԲoC8 +ot-mԞ,?7/&P"\\Nä2itɢScb'M0._R'Io`ISNXaB'F [Bn.$6b\2lCvJj0^PρS ŧBS'FwdP}qO_ 1p(QmxQw5=#4AR9hhk}fnE~Uf frTD|+=6*Y5 U?^4D  LI}m [dVdZ:2dy<֖$`N̓.v-Vg1ٌa4#\{D emY dY_'a--5Ђ< +TUrpeG]'uە^zA]El(`hDDIօEƠ\O|)7Yo„bZӅwup̨j2s*,}^ >?%X'2A%b=T{O${eR0PpukW a6(],O#qD] s\6u$57U}ߪ eEm,APZЙf+AqC.kWq>B `DNcY[TדyI m5Nm n(HIN[pY42X#y7HS%WfĚ? d֝?ňfHg3*RLlv#D"0Jo+~)hld$N.t^0bqhh*r=L թj!ʲFf/]C!.bQ:rNv< 9ɷMg *4X2YIF[d?ϐ$k-mDҤKx I\ tLn7 ʉ?XI[vaK\OR*aVwt'yGsz-j*vP^ݿ.2 :AwG c"]4>Hj%j:^rjlZ~c%}gX!ȫO|?3%C47(Mo5|{m;xu3euVT 8LP2OWfa"p[tCαt;vB#hU@A&Bꪏ^ f-h]vz7\Nå2Y.%uFn bXc40Z>x-m.l.7IĶVg]wWbmb|Bu=7`ԑjo r{d*i6e5:[RPe 6͸d [HUa fJEU (e p&keVW]zY ሔlSgEp޼ĈEхM"4`N0YǨA zr ~ +E5`}rO0_;zfy4}#6LM2W[>odx҃zz/;Ё?@w+7 57Ĭn0碙]Kt%_\6l2n2ICx\IiLe +t\>Yor`d4=OTIKXx/4Z!c1#\uSDhl%ÓB]0&u׸/^2z|'kk*כ+Ʋ3za>Rpߝz$%v[Ezo~%. SғMؕuue˹[7-LvXZɆ;HOF}_`sfT"|9.?;&D +jKwңeJyBwϙB`RČNW]mtr+i1dcgRYjOk+uAלz^LR+_ѿ11m8HMͧɔixi麸E#5 pMۇ/3rbbVkE,92Hʹ=3Wb#"rdMwtI+Dd=,E&ם9erZ&Kz&h3ڝܰm^=c +XE㶼X}m +&*)ߘ7SCdY۬)/VM׭ȔX.S*̘ϖwSֺ4j_ T,g4;WkT2]7915 +x7vfҝ5==kz>۪7Lեi؏MegkZY2ŪA,4f-Ϙhq,ҩu֖1|ROcYcƚ]K;=tǗDy0/C/_tΐ:鹬ځ˺{l{_v [/r]y)+mʵ\MU6Us\5XoѼ}zMvVSڦ;:_Y9b gkbkiڴc֧|!&~hx.2muqmMc |6kE^lo+T}[%~mkO+n\ Gm^.۶5xdCv&Ą֞Eatz~qURcߦJf-59|iWqe6ww<mTrLM5 W/k}8̗?uЗuq>.oN_s|v9W\"7+A ]ծ<]Y z][s0n%r[wԳ|vg7X܏5ywͩswyذ'I~=pi^hKzcnDx]犗vgxxK-{*G/wV\|"y/ط|͛Ҿ1u =%{˔trDq[QMtU^0$y𑱆cL:D_%KrqSkQW_$El.*ΨRzpzxN,UhGN>*үYv0~6Ǣ_|t˭xoM5un6k<#"vәf KLxg3 +=ZY狟aC~i[mũ)_/즏MFonVR:>#I)TTj +e8?uǻp8g6·UxҌeL4[F|.6f鷋ȶC&ҟhm+D;Gk\?cqg{e)*;_Zck,ߟ*zuuU]wrz %|ռ/di[a2%*iz{&$?Q{u)[t +ҊXRyKjL{IO7bzͷ2~n2ŪכymGYl*td_L9ڟ\7n\MaG,-U_.7zz0o٨nⅤY Q*65M)*9ٖc9N [Y?+Ԫ'ty?*ŎƷI&|XnoїL[E7>wWvjQ㎥V~޷o;pw-wՐ + ]nՈ5[Au}~{_lFW6ުUd~q5hW{,R_7#V-F*x5f?ێT`2xy|쑇Ѵ{t}\3|2u&ç|tOL7=z{u/Xw=bݟ j`ԇWoXm?a]Ut4Ed\[t_}y-# +s5*Ħ!?met̢ٻqGy|67*W\!"k#_=[YvYq7]QDղ5?VK`W1MwNx_[w'8C,|%/2DI_8h,PYm GυlӳOԢNhL+Ec-?fm9IP#-**;+\zB ]UeeY =n^ƶKk3T`GmHNPBsY9)qGo)zmMzۻB =袬k!=\tփxpg\lb?ǃņ,.A?' --\_ +VbpAsݍ:kI/bD]\:#`-p] *wzc4"3 n8h n9O6tg[az: [d7JoaZoJh]ЁHM35oniKg4(6 56דtzP4ɾGmME{1U ,K6pņ`j\ã'TMɩ$F$lg;hw3ٗt 4K0\'"-MhglpD*N]G\O%muk8U"(@uNP7ds4O}iV)۲bXՄ>)o =ݥL%3[@C";O3[#Y,=Rc!qI{R 'ӸʸzNvi0EdMng[5X Uַ ) cW8oH>d9.*}@H1~x1~&JK0T֤'y2 +M߀Kĉ$)"q.FlgWE:"mzRu~>bғwsdK8qW򋭒Xzl.KUW[b̌e"u&&)Q>MkUqܕQ⽌k* ]٧6?yI۱+Xv&3$].Аm=$ioK]5^wʸv9{?0_$kE;~ajM'RkGk[Iޖv M)O2X : }]l/pgOh򊶺R]xKvxhGz}M\~'o~jvum]/daBp$"1ff"Drѳ]J_bew7-km'i_ 5cksnDP8f +ό%ΦohWo|qS3N Zg-⩩ R:QkzZ#0 z{M 5+lkvg?ިG@\b|GX4}ë1WM0*UUiQ02h<1d3 }lcL1M=l{dWI6)@}}Kn%xe6{ μaa#(~;Wisz0wJz=+kJd +:ݮ2Ħ|R u6\=)ß<1:3e"ܚvwMjJP/ڄ~C/$Dծ֕#=fO.uf뵛bH8Q'ߋ$#X>/U 6d-Uɥ A\?ĒTek3r)uӴ@A5^ ]p{y8^e|ro+s7rE +D +0=L,:=5a)܈ 9t݁ 4^{l|3I̞:nd%ZB' =Ⱦ1ʺTʄ`wloe `Fu81m}AVll唶܀(MJBD'.5I +qZ3äMܻ4k S摼_f^ ytc (> 5ifJO. 8S.~*Ȁ-m\$^!#2k{1‘*?%(%%uDjOnϣ#^i=<:$U[\Y8yEJ.gif%HrX,h}t&"D$:*,j:U[ svꬎze s)-Yn9.G‘NPQg2og+&CX-=u.7z,x:IcKFz$S]#i~)*qTw8u-굔MEGaz]nx̞ۤ&̪FaU &5G<on~v rq㲳8%O(. gϨΞQO=h/uj}{w|?{p=0a#F.Wp#6X~(fh8(y1{ؓ5jtć yFڛA6Fa;Q+r2LƓ)X2#WeR1{I.Qa,r )]ѯ=uRo.'3ugzK.[cWƗ}^FMO BόQi~9 2n&ۜ㱶v'汝7]/fE>]q ZlC ta䬾[[j9$q'q@fCQ;J>3#'*qH N0Q{b QZ۴9UK Tcb)$ + yƒa8il-7Xdjq\"whsnoHtz,.\TR3ɇ̐ɯf6ΚS@K9%MD]J@D${}CݎDyQ@28Iu Nɛ}4jK`"Z2a ֑6޺a|6"E'h#d e3R:VN[Hކ$" @*x:4P9H0>IK13``D;W9c$8:ue?3Z0 ~\'Hn>"v^RQUF\Zt.|F”uH.H2!KBkۃjr{f%ن&`^ cL!f^'U0{ka&t1q~墹"B] /$~CD} +Shڤs)mJ΁ڗ}V#F=w;;v8d +Ki29y@.-v" /#U ?BiRU~?X9|Qw4~;;̍%6eJv +3d\ ([ExfǞ\ +Y >ƚ /Sv;WhGaYb[ =1g,쭟 +R0^G⢟՝1_(5.nCᵨL60ʦ-tH&v}xu )UAvhת8m" y5W| o0y[X#4b\$]IB|S(a8' b;ԥu\N/,odXMMDrqaݙs^~f|Ofh9ɾ=<5`ϟhs/imd1@pLEu$ x)y R6푐=q2_5p Jfߑ3醧1Q+:b[2|NK}Pt;LT+QԞK +d6log~/}4jXS(ѾsYqJQ]?"us C) +Yv2C1Jbuflr71gC&W|59nB&x>^knܕCT({cSqP +.3_W?t*HA>͟p#S}BuCy+ MrS1~M;^ܹyU_ -h#o>nePc/P<մXf]ߓ!M8jzXZ5uw1[<~.AuEz +w9/ᬨB5%([5DΈPH3Z#ԂA-OP󞄭>AEkax5Mtd;c@ݬ|iׯTAu]տے +z4fUV jgfjA0r,l +nq5jolubJ^>+U +k͕XvOT,lD"ٜ;5Dn9)jBV=Tkxl9|uFnic"lʉgA@ޗwӊi6I@ҫ~j?mB!!҈8~Y_V5nJrG5 ݺg/J#ZNivyKf~xvi?}ګSگOAjOz;~ +OoRid+|OMVW: <}_"tYO] 4QDf.RhHUp+GtQ?}M锯XFh=&>k ֖=Xl&q-I뀵4gA_epmlɐ$kB۠Y=4_%Cj0|Ԅ )@ЫXE*X+Z*-\5?BRƥõ%ڷZ-"Tx `A o0SwjC5:^&} 2o]*9hNP\C.BAoK-mА%zV3; t0% ' a@!'?aˆ$pC]Z\< I{[kCErs >eP!A+dW@!HFT&4R(?i܋,a/,+DzGS-sxΐK$4^ܕڰdcmtd!y<>>Ï*A=[G<}o A/#8I?fV[CLeDږ<*3DvIk(SԖ|ZK"liXoh~If_7y5c8"^@ir쿯A07BٗS.K= +N\GZe8$PZ9c}Yt$+󾳁SK-KR%u9ʞ\Oerwqb^G՞/YyPKƣLG[џo-K IQ FT|CSvxb0{.[)T0vo +.9f!8€]jπ%xy7Vd!4 ||UU$w ŵ `{;[vm\4/]14 MgY8R,c֙L +6 ėS5a Z31!CO[{V{QpD57{7P9E83sqޛO`(qBoYFiYFi}ݎnwZ8>f9SQu5edVgэa{n/Otή:W?AU1 ;MAĠ~oБkO&+Fju`VF"aYa1o*:Ǽ :yw0]^3k`d(EjYpQ8Dy|i}5Y{L@ `@j@˲yڭ!}jVJZI~o ~sT+(+i#2.[&ӗw$SE9#@_헚AH;(*@"&緋V,Dm$JMg {ߚRVq= Q$ad \ H'&d! ;4W%4}M_߻,8iJ:ZG<yYɇ oV%\FG%QH֔:PKpa;(,IQa$47sKO-F\%O +~>9xHv},NT|F*17-mԠfGFy/i#>kCE(V gjthخDo^}Rl4d7<SyL5*w +5XaSmmtk-"DJ;@< ԗn[DK7誼I}g؃BL?7"$R r(T)hG'K7рRtszn܉A|lnQ.+)|8\CVь'>-V43Rj 7ڨ٧1vE32-8GGa/9щY1ܑ!psz^.E~R?|Gd[)D2S0 aw)4'hH11wF}>+PGzֿa"(Gl;ɭ-娹M$Ƕ;~|0ꤩ%ZG?J (w#ߐMP3biն5E&=gj3,M+v6dip!*^  ұfJ5(9OKTd]F'lxd|Jdϙ }oGu`d|`Jwc(-&g(awB/r+# Ř4ɂ˳9g̪;=vRuPO.,˽vmj핒KvI_0MTm]J`@z>eN$:)z3`~*C-7J/CSWl\Eɶ:*䋦8ZtXJGQEؽF3{ޢ<~67j\Eyq7~T\Ey\âp #3%QRG +И$dH8%Udct*U_LmF&neM$fCYt|}z4ǟM'arE;SO?~If6Zʿ*) + fz^"XVR; r=k=m̹ObmC,ɋEa2RYzPwT y FO/I*OgoRupܸUezPKc6B-'@&)]ErxF9S3Qg^/r޷v㙘GlMqNML%w]xgYO3[[4 /F's8C|ht +SI26 M-2*-95欅} 3uY>~¾!xҾWا3U2\eOMFsU) +t*VYاV&uqTw83hܞϨ>3DI+쓯RUMu}‰gNiQtѬ*y߸O 59wq?iIeUǭ U:Pxpt0682PIWK cu*82afcc*_ +LeB]G=~v4NU/S p4Y)OO/ZR?Bnb? 2 iNYJs\}oq|z'ewNv@`u#/wLSf _ޤ<':'ƽщ%)##ƾQBLFn8VEqS5PQ`zu̿1ȏeRV⠓~ڽڦ:O٨%T}c%M^ _{ԅ[H1X1 qTWƏo_'Gk A9C/:5aTվЋvUߣ[7>`-a0>}{ּH!B7PH>Xo{;mcP|[;)GsV9b'R `t{nJ=C{nqߤ(IkK#<'K#@$~SK 'kJ$έGD>J#ϾJ>tHrIz]Ǖ$"/I-׌fo.-OnVfvYa +_?{½vYꊕެPfXU_75zu4վvlp}AƁyV ?j? pjφ]HtOmx*g'5<\^# w;g%Fv(# ]P9r"䂲T WÚ߆GmI ?!S*m 'ixkz>) KnbVڧ4<\UY*G90ݧpMkp}Y~ z<is>z[nEv5<\in"WOS$p}wY_rG}n{kp_k67m=z&gÏS.G +p}ü zb^k>u;SF>{>vzO enK􆇟d~|ýG8XpL7 ?S7fφleyKgejx^Iyn憇wNYoxXFY]q]++_UK34<0>n2=7<\p?LgUWk*$?9U}Se=ip>GEz'7<\U׼띐pFhx>2!.~+ - R]w7%{/ȭs#VxϾξRR%zrU@)id{0Z=%UxcrCg޾\Wo?F-J+Ʊl\E桷>:ß @ֻxhkyW8{v Uϋ|L=ďerߪ՟}w\ڊdɟ7nS+m}//WX d퍱oV=S~@{wè=Go:94#FG̮jJ"wxwG?\=qoLr OL9;ex8w+ZTLix:xi[W޻j?niuΝz|w͓ _86 oll oEnN߿.7AֵN_SiqK_ ,Py߯x^'i;]IC Vẋ$*?Sȋaĺ ?l4cҏwxSȸ~|hq_$iؠ;,vOmГl^zzؙ_sW;&N~ޏT\M-Af3\;-&8kW/oj[.Kg޾9W_3䩫?ۼK{&iz5xg{J?ICgs7׳1}Ɋxo+ˇ7-3Rn3z܊ fi^ |؋/_vpU" \DjIQP[-]zyi82~" 努.g߽z/_}ёOo{񻠾}=GyO}!^{yRsۙgdl|&zkMQ~?DHXD{ !{e;w<ɴN`{,Pl=׋C_?{T\ y{R~ >hO(`o~p&r.oQ}!~7tHKtǗ_~}mIH w_zr[v$x}WA^s"yĒzwM>:πmL/h +v *+]n ļ cUp_0OQQN2ác4ƥ#瓾̪91޷M>|5ˤ9%pIIzXҌW/1ݻuTםÕ_ܴǾ|i1\>lzIw8׏=6e}8ڌWGM"e/걝]0/SpmbݺktA/:euy7ᮇKpҶ!n)N +nrTzœU&M٤y\:covGRÇ?p!<|kpFp!@o9:"Kyw'.M!ߵP2R,Ն^`>A[w֕^=Pb8yJ<ȣg=i)9clgE&==1s(f}~Z'qB޲u6oyM}$taNgi4]Zf~Y:gݹdTCntKO?O[Q/7ZK3~&q, dNP3m뗞_}lKdBsna?7^0܆՛dܭW08]~ s/)lp-lHq÷i/nUgdTN୳O +}zRN>O7n`neZ7gTv0$gM.}}fb~;nSq#)Y-#Hmq % bIo_n?xu}99rן6䑨̫GOQwl H+bWhqwӐ[qHxz Tzݸw vn*ڇͯ9{Ize¹{WXڿ,#?HWwLׇq\9qN_| yc>SrW''!n~W?gB'K{?]|׷{wݜOYK5/8P{75hk]~gٌuIpGW/:O?zʳ `:ŗ!}}|//:Gc-/Ngyۧu+ Lyn4>_<}̡OK,8Ӗp,Mݜ69["ɜTH;tv* dXNz[gu9vl݅U|䴉);r7j)JS|}uJ_?׹}&y:};<飠J1(vǰ;k9C\A ~F;ŋ_/gn}}7D/rb$"$Q۽\ /^x/~8(8:m>t~rlyzU}꿏E_8^3=W0CG_0jG2DAI:8 Y;7/]+]pޟֻ_^xy/o_>ܵWwJǡg4=<gZm>vFrO %(>-u̿EΉgU8-/ꑍϑv8|@7 wz'> <ǽ}$ɛ,k)Tq<?q-GS(<6)/|9z@ׯ]qko|վL֑=#zÑ?P_[T6._FwM@яWܽFO򇧷~ _:G~q?Gvn0V~of>񧇿=_\{njURjjL=?_uNjRno_ds> gSfy29]u5[+ڍ[f]y9WE8we&3$y11R=RsmSfUyg}}bo~=<sSWjXΊ2.|SVW x׏]ox,-j_w[wnNF iݪK9 " V8O5{M8?6QJD;%~t$>~ke|4/"Ol>|c{)xmlY]wׅ,TAՔ+m\*G/O""==xv ,KY5etLn=4ox*]܌sʧYz[R6.E׺w|1b+?j:vW7وigoW Bao+rZA^s}!ņ#or>$|ŌCڼq?n1=}$Czi^30&&XWK[܇}o^|kϥg,uuهC/w?䑥H˗o_~}W_t3yud7Wt?nuKqM(|'rpF;to:qjNÈʖW]KWϏX@,IɕuquzS@&Cs\//RkEJOq3'6s\foĝ37Ռ~YgaŃe)쐰-Q̳TɃ/y*yx,Uȇ9y*yx y*yZ,U,U,U(Jgi:y`vx<{c֛JuF)A]ڵ<|Xݵޕ}f 9N&i3%ZztF!'>] ]p!u" ҎOOjTMG9}h}#9EQb#ᗘa\Xiv0=q dwkڧǙ˔H{ (_xFJ߻YAi&3tFD/]"敕!4GyPĢÌ~0<cq'3!Ty2+{dBѱK۳Nyۨ>1 + +H>>{c0 :g,15aPAhK8t [ӉbbӇ:!KA>vnGGNz 8 F-t*Q\4WNcJ" Rʵvi48SfR8锲#+P7?/b2Yb%[9W5Iy 'IN$m|D)oӡ唊!BB:yiM! ZYe \NTd?>[])e= ?/E]Zlm?3dJ*^b&YB|$Xc:JjM[n\IrNVirc,&)r;p:ۃJmaպ:@u4?iؐ6~[rc6=Ww}rJy^9).GcjADtS ӒVL(RD,5kɶ_zpe+Zr16sFȔ@E!֑"~hQϏ2}Mi=Ϋ%ոh+*YMHG{]CXw`ͽG'MUfGzdHPMjT$-65 Q^RjjM23ʌf +-N!=jo-m͠2vd["-MV ڼ&5O-CBfd˔E4d0- CS,`6q!B  +сSMBlM%2kӘ}8tT }ZAxPE%cIiafۼ0`o1I(Og 4c:km,=u>;c&t3Ƣv _=I~6a^"(b +t:iaӬN.\S2mfX=]X 7Cfr&SF.3p +/@j2=#"Xf" +gXЁwn,:cvbzݳ1)ꫧ}`h>[<) dE o\1nh~EXrnfתp Z:czS>e?TFQDiW.TY-[UרmJ;+9#]zI"R@Gٻi1F8*NCҎqU qJZ[j)nal! GM,\rAMޢ} ._vӔEuֻX9f 31IA-d;4;i-@ qC~ RoBXeW/==d&*!VOEkxɗQv.I{#7븉Pdu&4a3kәv*LiY2\.4GI 4hҲZ&Adr=[|wjfT&D+?,\1IJ&m&e٤a +΃Ou: \e [4/xs06Mg~gr(4OF'-ƭ̔TkgAG;>W>%M X} k t MOgnW?cY/UؠV?iQ6jEE :T {*f]6>w'Rf 41)y)Q+ gA:ϡab$P$Al;gML@ʄ2M 4SnzIy2%Rч@ qAZ 7csÔʕgIiV_m@s3%Wyust&6t5> #_W] sU= |{Le|LKE&"OƏYJ$i6cٰ` AOa,!%IgqRnf2=Ե>6fW\Z68Z!#Zg\[VdXy[Ҍ=\K|zɩLRr<)dOd*<|1" JWD֑p䶟1ά*@O&?1=#OW=W|!|DөbFEѳiwz6*éCl#,?6Fѷb-ש#)mSF\N$}riLIS&7p |WN#NpX_՟R!c; gW|ٔ"o83&^#PlqӶ٧^[H?]/TU@RjqoL19T 8ōͰa1aGME̩`67È]g<,em!=r5robLdBoF߶A= +z#BM"dU_ aƚW ܫWxF(WvM;}jC_У r(m%hHCMy%q yb`.C|V܁fLg\hR>fa]tT͠F:Y#A,S Ҕ$DXͣԴգDŽ0Uh:^ sH%M l¢flez3bȎPf)Aw01%J9RYaFV-bSc$t(miċlp@ފ)fg D1)[ݭzJPq8) B;A*!Ɣ$˜ e>r\d˔LU!ÉPF-kv2yz؍!^<%څUfj*S"ei#ϣd2|Q^a G$|/Og ~ag_Y7g4\Iޟ!M/~e!(X.02Iړnt"Q^Wy 1<)bCc'B4|!UL&Z@)$AۨMʻ)[Z-i]h!*[i3ΌLIUć*J04ݑG8NB3Q"&L–TlOAvK8)ovz.2U#6.PB71HIȚU,2k]ng_ lQ5o +SO +d(1œKBzWdoȽ;[u8 !cL׃ky̙ǔ@Er(Dq%Z']@ޗ$J ۑ@8B] 8]2GF v~f +閼9S6X`^x % =*EDB|Q:ȀB I#L`B"0yXMjN+d->ݒPt^_OF')XHq+/> +56!k,032%Sa -ӂqEF e( +JYW(ِ}l-^m]O)θWTZȴLUxHFpvG#?sEKBҺ"TV)5,=(+.f 2c"º]˅|e[3vI,!+%wp!b<&);";.lNF2j觽4JsUU ЄT.ݤqffJ޵]>qZ>k{%,$}5q>-E$?(-uR$巟.wj9 Arάx. #εGl;Ya7G_B,9Le8EdC_ z ZR6B 7,+\-ۄh?y(S󘒦$MN +͗: iB=S B!;:o@EmA?RhO]3)WɁC m*[ q?V8k %1AJFJExwoEPqffP.ȒZaNF2ՈliFWl dUc:Cd.w)Ùht%JNӇ+R=ew2jQm` ^&+T}n/ i䁄*rA1r=mR^~LNfwpWL,Gtq0ڱ[=nBQ%$Ipc.z9 3u9?"*s"m؅:+NP-<ˡmM_1 ijI}@LEhN(]]ܼ B -SN2%!tf\gl U{aEJ XXe* :.@E8QGC3S҂ +&'3%S]м4eNYxB&2& BnCd!^[5cY/(>$9w-h5 P_L.1HABT7|jC"u;h({ND\)j/WC wĢUdLR]N!^kQW޿EB7iMwr>?oY'U}_xJЗZa)B0o.60ZIʆZCsYYTQ.hMBӨ0^HN.FB~dj ! BUu)a(gJJ|h6Z5$0%T-lt!liZTBX,ZSh#AM(˹Q_ްǝjB"83&V΃ȨcEKU]5b[5XAtMbg]yːZV64P}+HNM>JmF=rË`DF*AV Xa4&agZ Qx&%#dL։SsEqEa^+DR&ɠfi:0 ^t4re%n83V*9צ5]uRzh=+ Cmvō/f(_i›z ]Kǽ汗(UZvlIQ Q&|C'c!` Hbs>'#0IL2*fSGf`j/)͛:i )U3iJ#?(-D3C^TeE3LT mhygL֋T 919(A)WSx|OX9l +1fMb4Ilg`I/۲w +{PUd4j U +e+Ǚ1uR>D,`R +SAd#$X 48R3D2rE?w  tR">̗ H31{Ox\!"nu@|gdT=jYoX#+w2ʆ(jiIu\(q$B1 $i'^Y/U}8m#*t;%Q"2OHP¦9̘ZʻרA +%Ԧw`I8ȶ3!L{,#m[M3c2k)ck_HD|.U2EFwڂrr%HA2D5!CP*/ +$rLg\\7Zs4Yͨb|TcyWVWK]G8<+ D&b3UAlaHw쉊r(#CWݾ\a3d^rhr:Sr%%9dj@ i!$HC!C"+d~@Ss`@q:"C tc`s2DR3(c+%ũhbecY#T)/[' k1o,Gp21IO ƛKzih#'v8Nە +RՀ;YdG3BcALC\M13v#P]lXo[+٘tzaEQV\om`|1

    ?ZLef3.f\ZL%;zxuMdm,ɠ>,̉.!Jb4ut&\/3%qʉ +3H)fR\%NZngC)I)QXi>Qa4Ldbd]KA/A m[+AK8Ssi!$6#rv 3fZq1B6<\pq ]^=LWRϣg .Z_1)h$ +.ƖQVtH(cDc0-t[ u4y =r٬yшyR(ZPrđ2/ +RX=[j- o@NWSk6Ū.=XF'řdG!n@jY]rg]A!S}~3_ SIsK6Gd5:aQA +]a1Xɜ |V AgDXvfJŮ >85c1QͣD7 :l}aH=uͧbi:1m;c `"ݔm@iY@W !q"$tWmhWeL"[T"Tiוt/@u;&5W.y-.<9ljۅlfG}l-\5B(@K Vꊾ8dzOcVIη(gH]F#OKU9\Z+oK5;V$`L!"rЕ"3,4i^1\֊T<T=nvd3C}v![kbi*INI@%Bah +"T/na蔙t5<_8egTw6Pw+:ǚ]9 K-}m(5JB8C +g 4c6BI +[gN9uWIsmbm #g;hr陬Hz"{N3v4'ȄBr0BRoPYU㦀SI9kLIU?s䒉,RIˑ1t)e_xpht&Ӷ(K/dтa59b#i@َ;ɀjg:$ƙ1JD+@nW']Zu^ ]7g^c;KtcxWNX[61ڥ]K#'n{(++dL)NIy'J(Iͻ(T+@@ke"CbWUܮϘ7ЌL%^NA#؇Xv=Z ~NJh7 ؆{qȵqj=O[]IݔZaMf8QC/U/(+R:Nq@Hn@Ḷt{+ŵ[I[vMeLEwbP<Ղz[_튕Af>ka;&m  "s۪VyKlH[R%vNEN$b 29wtcJm5yq//ᇠiHll|})8$}b1H?<{e2@X=0;;be+ 9djq_mjt +LJvqjk&Փ|\8/3:v2ʢRkNRrm薸 QeʞVRjb)IL̿al ۂ@j5DeƵ9+i&(!:mZ*muڊrt=dq$db$\Q&&^,.K`Q%`ҲV4H|( +* ҄] +JK՚e:$&'3%Sy)!⠵5F.(h 0E|cqlAjr;Wkl+=PKfs^"9~Dȅ[4< +QTfOg\gDd,(sf^u#N4474} (P\| AZDt4$rڧHE+1%O}TiU#qa(I 6/4upе4{-*$iW@FTD>$DѶp,n%]HTybj +(ZsRd,MnL(*GMk#v&L4C+fGkMHzsTϻ'3!Sҥ^դ&bw肨AZq(M‹Γ*U}jSn9Z6A= Yt*QNOK!hoi[;lSSz6]G +ڞ c^]VaO YLHS #y~ŮIh$bQAt]R9T7D< V3="m ]\Ճ52.LzâʕcxLb"XǙ1)v=t:p_~|>2" _XSl`pSKM2=)iэF A·Z$˘iU.@D$l컙9ђ5MP8I՟ 6g.ӄK!9\`>Jj !5'U;3m-k +$_= k'0%C}ͥkxѨwe҇Xۂ]f&mWE^ tGZ*dī1 'DI*ZA5}KBo ڐf/ig_l.t<捱z"ϐy*epseRDG!gMlh}!7 mW}Ij:Kz<'afLfR*ݲh $K!`/A֎ -\'/ow\5<ֈR9CUdJbv2*?&J:At$ zo_֭Hm孧d `̑/[yZ +WD[5ɠQ:KԸ +DvJє! nht&Śz8w O6` A ?l)|t^g#:VԪIjWt@5XM2`\gVdR͢M cl))P.g@>E e"BN#fr*k*Cg QaieSZh5!6ΠC#!=: Cϙ1w)m +E7Y2f(Uq%Ql~sOwMKye7 +$b*}=(,IUg<a.);[v0*l6Ķ쩿`7>ʥK}EfؑdsPW"k bAPS^ .EXJy:gkcqs Xك3^PWeC3.Mê(3"qW{tQUޡ9OP3ХQ$K% t.T:OW7Wl찡,^!AZG'늕l?O:BgPz@;w,3' ȗdLhH@1CB1Ϭqs,&vlnrg +iisrlWN ) d.<ʍܨsXF]/w ҪKvY`!GWBZ LAX&K# t'pX23c6SboΩS=E|cg1#NGPfuVp@ +i幎7qCո[F˃̘ȔD1&A.U7#:^7 Ԧ[`KÊg;GiW[);`VrVv;qLkN"ӹO%˭;3J'U+%ZCpEM I'mhr6SBaI*w4sXx R#!q1'89""rR`0n03&3!T}HèBd+. j'g($*ߌ04 +3& +l# *ۜLHT$G* (YcзL؃d'Q>Mb- Q\!#ZȔ4ElRC-[mׇl]Z>B`Sdm9靍7^ƪpR]$fz&SUѹ"h A!t\(-]AqF+> jaHAy` ]qn@i6B352\C VyA6Jm + [ǑT' ȘFq]6#t]#̘Ƅ8eJ \dP(#8-jmi4fY׀6kLITDh`D뢮Pbiֆ[5(IXKm2dI遦g3)U}nQ91c(# $ޚ>ڲ=Fr[;r@5OKүis2%S[Yİ nhx;kE; xZg\aꢟ'"vc4u#$W{9OBo󌐖ѷp c߼w0'GTU|Z_L”v]TF(QuI| z&ժavt1bK] r(3^*wΊbM\dNBF]YʄHEtT0(X0-hQwH,)O s4[Q v0{>k9sY/S}Uݺ@kuJ$ZbMk6YBWrC,{~&ݳY/TѮ$X"Yw2USJ#l욃Fv.F=ºY`22b2SRuP']jO+P|nRvX~8Ib9/4ZHmU^N 9OUOx:zw=kU-̄@=m(oFW77ӷl + "ކ/bgy #'5jߧj:ͷx3dw`rճHXx)hn-QdQ]?hւ/g&{,ȶ e{WO3c6bմ=d]wB+j%G;K-~%\סRbv "7mhj.%ӮO:i hZ_Hzgj)dM t;dM.r;1[PmԚ!Torɬ +w^L.5븼u)$}6FK>P :hY뮘&֣k;ibYsY/S!X6 +EnP5"->m.8CgFv4i5ƊIۭqN n2M5#TB€Q R +,bȽZ%4$<^)RF5gH?9k=WRsLQu6 (" +.1M!Q,.:og AK1Ztde >*U#F`@7"˘Hy,DE+y 4Yt'FQp ZBվ Ғ~a%:,8gLT?ut +Rۇ>dHfk}.Mbl=l(gCkefz&aQt<8q`䴒tXJh {5P/F7,whm7q58CDm#(5v#%Q}'X1D֋SW9ZF6SiGoA12Z] 4\|1?n盨!1%O̗B3 :E5d'2k5U)'f,9LOdJ}C#["|c\\]'F5VFԶ [G.T#>M 2Ԇ@k53)j!v!aHȽes5ߌܑck -yd\qz)LQW_Kxܢ2ej G~ Nv]hv2p+fr&ũ3\*xZMczhoSgEGߩFK80ۡ~W>4Չy6jl)&P;F& iG6%ztbAk$Z"/l%o RN͉tbN}@3^2piL#E%hZ+b?8hm DثvJ+?3&1%M{@S*/u_4$6296p :#eqI7[ie`IJ])Q$yvX-|͢(nw7y.am}v2 +wJˣ(ZxĭPEUl4?.J/n̘ʔLUxT7>tu%{VyGW$+3·-D@TY!yMfR*>J(ev! hv2wݑX5E 4/ZC1i$FS̚ZJ-naITI3Yёx%U +!d̘ɄDR ]W P2U; $ږfe.m@Va'u,4<V +1Ch[ ĦoNYhDk83&3!Tzj&E;&]Ɉ˜6;l3+B(X(YhtT]qC d"%J%ZZGLV ZtY33ƘȔ܋y [l!}b(4=)]5AaҋA4L 85hjmzwؒ1ڑh)0H Eb~{z?fŏ^vg dHRAf qBxάh{`At?!{Ygd?=L7կECdF?]5t' P'+ۢ"I}:lK=;8Q vr(o1vc0J^Ň yk҇ (O@0W +lf, d>ŐMBS2 ;T-8=>?DE(U:}8VA,3 `'L/xtÒ +V&kzE]<{b%D{y_Sx{򑔀E-G>c+deI4q+IJ=}KehD)¡-˺6aP/Tbx +RhgN_χ]8E/ct,;7 H\hϊL\D߭=kB{ˆ/7 +˴:F!{-R4h͖/ZǴj,GKM&Ypꐦ JĬni{hh lm9BXkD(K~ zHb RQFJG& ~UQ-2jPW ~,ᡸ+y !U<>W +sȭ<*f#6(MX3ȍCq^3!6V#Q,u $ ]`JB8KKm^ 5Q[\P!NRAIܪ45sx$8euX`!é;ŀNG# +IȆi.]Kck>`p&V0 Th +'`*Hv4-Cx/K9VƜ(Ě!Gt%DB x 6plm{#}TQ +Iס9 @='K!2 +mc)H :h:DUQh=j`jUe8aб#ihqbcF 6Bhv +N4AIЭ+'YjfB,bFA/FAUoҠ-F[B-hvPdѲ~:iuY,DGh,yleyQ[yL05׶&z3E/"Dk;:HAͮq0XiEPAcj35vz!;XVnԥGY~DNBppVj5{pyB6\#ycϏwS2\V+B)FbwI IoiYs>ϔR %zD耣@U.BI<.5I^S $"-Hif|~ -?^5SQ0\)edjҊg##X]%yl>艤E})]q9F C`CS#G/)Pƀa R×.ӐuO3s&G *!ޱ!ѮP39Z/g8/&jh#;zM&ӷʆH/IbO:|+V>ݛ 794Bio2Eʜ$# +Q kmE՘3LUk:gadLtaшi +#7i|F^03~f_kjEOO"-^;td `அP{=cnVtNՁ# @+ qm!"RKI:LF)F$@ю_>bZY,]ިTܼoBJϦ>wuoAJ x*@xVA@[Uc=d>\s=K4$ Ff`ڸ5\!oU<41P]\hö^$E -fb2]vɟ@z6FFL>=z&DS~q0rl8XeTT0HoP"?R!:4/r݇n>!Ⱥ"#7!0[< <7RMBgP@szx}Xʉc@h_AoIσ?AǍla (L0 rMW@kݢF!Q B Uwl]x(`+U5T WeU " +wV\D CCiF@?z9u|/$̩xŦdWеcSMug!`Ӝ,/u4K5"?/?!*t>&~/[ҥ[ўd1O +QKUR:*]g:%%f-J~pЋdnE^9\9FGmp t5e9 ]#v6t>KA ^_ecA𒖇eW =,ӭkQ"AI1"u dbwZSP`N~ux2@Ȑ@BW`/ ".AIpٸƧlJ-nR;B``;}-g\&Z0<a:W7²/p cgDUGZ(k{V(C@iyqih:/&FFx⸎n}?=ͦi9Bpu!ÌN6ؤ*W5>8 Hm Vh;",U q֔Ta C!( B(ӽ%2.]Wg`Obe K>}n#j4oVs: @=U2 % B'EoڠicR8C ˽9uw:o/' +IX̨3|HF(iz\Á~Ρei T`ٷtR2dUU1dTJ#E%aF>Wӧ4!Hqt;,A cq 2b6ʄ]ԄJ ez:G2<1c@RzFihTzpњR6,: -M(/*2i/A0pк['%*qPZDz8+C%;Pí J4kغG@rgsU;P 2t1W.Cdkz0x.XZ2ahl R$D+2h׸*c[RLFܱ&@5IT|)=:{?]EZPPmƥ _j\ˉ%E.PM9KH_.Xr!bL ,-܈2o[U W I9 A aEk`*Yc(H" +jؠZp UdA/B>_ĆWv׈\9hgU*/rGAud9~Tjye~eE+D[ab|d6Vt@qd +/0JA鎆pI@x.;Έ+@: +K: uMFΑo9 +oo1c4+YeJH̋ uDn[5")ġZkBlx"YՉ: )U)q FkT6"W2>EʈWa;EQ\u-S4愾OEMLw@d#JC + Z7$S3bPFv3jD %?!6,{Y@%4 RrM=I*@l7Zth0ǘtj^t*\xs׸umBk4 Da-s*JD BusS@ 0jN XN໑[hi7%0Dzp5#!j^U j׊ZSbj1aJ(ϷIm+#İ"%ܘޏCUHLwB-%,DCKEes2BhlOG>\|#rJ¦>83+8U#%WL7B"zZ8]dBN}=[YQ +uz9uzO_lB+@c iL։m˽/:LE`}\ OΤV gPM#j@ԫтFT_w_zRBvølg@|d9Krjh3n{z!=7R%ȴ5a@ WЪݧEk +e %O4]-DD޶\$Z K?jo~-'*´m; H Q!m`0ꔵฅ ]XUorB(6ª⣈3t HƝLkKW;/HK +-([3,o.Ao5dTU[LYoh ~:]*QvkaG8}+gL䣍!diHxa>=cdt{D( +j\t0~mwPC*po%*  @㏠S[66PQAr#m~n&j6 = r&tiw~׊Ύ3mYޘu-W{L6L2|8j͖3)J_ xm.5"0ݙe|U&$h9qx?!8|zW2 eNn%Ӷ 1m&z6Beͨ}A$*v͝N3j2ɨOPAc՟uQfPtL(-fH#W02h?5,ENC0!U1L\(`bhheLt"+LQHED\!.ב +Q5Fծ<sg2D 7tÐ*AaN oRJ\:)S:,񽳁ENT}9_l!KaNmbI݈(iDij&#P bT}뒞H%%;4$$R=۵V_RDLc m=LZɐZbu&ŦP Cb +R] [ڴxL29%(}̿A˖;u馀lDxMV/bePl5,%AGd',<"uXn&Tӭ`&4:[ж q͚|w&'9V> V0òG5@zJP*2 VF)RZ4D=@8n3d-Q5 ] {H(͗$fݺ =̀BnmDG7K2ĉ4 iTޱz*d`x +E}n2&^h R[I]tHFJFj>88&]`"5Bn֥ndbJ٤^֖FۑeDUcER~b+s%w!za.2e;$l#a\2@:ţT x @-mߌ]8;ch^P@hc+CjjcK/9 e6s,A +1@\%,i͒RGDN>R Jp4p/VkNUU8gFd?Ss7 l׃հ I@e[X2¥Ì'U +h$ }K O#R})g + OT~\peg=AܧZ`zy}B6sF1dn};@j霐ocӀz㾦n4v4ZkQg=֧g>6T[ww/)>4C%>$B2&397D +endstream endobj 60 0 obj <>stream +0ZT^Ԣ 7JymB#~@> f6_n5H_. xt}CJ#8 n馲s^#⚤ad-[zQ+C9hK:'a.$:< r;t"gnм91 0(uAȸF)7(=e{o^#39ٔ R} Q,#zT!.$wڇ"&թ ?sr6$Zݔ=wkM|$rF?##)9s |,[=Js+o &}?) Sx䵎>9Ȳ f%qLd`Ԝ~Nμ-E<quGL[=V'Q>qyQ>.V˯hf[^YRA*-FxsҔIzIT]ֻ:DgmoJb$Xn&u+ӂl|܋u)Fb-Ž/YFUiDN)`1HWWڱ;.DYPv JwiYvPGygm!iMȘåPڸm|A h ::  @&@}ί2Djᓪ@no^מ1GdTa6Pd"QUdAz3B@"5]E41á0'7xnԏHHR9 %2MJ< YWg`ҁ3'| +O-O_^]΄Z*\X=,X: [ԍc6b.%Uw&_\Ŕ84䎹R  7ZU +'?,ْ$XSQ?-Ɏx(R&ᖰk|V?,9=khxӇ:ERb*AJpU*I>:(ƪ 'Je,_#vS Q 6!6/K]r[DU؄Y}K= DWlPj[52%71TTέ`B0'ʾlf[Dc& :BVy/u -b ݉os rANrr1PHj16E$(I/%or?fPOŚa~vr` +o*Ybb%bL\z`D1bK2~bTfS(rc'=qI8 .ϸgozeiFFU!>r!ۮe 99$ɒ)H?E;HϦІh̆<ÉxOce.*g­J wg!97hą:K-F6-2u?O9XS(f(BIWؓ24Yw_mA"{ Ġ&%8?Y0s_Ej(IP@ w 8~a8NN:5Bɞ"ޓH͕(gShk 5ͼKY:8Ԋ}mr5 ؟,<.i.%cH,Ay9}G޵v7$ ظO+ܳ'[)@7ހi%biY׵06w)>ULaTv=ry})5bPrDƀ`oI\mr$N="`^SN "q1aDn?P|@߆*њdAތ0\^e)U{7eKЭi/P&b@ZpmyqsiSeweBDžf8YVȑTQ<Ne!ƲxlscUB[t +K%ӵ +Br{\l,vq޵󉙅㶙_U_DˤH?b3y_tX<ۨ"$v\ iG2?f8Dɦ+A3-!tZ=JcqRHpYR8G"J8`Gx'!1_e[!)͑ӳ* ph|%ᖶR5Ї Sg$e?P{CWafWEd"= 8UN:Q)95m@jdB |l\R½@d_ +,vJϧ"6X;cKlDH6c xiJ&1ߕLN@/(!tu+ ˕VZqd vOgP\Vk!N(젇"o r^ u/ HĄ̬ FvC6:3tqqL:՗2||D̛D$2ꎎa&Ľ?,b+ZBLC{0 T?,R6?$4O7?.|;GIf8}s ;9NXIb#'ɐPr{Hyi2',)4@^}{,:x8" xsݷgwRIN."bXEܔb3Kʼn=T'c-;%6<ޖ ))~iƴ .⯚K&TH"w_aRIhT-!_=2qRմ)kYR GFqw7A2^z1[X% L>vlgPf77#ٹJyo}c(c^AUag0GF1Α b]B 6WQBCϻ\epuPr`vr 9097ocv kM0^st Ϧ Gu!6 ' .QxZP>SW_4KN)1Y5c^ʩua9^vv~^߾P1L)H쯴6r)߬ W8{iy_]l j!P(dc΃])M=>̑*hNhi&g/TB=ȴ;_6awy?څ&@Q΋^3zMsM@m!9$:QX%n cEɔwB($@?ݰh@Ɨj| +vWbE7۾eCdbcQU +Fgװ|ec*Gl0J#o{7wGd@YMG>y{`6.f^2xήǺ.-o)cH5za+qHF as5%F O $=v~Q#[Q&ElL6AxN$= R0쌞`ahf,Y\Vfl  i<Ů< j uL i\;ƿ9B{g&1#'q/$ qTLcc (c5bgc/{ F/p5VqP+1l_y𭾍M5lxPB' Ls$l $Ŷ?z\ݧU|J[@Vj6=&J"ԕЪy5;WٰJˣ>,3Two(&D7˶?7G9m=N8ǹVϛQ4V +ڦ9j$m}^8{=~m5 +½DV'P+I}ҼՓ,ALԛ<`>֟M"AQE򊮨x4w^}cpfsDŒgPnNNڬSWhD{e"nTJ }큪  r%.qx>$Orw+6C9~g|o}XPɎ7fr: p:D3i6\axR8p?z^}vwZpK=ގs Ditb?/ cB6'@gm<rCtޞy7 cb51Z@3%7;ɫՓmdx";o-.nR12VQ?\K \|Tn.[kVY>i 8Qn0`*xrLQU!^(%z +QPB.=Az0p=zJy + [h7Fͣvw0I H] j_qAn\D|9TFO'`=&ߗ1I!i?>aƦ ,[q8 M0fn'Gu7ӑƵ\[ +]Z(t"(D>@@f)1#:@ X)x́YMĶH-HqΉAb;t&#,zRre纉e㼥=(u"! !qE 5!t]^$JԮs -Zsڵ -f4%հ6 +D@|x"Ӏ|zT՚8c)uBc2gᖘ{qۂ>|k)bA:5 &i_}k2"R.@<+ci՘.T2Hq~Y# j +YQ{( \gj-f]ڃtjU۳˯{M#+ ֮B=ГwSm gN%r[?;~m<'lѨ/I5păTu2HLǠ~E/h'd@4t*N3V,OU[o61DJ:JuZ">y!a@cX r)żkk + “Mxtħd'Nv(52x·a MD!Ks7H ңЊ"vXMH9 [UQF{b]~=onS~Ҕ?R(vXPфu gUt;\m +ɿ&f˅r%^^=Vpbm{3kbdS=ŷNbT9jc5(uc8B}d "9Vi8Dj,giH =B66:' ^Ջ Sx*c,pLRT5F؆i8 AU&:{,9 L3*Ew'?툸c/cȄD"+rw t[wbZ[p؟ȚQXٖb3Wz΁Z @COPC0{b-9'z5ڡ'1굻ivUiQ XB4ٟǻDZgCȩZ+36!w`t=5;v 5XlV`$eۓl5tW!g)*N +lD+[5sa(pHBԘt<4A13f~8SvA4Ʈe4o-[!C8BJG+eʽI_w mr+&m&ۚq&xu. :ۥk>BqW5칢&1H$7<ʶw1:x|n[Lj9o fBƎW~1xQ9JA2(r2Gw5N9l3gq5tkIᶎX?[r[;d:C ǑCrU6z 5*sϻ+dË +d0w8gX9ނM5Nr/QT#(JJ( h@ +yK@ 6q |nF󽦡9!ΘK# V'sr^Ɛfe ȁC׽s9gj'c}}I$[a35+aA㲍Ljsf[_w8l04T1KQp61%?C8A;xtR~ KسfQ~ 261VjjZn.w.m,S|AQFGu [ŢDj@5N;{а;ƍg,ay~%NF[DgVݜz9i-,c'&7eg)!:nn8cbV8թõs_P?HR⏫3M}C7[[bqڞ!r3ُ/yFbb cN@Ğ;g;je+U @{<4D)3,N*$ޏq2 i QY~[4~o]+x¦ mj=NC@a>j<zka*Գo$cDP&|Y5 1XUN@ڱ, ]rVf%2I9!쐐 D'Pp#T"Ħcg%B=9)rC.l0:ڤ\BLXRm桩"IW9\Kqf4FL%(:no7_)~cOfFZl ~ѲPY%ypkM+9s[!<c'aHFݯa9xUqp7ZDV5[[@$kU=f`7&I@q6QX/H +6H +b@OZ)V.H~$-ބ yerO*u.Y3cj/u@O|lL{~!bI ƫ Ķ%?d?ozp( SQӕEOd*χoRWKI@tCm)$cLWb yR;` }sԣT8v{B @ +͘-s%(dk+FQ7| o E9g4Cr<dL"$r3Ӣ8aNu> QNlc; hZlzU5S-lashy8zʨ24Np\,jcv +-1@Qܝ ~D<+i xM1<'`"Ԁ9o 9=%OY$R#摞A)HHY@?J4DZW=Md%XLѻB="9EnTξz@{4]*u5KH *YIag1h_KM'HHn.; H0%pvMJ,. Y-),zC4uBu$=dLE`a_Ld:v"dȵ,3c-4+vµS Z_ْ]b]ƙ̓,LThsֶ,<7Km%,U!P* +>Ao\e:\ 6H=þ 'w!ޱcuEVgdWkޮQq:|;%[#mM5%*G LvU$Ҳ? pz,nֳ&^w_9D0bn9D7;ΛЉ IU +qLH{۰ɼJTy?zZJ}0ل[l>j$iS@AHz!m=eDsyX_} q2<|2Υ@\BzĖay]c#) < f#ivg4YoobfH[7;PnŸ8#4_ T YDq9ws24?u̦Tͺ1T>Ji֒A>R m6݇2b" SC@uHig3 4GnԪ`:H?ȋPRm r^Ϩ,^ p so@e3e9C1y|v$f7 +T05{&GCtObH39:E^ ]/"Qc"w(ZO¾YQ8,Ѭ1D<55H O$<Upo``_zB*M'6`8{/9VjY"xB˓sZ9uiOΌm7~;4K~onmahJh۰L(G9 + h~EJDI2̒TAw[+^IHXF8@Q+\ ?K C0UqCp`aeXdeq*{{ـoW?\[tw0튑fZSTB;5nΛ7`&:;׼xng2Iwɛq?%$OCשx@ƪ3V<$R6;t +Pq{oql A7>I%m:)ϧv%ƃH\C^׷u@cP3e.սę_iLsy$}2zjUN/'IٳTZL&tF!rkuϒHhz+ܤg̠7w$ܛ$(jƓTwQē!6΃$@4ٔ{E DYuq`xCb;{|$-Yٺ媅՞*.Wg;o*kAxW $2kL2}'(W^IUp( R \~QNN.\O=_Zx'IP*ކ KXYȼOTkͼ4P(c// O,'Lhn|T N p[u/G`?s[[hovL~r*V5b bBP?~l&3El VFlŔ³;h9Y=3'Ӻ Ç(Z) Y=37!zsxN2D#[ +YdR[_SM o(R.H}5[} Xl1hސ`tqT;l`<4F3:wU7m!&(KLK,f$~ |ˈFȗ ռF4#Qkq{݋)ٲ`ZEmoQvHeK|ϸ# +1ֵ-iL"X4%]Z3>P1^[S ("˜&r[/:H-%:#cxAwA[Xy}X#7plz~LOhFHr*1eJ΢{-ַs4pϣucSp#U'bi|}5YM% y)G;:l>}b(R_',ۭbrR*f<'}ȟ\s8O#'1EpƝ@5U+ih9ʎW0mUL{tsG#%kci٧6+ _#p,L"s^`a_%]J*! +KRk#X[ _a_/ꎭ13E}`ȲnИaիൃ[{_DJH׈ nw\'aY"tm3Vb' v9I,$%aKf h#A$کŒ_MvLfWRf`ErW;Kxav AG5u`jz4/S Eh^: kH[!Bz!LSc؍b}bi&\RmjG~DsX9:;t&Ccۧ53so1kspf*y> +G"!OG?4~E/f<+c)E?'9vxqc;)Fm*R,_ +s4J?#[&gA jzzۄU8qB\T +׉(C=?'({nl9wynJk4KU*Ic^:5DWvҴT5n2v.-Ɏv~RSi we@X`:Fkh`|όe)f.P:0B +5r!,њ*Gֲ'U9caG d'80Χf'bm4 +`Gug8[r]潳vs'zhDT`7)Ͳh:N7}V؞Cb + +G~g k|hN hnrەL, RGd\l JiqL`[%uz +suAxraҶ`~/C%: +79_Atl'pFN܃QC + !sޓ r:5o +oaov&ТUZ)SAyF8 9T=JCI`ޤJ6_'h+RӮxP}/+%/lB&';t3eP" ^?n qM(D +zߊ(c! Sg!cCߩ,X {@DߞxT{gI vZ`ʫ9?%z4HAհǪpd/h`b|8 ߮=K]zANj`fäѱt{,{b5'옘\7wxؖhN 6BJWluqsN*]Kc&&Q.r͞4;47\ݻ7I1&B̶ +jM 2 LM<؋R|s/ ';\i3 ,[6Nx(<˵jE=Zʄbހ"D*K~r|ӠTd%؞qeR;>{Xx{ Qi9&I:#eF%~c +v|@(5aX?ve%x-\4'пtN:ip6r#wI~ Y[@!{> .)PЄ "t;aNocON%)M==_R˚ 3HWVOUc/Gc:&hX8,k_MۣAYwEd7#dIlHJO˘SZɣCtրdp{H;('pI^7kq=1'}lL"s֪Dkq"0?aFuWp~͋cHfW!Tޭy;VQ94Y# zvrC䉻ïe.;*xYC/2a)㈦߅p(}[k.Byo?o0FnNdwt7H{:\ 6&+ r&f.ޮ,ןluet/JAسj4(-Ibb=6_O.DnyBDGjP; bLJ/ hkE;߈y|./=+CwBR0PH⥈y c@` + +F{"ckoVRl+LwsXWOxZjʹ5.H'w33=\e{jlWyVklF|:wPȉsc]:4/˱]fvrp۸>fo|r$=}!v@VW +6+ʉ>2 Li}|%mp<.3M"H6Ř )'ܳWc'}Vu!iƒzGk#o2F +6wƿq}}pc>zzByGPHiܖ !RV!čep0ħ +̂DKNIhJZ,Ǝ/ !ծDj_R{YԴԘ&;k +hr%LpŪ ȆH"*h<0r!Lм56#լ! 9{k[cW';!cqt?#3\& sP K B0^JUTuvC yWjE udtGnMΥ)=z;u)L 5e!97wDCY{ G٢M0w1򗀥[3 +K"]]1'QE0VuQ8f\ʜєي鰪Ġ#*V:{ja>J?E`dNMKIы@!M>Pxe ;,up V 1(BenB4 Hh磙2<[REW M}m;)]|Lz0 ߐi )zB=Z5vnXG$M-=1 +!y5b<Ϯ@Zk(ε`ߒ?gpcO:k\m6||>I#ZSR,cŗ́H&x{[HWMǂ$=rrS +"'|ؐddO<܃Y pIos Ty::˺*"=N"F\R:0Xr,]4 +6ht%t+ S:BrPQtd ?]wp'Ͱ1GI{t'*?KKY7;a $}H9?\ HHl1`G/6< TĢ͹܆:p 7l-7H|]зϽӏfzf~cB~Px +1d8̻!Z0X "Y6{4 ++ŕ#W#a cjVW@\iGYN/W5B R{>MU\;Ν<(Ü-(W͚4pN|a_|>ۨʢV.OcPQ +ƞT"&7sl-kǁF"ÂMUI >{WÖmz$7 rͦAGisf{=,|AaQ`|f33 +B=x!ޕ,;ᨱ'QrSe/jy񻇏 }`~7w?jUugglع99K}lXN3Nܷò|孷@&Jq=p>3Q+6/bݽLȯx{0H :LѤOJ.JOxʡ\kmD 5$8gBIᱟ e7dKw3G} +M7ػ.l-}M|z mG+ +Y cҖyp׀B[/y)0^qT G+]/L%ȜVuDN f,a19ztAt;϶r|ٗ9N2[ J&{ųdb/kt5&tBn1hwb6=c"-e:У]9G.;T=dX5j4N)}w0ȘvxAbEl4eb8|-, +X`ǝH D0[N:BuM$ nmvrmNN`C (vf>\L^ztH1x. HvIŸk))X <{(Ñ = + ^_}E:1I,cW?MWIc'r8po$#Ԋ$sxp@A@m?Y}R} s2 RjOa2h1ˊ5TCH +OTٱ{A>FtBj9=`nYCHJo=UC0gOH*A (pF81H:I$ Q8,_Ѕ,ȓc2/hͳh%8 CJu&+>̺À쁸7~mDCeo~1ӌ+÷AB[7/#7_,+$Xϴd O{g]ok!NU#zUt F#6\RBH,!4;s"ֻJd{p6'`lC$Ԏ:fs9/ܭqDF^QW^bO*Upq+L霢f?-=ri*֛d}';23VCo)OUn{+ 'GT3ckWwɶl<|K ƺxqZzMyF`Q([44;z\d7zq_ ocJ59To"0TYtVpM8%j,ޏ4[%PҒp +m7$Nc0dL{/,5E9Jm&{T|)`,R?5Fr@;ZpT QAD8￘0 L`EPH-Y>TL&-ഡȼ.d偶fq6 (vH % vh! -]vz<naˁ7F+%f׾;ֿjAKNŔq 鷆#;w3 '<]#>IE' IzQ#QVFOl=f4+ϾϐCh% %R(PC'D\$at-I$,?! =bt0IGxM>nۻh#MꜾyrd^M׳MKJw)-9AwM\Hx4|kyj ɫeӀ $Uc #zav)1D଒c#INK%;=s"o޿Y~\:ٻ' bH;Λd"OS=YV@rŅ뤷W:=ɽk ob]$hN&؄%C ۾{0x}/r}. @8y:SXX7f f^oɂ^ȉᵲA%òSD:?Cm\Je2ww3Q;.@GIR&NO-']OP~1ֻ9mvRu+F{ nKF]iTcU!e8I2Dv «GK}}t ԻB⦢E! =Gb2#X}rj`7ќHHb= %\M˕ƍ׭^K;U[W|S< \4!V +)j$W[tv[cmm#16Un8?Yun͍qiLj7j AmCŎb|c3XCN1Ö-n[=.CXK fR(&;n@x!x%b2 }݁=8ɑx2< 3i Л."M%L Lto4aY赡<"[K܆;h!R©M-yq*J@S(fYK ׷EV4yR%эsҧB>7\k g`9OF{8m. Hjzbb +B\iM;moEL,*QAJTeX%#}/&`2-K=kgarGRwWT4lreVcg+,thoe#"ChR`eyH| jqW;^Ϥ Ҍ\>~ 'Ƞ%^xdMȎ)[\ _f$"e#qcTh[ـfyh }Яv!R54WE~x=Ćω=P xCOBu]c 0WGiKd +9)V(0 +?-ȗSmu jfQˁPWD=`5p+g,n';2?RSh|%Lsy9b*Kjh-j@:AuMDLYz8 E5rԟ6 ا.>̼B k矂%ȸq-iYs:/{4}ku Iӱ#X"?XsϷ[VoֆKWJi w(GL&% 7T5 :.TReOXi[6Hwl6-뺖+f `B*QUZՔ\PrJĨɀ`Po{2]mo~$|*{` Mb^5D =R@\@5XV/4=dwpʄI-gZ,Mk "}*{.@ՋϨ@ idBGbRxpNߝ9V AlT~WUiZyY>g mlϜUb,GҷG"{~&UQ6T\^kb -k>Ũ2S3C6忾I[`+(uέyQH@;ԆqW.\Omg:a3EJz<#>qK[sVhх'(I +T7H*E [% oYR|x'.% H @:5^B {_!nOep|SdOrI oW{#eOeZ?^JHwEV +2GFDBv 5L݅+}ݳ|jo Pּ +"LRLܓ}Y'K߽1.^ Y?CQ[7 Jхsx(c`޶7}Aq?Lx~qO1w}XOdC"{LK`FIB~pB!`'@r>2T<ɌË`m˺G2 e+O^Iz ¢C2!>!e!4~MսDzԃ qG)Rbݻa*u"W`ĎI%&T;!]:Jb$_KO&јl~AFZsPք$ !jP15sBn;ðکM+][8ҹ{̽V22sFd +Z%{H^2@cg%d6d[ͱd\|SUDcs =6;2Aw`4 +zl L$;4`Kk(!,p'e׃C})m=>*IybiiL&S/UB<_>7Bz?w&ūkRd^;sY CJrI&M +U{0N<1G~kUVs20tE#H"H\5DLȋc[l9,NX7x*s1}t&xcMZۢJfn q(6{x,䒛b%"}쐬k6ݟ +AiR?cG=۰ݘ8n$#X鹥,$Ml"Lh!pG-6H=j`3 jsga(a35$gt`!f_]hゐH8O<[c p8 iYa=ѐƵe=ɹ }@5]_}4cIª\@UPx{քXs?lR{y@d7+`_r݈ooH]ca8ɿ1U>~BS6uU(NXq?ʐ,ezSkwa =G[Vg:b rPMݏ'ޮ+C= ׅYZStΉ$u +9瓖~v2&u=$J(?5kzfiȶ%8h(^_ڷ<ҫN0VLN 8x ZmᛵE5V?:Wv9U꯴on@7!2!S'EGh-p"iM?E)UJw8W'L.k4y}*~_B\;NUx'<!]C +[]7N㑉e!4|s4hj鼾n`C](XJ[>nF8|e/BTH^꿠 ]J7E8 xkz k\a}]FĹ狻 +ւEy ـ10Qx,,T;9,F6fzNU/=qQ=~sW=TSM xJ{hB n.HoS)ZHf7L&B +Gɋd2_ċs&8&om ~NJZ38g;7nWPIf?Fe-">R8~PS Pޘ|{&t䥈imcz -Ml5]@HT ™t1fU *IM5qn_ 0c>LT Emdӎn1RE UiMzqԾq@x? ,7N@.KVthXӉފ5P!a],L&}9plQ|]ˀOajBis병vrKb3pbFywwMI%g~j +lam@k"zqs7ujVBIc l 5 +䳥~]TpO%U/&$He-`}AhIbyboՠzNl`m3k_!߇e_ <+'cnckciksp` O0B87m& ?!0S߄y>!\dvDiycÔm*$ ZҾgk`&!4h}a͹\Ƈfu!o4'ƨo3? +K|TK@[1^8ꘝѤQ&QH./oaX77 njSOГUaBc86*{&L@5^w"\ + kg_qqA\P|9e<(ڍ=f{F5*(菀ghnAc&ticVw~pwS(]`;ʂoΫ'IQ:CHf)1=_Gpf X8y^H-HqnAbΛ\^&#z[ygÉeR5=s5H}"!ڃbb͋ \עU%7]]{쏃cI]I5S4 Bt}d48)(c1޾=gF>иyACrZ%4SSG wl uf.*&lƒTu0awS^åZ=// DMLe*ӐԵS=Qkb2ޥ@ۢf{ YT{&AJv,kWɻEC޹%62q +Ҩ]Ir:pL@UGuP3H c:0p_N N' rHUfRҫV&.?["W9zEH)c>V~SR_Vxr nbSyW׮2Ql眄.I>Ӆn;qjd1 q=sZ?k> =+!߄,`ܳ(YD{zTr5cDMHLQ?jkX(z+8y`¹21?un-8iS4wƎ;12)tY1i5њwlz1o<-ʉ Zf=Lpbcv+Ԙ?+P~nuEμ !"& /\;k d +;%YtGurR#+pp}7D z071 htWI;b6Qq2!:*~} v[B$k؟ȚdYtQz.[@cQ%fB}v{BrBף邃nna6ӍT:C!m{)RHes +.!j Q 1YMT + Ofۘa>_۱m3E]B(PkZL7">n.QPǵi2|"f;Q᪕SAN^#zU.+&mث>Vo,t3 9Alh`d|-! Ao^J١ES +cJHm{)xmc1J7>;o&Ʈ)׺~18_=<(Qy͸FgDC zf#D=Pb2*{_ rޔ |Y' +d,g6<x)+fg$aLG~Z*XwAyi H:ˑDJl"[_Ur#4 H?mA^E:Cg +ױwV90Cvn?ڍ<| 9/\_7RKXջ+d*N, zwBg׍[MS߂8r.\%s_) +op | QlE츅\JmD|j8{N3>j5; z؉2`shflmGFsV9ujǯvm, 'I@ Rϫ?*ѢG34&xᤦknD'vSpuSOJ?1߼AJȎcƨ~V.Hqh=`dV_ _v'qƺ8jMmmXa$"x7VS(%؊E3 g|;Fg44&nQ[O2xfnуSCM暐1Ys O(pR6r&-m'؟~7 6)GNPBm}Yv-ٻ!4"{wp~!NC2SQ"vAiWY 5Vŕ4$yfp6-g, |-9 >eB6sX@'`ƪ^<fsrGs~ $0pjGA L5G̓R~QAl4wy@9! \M1HL-v,R˂|Af:I ө D@`<^\"j*#h/B>A)AuDZnqE;YmBjذec*7'G cԇ"$ECsPE]97_WTpt=V orl6ciFv:$7P1{l!Eq92K႗FW80ts>\<% $ bH5Z-OG,׸Αeﶌ`Sfݷ{k3~ j| #avqwiQ lx eՄ$!$Tnj?{ + 0Oȓ۹=6wCKf3㠩f;;Tc]㇈FG>u +$e^_ib4mt}HJz-T#|&ҭeSjƓ⛺TWKԀt#nQ)v$ LÞyR}4.ЇGww@R~w E9)4\K3V.ȣ@ު@L{4J&k<+ +?tlrѴ3Uhz]ODWJD-Yoh<0b\sP:#~ :_Q[â[#{L$WL 6rّA1B/ R*9=Y|D=5H<I}_-Tu83%(f!?bxS)Y),}"ԯW|=*-yT! B?BF~Ca/ ΧT:1Qhn&E pO GA! ^/t5+;A~I,?H~Uz-4 D:P$ ?m&.(JlلhAV6!N >b>~ա7V,?.e轝0j0C#u} +ܮ,C-+S6TVͳ2'ͰϤH# lGn BɜEnX/u5{낈cf*!$-{p-C g5%5{7 j4>Jlh^RJrnlj*" yNmC>DN5) `~kĿ7&--^f)$ӪA\Rp bb;!"ޢs̭Ϲci5ռnddvK({]Y:t^@ÝP( 9UÑ H|-}d*>Nu9a3pθUp]'pPALސ9 Ifw0i'CNX))Dy Xph~0 =sѼI =7QM - +BֳBOrD+ ^4/rμ;!/a0oJ6/f3\>΢\ x#XQz5NyL_D<ַ5'QV[)Tz!iDݎ!)Ck}5A%,z]p@(+f: C`r8)տ3ՠ,=yؓ-H@ÿoR_eؒ}&m kXRh7D~y10Zb+Yt$o5%1Y8?([b>#`h7՘X9iŵ\Œv %{`o)&>hr>.X$*j]MfKZUp#p9<hhrP5Pq f}\%Jł63A BwTٷ6Q4oejr3zK@dvL"(ƾ`(؜(kzR2GJGQ\~z)U?DCm&`.RHTbNty fӂ)?4R C*{.b[ Ň+_=KOv 礖 g &Pg!cV%; |3+q4&f,b›$.Vdӈ Z?8H[ZSaDB]7ZMy7hF[;%.;b`#qqin#nP ms^ 9?l +7צCGٿ|Mge}qh= 焘4U{"O y=n'rmJ|g +ԋITH<$ ŋqCQy$N>c0#{\0([ɝ.m]LO?19-XJp3Z  +h׿?98?$p_5}Du+!ֲ&"dI?˗=7[o;7GWG:8:)8n8]M K%WamUɲ*nJb{Up6 y+ +,a͘k͞!NT$Y+ɜ~@&h=#,6\IW؍ok <-(A:āAs%-ā 1x0#@t}8kN Lī^l ֻe)7TZ?kXD\ǥH\2xjZSO) Ej裪fADt*̰vZcwE=lyU3+w_.)j?M{0 Ȕc%HN(.pUIRkQ_r?V>ҵ1{M[Ob Ҡ,h!C.a@)׭&^M*  u9ߙ,32$/߱(W,cB OhXַ&s}?gm!{았ݵh2rD^?ox>oʋ7/},m6|^LߧدyRbh[^,_7+M=ŗAu6Q{V6y#m}˪k׷.@:b@Za +A6c +$1@Z4dqdp9 ++0˕m>4W=ɍ +!rۅzm,u?x`eYu_B.v\:|R#:8*Oy}5%XoJmܡ~׹ -^6^Xޜ{-J9FŖ%Ez{Oz/Zz/:oگ[ߚ/9 /_(x(#',_0o85/x9>)Dۍpӷ|oԥTﴰwL|Թ4w¯_1$,Q6>0G3PjE~g~%־~g"_3xRi/3wU9'Y9x +᫒⭪#i3<ިE~5y!Xy%|Saf2+;A Y ;+W   =ߐ}Wѷɽ۽P"4~EQXjNB1FxBB{lLOMMF]aUNB6]NM ]REJ%NnBBF@<^Gxa¯?h?7~i_(YZ|sx֦ ߐo#/K^c/5,',/]ޘ|yWs}oO}o9's7w>>_^ +u&zo* צZ?]({T ATzS;;>a^쫁[onno^}u{ax9o]><{\xp%u5ؔkhcX'ֈ/\ߙ5c[_0_9j~fAo80WuW wv_}eӾ0W5U'_M{r~aB1 {No-_G~e_|¿[0+y3X5ICWw߭_"h=]‹ob#^Oɱx"Vk>ǻa!/rG?y.巑._Sa^˼yv.4E΋wq@/B^ +:$0_ޅ6~"*{՛lw![/~ A"U*ڋh)m޾g}{a-:0/*#QUx2iE\܏D/w)$R|Kr<|z-lmho'QObHz&{$h_^O`,N`wl0 Bp_$ޓ"{Ob_8|brby9}'7.uHoւZo/չrpP$>k.RpF JRt@7~"$ 7NP/N7D뇱j er]F " V3o}{< ZP|t.HD@=͏)GR>me?xP>>7^M/(W3 +(CPI!@&"buJ#Jk:78sSٸRr0a*YXkr!EɄ_jTH +a2I&(kujX55ߑ&U耈nϊ~J\hb;T>'ꇂH`s k8.4R%d *L *LN~@F*sv_!@pa:ĭrʲN/5N|"\]PO $ ir˺o]R\=:,1D3ΟL4'ɸC{ @nUٸ´N* I~aMD }t`*Fԭ?\ou% +Di@ +>|ľLp\_٩ .%Qւ$~{cqA@&|8+m|@]0UyR[  %ksM]&{vсbR#Bn)NunHfZOeJ3΋غ b#oȕAT^k:ˁC@"f5-tL +eRbD-aߦ}Xx#sOh7z;NEwt evSz\E˷nrn9&ؚ39O0t7d?ֆ@Hb;3@[ +Y[?h)m&H> z +D!.1 RW75@Z j0 sC%ΠN}yQeKɕ邨/`LHbě~xKeꜺ> *%C-V6ѨC!&q| +ZH~W$ti.׊G*[c+~収 *I6\Na}nCy?:`tjm{5eЁgCmܑ3?g 0+E*\j"'ղMZXEAbm+Po+/ه5ئsFKfd)c8)OM`[WRDĔ&)φWoDްnw8@ +U˷,a^ QcaCTSH:1ff#sBaϚK_ʳ1蒂n:2!VXFz)hTިNO$R̀=ncw绔hn腥u*ݻs7> V2T%KUǹy \cɼr]tfji;hUTQ=ۀ|x1/?cRQ$FsM%3 +\'zTTi(_)!tWܠp決B IX'K/scutY۱*Ѳ0 h($MghhA 滄 ,_5~wT,ơd@eUf xG1`Vva!@pZZB2R֭f]`:j<l 6[g g%ELU\V{)-&63ڮ}f4]Þ΍*KTTA[]ԙ'xjZA2ʉZRYBćGUE5E/&5Yq|d贇䤃߇|u<(-z2 D1ȵMosoA~'y?iaq$xA-6CꦂcłU٥"m'H0kI< I 7!ВWz: +r.mbasuupuk2`tUr՘OO%Zii֒1#HM +߬Ë0G%x^pT(`rzqKYۊ?DYF!h%>8 }.q>)!D,@GЭ :HFjXϥbÍވ?Tu hYQ@jdjQ£WT`$Vϯ~>lc͙ + DQR +^-KVR]s_75_TQj*#qcgZ} %a ݺGB#Zl S- Yˮ,{ +2!|q'*JtvQuEEfm"IOh".:=֞h t?n0k9جʝ?ixb,X3"נBB{tvCX{VUyɮDYUC|E$)4[ +Jeݒ{bēzU96c1MacVE/fkQx FiPѧ%8 r~Z _E[h%\ 5fd$ )Q;mh$c|D*1 R"ez" ':>[E(}( BE軇BUTwcvB+VlI2v7[m$OT8_]ozG[3⬹zllƍV!#%%fXE<暆s=zw^&~SR*k{'ױ!U%Js.4?=`sz0?z>řY !282GA}~WT;,@Ңc'I( Rp;/% %ׁm5s\Qbd$h2 E\`wRLE+` 8ImQσf%J +1sl>2LFJ6T [4g@NwGX(FsZxӜ|QKn;qW]|N W 39G62#AZ_{:io偌CRoHpEbVRmW>{>2vE䥀5[fIHdTȓS'IԷYLd6Lփ7_ܡbu q2 aotd_RrLnBh[vb\ug]["7Fs\ =L.E.Ut >ĺ'~}ڶNbgyz@\I*I%!/![ޠO +)c)|wچ θtyʗݣA՜u\b/~cH*^B-}(Pwō5>?󰮔ٸwjD7dN mwz=֠$<Tm^o\urax)={@Juv !hvb[)3mʴ:%I< T +x݀R}/ +!w:Ѩ5w2.U ޿Zqo@^6͞+o*&<ڭݖq]/_b>o '?fVZAHק~U3D*[wAPw=>,.ʢ]X"U*J6Ƈj{zfsKY~`G[ yO8J:Z̨FW Hxz!-v t5t&c]J|37x!cȂ U:J.M+IYA؜xDHr mx>?Pa:B_VwKD運x͏V; Of4mσt+R/W7vs㄄X*kܟ0hQ}'q?32;.eu=?TeG$Htg 4a(fLM#{ >-D2" +nHkIy[ g؛ᩀd6}qRYݫDg1wk.=Y|ݹUR$dH)l=V J4U amoP٫@v!>Q>A#8^TPrPD3 zmNppAł b<}]O^ -9NA- 4!) +f1@&ι@jrufpAK5Ǒ  Q#@U%IV Rv@qbj=C*Kƌxyħݐ~z.n#rZ>Lf3`jQPPUU!Xg.&x!N@3FH Gx'r0\kݠ6C$K0FYR'Z d~Xkc&tѥ{ DҗwƐ '63E 4Ԃ(0Dh%CrphXsIHfVFcҝ`7 mɢpn&.@eq{7p9H*TE YI[At0t#+s7 WΠռmQ'Jv2]@τD.vAy';T ✰Rz2df8z>dL<V>Hp jl{ NX 44_@}N[aw$VP=|^q󀒔ua@w>mz'@bl$'M &Ʋ kHvrn\qظ Hw.f耨|[@CvGvk&ǁ'e ՜m!&{[P`"CBY2[Bޖ{,)_q^ J, hvY08K4%G+ ;Wc=rbl,ܳ}\y;ut͡oӉ- +bM|{(,\ĵ_ko,*W +)[OdO6u@S ;Zr&` / I*mw Q6毃G"4-q>fL{*,vmx[ۺv|B-ud7򹒬uo\H%6 -T + dz˚mi:=R2䏞Ę]_'y\i(وЛKGPg:Aq[V~L׮eIX<}U@ PG<6THfAuB<@#vmiA$7ڨކ>?59ۆIr*UOS[Pz@d6`4^z`d4Zw֘tItv I 1&TF#Oc_qV-p5,SIsA~NB HD76Y^gk& Nu.0hj|̆"J .J1MY#6;sgLPQiSa D+X$9MY֒ PBM*228G$~o00' y%ED{ a # o@(BG49O|=&_?Ib=nHb/_Hw[tgxT+ݨ z`~ʟ˞tд4k,Jzp@4tB_y؆&1r*(V %?H7Pp©JrcO!ΑBf&PLfk+3FUt#2'c7|J] +dk֖bGX@K!/nu"*51߈ʁ(sMx>B}z;: Hu CTUj~kipU'$0Zw(bDz\^ylHf5jv{Y_Xg\ Yc+*vL{:MY>~|TS4^nH1{#]!TiCA/}i2ZHh^$. BzDf#b%ً@4*% " + JūfdԍQ( ."{6HG5CaՙqqԆipR=P~|,L!C#J?TΌdH۷< $Qt܏iS@#4;/FX" +e:'XXDFtTJzhI?ˑH6܀oN/0Zc.eñN\d O&< 2Tl P%fBg]k@7]@VS{XC >?.:: GBqYi`4_G; ͔bW4n^ 83Ya]ZQ;U$]`@n,uܭrp,uQu;"Rl.UF#wGF`*SN둝JrVs'f!7 dx-T(MOAl]N;6j|GN78V4 P2 *P:r:*=TuY:]'vcO=ZPAuq`O ȢばF̀Tg-i!p|:gv|Hb T؝П DDqB u5Mn*chQA-C =ֳy-AA2:!'}MS4Jlj{nwnN(Rkl^ (kӉA>,ehS,ݍєgY{19~OF?P.; Cȶ~[:] 1|諾 Ͻ|2 i[46d Q>Ց5 Bʱ G_I; ]"<&IZ p;'*BQ& +PYiV P .Ho\;+@ph%@+kdۈ!Hd>>?[\M/{(ۑ^Ԥ()De5)Dq=`R<{1ʱ'ߠ:!m 71^~"qkNsE{^B*I|'@w\4br lgZ ; r̉Bm3"~v!_SrOc oUeNфrf6QBkƿT+T(ƚly U &L%/Od5 7zWoG6¹rAwS ]?n`f^- OF+T ﺁHbfSN$>eǐ~\~h-R>&LGvԪlp YjmN{47tBﱞ6 4ݕfƳ] . ]vHr %F|Q)M0Tqĥ )Oz>nd!).LtKbҫ&ηxwq ˌ28pR +(d\;[wL pൾl1c2*6mj7Idtʵz`Ҩ)RL0-p]j5[OJ>F[ =?rJX$[E|9ƝlѠFxm_I9D~k?pXmDCZcƒ:E>_I  Z("ȶްoAJ=9HUPD +/h;r*J7d.Ot N4kaYR-GEbZ_taq|۰ C8/o@ž*X?Յ hoZM)f};)9%,R"؎J^Zk]r@zofL/ Hd.OKM ;C4*)rݿ$Ȟն*ߟJ_9tIz~g`$Tيi3A['J}Y_7~; +o"z9idI(.r`SCh +Ig:5O/ +1+G, w+he2\7ebIQX!+8.΄3@C YB +$CTj/n`&Й øh̿H]j`@ƹ<2ں~s@ilMak|M33&rjKI.4h')0X?JjrJև%Y7Uw$" WDOIה Yx7f:~V4'j)ÿxYoO+_w߈׋@8׿(8>@j'_|H'om:+F=9Iδ"Ax5N6ie )+:ߊp:{Ȏ@pX׿Tn JAAMlM I +bPbk5_䙮hA#ZLPL8R;`]F X:^~g5U𦽴g0xG 4k礇$;@{ O #vA6%ؙW,ɶr}6Vs šDa~t@ bǟf!3+p%yB +Fl7i䊷!-@SV;afgAym6F# %V/Ԅ Hy_3`PCW!I-)S+%Y_B!p<$"JIHK|mhR*bEɉ@ sp;o%Z@ g`c'Mn\=Vxq'LI6VHI`\YàQ(Yr֝ӥ"^YE.gx}_u`XD 3n$Mhٜ/[ {100-u4ms+[*&lDHs2HLʁ#I e17ZGw}8Ep%T +m|e&1N.p% ݦ.]'D݄D7I_JG4QuNnPƆ8$]i-l j:YB!DAQ;0dǕ;dj7֍`CD ,6l, D>OR5k$$;F5dD +L d ew+UW  VFP Q}# nB /{#ہAc 0VQ=XLuGhCDg L anc,KǍ2tE!>cT28@ uJBAUSn`FY6yF)2`lmoJ"њ|98 + $]w,EPpNpĝ!@PEU-ג<fA*'Q Rǽ90,oRB=_PhMlH0aCr:B -LXCK@=Jh>bC$Z,RIiP@k}1?LJ)1#E'[ΊP.nܴ76$5Wʲb@j *:+lTN*;$ +dDd=ں jog{aQ۔g7'X [ f.uRvqH=k!A.kG5S8@B2\w0Qn. :Rae! + +Ys~wGвV6CLun=5Zr1P;JJE{AT9 +"iXrj#֗qq$TRT?6۳JYpv-a'D +yI +VȚ IwecC 80N\zrؾP 0n}$QvdꂒFmw@4'3g"3#ϓMrzU* _+bj;X"&1Fنp@X!#TVPhTvY5;RK:*lXZ@$qHåQR26w4uY-# Ⱥ_g*)ޱm[8aeQCBbوH ߁$+8yyo,8 lȡ RGeC(?8ކV[#(Qţm)R3eFR}<CgfWR$FKFS #NɒMNODA  +[&ӊEa׆#ŪxaĆY hnJ\e4#IUX yTS⎅ L Ņ)XyMʆh )@ҋkѰ1?iqz攌V0RUHad'Y.-kd +<-SA"^xT|7u Bhbv-a]͑@֠DEU?x':o+%<ڪ^u9F E`e4̟ܗ  `M! 'Hb~Eݶ=:F;I;. }@yNu@aAiXǧ#%FIw$%3q\H<\(b>ZU k@Br KB@&nьND>%$rS* !$C'Ysd 1n2e'X +tt,@!}8:Y+y`/H$%A4\1Hc-h97@PhG襚4΃p!n2v t +$q 6 \%2-XGm4R1@_y~MX/碋k^(Hj;0zRPgR7'WK^{(zx 9`úy +9" *N@}loD}Cs|Ga\ 1@zW VJ?q$0I;8'vld ,pkC䪋c$@4g5mt E~^;moaޙ1fS-exH(CU (g[5CcUlWe936lw=E:@q-OؐoF9ٻAzfq+Q7teA +3n̚(M*y%c\6\P?2jm?܀k֏Ae/E#7ib3TƵD!PhU@֎ ;@Ƃ4@+ ɥ )Cklq@VvD +4~M<_v*t%4 d\*6NTJ vW, I%FgV@ +g(ékw5}ֿRn6Zcwqg-\^1\m@q-PE :nuahE|Woy- ?ɡA83X[ӚyJ[M&1t*Do4'3Ǽ:_VS=7 NܔQA `=ܘ8y8<,&iK[7n`UCrHc6ɬb>z8fdzr䱡ij<7fђ \6Dr["ԁ8YXPq,ԠpNZ%'US cduM)Ս&0mRyA0f^pzJ;-pT5SF1AUyHa8\@u{=-#iNF+,w=v2|=qG}vpUh%s͊LAzJѥ~r2:LԅԻOE!E@ƓLL"mN³-i5%. {x)09g i:wن<6HZ>-:Ɔ؃5lh%F&9yj ?!:e*]!>]Lm06~G=O*B[-h0|#%&yt(?Щ*i V/L55顨|qУ.2X,/XV8 +ҘLơ@GnwCS͙Ilł_+jޤYp+ +4P]GՄN1"爀M0 &fmlR{pDiǾG!mz{% 4.UUygRk`Uc@rc`D 99$ Đ+{OQ\i XiIKQKQmƁ_n4(B9 1}}yX-S * L+8ֺ(${jz ( + 4!Br ֌5P킽6Zf^ F(a +%<$ +7EGwhEꖮ*Gi|ʃnmd@L6yCJ +t hiv8_M~ ysIn- ˛`?WsWڡaA:IJ[=>+LWRoOE҉+<3,ihc^8y"g=hJ˅=#٨L{L0( 塋۸H~7oo=?5fQKMZo /dFhUi#)QP+l0%Ga޻@¾gxs$;1/cCC$ luRH|4)ڍ6OGAGB )VikP@hv'\ӈ)Tj>K[X +d@-7H c2oJ%+~LpzM<6d9v>"H2_]#r7=qC8R&YūZb ~py +bCH4 +`[FYiQ8M8uyJ%}|t'Tg{FE?BLnގKkP:1n2ߗr7"}.:9q;` )P +"9bH4ҁ(VldJ2S0 +WbMV n$`T2$UDSw[t ʆ h@*37=bonz)DcL9 =2@9[rM?33:sHaړ'q^xapN)#a\W8֒AX~șK7HvuL5\)wQO(Im!fk FSQit&Q:dd_!gl.$_N;*bAퟶ ٩bkw7yI kIʅ%y^Hz." vCxCG)@/9QgvaFzڰHXdžAOӇX!A{^(!Y`ݑX7'rp0N|nuR;XpT #sHe؀Gj3kB|@=z,PbKh$샞glԦ\0*l恘%&Z|`~b1FM*Eݶ;7\v:Tigʗb 㙰!Dp+VFj'xP^Q䪎 ++(?M'Ʊ'Hy6$jEp}}DQ( +g#-ycX_X 4{"RkM(nA0p3 et=Y)p#,TκcI+7@pt[,nEf\7kR#!ikLO$'P4ؽF`3sRADPӆg~TwyV M +H%Ra\ ˗1]<"Cg7\gR7"ݔ]@w 5,kEbZTNҖ"?*5E%uғOZn?1"bnCsǂ~. ͬt^[D" Z<ߚ~p"{GN%@3x^RMhzym.1km & $f-q$]t75s"}Y*]eaߌ={G&33{?, +3iO۩3h mƁW@.t>p'F#m (y^0N3ِȓ>bb3hl۹tм\jbo`AgAѽXr,6<1<+ >0C;șF7&tIljQTSҏۼup_mQ%}m7Qܪ.;<`vm]k='):݂<`~_+.y%0u?pIw@\gH۠#gckujh|9>z!\­\}3 883ߔ;0{*@_ +hS'6m2ᎆL]W!8)|ZSz>Fye$iT:>/#{v4k6psIz6e{Z{d *+)̪9'DVtEkx8deN1*Zwk59C)gb |!uH}ik9n܌HAMcII͂@')IXhk1Xqp5e;VRcvt3 +zEd_?|hEHCҒ8|@?7#wAAXf2z귎y mZ਑~n3:1In[lbE\FƦq*:+mY9&; EWWd:sѶbZT&8vT"*3kO,Vk*]GgjXZ dWFGY͂7>ެ6јHQ|s3(LT3w9o +umZdwBg,1e)QSo¡ x$cӌ\Y*7H +8!o-T~#[GV3](CU?<䫤rH v:U,Ti-!NXǫ%RfyKlyY-/+^r*P^3RP^B̍UVrJ KrC!85 ]!.%\%̬ÃHI)8Ν(gl88 +`&fc,ړdյ0ւ$WJ? $3ߍ)!nGQbf(.kCpDO0 #s5Ze?o yu pCzYU6|J溌bź~Z9BܻW8uɬ$Z9{]Ox8/?87J@uo ,mhBFneFL1[e)7J{Y\=Zb3L:P6[Ŭi" I*WIc**i%Vo!ěP>"T6)#'V.Ե!HKtܾGK߳/fjP[#(Σ1ȍѱT߬w!őo"W>DDWKo*F $97D8kr'j$&`ȴs>ypf{ H l;̏; )nY`@&"< F9BxRP=](XT6ڙmH'.Biߊ|pÄ,m:jFe#͒6<9d Rϓ8[RĚ N7`8f +LP NZO &kò!8:? +yu-}˜\ ::/Lw4ܮk?7~t79PcB¯rdWVuM! ?2Պl.Jj4&@OAL^%??\<y?,##W~whn(p?ݝXw |&ÀX Hv +Hy(ve )'tȂ=-u BxK/@p:hR!/\]=22ލs]ba n_gF$Qδ0VmpTEPs\wB QCJ63dGIp.;#A;@)R𴚾DPК)B^+[4k-qG"=Axi_'83iH5.֙} XWh>gpSS6]DLT:ޡARK{uI^4B:mE@ J +Ht8@*Jr";h>sA9 kNmwD7aMEWha#\Kdҩ@1AHI쬃DF8D +WDӃN> hjm(`o,]IZ[֧ ,DHM-@A%[= [qT1}َL; "'W-45|a!Pm~8{lD@eT +] J09P3 `L +?,?j@Y9F˞m)`9ЃkQDEg"̼֩ xOɶ P @d*HY IE3O dw<:J[`um *,K{\D)ovIrzE۸rkO!dbưBd7FU LdziC98;.~֝E lr:xIw7n#jjo2ñ߁O :`;.ӓEwNΙ ],{ΰoEmow|. +:Kp;fݾuzr$x7o +- ;DF"S|c֭}ڟS dƤ;WH" R ބ[K&oSꈙ1?!6'&y ؊y1\3վW MÄc`ztkǩJEnAv'aX8ɍ8Y\%~&]}֩`x++ED~N^0CPjpq\G" +2vX&]R_e!3J5JY踛c@G"6٩~w\1kQѼ#vk*-gH:5_e2Ԓ]4{ jJju?a ][R Cgcf; +pK8gЂ@[]P֎60Xim%ZBPqīZ{fF;SԻ 0:.2\+l)CD%LK >Sdtd".kQc,xQи"Cf'Ќ5⡓e-q)!OxoGh8rUXӧ![-Wq`wegWx1G^T3#-K&BPrZ˲aZ\>#vťF.WyN9k +V_^8 hnܑl[؆xf,:cU} Z®ạ5mGDu96Qj ,)] ԓYhebXewvE+T\lSpe*82d檿R_CG +>It =eŸ[Xi!3h"alpW:3g +#&e?V%dԦ |gJjng!D MI}A\/%a~_#ǠޣvǸ|xL| " +Fb3:Z Լ!*#!J|;yI YM5>ƱA*#n)c-n[nvU~aDjS"O"\nx"Zq\43{.9rgM829T=lÞU}QGsc,8k\x|^S~B:^;$( L=G5drb4S9wbds >w %F=~4OھzԙhHEmpo$J1p ~< L]m۾cq$Ȕ%We +. ^!7z=71Й74|pWm|]}!/GuLq~NuBs GLڼN H/ ν<=YRlt٨!Fj Q$v5[ǦOs*ox'!tKH~4;  vˁnPZC̣{QiA;ߥ)@&JT1)kGlӷUع7jrR8?3*Imr2u,bD֞M3Hu@4cv>&,AXؖV\3 [hGL15kXܯ  EroH}24t +\Ό[@UN߄6^ <l8}/(xГeF@>,N! LܔHdbwߥ+h0-Mput;S%-h{j R0FUu w `%Ue/,K%ʘa0[VHl{ c#KH J0"hS۔`9.zd;c-xaC?qW$;# +w\7+cSw%hu@KcI'l(H$$̣[X5zūޮ,&$?/k)g<}wIJt{!#*%5t, `i"(v\_d٤ s sQ!9+jkO?>^lz> Qʞ6]oM_UwR6to"L&o?'^>|@{^S} ٣0Q0ۇۖP=䖧:n/.lR.;`Et(*&,=p.}/$@K_rh+iBf{U.tdw1;TI +y5h V0`U 􍽯_\qE8@hN{oK8=滫CYw_!7b!)(yfUA|582j8gRu觳Rt(!7KBc@FP? ;[|/l?E\Yp`~Dh*hWvAp$\~-ȭ:N6p_G ڪpjRN7j9>%?x~cZӰQ˪A%W\a]Ag߻Do *;4gW$A`kk[1<:"*z` 9k#"`.,&!2s/uA;˰9kWڻ ;C=%mM?G@[b|'}GU{!<s E Bcxn:DhYǧ"H Oz#H*%RRY? KK_V ɽܒDO߽m_Ow_ݽgYްtETxCuڒ֮O - V!Vs^xSzmxhjyJ=ŝs:5 ?d,ղWskeL9x˾c7@V:;oo):9S`}B7@йm@1t>k>,AnaLq,Ttn 8f!)< a ;SOX_,`-| +՛8<%ť$jpc B)79ː h?~+8Z󦈉-״#B?aWg[z+_pΧ ~NB":w:y= bs "ůw`Nj>g|g]H!DUtY1ئK_C+ULe ENz~__e׺t\?r:Ͽ]hg_RWeE.3էW# LlRp`nO43w~l˖VCja~^__}J +==,ԟWx)]h!,c J8NUكܹR*j7*ʬ9. %#H_5xJ*ۈG&O]+%U"g^NNՑo"ŁUZDt&a!7x] .$Ȗ6kފ$㒔HG3ežt+n +G46rrLYK=!V< R'YHlwne'zr<7~YH[-b Ղ|i&C&roYfnIؔ+o!g!s6Y*n $Sweo/!Jii1*l(ɁsD\} +7/"?f2MEYNNNLp<y:V/ߨ~GOv۸1"w#w~] ĥsS5?&GY.du! S;e~:_LͿ#s[jz6 Vg7Zn\{}ۃ+/1]Er໰.م3%RiʩЩB Vf5j5I(rc]QP&|Sh.5l~QһT<DjIiSU/4DTO/0깐FE#;`Jow*k{Hs\z +TZXW +endstream endobj 61 0 obj <>stream +h`jYLP/Oo>r7C?wӧ|>~Oݧ}7?|o_c8a +endstream endobj 38 0 obj [/ICCBased 51 0 R] endobj 6 0 obj <> endobj 17 0 obj [/View/Design] endobj 18 0 obj <>>> endobj 41 0 obj [40 0 R] endobj 62 0 obj <> endobj xref +0 63 +0000000004 65535 f +0000000016 00000 n +0000000159 00000 n +0000044981 00000 n +0000000008 00000 f +0000045032 00000 n +0000491127 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000071923 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000491197 00000 n +0000491228 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000491092 00000 n +0000000000 00000 f +0000073671 00000 n +0000491313 00000 n +0000045442 00000 n +0000076655 00000 n +0000073971 00000 n +0000073858 00000 n +0000071985 00000 n +0000073109 00000 n +0000073157 00000 n +0000073742 00000 n +0000073773 00000 n +0000074006 00000 n +0000076729 00000 n +0000077035 00000 n +0000078291 00000 n +0000097376 00000 n +0000162965 00000 n +0000228554 00000 n +0000294143 00000 n +0000359732 00000 n +0000425321 00000 n +0000490910 00000 n +0000491338 00000 n +trailer +<<0F5025753BAB4248B31103A1E6D364A5>]>> +startxref +491524 +%%EOF diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color.eps b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color.eps new file mode 100644 index 0000000..6572231 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color.eps differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color.png b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color.png new file mode 100644 index 0000000..aa90674 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-wallpaper-plain.png b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-wallpaper-plain.png new file mode 100644 index 0000000..5c71264 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-wallpaper-plain.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-wallpaper.png b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-wallpaper.png new file mode 100644 index 0000000..aef8b86 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-wallpaper.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-wallpaper.xcf b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-wallpaper.xcf new file mode 100644 index 0000000..542a7b4 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-wallpaper.xcf differ diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/.gitignore b/Vagrant/resources/malcolm/sensor-iso/interface/.gitignore new file mode 100644 index 0000000..b45ad4c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/.gitignore @@ -0,0 +1,5 @@ +*.keystore +sensor_ctl/*beat/data +sensor_ctl/*beat/logs +sensor_ctl/supervisor.d/*-*.conf +sensor_ctl/extractor_override.zeek diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/init.sh b/Vagrant/resources/malcolm/sensor-iso/interface/init.sh new file mode 100755 index 0000000..39783c2 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/init.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +SCRIPT_PATH="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +pushd "$SCRIPT_PATH" >/dev/null 2>&1 + +if [ -e ./pyenv/bin/activate ]; then + source ./pyenv/bin/activate +fi + +gunicorn --bind=127.0.0.1:5000 sensor_interface.routes:app + +popd >/dev/null 2>&1 diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/kiosk.service b/Vagrant/resources/malcolm/sensor-iso/interface/kiosk.service new file mode 100644 index 0000000..2e93374 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/kiosk.service @@ -0,0 +1,10 @@ +[Unit] +Description=Hedgehog Linux Kiosk + +[Service] +WorkingDirectory=/home/sensor/sensor_interface/ +ExecStart=/home/sensor/sensor_interface/init.sh +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/requirements.txt b/Vagrant/resources/malcolm/sensor-iso/interface/requirements.txt new file mode 100644 index 0000000..1683419 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/requirements.txt @@ -0,0 +1,16 @@ +certifi==2020.6.20 +chardet==3.0.4 +click==7.1.2 +Flask==1.1.2 +Flask-Cors==3.0.9 +gunicorn==20.0.4 +idna==2.10 +itsdangerous==1.1.0 +Jinja2==2.11.3 +MarkupSafe==1.1.1 +psutil +python-dotenv==0.14.0 +requests==2.24.0 +six==1.15.0 +urllib3==1.26.5 +Werkzeug==1.0.1 diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/auditbeat/auditbeat.yml b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/auditbeat/auditbeat.yml new file mode 100644 index 0000000..19430df --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/auditbeat/auditbeat.yml @@ -0,0 +1,324 @@ +#========================== Modules configuration ============================= +auditbeat.modules: + +- module: auditd + socket_type: multicast + resolve_ids: true + failure_mode: log + backlog_limit: 16384 + rate_limit: 0 + include_raw_message: false + include_warnings: false + backpressure_strategy: auto + # audit_rule_files: [ '${path.config}/audit.rules.d/*.conf' ] + # no rules specified, auditd will run and manage rules + # see https://www.elastic.co/guide/en/beats/auditbeat/master/auditbeat-module-auditd.html + + # don't forward some things that are always going to be happening + # (/proc/ accesses by beats and browser for the kiosk) to cut down on noise + # and some other approved common stuff that would clutter the logs + processors: + - drop_event: + when: + or: + - and: + - equals: + auditd.data.syscall: 'setsockopt' + - equals: + auditd.summary.object.type: 'network-device' + - or: + - equals: + auditd.summary.how: '/usr/sbin/tcpdump' + - equals: + auditd.summary.how: '/opt/zeek/bin/zeek' + - equals: + auditd.summary.how: '/usr/sbin/netsniff-ng' + - equals: + auditd.summary.how: '/opt/moloch/bin/moloch-capture' + - and: + - equals: + auditd.message_type: 'syscall' + - equals: + auditd.summary.object.type: 'file' + - or: + - and: + - or: + - equals: + auditd.data.syscall: 'open' + - equals: + auditd.data.syscall: 'openat' + - regexp: + auditd.summary.object.primary: '^/(proc/|etc/localtime|usr/lib/x86_64-linux-gnu/gconv/gconv-modules\.cache)' + - or: + - equals: + auditd.summary.how: '/usr/share/auditbeat/bin/auditbeat' + - equals: + auditd.summary.how: '/usr/share/metricbeat/bin/metricbeat' + - equals: + auditd.summary.how: '/opt/firefox/firefox-bin' + - equals: + auditd.summary.how: '/opt/firefox/firefox' + - equals: + auditd.summary.how: '/usr/sbin/tcpdump' + - equals: + auditd.summary.how: '/opt/zeek/bin/zeek' + - equals: + auditd.summary.how: '/usr/sbin/netsniff-ng' + - equals: + auditd.summary.how: '/opt/moloch/bin/moloch-capture' + - and: + - or: + - equals: + auditd.data.syscall: 'open' + - equals: + auditd.data.syscall: 'openat' + - not: + has_fields: ['auditd.summary.object.primary'] + - or: + - equals: + auditd.summary.how: 'supervisorctl' + - equals: + auditd.summary.how: '/usr/share/metricbeat/bin/metricbeat' + - and: + - equals: + auditd.data.syscall: 'open' + - regexp: + auditd.summary.object.primary: '^/dev/' + - equals: + auditd.summary.how: '/usr/sbin/hddtemp' + - and: + - equals: + auditd.data.syscall: 'open' + - regexp: + auditd.summary.object.primary: '^/.+/__pycache__/$' + - regexp: + auditd.summary.how: '^python3' + - and: + - or: + - equals: + auditd.summary.how: 'bash' + - equals: + auditd.summary.how: '/bin/bash' + - equals: + auditd.summary.actor.primary: 'sensor' + - equals: + auditd.data.syscall: 'chown' + - equals: + auditd.summary.object.primary: '/home/sensor/.bash_history' + - and: + - equals: + auditd.summary.how: '/opt/firefox/firefox-bin' + - equals: + auditd.summary.actor.primary: 'sensor' + - or: + - equals: + auditd.data.syscall: 'chmod' + - equals: + auditd.data.syscall: 'open' + - equals: + auditd.data.syscall: 'openat' + - equals: + auditd.data.syscall: 'rename' + - equals: + auditd.data.syscall: 'renameat' + - equals: + auditd.data.syscall: 'rmdir' + - equals: + auditd.data.syscall: 'unlink' + - or: + - regexp: + auditd.summary.object.primary: '^/home/sensor/\.(cache/)?mozilla/firefox/' + - regexp: + auditd.summary.object.primary: '^/home/sensor/\.config/mimeapps\.' + - regexp: + auditd.summary.object.primary: '^/tmp/(Temp-|firefox)' + - equals: + auditd.summary.object.primary: '/opt/firefox/fonts/' + - and: + - or: + - equals: + auditd.data.syscall: 'open' + - equals: + auditd.data.syscall: 'openat' + - equals: + auditd.data.syscall: 'unlink' + - equals: + auditd.data.syscall: 'rename' + - equals: + auditd.data.syscall: 'renameat' + - regexp: + auditd.summary.object.primary: '^/(capture/|usr/lib/python)' + - or: + - equals: + auditd.summary.how: 'zeekctl' + - equals: + auditd.summary.how: 'supervisorctl' + - and: + - equals: + auditd.summary.object.primary: '/opt/sensor/sensor_ctl/filebeat/data/registry/filebeat/data.json' + - equals: + auditd.summary.how: '/usr/share/filebeat/bin/filebeat' + # I don't like filtering this, but see https://github.com/zeek/zeek/issues/259#issuecomment-564735946 + # zeekctl is doing this, but there's nothing to indicate that's what it is. + # For now I've tried to narrow it as much as possible, because it's *so* much noise + - and: + - or: + - equals: + auditd.data.syscall: 'unlink' + - equals: + auditd.data.syscall: 'openat' + - equals: + auditd.result: 'fail' + - equals: + auditd.summary.how: 'python' + - regexp: + auditd.summary.object.primary: '^/usr/lib/python' + + +- module: file_integrity + paths: + - /bin + - /opt/zeek + - /sbin + - /usr/bin + - /usr/local/bin + - /usr/sbin + +# system module is experimental: https://www.elastic.co/blog/introducing-auditbeat-system-module +# ALSO system module is ONLY available with non-OSS license + +# - module: system +# datasets: +# - host # General host information, e.g. uptime, IPs +# - user # User information +# period: 1m +# user.detect_password_changes: true + +# - module: system +# datasets: +# - process # Started and stopped processes +# - socket # Opened and closed sockets +# period: 1s + +# # drop noise +# processors: +# - drop_event: +# when: +# or: +# - and: +# - equals: +# event.module: 'system' +# - equals: +# event.dataset: 'socket' +# - equals: +# destination.ip: '127.0.0.1' +# - equals: +# source.ip: '127.0.0.1' +# - and: +# - equals: +# event.module: 'system' +# - equals: +# event.dataset: 'socket' +# - equals: +# destination.ip: "${BEAT_ES_HOST}" +# - equals: +# destination.port: "${BEAT_ES_PORT}" +# - and: +# - equals: +# event.module: 'system' +# - equals: +# event.dataset: 'socket' +# - equals: +# destination.ip: "${BEAT_KIBANA_HOST}" +# - equals: +# destination.port: "${BEAT_KIBANA_PORT}" +# - and: +# - equals: +# event.module: 'system' +# - equals: +# event.dataset: 'process' +# - or: +# - equals: +# process.executable: '/bin/sleep' +# - equals: +# process.executable: '/usr/bin/sort' +# - equals: +# process.executable: '/usr/bin/tail' +# - equals: +# process.executable: '/usr/bin/clear' +# - equals: +# process.executable: '/usr/bin/head' +# - equals: +# process.executable: '/bin/date' +# - equals: +# process.executable: '/bin/ls' +# - equals: +# process.executable: '/usr/bin/stat' +# - equals: +# process.executable: '/usr/bin/cut' +# - equals: +# process.executable: '/usr/bin/xargs' +# - equals: +# process.executable: '/usr/bin/tr' +# - equals: +# process.executable: '/bin/grep' +# - equals: +# process.executable: '/bin/sed' +# - equals: +# process.executable: '/bin/df' +# - equals: +# process.executable: '/usr/bin/du' +# - equals: +# process.executable: '/usr/bin/gawk' +# - and: +# - equals: +# process.executable: '/bin/bash' +# - contains: +# process.args: '/usr/local/bin/prune_files.sh' +# - and: +# - equals: +# process.executable: '/usr/bin/find' +# - contains: +# process.args: '-xdev' +# - contains: +# process.args: '-mindepth' +# - contains: +# process.args: '-maxdepth' +# - contains: +# process.args: '-printf' + +#================================ General ====================================== +fields_under_root: true + +#================================ Outputs ====================================== + +#-------------------------- Elasticsearch output ------------------------------- +output.elasticsearch: + enabled: true + hosts: ["${BEAT_ES_HOST}:${BEAT_ES_PORT}"] + protocol: "${BEAT_ES_PROTOCOL}" + username: "${BEAT_HTTP_USERNAME}" + password: "${BEAT_HTTP_PASSWORD}" + ssl.verification_mode: "${BEAT_ES_SSL_VERIFY}" + +setup.template.enabled: true +setup.template.overwrite: false +setup.template.settings: + index.number_of_shards: 1 + index.number_of_replicas: 0 + +#============================== Dashboards ===================================== +setup.dashboards.enabled: "${BEAT_KIBANA_DASHBOARDS_ENABLED}" +setup.dashboards.directory: "${BEAT_KIBANA_DASHBOARDS_PATH}" + +#============================== Kibana ===================================== +setup.kibana: + host: "${BEAT_KIBANA_HOST}:${BEAT_KIBANA_PORT}" + protocol: "${BEAT_KIBANA_PROTOCOL}" + username: "${BEAT_HTTP_USERNAME}" + password: "${BEAT_HTTP_PASSWORD}" + ssl.verification_mode: "${BEAT_KIBANA_SSL_VERIFY}" + +#================================ Logging ====================================== +logging.metrics.enabled: false + diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/auditbeat/sensor_auditbeat_local.sh b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/auditbeat/sensor_auditbeat_local.sh new file mode 100755 index 0000000..b9adf33 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/auditbeat/sensor_auditbeat_local.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# force-navigate to script directory (containing config file) +[[ "$(uname -s)" = 'Darwin' ]] && REALPATH=grealpath || REALPATH=realpath +[[ "$(uname -s)" = 'Darwin' ]] && DIRNAME=gdirname || DIRNAME=dirname +if ! (type "$REALPATH" && type "$DIRNAME") > /dev/null; then + echo "$(basename "${BASH_SOURCE[0]}") requires $REALPATH and $DIRNAME" + exit 1 +fi +SCRIPT_PATH="$($DIRNAME $($REALPATH -e "${BASH_SOURCE[0]}"))" +pushd "$SCRIPT_PATH" >/dev/null 2>&1 + +mkdir -p "$SCRIPT_PATH/data" + +auditbeat --path.home "$SCRIPT_PATH" --path.config "$SCRIPT_PATH" --path.data "$SCRIPT_PATH/data" -c "$SCRIPT_PATH/auditbeat.yml" -e + +popd >/dev/null 2>&1 diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/clean b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/clean new file mode 120000 index 0000000..941ee90 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/clean @@ -0,0 +1 @@ +clean.sh \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/clean.sh b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/clean.sh new file mode 100755 index 0000000..37bc3ee --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/clean.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +set -e + +SCRIPT_PATH="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +pushd "$SCRIPT_PATH" >/dev/null 2>&1 + +CONTROL_VARS_FILE="control_vars.conf" +source "$CONTROL_VARS_FILE" + +if [ -n "$PCAP_PATH" ] && [ "$PCAP_PATH" != "/" ] && [ -d "$PCAP_PATH" ] ; then + PCAP_SIZE="$(du -sh "$PCAP_PATH"/ | cut -f1)" + rm -rf "$PCAP_PATH"/* && echo "Removed $PCAP_SIZE from packet capture path" +fi +if [ -n "$ZEEK_LOG_PATH" ] && [ "$ZEEK_LOG_PATH" != "/" ] && [ -d "$ZEEK_LOG_PATH" ] ; then + ZEEK_SIZE="$(du -sh "$ZEEK_LOG_PATH"/ | cut -f1)" + rm -rf "$ZEEK_LOG_PATH"/* && echo "Removed $ZEEK_SIZE from Zeek log path" +fi + +popd >/dev/null 2>&1 diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/control.sh b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/control.sh new file mode 100755 index 0000000..78ff853 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/control.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +set -e + +CONFIG_DIR="supervisor.d" +CONFIG_FILE="supervisord.conf" +CONTROL_VARS_FILE="control_vars.conf" + +# create symlinks to this script named start, stop, restart, etc. +CONTROL_COMMAND="$(basename "${BASH_SOURCE[0]}")" + +if [[ ($# -eq 0) || (($# -eq 1) && ("$1" = "all")) ]]; then + # no arguments, defaults to all managed processes + CONTROL_PROCESS="all" +else + # eg., tcpdump, zeek + CONTROL_PROCESS="$@" +fi + +# force-navigate to script directory (containing config file) +[[ "$(uname -s)" = 'Darwin' ]] && REALPATH=grealpath || REALPATH=realpath +[[ "$(uname -s)" = 'Darwin' ]] && DIRNAME=gdirname || DIRNAME=dirname +if ! (type "$REALPATH" && type "$DIRNAME") > /dev/null; then + echo "$(basename "${BASH_SOURCE[0]}") requires $REALPATH and $DIRNAME" + exit 1 +fi +# SUPERVISOR_PATH is exported to be referenced in supervisord.conf +export SUPERVISOR_PATH="$($DIRNAME $($REALPATH -e "${BASH_SOURCE[0]}"))" +pushd "$SUPERVISOR_PATH" >/dev/null 2>&1 + +source "$CONTROL_VARS_FILE" + +if [[ -d ./"$CONFIG_DIR" && ("$CONTROL_COMMAND" = "start" || "$CONTROL_COMMAND" = "restart") && "$CONTROL_PROCESS" = "all" ]]; then + # if it's simply a bare "start" or "restart", we only really want it to restart the programs for which + # autostart=true, instead of ALL possible programs. So look in $CONFIG_FILE for autostart=true processes + # and execute the $CONTROL_COMMAND only on those programs + CONTROL_PROGS=() + while read LINE; do + PROCESS_NAME=$(echo $LINE | cut -f1 -d=) + PROCESS_AUTOSTART_VAR=$(echo $LINE | cut -f2 -d=) + PROCESS_AUTOSTART="$(eval echo "\$$PROCESS_AUTOSTART_VAR")" + if [ "${PROCESS_AUTOSTART,,}" = "true" ]; then + # + CONTROL_PROGS+=("$PROCESS_NAME") + fi + done <<< "$(grep -Pih "^(\[program:|autostart\s*=)" ./"$CONFIG_DIR"/*.conf | sed -e "s/\[program:\(.*\)\]/\1/" | sed -e "s/.*ENV_\(.*\))s/\1/" | paste -s -d'=\n')" + + # because we're using group names now, we need to use the full group name in our start/restart command rather than just the command name + # get it from the "status" command + CONTROL_PROGS_WITH_GROUP=() + while read LINE; do + for PROG in "${CONTROL_PROGS[@]}"; do + if [[ $LINE =~ ^[a-zA-Z0-9_-]+:${PROG}$ ]]; then + CONTROL_PROGS_WITH_GROUP+=("$LINE") + break + fi + done + done <<< "$(supervisorctl -c "$CONFIG_FILE" status all | awk '{print $1}')" + + # issue the command with the full, group-included names + if [ ${#CONTROL_PROGS_WITH_GROUP[@]} -gt 0 ]; then + supervisorctl -c "$CONFIG_FILE" "$CONTROL_COMMAND" "${CONTROL_PROGS_WITH_GROUP[@]}" + fi + +else + # simply pass the command through to supervisorctl + supervisorctl -c "$CONFIG_FILE" "$CONTROL_COMMAND" "${CONTROL_PROCESS[@]}" +fi + +popd >/dev/null 2>&1 diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/control_vars.conf b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/control_vars.conf new file mode 100644 index 0000000..6d7f628 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/control_vars.conf @@ -0,0 +1,93 @@ +export CAPTURE_INTERFACE=eth0 +export CAPTURE_FILTER="" + +export PCAP_PATH=/home/sensor/net_cap +export PCAP_TCPDUMP_FILENAME_PATTERN=%Y%m%d_%H%M%S.pcap +export PCAP_NETSNIFF_MAGIC=0xa1b2c3d4 +export PCAP_ROTATE_SECONDS=10800 +export PCAP_ROTATE_MEGABYTES=500 +export PCAP_SNAPLEN=0 +export PCAP_MAX_DISK_FILL=90 +export PCAP_PRUNE_CHECK_SECONDS=60 + +export ARKIME_VIEWER_PORT=8005 +export ARKIME_PACKET_THREADS=5 +export ARKIME_PACKET_ACL= + +export PROTOLOGBEAT_PORT=9515 +export PROTOLOGBEAT_INTERVAL=10 + +export ZEEK_LOG_PATH=/home/sensor/bro_logs +export ZEEK_MAX_DISK_FILL=90 +export ZEEK_PRUNE_CHECK_SECONDS=90 + +# Zeek performance tuning (node.cfg, see idaholab/Malcolm#36 for details) +export ZEEK_PIN_CPUS_LOGGER= +export ZEEK_PIN_CPUS_MANAGER= +export ZEEK_PIN_CPUS_PROXY= +# zeekdeploy.sh will also use (if present, where n is the number of capture interfaces): +# - ZEEK_PIN_CPUS_WORKER_1 .. ZEEK_PIN_CPUS_WORKER_n +# - ZEEK_LB_PROCS_WORKER_1 .. ZEEK_LB_PROCS_WORKER_n (falling back to ZEEK_LB_PROCS) +export ZEEK_LB_PROCS=1 +export ZEEK_LB_METHOD=custom +export ZEEK_AF_PACKET_BUFFER_SIZE=67108864 + +export ZEEK_RULESET=local +export ZEEK_EXTRACTOR_MODE=none +export ZEEK_EXTRACTOR_OVERRIDE_FILE= +export EXTRACTED_FILE_MIN_BYTES=64 +export EXTRACTED_FILE_MAX_BYTES=134217728 +export EXTRACTED_FILE_PRESERVATION=quarantined +export ZEEK_DISABLE_HASH_ALL_FILES= +export ZEEK_DISABLE_LOG_PASSWORDS= +export ZEEK_DISABLE_SSL_VALIDATE_CERTS= +export ZEEK_DISABLE_TRACK_ALL_ASSETS= +export ZEEK_DISABLE_BEST_GUESS_ICS=true +export ZEEK_DISABLE_SPICY_DHCP=true +export ZEEK_DISABLE_SPICY_DNS=true +export ZEEK_DISABLE_SPICY_HTTP=true +export ZEEK_DISABLE_SPICY_IPSEC= +export ZEEK_DISABLE_SPICY_OPENVPN= +export ZEEK_DISABLE_SPICY_TFTP= +export ZEEK_DISABLE_SPICY_WIREGUARD= + +# affects Arkime only for now: beats values are stored in keystores per-beat +export ES_PROTOCOL=https +export ES_HOST=127.0.0.1 +export ES_PORT=9200 +export ES_USERNAME=sensor +export ES_PASSWORD=%70%61%73%73%77%6F%72%64 +export ES_SSL_VERIFY=none + +export VTOT_REQUESTS_PER_MINUTE=4 +export VTOT_API2_KEY="" +export MALASS_HOST="" +export MALASS_PORT=80 +export MALASS_MAX_REQUESTS=20 +export CLAMD_MAX_REQUESTS=8 +export EXTRACTED_FILE_YARA_CUSTOM_ONLY=false +export YARA_MAX_REQUESTS=8 +export YARA_RULES_DIR=/opt/yara-rules +export CAPA_VERBOSE=false +export CAPA_MAX_REQUESTS=4 + +export ZEEK_FILE_WATCH=false +export ZEEK_FILE_SCAN_CLAMAV=false +export ZEEK_FILE_SCAN_VTOT=false +export ZEEK_FILE_SCAN_MALASS=false +export ZEEK_FILE_SCAN_YARA=false +export ZEEK_FILE_SCAN_CAPA=false + +export AUTOSTART_AUDITBEAT=false +export AUTOSTART_CLAMAV_UPDATES=false +export AUTOSTART_FILEBEAT=false +export AUTOSTART_HEATBEAT=false +export AUTOSTART_HEATBEAT_SENSORS=false +export AUTOSTART_METRICBEAT=false +export AUTOSTART_ARKIME=false +export AUTOSTART_NETSNIFF=false +export AUTOSTART_PRUNE_PCAP=false +export AUTOSTART_PRUNE_ZEEK=false +export AUTOSTART_SYSLOGBEAT=false +export AUTOSTART_TCPDUMP=false +export AUTOSTART_ZEEK=false diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/extractor_override.interesting.zeek b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/extractor_override.interesting.zeek new file mode 100644 index 0000000..537a2ae --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/extractor_override.interesting.zeek @@ -0,0 +1,106 @@ +#!/usr/bin/env zeek + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +export { + redef extractor_always_extract_unknown = F; + + redef extractor_mime_to_ext_map : table[string] of string = { + ["application/binary"]= "bin", + ["application/ecmascript"]= "es", + ["application/hta"]= "hta", + ["application/java-archive"]= "jar", + ["application/java-serialized-object"]= "ser", + ["application/java-vm"]= "class", + ["application/javascript"]= "js", + ["application/ms-vsi"]= "vsi", + ["application/msaccess"]= "accdb", + ["application/msaccess.addin"]= "accda", + ["application/msaccess.cab"]= "accdc", + ["application/msaccess.ftemplate"]= "accft", + ["application/msaccess.runtime"]= "accdr", + ["application/msaccess.webapplication"]= "accdw", + ["application/msexcel"]= "xls", + ["application/mspowerpoint"]= "ppt", + ["application/msword"]= "doc", + ["application/octet-stream"]= "bin", + ["application/pdf"]= "pdf", + ["application/PowerShell"]= "psc1", + ["application/rtf"]= "rtf", + ["application/vnd.apple.installer+xml"]= "mpkg", + ["application/vnd.microsoft.portable-executable"]= "exe", + ["application/vnd.ms-cab-compressed"]= "cab", + ["application/vnd.ms-excel"]= "xls", + ["application/vnd.ms-excel.addin.macroEnabled.12"]= "xlam", + ["application/vnd.ms-excel.addin.macroenabled.12"]= "xlam", + ["application/vnd.ms-excel.sheet.binary.macroEnabled.12"]= "xlsb", + ["application/vnd.ms-excel.sheet.binary.macroenabled.12"]= "xlsb", + ["application/vnd.ms-excel.sheet.macroEnabled.12"]= "xlsm", + ["application/vnd.ms-excel.sheet.macroenabled.12"]= "xlsm", + ["application/vnd.ms-excel.template.macroEnabled.12"]= "xltm", + ["application/vnd.ms-excel.template.macroenabled.12"]= "xltm", + ["application/vnd.ms-office.calx"]= "calx", + ["application/vnd.ms-officetheme"]= "thmx", + ["application/vnd.ms-powerpoint"]= "ppt", + ["application/vnd.ms-powerpoint.addin.macroEnabled.12"]= "ppam", + ["application/vnd.ms-powerpoint.addin.macroenabled.12"]= "ppam", + ["application/vnd.ms-powerpoint.presentation.macroEnabled.12"]= "pptm", + ["application/vnd.ms-powerpoint.presentation.macroenabled.12"]= "pptm", + ["application/vnd.ms-powerpoint.slide.macroEnabled.12"]= "sldm", + ["application/vnd.ms-powerpoint.slide.macroenabled.12"]= "sldm", + ["application/vnd.ms-powerpoint.slideshow.macroEnabled.12"]= "ppsm", + ["application/vnd.ms-powerpoint.slideshow.macroenabled.12"]= "ppsm", + ["application/vnd.ms-powerpoint.template.macroEnabled.12"]= "potm", + ["application/vnd.ms-powerpoint.template.macroenabled.12"]= "potm", + ["application/vnd.ms-word.document.macroEnabled.12"]= "docm", + ["application/vnd.ms-word.document.macroenabled.12"]= "docm", + ["application/vnd.ms-word.template.macroEnabled.12"]= "dotm", + ["application/vnd.ms-word.template.macroenabled.12"]= "dotm", + ["application/vnd.openofficeorg.extension"]= "oxt", + ["application/vnd.openxmlformats-officedocument.presentationml.presentation"]= "pptx", + ["application/vnd.openxmlformats-officedocument.presentationml.slide"]= "sldx", + ["application/vnd.openxmlformats-officedocument.presentationml.slideshow"]= "ppsx", + ["application/vnd.openxmlformats-officedocument.presentationml.template"]= "potx", + ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]= "xlsx", + ["application/vnd.openxmlformats-officedocument.spreadsheetml.template"]= "xltx", + ["application/vnd.openxmlformats-officedocument.wordprocessingml.document"]= "docx", + ["application/vnd.openxmlformats-officedocument.wordprocessingml.template"]= "dotx", + ["application/windows-library+xml"]= "library-ms", + ["application/x-7z-compressed"]= "7z", + ["application/x-ace-compressed"]= "ace", + ["application/x-apple-diskimage"]= "dmg", + ["application/x-bzip"]= "bz", + ["application/x-bzip2"]= "bz2", + ["application/x-cfs-compressed"]= "cfs", + ["application/x-compress"]= "z", + ["application/x-compressed"]= "tgz", + ["application/x-cpio"]= "cpio", + ["application/x-csh"]= "csh", + ["application/x-dgc-compressed"]= "dgc", + ["application/x-dosexec"]= "exe", + ["application/x-elf"]= "elf", + ["application/x-executable"]= "exe", + ["application/x-gca-compressed"]= "gca", + ["application/x-gtar"]= "gtar", + ["application/x-gzip"]= "gz", + ["application/x-install-instructions"]= "install", + ["application/x-lzh-compressed"]= "lzh", + ["application/x-ms-application"]= "application", + ["application/x-ms-installer"]= "msi", + ["application/x-ms-shortcut"]= "lnk", + ["application/x-msdos-program"]= "exe", + ["application/x-msdownload"]= "exe", + ["application/x-pe-app-32bit-i386"]= "exe", + ["application/x-perl"]= "pl", + ["application/x-python"]= "py", + ["application/x-rar-compressed"]= "rar", + ["application/x-sh"]= "sh", + ["application/x-shockwave-flash"]= "swf", + ["application/x-zip-compressed"]= "zip", + ["application/zip"]= "zip", + ["text/jscript"]= "jsx", + ["text/rtf"]= "rtf", + ["text/vbscript"]= "vbs" + } &default="dat"; + +} diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/filebeat-syslog/filebeat-syslog.yml b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/filebeat-syslog/filebeat-syslog.yml new file mode 100644 index 0000000..8f33c99 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/filebeat-syslog/filebeat-syslog.yml @@ -0,0 +1,39 @@ +filebeat.inputs: +- type: syslog + protocol.udp: + host: "127.0.0.1:9514" + +#================================ General ====================================== +fields_under_root: true + +#================================ Outputs ====================================== + +#-------------------------- Elasticsearch output ------------------------------- +output.elasticsearch: + enabled: true + hosts: ["${BEAT_ES_HOST}:${BEAT_ES_PORT}"] + protocol: "${BEAT_ES_PROTOCOL}" + username: "${BEAT_HTTP_USERNAME}" + password: "${BEAT_HTTP_PASSWORD}" + ssl.verification_mode: "${BEAT_ES_SSL_VERIFY}" + +setup.template.enabled: true +setup.template.overwrite: false +setup.template.settings: + index.number_of_shards: 1 + index.number_of_replicas: 0 + +#============================== Dashboards ===================================== +setup.dashboards.enabled: "${BEAT_KIBANA_DASHBOARDS_ENABLED}" +setup.dashboards.directory: "${BEAT_KIBANA_DASHBOARDS_PATH}" + +#============================== Kibana ===================================== +setup.kibana: + host: "${BEAT_KIBANA_HOST}:${BEAT_KIBANA_PORT}" + protocol: "${BEAT_KIBANA_PROTOCOL}" + username: "${BEAT_HTTP_USERNAME}" + password: "${BEAT_HTTP_PASSWORD}" + ssl.verification_mode: "${BEAT_KIBANA_SSL_VERIFY}" + +#================================ Logging ====================================== +logging.metrics.enabled: false diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/filebeat-syslog/sensor_filebeat-syslog_local.sh b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/filebeat-syslog/sensor_filebeat-syslog_local.sh new file mode 100755 index 0000000..6aa5d0c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/filebeat-syslog/sensor_filebeat-syslog_local.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# force-navigate to script directory (containing config file) +[[ "$(uname -s)" = 'Darwin' ]] && REALPATH=grealpath || REALPATH=realpath +[[ "$(uname -s)" = 'Darwin' ]] && DIRNAME=gdirname || DIRNAME=dirname +if ! (type "$REALPATH" && type "$DIRNAME") > /dev/null; then + echo "$(basename "${BASH_SOURCE[0]}") requires $REALPATH and $DIRNAME" + exit 1 +fi +SCRIPT_PATH="$($DIRNAME $($REALPATH -e "${BASH_SOURCE[0]}"))" +pushd "$SCRIPT_PATH" >/dev/null 2>&1 + +mkdir -p "$SCRIPT_PATH/data" + +filebeat --path.home "$SCRIPT_PATH" --path.config "$SCRIPT_PATH" --path.data "$SCRIPT_PATH/data" -c "$SCRIPT_PATH/filebeat-syslog.yml" --modules=system -e + +popd >/dev/null 2>&1 diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/filebeat/filebeat.yml b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/filebeat/filebeat.yml new file mode 100644 index 0000000..4c84672 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/filebeat/filebeat.yml @@ -0,0 +1,34 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +logging.metrics.enabled: false + +filebeat.inputs: +- type: log + paths: + - ${BEAT_LOG_PATTERN:/home/sensor/bro_logs/*.log} + symlinks: true + fields_under_root: true + # tags: ["remote"] + fields: + type: "session" + compression_level: 0 + exclude_lines: ['^\s*#'] + scan_frequency: ${BEAT_SCAN_FREQUENCY:10s} + clean_inactive: ${BEAT_CLEAN_INACTIVE:180m} + ignore_older: ${BEAT_IGNORE_OLDER:120m} + close_inactive: ${BEAT_CLOSE_INACTIVE:90m} + close_renamed: ${BEAT_CLOSE_RENAMED:true} + close_removed: ${BEAT_CLOSE_REMOVED:true} + close_eof: ${BEAT_CLOSE_EOF:false} + clean_renamed: ${BEAT_CLEAN_RENAMED:true} + clean_removed: ${BEAT_CLEAN_REMOVED:true} + +output.logstash: + hosts: ["${BEAT_LS_HOST}:${BEAT_LS_PORT}"] + ssl.enabled: ${BEAT_LS_SSL:false} + ssl.certificate_authorities: ["${BEAT_LS_SSL_CA_CRT}"] + ssl.certificate: "${BEAT_LS_SSL_CLIENT_CRT}" + ssl.key: "${BEAT_LS_SSL_CLIENT_KEY}" + ssl.supported_protocols: "TLSv1.2" + ssl.verification_mode: "${BEAT_LS_SSL_VERIFY}" + diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/filebeat/sensor_filebeat_local.sh b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/filebeat/sensor_filebeat_local.sh new file mode 100755 index 0000000..6d176c3 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/filebeat/sensor_filebeat_local.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +if [ -z "$CAPTURE_PATH" ]; then + CAPTURE_PATH="$HOME/bro_logs" +fi +export CAPTURE_PATH +export BEAT_LOG_PATTERN="${CAPTURE_PATH}/*.log" +export BEAT_SCAN_FREQUENCY="10s" +export BEAT_CLEAN_INACTIVE="180m" +export BEAT_IGNORE_OLDER="120m" +export BEAT_CLOSE_INACTIVE="90m" +export BEAT_CLOSE_RENAMED="true" +export BEAT_CLOSE_REMOVED="true" +export BEAT_CLOSE_EOF="false" +export BEAT_CLEAN_RENAMED="true" +export BEAT_CLEAN_REMOVED="true" + +SLEEP_SEC=0 +while getopts s: opts; do + case ${opts} in + s) SLEEP_SEC=${OPTARG} ;; + esac +done + +# force-navigate to script directory (containing config file) +[[ "$(uname -s)" = 'Darwin' ]] && REALPATH=grealpath || REALPATH=realpath +[[ "$(uname -s)" = 'Darwin' ]] && DIRNAME=gdirname || DIRNAME=dirname +if ! (type "$REALPATH" && type "$DIRNAME") > /dev/null; then + echo "$(basename "${BASH_SOURCE[0]}") requires $REALPATH and $DIRNAME" + exit 1 +fi +SCRIPT_PATH="$($DIRNAME $($REALPATH -e "${BASH_SOURCE[0]}"))" +pushd "$SCRIPT_PATH" >/dev/null 2>&1 + +mkdir -p "$SCRIPT_PATH/data" + +sleep $SLEEP_SEC + +filebeat --path.home "$SCRIPT_PATH" --path.config "$SCRIPT_PATH" --path.data "$SCRIPT_PATH/data" -c "$SCRIPT_PATH/filebeat.yml" -e + +popd >/dev/null 2>&1 diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/heatbeat/protologbeat.template.json b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/heatbeat/protologbeat.template.json new file mode 100644 index 0000000..dacd12f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/heatbeat/protologbeat.template.json @@ -0,0 +1,117 @@ +{ + "index_patterns": ["protologbeat-*"], + "mappings": { + "_meta": { + "version": "7.6.2" + }, + "dynamic_templates": [{ + "strings_as_keyword": { + "mapping": { + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + }], + "properties": { + "@timestamp": { + "type": "date" + }, + "cpu_rpm_avg": { + "type": "float" + }, + "cpu_volt_avg": { + "type": "float" + }, + "cpu_temp_avg": { + "type": "float" + }, + "gpu_rpm_avg": { + "type": "float" + }, + "gpu_volt_avg": { + "type": "float" + }, + "gpu_temp_avg": { + "type": "float" + }, + "hdd_temp_avg": { + "type": "float" + }, + "other_volt_avg": { + "type": "float" + }, + "other_rpm_avg": { + "type": "float" + }, + "other_temp_avg": { + "type": "float" + }, + "sensors": { + "properties": { + "adapter": { + "ignore_above": 1024, + "type": "keyword", + "norms": false + }, + "class": { + "ignore_above": 1024, + "type": "keyword", + "norms": false + }, + "label": { + "ignore_above": 1024, + "type": "keyword", + "norms": false + }, + "name": { + "ignore_above": 1024, + "type": "keyword", + "norms": false + }, + "units": { + "ignore_above": 1024, + "type": "keyword", + "norms": false + }, + "value": { + "type": "float" + } + } + }, + "beat": { + "properties": { + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "host": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "order": 0, + "settings": { + "index.mapping.total_fields.limit": 5000, + "index.refresh_interval": "5s" + } +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/heatbeat/protologbeat.yml b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/heatbeat/protologbeat.yml new file mode 100644 index 0000000..da4553b --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/heatbeat/protologbeat.yml @@ -0,0 +1,49 @@ +protologbeat: + address: "127.0.0.1" + port: 9515 + protocol: udp + json_mode: true + merge_fields_to_root: true + max_msg_size: 8192 + default_es_log_type: protologbeat + +#================================ General ====================================== +fields_under_root: true + +#============================== Template ======================================= + +setup.template.enabled: true +setup.template.overwrite: false +setup.template.settings: + index.number_of_shards: 1 + index.number_of_replicas: 0 +setup.template.json.enabled: true +setup.template.json.path: "${path.config}/protologbeat.template.json" +setup.template.json.name: "protologbeat" + +#================================ Outputs ====================================== + +#-------------------------- Elasticsearch output ------------------------------- +output.elasticsearch: + enabled: true + hosts: ["${BEAT_ES_HOST}:${BEAT_ES_PORT}"] + protocol: "${BEAT_ES_PROTOCOL}" + username: "${BEAT_HTTP_USERNAME}" + password: "${BEAT_HTTP_PASSWORD}" + ssl.verification_mode: "${BEAT_ES_SSL_VERIFY}" + template.versions.2x.enabled: false + +#============================== Dashboards ===================================== +setup.dashboards.enabled: "${BEAT_KIBANA_DASHBOARDS_ENABLED}" +setup.dashboards.directory: "${BEAT_KIBANA_DASHBOARDS_PATH}" + +#============================== Kibana ===================================== +setup.kibana: + host: "${BEAT_KIBANA_HOST}:${BEAT_KIBANA_PORT}" + protocol: "${BEAT_KIBANA_PROTOCOL}" + username: "${BEAT_HTTP_USERNAME}" + password: "${BEAT_HTTP_PASSWORD}" + ssl.verification_mode: "${BEAT_KIBANA_SSL_VERIFY}" + +#================================ Logging ====================================== +logging.metrics.enabled: false diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/heatbeat/sensor_heatbeat_local.sh b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/heatbeat/sensor_heatbeat_local.sh new file mode 100755 index 0000000..45dc312 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/heatbeat/sensor_heatbeat_local.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# force-navigate to script directory (containing config file) +[[ "$(uname -s)" = 'Darwin' ]] && REALPATH=grealpath || REALPATH=realpath +[[ "$(uname -s)" = 'Darwin' ]] && DIRNAME=gdirname || DIRNAME=dirname +if ! (type "$REALPATH" && type "$DIRNAME") > /dev/null; then + echo "$(basename "${BASH_SOURCE[0]}") requires $REALPATH and $DIRNAME" + exit 1 +fi +SCRIPT_PATH="$($DIRNAME $($REALPATH -e "${BASH_SOURCE[0]}"))" +pushd "$SCRIPT_PATH" >/dev/null 2>&1 + +mkdir -p "$SCRIPT_PATH/data" + +protologbeat --path.home "$SCRIPT_PATH" --path.config "$SCRIPT_PATH" --path.data "$SCRIPT_PATH/data" -c "$SCRIPT_PATH/protologbeat.yml" -e + +popd >/dev/null 2>&1 diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/metricbeat/metricbeat.yml b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/metricbeat/metricbeat.yml new file mode 100644 index 0000000..d3b4651 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/metricbeat/metricbeat.yml @@ -0,0 +1,75 @@ +metricbeat.config.modules: + path: ${path.config}/conf.d/*.yml + reload.period: 10s + reload.enabled: false + +metricbeat.max_start_delay: 10s + +#========================== Modules configuration ============================ +metricbeat.modules: + +#------------------------------- System Module ------------------------------- +- module: system + period: ${BEAT_INTERVAL} + metricsets: + - cpu # CPU usage + - load # CPU load averages + - memory # Memory usage + - network # Network IO + - process # Per process metrics + - process_summary # Process summary + - uptime # System Uptime + - diskio # Disk IO + enabled: true + processes: ['.*'] + process.include_top_n: + enabled: true + by_cpu: 10 + by_memory: 10 + + cpu.metrics: ["percentages"] + core.metrics: ["percentages"] + +- module: system + period: 1m + metricsets: + - filesystem # File system usage for each mountpoint + - fsstat # File system summary metrics + processors: + - drop_event.when.regexp: + system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib|boot)($|/)' + +#================================ General ====================================== +fields_under_root: true + +#================================ Outputs ====================================== + +#-------------------------- Elasticsearch output ------------------------------- +output.elasticsearch: + enabled: true + hosts: ["${BEAT_ES_HOST}:${BEAT_ES_PORT}"] + protocol: "${BEAT_ES_PROTOCOL}" + username: "${BEAT_HTTP_USERNAME}" + password: "${BEAT_HTTP_PASSWORD}" + ssl.verification_mode: "${BEAT_ES_SSL_VERIFY}" + +setup.template.enabled: true +setup.template.overwrite: false +setup.template.settings: + index.number_of_shards: 1 + index.number_of_replicas: 0 + +#============================== Dashboards ===================================== +setup.dashboards.enabled: "${BEAT_KIBANA_DASHBOARDS_ENABLED}" +setup.dashboards.directory: "${BEAT_KIBANA_DASHBOARDS_PATH}" + +#============================== Kibana ===================================== +setup.kibana: + host: "${BEAT_KIBANA_HOST}:${BEAT_KIBANA_PORT}" + protocol: "${BEAT_KIBANA_PROTOCOL}" + username: "${BEAT_HTTP_USERNAME}" + password: "${BEAT_HTTP_PASSWORD}" + ssl.verification_mode: "${BEAT_KIBANA_SSL_VERIFY}" + +#================================ Logging ====================================== +logging.metrics.enabled: false diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/metricbeat/sensor_metricbeat_local.sh b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/metricbeat/sensor_metricbeat_local.sh new file mode 100755 index 0000000..183f18c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/metricbeat/sensor_metricbeat_local.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +# force-navigate to script directory (containing config file) +[[ "$(uname -s)" = 'Darwin' ]] && REALPATH=grealpath || REALPATH=realpath +[[ "$(uname -s)" = 'Darwin' ]] && DIRNAME=gdirname || DIRNAME=dirname +if ! (type "$REALPATH" && type "$DIRNAME") > /dev/null; then + echo "$(basename "${BASH_SOURCE[0]}") requires $REALPATH and $DIRNAME" + exit 1 +fi +SCRIPT_PATH="$($DIRNAME $($REALPATH -e "${BASH_SOURCE[0]}"))" +pushd "$SCRIPT_PATH" >/dev/null 2>&1 + +mkdir -p "$SCRIPT_PATH/data" + +metricbeat --path.home "$SCRIPT_PATH" --path.config "$SCRIPT_PATH" --path.data "$SCRIPT_PATH/data" -c "$SCRIPT_PATH/metricbeat.yml" -e + +popd >/dev/null 2>&1 diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/moloch/config.ini b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/moloch/config.ini new file mode 100644 index 0000000..b3489b7 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/moloch/config.ini @@ -0,0 +1,60 @@ +# these settings for moloch-capture will be overridden on the command-line (with "-o field=value") +# so you can (for the most part) ignore settings here that seem like dummy settings + +[default] +elasticsearch=http://192.168.0.1:9200 +rotateIndex=daily +passwordSecret=Malcolm +httpRealm=Arkime +interface=enp0s1 +pcapDir=/tmp +maxFileSizeG=2 +maxFileTimeM=180 +tcpTimeout=600 +tcpSaveTimeout=720 +udpTimeout=30 +icmpTimeout=10 +maxStreams=1000000 +maxPackets=10000 +freeSpaceG=5% +viewPort=8005 +geoLite2Country=/dummy/GeoLite2-Country.mmdb +geoLite2ASN=/dummy/GeoLite2-ASN.mmdb +rirFile=/dummy/ipv4-address-space.csv +ouiFile=/dummy/oui.txt +dropUser=sensor +dropGroup=netdev +parseSMTP=true +parseSMB=true +parseQSValue=false +supportSha256=false +maxReqBody=64 +config.reqBodyOnlyUtf8=true +smtpIpHeaders=X-Originating-IP:;X-Barracuda-Apparent-Source-IP: +parsersDir=/dummy/parsers +pluginsDir=/dummy/plugins +spiDataMaxIndices=2 +compressES=false +maxESConns=30 +maxESRequests=500 +packetsPerPoll=50000 +antiSynDrop=false +logEveryXPackets=500000 +logUnknownProtocols=false +logESRequests=false +logFileCreation=true +logHTTPConnections=false + +### High Performance settings +# https://github.com/arkime/arkime/wiki/Settings#High_Performance_Settings +magicMode=basic +pcapReadMethod=tpacketv3 +tpacketv3NumThreads=2 +tpacketv3BlockSize=8388608 +pcapWriteMethod=simple +pcapWriteSize=2560000 +packetThreads=5 +maxPacketsInQueue=300000 +dbBulkSize=4000000 +#compressES=true +rulesFiles=/dummy/rules.yml diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/moloch/rules.yml b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/moloch/rules.yml new file mode 100644 index 0000000..e8cd2b3 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/moloch/rules.yml @@ -0,0 +1,25 @@ +--- +version: 1 +rules: + - name: "Only save first n packets of TLS" + when: "fieldSet" + fields: + protocols: + - tls + ops: + _maxPacketsToSave: 15 + - name: "Only save first n packets of SSH" + when: "fieldSet" + fields: + protocols: + - ssh + ops: + _maxPacketsToSave: 20 + - name: "Dont save SPI sessions with only 1 source packet" + when: "beforeFinalSave" + fields: + packets.src: 1 + packets.dst: 0 + tcpflags.syn: 1 + ops: + _dontSaveSPI: 1 diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/reload b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/reload new file mode 120000 index 0000000..50c5f1f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/reload @@ -0,0 +1 @@ +control.sh \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/restart b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/restart new file mode 120000 index 0000000..50c5f1f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/restart @@ -0,0 +1 @@ +control.sh \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/scripts/log_disk_space.sh b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/scripts/log_disk_space.sh new file mode 100755 index 0000000..5c42faf --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/scripts/log_disk_space.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +SPACE_STRING="$(/bin/df -lh --output=source,target,avail,size,pcent | tail -n +2 | grep '^/dev' | tr -s ' ' ',' | cut -d, -f2,3,4,5 | sed 's/^/\[/' | sed 's/$/\]/' | tr '\n' '.')" +logger "${SPACE_STRING}" diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/scripts/log_temperature.sh b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/scripts/log_temperature.sh new file mode 100755 index 0000000..2e232e4 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/scripts/log_temperature.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +AVG_TEMP="$(sensors 2>/dev/null | grep '^Core\s[[:digit:]]\+:' | sed -e 's/[[:space:]]\+/,/g' | cut -d',' -f3 | sed "s/^\+//" | sed "s/°.*//" | awk '{ total += $1; count++ } END { if (count > 0) { print total/count } }')" +HDD_TEMP="$(hddtemp /dev/sd? 2>/dev/null | grep -v "S\.M\.A\.R\.T\. not available" | sed 's/^/\[/' | sed 's/$/\]/' | tr '\n' ',' | sed 's/,$//')" +if [ -n "$AVG_TEMP" ] || [ -n "$HDD_TEMP" ] ; then + logger "CPUs: ${AVG_TEMP}°C, HDDs: ${HDD_TEMP}" +fi diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/shutdown b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/shutdown new file mode 120000 index 0000000..50c5f1f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/shutdown @@ -0,0 +1 @@ +control.sh \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/start b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/start new file mode 120000 index 0000000..50c5f1f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/start @@ -0,0 +1 @@ +control.sh \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/status b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/status new file mode 120000 index 0000000..50c5f1f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/status @@ -0,0 +1 @@ +control.sh \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/stop b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/stop new file mode 120000 index 0000000..50c5f1f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/stop @@ -0,0 +1 @@ +control.sh \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/beats.conf b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/beats.conf new file mode 100644 index 0000000..b38afda --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/beats.conf @@ -0,0 +1,56 @@ +[group:beats] +programs=filebeat,syslogbeat,metricbeat,auditbeat,heatbeat,sensors + +[program:filebeat] +environment=CAPTURE_PATH=%(ENV_ZEEK_LOG_PATH)s/logs/current +command=bash -l %(ENV_SUPERVISOR_PATH)s/filebeat/sensor_filebeat_local.sh -s 20 +startsecs=25 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_FILEBEAT)s +directory=%(ENV_SUPERVISOR_PATH)s/filebeat + +[program:syslogbeat] +command=bash -l %(ENV_SUPERVISOR_PATH)s/filebeat-syslog/sensor_filebeat-syslog_local.sh +startsecs=5 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_SYSLOGBEAT)s +directory=%(ENV_SUPERVISOR_PATH)s/filebeat-syslog + +[program:metricbeat] +command=bash -l %(ENV_SUPERVISOR_PATH)s/metricbeat/sensor_metricbeat_local.sh +startsecs=5 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_METRICBEAT)s +directory=%(ENV_SUPERVISOR_PATH)s/metricbeat + +[program:auditbeat] +command=bash -l %(ENV_SUPERVISOR_PATH)s/auditbeat/sensor_auditbeat_local.sh +startsecs=5 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_AUDITBEAT)s +directory=%(ENV_SUPERVISOR_PATH)s/auditbeat + +[program:heatbeat] +command=bash -l %(ENV_SUPERVISOR_PATH)s/heatbeat/sensor_heatbeat_local.sh +startsecs=5 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_HEATBEAT)s +directory=%(ENV_SUPERVISOR_PATH)s/heatbeat + +[program:sensors] +command=/usr/bin/python3 /usr/local/bin/beat-log-temperature.py -p %(ENV_PROTOLOGBEAT_PORT)s -c 0 -s %(ENV_PROTOLOGBEAT_INTERVAL)s +startsecs=5 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_HEATBEAT_SENSORS)s diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/clamav.conf b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/clamav.conf new file mode 100644 index 0000000..f4f6e61 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/clamav.conf @@ -0,0 +1,22 @@ +[group:clamav] +programs=clamav-service,clamav-updates + +[program:clamav-updates] +command=/usr/bin/freshclam freshclam --user sensor --config-file=/etc/clamav/freshclam.conf --daemon +user=sensor +autostart=%(ENV_AUTOSTART_CLAMAV_UPDATES)s +autorestart=true +startsecs=0 +startretries=0 +stopasgroup=true +killasgroup=true + +[program:clamav-service] +command=/usr/sbin/clamd -c /etc/clamav/clamd.conf +user=sensor +autostart=%(ENV_ZEEK_FILE_SCAN_CLAMAV)s +autorestart=true +startsecs=0 +startretries=0 +stopasgroup=true +killasgroup=true diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/moloch.conf b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/moloch.conf new file mode 100644 index 0000000..085e6e6 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/moloch.conf @@ -0,0 +1,40 @@ +[group:moloch] +programs=moloch-capture,moloch-viewer + +[program:moloch-viewer] +command=/opt/moloch/bin/node /opt/moloch/viewer/viewer.js + -c "%(ENV_SUPERVISOR_PATH)s"/moloch/config.ini %(ENV_ARKIME_HTTPS_FLAG)s + -o pcapDir="%(ENV_PCAP_PATH)s" + -o viewPort=%(ENV_ARKIME_VIEWER_PORT)s +startsecs=5 +startretries=2000000000 +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_ARKIME)s +directory=%(ENV_SUPERVISOR_PATH)s/moloch + +[program:moloch-capture] +command=/opt/moloch/bin/moloch-capture %(ENV_ARKIME_HTTPS_FLAG)s + -c "%(ENV_SUPERVISOR_PATH)s"/moloch/config.ini + -o pcapDir="%(ENV_PCAP_PATH)s" + -o bpf="%(ENV_CAPTURE_FILTER)s" + -o packetThreads=%(ENV_ARKIME_PACKET_THREADS)s + -o dropUser=sensor + -o dropGroup=netdev + -o geoLite2Country="%(ENV_SUPERVISOR_PATH)s"/moloch/GeoLite2-Country.mmdb + -o geoLite2ASN="%(ENV_SUPERVISOR_PATH)s"/moloch/GeoLite2-ASN.mmdb + -o rirFile="%(ENV_SUPERVISOR_PATH)s"/moloch/ipv4-address-space.csv + -o ouiFile="%(ENV_SUPERVISOR_PATH)s"/moloch/oui.txt + -o rulesFiles="%(ENV_SUPERVISOR_PATH)s"/moloch/rules.yml + -o parsersDir=/opt/moloch/parsers + -o pluginsDir=/opt/moloch/plugins + --node "%(ENV_ARKIME_NODE_NAME)s" + --host "%(ENV_ARKIME_NODE_HOST)s" +startsecs=30 +startretries=2000000000 +autorestart=true +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_ARKIME)s +directory=%(ENV_PCAP_PATH)s +user=sensor diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/netsniff.template b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/netsniff.template new file mode 100644 index 0000000..ea9e34d --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/netsniff.template @@ -0,0 +1,9 @@ +[program:netsniff-$IFACE] +command=/usr/sbin/netsniff-ng -i "$IFACE" -T "%(ENV_PCAP_NETSNIFF_MAGIC)s" -o "%(ENV_PCAP_PATH)s" -P "netsniff-$IFACE_" -F "%(ENV_PCAP_ROTATE_MEGABYTES)sMiB" --silent "%(ENV_CAPTURE_FILTER)s" +startsecs=5 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_NETSNIFF)s +directory=%(ENV_PCAP_PATH)s +user=sensor diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/prune.conf b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/prune.conf new file mode 100644 index 0000000..2a16316 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/prune.conf @@ -0,0 +1,20 @@ +[group:prune] +programs=prune-pcap,prune-zeek + +[program:prune-pcap] +command=bash -l /usr/local/bin/prune_files.sh -p %(ENV_PCAP_PATH)s -t %(ENV_PCAP_MAX_DISK_FILL)s -i %(ENV_PCAP_PRUNE_CHECK_SECONDS)s -r +startsecs=5 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_PRUNE_PCAP)s +directory=%(ENV_PCAP_PATH)s + +[program:prune-zeek] +command=bash -l /usr/local/bin/prune_files.sh -p %(ENV_ZEEK_LOG_PATH)s -t %(ENV_ZEEK_MAX_DISK_FILL)s -i %(ENV_ZEEK_PRUNE_CHECK_SECONDS)s -r +startsecs=5 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_PRUNE_ZEEK)s +directory=%(ENV_ZEEK_LOG_PATH)s diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/tcpdump.template b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/tcpdump.template new file mode 100644 index 0000000..c6e3b35 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/tcpdump.template @@ -0,0 +1,9 @@ +[program:tcpdump-$IFACE] +command=/usr/sbin/tcpdump -i "$IFACE" -s %(ENV_PCAP_SNAPLEN)s -w "tcpdump-$IFACE_%(ENV_PCAP_TCPDUMP_FILENAME_PATTERN)s" -G %(ENV_PCAP_ROTATE_SECONDS)s -C %(ENV_PCAP_ROTATE_MEGABYTES)s -K -n "%(ENV_CAPTURE_FILTER)s" +startsecs=5 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_TCPDUMP)s +directory=%(ENV_PCAP_PATH)s +user=sensor diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/zeek.conf b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/zeek.conf new file mode 100644 index 0000000..1786d53 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.d/zeek.conf @@ -0,0 +1,110 @@ +[group:zeek] +programs=zeekctl,watcher,virustotal,clamav,yara,capa,malass,logger + +[program:zeekctl] +command=/opt/zeek/bin/zeekdeploy.sh +startsecs=10 +stopwaitsecs=15 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_AUTOSTART_ZEEK)s +directory=%(ENV_ZEEK_LOG_PATH)s +user=sensor + +[program:watcher] +command=/usr/bin/python3 /usr/local/bin/zeek_carve_watcher.py + --start-sleep 90 + --min-bytes %(ENV_EXTRACTED_FILE_MIN_BYTES)s + --max-bytes %(ENV_EXTRACTED_FILE_MAX_BYTES)s + --directory "%(ENV_ZEEK_LOG_PATH)s/extract_files" +startsecs=100 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_ZEEK_FILE_WATCH)s +directory=%(ENV_ZEEK_LOG_PATH)s +user=sensor + +[program:virustotal] +command=/usr/bin/python3 /usr/local/bin/zeek_carve_scanner.py + --start-sleep 20 + --vtot-api "%(ENV_VTOT_API2_KEY)s" + --req-limit %(ENV_VTOT_REQUESTS_PER_MINUTE)s +startsecs=30 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_ZEEK_FILE_SCAN_VTOT)s +directory=%(ENV_ZEEK_LOG_PATH)s +user=sensor + +[program:clamav] +command=/usr/bin/python3 /usr/local/bin/zeek_carve_scanner.py + --start-sleep 20 + --clamav %(ENV_ZEEK_FILE_SCAN_CLAMAV)s + --clamav-socket "%(ENV_SUPERVISOR_PATH)s/clamav/clamd.ctl" + --req-limit %(ENV_CLAMD_MAX_REQUESTS)s +startsecs=30 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_ZEEK_FILE_SCAN_CLAMAV)s +directory=%(ENV_ZEEK_LOG_PATH)s +user=sensor + +[program:yara] +command=/usr/bin/python3 /usr/local/bin/zeek_carve_scanner.py + --start-sleep 20 + --yara %(ENV_ZEEK_FILE_SCAN_YARA)s + --yara-custom-only "%(ENV_EXTRACTED_FILE_YARA_CUSTOM_ONLY)s" + --req-limit %(ENV_YARA_MAX_REQUESTS)s +startsecs=30 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_ZEEK_FILE_SCAN_YARA)s +directory=%(ENV_ZEEK_LOG_PATH)s +user=sensor + +[program:capa] +command=/usr/bin/python3 /usr/local/bin/zeek_carve_scanner.py + --start-sleep 20 + --capa %(ENV_ZEEK_FILE_SCAN_CAPA)s + --capa-verbose %(ENV_CAPA_VERBOSE)s + --req-limit %(ENV_CAPA_MAX_REQUESTS)s +startsecs=30 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_ZEEK_FILE_SCAN_CAPA)s +directory=%(ENV_ZEEK_LOG_PATH)s +user=sensor + +[program:malass] +command=/usr/bin/python3 /usr/local/bin/zeek_carve_scanner.py + --start-sleep 20 + --malass-host "%(ENV_MALASS_HOST)s" + --malass-port %(ENV_MALASS_PORT)s + --req-limit %(ENV_MALASS_MAX_REQUESTS)s +startsecs=30 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_ZEEK_FILE_SCAN_MALASS)s +directory=%(ENV_ZEEK_LOG_PATH)s +user=sensor + +[program:logger] +command=/usr/bin/python3 /usr/local/bin/zeek_carve_logger.py + --start-sleep 10 + --preserve "%(ENV_EXTRACTED_FILE_PRESERVATION)s" + --directory "%(ENV_ZEEK_LOG_PATH)s/extract_files" + --zeek-log "%(ENV_ZEEK_LOG_PATH)s/logs/current/signatures(_carved).log" +startsecs=20 +startretries=3 +stopasgroup=true +killasgroup=true +autostart=%(ENV_ZEEK_FILE_WATCH)s +directory=%(ENV_ZEEK_LOG_PATH)s +user=sensor diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.init/moloch_config_populate.sh b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.init/moloch_config_populate.sh new file mode 100755 index 0000000..cedae15 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.init/moloch_config_populate.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +export ARKIME_HTTPS_FLAG="" + +if [[ -n $SUPERVISOR_PATH ]] && [[ -r "$SUPERVISOR_PATH"/moloch/config.ini ]]; then + + ARKIME_CONFIG_FILE="$SUPERVISOR_PATH"/moloch/config.ini + + # capture interface(s) + if [[ -n $CAPTURE_INTERFACE ]]; then + # in config.ini multiple interfaces are separated by ; + ARKIME_CAPTURE_INTERFACE="$(echo "$CAPTURE_INTERFACE" | sed "s/,/;/g")" + # place capture interfaces in the config file + sed -r -i "s|(interface)\s*=\s*.*|\1=$ARKIME_CAPTURE_INTERFACE|" "$ARKIME_CONFIG_FILE" + fi + + # stick elasticsearch connection information in moloch config file + if [[ -n $ES_PROTOCOL ]] && [[ -n $ES_HOST ]]; then + + # build elasticsearch URL for moloch-capture + ARKIME_ELASTICSEARCH="${ES_PROTOCOL}://" + + if [[ -n $ES_USERNAME ]] && [[ -n $ES_PASSWORD ]]; then + ARKIME_ELASTICSEARCH+="${ES_USERNAME}:${ES_PASSWORD}@" + fi + + ARKIME_ELASTICSEARCH+="${ES_HOST}" + + if [[ -n $ES_PORT ]]; then + ARKIME_ELASTICSEARCH+=":${ES_PORT}" + else + ARKIME_ELASTICSEARCH+=":9200" + fi + + # place the URL in the config file + sed -r -i "s|(elasticsearch)\s*=\s*.*|\1=$ARKIME_ELASTICSEARCH|" "$ARKIME_CONFIG_FILE" + fi + + # if SSL certificate verification is turned off, supply the --insecure flag + if [[ -n $ES_SSL_VERIFY ]] && [ "$ES_SSL_VERIFY" = none ]; then + export ARKIME_HTTPS_FLAG="--insecure" + fi + + # convert pcap rotation size units (MB to GB) and stick in config file + if [[ -n $PCAP_ROTATE_MEGABYTES ]]; then + PCAP_ROTATE_GIGABYTES=$(echo "($PCAP_ROTATE_MEGABYTES + 1024 - 1)/1024" | bc) + sed -r -i "s/(maxFileSizeG)\s*=\s*.*/\1=$PCAP_ROTATE_GIGABYTES/" "$ARKIME_CONFIG_FILE" + fi + + # convert pcap rotation time units (sec to min) and stick in config file + if [[ -n $PCAP_ROTATE_SECONDS ]]; then + PCAP_ROTATE_MINUTES=$(echo "($PCAP_ROTATE_SECONDS + 60 - 1)/60" | bc) + sed -r -i "s/(maxFileTimeM)\s*=\s*.*/\1=$PCAP_ROTATE_MINUTES/" "$ARKIME_CONFIG_FILE" + fi + + # identify node in session metadata for PCAP reachback + PRIMARY_IP=$(ip route get 255.255.255.255 | grep -Po '(?<=src )(\d{1,3}.){4}' | sed "s/ //g") + export ARKIME_NODE_NAME="$(hostname --long)" + export ARKIME_NODE_HOST="$PRIMARY_IP" + + # get sensor user-owned copies of the moloch-capture lookup files into /opt/sensor/sensor_ctl/moloch + rsync -a --update /opt/moloch/etc/{ipv4-address-space.csv,oui.txt,GeoLite2-Country.mmdb,GeoLite2-ASN.mmdb} /opt/sensor/sensor_ctl/moloch/ + chmod 600 /opt/sensor/sensor_ctl/moloch/{ipv4-address-space.csv,oui.txt,GeoLite2-Country.mmdb,GeoLite2-ASN.mmdb} + + # update the firewall ACL (via ufw) to allow retrieval of packets + sudo --non-interactive /usr/local/bin/ufw_allow_viewer.sh + + # make sure interface flags are set appropriately for capture + if [[ -n $CAPTURE_INTERFACE ]]; then + IFS="," + for IFACE_NAME in $CAPTURE_INTERFACE; do + sudo --non-interactive /usr/local/bin/nic-capture-setup.sh "$IFACE_NAME" >/dev/null 2>&1 + done + unset IFS + fi + +fi diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.sh b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.sh new file mode 100755 index 0000000..1415b4c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisor.sh @@ -0,0 +1,98 @@ +#!/bin/bash + +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +set -e + +CONFIG_DIR="supervisor.d" +CONFIG_FILE="supervisord.conf" +CONTROL_VARS_FILE="control_vars.conf" +CAPTURE_GROUPS_FILE="capture-groups.conf" + +function join_by { local IFS="$1"; shift; echo "$*"; } + +# Create config files for each capture interface for the various capture programs (tcpdump, netsniff) +# so that supervisord can manage instances of each of these programs for each interface. +# zeek is now managed by zeekctl (via zeekdeploy.sh) rather than individually by supervisord so that +# we can use load balancing +function CreateCaptureConfigs() { + + declare -a CAPTURE_PROGS=("tcpdump" "netsniff") + + if [[ -d ./"$CONFIG_DIR" ]]; then + rm -f ./"$CONFIG_DIR"/"$CAPTURE_GROUPS_FILE" + + for PROG in "${CAPTURE_PROGS[@]}"; do + declare -a PROG_GROUP=() + + # remove any old .conf files for this capture program, we'll create them all fresh + rm -f ./"$CONFIG_DIR"/$PROG*.conf + if [[ -n $CAPTURE_INTERFACE ]]; then + + # for each capture interface, expand the capture program's template and substitute for the $IFACE variable + for IFACE in ${CAPTURE_INTERFACE//,/ }; do + if [[ -r ./"$CONFIG_DIR"/$PROG.template ]]; then + + # expand $IFACE into interface name in a new configuration file + export $IFACE + sed -e "s/[$]IFACE/${IFACE}/g" ./"$CONFIG_DIR"/$PROG.template > ./"$CONFIG_DIR"/$PROG-"$IFACE".conf + + # if there needs to be a working directory for supervisord to manage this program, create it now + WORK_DIR=$(eval echo "$(grep ^directory= ./"$CONFIG_DIR"/$PROG-"$IFACE".conf | sed "s/^directory=//" | sed "s/%(ENV_\(\w*\))s/$\1/")") + mkdir -p "$WORK_DIR" 2>/dev/null || true + + # get new program name for group inclusion + INSTANCE_NAME="$(grep '^\[program:' ./"$CONFIG_DIR"/$PROG-"$IFACE".conf | sed "s/^\[program://" | sed "s/\]$//")" + PROG_GROUP+=($INSTANCE_NAME) + + fi # capture program template exists + done # loop over capture interfaces + + fi # capture interface(s) defined + + if (( ${#PROG_GROUP[@]} )); then + GROUP_PROGS="$(join_by , "${PROG_GROUP[@]}")" + # define group config file + echo "[group:$PROG]" >> ./"$CONFIG_DIR"/"$CAPTURE_GROUPS_FILE" + echo "programs=$GROUP_PROGS" >> ./"$CONFIG_DIR"/"$CAPTURE_GROUPS_FILE" + echo "" >> ./"$CONFIG_DIR"/"$CAPTURE_GROUPS_FILE" + fi + + done # loop over capture programs + fi # config dir exists +} + +# force-navigate to script directory (containing config file) +[[ "$(uname -s)" = 'Darwin' ]] && REALPATH=grealpath || REALPATH=realpath +[[ "$(uname -s)" = 'Darwin' ]] && DIRNAME=gdirname || DIRNAME=dirname +if ! (type "$REALPATH" && type "$DIRNAME") > /dev/null; then + echo "$(basename "${BASH_SOURCE[0]}") requires $REALPATH and $DIRNAME" + exit 1 +fi +# SUPERVISOR_PATH is exported to be referenced in supervisord.conf +export SUPERVISOR_PATH="$($DIRNAME $($REALPATH -e "${BASH_SOURCE[0]}"))" +pushd "$SUPERVISOR_PATH" >/dev/null 2>&1 + +source "$CONTROL_VARS_FILE" + +CreateCaptureConfigs + +mkdir -p "$SUPERVISOR_PATH/"{log,run} +rm -f "$SUPERVISOR_PATH/"/log/* + +mkdir -p "$ZEEK_LOG_PATH/" 2>/dev/null || true +mkdir -p "$PCAP_PATH/" 2>/dev/null || true + +if [ -d "$SUPERVISOR_PATH/"/supervisor.init ]; then + popd >/dev/null 2>&1 + set +e + for INIT_FILE in "$SUPERVISOR_PATH/"/supervisor.init/*; do + source "${INIT_FILE}" >/dev/null 2>&1 + done + set -e + pushd "$SUPERVISOR_PATH" >/dev/null 2>&1 +fi + +supervisord -c "$CONFIG_FILE" + +popd >/dev/null 2>&1 diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisord.conf b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisord.conf new file mode 100644 index 0000000..ac64ef2 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_ctl/supervisord.conf @@ -0,0 +1,27 @@ +; 1. requires supervisor +; - install with Python pip (eg., "pip install supervisor"), +; or with your package manager (eg., "apt-get install supervisor") +; 2. start supervisord with local supervisor.sh script +; 3. manage services with symlinks to local control.sh +; - eg., start -> control.sh, stop -> control.sh, etc. + +; see http://supervisord.org/configuration.html for supervisor documentation + +[unix_http_server] +file=%(ENV_SUPERVISOR_PATH)s/run/supervisor.sock ; (the path to the socket file for supervisorctl) +chmod=0700 + +[supervisord] +nodaemon=false +logfile=%(ENV_SUPERVISOR_PATH)s/log/supervisord.log +pidfile=%(ENV_SUPERVISOR_PATH)s/run/supervisord.pid +childlogdir=%(ENV_SUPERVISOR_PATH)s/log + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix://%(ENV_SUPERVISOR_PATH)s/run/supervisor.sock + +[include] +files = %(ENV_SUPERVISOR_PATH)s/supervisor.d/*.conf diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/__init__.py b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/__main__.py b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/__main__.py new file mode 100644 index 0000000..cde8d11 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/__main__.py @@ -0,0 +1,3 @@ +from .routes import app + +app.run() diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/routes.py b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/routes.py new file mode 100644 index 0000000..2b4bb6c --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/routes.py @@ -0,0 +1,147 @@ +# Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +import psutil, time, json, logging, os +from .sysquery import sys_service as sys_s +from flask import render_template, send_from_directory +from flask import Flask +from flask_cors import CORS + +''' + Application Configuration +''' +APP_ROOT = os.path.dirname(os.path.abspath(__file__)) # refers to application_top +APP_STATIC = os.path.join(APP_ROOT, 'static') + +app = Flask(__name__) +CORS(app) + +''' + Logging configuration + Purpose: Remove the GET requests and other things to just error level records +''' +# logging.getLogger('flask_cors').level = logging.DEBUG +# log = logging.getLogger('werkzeug') +# log.setLevel(logging.ERROR) + +''' + Time Setup + int = seconds +''' +period = 1 + +''' + Web Pages +''' + + +@app.route('/') +def index(): + return render_template('system_block.html') + + +@app.route('/buttons') +def buttons(): + return render_template('buttons.html') + + +''' + Services +''' + + +@app.route('/script_call/', methods=['POST']) +def activate_service(script): + print(script) + return sys_s.service(script) + + +''' + System Queries +''' + + +@app.route('/update', methods=['GET']) +def update_stats(): + + req_time = int(time.time()) + + disk_write_data_start = psutil.disk_io_counters(perdisk=False) + io_data_start = psutil.net_io_counters() + + # Some metrics are only reported in values since uptime, + # so sample over a period (in seconds) to get rate. + + time.sleep(period) + + cpu_data = psutil.cpu_percent(interval=None) + ram_data = psutil.virtual_memory() + + # contains all disk data (with total size >= 1GB) + disks_data = list(filter(lambda y: y[1][0] >= 1000000000, [(x.mountpoint, psutil.disk_usage(x.mountpoint)) for x in psutil.disk_partitions()])) + + disks_idx = (req_time // 6) % len(disks_data) + + # contains "currently displayed" disk data (cycles based on time) + disk_mount = disks_data[disks_idx][0] + disk_data = disks_data[disks_idx][1] + + disk_write_data = psutil.disk_io_counters(perdisk=False) + io_data = psutil.net_io_counters() + + data = { + 'cpu': { + 'percent': cpu_data + }, + 'ram': { + 'percent': ram_data[2], + 'total': ram_data[0], + 'used': ram_data[3] + }, + 'disks': [], # todo: work in progress + 'disk': { + 'mount': disk_mount, + 'total': disk_data[0], + 'used': disk_data[1], + 'percent': disk_data[3] + }, + 'disk_io': { + 'read_bytes_sec': (disk_write_data[2] - disk_write_data_start[2]) + / period, + 'write_bytes_sec': (disk_write_data[3] - disk_write_data_start[3]) + / period + }, + 'net_io': { + 'sent_bytes_sec': (io_data[0] - io_data_start[0]) / period, + 'received_bytes_sec': (io_data[1] - io_data_start[1]) / period + } + } + for disk_data in disks_data: + data['disks'].append({'mount': disk_data[0], + 'total': disk_data[1][0], + 'used': disk_data[1][1], + 'percent': disk_data[1][3]}) + + return json.dumps(data) + + +''' + Javascript servicing +''' + + +@app.route('/load', methods=['GET']) +def read_dash(): + with open(os.path.join(APP_STATIC, 'dashboard/dashboard.json')) as f: + data = json.load(f) + + return json.dumps(data) + + +@app.route('/plugins/thirdparty/') +def serve_static(filename): + dir = os.path.join(APP_STATIC, 'js') + return send_from_directory(dir, filename) + + +if __name__ == "__main__": + app.run() diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/css/custom.css b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/css/custom.css new file mode 100644 index 0000000..f24de0f --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/css/custom.css @@ -0,0 +1,93 @@ +/* fallback */ +@font-face { + font-family: 'Material Icons'; + font-style: normal; + font-weight: 400; + src: url('../icons/icons.woff2') format('woff2'); +} + +.material-icons { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + font-size: 24px; + line-height: 1; + letter-spacing: normal; + text-transform: none; + display: inline-block; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -moz-font-feature-settings: 'liga'; + -moz-osx-font-smoothing: grayscale; +} + +.square_card { + width: 100%; + height: 100%; +} + +.square_card_start > .mdl-card__title { + color: #fff; + background-color: #00c853; +} + +.square_card_stop > .mdl-card__title { + color: #fff; + background-color: #aa5500; +} + +.square_card_status > .mdl-card__title { + color: #fff; + background-color: #42A5F5; +} + +.square_card_clean > .mdl-card__title { + color: #fff; + background-color: #b71c1c; +} + +.square_card_system > .mdl-card__title { + color: #fff; + background-color: #26a69a; +} + +.mdl-grid { + overflow: hidden; +} + +.mdl-spinner { + width: 284px; + height: 284px; + margin: auto; +} + +.mdl-spinner__circle { + border-width: 6px; +} + +.modal { + display: none; + position: absolute; + overflow: auto; + z-index: 1; + margin: auto; +} + +#myLoading { + background-color: transparent; + width: 100%; + height: 100%; + box-shadow: inset 0 0 490px black; + margin: auto; + margin-top: -75px; +} + +.center { + margin: auto; + width: 50%; + padding: 10px; + overflow: hidden; + justify-content: center; +} + diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/css/freeboard.min.css b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/css/freeboard.min.css new file mode 100755 index 0000000..7e9a0ef --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/css/freeboard.min.css @@ -0,0 +1,2621 @@ +.cm-s-ambiance .cm-keyword { + color: #cda869 +} + +.cm-s-ambiance .cm-atom { + color: #CF7EA9 +} + +.cm-s-ambiance .cm-number { + color: #78CF8A +} + +.cm-s-ambiance .cm-def { + color: #aac6e3 +} + +.cm-s-ambiance .cm-variable { + color: #ffb795 +} + +.cm-s-ambiance .cm-variable-2 { + color: #eed1b3 +} + +.cm-s-ambiance .cm-variable-3 { + color: #faded3 +} + +.cm-s-ambiance .cm-property { + color: #eed1b3 +} + +.cm-s-ambiance .cm-operator { + color: #fa8d6a +} + +.cm-s-ambiance .cm-comment { + color: #555; + font-style: italic +} + +.cm-s-ambiance .cm-string { + color: #8f9d6a +} + +.cm-s-ambiance .cm-string-2 { + color: #9d937c +} + +.cm-s-ambiance .cm-meta { + color: #D2A8A1 +} + +.cm-s-ambiance .cm-qualifier { + color: #ff0 +} + +.cm-s-ambiance .cm-builtin { + color: #99c +} + +.cm-s-ambiance .cm-bracket { + color: #24C2C7 +} + +.cm-s-ambiance .cm-tag { + color: #fee4ff +} + +.cm-s-ambiance .cm-attribute { + color: #9B859D +} + +.cm-s-ambiance .cm-header { + color: #00f +} + +.cm-s-ambiance .cm-quote { + color: #24C2C7 +} + +.cm-s-ambiance .cm-hr { + color: pink +} + +.cm-s-ambiance .cm-link { + color: #F4C20B +} + +.cm-s-ambiance .cm-special { + color: #FF9D00 +} + +.cm-s-ambiance .cm-error { + color: #AF2018 +} + +.cm-s-ambiance .CodeMirror-matchingbracket { + color: #0f0 +} + +.cm-s-ambiance .CodeMirror-nonmatchingbracket { + color: #f22 +} + +.cm-s-ambiance .CodeMirror-selected { + background: rgba(255, 255, 255, .15) +} + +.cm-s-ambiance.CodeMirror-focused .CodeMirror-selected { + background: rgba(255, 255, 255, .1) +} + +.cm-s-ambiance.CodeMirror { + line-height: 1.4em; + color: #E6E1DC; + background-color: #202020; + -webkit-box-shadow: inset 0 0 10px #000; + -moz-box-shadow: inset 0 0 10px #000; + box-shadow: inset 0 0 10px #000 +} + +.cm-s-ambiance .CodeMirror-gutters { + background: #3D3D3D; + border-right: 1px solid #4D4D4D; + box-shadow: 0 10px 20px #000 +} + +.cm-s-ambiance .CodeMirror-linenumber { + text-shadow: 0 1px 1px #4d4d4d; + color: #222; + padding: 0 5px +} + +.cm-s-ambiance .CodeMirror-lines .CodeMirror-cursor { + border-left: 1px solid #7991E8 +} + +.cm-s-ambiance .CodeMirror-activeline-background { + background: none repeat scroll 0 0 rgba(255, 255, 255, .031) +} + +.cm-s-ambiance.CodeMirror, .cm-s-ambiance .CodeMirror-gutters { + background-image: url("data:image/png;base64,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") +} + +.CodeMirror { + font-family: monospace; + height: 300px +} + +.CodeMirror-scroll { + overflow: auto +} + +.CodeMirror-lines { + padding: 4px 0 +} + +.CodeMirror pre { + padding: 0 4px +} + +.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + background-color: #fff +} + +.CodeMirror-gutters { + border-right: 1px solid #ddd; + background-color: #f7f7f7; + white-space: nowrap +} + +.CodeMirror-linenumbers { +} + +.CodeMirror-linenumber { + padding: 0 3px 0 5px; + min-width: 20px; + text-align: right; + color: #999; + -moz-box-sizing: content-box; + box-sizing: content-box +} + +.CodeMirror div.CodeMirror-cursor { + border-left: 1px solid #000 +} + +.CodeMirror div.CodeMirror-secondarycursor { + border-left: 1px solid silver +} + +.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor { + width: auto; + border: 0; + background: #7e7 +} + +div.CodeMirror-overwrite div.CodeMirror-cursor { +} + +.cm-tab { + display: inline-block +} + +.CodeMirror-ruler { + border-left: 1px solid #ccc; + position: absolute +} + +.cm-s-default .cm-keyword { + color: #708 +} + +.cm-s-default .cm-atom { + color: #219 +} + +.cm-s-default .cm-number { + color: #164 +} + +.cm-s-default .cm-def { + color: #00f +} + +.cm-s-default .cm-variable, .cm-s-default .cm-punctuation, .cm-s-default .cm-property, .cm-s-default .cm-operator { +} + +.cm-s-default .cm-variable-2 { + color: #05a +} + +.cm-s-default .cm-variable-3 { + color: #085 +} + +.cm-s-default .cm-comment { + color: #a50 +} + +.cm-s-default .cm-string { + color: #a11 +} + +.cm-s-default .cm-string-2 { + color: #f50 +} + +.cm-s-default .cm-meta { + color: #555 +} + +.cm-s-default .cm-qualifier { + color: #555 +} + +.cm-s-default .cm-builtin { + color: #30a +} + +.cm-s-default .cm-bracket { + color: #997 +} + +.cm-s-default .cm-tag { + color: #170 +} + +.cm-s-default .cm-attribute { + color: #00c +} + +.cm-s-default .cm-header { + color: #00f +} + +.cm-s-default .cm-quote { + color: #090 +} + +.cm-s-default .cm-hr { + color: #999 +} + +.cm-s-default .cm-link { + color: #00c +} + +.cm-negative { + color: #d44 +} + +.cm-positive { + color: #292 +} + +.cm-header, .cm-strong { + font-weight: 700 +} + +.cm-em { + font-style: italic +} + +.cm-link { + text-decoration: underline +} + +.cm-s-default .cm-error { + color: red +} + +.cm-invalidchar { + color: red +} + +div.CodeMirror span.CodeMirror-matchingbracket { + color: #0f0 +} + +div.CodeMirror span.CodeMirror-nonmatchingbracket { + color: #f22 +} + +.CodeMirror-activeline-background { + background: #e8f2ff +} + +.CodeMirror { + line-height: 1; + position: relative; + overflow: hidden; + background: #fff; + color: #000 +} + +.CodeMirror-scroll { + margin-bottom: -30px; + margin-right: -30px; + padding-bottom: 30px; + height: 100%; + outline: 0; + position: relative; + -moz-box-sizing: content-box; + box-sizing: content-box +} + +.CodeMirror-sizer { + position: relative; + border-right: 30px solid transparent; + -moz-box-sizing: content-box; + box-sizing: content-box +} + +.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + position: absolute; + z-index: 6; + display: none +} + +.CodeMirror-vscrollbar { + right: 0; + top: 0; + overflow-x: hidden; + overflow-y: scroll +} + +.CodeMirror-hscrollbar { + bottom: 0; + left: 0; + overflow-y: hidden; + overflow-x: scroll +} + +.CodeMirror-scrollbar-filler { + right: 0; + bottom: 0 +} + +.CodeMirror-gutter-filler { + left: 0; + bottom: 0 +} + +.CodeMirror-gutters { + position: absolute; + left: 0; + top: 0; + padding-bottom: 30px; + z-index: 3 +} + +.CodeMirror-gutter { + white-space: normal; + height: 100%; + -moz-box-sizing: content-box; + box-sizing: content-box; + padding-bottom: 30px; + margin-bottom: -32px; + display: inline-block; + *zoom: 1; + *display: inline +} + +.CodeMirror-gutter-elt { + position: absolute; + cursor: default; + z-index: 4 +} + +.CodeMirror-lines { + cursor: text +} + +.CodeMirror pre { + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; + border-width: 0; + background: transparent; + font-family: inherit; + font-size: inherit; + margin: 0; + white-space: pre; + word-wrap: normal; + line-height: inherit; + color: inherit; + z-index: 2; + position: relative; + overflow: visible +} + +.CodeMirror-wrap pre { + word-wrap: break-word; + white-space: pre-wrap; + word-break: normal +} + +.CodeMirror-linebackground { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + z-index: 0 +} + +.CodeMirror-linewidget { + position: relative; + z-index: 2; + overflow: auto +} + +.CodeMirror-widget { +} + +.CodeMirror-wrap .CodeMirror-scroll { + overflow-x: hidden +} + +.CodeMirror-measure { + position: absolute; + width: 100%; + height: 0; + overflow: hidden; + visibility: hidden +} + +.CodeMirror-measure pre { + position: static +} + +.CodeMirror div.CodeMirror-cursor { + position: absolute; + border-right: 0; + width: 0 +} + +div.CodeMirror-cursors { + visibility: hidden; + position: relative; + z-index: 1 +} + +.CodeMirror-focused div.CodeMirror-cursors { + visibility: visible +} + +.CodeMirror-selected { + background: #d9d9d9 +} + +.CodeMirror-focused .CodeMirror-selected { + background: #d7d4f0 +} + +.CodeMirror-crosshair { + cursor: crosshair +} + +.cm-searching { + background: #ffa; + background: rgba(255, 255, 0, .4) +} + +.CodeMirror span { + *vertical-align: text-bottom +} + +.cm-force-border { + padding-right: .1px +} + +@media print { + .CodeMirror div.CodeMirror-cursors { + visibility: hidden + } +} + +/*! gridster.js - v0.1.0 - 2013-06-14 - * http://gridster.net/ - Copyright (c) 2013 ducksboard; Licensed MIT */ +.gridster { + position: relative +} + +.gridster > * { + margin: 0 auto; + -webkit-transition: height .4s; + -moz-transition: height .4s; + -o-transition: height .4s; + -ms-transition: height .4s; + transition: height .4s +} + +.gridster .gs_w { + z-index: 2; + position: absolute +} + +.ready .gs_w:not(.preview-holder) { + -webkit-transition: opacity .3s, left .3s, top .3s; + -moz-transition: opacity .3s, left .3s, top .3s; + -o-transition: opacity .3s, left .3s, top .3s; + transition: opacity .3s, left .3s, top .3s +} + +.ready .gs_w:not(.preview-holder) { + -webkit-transition: opacity .3s, left .3s, top .3s, width .3s, height .3s; + -moz-transition: opacity .3s, left .3s, top .3s, width .3s, height .3s; + -o-transition: opacity .3s, left .3s, top .3s, width .3s, height .3s; + transition: opacity .3s, left .3s, top .3s, width .3s, height .3s +} + +.gridster .preview-holder { + z-index: 1; + position: absolute; + background-color: #fff; + border-color: #fff; + opacity: .3 +} + +.gridster .player-revert { + z-index: 10 !important; + -webkit-transition: left .3s, top .3s !important; + -moz-transition: left .3s, top .3s !important; + -o-transition: left .3s, top .3s !important; + transition: left .3s, top .3s !important +} + +.gridster .dragging { + z-index: 10 !important; + -webkit-transition: all 0s !important; + -moz-transition: all 0s !important; + -o-transition: all 0s !important; + transition: all 0s !important +} + +/*! normalize.css v2.1.2 | MIT License | git.io/normalize */ +article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { + display: block +} + +audio, canvas, video { + display: inline-block +} + +audio:not([controls]) { + display: none; + height: 0 +} + +[hidden] { + display: none +} + +html { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100% +} + +body { + margin: 0 +} + +a:focus { + outline: thin dotted +} + +a:active, a:hover { + outline: 0 +} + +h1 { + font-size: 2em; + margin: .67em 0 +} + +abbr[title] { + border-bottom: 1px dotted +} + +b, strong { + font-weight: 700 +} + +dfn { + font-style: italic +} + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0 +} + +mark { + background: #ff0; + color: #000 +} + +code, kbd, pre, samp { + font-family: monospace, serif; + font-size: 1em +} + +pre { + white-space: pre-wrap +} + +q { + quotes: "\201C" "\201D" "\2018" "\2019" +} + +small { + font-size: 80% +} + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline +} + +sup { + top: -.5em +} + +sub { + bottom: -.25em +} + +img { + border: 0 +} + +svg:not(:root) { + overflow: hidden +} + +figure { + margin: 0 +} + +fieldset { + border: 1px solid silver; + margin: 0 2px; + padding: .35em .625em .75em +} + +legend { + border: 0; + padding: 0 +} + +button, input, select, textarea { + font-family: inherit; + font-size: 100%; + margin: 0 +} + +button, input { + line-height: normal +} + +button, select { + text-transform: none +} + +button, html input[type=button], input[type=reset], input[type=submit] { + -webkit-appearance: button; + cursor: pointer +} + +button[disabled], html input[disabled] { + cursor: default +} + +input[type=checkbox], input[type=radio] { + box-sizing: border-box; + padding: 0 +} + +input[type=search] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box +} + +input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration { + -webkit-appearance: none +} + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0 +} + +textarea { + overflow: auto; + vertical-align: top +} + +table { + border-collapse: collapse; + border-spacing: 0 +} + +html { + background-color: #101214; + height: 100%; + overflow: hidden +} + +body { + background-color: #101214; + color: #8b8b8b; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 20px; + height: 100%; + overflow-x: hidden; + overflow-y: auto +} + +.modal { + position: absolute; + background-color: #2a2a2a; + top: 120px; + width: 900px; + margin: auto; + right: 0; + left: 0; + margin-bottom: 25px +} + +.modal.small { + max-width: 500px; + width: 100% +} + +.modal header { + background-color: #272727; + height: 40px; + margin: 0; + padding: 0 10px; + color: #8b8b8b; + text-transform: uppercase +} + +.modal footer { + background-color: #272727; + height: 40px; + margin: 0; + color: #8b8b8b; + text-transform: uppercase; + clear: both +} + +.modal footer { + text-align: right +} + +.modal footer .text-button { + line-height: 40px; + padding-left: 15px; + padding-right: 15px; + display: inline-block +} + +.modal section { + padding: 25px; + padding-bottom: 55px +} + +.control-group:last-child { + margin-bottom: 0 +} + +.control-group { + margin-bottom: 16px +} + +.control-group:before, .control-group:after { + display: table; + line-height: 0; + content: "" +} + +.control-group:after { + clear: both +} + +.control-label { + padding-top: 5px; + text-align: right; + text-transform: uppercase; + font-size: 11px +} + +.controls { + padding-left: 20px; + margin-left: 180px +} + +.input-suffix { + display: inline-block; + height: 22px; + padding: 4px 10px; + line-height: 23px; + vertical-align: middle; + text-transform: uppercase; + font-size: 11px; + min-width: 16px +} + +#plugin-description { + margin-bottom: 25px +} + +.align-right { + text-align: right +} + +select, textarea { + margin: 0; + font-size: 100%; + vertical-align: middle +} + +select, textarea, input[type=text], input[type=password], input[type=datetime], input[type=datetime-local], input[type=date], input[type=month], input[type=time], input[type=week], input[type=number], input[type=email], input[type=url], input[type=search], input[type=tel], input[type=color], .uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + font-size: 14px; + line-height: 20px; + color: #d3d4d4; + vertical-align: middle; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: -px; + width: 400px +} + +input, textarea { + width: 206px +} + +input.small, textarea.small { + width: 133px +} + +textarea { + height: auto +} + +textarea, input[type=text], input[type=password], input[type=datetime], input[type=datetime-local], input[type=date], input[type=month], input[type=time], input[type=week], input[type=number], input[type=email], input[type=url], input[type=search], input[type=tel], input[type=color], .uneditable-input { + background-color: #272727; + border: 1px solid #3d3d3d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border linear .2s, box-shadow linear .2s; + -moz-transition: border linear .2s, box-shadow linear .2s; + -o-transition: border linear .2s, box-shadow linear .2s; + transition: border linear .2s, box-shadow linear .2s +} + +textarea:focus, input[type=text]:focus, input[type=password]:focus, input[type=datetime]:focus, input[type=datetime-local]:focus, input[type=date]:focus, input[type=month]:focus, input[type=time]:focus, input[type=week]:focus, input[type=number]:focus, input[type=email]:focus, input[type=url]:focus, input[type=search]:focus, input[type=tel]:focus, input[type=color]:focus, .uneditable-input:focus { + border-color: rgba(255, 153, 0, .8); + outline: 0; + outline: thin dotted \9; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px #f90; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px #f90; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px #f90 +} + +select { + width: 220px; + background-color: #272727; + height: 27px +} + +h1, h2, h3, h4, h5, h6 { + margin: 10px 0; + font-family: inherit; + font-weight: 700; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility +} + +h1, h2, h3 { + line-height: 40px +} + +h1 { + font-size: 38.5px +} + +h2 { + font-size: 31.5px +} + +h3 { + font-size: 24.5px +} + +h4 { + font-size: 17.5px +} + +h5 { + font-size: 14px +} + +h6 { + font-size: 11.9px +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0 +} + +.table { + width: 100%; + margin-bottom: 20px +} + +.table th, .table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #ddd +} + +.table th { + font-weight: 700 +} + +.table thead th { + vertical-align: bottom +} + +.table caption + thead tr:first-child th, .table caption + thead tr:first-child td, .table colgroup + thead tr:first-child th, .table colgroup + thead tr:first-child td, .table thead:first-child tr:first-child th, .table thead:first-child tr:first-child td { + border-top: 0 +} + +.table tbody + tbody { + border-top: 2px solid #ddd +} + +.table .table { + background-color: #fff +} + +.table-condensed th, .table-condensed td { + padding: 2px 5px +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +#modal_overlay { + position: absolute; + z-index: 100; + top: 0; + left: 0; + height: 100%; + width: 100%; + background: rgba(0, 0, 0, .8); + overflow-y: auto +} + +a:hover, a:active { + outline: 0 +} + +a { + color: #B88F51; + text-decoration: none +} + +a:hover, a:focus { + color: #005580; + text-decoration: underline +} + +.gridster header { + background-color: #272727; + height: 30px; + margin: 0; + padding: 0 10px; + color: #8b8b8b; + text-transform: uppercase +} + +header h1 { + font-size: 12px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + padding: 0; + margin: 0; + line-height: 30px +} + +.gridster section { + line-height: normal; + bottom: 0; + left: 0; + right: 0; + margin: auto; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis +} + +#board-content { + overflow: visible; + position: relative; + padding-top: 10px +} + +#main-header { + width: 100%; + position: fixed; + z-index: 50; + display: none +} + +#admin-bar { + background-color: #313131; + width: 100%; + height: 200px; + position: relative; + -webkit-box-shadow: 0 0 5px #000; + box-shadow: 0 0 5px #000 +} + +#toggle-header { + margin: 0 auto; + left: 0; + right: 0; + width: 50px; + background-color: #313131; + text-align: center; + cursor: pointer +} + +#toggle-header-icon { + margin-top: 4px; + margin-bottom: 7px +} + +.widget { + padding: 5px 10px; + height: 100%; + width: 100%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.widget.fillsize { + padding: 0 +} + +.pane-tools { + top: 0; + right: 0; + position: absolute; + display: none +} + +.sub-section-tools { + top: 0; + right: 0; + position: absolute; + display: none +} + +.datasource-edit-btn { + padding: 5px; + margin-right: 5px; + cursor: pointer +} + +.datasource-delete-btn { + padding: 5px; + margin-left: 5px; + cursor: pointer +} + +#board-tools { + width: 50%; + float: left +} + +.table thead th { + font-size: 10px; + text-shadow: none +} + +.table td { + border-top: solid 1px #3d3d3d; + color: #d3d4d4 +} + +#datasources { + width: 50%; + float: right; + height: 100% +} + +#cam { + height: 100%; + background-size: cover +} + +#admin-menu { + left: 0; + right: 0; + width: 950px; + top: 20px; + margin: 0 auto; + padding-left: 10px; + padding-right: 10px; + position: absolute; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.sub-section h2 { + font-size: 14px; + font-weight: 400; + padding: 0; + margin: 0; + line-height: normal +} + +.sub-section { + padding: 0; + border-bottom: solid 1px #363636; + position: relative; + overflow: hidden +} + +.sub-section-height-1 { + height: 60px +} + +.sub-section-height-2 { + height: 120px +} + +.sub-section-height-3 { + height: 180px +} + +.sub-section-height-4 { + height: 240px +} + +.sub-section:last-of-type { + border-bottom: 0 +} + +#pump-icon { + padding: 10px; + padding-bottom: 12px; + display: none +} + +#admin-menu h1 { +} + +.section-title { + min-height: 7px +} + +.small-text { + color: #d3d4d4; + font-size: 20px; + font-weight: 100; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + overflow: hidden; + text-overflow: ellipsis; + letter-spacing: 1px +} + +ul, ol { + list-style: none +} + +#column-tools { + position: relative; + display: none; + margin: 0 auto; + left: 0; + right: 0; + top: 5px +} + +#column-tools .left-columns { + position: absolute; + left: 0 +} + +#column-tools .right-columns { + position: absolute; + right: 0 +} + +.column-tool { + cursor: pointer +} + +.column-tool.min.sub, .column-tool.max.add { + display: none +} + +.column-icon { + display: inline-block; + background-color: #fff; + width: 5px; + height: 100% +} + +.column-icon.right { + float: right +} + +.column-icon.left { + float: left +} + +.gridster { + max-width: 960px; + margin: 0 auto; + left: 0; + right: 0; + top: 0 +} + +.gridster .gs_w { + background: #2a2a2a; + padding: 0; + margin: 0; + overflow: hidden; + z-index: auto; + -webkit-touch-callout: text; + -webkit-user-select: text; + -khtml-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text +} + +.gridster .preview-holder { + border: 0 !important; + border-radius: 0 !important; + background: rgba(255, 255, 255, .2) !important +} + +[class^=icon-], [class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url(../img/glyphicons-halflings.png); + background-position: 14px 14px; + background-repeat: no-repeat +} + +.icon-white, .nav-pills > .active > a > [class^=icon-], .nav-pills > .active > a > [class*=" icon-"], .nav-list > .active > a > [class^=icon-], .nav-list > .active > a > [class*=" icon-"], .navbar-inverse .nav > .active > a > [class^=icon-], .navbar-inverse .nav > .active > a > [class*=" icon-"], .dropdown-menu > li > a:hover > [class^=icon-], .dropdown-menu > li > a:focus > [class^=icon-], .dropdown-menu > li > a:hover > [class*=" icon-"], .dropdown-menu > li > a:focus > [class*=" icon-"], .dropdown-menu > .active > a > [class^=icon-], .dropdown-menu > .active > a > [class*=" icon-"], .dropdown-submenu:hover > a > [class^=icon-], .dropdown-submenu:focus > a > [class^=icon-], .dropdown-submenu:hover > a > [class*=" icon-"], .dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url(../img/glyphicons-halflings-white.png) +} + +.icon-glass { + background-position: 0 0 +} + +.icon-music { + background-position: -24px 0 +} + +.icon-search { + background-position: -48px 0 +} + +.icon-envelope { + background-position: -72px 0 +} + +.icon-heart { + background-position: -96px 0 +} + +.icon-star { + background-position: -120px 0 +} + +.icon-star-empty { + background-position: -144px 0 +} + +.icon-user { + background-position: -168px 0 +} + +.icon-film { + background-position: -192px 0 +} + +.icon-th-large { + background-position: -216px 0 +} + +.icon-th { + background-position: -240px 0 +} + +.icon-th-list { + background-position: -264px 0 +} + +.icon-ok { + background-position: -288px 0 +} + +.icon-remove { + background-position: -312px 0 +} + +.icon-zoom-in { + background-position: -336px 0 +} + +.icon-zoom-out { + background-position: -360px 0 +} + +.icon-off { + background-position: -384px 0 +} + +.icon-signal { + background-position: -408px 0 +} + +.icon-cog { + background-position: -432px 0 +} + +.icon-trash { + background-position: -456px 0 +} + +.icon-home { + background-position: 0 -24px +} + +.icon-file { + background-position: -24px -24px +} + +.icon-time { + background-position: -48px -24px +} + +.icon-road { + background-position: -72px -24px +} + +.icon-download-alt { + background-position: -96px -24px +} + +.icon-download { + background-position: -120px -24px +} + +.icon-upload { + background-position: -144px -24px +} + +.icon-inbox { + background-position: -168px -24px +} + +.icon-play-circle { + background-position: -192px -24px +} + +.icon-repeat { + background-position: -216px -24px +} + +.icon-refresh { + background-position: -240px -24px +} + +.icon-list-alt { + background-position: -264px -24px +} + +.icon-lock { + background-position: -287px -24px +} + +.icon-flag { + background-position: -312px -24px +} + +.icon-headphones { + background-position: -336px -24px +} + +.icon-volume-off { + background-position: -360px -24px +} + +.icon-volume-down { + background-position: -384px -24px +} + +.icon-volume-up { + background-position: -408px -24px +} + +.icon-qrcode { + background-position: -432px -24px +} + +.icon-barcode { + background-position: -456px -24px +} + +.icon-tag { + background-position: 0 -48px +} + +.icon-tags { + background-position: -25px -48px +} + +.icon-book { + background-position: -48px -48px +} + +.icon-bookmark { + background-position: -72px -48px +} + +.icon-print { + background-position: -96px -48px +} + +.icon-camera { + background-position: -120px -48px +} + +.icon-font { + background-position: -144px -48px +} + +.icon-bold { + background-position: -167px -48px +} + +.icon-italic { + background-position: -192px -48px +} + +.icon-text-height { + background-position: -216px -48px +} + +.icon-text-width { + background-position: -240px -48px +} + +.icon-align-left { + background-position: -264px -48px +} + +.icon-align-center { + background-position: -288px -48px +} + +.icon-align-right { + background-position: -312px -48px +} + +.icon-align-justify { + background-position: -336px -48px +} + +.icon-list { + background-position: -360px -48px +} + +.icon-indent-left { + background-position: -384px -48px +} + +.icon-indent-right { + background-position: -408px -48px +} + +.icon-facetime-video { + background-position: -432px -48px +} + +.icon-picture { + background-position: -456px -48px +} + +.icon-pencil { + background-position: 0 -72px +} + +.icon-map-marker { + background-position: -24px -72px +} + +.icon-adjust { + background-position: -48px -72px +} + +.icon-tint { + background-position: -72px -72px +} + +.icon-edit { + background-position: -96px -72px +} + +.icon-share { + background-position: -120px -72px +} + +.icon-check { + background-position: -144px -72px +} + +.icon-move { + background-position: -168px -72px +} + +.icon-step-backward { + background-position: -192px -72px +} + +.icon-fast-backward { + background-position: -216px -72px +} + +.icon-backward { + background-position: -240px -72px +} + +.icon-play { + background-position: -264px -72px +} + +.icon-pause { + background-position: -288px -72px +} + +.icon-stop { + background-position: -312px -72px +} + +.icon-forward { + background-position: -336px -72px +} + +.icon-fast-forward { + background-position: -360px -72px +} + +.icon-step-forward { + background-position: -384px -72px +} + +.icon-eject { + background-position: -408px -72px +} + +.icon-chevron-left { + background-position: -432px -72px +} + +.icon-chevron-right { + background-position: -456px -72px +} + +.icon-plus-sign { + background-position: 0 -96px +} + +.icon-minus-sign { + background-position: -24px -96px +} + +.icon-remove-sign { + background-position: -48px -96px +} + +.icon-ok-sign { + background-position: -72px -96px +} + +.icon-question-sign { + background-position: -96px -96px +} + +.icon-info-sign { + background-position: -120px -96px +} + +.icon-screenshot { + background-position: -144px -96px +} + +.icon-remove-circle { + background-position: -168px -96px +} + +.icon-ok-circle { + background-position: -192px -96px +} + +.icon-ban-circle { + background-position: -216px -96px +} + +.icon-arrow-left { + background-position: -240px -96px +} + +.icon-arrow-right { + background-position: -264px -96px +} + +.icon-arrow-up { + background-position: -289px -96px +} + +.icon-arrow-down { + background-position: -312px -96px +} + +.icon-share-alt { + background-position: -336px -96px +} + +.icon-resize-full { + background-position: -360px -96px +} + +.icon-resize-small { + background-position: -384px -96px +} + +.icon-plus { + background-position: -408px -96px +} + +.icon-minus { + background-position: -433px -96px +} + +.icon-asterisk { + background-position: -456px -96px +} + +.icon-exclamation-sign { + background-position: 0 -120px +} + +.icon-gift { + background-position: -24px -120px +} + +.icon-leaf { + background-position: -48px -120px +} + +.icon-fire { + background-position: -72px -120px +} + +.icon-eye-open { + background-position: -96px -120px +} + +.icon-eye-close { + background-position: -120px -120px +} + +.icon-warning-sign { + background-position: -144px -120px +} + +.icon-plane { + background-position: -168px -120px +} + +.icon-calendar { + background-position: -192px -120px +} + +.icon-random { + width: 16px; + background-position: -216px -120px +} + +.icon-comment { + background-position: -240px -120px +} + +.icon-magnet { + background-position: -264px -120px +} + +.icon-chevron-up { + background-position: -288px -120px +} + +.icon-chevron-down { + background-position: -313px -119px +} + +.icon-retweet { + background-position: -336px -120px +} + +.icon-shopping-cart { + background-position: -360px -120px +} + +.icon-folder-close { + width: 16px; + background-position: -384px -120px +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px +} + +.icon-resize-vertical { + background-position: -432px -119px +} + +.icon-resize-horizontal { + background-position: -456px -118px +} + +.icon-hdd { + background-position: 0 -144px +} + +.icon-bullhorn { + background-position: -24px -144px +} + +.icon-bell { + background-position: -48px -144px +} + +.icon-certificate { + background-position: -72px -144px +} + +.icon-thumbs-up { + background-position: -96px -144px +} + +.icon-thumbs-down { + background-position: -120px -144px +} + +.icon-hand-right { + background-position: -144px -144px +} + +.icon-hand-left { + background-position: -168px -144px +} + +.icon-hand-up { + background-position: -192px -144px +} + +.icon-hand-down { + background-position: -216px -144px +} + +.icon-circle-arrow-right { + background-position: -240px -144px +} + +.icon-circle-arrow-left { + background-position: -264px -144px +} + +.icon-circle-arrow-up { + background-position: -288px -144px +} + +.icon-circle-arrow-down { + background-position: -312px -144px +} + +.icon-globe { + background-position: -336px -144px +} + +.icon-wrench { + background-position: -360px -144px +} + +.icon-tasks { + background-position: -384px -144px +} + +.icon-filter { + background-position: -408px -144px +} + +.icon-briefcase { + background-position: -432px -144px +} + +.icon-fullscreen { + background-position: -456px -144px +} + +.form-table td { + vertical-align: top +} + +.form-label { + text-align: right; + padding-right: 14px; + height: 42px; + float: left; + width: 160px; + padding-top: 4px +} + +.form-value { + float: left +} + +.form-row { + clear: both +} + +td.table-row-operation { +} + +input.table-row-value { + width: 150px; + margin: 0 +} + +.sub-table { + margin-bottom: 3px +} + +.sub-table td { + border: 0; + vertical-align: middle +} + +.form-table-value-subtable { + max-height: 110px; + overflow-x: hidden; + overflow-y: auto; + border-bottom: solid 1px #3d3d3d; + width: 414px +} + +.datasource-list-container { + max-height: 110px; + overflow-x: hidden; + overflow-y: auto; + border-bottom: solid 1px #3d3d3d +} + +ul.value-dropdown { + height: 75px; + position: absolute; + padding: 0; + margin: 0; + background-color: #272727; + border: 1px solid rgba(255, 153, 0, .8); + overflow-x: hidden; + overflow-y: auto; + z-index: 3001 +} + +ul.value-dropdown li { + padding: 5px; + cursor: pointer +} + +ul.value-dropdown li.selected { + background-color: rgba(255, 153, 0, .8); + color: #000; + text-shadow: none +} + +ul.value-dropdown li .preview { + font-style: italic; + font-size: 10px; + width: 300px; + display: inline-block; + vertical-align: bottom; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + padding-left: 20px +} + +td.form-table-value > input[type=checkbox] { + height: 15px; + margin-top: 7px +} + +.table-row-operation > i { + cursor: pointer +} + +#main-logo { + display: block; + margin-bottom: 20px +} + +#dash-logo { + display: block; + margin-left: 10px; + margin-bottom: 10px +} + +.value-editor-ds { + color: #B88F51; + cursor: pointer +} + +ul.board-toolbar { + padding: 0; + margin: 0; + text-transform: uppercase; + font-size: 11px +} + +ul.board-toolbar.vertical { + display: inline-block +} + +.board-toolbar li { + color: #B88F51; + float: left; + cursor: pointer; + margin: 0 0 0 5px; + background-color: rgba(75, 75, 75, 0); + padding: 8px; + height: 14px +} + +.board-toolbar.vertical li { + float: none +} + +.board-toolbar li:hover { + background-color: rgba(75, 75, 75, 1); + -webkit-transition: 250ms linear; + -moz-transition: 250ms linear; + -o-transition: 250ms linear; + -ms-transition: 250ms linear; + transition: 250ms linear +} + +.board-toolbar li i { + float: left; + margin: 0; + padding: 0 +} + +.board-toolbar li label { + cursor: pointer; + margin-left: 5px; + float: left; + margin-top: -3px; + margin-bottom: -10px +} + +.text-button { + color: #B88F51; + cursor: pointer; + text-transform: uppercase +} + +.datasource-name { + text-transform: none +} + +a:hover.text-button, a:focus.text-button { + color: #B88F51; + text-decoration: none +} + +.text-button > i { + margin-right: 10px +} + +.text-button::before, .text-button::after { + display: inline-block; + opacity: 0; + -webkit-transition: -webkit-transform .3s, opacity .2s; + -moz-transition: -moz-transform .3s, opacity .2s; + transition: transform .3s, opacity .2s +} + +.text-button::before { + margin-right: 5px; + content: '['; + -webkit-transform: translateX(10px); + -moz-transform: translateX(10px); + transform: translateX(10px) +} + +.text-button::after { + margin-left: 5px; + content: ']'; + -webkit-transform: translateX(-10px); + -moz-transform: translateX(-10px); + transform: translateX(-10px) +} + +.text-button:hover::before, .text-button:hover::after, .text-button:focus::before, .text-button:focus::after { + opacity: 1; + -webkit-transform: translateX(0px); + -moz-transform: translateX(0px); + transform: translateX(0px) +} + +.setting-description { + font-size: 10px; + text-shadow: none; + color: #6F6F6F; + margin-top: 5px; + margin-bottom: 15px; + max-width: 414px; + line-height: 1.5em +} + +.calculated-setting-row { + clear: both; + height: 30px; + margin-bottom: 5px +} + +textarea.calculated-value-input { + position: absolute; + width: 400px; + height: 20px; + resize: none; + white-space: nowrap; + overflow: auto; + Z-index: 3000 +} + +ul.datasource-input-suffix { + margin-left: 409px +} + +.form-label .board-toolbar li { + float: right +} + +.styled-select select { + width: 414px; + height: 30px; + -webkit-appearance: none; + border: 1px solid #3d3d3d; + background: url(../img/dropdown-arrow.png) no-repeat right #272727 +} + +.title { + font-family: Helvetica-Neue, Helvetica, Arial, sans-serif; + vertical-align: baseline; + -webkit-font-smoothing: antialiased; + font-style: normal; + color: #d3d4d4 +} + +.title.bordered { + border: solid 3px #d3d4d4; + display: inline-block; + padding: 2px 17px; + line-height: 39px +} + +h1.title { + margin-bottom: 10px; + font-size: 23px; + letter-spacing: -1px +} + +h2.title { + font-size: 13px; + line-height: 20px; + margin: 0; + padding-top: 10px; + padding-bottom: 10px +} + +.form-value input[type=checkbox] { + margin-top: 8px +} + +.table-operation { + font-size: 11px; + padding-left: 5px; + padding-bottom: 5px; + padding-top: 1px +} + +#add-pane { +} + +#pane-holding-pen { + display: none +} + +@media screen and (max-width: 960px) { + #add-pane { + padding-top: 10px + } + + .text-button { + font-size: 14px; + line-height: 22px + } + + h1.title { + margin-bottom: 0; + font-size: 13px; + letter-spacing: 0 + } + + .title.bordered { + padding: 1px 8px; + line-height: 25px; + border-width: 2px + } + + #admin-menu { + width: 100% + } + + h2.title { + font-size: 10px; + padding-top: 5px; + padding-bottom: 5px + } + + #board-tools { + width: 100% + } + + #datasources { + width: 100%; + float: none; + clear: both + } + + #board-actions { + float: left + } + + #board-logo { + float: left + } + + .modal header { + height: 30px + } + + .modal { + width: 100%; + top: 0; + left: 0 + } + + .datasource-list-container { + max-height: 77px + } + + .form-label { + float: none; + height: auto; + width: auto; + text-align: left; + padding-top: 0 + } + + .form-value { + width: 100%; + padding-bottom: 10px; + float: none + } + + .control-label { + width: auto + } + + .modal section { + padding-bottom: 10px; + padding-top: 10px + } + + ul.datasource-input-suffix { + margin-left: 0; + margin-bottom: 30px + } + + ul.datasource-input-suffix li { + margin-left: 0 + } + + textarea, input[type=text] { + width: 95% + } + + .styled-select select { + width: 100% + } + + .form-table-value-subtable { + width: 100% + } + + .table-operation { + font-size: 11px + } + + textarea.calculated-value-input { + position: inherit; + width: 95% + } +} + +.wrapperloading { + position: absolute; + height: 200px; + width: 200px; + top: 50%; + margin-top: -100px; + left: 50%; + margin-left: -100px; + z-index: 2000 +} + +.wrapperloading .loading.up { + position: absolute; + height: 200px; + width: 200px; + border-radius: 150px; + border: 3px solid #fff; + border-top-color: #fff; + border-left-color: #555; + border-right-color: #555; + border-bottom-color: #fff; + -webkit-animation: rotation 3s linear infinite; + -moz-animation: rotation 3s linear infinite; + -o-animation: rotation 3s linear infinite; + animation: rotation 3s linear infinite +} + +.wrapperloading .loading.down { + position: absolute; + height: 100px; + width: 100px; + top: 50%; + margin-top: -50px; + left: 50%; + margin-left: -50px; + border-radius: 150px; + border: 3px solid #fff; + border-left-color: #fff; + border-top-color: #555; + border-bottom-color: #555; + border-right-color: #fff; + -webkit-animation: rotation 1s linear infinite; + -moz-animation: rotation 1s linear infinite; + -o-animation: rotation 1s linear infinite; + animation: rotation 1s linear infinite +} + +@-webkit-keyframes rotation { + 0% { + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg) + } + 50% { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg) + } + 100% { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +@-moz-keyframes rotation { + 0% { + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg) + } + 50% { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg) + } + 100% { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +@-o-keyframes rotation { + 0% { + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg) + } + 50% { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg) + } + 100% { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +@keyframes rotation { + 0% { + -webkit-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg) + } + 50% { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg) + } + 100% { + -webkit-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { + color: #636363 +} + +input:-moz-placeholder, textarea:-moz-placeholder { + color: #636363 +} + +::-webkit-scrollbar { + height: 0; + width: 4px; + background: transparent; + padding-right: 10 +} + +::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, .05); + -webkit-border-radius: 1ex +} + +::-webkit-scrollbar-corner { + background: transparent +} + +.validation-error { + margin-top: 7px; + margin-bottom: 7px; + color: #AA7575; + font-size: 13px +} + +.onoffswitch { + position: relative; + width: 78px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none +} + +.onoffswitch-checkbox { + display: none +} + +.onoffswitch-label { + display: block; + overflow: hidden; + cursor: pointer; + border: 1px solid #3D3D3D; + border-radius: 0 +} + +.onoffswitch-inner { + width: 200%; + margin-left: -100%; + -moz-transition: margin .3s ease-in 0s; + -webkit-transition: margin .3s ease-in 0s; + -o-transition: margin .3s ease-in 0s; + transition: margin .3s ease-in 0s +} + +.onoffswitch-inner .on, .onoffswitch-inner .off { + float: left; + width: 50%; + height: 29px; + padding: 0; + line-height: 29px; + font-size: 17px; + color: #fff; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.onoffswitch-inner .on { + padding-left: 6px; + background-color: #2a2a2a; + color: #8B8B8B +} + +.onoffswitch-inner .off { + padding-right: 6px; + background-color: #101214; + color: #8B8B8B; + text-align: right +} + +.onoffswitch-switch { + width: 21px; + margin: 4px; + background: #A1A1A1; + border: 1px solid #3D3D3D; + border-radius: 0; + position: absolute; + top: 0; + bottom: 0; + right: 47px; + -moz-transition: all .3s ease-in 0s; + -webkit-transition: all .3s ease-in 0s; + -o-transition: all .3s ease-in 0s; + transition: all .3s ease-in 0s +} + +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { + margin-left: 0 +} + +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { + right: 0; + background-color: #F90 +} + +.code-window { + z-index: 5000; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #2a2a2a +} + +.code-window-footer { + height: 64px; + position: absolute; + right: 0; + bottom: 0; + line-height: 64px; + padding-right: 20px; + padding-left: 20px +} + +.code-window-header { + position: absolute; + top: 0; + left: 0; + padding: 20px; + line-height: 1.1em; + font-weight: 200 +} + +@media screen and (max-width: 800px) { + .code-window-header { + font-size: 11px + } +} + +.code-mirror-wrapper { + width: 100%; + position: absolute; + bottom: 64px; + top: 100px; + left: 0 +} + +.CodeMirror { + width: 100%; + height: 100% !important +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/css/material.css b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/css/material.css new file mode 100644 index 0000000..8625ad6 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/css/material.css @@ -0,0 +1,7002 @@ +/** + * material-design-lite - Material Design Components in CSS, JS and HTML + * @version v1.0.1 + * @license Apache-2.0 + * @copyright 2015 Google, Inc. + * @link https://github.com/google/material-design-lite + */ +@charset "UTF-8"; +html { + color: rgba(0, 0, 0, .87) +} + +::-moz-selection { + background: #b3d4fc; + text-shadow: none +} + +::selection { + background: #b3d4fc; + text-shadow: none +} + +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0 +} + +audio, canvas, img, svg, video { + vertical-align: middle +} + +fieldset { + border: 0; + margin: 0; + padding: 0 +} + +textarea { + resize: vertical +} + +.browsehappy { + margin: .2em 0; + background: #ccc; + color: #000; + padding: .2em 0 +} + +.hidden { + display: none !important; + visibility: hidden +} + +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px +} + +.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto +} + +.invisible { + visibility: hidden +} + +.clearfix:before, .clearfix:after { + content: " "; + display: table +} + +.clearfix:after { + clear: both +} + +@media print { + *, *:before, *:after { + background: transparent !important; + color: #000 !important; + box-shadow: none !important; + text-shadow: none !important + } + + a, a:visited { + text-decoration: underline + } + + a[href]:after { + content: " (" attr(href) ")" + } + + abbr[title]:after { + content: " (" attr(title) ")" + } + + a[href^="#"]:after, a[href^="javascript:"]:after { + content: "" + } + + pre, blockquote { + border: 1px solid #999; + page-break-inside: avoid + } + + thead { + display: table-header-group + } + + tr, img { + page-break-inside: avoid + } + + img { + max-width: 100% !important + } + + p, h2, h3 { + orphans: 3; + widows: 3 + } + + h2, h3 { + page-break-after: avoid + } +} + +a, .mdl-accordion, .mdl-button, .mdl-card, .mdl-checkbox, .mdl-dropdown-menu, .mdl-icon-toggle, .mdl-item, .mdl-radio, .mdl-slider, .mdl-switch, .mdl-tabs__tab { + -webkit-tap-highlight-color: transparent; + -webkit-tap-highlight-color: rgba(255, 255, 255, 0) +} + +html { + width: 100%; + height: 100%; + -ms-touch-action: manipulation; + touch-action: manipulation +} + +body { + width: 100%; + min-height: 100% +} + +main { + display: block +} + +*[hidden] { + display: none !important +} + +html, body { + font-family: "Helvetica", "Arial", sans-serif; + font-size: 14px; + font-weight: 400; + line-height: 20px +} + +h1, h2, h3, h4, h5, h6, p { + padding: 0 +} + +h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-weight: 400; + line-height: 1.35; + letter-spacing: -.02em; + opacity: .54; + font-size: .6em +} + +h1 { + font-size: 56px; + line-height: 1.35; + letter-spacing: -.02em; + margin: 24px 0 +} + +h1, h2 { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-weight: 400 +} + +h2 { + font-size: 45px; + line-height: 48px +} + +h2, h3 { + margin: 24px 0 +} + +h3 { + font-size: 34px; + line-height: 40px +} + +h3, h4 { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-weight: 400 +} + +h4 { + font-size: 24px; + line-height: 32px; + -moz-osx-font-smoothing: grayscale; + margin: 24px 0 16px +} + +h5 { + font-size: 20px; + font-weight: 500; + line-height: 1; + letter-spacing: .02em +} + +h5, h6 { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + margin: 24px 0 16px +} + +h6 { + font-size: 16px; + letter-spacing: .04em +} + +h6, p { + font-weight: 400; + line-height: 24px +} + +p { + font-size: 14px; + letter-spacing: 0; + margin: 0 0 16px +} + +a { + color: rgb(255, 82, 82); + font-weight: 500 +} + +blockquote { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + position: relative; + font-size: 24px; + font-weight: 300; + font-style: italic; + line-height: 1.35; + letter-spacing: .08em +} + +blockquote:before { + position: absolute; + left: -.5em; + content: '“' +} + +blockquote:after { + content: '”'; + margin-left: -.05em +} + +mark { + background-color: #f4ff81 +} + +dt { + font-weight: 700 +} + +address { + font-size: 12px; + line-height: 1; + font-style: normal +} + +address, ul, ol { + font-weight: 400; + letter-spacing: 0 +} + +ul, ol { + font-size: 14px; + line-height: 24px +} + +.mdl-typography--display-4, .mdl-typography--display-4-color-contrast { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 112px; + font-weight: 300; + line-height: 1; + letter-spacing: -.04em +} + +.mdl-typography--display-4-color-contrast { + opacity: .54 +} + +.mdl-typography--display-3, .mdl-typography--display-3-color-contrast { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 56px; + font-weight: 400; + line-height: 1.35; + letter-spacing: -.02em +} + +.mdl-typography--display-3-color-contrast { + opacity: .54 +} + +.mdl-typography--display-2, .mdl-typography--display-2-color-contrast { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 45px; + font-weight: 400; + line-height: 48px +} + +.mdl-typography--display-2-color-contrast { + opacity: .54 +} + +.mdl-typography--display-1, .mdl-typography--display-1-color-contrast { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 34px; + font-weight: 400; + line-height: 40px +} + +.mdl-typography--display-1-color-contrast { + opacity: .54 +} + +.mdl-typography--headline, .mdl-typography--headline-color-contrast { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 24px; + font-weight: 400; + line-height: 32px; + -moz-osx-font-smoothing: grayscale +} + +.mdl-typography--headline-color-contrast { + opacity: .87 +} + +.mdl-typography--title, .mdl-typography--title-color-contrast { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 20px; + font-weight: 500; + line-height: 1; + letter-spacing: .02em +} + +.mdl-typography--title-color-contrast { + opacity: .87 +} + +.mdl-typography--subhead, .mdl-typography--subhead-color-contrast { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 16px; + font-weight: 400; + line-height: 24px; + letter-spacing: .04em +} + +.mdl-typography--subhead-color-contrast { + opacity: .87 +} + +.mdl-typography--body-2, .mdl-typography--body-2-color-contrast { + font-size: 14px; + font-weight: 700; + line-height: 24px; + letter-spacing: 0 +} + +.mdl-typography--body-2-color-contrast { + opacity: .87 +} + +.mdl-typography--body-1, .mdl-typography--body-1-color-contrast { + font-size: 14px; + font-weight: 400; + line-height: 24px; + letter-spacing: 0 +} + +.mdl-typography--body-1-color-contrast { + opacity: .87 +} + +.mdl-typography--body-2-force-preferred-font, .mdl-typography--body-2-force-preferred-font-color-contrast { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 14px; + font-weight: 500; + line-height: 24px; + letter-spacing: 0 +} + +.mdl-typography--body-2-force-preferred-font-color-contrast { + opacity: .87 +} + +.mdl-typography--body-1-force-preferred-font, .mdl-typography--body-1-force-preferred-font-color-contrast { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 14px; + font-weight: 400; + line-height: 24px; + letter-spacing: 0 +} + +.mdl-typography--body-1-force-preferred-font-color-contrast { + opacity: .87 +} + +.mdl-typography--caption, .mdl-typography--caption-force-preferred-font { + font-size: 12px; + font-weight: 400; + line-height: 1; + letter-spacing: 0 +} + +.mdl-typography--caption-force-preferred-font { + font-family: "Roboto", "Helvetica", "Arial", sans-serif +} + +.mdl-typography--caption-color-contrast, .mdl-typography--caption-force-preferred-font-color-contrast { + font-size: 12px; + font-weight: 400; + line-height: 1; + letter-spacing: 0; + opacity: .54 +} + +.mdl-typography--caption-force-preferred-font-color-contrast, .mdl-typography--menu { + font-family: "Roboto", "Helvetica", "Arial", sans-serif +} + +.mdl-typography--menu { + font-size: 14px; + font-weight: 500; + line-height: 1; + letter-spacing: 0 +} + +.mdl-typography--menu-color-contrast { + opacity: .87 +} + +.mdl-typography--menu-color-contrast, .mdl-typography--button, .mdl-typography--button-color-contrast { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 14px; + font-weight: 500; + line-height: 1; + letter-spacing: 0 +} + +.mdl-typography--button, .mdl-typography--button-color-contrast { + text-transform: uppercase +} + +.mdl-typography--button-color-contrast { + opacity: .87 +} + +.mdl-typography--text-left { + text-align: left +} + +.mdl-typography--text-right { + text-align: right +} + +.mdl-typography--text-center { + text-align: center +} + +.mdl-typography--text-justify { + text-align: justify +} + +.mdl-typography--text-nowrap { + white-space: nowrap +} + +.mdl-typography--text-lowercase { + text-transform: lowercase +} + +.mdl-typography--text-uppercase { + text-transform: uppercase +} + +.mdl-typography--text-capitalize { + text-transform: capitalize +} + +.mdl-typography--font-thin { + font-weight: 200 !important +} + +.mdl-typography--font-light { + font-weight: 300 !important +} + +.mdl-typography--font-regular { + font-weight: 400 !important +} + +.mdl-typography--font-medium { + font-weight: 500 !important +} + +.mdl-typography--font-bold { + font-weight: 700 !important +} + +.mdl-typography--font-black { + font-weight: 900 !important +} + +.mdl-color-text--red { + color: #f44336 !important +} + +.mdl-color--red { + background-color: #f44336 !important +} + +.mdl-color-text--red-50 { + color: #ffebee !important +} + +.mdl-color--red-50 { + background-color: #ffebee !important +} + +.mdl-color-text--red-100 { + color: #ffcdd2 !important +} + +.mdl-color--red-100 { + background-color: #ffcdd2 !important +} + +.mdl-color-text--red-200 { + color: #ef9a9a !important +} + +.mdl-color--red-200 { + background-color: #ef9a9a !important +} + +.mdl-color-text--red-300 { + color: #e57373 !important +} + +.mdl-color--red-300 { + background-color: #e57373 !important +} + +.mdl-color-text--red-400 { + color: #ef5350 !important +} + +.mdl-color--red-400 { + background-color: #ef5350 !important +} + +.mdl-color-text--red-500 { + color: #f44336 !important +} + +.mdl-color--red-500 { + background-color: #f44336 !important +} + +.mdl-color-text--red-600 { + color: #e53935 !important +} + +.mdl-color--red-600 { + background-color: #e53935 !important +} + +.mdl-color-text--red-700 { + color: #d32f2f !important +} + +.mdl-color--red-700 { + background-color: #d32f2f !important +} + +.mdl-color-text--red-800 { + color: #c62828 !important +} + +.mdl-color--red-800 { + background-color: #c62828 !important +} + +.mdl-color-text--red-900 { + color: #b71c1c !important +} + +.mdl-color--red-900 { + background-color: #b71c1c !important +} + +.mdl-color-text--red-A100 { + color: #ff8a80 !important +} + +.mdl-color--red-A100 { + background-color: #ff8a80 !important +} + +.mdl-color-text--red-A200 { + color: #ff5252 !important +} + +.mdl-color--red-A200 { + background-color: #ff5252 !important +} + +.mdl-color-text--red-A400 { + color: #ff1744 !important +} + +.mdl-color--red-A400 { + background-color: #ff1744 !important +} + +.mdl-color-text--red-A700 { + color: #d50000 !important +} + +.mdl-color--red-A700 { + background-color: #d50000 !important +} + +.mdl-color-text--pink { + color: #e91e63 !important +} + +.mdl-color--pink { + background-color: #e91e63 !important +} + +.mdl-color-text--pink-50 { + color: #fce4ec !important +} + +.mdl-color--pink-50 { + background-color: #fce4ec !important +} + +.mdl-color-text--pink-100 { + color: #f8bbd0 !important +} + +.mdl-color--pink-100 { + background-color: #f8bbd0 !important +} + +.mdl-color-text--pink-200 { + color: #f48fb1 !important +} + +.mdl-color--pink-200 { + background-color: #f48fb1 !important +} + +.mdl-color-text--pink-300 { + color: #f06292 !important +} + +.mdl-color--pink-300 { + background-color: #f06292 !important +} + +.mdl-color-text--pink-400 { + color: #ec407a !important +} + +.mdl-color--pink-400 { + background-color: #ec407a !important +} + +.mdl-color-text--pink-500 { + color: #e91e63 !important +} + +.mdl-color--pink-500 { + background-color: #e91e63 !important +} + +.mdl-color-text--pink-600 { + color: #d81b60 !important +} + +.mdl-color--pink-600 { + background-color: #d81b60 !important +} + +.mdl-color-text--pink-700 { + color: #c2185b !important +} + +.mdl-color--pink-700 { + background-color: #c2185b !important +} + +.mdl-color-text--pink-800 { + color: #ad1457 !important +} + +.mdl-color--pink-800 { + background-color: #ad1457 !important +} + +.mdl-color-text--pink-900 { + color: #880e4f !important +} + +.mdl-color--pink-900 { + background-color: #880e4f !important +} + +.mdl-color-text--pink-A100 { + color: #ff80ab !important +} + +.mdl-color--pink-A100 { + background-color: #ff80ab !important +} + +.mdl-color-text--pink-A200 { + color: #ff4081 !important +} + +.mdl-color--pink-A200 { + background-color: #ff4081 !important +} + +.mdl-color-text--pink-A400 { + color: #f50057 !important +} + +.mdl-color--pink-A400 { + background-color: #f50057 !important +} + +.mdl-color-text--pink-A700 { + color: #c51162 !important +} + +.mdl-color--pink-A700 { + background-color: #c51162 !important +} + +.mdl-color-text--purple { + color: #9c27b0 !important +} + +.mdl-color--purple { + background-color: #9c27b0 !important +} + +.mdl-color-text--purple-50 { + color: #f3e5f5 !important +} + +.mdl-color--purple-50 { + background-color: #f3e5f5 !important +} + +.mdl-color-text--purple-100 { + color: #e1bee7 !important +} + +.mdl-color--purple-100 { + background-color: #e1bee7 !important +} + +.mdl-color-text--purple-200 { + color: #ce93d8 !important +} + +.mdl-color--purple-200 { + background-color: #ce93d8 !important +} + +.mdl-color-text--purple-300 { + color: #ba68c8 !important +} + +.mdl-color--purple-300 { + background-color: #ba68c8 !important +} + +.mdl-color-text--purple-400 { + color: #ab47bc !important +} + +.mdl-color--purple-400 { + background-color: #ab47bc !important +} + +.mdl-color-text--purple-500 { + color: #9c27b0 !important +} + +.mdl-color--purple-500 { + background-color: #9c27b0 !important +} + +.mdl-color-text--purple-600 { + color: #8e24aa !important +} + +.mdl-color--purple-600 { + background-color: #8e24aa !important +} + +.mdl-color-text--purple-700 { + color: #7b1fa2 !important +} + +.mdl-color--purple-700 { + background-color: #7b1fa2 !important +} + +.mdl-color-text--purple-800 { + color: #6a1b9a !important +} + +.mdl-color--purple-800 { + background-color: #6a1b9a !important +} + +.mdl-color-text--purple-900 { + color: #4a148c !important +} + +.mdl-color--purple-900 { + background-color: #4a148c !important +} + +.mdl-color-text--purple-A100 { + color: #ea80fc !important +} + +.mdl-color--purple-A100 { + background-color: #ea80fc !important +} + +.mdl-color-text--purple-A200 { + color: #e040fb !important +} + +.mdl-color--purple-A200 { + background-color: #e040fb !important +} + +.mdl-color-text--purple-A400 { + color: #d500f9 !important +} + +.mdl-color--purple-A400 { + background-color: #d500f9 !important +} + +.mdl-color-text--purple-A700 { + color: #a0f !important +} + +.mdl-color--purple-A700 { + background-color: #a0f !important +} + +.mdl-color-text--deep-purple { + color: #673ab7 !important +} + +.mdl-color--deep-purple { + background-color: #673ab7 !important +} + +.mdl-color-text--deep-purple-50 { + color: #ede7f6 !important +} + +.mdl-color--deep-purple-50 { + background-color: #ede7f6 !important +} + +.mdl-color-text--deep-purple-100 { + color: #d1c4e9 !important +} + +.mdl-color--deep-purple-100 { + background-color: #d1c4e9 !important +} + +.mdl-color-text--deep-purple-200 { + color: #b39ddb !important +} + +.mdl-color--deep-purple-200 { + background-color: #b39ddb !important +} + +.mdl-color-text--deep-purple-300 { + color: #9575cd !important +} + +.mdl-color--deep-purple-300 { + background-color: #9575cd !important +} + +.mdl-color-text--deep-purple-400 { + color: #7e57c2 !important +} + +.mdl-color--deep-purple-400 { + background-color: #7e57c2 !important +} + +.mdl-color-text--deep-purple-500 { + color: #673ab7 !important +} + +.mdl-color--deep-purple-500 { + background-color: #673ab7 !important +} + +.mdl-color-text--deep-purple-600 { + color: #5e35b1 !important +} + +.mdl-color--deep-purple-600 { + background-color: #5e35b1 !important +} + +.mdl-color-text--deep-purple-700 { + color: #512da8 !important +} + +.mdl-color--deep-purple-700 { + background-color: #512da8 !important +} + +.mdl-color-text--deep-purple-800 { + color: #4527a0 !important +} + +.mdl-color--deep-purple-800 { + background-color: #4527a0 !important +} + +.mdl-color-text--deep-purple-900 { + color: #311b92 !important +} + +.mdl-color--deep-purple-900 { + background-color: #311b92 !important +} + +.mdl-color-text--deep-purple-A100 { + color: #b388ff !important +} + +.mdl-color--deep-purple-A100 { + background-color: #b388ff !important +} + +.mdl-color-text--deep-purple-A200 { + color: #7c4dff !important +} + +.mdl-color--deep-purple-A200 { + background-color: #7c4dff !important +} + +.mdl-color-text--deep-purple-A400 { + color: #651fff !important +} + +.mdl-color--deep-purple-A400 { + background-color: #651fff !important +} + +.mdl-color-text--deep-purple-A700 { + color: #6200ea !important +} + +.mdl-color--deep-purple-A700 { + background-color: #6200ea !important +} + +.mdl-color-text--indigo { + color: #3f51b5 !important +} + +.mdl-color--indigo { + background-color: #3f51b5 !important +} + +.mdl-color-text--indigo-50 { + color: #e8eaf6 !important +} + +.mdl-color--indigo-50 { + background-color: #e8eaf6 !important +} + +.mdl-color-text--indigo-100 { + color: #c5cae9 !important +} + +.mdl-color--indigo-100 { + background-color: #c5cae9 !important +} + +.mdl-color-text--indigo-200 { + color: #9fa8da !important +} + +.mdl-color--indigo-200 { + background-color: #9fa8da !important +} + +.mdl-color-text--indigo-300 { + color: #7986cb !important +} + +.mdl-color--indigo-300 { + background-color: #7986cb !important +} + +.mdl-color-text--indigo-400 { + color: #5c6bc0 !important +} + +.mdl-color--indigo-400 { + background-color: #5c6bc0 !important +} + +.mdl-color-text--indigo-500 { + color: #3f51b5 !important +} + +.mdl-color--indigo-500 { + background-color: #3f51b5 !important +} + +.mdl-color-text--indigo-600 { + color: #3949ab !important +} + +.mdl-color--indigo-600 { + background-color: #3949ab !important +} + +.mdl-color-text--indigo-700 { + color: #303f9f !important +} + +.mdl-color--indigo-700 { + background-color: #303f9f !important +} + +.mdl-color-text--indigo-800 { + color: #283593 !important +} + +.mdl-color--indigo-800 { + background-color: #283593 !important +} + +.mdl-color-text--indigo-900 { + color: #1a237e !important +} + +.mdl-color--indigo-900 { + background-color: #1a237e !important +} + +.mdl-color-text--indigo-A100 { + color: #8c9eff !important +} + +.mdl-color--indigo-A100 { + background-color: #8c9eff !important +} + +.mdl-color-text--indigo-A200 { + color: #536dfe !important +} + +.mdl-color--indigo-A200 { + background-color: #536dfe !important +} + +.mdl-color-text--indigo-A400 { + color: #3d5afe !important +} + +.mdl-color--indigo-A400 { + background-color: #3d5afe !important +} + +.mdl-color-text--indigo-A700 { + color: #304ffe !important +} + +.mdl-color--indigo-A700 { + background-color: #304ffe !important +} + +.mdl-color-text--blue { + color: #2196f3 !important +} + +.mdl-color--blue { + background-color: #2196f3 !important +} + +.mdl-color-text--blue-50 { + color: #e3f2fd !important +} + +.mdl-color--blue-50 { + background-color: #e3f2fd !important +} + +.mdl-color-text--blue-100 { + color: #bbdefb !important +} + +.mdl-color--blue-100 { + background-color: #bbdefb !important +} + +.mdl-color-text--blue-200 { + color: #90caf9 !important +} + +.mdl-color--blue-200 { + background-color: #90caf9 !important +} + +.mdl-color-text--blue-300 { + color: #64b5f6 !important +} + +.mdl-color--blue-300 { + background-color: #64b5f6 !important +} + +.mdl-color-text--blue-400 { + color: #42a5f5 !important +} + +.mdl-color--blue-400 { + background-color: #42a5f5 !important +} + +.mdl-color-text--blue-500 { + color: #2196f3 !important +} + +.mdl-color--blue-500 { + background-color: #2196f3 !important +} + +.mdl-color-text--blue-600 { + color: #1e88e5 !important +} + +.mdl-color--blue-600 { + background-color: #1e88e5 !important +} + +.mdl-color-text--blue-700 { + color: #1976d2 !important +} + +.mdl-color--blue-700 { + background-color: #1976d2 !important +} + +.mdl-color-text--blue-800 { + color: #1565c0 !important +} + +.mdl-color--blue-800 { + background-color: #1565c0 !important +} + +.mdl-color-text--blue-900 { + color: #0d47a1 !important +} + +.mdl-color--blue-900 { + background-color: #0d47a1 !important +} + +.mdl-color-text--blue-A100 { + color: #82b1ff !important +} + +.mdl-color--blue-A100 { + background-color: #82b1ff !important +} + +.mdl-color-text--blue-A200 { + color: #448aff !important +} + +.mdl-color--blue-A200 { + background-color: #448aff !important +} + +.mdl-color-text--blue-A400 { + color: #2979ff !important +} + +.mdl-color--blue-A400 { + background-color: #2979ff !important +} + +.mdl-color-text--blue-A700 { + color: #2962ff !important +} + +.mdl-color--blue-A700 { + background-color: #2962ff !important +} + +.mdl-color-text--light-blue { + color: #03a9f4 !important +} + +.mdl-color--light-blue { + background-color: #03a9f4 !important +} + +.mdl-color-text--light-blue-50 { + color: #e1f5fe !important +} + +.mdl-color--light-blue-50 { + background-color: #e1f5fe !important +} + +.mdl-color-text--light-blue-100 { + color: #b3e5fc !important +} + +.mdl-color--light-blue-100 { + background-color: #b3e5fc !important +} + +.mdl-color-text--light-blue-200 { + color: #81d4fa !important +} + +.mdl-color--light-blue-200 { + background-color: #81d4fa !important +} + +.mdl-color-text--light-blue-300 { + color: #4fc3f7 !important +} + +.mdl-color--light-blue-300 { + background-color: #4fc3f7 !important +} + +.mdl-color-text--light-blue-400 { + color: #29b6f6 !important +} + +.mdl-color--light-blue-400 { + background-color: #29b6f6 !important +} + +.mdl-color-text--light-blue-500 { + color: #03a9f4 !important +} + +.mdl-color--light-blue-500 { + background-color: #03a9f4 !important +} + +.mdl-color-text--light-blue-600 { + color: #039be5 !important +} + +.mdl-color--light-blue-600 { + background-color: #039be5 !important +} + +.mdl-color-text--light-blue-700 { + color: #0288d1 !important +} + +.mdl-color--light-blue-700 { + background-color: #0288d1 !important +} + +.mdl-color-text--light-blue-800 { + color: #0277bd !important +} + +.mdl-color--light-blue-800 { + background-color: #0277bd !important +} + +.mdl-color-text--light-blue-900 { + color: #01579b !important +} + +.mdl-color--light-blue-900 { + background-color: #01579b !important +} + +.mdl-color-text--light-blue-A100 { + color: #80d8ff !important +} + +.mdl-color--light-blue-A100 { + background-color: #80d8ff !important +} + +.mdl-color-text--light-blue-A200 { + color: #40c4ff !important +} + +.mdl-color--light-blue-A200 { + background-color: #40c4ff !important +} + +.mdl-color-text--light-blue-A400 { + color: #00b0ff !important +} + +.mdl-color--light-blue-A400 { + background-color: #00b0ff !important +} + +.mdl-color-text--light-blue-A700 { + color: #0091ea !important +} + +.mdl-color--light-blue-A700 { + background-color: #0091ea !important +} + +.mdl-color-text--cyan { + color: #00bcd4 !important +} + +.mdl-color--cyan { + background-color: #00bcd4 !important +} + +.mdl-color-text--cyan-50 { + color: #e0f7fa !important +} + +.mdl-color--cyan-50 { + background-color: #e0f7fa !important +} + +.mdl-color-text--cyan-100 { + color: #b2ebf2 !important +} + +.mdl-color--cyan-100 { + background-color: #b2ebf2 !important +} + +.mdl-color-text--cyan-200 { + color: #80deea !important +} + +.mdl-color--cyan-200 { + background-color: #80deea !important +} + +.mdl-color-text--cyan-300 { + color: #4dd0e1 !important +} + +.mdl-color--cyan-300 { + background-color: #4dd0e1 !important +} + +.mdl-color-text--cyan-400 { + color: #26c6da !important +} + +.mdl-color--cyan-400 { + background-color: #26c6da !important +} + +.mdl-color-text--cyan-500 { + color: #00bcd4 !important +} + +.mdl-color--cyan-500 { + background-color: #00bcd4 !important +} + +.mdl-color-text--cyan-600 { + color: #00acc1 !important +} + +.mdl-color--cyan-600 { + background-color: #00acc1 !important +} + +.mdl-color-text--cyan-700 { + color: #0097a7 !important +} + +.mdl-color--cyan-700 { + background-color: #0097a7 !important +} + +.mdl-color-text--cyan-800 { + color: #00838f !important +} + +.mdl-color--cyan-800 { + background-color: #00838f !important +} + +.mdl-color-text--cyan-900 { + color: #006064 !important +} + +.mdl-color--cyan-900 { + background-color: #006064 !important +} + +.mdl-color-text--cyan-A100 { + color: #84ffff !important +} + +.mdl-color--cyan-A100 { + background-color: #84ffff !important +} + +.mdl-color-text--cyan-A200 { + color: #18ffff !important +} + +.mdl-color--cyan-A200 { + background-color: #18ffff !important +} + +.mdl-color-text--cyan-A400 { + color: #00e5ff !important +} + +.mdl-color--cyan-A400 { + background-color: #00e5ff !important +} + +.mdl-color-text--cyan-A700 { + color: #00b8d4 !important +} + +.mdl-color--cyan-A700 { + background-color: #00b8d4 !important +} + +.mdl-color-text--teal { + color: #009688 !important +} + +.mdl-color--teal { + background-color: #009688 !important +} + +.mdl-color-text--teal-50 { + color: #e0f2f1 !important +} + +.mdl-color--teal-50 { + background-color: #e0f2f1 !important +} + +.mdl-color-text--teal-100 { + color: #b2dfdb !important +} + +.mdl-color--teal-100 { + background-color: #b2dfdb !important +} + +.mdl-color-text--teal-200 { + color: #80cbc4 !important +} + +.mdl-color--teal-200 { + background-color: #80cbc4 !important +} + +.mdl-color-text--teal-300 { + color: #4db6ac !important +} + +.mdl-color--teal-300 { + background-color: #4db6ac !important +} + +.mdl-color-text--teal-400 { + color: #26a69a !important +} + +.mdl-color--teal-400 { + background-color: #26a69a !important +} + +.mdl-color-text--teal-500 { + color: #009688 !important +} + +.mdl-color--teal-500 { + background-color: #009688 !important +} + +.mdl-color-text--teal-600 { + color: #00897b !important +} + +.mdl-color--teal-600 { + background-color: #00897b !important +} + +.mdl-color-text--teal-700 { + color: #00796b !important +} + +.mdl-color--teal-700 { + background-color: #00796b !important +} + +.mdl-color-text--teal-800 { + color: #00695c !important +} + +.mdl-color--teal-800 { + background-color: #00695c !important +} + +.mdl-color-text--teal-900 { + color: #004d40 !important +} + +.mdl-color--teal-900 { + background-color: #004d40 !important +} + +.mdl-color-text--teal-A100 { + color: #a7ffeb !important +} + +.mdl-color--teal-A100 { + background-color: #a7ffeb !important +} + +.mdl-color-text--teal-A200 { + color: #64ffda !important +} + +.mdl-color--teal-A200 { + background-color: #64ffda !important +} + +.mdl-color-text--teal-A400 { + color: #1de9b6 !important +} + +.mdl-color--teal-A400 { + background-color: #1de9b6 !important +} + +.mdl-color-text--teal-A700 { + color: #00bfa5 !important +} + +.mdl-color--teal-A700 { + background-color: #00bfa5 !important +} + +.mdl-color-text--green { + color: #4caf50 !important +} + +.mdl-color--green { + background-color: #4caf50 !important +} + +.mdl-color-text--green-50 { + color: #e8f5e9 !important +} + +.mdl-color--green-50 { + background-color: #e8f5e9 !important +} + +.mdl-color-text--green-100 { + color: #c8e6c9 !important +} + +.mdl-color--green-100 { + background-color: #c8e6c9 !important +} + +.mdl-color-text--green-200 { + color: #a5d6a7 !important +} + +.mdl-color--green-200 { + background-color: #a5d6a7 !important +} + +.mdl-color-text--green-300 { + color: #81c784 !important +} + +.mdl-color--green-300 { + background-color: #81c784 !important +} + +.mdl-color-text--green-400 { + color: #66bb6a !important +} + +.mdl-color--green-400 { + background-color: #66bb6a !important +} + +.mdl-color-text--green-500 { + color: #4caf50 !important +} + +.mdl-color--green-500 { + background-color: #4caf50 !important +} + +.mdl-color-text--green-600 { + color: #43a047 !important +} + +.mdl-color--green-600 { + background-color: #43a047 !important +} + +.mdl-color-text--green-700 { + color: #388e3c !important +} + +.mdl-color--green-700 { + background-color: #388e3c !important +} + +.mdl-color-text--green-800 { + color: #2e7d32 !important +} + +.mdl-color--green-800 { + background-color: #2e7d32 !important +} + +.mdl-color-text--green-900 { + color: #1b5e20 !important +} + +.mdl-color--green-900 { + background-color: #1b5e20 !important +} + +.mdl-color-text--green-A100 { + color: #b9f6ca !important +} + +.mdl-color--green-A100 { + background-color: #b9f6ca !important +} + +.mdl-color-text--green-A200 { + color: #69f0ae !important +} + +.mdl-color--green-A200 { + background-color: #69f0ae !important +} + +.mdl-color-text--green-A400 { + color: #00e676 !important +} + +.mdl-color--green-A400 { + background-color: #00e676 !important +} + +.mdl-color-text--green-A700 { + color: #00c853 !important +} + +.mdl-color--green-A700 { + background-color: #00c853 !important +} + +.mdl-color-text--light-green { + color: #8bc34a !important +} + +.mdl-color--light-green { + background-color: #8bc34a !important +} + +.mdl-color-text--light-green-50 { + color: #f1f8e9 !important +} + +.mdl-color--light-green-50 { + background-color: #f1f8e9 !important +} + +.mdl-color-text--light-green-100 { + color: #dcedc8 !important +} + +.mdl-color--light-green-100 { + background-color: #dcedc8 !important +} + +.mdl-color-text--light-green-200 { + color: #c5e1a5 !important +} + +.mdl-color--light-green-200 { + background-color: #c5e1a5 !important +} + +.mdl-color-text--light-green-300 { + color: #aed581 !important +} + +.mdl-color--light-green-300 { + background-color: #aed581 !important +} + +.mdl-color-text--light-green-400 { + color: #9ccc65 !important +} + +.mdl-color--light-green-400 { + background-color: #9ccc65 !important +} + +.mdl-color-text--light-green-500 { + color: #8bc34a !important +} + +.mdl-color--light-green-500 { + background-color: #8bc34a !important +} + +.mdl-color-text--light-green-600 { + color: #7cb342 !important +} + +.mdl-color--light-green-600 { + background-color: #7cb342 !important +} + +.mdl-color-text--light-green-700 { + color: #689f38 !important +} + +.mdl-color--light-green-700 { + background-color: #689f38 !important +} + +.mdl-color-text--light-green-800 { + color: #558b2f !important +} + +.mdl-color--light-green-800 { + background-color: #558b2f !important +} + +.mdl-color-text--light-green-900 { + color: #33691e !important +} + +.mdl-color--light-green-900 { + background-color: #33691e !important +} + +.mdl-color-text--light-green-A100 { + color: #ccff90 !important +} + +.mdl-color--light-green-A100 { + background-color: #ccff90 !important +} + +.mdl-color-text--light-green-A200 { + color: #b2ff59 !important +} + +.mdl-color--light-green-A200 { + background-color: #b2ff59 !important +} + +.mdl-color-text--light-green-A400 { + color: #76ff03 !important +} + +.mdl-color--light-green-A400 { + background-color: #76ff03 !important +} + +.mdl-color-text--light-green-A700 { + color: #64dd17 !important +} + +.mdl-color--light-green-A700 { + background-color: #64dd17 !important +} + +.mdl-color-text--lime { + color: #cddc39 !important +} + +.mdl-color--lime { + background-color: #cddc39 !important +} + +.mdl-color-text--lime-50 { + color: #f9fbe7 !important +} + +.mdl-color--lime-50 { + background-color: #f9fbe7 !important +} + +.mdl-color-text--lime-100 { + color: #f0f4c3 !important +} + +.mdl-color--lime-100 { + background-color: #f0f4c3 !important +} + +.mdl-color-text--lime-200 { + color: #e6ee9c !important +} + +.mdl-color--lime-200 { + background-color: #e6ee9c !important +} + +.mdl-color-text--lime-300 { + color: #dce775 !important +} + +.mdl-color--lime-300 { + background-color: #dce775 !important +} + +.mdl-color-text--lime-400 { + color: #d4e157 !important +} + +.mdl-color--lime-400 { + background-color: #d4e157 !important +} + +.mdl-color-text--lime-500 { + color: #cddc39 !important +} + +.mdl-color--lime-500 { + background-color: #cddc39 !important +} + +.mdl-color-text--lime-600 { + color: #c0ca33 !important +} + +.mdl-color--lime-600 { + background-color: #c0ca33 !important +} + +.mdl-color-text--lime-700 { + color: #afb42b !important +} + +.mdl-color--lime-700 { + background-color: #afb42b !important +} + +.mdl-color-text--lime-800 { + color: #9e9d24 !important +} + +.mdl-color--lime-800 { + background-color: #9e9d24 !important +} + +.mdl-color-text--lime-900 { + color: #827717 !important +} + +.mdl-color--lime-900 { + background-color: #827717 !important +} + +.mdl-color-text--lime-A100 { + color: #f4ff81 !important +} + +.mdl-color--lime-A100 { + background-color: #f4ff81 !important +} + +.mdl-color-text--lime-A200 { + color: #eeff41 !important +} + +.mdl-color--lime-A200 { + background-color: #eeff41 !important +} + +.mdl-color-text--lime-A400 { + color: #c6ff00 !important +} + +.mdl-color--lime-A400 { + background-color: #c6ff00 !important +} + +.mdl-color-text--lime-A700 { + color: #aeea00 !important +} + +.mdl-color--lime-A700 { + background-color: #aeea00 !important +} + +.mdl-color-text--yellow { + color: #ffeb3b !important +} + +.mdl-color--yellow { + background-color: #ffeb3b !important +} + +.mdl-color-text--yellow-50 { + color: #fffde7 !important +} + +.mdl-color--yellow-50 { + background-color: #fffde7 !important +} + +.mdl-color-text--yellow-100 { + color: #fff9c4 !important +} + +.mdl-color--yellow-100 { + background-color: #fff9c4 !important +} + +.mdl-color-text--yellow-200 { + color: #fff59d !important +} + +.mdl-color--yellow-200 { + background-color: #fff59d !important +} + +.mdl-color-text--yellow-300 { + color: #fff176 !important +} + +.mdl-color--yellow-300 { + background-color: #fff176 !important +} + +.mdl-color-text--yellow-400 { + color: #ffee58 !important +} + +.mdl-color--yellow-400 { + background-color: #ffee58 !important +} + +.mdl-color-text--yellow-500 { + color: #ffeb3b !important +} + +.mdl-color--yellow-500 { + background-color: #ffeb3b !important +} + +.mdl-color-text--yellow-600 { + color: #fdd835 !important +} + +.mdl-color--yellow-600 { + background-color: #fdd835 !important +} + +.mdl-color-text--yellow-700 { + color: #fbc02d !important +} + +.mdl-color--yellow-700 { + background-color: #fbc02d !important +} + +.mdl-color-text--yellow-800 { + color: #f9a825 !important +} + +.mdl-color--yellow-800 { + background-color: #f9a825 !important +} + +.mdl-color-text--yellow-900 { + color: #f57f17 !important +} + +.mdl-color--yellow-900 { + background-color: #f57f17 !important +} + +.mdl-color-text--yellow-A100 { + color: #ffff8d !important +} + +.mdl-color--yellow-A100 { + background-color: #ffff8d !important +} + +.mdl-color-text--yellow-A200 { + color: #ff0 !important +} + +.mdl-color--yellow-A200 { + background-color: #ff0 !important +} + +.mdl-color-text--yellow-A400 { + color: #ffea00 !important +} + +.mdl-color--yellow-A400 { + background-color: #ffea00 !important +} + +.mdl-color-text--yellow-A700 { + color: #ffd600 !important +} + +.mdl-color--yellow-A700 { + background-color: #ffd600 !important +} + +.mdl-color-text--amber { + color: #ffc107 !important +} + +.mdl-color--amber { + background-color: #ffc107 !important +} + +.mdl-color-text--amber-50 { + color: #fff8e1 !important +} + +.mdl-color--amber-50 { + background-color: #fff8e1 !important +} + +.mdl-color-text--amber-100 { + color: #ffecb3 !important +} + +.mdl-color--amber-100 { + background-color: #ffecb3 !important +} + +.mdl-color-text--amber-200 { + color: #ffe082 !important +} + +.mdl-color--amber-200 { + background-color: #ffe082 !important +} + +.mdl-color-text--amber-300 { + color: #ffd54f !important +} + +.mdl-color--amber-300 { + background-color: #ffd54f !important +} + +.mdl-color-text--amber-400 { + color: #ffca28 !important +} + +.mdl-color--amber-400 { + background-color: #ffca28 !important +} + +.mdl-color-text--amber-500 { + color: #ffc107 !important +} + +.mdl-color--amber-500 { + background-color: #ffc107 !important +} + +.mdl-color-text--amber-600 { + color: #ffb300 !important +} + +.mdl-color--amber-600 { + background-color: #ffb300 !important +} + +.mdl-color-text--amber-700 { + color: #ffa000 !important +} + +.mdl-color--amber-700 { + background-color: #ffa000 !important +} + +.mdl-color-text--amber-800 { + color: #ff8f00 !important +} + +.mdl-color--amber-800 { + background-color: #ff8f00 !important +} + +.mdl-color-text--amber-900 { + color: #ff6f00 !important +} + +.mdl-color--amber-900 { + background-color: #ff6f00 !important +} + +.mdl-color-text--amber-A100 { + color: #ffe57f !important +} + +.mdl-color--amber-A100 { + background-color: #ffe57f !important +} + +.mdl-color-text--amber-A200 { + color: #ffd740 !important +} + +.mdl-color--amber-A200 { + background-color: #ffd740 !important +} + +.mdl-color-text--amber-A400 { + color: #ffc400 !important +} + +.mdl-color--amber-A400 { + background-color: #ffc400 !important +} + +.mdl-color-text--amber-A700 { + color: #ffab00 !important +} + +.mdl-color--amber-A700 { + background-color: #ffab00 !important +} + +.mdl-color-text--orange { + color: #ff9800 !important +} + +.mdl-color--orange { + background-color: #ff9800 !important +} + +.mdl-color-text--orange-50 { + color: #fff3e0 !important +} + +.mdl-color--orange-50 { + background-color: #fff3e0 !important +} + +.mdl-color-text--orange-100 { + color: #ffe0b2 !important +} + +.mdl-color--orange-100 { + background-color: #ffe0b2 !important +} + +.mdl-color-text--orange-200 { + color: #ffcc80 !important +} + +.mdl-color--orange-200 { + background-color: #ffcc80 !important +} + +.mdl-color-text--orange-300 { + color: #ffb74d !important +} + +.mdl-color--orange-300 { + background-color: #ffb74d !important +} + +.mdl-color-text--orange-400 { + color: #ffa726 !important +} + +.mdl-color--orange-400 { + background-color: #ffa726 !important +} + +.mdl-color-text--orange-500 { + color: #ff9800 !important +} + +.mdl-color--orange-500 { + background-color: #ff9800 !important +} + +.mdl-color-text--orange-600 { + color: #fb8c00 !important +} + +.mdl-color--orange-600 { + background-color: #fb8c00 !important +} + +.mdl-color-text--orange-700 { + color: #f57c00 !important +} + +.mdl-color--orange-700 { + background-color: #f57c00 !important +} + +.mdl-color-text--orange-800 { + color: #ef6c00 !important +} + +.mdl-color--orange-800 { + background-color: #ef6c00 !important +} + +.mdl-color-text--orange-900 { + color: #e65100 !important +} + +.mdl-color--orange-900 { + background-color: #e65100 !important +} + +.mdl-color-text--orange-A100 { + color: #ffd180 !important +} + +.mdl-color--orange-A100 { + background-color: #ffd180 !important +} + +.mdl-color-text--orange-A200 { + color: #ffab40 !important +} + +.mdl-color--orange-A200 { + background-color: #ffab40 !important +} + +.mdl-color-text--orange-A400 { + color: #ff9100 !important +} + +.mdl-color--orange-A400 { + background-color: #ff9100 !important +} + +.mdl-color-text--orange-A700 { + color: #ff6d00 !important +} + +.mdl-color--orange-A700 { + background-color: #ff6d00 !important +} + +.mdl-color-text--deep-orange { + color: #ff5722 !important +} + +.mdl-color--deep-orange { + background-color: #ff5722 !important +} + +.mdl-color-text--deep-orange-50 { + color: #fbe9e7 !important +} + +.mdl-color--deep-orange-50 { + background-color: #fbe9e7 !important +} + +.mdl-color-text--deep-orange-100 { + color: #ffccbc !important +} + +.mdl-color--deep-orange-100 { + background-color: #ffccbc !important +} + +.mdl-color-text--deep-orange-200 { + color: #ffab91 !important +} + +.mdl-color--deep-orange-200 { + background-color: #ffab91 !important +} + +.mdl-color-text--deep-orange-300 { + color: #ff8a65 !important +} + +.mdl-color--deep-orange-300 { + background-color: #ff8a65 !important +} + +.mdl-color-text--deep-orange-400 { + color: #ff7043 !important +} + +.mdl-color--deep-orange-400 { + background-color: #ff7043 !important +} + +.mdl-color-text--deep-orange-500 { + color: #ff5722 !important +} + +.mdl-color--deep-orange-500 { + background-color: #ff5722 !important +} + +.mdl-color-text--deep-orange-600 { + color: #f4511e !important +} + +.mdl-color--deep-orange-600 { + background-color: #f4511e !important +} + +.mdl-color-text--deep-orange-700 { + color: #e64a19 !important +} + +.mdl-color--deep-orange-700 { + background-color: #e64a19 !important +} + +.mdl-color-text--deep-orange-800 { + color: #d84315 !important +} + +.mdl-color--deep-orange-800 { + background-color: #d84315 !important +} + +.mdl-color-text--deep-orange-900 { + color: #bf360c !important +} + +.mdl-color--deep-orange-900 { + background-color: #bf360c !important +} + +.mdl-color-text--deep-orange-A100 { + color: #ff9e80 !important +} + +.mdl-color--deep-orange-A100 { + background-color: #ff9e80 !important +} + +.mdl-color-text--deep-orange-A200 { + color: #ff6e40 !important +} + +.mdl-color--deep-orange-A200 { + background-color: #ff6e40 !important +} + +.mdl-color-text--deep-orange-A400 { + color: #ff3d00 !important +} + +.mdl-color--deep-orange-A400 { + background-color: #ff3d00 !important +} + +.mdl-color-text--deep-orange-A700 { + color: #dd2c00 !important +} + +.mdl-color--deep-orange-A700 { + background-color: #dd2c00 !important +} + +.mdl-color-text--brown { + color: #795548 !important +} + +.mdl-color--brown { + background-color: #795548 !important +} + +.mdl-color-text--brown-50 { + color: #efebe9 !important +} + +.mdl-color--brown-50 { + background-color: #efebe9 !important +} + +.mdl-color-text--brown-100 { + color: #d7ccc8 !important +} + +.mdl-color--brown-100 { + background-color: #d7ccc8 !important +} + +.mdl-color-text--brown-200 { + color: #bcaaa4 !important +} + +.mdl-color--brown-200 { + background-color: #bcaaa4 !important +} + +.mdl-color-text--brown-300 { + color: #a1887f !important +} + +.mdl-color--brown-300 { + background-color: #a1887f !important +} + +.mdl-color-text--brown-400 { + color: #8d6e63 !important +} + +.mdl-color--brown-400 { + background-color: #8d6e63 !important +} + +.mdl-color-text--brown-500 { + color: #795548 !important +} + +.mdl-color--brown-500 { + background-color: #795548 !important +} + +.mdl-color-text--brown-600 { + color: #6d4c41 !important +} + +.mdl-color--brown-600 { + background-color: #6d4c41 !important +} + +.mdl-color-text--brown-700 { + color: #5d4037 !important +} + +.mdl-color--brown-700 { + background-color: #5d4037 !important +} + +.mdl-color-text--brown-800 { + color: #4e342e !important +} + +.mdl-color--brown-800 { + background-color: #4e342e !important +} + +.mdl-color-text--brown-900 { + color: #3e2723 !important +} + +.mdl-color--brown-900 { + background-color: #3e2723 !important +} + +.mdl-color-text--grey { + color: #9e9e9e !important +} + +.mdl-color--grey { + background-color: #9e9e9e !important +} + +.mdl-color-text--grey-50 { + color: #fafafa !important +} + +.mdl-color--grey-50 { + background-color: #fafafa !important +} + +.mdl-color-text--grey-100 { + color: #f5f5f5 !important +} + +.mdl-color--grey-100 { + background-color: #f5f5f5 !important +} + +.mdl-color-text--grey-200 { + color: #eee !important +} + +.mdl-color--grey-200 { + background-color: #eee !important +} + +.mdl-color-text--grey-300 { + color: #e0e0e0 !important +} + +.mdl-color--grey-300 { + background-color: #e0e0e0 !important +} + +.mdl-color-text--grey-400 { + color: #bdbdbd !important +} + +.mdl-color--grey-400 { + background-color: #bdbdbd !important +} + +.mdl-color-text--grey-500 { + color: #9e9e9e !important +} + +.mdl-color--grey-500 { + background-color: #9e9e9e !important +} + +.mdl-color-text--grey-600 { + color: #757575 !important +} + +.mdl-color--grey-600 { + background-color: #757575 !important +} + +.mdl-color-text--grey-700 { + color: #616161 !important +} + +.mdl-color--grey-700 { + background-color: #616161 !important +} + +.mdl-color-text--grey-800 { + color: #424242 !important +} + +.mdl-color--grey-800 { + background-color: #424242 !important +} + +.mdl-color-text--grey-900 { + color: #212121 !important +} + +.mdl-color--grey-900 { + background-color: #212121 !important +} + +.mdl-color-text--blue-grey { + color: #607d8b !important +} + +.mdl-color--blue-grey { + background-color: #607d8b !important +} + +.mdl-color-text--blue-grey-50 { + color: #eceff1 !important +} + +.mdl-color--blue-grey-50 { + background-color: #eceff1 !important +} + +.mdl-color-text--blue-grey-100 { + color: #cfd8dc !important +} + +.mdl-color--blue-grey-100 { + background-color: #cfd8dc !important +} + +.mdl-color-text--blue-grey-200 { + color: #b0bec5 !important +} + +.mdl-color--blue-grey-200 { + background-color: #b0bec5 !important +} + +.mdl-color-text--blue-grey-300 { + color: #90a4ae !important +} + +.mdl-color--blue-grey-300 { + background-color: #90a4ae !important +} + +.mdl-color-text--blue-grey-400 { + color: #78909c !important +} + +.mdl-color--blue-grey-400 { + background-color: #78909c !important +} + +.mdl-color-text--blue-grey-500 { + color: #607d8b !important +} + +.mdl-color--blue-grey-500 { + background-color: #607d8b !important +} + +.mdl-color-text--blue-grey-600 { + color: #546e7a !important +} + +.mdl-color--blue-grey-600 { + background-color: #546e7a !important +} + +.mdl-color-text--blue-grey-700 { + color: #455a64 !important +} + +.mdl-color--blue-grey-700 { + background-color: #455a64 !important +} + +.mdl-color-text--blue-grey-800 { + color: #37474f !important +} + +.mdl-color--blue-grey-800 { + background-color: #37474f !important +} + +.mdl-color-text--blue-grey-900 { + color: #263238 !important +} + +.mdl-color--blue-grey-900 { + background-color: #263238 !important +} + +.mdl-color--black { + background-color: #000 !important +} + +.mdl-color-text--black { + color: #000 !important +} + +.mdl-color--white { + background-color: #fff !important +} + +.mdl-color-text--white { + color: #fff !important +} + +.mdl-color--primary { + background-color: rgb(0, 150, 136) !important +} + +.mdl-color--primary-contrast { + background-color: rgb(255, 255, 255) !important +} + +.mdl-color--primary-dark { + background-color: rgb(0, 121, 107) !important +} + +.mdl-color--accent { + background-color: rgb(255, 82, 82) !important +} + +.mdl-color--accent-contrast { + background-color: rgb(255, 255, 255) !important +} + +.mdl-color-text--primary { + color: rgb(0, 150, 136) !important +} + +.mdl-color-text--primary-contrast { + color: rgb(255, 255, 255) !important +} + +.mdl-color-text--primary-dark { + color: rgb(0, 121, 107) !important +} + +.mdl-color-text--accent { + color: rgb(255, 82, 82) !important +} + +.mdl-color-text--accent-contrast { + color: rgb(255, 255, 255) !important +} + +.mdl-ripple { + background: #000; + border-radius: 50%; + height: 50px; + left: 0; + opacity: 0; + pointer-events: none; + position: absolute; + top: 0; + -webkit-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + width: 50px; + overflow: hidden +} + +.mdl-ripple.is-animating { + -webkit-transition: -webkit-transform .3s cubic-bezier(0, 0, .2, 1), width .3s cubic-bezier(0, 0, .2, 1), height .3s cubic-bezier(0, 0, .2, 1), opacity .6s cubic-bezier(0, 0, .2, 1); + transition: transform .3s cubic-bezier(0, 0, .2, 1), width .3s cubic-bezier(0, 0, .2, 1), height .3s cubic-bezier(0, 0, .2, 1), opacity .6s cubic-bezier(0, 0, .2, 1) +} + +.mdl-ripple.is-visible { + opacity: .3 +} + +.mdl-animation--default, .mdl-animation--fast-out-slow-in { + -webkit-transition-timing-function: cubic-bezier(.4, 0, .2, 1); + transition-timing-function: cubic-bezier(.4, 0, .2, 1) +} + +.mdl-animation--linear-out-slow-in { + -webkit-transition-timing-function: cubic-bezier(0, 0, .2, 1); + transition-timing-function: cubic-bezier(0, 0, .2, 1) +} + +.mdl-animation--fast-out-linear-in { + -webkit-transition-timing-function: cubic-bezier(.4, 0, 1, 1); + transition-timing-function: cubic-bezier(.4, 0, 1, 1) +} + +.mdl-badge { + position: relative; + white-space: nowrap; + margin-right: 24px +} + +.mdl-badge:not([data-badge]) { + margin-right: auto +} + +.mdl-badge[data-badge]:after { + content: attr(data-badge); + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-align-content: center; + -ms-flex-line-pack: center; + align-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + position: absolute; + top: -11px; + right: -24px; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-weight: 600; + font-size: 12px; + width: 22px; + height: 22px; + border-radius: 50%; + background: rgb(255, 82, 82); + color: #fff +} + +.mdl-button .mdl-badge[data-badge]:after { + top: -10px; + right: -5px +} + +.mdl-badge.mdl-badge--no-background[data-badge]:after { + color: rgb(255, 82, 82); + background: rgba(255, 255, 255, .2); + box-shadow: 0 0 1px gray +} + +.mdl-button { + background: 0 0; + border: none; + border-radius: 2px; + color: #000; + display: block; + position: relative; + height: 36px; + min-width: 64px; + padding: 0 8px; + display: inline-block; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 14px; + font-weight: 500; + text-transform: uppercase; + letter-spacing: 0; + overflow: hidden; + will-change: box-shadow, transform; + -webkit-transition: box-shadow .2s cubic-bezier(.4, 0, 1, 1), background-color .2s cubic-bezier(.4, 0, .2, 1), color .2s cubic-bezier(.4, 0, .2, 1); + transition: box-shadow .2s cubic-bezier(.4, 0, 1, 1), background-color .2s cubic-bezier(.4, 0, .2, 1), color .2s cubic-bezier(.4, 0, .2, 1); + outline: none; + cursor: pointer; + text-decoration: none; + text-align: center; + line-height: 36px; + vertical-align: middle +} + +.mdl-button::-moz-focus-inner { + border: 0 +} + +.mdl-button:hover { + background-color: rgba(158, 158, 158, .2) +} + +.mdl-button:focus:not(:active) { + background-color: rgba(0, 0, 0, .12) +} + +.mdl-button:active { + background-color: rgba(158, 158, 158, .4) +} + +.mdl-button.mdl-button--colored { + color: rgb(0, 150, 136) +} + +.mdl-button.mdl-button--colored:focus:not(:active) { + background-color: rgba(0, 0, 0, .12) +} + +input.mdl-button[type="submit"] { + -webkit-appearance: none +} + +.mdl-button--raised { + background: rgba(158, 158, 158, .2); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12) +} + +.mdl-button--raised:active { + box-shadow: 0 4px 5px 0 rgba(0, 0, 0, .14), 0 1px 10px 0 rgba(0, 0, 0, .12), 0 2px 4px -1px rgba(0, 0, 0, .2); + background-color: rgba(158, 158, 158, .4) +} + +.mdl-button--raised:focus:not(:active) { + box-shadow: 0 0 8px rgba(0, 0, 0, .18), 0 8px 16px rgba(0, 0, 0, .36); + background-color: rgba(158, 158, 158, .4) +} + +.mdl-button--raised.mdl-button--colored { + background: rgb(0, 150, 136); + color: rgb(255, 255, 255) +} + +.mdl-button--raised.mdl-button--colored:hover { + background-color: rgb(0, 150, 136) +} + +.mdl-button--raised.mdl-button--colored:active { + background-color: rgb(0, 150, 136) +} + +.mdl-button--raised.mdl-button--colored:focus:not(:active) { + background-color: rgb(0, 150, 136) +} + +.mdl-button--raised.mdl-button--colored .mdl-ripple { + background: rgb(255, 255, 255) +} + +.mdl-button--fab { + border-radius: 50%; + font-size: 24px; + height: 56px; + margin: auto; + min-width: 56px; + width: 56px; + padding: 0; + overflow: hidden; + background: rgba(158, 158, 158, .2); + box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, .12), 0 1px 1px 0 rgba(0, 0, 0, .24); + position: relative; + line-height: normal +} + +.mdl-button--fab .material-icons { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-12px, -12px); + -ms-transform: translate(-12px, -12px); + transform: translate(-12px, -12px); + line-height: 24px; + width: 24px +} + +.mdl-button--fab.mdl-button--mini-fab { + height: 40px; + min-width: 40px; + width: 40px +} + +.mdl-button--fab .mdl-button__ripple-container { + border-radius: 50%; + -webkit-mask-image: -webkit-radial-gradient(circle, #fff, #000) +} + +.mdl-button--fab:active { + box-shadow: 0 4px 5px 0 rgba(0, 0, 0, .14), 0 1px 10px 0 rgba(0, 0, 0, .12), 0 2px 4px -1px rgba(0, 0, 0, .2); + background-color: rgba(158, 158, 158, .4) +} + +.mdl-button--fab:focus:not(:active) { + box-shadow: 0 0 8px rgba(0, 0, 0, .18), 0 8px 16px rgba(0, 0, 0, .36); + background-color: rgba(158, 158, 158, .4) +} + +.mdl-button--fab.mdl-button--colored { + background: rgb(255, 82, 82); + color: rgb(255, 255, 255) +} + +.mdl-button--fab.mdl-button--colored:hover { + background-color: rgb(255, 82, 82) +} + +.mdl-button--fab.mdl-button--colored:focus:not(:active) { + background-color: rgb(255, 82, 82) +} + +.mdl-button--fab.mdl-button--colored:active { + background-color: rgb(255, 82, 82) +} + +.mdl-button--fab.mdl-button--colored .mdl-ripple { + background: rgb(255, 255, 255) +} + +.mdl-button--icon { + border-radius: 50%; + font-size: 24px; + height: 32px; + margin-left: 0; + margin-right: 0; + min-width: 32px; + width: 32px; + padding: 0; + overflow: hidden; + color: inherit; + line-height: normal +} + +.mdl-button--icon .material-icons { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-12px, -12px); + -ms-transform: translate(-12px, -12px); + transform: translate(-12px, -12px); + line-height: 24px; + width: 24px +} + +.mdl-button--icon.mdl-button--mini-icon { + height: 24px; + min-width: 24px; + width: 24px +} + +.mdl-button--icon.mdl-button--mini-icon .material-icons { + top: 0; + left: 0 +} + +.mdl-button--icon .mdl-button__ripple-container { + border-radius: 50%; + -webkit-mask-image: -webkit-radial-gradient(circle, #fff, #000) +} + +.mdl-button__ripple-container { + display: block; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + z-index: 0; + overflow: hidden +} + +.mdl-button[disabled] .mdl-button__ripple-container .mdl-ripple { + background-color: transparent +} + +.mdl-button--primary.mdl-button--primary { + color: rgb(0, 150, 136) +} + +.mdl-button--primary.mdl-button--primary .mdl-ripple { + background: rgb(255, 255, 255) +} + +.mdl-button--primary.mdl-button--primary.mdl-button--raised, .mdl-button--primary.mdl-button--primary.mdl-button--fab { + color: rgb(255, 255, 255); + background-color: rgb(0, 150, 136) +} + +.mdl-button--accent.mdl-button--accent { + color: rgb(255, 82, 82) +} + +.mdl-button--accent.mdl-button--accent .mdl-ripple { + background: rgb(255, 255, 255) +} + +.mdl-button--accent.mdl-button--accent.mdl-button--raised, .mdl-button--accent.mdl-button--accent.mdl-button--fab { + color: rgb(255, 255, 255); + background-color: rgb(255, 82, 82) +} + +.mdl-button[disabled][disabled] { + color: rgba(0, 0, 0, .26); + cursor: auto; + background-color: transparent +} + +.mdl-button--fab[disabled][disabled], .mdl-button--raised[disabled][disabled], .mdl-button--colored[disabled][disabled] { + background-color: rgba(0, 0, 0, .12); + color: rgba(0, 0, 0, .26); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12) +} + +.mdl-card { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + font-size: 16px; + font-weight: 400; + min-height: 200px; + overflow: hidden; + width: 330px; + z-index: 1; + position: relative; + background: #fff; + border-radius: 2px; + box-sizing: border-box +} + +.mdl-card__media { + background-color: rgb(255, 82, 82); + background-repeat: repeat; + background-position: 50% 50%; + background-size: cover; + background-origin: padding-box; + background-attachment: scroll; + box-sizing: border-box +} + +.mdl-card__title { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + color: #000; + display: block; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: stretch; + -webkit-justify-content: stretch; + -ms-flex-pack: stretch; + justify-content: stretch; + line-height: normal; + padding: 16px; + -webkit-perspective-origin: 165px 56px; + perspective-origin: 165px 56px; + -webkit-transform-origin: 165px 56px; + -ms-transform-origin: 165px 56px; + transform-origin: 165px 56px; + box-sizing: border-box +} + +.mdl-card__title.mdl-card--border { + border-bottom: 1px solid rgba(0, 0, 0, .1) +} + +.mdl-card__title-text { + -webkit-align-self: flex-end; + -ms-flex-item-align: end; + align-self: flex-end; + color: inherit; + display: block; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + font-size: 18px; + font-weight: 300; + line-height: normal; + overflow: hidden; + -webkit-transform-origin: 149px 48px; + -ms-transform-origin: 149px 48px; + transform-origin: 149px 48px; + margin: 0 +} + +.mdl-card__subtitle-text { + font-size: 14px; + color: grey; + margin: 0 +} + +.mdl-card__supporting-text { + color: rgba(0, 0, 0, .54); + font-size: 13px; + line-height: 18px; + overflow: hidden; + padding: 16px; + width: 90% +} + +.mdl-card__actions { + font-size: 16px; + line-height: normal; + width: 100%; + background-color: transparent; + padding: 8px; + box-sizing: border-box +} + +.mdl-card__actions.mdl-card--border { + border-top: 1px solid rgba(0, 0, 0, .1) +} + +.mdl-card--expand { + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1 +} + +.mdl-card__menu { + position: absolute; + right: 16px; + top: 16px +} + +.mdl-checkbox { + position: relative; + z-index: 1; + vertical-align: middle; + display: inline-block; + box-sizing: border-box; + width: 100%; + height: 24px; + margin: 0; + padding: 0 +} + +.mdl-checkbox.is-upgraded { + padding-left: 24px +} + +.mdl-checkbox__input { + line-height: 24px +} + +.mdl-checkbox.is-upgraded .mdl-checkbox__input { + position: absolute; + width: 0; + height: 0; + margin: 0; + padding: 0; + opacity: 0; + -ms-appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + border: none +} + +.mdl-checkbox__box-outline { + position: absolute; + top: 3px; + left: 0; + display: inline-block; + box-sizing: border-box; + width: 16px; + height: 16px; + margin: 0; + cursor: pointer; + overflow: hidden; + border: 2px solid rgba(0, 0, 0, .54); + border-radius: 2px; + z-index: 2 +} + +.mdl-checkbox.is-checked .mdl-checkbox__box-outline { + border: 2px solid rgb(0, 150, 136) +} + +.mdl-checkbox.is-disabled .mdl-checkbox__box-outline { + border: 2px solid rgba(0, 0, 0, .26); + cursor: auto +} + +.mdl-checkbox__focus-helper { + position: absolute; + top: 3px; + left: 0; + display: inline-block; + box-sizing: border-box; + width: 16px; + height: 16px; + border-radius: 50%; + background-color: transparent +} + +.mdl-checkbox.is-focused .mdl-checkbox__focus-helper { + box-shadow: 0 0 0 8px rgba(0, 0, 0, .1); + background-color: rgba(0, 0, 0, .1) +} + +.mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper { + box-shadow: 0 0 0 8px rgba(0, 150, 136, .26); + background-color: rgba(0, 150, 136, .26) +} + +.mdl-checkbox__tick-outline { + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + -webkit-mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg=="); + mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg=="); + background: 0 0; + -webkit-transition-duration: .28s; + transition-duration: .28s; + -webkit-transition-timing-function: cubic-bezier(.4, 0, .2, 1); + transition-timing-function: cubic-bezier(.4, 0, .2, 1); + -webkit-transition-property: background; + transition-property: background +} + +.mdl-checkbox.is-checked .mdl-checkbox__tick-outline { + background: rgb(0, 150, 136) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K") +} + +.mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline { + background: rgba(0, 0, 0, .26) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K") +} + +.mdl-checkbox__label { + position: relative; + cursor: pointer; + font-size: 16px; + line-height: 24px; + margin: 0 +} + +.mdl-checkbox.is-disabled .mdl-checkbox__label { + color: rgba(0, 0, 0, .26); + cursor: auto +} + +.mdl-checkbox__ripple-container { + position: absolute; + z-index: 2; + top: -6px; + left: -10px; + box-sizing: border-box; + width: 36px; + height: 36px; + border-radius: 50%; + cursor: pointer; + overflow: hidden; + -webkit-mask-image: -webkit-radial-gradient(circle, #fff, #000) +} + +.mdl-checkbox__ripple-container .mdl-ripple { + background: rgb(0, 150, 136) +} + +.mdl-checkbox.is-disabled .mdl-checkbox__ripple-container { + cursor: auto +} + +.mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple { + background: 0 0 +} + +.mdl-data-table { + position: relative; + border: 1px solid rgba(0, 0, 0, .12); + border-collapse: collapse; + white-space: nowrap; + font-size: 13px; + background-color: #fff +} + +.mdl-data-table thead { + padding-bottom: 3px +} + +.mdl-data-table thead .mdl-data-table__select { + margin-top: 0 +} + +.mdl-data-table tbody tr { + position: relative; + height: 48px; + -webkit-transition-duration: .28s; + transition-duration: .28s; + -webkit-transition-timing-function: cubic-bezier(.4, 0, .2, 1); + transition-timing-function: cubic-bezier(.4, 0, .2, 1); + -webkit-transition-property: background-color; + transition-property: background-color +} + +.mdl-data-table tbody tr.is-selected { + background-color: #e0e0e0 +} + +.mdl-data-table tbody tr:hover { + background-color: #eee +} + +.mdl-data-table td { + text-align: right +} + +.mdl-data-table th { + padding: 0 18px 0 18px; + text-align: right +} + +.mdl-data-table td:first-of-type, .mdl-data-table th:first-of-type { + padding-left: 24px +} + +.mdl-data-table td:last-of-type, .mdl-data-table th:last-of-type { + padding-right: 24px +} + +.mdl-data-table td { + position: relative; + vertical-align: top; + height: 48px; + border-top: 1px solid rgba(0, 0, 0, .12); + border-bottom: 1px solid rgba(0, 0, 0, .12); + padding: 12px 18px 0; + box-sizing: border-box +} + +.mdl-data-table td .mdl-data-table__select { + vertical-align: top; + position: absolute; + left: 24px +} + +.mdl-data-table th { + position: relative; + vertical-align: bottom; + text-overflow: ellipsis; + font-weight: 700; + line-height: 24px; + letter-spacing: 0; + height: 48px; + font-size: 12px; + color: rgba(0, 0, 0, .54); + padding-bottom: 8px; + box-sizing: border-box +} + +.mdl-data-table th .mdl-data-table__select { + position: relative +} + +.mdl-data-table__select { + width: 16px +} + +.mdl-data-table__cell--non-numeric.mdl-data-table__cell--non-numeric { + text-align: left +} + +.mdl-mega-footer { + padding: 16px 40px; + color: #9e9e9e; + background-color: #424242 +} + +.mdl-mega-footer--top-section:after, .mdl-mega-footer--middle-section:after, .mdl-mega-footer--bottom-section:after, .mdl-mega-footer__top-section:after, .mdl-mega-footer__middle-section:after, .mdl-mega-footer__bottom-section:after { + content: ''; + display: block; + clear: both +} + +.mdl-mega-footer--left-section, .mdl-mega-footer__left-section, .mdl-mega-footer--right-section, .mdl-mega-footer__right-section { + margin-bottom: 16px +} + +.mdl-mega-footer--right-section a, .mdl-mega-footer__right-section a { + display: block; + margin-bottom: 16px; + color: inherit; + text-decoration: none +} + +@media screen and (min-width: 760px) { + .mdl-mega-footer--left-section, .mdl-mega-footer__left-section { + float: left + } + + .mdl-mega-footer--right-section, .mdl-mega-footer__right-section { + float: right + } + + .mdl-mega-footer--right-section a, .mdl-mega-footer__right-section a { + display: inline-block; + margin-left: 16px; + line-height: 36px; + vertical-align: middle + } +} + +.mdl-mega-footer--social-btn, .mdl-mega-footer__social-btn { + width: 36px; + height: 36px; + padding: 0; + margin: 0; + background-color: #9e9e9e; + border: none +} + +.mdl-mega-footer--drop-down-section, .mdl-mega-footer__drop-down-section { + display: block; + position: relative +} + +@media screen and (min-width: 760px) { + .mdl-mega-footer--drop-down-section, .mdl-mega-footer__drop-down-section { + width: 33% + } + + .mdl-mega-footer--drop-down-section:nth-child(1), .mdl-mega-footer--drop-down-section:nth-child(2), .mdl-mega-footer__drop-down-section:nth-child(1), .mdl-mega-footer__drop-down-section:nth-child(2) { + float: left + } + + .mdl-mega-footer--drop-down-section:nth-child(3), .mdl-mega-footer__drop-down-section:nth-child(3) { + float: right + } + + .mdl-mega-footer--drop-down-section:nth-child(3):after, .mdl-mega-footer__drop-down-section:nth-child(3):after { + clear: right + } + + .mdl-mega-footer--drop-down-section:nth-child(4), .mdl-mega-footer__drop-down-section:nth-child(4) { + clear: right; + float: right + } + + .mdl-mega-footer--middle-section:after, .mdl-mega-footer__middle-section:after { + content: ''; + display: block; + clear: both + } + + .mdl-mega-footer--bottom-section, .mdl-mega-footer__bottom-section { + padding-top: 0 + } +} + +@media screen and (min-width: 1024px) { + .mdl-mega-footer--drop-down-section, .mdl-mega-footer--drop-down-section:nth-child(3), .mdl-mega-footer--drop-down-section:nth-child(4), .mdl-mega-footer__drop-down-section, .mdl-mega-footer__drop-down-section:nth-child(3), .mdl-mega-footer__drop-down-section:nth-child(4) { + width: 24%; + float: left + } +} + +.mdl-mega-footer--heading-checkbox, .mdl-mega-footer__heading-checkbox { + position: absolute; + width: 100%; + height: 55.8px; + padding: 32px; + margin: -16px 0 0; + cursor: pointer; + z-index: 1; + opacity: 0 +} + +.mdl-mega-footer--heading-checkbox ~ .mdl-mega-footer--heading:after, .mdl-mega-footer--heading-checkbox ~ .mdl-mega-footer__heading:after, .mdl-mega-footer__heading-checkbox ~ .mdl-mega-footer--heading:after, .mdl-mega-footer__heading-checkbox ~ .mdl-mega-footer__heading:after { + font-family: 'Material Icons'; + content: '\E5CE' +} + +.mdl-mega-footer--heading-checkbox:checked ~ ul, .mdl-mega-footer__heading-checkbox:checked ~ ul { + display: none +} + +.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--heading:after, .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__heading:after, .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--heading:after, .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__heading:after { + font-family: 'Material Icons'; + content: '\E5CF' +} + +.mdl-mega-footer--heading, .mdl-mega-footer__heading { + position: relative; + width: 100%; + padding-right: 39.8px; + margin-bottom: 16px; + box-sizing: border-box; + font-size: 14px; + line-height: 23.8px; + font-weight: 500; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + color: #e0e0e0 +} + +.mdl-mega-footer--heading:after, .mdl-mega-footer__heading:after { + content: ''; + position: absolute; + top: 0; + right: 0; + display: block; + width: 23.8px; + height: 23.8px; + background-size: cover +} + +.mdl-mega-footer--link-list, .mdl-mega-footer__link-list { + list-style: none; + padding: 0; + margin: 0 0 32px +} + +.mdl-mega-footer--link-list:after, .mdl-mega-footer__link-list:after { + clear: both; + display: block; + content: '' +} + +.mdl-mega-footer--link-list li, .mdl-mega-footer__link-list li { + font-size: 14px; + font-weight: 400; + letter-spacing: 0; + line-height: 20px +} + +.mdl-mega-footer--link-list a, .mdl-mega-footer__link-list a { + color: inherit; + text-decoration: none; + white-space: nowrap +} + +@media screen and (min-width: 760px) { + .mdl-mega-footer--heading-checkbox, .mdl-mega-footer__heading-checkbox { + display: none + } + + .mdl-mega-footer--heading-checkbox ~ .mdl-mega-footer--heading:after, .mdl-mega-footer--heading-checkbox ~ .mdl-mega-footer__heading:after, .mdl-mega-footer__heading-checkbox ~ .mdl-mega-footer--heading:after, .mdl-mega-footer__heading-checkbox ~ .mdl-mega-footer__heading:after { + background-image: none + } + + .mdl-mega-footer--heading-checkbox:checked ~ ul, .mdl-mega-footer__heading-checkbox:checked ~ ul { + display: block + } + + .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--heading:after, .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__heading:after, .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--heading:after, .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__heading:after { + content: '' + } +} + +.mdl-mega-footer--bottom-section, .mdl-mega-footer__bottom-section { + padding-top: 16px; + margin-bottom: 16px +} + +.mdl-logo { + margin-bottom: 16px; + color: #fff +} + +.mdl-mega-footer--bottom-section .mdl-mega-footer--link-list li, .mdl-mega-footer__bottom-section .mdl-mega-footer__link-list li { + float: left; + margin-bottom: 0; + margin-right: 16px +} + +@media screen and (min-width: 760px) { + .mdl-logo { + float: left; + margin-bottom: 0; + margin-right: 16px + } +} + +.mdl-mini-footer { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-flow: row wrap; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 32px 16px; + color: #9e9e9e; + background-color: #424242 +} + +.mdl-mini-footer:after { + content: ''; + display: block +} + +.mdl-mini-footer .mdl-logo { + line-height: 36px +} + +.mdl-mini-footer--link-list, .mdl-mini-footer__link-list { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-flow: row nowrap; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + list-style: none; + margin: 0; + padding: 0 +} + +.mdl-mini-footer--link-list li, .mdl-mini-footer__link-list li { + margin-bottom: 0; + margin-right: 16px +} + +@media screen and (min-width: 760px) { + .mdl-mini-footer--link-list li, .mdl-mini-footer__link-list li { + line-height: 36px + } +} + +.mdl-mini-footer--link-list a, .mdl-mini-footer__link-list a { + color: inherit; + text-decoration: none; + white-space: nowrap +} + +.mdl-mini-footer--left-section, .mdl-mini-footer__left-section { + display: inline-block; + -webkit-box-ordinal-group: 1; + -webkit-order: 0; + -ms-flex-order: 0; + order: 0 +} + +.mdl-mini-footer--right-section, .mdl-mini-footer__right-section { + display: inline-block; + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1 +} + +.mdl-mini-footer--social-btn, .mdl-mini-footer__social-btn { + width: 36px; + height: 36px; + padding: 0; + margin: 0; + background-color: #9e9e9e; + border: none +} + +.mdl-icon-toggle { + position: relative; + z-index: 1; + vertical-align: middle; + display: inline-block; + height: 32px; + margin: 0; + padding: 0 +} + +.mdl-icon-toggle__input { + line-height: 32px +} + +.mdl-icon-toggle.is-upgraded .mdl-icon-toggle__input { + position: absolute; + width: 0; + height: 0; + margin: 0; + padding: 0; + opacity: 0; + -ms-appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + border: none +} + +.mdl-icon-toggle__label { + display: inline-block; + position: relative; + cursor: pointer; + height: 32px; + width: 32px; + min-width: 32px; + color: #616161; + border-radius: 50%; + padding: 0; + margin-left: 0; + margin-right: 0; + text-align: center; + background-color: transparent; + will-change: background-color; + -webkit-transition: background-color .2s cubic-bezier(.4, 0, .2, 1), color .2s cubic-bezier(.4, 0, .2, 1); + transition: background-color .2s cubic-bezier(.4, 0, .2, 1), color .2s cubic-bezier(.4, 0, .2, 1) +} + +.mdl-icon-toggle__label.material-icons { + line-height: 32px; + font-size: 24px +} + +.mdl-icon-toggle.is-checked .mdl-icon-toggle__label { + color: rgb(0, 150, 136) +} + +.mdl-icon-toggle.is-disabled .mdl-icon-toggle__label { + color: rgba(0, 0, 0, .26); + cursor: auto; + -webkit-transition: none; + transition: none +} + +.mdl-icon-toggle.is-focused .mdl-icon-toggle__label { + background-color: rgba(0, 0, 0, .12) +} + +.mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label { + background-color: rgba(0, 150, 136, .26) +} + +.mdl-icon-toggle__ripple-container { + position: absolute; + z-index: 2; + top: -2px; + left: -2px; + box-sizing: border-box; + width: 36px; + height: 36px; + border-radius: 50%; + cursor: pointer; + overflow: hidden; + -webkit-mask-image: -webkit-radial-gradient(circle, #fff, #000) +} + +.mdl-icon-toggle__ripple-container .mdl-ripple { + background: #616161 +} + +.mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container { + cursor: auto +} + +.mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple { + background: 0 0 +} + +.mdl-menu__container { + display: block; + margin: 0; + padding: 0; + border: none; + position: absolute; + overflow: visible; + height: 0; + width: 0; + z-index: -1 +} + +.mdl-menu__container.is-visible { + z-index: 999 +} + +.mdl-menu__outline { + display: block; + background: #fff; + margin: 0; + padding: 0; + border: none; + border-radius: 2px; + position: absolute; + top: 0; + left: 0; + overflow: hidden; + opacity: 0; + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12); + will-change: transform; + -webkit-transition: -webkit-transform .3s cubic-bezier(.4, 0, .2, 1), opacity .2s cubic-bezier(.4, 0, .2, 1); + transition: transform .3s cubic-bezier(.4, 0, .2, 1), opacity .2s cubic-bezier(.4, 0, .2, 1); + z-index: -1 +} + +.mdl-menu__container.is-visible .mdl-menu__outline { + opacity: 1; + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + z-index: 999 +} + +.mdl-menu__outline.mdl-menu--bottom-right { + -webkit-transform-origin: 100% 0; + -ms-transform-origin: 100% 0; + transform-origin: 100% 0 +} + +.mdl-menu__outline.mdl-menu--top-left { + -webkit-transform-origin: 0 100%; + -ms-transform-origin: 0 100%; + transform-origin: 0 100% +} + +.mdl-menu__outline.mdl-menu--top-right { + -webkit-transform-origin: 100% 100%; + -ms-transform-origin: 100% 100%; + transform-origin: 100% 100% +} + +.mdl-menu { + position: absolute; + list-style: none; + top: 0; + left: 0; + height: auto; + width: auto; + min-width: 124px; + padding: 8px 0; + margin: 0; + opacity: 0; + clip: rect(0 0 0 0); + z-index: -1 +} + +.mdl-menu__container.is-visible .mdl-menu { + opacity: 1; + z-index: 999 +} + +.mdl-menu.is-animating { + -webkit-transition: opacity .2s cubic-bezier(.4, 0, .2, 1), clip .3s cubic-bezier(.4, 0, .2, 1); + transition: opacity .2s cubic-bezier(.4, 0, .2, 1), clip .3s cubic-bezier(.4, 0, .2, 1) +} + +.mdl-menu.mdl-menu--bottom-right { + left: auto; + right: 0 +} + +.mdl-menu.mdl-menu--top-left { + top: auto; + bottom: 0 +} + +.mdl-menu.mdl-menu--top-right { + top: auto; + left: auto; + bottom: 0; + right: 0 +} + +.mdl-menu.mdl-menu--unaligned { + top: auto; + left: auto +} + +.mdl-menu__item { + display: block; + border: none; + color: rgba(0, 0, 0, .87); + background-color: transparent; + text-align: left; + margin: 0; + padding: 0 16px; + outline-color: #bdbdbd; + position: relative; + overflow: hidden; + font-size: 14px; + font-weight: 400; + letter-spacing: 0; + text-decoration: none; + cursor: pointer; + height: 48px; + line-height: 48px; + white-space: nowrap; + opacity: 0; + -webkit-transition: opacity .2s cubic-bezier(.4, 0, .2, 1); + transition: opacity .2s cubic-bezier(.4, 0, .2, 1); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +.mdl-menu__container.is-visible .mdl-menu__item { + opacity: 1 +} + +.mdl-menu__item::-moz-focus-inner { + border: 0 +} + +.mdl-menu__item[disabled] { + color: #bdbdbd; + background-color: transparent; + cursor: auto +} + +.mdl-menu__item[disabled]:hover { + background-color: transparent +} + +.mdl-menu__item[disabled]:focus { + background-color: transparent +} + +.mdl-menu__item[disabled] .mdl-ripple { + background: 0 0 +} + +.mdl-menu__item:hover { + background-color: #eee +} + +.mdl-menu__item:focus { + outline: none; + background-color: #eee +} + +.mdl-menu__item:active { + background-color: #e0e0e0 +} + +.mdl-menu__item--ripple-container { + display: block; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + z-index: 0; + overflow: hidden +} + +.mdl-progress { + display: block; + position: relative; + height: 4px; + width: 500px +} + +.mdl-progress > .bar { + display: block; + position: absolute; + top: 0; + bottom: 0; + width: 0%; + -webkit-transition: width .2s cubic-bezier(.4, 0, .2, 1); + transition: width .2s cubic-bezier(.4, 0, .2, 1) +} + +.mdl-progress > .progressbar { + background-color: rgb(0, 150, 136); + z-index: 1; + left: 0 +} + +.mdl-progress > .bufferbar { + background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, .7), rgba(255, 255, 255, .7)), -webkit-linear-gradient(left, rgb(0, 150, 136), rgb(0, 150, 136)); + background-image: linear-gradient(to right, rgba(255, 255, 255, .7), rgba(255, 255, 255, .7)), linear-gradient(to right, rgb(0, 150, 136), rgb(0, 150, 136)); + z-index: 0; + left: 0 +} + +.mdl-progress > .auxbar { + right: 0 +} + +@supports (-webkit-appearance:none) { + .mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate) > .auxbar { + background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, .7), rgba(255, 255, 255, .7)), -webkit-linear-gradient(left, rgb(0, 150, 136), rgb(0, 150, 136)); + background-image: linear-gradient(to right, rgba(255, 255, 255, .7), rgba(255, 255, 255, .7)), linear-gradient(to right, rgb(0, 150, 136), rgb(0, 150, 136)); + -webkit-mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo="); + mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo=") + } +} + +.mdl-progress:not(.mdl-progress__indeterminate) > .auxbar { + background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, .9), rgba(255, 255, 255, .9)), -webkit-linear-gradient(left, rgb(0, 150, 136), rgb(0, 150, 136)); + background-image: linear-gradient(to right, rgba(255, 255, 255, .9), rgba(255, 255, 255, .9)), linear-gradient(to right, rgb(0, 150, 136), rgb(0, 150, 136)) +} + +.mdl-progress.mdl-progress__indeterminate > .bar1 { + -webkit-animation-name: indeterminate1; + animation-name: indeterminate1 +} + +.mdl-progress.mdl-progress__indeterminate > .bar1, .mdl-progress.mdl-progress__indeterminate > .bar3 { + background-color: rgb(0, 150, 136); + -webkit-animation-duration: 2s; + animation-duration: 2s; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-timing-function: linear; + animation-timing-function: linear +} + +.mdl-progress.mdl-progress__indeterminate > .bar3 { + background-image: none; + -webkit-animation-name: indeterminate2; + animation-name: indeterminate2 +} + +@-webkit-keyframes indeterminate1 { + 0% { + left: 0%; + width: 0% + } + 50% { + left: 25%; + width: 75% + } + 75% { + left: 100%; + width: 0% + } +} + +@keyframes indeterminate1 { + 0% { + left: 0%; + width: 0% + } + 50% { + left: 25%; + width: 75% + } + 75% { + left: 100%; + width: 0% + } +} + +@-webkit-keyframes indeterminate2 { + 0%, 50% { + left: 0%; + width: 0% + } + 75% { + left: 0%; + width: 25% + } + 100% { + left: 100%; + width: 0% + } +} + +@keyframes indeterminate2 { + 0%, 50% { + left: 0%; + width: 0% + } + 75% { + left: 0%; + width: 25% + } + 100% { + left: 100%; + width: 0% + } +} + +.mdl-navigation { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + box-sizing: border-box +} + +.mdl-navigation__link { + color: #424242; + text-decoration: none; + font-weight: 500; + font-size: 13px; + margin: 0 +} + +.mdl-layout { + width: 100%; + height: 100%; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + overflow-y: auto; + overflow-x: hidden; + position: relative; + -webkit-overflow-scrolling: touch +} + +.mdl-layout.is-small-screen .mdl-layout--large-screen-only { + display: none +} + +.mdl-layout:not(.is-small-screen) .mdl-layout--small-screen-only { + display: none +} + +.mdl-layout__container { + position: absolute; + width: 100%; + height: 100% +} + +.mdl-layout-title { + display: block; + position: relative; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 20px; + line-height: 1; + letter-spacing: .02em; + font-weight: 400; + box-sizing: border-box +} + +.mdl-layout-spacer { + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1 +} + +.mdl-layout__drawer { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + width: 240px; + height: 100%; + max-height: 100%; + position: absolute; + top: 0; + left: 0; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12); + box-sizing: border-box; + border-right: 1px solid #e0e0e0; + background: #fafafa; + -webkit-transform: translateX(-250px); + -ms-transform: translateX(-250px); + transform: translateX(-250px); + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + will-change: transform; + -webkit-transition-duration: .2s; + transition-duration: .2s; + -webkit-transition-timing-function: cubic-bezier(.4, 0, .2, 1); + transition-timing-function: cubic-bezier(.4, 0, .2, 1); + -webkit-transition-property: -webkit-transform; + transition-property: transform; + color: #424242; + overflow: visible; + overflow-y: auto; + z-index: 5 +} + +.mdl-layout__drawer.is-visible { + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0) +} + +.mdl-layout__drawer > * { + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0 +} + +.mdl-layout__drawer > .mdl-layout-title { + line-height: 64px; + padding-left: 40px +} + +@media screen and (max-width: 1024px) { + .mdl-layout__drawer > .mdl-layout-title { + line-height: 56px; + padding-left: 16px + } +} + +.mdl-layout__drawer .mdl-navigation { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + padding-top: 16px +} + +.mdl-layout__drawer .mdl-navigation .mdl-navigation__link { + display: block; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + padding: 16px 40px; + margin: 0; + color: #757575 +} + +@media screen and (max-width: 1024px) { + .mdl-layout__drawer .mdl-navigation .mdl-navigation__link { + padding: 16px + } +} + +.mdl-layout__drawer .mdl-navigation .mdl-navigation__link:hover { + background-color: #e0e0e0 +} + +.mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current { + background-color: #000; + color: rgb(0, 150, 136) +} + +@media screen and (min-width: 1025px) { + .mdl-layout--fixed-drawer > .mdl-layout__drawer { + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0) + } +} + +.mdl-layout__drawer-button { + display: block; + position: absolute; + height: 48px; + width: 48px; + border: 0; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + overflow: hidden; + text-align: center; + cursor: pointer; + font-size: 26px; + line-height: 50px; + font-family: Helvetica, Arial, sans-serif; + margin: 10px 12px; + top: 0; + left: 0; + color: rgb(255, 255, 255); + z-index: 4 +} + +.mdl-layout__header .mdl-layout__drawer-button { + position: absolute; + color: rgb(255, 255, 255); + background-color: inherit +} + +@media screen and (max-width: 1024px) { + .mdl-layout__header .mdl-layout__drawer-button { + margin: 4px + } +} + +@media screen and (max-width: 1024px) { + .mdl-layout__drawer-button { + margin: 4px; + color: rgba(0, 0, 0, .5) + } +} + +@media screen and (min-width: 1025px) { + .mdl-layout--fixed-drawer > .mdl-layout__drawer-button { + display: none + } +} + +.mdl-layout__header { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + box-sizing: border-box; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + width: 100%; + margin: 0; + padding: 0; + border: none; + min-height: 64px; + max-height: 1000px; + z-index: 3; + background-color: rgb(0, 150, 136); + color: rgb(255, 255, 255); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12); + -webkit-transition-duration: .2s; + transition-duration: .2s; + -webkit-transition-timing-function: cubic-bezier(.4, 0, .2, 1); + transition-timing-function: cubic-bezier(.4, 0, .2, 1); + -webkit-transition-property: max-height, box-shadow; + transition-property: max-height, box-shadow +} + +@media screen and (max-width: 1024px) { + .mdl-layout__header { + min-height: 56px + } +} + +.mdl-layout--fixed-drawer:not(.is-small-screen) > .mdl-layout__header { + margin-left: 240px; + width: calc(100% - 240px) +} + +.mdl-layout__header > .mdl-layout-icon { + position: absolute; + left: 40px; + top: 16px; + height: 32px; + width: 32px; + overflow: hidden; + z-index: 3; + display: block +} + +@media screen and (max-width: 1024px) { + .mdl-layout__header > .mdl-layout-icon { + left: 16px; + top: 12px + } +} + +.mdl-layout.has-drawer .mdl-layout__header > .mdl-layout-icon { + display: none +} + +.mdl-layout__header.is-compact { + max-height: 64px +} + +@media screen and (max-width: 1024px) { + .mdl-layout__header.is-compact { + max-height: 56px + } +} + +.mdl-layout__header.is-compact.has-tabs { + height: 112px +} + +@media screen and (max-width: 1024px) { + .mdl-layout__header.is-compact.has-tabs { + min-height: 104px + } +} + +@media screen and (max-width: 1024px) { + .mdl-layout__header { + display: none + } + + .mdl-layout--fixed-header > .mdl-layout__header { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex + } +} + +.mdl-layout__header--transparent.mdl-layout__header--transparent { + background-color: transparent; + box-shadow: none +} + +.mdl-layout__header--seamed, .mdl-layout__header--scroll { + box-shadow: none +} + +.mdl-layout__header--waterfall { + box-shadow: none; + overflow: hidden +} + +.mdl-layout__header--waterfall.is-casting-shadow { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12) +} + +.mdl-layout__header-row { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + box-sizing: border-box; + -webkit-align-self: stretch; + -ms-flex-item-align: stretch; + align-self: stretch; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + height: 64px; + margin: 0; + padding: 0 40px 0 80px +} + +@media screen and (max-width: 1024px) { + .mdl-layout__header-row { + height: 56px; + padding: 0 16px 0 72px + } +} + +.mdl-layout__header-row > * { + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0 +} + +.mdl-layout__header--scroll .mdl-layout__header-row { + width: 100% +} + +.mdl-layout__header-row .mdl-navigation { + margin: 0; + padding: 0; + height: 64px; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center +} + +@media screen and (max-width: 1024px) { + .mdl-layout__header-row .mdl-navigation { + height: 56px + } +} + +.mdl-layout__header-row .mdl-navigation__link { + display: block; + color: rgb(255, 255, 255); + line-height: 64px; + padding: 0 24px +} + +@media screen and (max-width: 1024px) { + .mdl-layout__header-row .mdl-navigation__link { + line-height: 56px; + padding: 0 16px + } +} + +.mdl-layout__obfuscator { + background-color: transparent; + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 4; + visibility: hidden; + -webkit-transition-property: background-color; + transition-property: background-color; + -webkit-transition-duration: .2s; + transition-duration: .2s; + -webkit-transition-timing-function: cubic-bezier(.4, 0, .2, 1); + transition-timing-function: cubic-bezier(.4, 0, .2, 1) +} + +.mdl-layout__drawer.is-visible ~ .mdl-layout__obfuscator { + background-color: rgba(0, 0, 0, .5); + visibility: visible +} + +.mdl-layout__content { + -ms-flex: 0 1 auto; + display: inline-block; + overflow-y: auto; + overflow-x: hidden; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + z-index: 1; + -webkit-overflow-scrolling: touch +} + +.mdl-layout--fixed-drawer > .mdl-layout__content { + margin-left: 240px +} + +.mdl-layout__container.has-scrolling-header .mdl-layout__content { + overflow: visible +} + +@media screen and (max-width: 1024px) { + .mdl-layout--fixed-drawer > .mdl-layout__content { + margin-left: 0 + } + + .mdl-layout__container.has-scrolling-header .mdl-layout__content { + overflow-y: auto; + overflow-x: hidden + } +} + +.mdl-layout__tab-bar { + height: 96px; + margin: 0; + width: calc(100% - 112px); + padding: 0 0 0 56px; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + background-color: rgb(0, 150, 136); + overflow-y: hidden; + overflow-x: scroll +} + +.mdl-layout__tab-bar::-webkit-scrollbar { + display: none +} + +@media screen and (max-width: 1024px) { + .mdl-layout__tab-bar { + width: calc(100% - 60px); + padding: 0 0 0 60px + } +} + +.mdl-layout--fixed-tabs .mdl-layout__tab-bar { + padding: 0; + overflow: hidden; + width: 100% +} + +.mdl-layout__tab-bar-container { + position: relative; + height: 48px; + width: 100%; + border: none; + margin: 0; + z-index: 2; + -webkit-box-flex: 0; + -webkit-flex-grow: 0; + -ms-flex-positive: 0; + flex-grow: 0; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + overflow: hidden +} + +.mdl-layout__container > .mdl-layout__tab-bar-container { + position: absolute; + top: 0; + left: 0 +} + +.mdl-layout__tab-bar-button { + display: inline-block; + position: absolute; + top: 0; + height: 48px; + width: 56px; + z-index: 4; + text-align: center; + background-color: rgb(0, 150, 136); + color: transparent; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +@media screen and (max-width: 1024px) { + .mdl-layout__tab-bar-button { + display: none; + width: 60px + } +} + +.mdl-layout--fixed-tabs .mdl-layout__tab-bar-button { + display: none +} + +.mdl-layout__tab-bar-button .material-icons { + line-height: 48px +} + +.mdl-layout__tab-bar-button.is-active { + color: rgb(255, 255, 255) +} + +.mdl-layout__tab-bar-left-button { + left: 0 +} + +.mdl-layout__tab-bar-right-button { + right: 0 +} + +.mdl-layout__tab { + margin: 0; + border: none; + padding: 0 24px; + float: left; + position: relative; + display: block; + -webkit-box-flex: 0; + -webkit-flex-grow: 0; + -ms-flex-positive: 0; + flex-grow: 0; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + text-decoration: none; + height: 48px; + line-height: 48px; + text-align: center; + font-weight: 500; + font-size: 14px; + text-transform: uppercase; + color: rgba(255, 255, 255, .6); + overflow: hidden +} + +@media screen and (max-width: 1024px) { + .mdl-layout__tab { + padding: 0 12px + } +} + +.mdl-layout--fixed-tabs .mdl-layout__tab { + float: none; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + padding: 0 +} + +.mdl-layout.is-upgraded .mdl-layout__tab.is-active { + color: rgb(255, 255, 255) +} + +.mdl-layout.is-upgraded .mdl-layout__tab.is-active::after { + height: 2px; + width: 100%; + display: block; + content: " "; + bottom: 0; + left: 0; + position: absolute; + background: rgb(255, 82, 82); + -webkit-animation: border-expand .2s cubic-bezier(.4, 0, .4, 1) .01s alternate forwards; + animation: border-expand .2s cubic-bezier(.4, 0, .4, 1) .01s alternate forwards; + -webkit-transition: all 1s cubic-bezier(.4, 0, 1, 1); + transition: all 1s cubic-bezier(.4, 0, 1, 1) +} + +.mdl-layout__tab .mdl-layout__tab-ripple-container { + display: block; + position: absolute; + height: 100%; + width: 100%; + left: 0; + top: 0; + z-index: 1; + overflow: hidden +} + +.mdl-layout__tab .mdl-layout__tab-ripple-container .mdl-ripple { + background-color: rgb(255, 255, 255) +} + +.mdl-layout__tab-panel { + display: block +} + +.mdl-layout.is-upgraded .mdl-layout__tab-panel { + display: none +} + +.mdl-layout.is-upgraded .mdl-layout__tab-panel.is-active { + display: block +} + +.mdl-radio { + position: relative; + font-size: 16px; + line-height: 24px; + display: inline-block; + box-sizing: border-box; + margin: 0; + padding-left: 0 +} + +.mdl-radio.is-upgraded { + padding-left: 24px +} + +.mdl-radio__button { + line-height: 24px +} + +.mdl-radio.is-upgraded .mdl-radio__button { + position: absolute; + width: 0; + height: 0; + margin: 0; + padding: 0; + opacity: 0; + -ms-appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + border: none +} + +.mdl-radio__outer-circle { + position: absolute; + top: 2px; + left: 0; + display: inline-block; + box-sizing: border-box; + width: 16px; + height: 16px; + margin: 0; + cursor: pointer; + border: 2px solid rgba(0, 0, 0, .54); + border-radius: 50%; + z-index: 2 +} + +.mdl-radio.is-checked .mdl-radio__outer-circle { + border: 2px solid rgb(0, 150, 136) +} + +.mdl-radio.is-disabled .mdl-radio__outer-circle { + border: 2px solid rgba(0, 0, 0, .26); + cursor: auto +} + +.mdl-radio__inner-circle { + position: absolute; + z-index: 1; + margin: 0; + top: 6px; + left: 4px; + box-sizing: border-box; + width: 8px; + height: 8px; + cursor: pointer; + -webkit-transition-duration: .28s; + transition-duration: .28s; + -webkit-transition-timing-function: cubic-bezier(.4, 0, .2, 1); + transition-timing-function: cubic-bezier(.4, 0, .2, 1); + -webkit-transition-property: -webkit-transform; + transition-property: transform; + -webkit-transform: scale3d(0, 0, 0); + transform: scale3d(0, 0, 0); + border-radius: 50%; + background: rgb(0, 150, 136) +} + +.mdl-radio.is-checked .mdl-radio__inner-circle { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) +} + +.mdl-radio.is-disabled .mdl-radio__inner-circle { + background: rgba(0, 0, 0, .26); + cursor: auto +} + +.mdl-radio.is-focused .mdl-radio__inner-circle { + box-shadow: 0 0 0 10px rgba(0, 0, 0, .1) +} + +.mdl-radio__label { + cursor: pointer +} + +.mdl-radio.is-disabled .mdl-radio__label { + color: rgba(0, 0, 0, .26); + cursor: auto +} + +.mdl-radio__ripple-container { + position: absolute; + z-index: 2; + top: -9px; + left: -13px; + box-sizing: border-box; + width: 42px; + height: 42px; + border-radius: 50%; + cursor: pointer; + overflow: hidden; + -webkit-mask-image: -webkit-radial-gradient(circle, #fff, #000) +} + +.mdl-radio__ripple-container .mdl-ripple { + background: rgb(0, 150, 136) +} + +.mdl-radio.is-disabled .mdl-radio__ripple-container { + cursor: auto +} + +.mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple { + background: 0 0 +} + +_:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { + -ms-appearance: none; + height: 32px; + margin: 0 +} + +.mdl-slider { + width: calc(100% - 40px); + margin: 0 20px +} + +.mdl-slider.is-upgraded { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + height: 2px; + background: 0 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + outline: 0; + padding: 0; + color: rgb(0, 150, 136); + -webkit-align-self: center; + -ms-flex-item-align: center; + align-self: center; + z-index: 1 +} + +.mdl-slider.is-upgraded::-moz-focus-outer { + border: 0 +} + +.mdl-slider.is-upgraded::-ms-tooltip { + display: none +} + +.mdl-slider.is-upgraded::-webkit-slider-runnable-track { + background: 0 0 +} + +.mdl-slider.is-upgraded::-moz-range-track { + background: 0 0; + border: none +} + +.mdl-slider.is-upgraded::-ms-track { + background: 0 0; + color: transparent; + height: 2px; + width: 100%; + border: none +} + +.mdl-slider.is-upgraded::-ms-fill-lower { + padding: 0; + background: linear-gradient(to right, transparent, transparent 16px, rgb(0, 150, 136) 16px, rgb(0, 150, 136) 0) +} + +.mdl-slider.is-upgraded::-ms-fill-upper { + padding: 0; + background: linear-gradient(to left, transparent, transparent 16px, rgba(0, 0, 0, .26) 16px, rgba(0, 0, 0, .26) 0) +} + +.mdl-slider.is-upgraded::-webkit-slider-thumb { + -webkit-appearance: none; + width: 12px; + height: 12px; + box-sizing: border-box; + border-radius: 50%; + background: rgb(0, 150, 136); + border: none; + -webkit-transition: -webkit-transform .18s cubic-bezier(.4, 0, .2, 1), border .18s cubic-bezier(.4, 0, .2, 1), box-shadow .18s cubic-bezier(.4, 0, .2, 1), background .28s cubic-bezier(.4, 0, .2, 1); + transition: transform .18s cubic-bezier(.4, 0, .2, 1), border .18s cubic-bezier(.4, 0, .2, 1), box-shadow .18s cubic-bezier(.4, 0, .2, 1), background .28s cubic-bezier(.4, 0, .2, 1) +} + +.mdl-slider.is-upgraded::-moz-range-thumb { + -moz-appearance: none; + width: 12px; + height: 12px; + box-sizing: border-box; + border-radius: 50%; + background-image: none; + background: rgb(0, 150, 136); + border: none +} + +.mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb { + box-shadow: 0 0 0 10px rgba(0, 150, 136, .26) +} + +.mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb { + box-shadow: 0 0 0 10px rgba(0, 150, 136, .26) +} + +.mdl-slider.is-upgraded:active::-webkit-slider-thumb { + background-image: none; + background: rgb(0, 150, 136); + -webkit-transform: scale(1.5); + transform: scale(1.5) +} + +.mdl-slider.is-upgraded:active::-moz-range-thumb { + background-image: none; + background: rgb(0, 150, 136); + transform: scale(1.5) +} + +.mdl-slider.is-upgraded::-ms-thumb { + width: 32px; + height: 32px; + border: none; + border-radius: 50%; + background: rgb(0, 150, 136); + -ms-transform: scale(.375); + transform: scale(.375); + transition: transform .18s cubic-bezier(.4, 0, .2, 1), background .28s cubic-bezier(.4, 0, .2, 1) +} + +.mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb { + background: radial-gradient(circle closest-side, rgb(0, 150, 136) 0%, rgb(0, 150, 136) 37.5%, rgba(0, 150, 136, .26) 37.5%, rgba(0, 150, 136, .26) 100%); + -ms-transform: scale(1); + transform: scale(1) +} + +.mdl-slider.is-upgraded:active::-ms-thumb { + background: rgb(0, 150, 136); + -ms-transform: scale(.5625); + transform: scale(.5625) +} + +.mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb { + border: 2px solid rgba(0, 0, 0, .26); + background: 0 0 +} + +.mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb { + border: 2px solid rgba(0, 0, 0, .26); + background: 0 0 +} + +.mdl-slider.is-upgraded.is-lowest-value ~ .mdl-slider__background-flex > .mdl-slider__background-upper { + left: 6px +} + +.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb { + box-shadow: 0 0 0 10px rgba(0, 0, 0, .12); + background: rgba(0, 0, 0, .12) +} + +.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb { + box-shadow: 0 0 0 10px rgba(0, 0, 0, .12); + background: rgba(0, 0, 0, .12) +} + +.mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb { + border: 1.6px solid rgba(0, 0, 0, .26); + -webkit-transform: scale(1.5); + transform: scale(1.5) +} + +.mdl-slider.is-upgraded.is-lowest-value:active ~ .mdl-slider__background-flex > .mdl-slider__background-upper { + left: 9px +} + +.mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb { + border: 1.5px solid rgba(0, 0, 0, .26); + transform: scale(1.5) +} + +.mdl-slider.is-upgraded.is-lowest-value::-ms-thumb { + background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0, 0, 0, .26) 66.67%, rgba(0, 0, 0, .26) 100%) +} + +.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb { + background: radial-gradient(circle closest-side, rgba(0, 0, 0, .12) 0%, rgba(0, 0, 0, .12) 25%, rgba(0, 0, 0, .26) 25%, rgba(0, 0, 0, .26) 37.5%, rgba(0, 0, 0, .12) 37.5%, rgba(0, 0, 0, .12) 100%); + -ms-transform: scale(1); + transform: scale(1) +} + +.mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb { + -ms-transform: scale(.5625); + transform: scale(.5625); + background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0, 0, 0, .26) 77.78%, rgba(0, 0, 0, .26) 100%) +} + +.mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower { + background: 0 0 +} + +.mdl-slider.is-upgraded.is-lowest-value::-ms-fill-upper { + margin-left: 6px +} + +.mdl-slider.is-upgraded.is-lowest-value:active::-ms-fill-upper { + margin-left: 9px +} + +.mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb { + -webkit-transform: scale(.667); + transform: scale(.667); + background: rgba(0, 0, 0, .26) +} + +.mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded:disabled::-moz-range-thumb { + transform: scale(.667); + background: rgba(0, 0, 0, .26) +} + +.mdl-slider.is-upgraded:disabled ~ .mdl-slider__background-flex > .mdl-slider__background-lower { + background-color: rgba(0, 0, 0, .26); + left: -6px +} + +.mdl-slider.is-upgraded:disabled ~ .mdl-slider__background-flex > .mdl-slider__background-upper { + left: 6px +} + +.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb { + border: 3px solid rgba(0, 0, 0, .26); + background: 0 0; + -webkit-transform: scale(.667); + transform: scale(.667) +} + +.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb { + border: 3px solid rgba(0, 0, 0, .26); + background: 0 0; + transform: scale(.667) +} + +.mdl-slider.is-upgraded.is-lowest-value:disabled:active ~ .mdl-slider__background-flex > .mdl-slider__background-upper { + left: 6px +} + +.mdl-slider.is-upgraded:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded:disabled:active::-ms-thumb, .mdl-slider.is-upgraded:disabled::-ms-thumb { + -ms-transform: scale(.25); + transform: scale(.25); + background: rgba(0, 0, 0, .26) +} + +.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb { + -ms-transform: scale(.25); + transform: scale(.25); + background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0, 0, 0, .26) 50%, rgba(0, 0, 0, .26) 100%) +} + +.mdl-slider.is-upgraded:disabled::-ms-fill-lower { + margin-right: 6px; + background: linear-gradient(to right, transparent, transparent 25px, rgba(0, 0, 0, .26) 25px, rgba(0, 0, 0, .26) 0) +} + +.mdl-slider.is-upgraded:disabled::-ms-fill-upper { + margin-left: 6px +} + +.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-fill-upper { + margin-left: 6px +} + +.mdl-slider__ie-container { + height: 18px; + overflow: visible; + border: none; + margin: none; + padding: none +} + +.mdl-slider__container { + height: 18px; + position: relative; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row +} + +.mdl-slider__container, .mdl-slider__background-flex { + background: 0 0; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex +} + +.mdl-slider__background-flex { + position: absolute; + height: 2px; + width: calc(100% - 52px); + top: 50%; + left: 0; + margin: 0 26px; + overflow: hidden; + border: 0; + padding: 0; + -webkit-transform: translate(0, -1px); + -ms-transform: translate(0, -1px); + transform: translate(0, -1px) +} + +.mdl-slider__background-lower { + background: rgb(0, 150, 136) +} + +.mdl-slider__background-lower, .mdl-slider__background-upper { + -webkit-box-flex: 0; + -webkit-flex: 0; + -ms-flex: 0; + flex: 0; + position: relative; + border: 0; + padding: 0 +} + +.mdl-slider__background-upper { + background: rgba(0, 0, 0, .26); + -webkit-transition: left .18s cubic-bezier(.4, 0, .2, 1); + transition: left .18s cubic-bezier(.4, 0, .2, 1) +} + +.mdl-spinner { + display: inline-block; + position: relative; + width: 28px; + height: 28px +} + +.mdl-spinner:not(.is-upgraded).is-active:after { + content: "Loading..." +} + +.mdl-spinner.is-upgraded.is-active { + -webkit-animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite; + animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite +} + +@-webkit-keyframes mdl-spinner__container-rotate { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +@keyframes mdl-spinner__container-rotate { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +.mdl-spinner__layer { + position: absolute; + width: 100%; + height: 100%; + opacity: 0 +} + +.mdl-spinner__layer-1 { + border-color: #42a5f5 +} + +.mdl-spinner--single-color .mdl-spinner__layer-1 { + border-color: rgb(0, 150, 136) +} + +.mdl-spinner.is-active .mdl-spinner__layer-1 { + -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4, 0, .2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(.4, 0, .2, 1) infinite both; + animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4, 0, .2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(.4, 0, .2, 1) infinite both +} + +.mdl-spinner__layer-2 { + border-color: #f44336 +} + +.mdl-spinner--single-color .mdl-spinner__layer-2 { + border-color: rgb(0, 150, 136) +} + +.mdl-spinner.is-active .mdl-spinner__layer-2 { + -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4, 0, .2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(.4, 0, .2, 1) infinite both; + animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4, 0, .2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(.4, 0, .2, 1) infinite both +} + +.mdl-spinner__layer-3 { + border-color: #fdd835 +} + +.mdl-spinner--single-color .mdl-spinner__layer-3 { + border-color: rgb(0, 150, 136) +} + +.mdl-spinner.is-active .mdl-spinner__layer-3 { + -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4, 0, .2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(.4, 0, .2, 1) infinite both; + animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4, 0, .2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(.4, 0, .2, 1) infinite both +} + +.mdl-spinner__layer-4 { + border-color: #4caf50 +} + +.mdl-spinner--single-color .mdl-spinner__layer-4 { + border-color: rgb(0, 150, 136) +} + +.mdl-spinner.is-active .mdl-spinner__layer-4 { + -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4, 0, .2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(.4, 0, .2, 1) infinite both; + animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4, 0, .2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(.4, 0, .2, 1) infinite both +} + +@-webkit-keyframes mdl-spinner__fill-unfill-rotate { + 12.5% { + -webkit-transform: rotate(135deg); + transform: rotate(135deg) + } + 25% { + -webkit-transform: rotate(270deg); + transform: rotate(270deg) + } + 37.5% { + -webkit-transform: rotate(405deg); + transform: rotate(405deg) + } + 50% { + -webkit-transform: rotate(540deg); + transform: rotate(540deg) + } + 62.5% { + -webkit-transform: rotate(675deg); + transform: rotate(675deg) + } + 75% { + -webkit-transform: rotate(810deg); + transform: rotate(810deg) + } + 87.5% { + -webkit-transform: rotate(945deg); + transform: rotate(945deg) + } + to { + -webkit-transform: rotate(1080deg); + transform: rotate(1080deg) + } +} + +@keyframes mdl-spinner__fill-unfill-rotate { + 12.5% { + -webkit-transform: rotate(135deg); + transform: rotate(135deg) + } + 25% { + -webkit-transform: rotate(270deg); + transform: rotate(270deg) + } + 37.5% { + -webkit-transform: rotate(405deg); + transform: rotate(405deg) + } + 50% { + -webkit-transform: rotate(540deg); + transform: rotate(540deg) + } + 62.5% { + -webkit-transform: rotate(675deg); + transform: rotate(675deg) + } + 75% { + -webkit-transform: rotate(810deg); + transform: rotate(810deg) + } + 87.5% { + -webkit-transform: rotate(945deg); + transform: rotate(945deg) + } + to { + -webkit-transform: rotate(1080deg); + transform: rotate(1080deg) + } +} + +@-webkit-keyframes mdl-spinner__layer-1-fade-in-out { + from, 25% { + opacity: .99 + } + 26%, 89% { + opacity: 0 + } + 90%, 100% { + opacity: .99 + } +} + +@keyframes mdl-spinner__layer-1-fade-in-out { + from, 25% { + opacity: .99 + } + 26%, 89% { + opacity: 0 + } + 90%, 100% { + opacity: .99 + } +} + +@-webkit-keyframes mdl-spinner__layer-2-fade-in-out { + from, 15% { + opacity: 0 + } + 25%, 50% { + opacity: .99 + } + 51% { + opacity: 0 + } +} + +@keyframes mdl-spinner__layer-2-fade-in-out { + from, 15% { + opacity: 0 + } + 25%, 50% { + opacity: .99 + } + 51% { + opacity: 0 + } +} + +@-webkit-keyframes mdl-spinner__layer-3-fade-in-out { + from, 40% { + opacity: 0 + } + 50%, 75% { + opacity: .99 + } + 76% { + opacity: 0 + } +} + +@keyframes mdl-spinner__layer-3-fade-in-out { + from, 40% { + opacity: 0 + } + 50%, 75% { + opacity: .99 + } + 76% { + opacity: 0 + } +} + +@-webkit-keyframes mdl-spinner__layer-4-fade-in-out { + from, 65% { + opacity: 0 + } + 75%, 90% { + opacity: .99 + } + 100% { + opacity: 0 + } +} + +@keyframes mdl-spinner__layer-4-fade-in-out { + from, 65% { + opacity: 0 + } + 75%, 90% { + opacity: .99 + } + 100% { + opacity: 0 + } +} + +.mdl-spinner__gap-patch { + position: absolute; + box-sizing: border-box; + top: 0; + left: 45%; + width: 10%; + height: 100%; + overflow: hidden; + border-color: inherit +} + +.mdl-spinner__gap-patch .mdl-spinner__circle { + width: 1000%; + left: -450% +} + +.mdl-spinner__circle-clipper { + display: inline-block; + position: relative; + width: 50%; + height: 100%; + overflow: hidden; + border-color: inherit +} + +.mdl-spinner__circle-clipper .mdl-spinner__circle { + width: 200% +} + +.mdl-spinner__circle { + box-sizing: border-box; + height: 100%; + border-width: 3px; + border-style: solid; + border-color: inherit; + border-bottom-color: transparent !important; + border-radius: 50%; + -webkit-animation: none; + animation: none; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0 +} + +.mdl-spinner__left .mdl-spinner__circle { + border-right-color: transparent !important; + -webkit-transform: rotate(129deg); + -ms-transform: rotate(129deg); + transform: rotate(129deg) +} + +.mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle { + -webkit-animation: mdl-spinner__left-spin 1333ms cubic-bezier(.4, 0, .2, 1) infinite both; + animation: mdl-spinner__left-spin 1333ms cubic-bezier(.4, 0, .2, 1) infinite both +} + +.mdl-spinner__right .mdl-spinner__circle { + left: -100%; + border-left-color: transparent !important; + -webkit-transform: rotate(-129deg); + -ms-transform: rotate(-129deg); + transform: rotate(-129deg) +} + +.mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle { + -webkit-animation: mdl-spinner__right-spin 1333ms cubic-bezier(.4, 0, .2, 1) infinite both; + animation: mdl-spinner__right-spin 1333ms cubic-bezier(.4, 0, .2, 1) infinite both +} + +@-webkit-keyframes mdl-spinner__left-spin { + from { + -webkit-transform: rotate(130deg); + transform: rotate(130deg) + } + 50% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg) + } + to { + -webkit-transform: rotate(130deg); + transform: rotate(130deg) + } +} + +@keyframes mdl-spinner__left-spin { + from { + -webkit-transform: rotate(130deg); + transform: rotate(130deg) + } + 50% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg) + } + to { + -webkit-transform: rotate(130deg); + transform: rotate(130deg) + } +} + +@-webkit-keyframes mdl-spinner__right-spin { + from { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg) + } + 50% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg) + } + to { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg) + } +} + +@keyframes mdl-spinner__right-spin { + from { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg) + } + 50% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg) + } + to { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg) + } +} + +.mdl-switch { + position: relative; + z-index: 1; + vertical-align: middle; + display: inline-block; + box-sizing: border-box; + width: 100%; + height: 24px; + margin: 0; + padding: 0; + overflow: visible; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +.mdl-switch.is-upgraded { + padding-left: 28px +} + +.mdl-switch__input { + line-height: 24px +} + +.mdl-switch.is-upgraded .mdl-switch__input { + position: absolute; + width: 0; + height: 0; + margin: 0; + padding: 0; + opacity: 0; + -ms-appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + border: none +} + +.mdl-switch__track { + background: rgba(0, 0, 0, .26); + position: absolute; + left: 0; + top: 5px; + height: 14px; + width: 36px; + border-radius: 14px; + cursor: pointer +} + +.mdl-switch.is-checked .mdl-switch__track { + background: rgba(0, 150, 136, .5) +} + +.mdl-switch.is-disabled .mdl-switch__track { + background: rgba(0, 0, 0, .12); + cursor: auto +} + +.mdl-switch__thumb { + background: #fafafa; + position: absolute; + left: 0; + top: 2px; + height: 20px; + width: 20px; + border-radius: 50%; + cursor: pointer; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12); + -webkit-transition-duration: .28s; + transition-duration: .28s; + -webkit-transition-timing-function: cubic-bezier(.4, 0, .2, 1); + transition-timing-function: cubic-bezier(.4, 0, .2, 1); + -webkit-transition-property: left; + transition-property: left +} + +.mdl-switch.is-checked .mdl-switch__thumb { + background: rgb(0, 150, 136); + left: 16px; + box-shadow: 0 3px 4px 0 rgba(0, 0, 0, .14), 0 3px 3px -2px rgba(0, 0, 0, .2), 0 1px 8px 0 rgba(0, 0, 0, .12) +} + +.mdl-switch.is-disabled .mdl-switch__thumb { + background: #bdbdbd; + cursor: auto +} + +.mdl-switch__focus-helper { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-4px, -4px); + -ms-transform: translate(-4px, -4px); + transform: translate(-4px, -4px); + display: inline-block; + box-sizing: border-box; + width: 8px; + height: 8px; + border-radius: 50%; + background-color: transparent +} + +.mdl-switch.is-focused .mdl-switch__focus-helper { + box-shadow: 0 0 0 20px rgba(0, 0, 0, .1); + background-color: rgba(0, 0, 0, .1) +} + +.mdl-switch.is-focused.is-checked .mdl-switch__focus-helper { + box-shadow: 0 0 0 20px rgba(0, 150, 136, .26); + background-color: rgba(0, 150, 136, .26) +} + +.mdl-switch__label { + position: relative; + cursor: pointer; + font-size: 16px; + line-height: 24px; + margin: 0; + left: 24px +} + +.mdl-switch.is-disabled .mdl-switch__label { + color: #bdbdbd; + cursor: auto +} + +.mdl-switch__ripple-container { + position: absolute; + z-index: 2; + top: -12px; + left: -14px; + box-sizing: border-box; + width: 48px; + height: 48px; + border-radius: 50%; + cursor: pointer; + overflow: hidden; + -webkit-mask-image: -webkit-radial-gradient(circle, #fff, #000); + -webkit-transition-duration: .4s; + transition-duration: .4s; + -webkit-transition-timing-function: step-end; + transition-timing-function: step-end; + -webkit-transition-property: left; + transition-property: left +} + +.mdl-switch__ripple-container .mdl-ripple { + background: rgb(0, 150, 136) +} + +.mdl-switch.is-disabled .mdl-switch__ripple-container { + cursor: auto +} + +.mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple { + background: 0 0 +} + +.mdl-switch.is-checked .mdl-switch__ripple-container { + cursor: auto; + left: 2px +} + +.mdl-tabs { + display: block; + width: 100% +} + +.mdl-tabs__tab-bar { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-align-content: space-between; + -ms-flex-line-pack: justify; + align-content: space-between; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + height: 48px; + padding: 0; + margin: 0; + border-bottom: 1px solid #e0e0e0 +} + +.mdl-tabs__tab { + margin: 0; + border: none; + padding: 0 24px; + float: left; + position: relative; + display: block; + color: red; + text-decoration: none; + height: 48px; + line-height: 48px; + text-align: center; + font-weight: 500; + font-size: 14px; + text-transform: uppercase; + color: rgba(0, 0, 0, .54); + overflow: hidden +} + +.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active { + color: rgba(0, 0, 0, .87) +} + +.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after { + height: 2px; + width: 100%; + display: block; + content: " "; + bottom: 0; + left: 0; + position: absolute; + background: rgb(0, 150, 136); + -webkit-animation: border-expand .2s cubic-bezier(.4, 0, .4, 1) .01s alternate forwards; + animation: border-expand .2s cubic-bezier(.4, 0, .4, 1) .01s alternate forwards; + -webkit-transition: all 1s cubic-bezier(.4, 0, 1, 1); + transition: all 1s cubic-bezier(.4, 0, 1, 1) +} + +.mdl-tabs__tab .mdl-tabs__ripple-container { + display: block; + position: absolute; + height: 100%; + width: 100%; + left: 0; + top: 0; + z-index: 1; + overflow: hidden +} + +.mdl-tabs__tab .mdl-tabs__ripple-container .mdl-ripple { + background: rgb(0, 150, 136) +} + +.mdl-tabs__panel { + display: block +} + +.mdl-tabs.is-upgraded .mdl-tabs__panel { + display: none +} + +.mdl-tabs.is-upgraded .mdl-tabs__panel.is-active { + display: block +} + +@-webkit-keyframes border-expand { + 0% { + opacity: 0; + width: 0 + } + 100% { + opacity: 1; + width: 100% + } +} + +@keyframes border-expand { + 0% { + opacity: 0; + width: 0 + } + 100% { + opacity: 1; + width: 100% + } +} + +.mdl-textfield { + position: relative; + font-size: 16px; + display: inline-block; + box-sizing: border-box; + width: 300px; + max-width: 100%; + margin: 0; + padding: 20px 0 +} + +.mdl-textfield .mdl-button { + position: absolute; + bottom: 20px +} + +.mdl-textfield--align-right { + text-align: right +} + +.mdl-textfield--full-width { + width: 100% +} + +.mdl-textfield--expandable { + min-width: 32px; + width: auto; + min-height: 32px +} + +.mdl-textfield__input { + border: none; + border-bottom: 1px solid rgba(0, 0, 0, .12); + display: inline-block; + font-size: 16px; + margin: 0; + padding: 4px 0; + width: 100%; + background: 16px; + text-align: left; + color: inherit +} + +.mdl-textfield.is-focused .mdl-textfield__input { + outline: none +} + +.mdl-textfield.is-invalid .mdl-textfield__input { + border-color: #de3226; + box-shadow: none +} + +.mdl-textfield.is-disabled .mdl-textfield__input { + background-color: transparent; + border-bottom: 1px dotted rgba(0, 0, 0, .12) +} + +.mdl-textfield__label { + bottom: 0; + color: rgba(0, 0, 0, .26); + font-size: 16px; + left: 0; + right: 0; + pointer-events: none; + position: absolute; + top: 24px; + width: 100%; + overflow: hidden; + white-space: nowrap; + text-align: left +} + +.mdl-textfield.is-dirty .mdl-textfield__label { + visibility: hidden +} + +.mdl-textfield--floating-label .mdl-textfield__label { + -webkit-transition-duration: .2s; + transition-duration: .2s; + -webkit-transition-timing-function: cubic-bezier(.4, 0, .2, 1); + transition-timing-function: cubic-bezier(.4, 0, .2, 1) +} + +.mdl-textfield--floating-label.is-focused .mdl-textfield__label, .mdl-textfield--floating-label.is-dirty .mdl-textfield__label { + color: rgb(0, 150, 136); + font-size: 12px; + top: 4px; + visibility: visible +} + +.mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label, .mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label { + top: -16px +} + +.mdl-textfield--floating-label.is-invalid .mdl-textfield__label { + color: #de3226; + font-size: 12px +} + +.mdl-textfield__label:after { + background-color: rgb(0, 150, 136); + bottom: 20px; + content: ''; + height: 2px; + left: 45%; + position: absolute; + -webkit-transition-duration: .2s; + transition-duration: .2s; + -webkit-transition-timing-function: cubic-bezier(.4, 0, .2, 1); + transition-timing-function: cubic-bezier(.4, 0, .2, 1); + visibility: hidden; + width: 10px +} + +.mdl-textfield.is-focused .mdl-textfield__label:after { + left: 0; + visibility: visible; + width: 100% +} + +.mdl-textfield.is-invalid .mdl-textfield__label:after { + background-color: #de3226 +} + +.mdl-textfield__error { + color: #de3226; + position: absolute; + font-size: 12px; + margin-top: 3px; + visibility: hidden +} + +.mdl-textfield.is-invalid .mdl-textfield__error { + visibility: visible +} + +.mdl-textfield__expandable-holder { + display: inline-block; + position: relative; + margin-left: 32px; + -webkit-transition-duration: .2s; + transition-duration: .2s; + -webkit-transition-timing-function: cubic-bezier(.4, 0, .2, 1); + transition-timing-function: cubic-bezier(.4, 0, .2, 1); + display: inline-block; + max-width: .1px +} + +.mdl-textfield.is-focused .mdl-textfield__expandable-holder, .mdl-textfield.is-dirty .mdl-textfield__expandable-holder { + max-width: 600px +} + +.mdl-textfield__expandable-holder .mdl-textfield__label:after { + bottom: 0 +} + +.mdl-tooltip { + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); + -webkit-transform-origin: top center; + -ms-transform-origin: top center; + transform-origin: top center; + will-change: transform; + z-index: 999; + background: rgba(97, 97, 97, .9); + border-radius: 2px; + color: #fff; + display: inline-block; + font-size: 10px; + font-weight: 500; + line-height: 14px; + max-width: 170px; + position: fixed; + top: -500px; + left: -500px; + padding: 8px; + text-align: center +} + +.mdl-tooltip.is-active { + -webkit-animation: pulse 200ms cubic-bezier(0, 0, .2, 1) forwards; + animation: pulse 200ms cubic-bezier(0, 0, .2, 1) forwards +} + +.mdl-tooltip--large { + line-height: 14px; + font-size: 14px; + padding: 16px +} + +@-webkit-keyframes pulse { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0 + } + 50% { + -webkit-transform: scale(.99); + transform: scale(.99) + } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + visibility: visible + } +} + +@keyframes pulse { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0 + } + 50% { + -webkit-transform: scale(.99); + transform: scale(.99) + } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + visibility: visible + } +} + +.mdl-shadow--2dp { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12) +} + +.mdl-shadow--3dp { + box-shadow: 0 3px 4px 0 rgba(0, 0, 0, .14), 0 3px 3px -2px rgba(0, 0, 0, .2), 0 1px 8px 0 rgba(0, 0, 0, .12) +} + +.mdl-shadow--4dp { + box-shadow: 0 4px 5px 0 rgba(0, 0, 0, .14), 0 1px 10px 0 rgba(0, 0, 0, .12), 0 2px 4px -1px rgba(0, 0, 0, .2) +} + +.mdl-shadow--6dp { + box-shadow: 0 6px 10px 0 rgba(0, 0, 0, .14), 0 1px 18px 0 rgba(0, 0, 0, .12), 0 3px 5px -1px rgba(0, 0, 0, .2) +} + +.mdl-shadow--8dp { + box-shadow: 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12), 0 5px 5px -3px rgba(0, 0, 0, .2) +} + +.mdl-shadow--16dp { + box-shadow: 0 16px 24px 2px rgba(0, 0, 0, .14), 0 6px 30px 5px rgba(0, 0, 0, .12), 0 8px 10px -5px rgba(0, 0, 0, .2) +} + +.mdl-grid { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-flow: row wrap; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + margin: 0 auto; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch +} + +.mdl-grid.mdl-grid--no-spacing { + padding: 0 +} + +.mdl-cell { + box-sizing: border-box +} + +.mdl-cell--top { + -webkit-align-self: flex-start; + -ms-flex-item-align: start; + align-self: flex-start +} + +.mdl-cell--middle { + -webkit-align-self: center; + -ms-flex-item-align: center; + align-self: center +} + +.mdl-cell--bottom { + -webkit-align-self: flex-end; + -ms-flex-item-align: end; + align-self: flex-end +} + +.mdl-cell--stretch { + -webkit-align-self: stretch; + -ms-flex-item-align: stretch; + align-self: stretch +} + +.mdl-grid.mdl-grid--no-spacing > .mdl-cell { + margin: 0 +} + +@media (max-width: 479px) { + .mdl-grid { + padding: 8px + } + + .mdl-cell { + margin: 8px; + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell { + width: 100% + } + + .mdl-cell--hide-phone { + display: none !important + } + + .mdl-cell--1-col { + width: calc(25% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--1-col { + width: 25% + } + + .mdl-cell--1-col-phone.mdl-cell--1-col-phone { + width: calc(25% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--1-col-phone.mdl-cell--1-col-phone { + width: 25% + } + + .mdl-cell--2-col { + width: calc(50% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--2-col { + width: 50% + } + + .mdl-cell--2-col-phone.mdl-cell--2-col-phone { + width: calc(50% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--2-col-phone.mdl-cell--2-col-phone { + width: 50% + } + + .mdl-cell--3-col { + width: calc(75% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--3-col { + width: 75% + } + + .mdl-cell--3-col-phone.mdl-cell--3-col-phone { + width: calc(75% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--3-col-phone.mdl-cell--3-col-phone { + width: 75% + } + + .mdl-cell--4-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--4-col { + width: 100% + } + + .mdl-cell--4-col-phone.mdl-cell--4-col-phone { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--4-col-phone.mdl-cell--4-col-phone { + width: 100% + } + + .mdl-cell--5-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--5-col { + width: 100% + } + + .mdl-cell--5-col-phone.mdl-cell--5-col-phone { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--5-col-phone.mdl-cell--5-col-phone { + width: 100% + } + + .mdl-cell--6-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--6-col { + width: 100% + } + + .mdl-cell--6-col-phone.mdl-cell--6-col-phone { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--6-col-phone.mdl-cell--6-col-phone { + width: 100% + } + + .mdl-cell--7-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--7-col { + width: 100% + } + + .mdl-cell--7-col-phone.mdl-cell--7-col-phone { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--7-col-phone.mdl-cell--7-col-phone { + width: 100% + } + + .mdl-cell--8-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--8-col { + width: 100% + } + + .mdl-cell--8-col-phone.mdl-cell--8-col-phone { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--8-col-phone.mdl-cell--8-col-phone { + width: 100% + } + + .mdl-cell--9-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--9-col { + width: 100% + } + + .mdl-cell--9-col-phone.mdl-cell--9-col-phone { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--9-col-phone.mdl-cell--9-col-phone { + width: 100% + } + + .mdl-cell--10-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--10-col { + width: 100% + } + + .mdl-cell--10-col-phone.mdl-cell--10-col-phone { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--10-col-phone.mdl-cell--10-col-phone { + width: 100% + } + + .mdl-cell--11-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--11-col { + width: 100% + } + + .mdl-cell--11-col-phone.mdl-cell--11-col-phone { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--11-col-phone.mdl-cell--11-col-phone { + width: 100% + } + + .mdl-cell--12-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--12-col { + width: 100% + } + + .mdl-cell--12-col-phone.mdl-cell--12-col-phone { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--12-col-phone.mdl-cell--12-col-phone { + width: 100% + } +} + +@media (min-width: 480px) and (max-width: 839px) { + .mdl-grid { + padding: 8px + } + + .mdl-cell { + margin: 8px; + width: calc(50% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell { + width: 50% + } + + .mdl-cell--hide-tablet { + display: none !important + } + + .mdl-cell--1-col { + width: calc(12.5% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--1-col { + width: 12.5% + } + + .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet { + width: calc(12.5% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet { + width: 12.5% + } + + .mdl-cell--2-col { + width: calc(25% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--2-col { + width: 25% + } + + .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet { + width: calc(25% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet { + width: 25% + } + + .mdl-cell--3-col { + width: calc(37.5% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--3-col { + width: 37.5% + } + + .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet { + width: calc(37.5% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet { + width: 37.5% + } + + .mdl-cell--4-col { + width: calc(50% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--4-col { + width: 50% + } + + .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet { + width: calc(50% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet { + width: 50% + } + + .mdl-cell--5-col { + width: calc(62.5% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--5-col { + width: 62.5% + } + + .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet { + width: calc(62.5% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet { + width: 62.5% + } + + .mdl-cell--6-col { + width: calc(75% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--6-col { + width: 75% + } + + .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet { + width: calc(75% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet { + width: 75% + } + + .mdl-cell--7-col { + width: calc(87.5% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--7-col { + width: 87.5% + } + + .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet { + width: calc(87.5% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet { + width: 87.5% + } + + .mdl-cell--8-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--8-col { + width: 100% + } + + .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet { + width: 100% + } + + .mdl-cell--9-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--9-col { + width: 100% + } + + .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet { + width: 100% + } + + .mdl-cell--10-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--10-col { + width: 100% + } + + .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet { + width: 100% + } + + .mdl-cell--11-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--11-col { + width: 100% + } + + .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet { + width: 100% + } + + .mdl-cell--12-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--12-col { + width: 100% + } + + .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet { + width: 100% + } +} + +@media (min-width: 840px) { + .mdl-grid { + padding: 8px + } + + .mdl-cell { + margin: 8px; + width: calc(33.3333333333% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell { + width: 33.3333333333% + } + + .mdl-cell--hide-desktop { + display: none !important + } + + .mdl-cell--1-col { + width: calc(8.3333333333% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--1-col { + width: 8.3333333333% + } + + .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop { + width: calc(8.3333333333% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop { + width: 8.3333333333% + } + + .mdl-cell--2-col { + width: calc(16.6666666667% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--2-col { + width: 16.6666666667% + } + + .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop { + width: calc(16.6666666667% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop { + width: 16.6666666667% + } + + .mdl-cell--3-col { + width: calc(25% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--3-col { + width: 25% + } + + .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop { + width: calc(25% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop { + width: 25% + } + + .mdl-cell--4-col { + width: calc(33.3333333333% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--4-col { + width: 33.3333333333% + } + + .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop { + width: calc(33.3333333333% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop { + width: 33.3333333333% + } + + .mdl-cell--5-col { + width: calc(41.6666666667% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--5-col { + width: 41.6666666667% + } + + .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop { + width: calc(41.6666666667% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop { + width: 41.6666666667% + } + + .mdl-cell--6-col { + width: calc(50% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--6-col { + width: 50% + } + + .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop { + width: calc(50% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop { + width: 50% + } + + .mdl-cell--7-col { + width: calc(58.3333333333% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--7-col { + width: 58.3333333333% + } + + .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop { + width: calc(58.3333333333% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop { + width: 58.3333333333% + } + + .mdl-cell--8-col { + width: calc(66.6666666667% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--8-col { + width: 66.6666666667% + } + + .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop { + width: calc(66.6666666667% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop { + width: 66.6666666667% + } + + .mdl-cell--9-col { + width: calc(75% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--9-col { + width: 75% + } + + .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop { + width: calc(75% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop { + width: 75% + } + + .mdl-cell--10-col { + width: calc(83.3333333333% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--10-col { + width: 83.3333333333% + } + + .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop { + width: calc(83.3333333333% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop { + width: 83.3333333333% + } + + .mdl-cell--11-col { + width: calc(91.6666666667% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--11-col { + width: 91.6666666667% + } + + .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop { + width: calc(91.6666666667% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop { + width: 91.6666666667% + } + + .mdl-cell--12-col { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--12-col { + width: 100% + } + + .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop { + width: calc(100% - 16px) + } + + .mdl-grid--no-spacing > .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop { + width: 100% + } +} + +body { + margin: 0 +} + +.styleguide-demo h1 { + margin: 48px 24px 0 +} + +.styleguide-demo h1:after { + content: ''; + display: block; + width: 100%; + border-bottom: 1px solid rgba(0, 0, 0, .5); + margin-top: 24px +} + +.styleguide-demo { + opacity: 0; + -webkit-transition: opacity .6s ease; + transition: opacity .6s ease +} + +.styleguide-masthead { + height: 256px; + background: #212121; + padding: 115px 16px 0 +} + +.styleguide-container { + position: relative; + max-width: 960px; + width: 100% +} + +.styleguide-title { + color: #fff; + bottom: auto; + position: relative; + font-size: 56px; + font-weight: 300; + line-height: 1; + letter-spacing: -.02em +} + +.styleguide-title:after { + border-bottom: 0 +} + +.styleguide-title span { + font-weight: 300 +} + +.mdl-styleguide .mdl-layout__drawer .mdl-navigation__link { + padding: 10px 24px +} + +.demosLoaded .styleguide-demo { + opacity: 1 +} + +iframe { + display: block; + width: 100%; + border: none +} + +iframe.heightSet { + overflow: hidden +} + +.demo-wrapper { + margin: 24px +} + +.demo-wrapper iframe { + border: 1px solid rgba(0, 0, 0, .5) +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/dashboard/dashboard.json b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/dashboard/dashboard.json new file mode 100644 index 0000000..c59f193 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/dashboard/dashboard.json @@ -0,0 +1,241 @@ +{ + "version": 1, + "allow_edit": true, + "plugins": [], + "panes": [ + { + "width": 1, + "row": { + "3": 1 + }, + "col": { + "3": 1 + }, + "col_width": 1, + "widgets": [ + { + "type": "text_widget", + "settings": { + "size": "regular", + "value": "datasources[\"Clock\"][\"time_string_value\"]", + "animate": true + } + } + ] + }, + { + "title": "Disk I/O", + "width": 1, + "row": { + "3": 1 + }, + "col": { + "3": 3 + }, + "col_width": 1, + "widgets": [ + { + "type": "text_widget", + "settings": { + "title": "Bytes Read / sec.", + "size": "regular", + "value": "(datasources[\"System Dashboard Flask\"][\"disk_io\"][\"read_bytes_sec\"] / 1000000).toFixed(3)", + "sparkline": true, + "animate": false, + "units": "MB" + } + }, + { + "type": "text_widget", + "settings": { + "title": "Bytes Written / sec.", + "size": "regular", + "value": "(datasources[\"System Dashboard Flask\"][\"disk_io\"][\"write_bytes_sec\"] / 1000000).toFixed(3)", + "sparkline": true, + "animate": false, + "units": "MB" + } + } + ] + }, + { + "title": "Network I/O", + "width": 1, + "row": { + "3": 1 + }, + "col": { + "3": 2 + }, + "col_width": 1, + "widgets": [ + { + "type": "text_widget", + "settings": { + "title": "Bytes Transmitted / sec.", + "size": "regular", + "value": "(datasources[\"System Dashboard Flask\"][\"net_io\"][\"sent_bytes_sec\"] / 1000000).toFixed(3)", + "sparkline": true, + "animate": false, + "units": "MB" + } + }, + { + "type": "text_widget", + "settings": { + "title": "Bytes Received / sec.", + "size": "regular", + "value": "(datasources[\"System Dashboard Flask\"][\"net_io\"][\"received_bytes_sec\"] / 1000000).toFixed(3)", + "sparkline": true, + "animate": false, + "units": "MB" + } + } + ] + }, + { + "title": "CPU Utilization", + "width": 1, + "row": { + "3": 5 + }, + "col": { + "3": 1 + }, + "col_width": 1, + "widgets": [ + { + "type": "text_widget", + "settings": { + "size": "big", + "value": "datasources[\"System Dashboard Flask\"][\"cpu\"][\"percent\"].toFixed(1)", + "sparkline": true, + "animate": false, + "units": "%" + } + } + ] + }, + { + "title": "RAM Utilization", + "width": 1, + "row": { + "3": 11 + }, + "col": { + "3": 1 + }, + "col_width": 1, + "widgets": [ + { + "type": "text_widget", + "settings": { + "size": "big", + "value": "datasources[\"System Dashboard Flask\"][\"ram\"][\"percent\"].toFixed(1)", + "sparkline": true, + "animate": false, + "units": "%" + } + } + ] + }, + { + "title": "Disk Utilization", + "width": 1, + "row": { + "3": 11 + }, + "col": { + "3": 3 + }, + "col_width": "1", + "widgets": [ + { + "type": "text_widget", + "settings": { + "title": "Used", + "size": "regular", + "value": "(datasources[\"System Dashboard Flask\"][\"disk\"][\"used\"] / (1000 * 1024 * 1024)).toFixed(2)", + "animate": false, + "units": "GB" + } + }, + { + "type": "text_widget", + "settings": { + "title": "Total", + "size": "regular", + "value": "(datasources[\"System Dashboard Flask\"][\"disk\"][\"total\"] / (1000 * 1024 * 1024)).toFixed(2)", + "animate": false, + "units": "GB" + } + }, + { + "type": "text_widget", + "settings": { + "title": "Mount", + "size": "regular", + "value": "datasources[\"System Dashboard Flask\"][\"disk\"][\"mount\"]", + "animate": false, + "units": "" + } + } + ] + }, + { + "title": "RAM Utilization", + "width": 1, + "row": { + "3": 11 + }, + "col": { + "3": 2 + }, + "col_width": 1, + "widgets": [ + { + "type": "text_widget", + "settings": { + "title": "Utilized", + "size": "regular", + "value": "(datasources[\"System Dashboard Flask\"][\"ram\"][\"used\"] / (1000 * 1024 * 1024)).toFixed(2)", + "sparkline": false, + "animate": false, + "units": "GB" + } + }, + { + "type": "text_widget", + "settings": { + "title": "Total", + "size": "regular", + "value": "(datasources[\"System Dashboard Flask\"][\"ram\"][\"total\"] / (1000 * 1024 * 1024)).toFixed(2)", + "sparkline": false, + "animate": true, + "units": "GB" + } + } + ] + } + ], + "datasources": [ + { + "name": "System Dashboard Flask", + "type": "JSON", + "settings": { + "url": "http://127.0.0.1:5000/update", + "use_thingproxy": false, + "refresh": 1, + "method": "GET" + } + }, + { + "name": "Clock", + "type": "clock", + "settings": { + "refresh": 1 + } + } + ], + "columns": 3 +} \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/icons/icons.woff2 b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/icons/icons.woff2 new file mode 100644 index 0000000..373c2c5 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/icons/icons.woff2 differ diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/dropdown-arrow.png b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/dropdown-arrow.png new file mode 100755 index 0000000..745e64b Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/dropdown-arrow.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-blackboard.png b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-blackboard.png new file mode 100755 index 0000000..deb17a4 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-blackboard.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-halflings-white.png b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-halflings-white.png new file mode 100755 index 0000000..3bf6484 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-halflings-white.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-halflings.png b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-halflings.png new file mode 100755 index 0000000..a996999 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-halflings.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-log-in.png b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-log-in.png new file mode 100755 index 0000000..bf672c9 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-log-in.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-log-out.png b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-log-out.png new file mode 100755 index 0000000..8fda1f2 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/img/glyphicons-log-out.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/js/custom.js b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/js/custom.js new file mode 100644 index 0000000..7ff1ff2 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/js/custom.js @@ -0,0 +1,144 @@ +// Copyright (c) 2021 Battelle Energy Alliance, LLC. All rights reserved. + +function start_all() { + var xhttp = new XMLHttpRequest(); + loadingBar('on'); + xhttp.onreadystatechange = function () { + if (this.readyState === 4 && this.status === 200) { + loadingBar('off'); + modal(this.responseText); + } + }; + xhttp.open("POST", "/script_call/start all", true); + xhttp.send(); +} + + +function stop_all() { + var xhttp = new XMLHttpRequest(); + loadingBar('on'); + xhttp.onreadystatechange = function () { + if (this.readyState === 4 && this.status === 200) { + loadingBar('off'); + modal(this.responseText); + } + }; + xhttp.open("POST", "/script_call/stop all", true); + xhttp.send(); + +} + +function start_bro() { + var xhttp = new XMLHttpRequest(); + loadingBar('on'); + xhttp.onreadystatechange = function () { + if (this.readyState === 4 && this.status === 200) { + loadingBar('off'); + modal(this.responseText); + } + }; + xhttp.open("POST", "/script_call/start zeek:*", true); + xhttp.send(); +} + +function stop_bro() { + var xhttp = new XMLHttpRequest(); + loadingBar('on'); + xhttp.onreadystatechange = function () { + if (this.readyState === 4 && this.status === 200) { + loadingBar('off'); + modal(this.responseText); + } + }; + xhttp.open("POST", "/script_call/stop zeek:*", true); + xhttp.send(); + +} + +function start_tcp() { + var xhttp = new XMLHttpRequest(); + loadingBar('on'); + xhttp.onreadystatechange = function () { + if (this.readyState === 4 && this.status === 200) { + loadingBar('off'); + modal(this.responseText); + } + }; + xhttp.open("POST", "/script_call/start tcpdump:*", true); + xhttp.send(); + +} + +function stop_tcp() { + var xhttp = new XMLHttpRequest(); + loadingBar('on'); + xhttp.onreadystatechange = function () { + if (this.readyState === 4 && this.status === 200) { + loadingBar('off'); + modal(this.responseText); + } + }; + xhttp.open("POST", "/script_call/stop tcpdump:*", true); + xhttp.send(); + +} + +function sensor_status() { + var xhttp = new XMLHttpRequest(); + loadingBar('on'); + xhttp.onreadystatechange = function () { + if (this.readyState === 4 && this.status === 200) { + loadingBar('off'); + modal(this.responseText); + } + }; + xhttp.open("POST", "/script_call/status all", true); + xhttp.send(); +} + +function clean_sensor() { + if (confirm('This will irreversibly remove captured data. Are you sure?')) { + var xhttp = new XMLHttpRequest(); + loadingBar('on'); + xhttp.onreadystatechange = function () { + if (this.readyState === 4 && this.status === 200) { + loadingBar('off'); + modal(this.responseText); + } + }; + xhttp.open("POST", "/script_call/clean all", true); + xhttp.send(); + } +} + +String.prototype.unquoted = function (){return this.replace (/(^")|("$)/g, '')} + +function modal(responseText) { + + var modal = document.getElementById('myModal'); + var text = document.getElementById('response_text'); + var closeBtn = document.getElementById("close"); + + modal.style.display = "block"; + + text.innerHTML = responseText.split("\\n").join("
    ").unquoted(); + + closeBtn.onclick = function () { + modal.style.display = "none"; + }; + + window.onclick = function (event) { + if (event.target === modal) { + modal.style.display = "none"; + } + }; +} + +function loadingBar(status) { + var loading = document.getElementById('myLoading'); + if (status === 'on') { + loading.style.display = "block"; + } else { + loading.style.display = "none"; + } +} diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/js/freeboard.min.js b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/js/freeboard.min.js new file mode 100755 index 0000000..6b3c5e3 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/js/freeboard.min.js @@ -0,0 +1,1088 @@ +function DialogBox(a, b, c, d, e) { + function f() { + g.fadeOut(200, function () { + $(this).remove() + }) + } + + var g = $('

    '), h = $(''); + h.append('

    ' + b + "

    "), $("
    ").appendTo(h).append(a); + var i = $("
    ").appendTo(h); + c && $('' + c + "").appendTo(i).click(function () { + var a = !1; + _.isFunction(e) && (a = e()), a || f() + }), d && $('' + d + "").appendTo(i).click(function () { + f() + }), g.append(h), $("body").append(g), g.fadeIn(200) +} + +function FreeboardModel(a, b, c) { + var d = this, e = 1; + this.version = 0, this.isEditing = ko.observable(!1), this.allow_edit = ko.observable(!1), this.allow_edit.subscribe(function (a) { + a ? $("#main-header").show() : $("#main-header").hide() + }), this.header_image = ko.observable(), this.plugins = ko.observableArray(), this.datasources = ko.observableArray(), this.panes = ko.observableArray(), this.datasourceData = {}, this.processDatasourceUpdate = function (a, b) { + var c = a.name(); + d.datasourceData[c] = b, _.each(d.panes(), function (a) { + _.each(a.widgets(), function (a) { + a.processDatasourceUpdate(c) + }) + }) + }, this._datasourceTypes = ko.observable(), this.datasourceTypes = ko.computed({ + read: function () { + d._datasourceTypes(); + var b = []; + return _.each(a, function (a) { + var c = a.type_name, d = c; + _.isUndefined(a.display_name) || (d = a.display_name), b.push({name: c, display_name: d}) + }), b + } + }), this._widgetTypes = ko.observable(), this.widgetTypes = ko.computed({ + read: function () { + d._widgetTypes(); + var a = []; + return _.each(b, function (b) { + var c = b.type_name, d = c; + _.isUndefined(b.display_name) || (d = b.display_name), a.push({name: c, display_name: d}) + }), a + } + }), this.addPluginSource = function (a) { + a && -1 == d.plugins.indexOf(a) && d.plugins.push(a) + }, this.serialize = function () { + var a = []; + _.each(d.panes(), function (b) { + a.push(b.serialize()) + }); + var b = []; + return _.each(d.datasources(), function (a) { + b.push(a.serialize()) + }), { + version: e, + header_image: d.header_image(), + allow_edit: d.allow_edit(), + plugins: d.plugins(), + panes: a, + datasources: b, + columns: c.getUserColumns() + } + }, this.deserialize = function (e, f) { + function g() { + c.setUserColumns(e.columns), _.isUndefined(e.allow_edit) ? d.allow_edit(!0) : d.allow_edit(e.allow_edit), d.version = e.version || 0, d.header_image(e.header_image), _.each(e.datasources, function (b) { + var c = new DatasourceModel(d, a); + c.deserialize(b), d.addDatasource(c) + }); + var g = _.sortBy(e.panes, function (a) { + return c.getPositionForScreenSize(a).row + }); + _.each(g, function (a) { + var c = new PaneModel(d, b); + c.deserialize(a), d.panes.push(c) + }), d.allow_edit() && 0 == d.panes().length && d.setEditing(!0), _.isFunction(f) && f(), c.processResize(!0) + } + + d.clearDashboard(), _.each(e.plugins, function (a) { + d.addPluginSource(a) + }), _.isArray(e.plugins) && e.plugins.length > 0 ? head.js(e.plugins, function () { + g() + }) : g() + }, this.clearDashboard = function () { + c.removeAllPanes(), _.each(d.datasources(), function (a) { + a.dispose() + }), _.each(d.panes(), function (a) { + a.dispose() + }), d.plugins.removeAll(), d.datasources.removeAll(), d.panes.removeAll() + }, this.loadDashboard = function (a, b) { + c.showLoadingIndicator(!0), d.deserialize(a, function () { + c.showLoadingIndicator(!1), _.isFunction(b) && b(), freeboard.emit("dashboard_loaded") + }) + }, this.loadDashboardFromLocalFile = function () { + if (window.File && window.FileReader && window.FileList && window.Blob) { + var a = document.createElement("input"); + a.type = "file", $(a).on("change", function (a) { + var b = a.target.files; + if (b && b.length > 0) { + var c = b[0], e = new FileReader; + e.addEventListener("load", function (a) { + var b = a.target, c = JSON.parse(b.result); + d.loadDashboard(c), d.setEditing(!1) + }), e.readAsText(c) + } + }), $(a).trigger("click") + } else alert("Unable to load a file in this browser.") + }, this.saveDashboardClicked = function () { + var a = $(event.currentTarget), b = a.data("siblings-shown") || !1; + b ? $(event.currentTarget).siblings("label").fadeOut("slow") : $(event.currentTarget).siblings("label").fadeIn("slow"), a.data("siblings-shown", !b) + }, this.saveDashboard = function (a, b) { + var c = $(b.currentTarget).data("pretty"), e = "application/octet-stream", f = document.createElement("a"); + if (c) var g = new Blob([JSON.stringify(d.serialize(), null, " ")], {type: e}); else var g = new Blob([JSON.stringify(d.serialize())], {type: e}); + document.body.appendChild(f), f.href = window.URL.createObjectURL(g), f.download = "dashboard.json", f.target = "_self", f.click() + }, this.addDatasource = function (a) { + d.datasources.push(a) + }, this.deleteDatasource = function (a) { + delete d.datasourceData[a.name()], a.dispose(), d.datasources.remove(a) + }, this.createPane = function () { + var a = new PaneModel(d, b); + d.addPane(a) + }, this.addGridColumnLeft = function () { + c.addGridColumnLeft() + }, this.addGridColumnRight = function () { + c.addGridColumnRight() + }, this.subGridColumnLeft = function () { + c.subGridColumnLeft() + }, this.subGridColumnRight = function () { + c.subGridColumnRight() + }, this.addPane = function (a) { + d.panes.push(a) + }, this.deletePane = function (a) { + a.dispose(), d.panes.remove(a) + }, this.deleteWidget = function (a) { + ko.utils.arrayForEach(d.panes(), function (b) { + b.widgets.remove(a) + }), a.dispose() + }, this.setEditing = function (a, b) { + if (d.allow_edit() || !a) { + d.isEditing(a), _.isUndefined(b) && (b = !0); + var e = b ? 250 : 0, f = $("#admin-bar").outerHeight(); + a ? ($("#toggle-header-icon").addClass("icon-chevron-up").removeClass("icon-wrench"), $(".gridster .gs_w").css({cursor: "pointer"}), $("#main-header").animate({top: "0px"}, e), $("#board-content").animate({top: f + 20 + "px"}, e), $("#main-header").data().shown = !0, c.attachWidgetEditIcons($(".sub-section")), c.enableGrid()) : ($("#toggle-header-icon").addClass("icon-wrench").removeClass("icon-chevron-up"), $(".gridster .gs_w").css({cursor: "default"}), $("#main-header").animate({top: "-" + f + "px"}, e), $("#board-content").animate({top: "20"}, e), $("#main-header").data().shown = !1, $(".sub-section").unbind(), c.disableGrid()), c.showPaneEditIcons(a, b) + } + }, this.toggleEditing = function () { + var a = !d.isEditing(); + d.setEditing(a) + } +} + +function FreeboardUI() { + function a(a) { + var b = e(), c = function () { + }; + a && (c = function (a) { + var c = this, d = ko.dataFor(c), e = q(d); + $(c).attr("data-sizex", Math.min(d.col_width(), b, r.cols)).attr("data-row", e.row).attr("data-col", e.col), d.processSizeChange() + }), f(Math.min(b, w)), g(c), d() + } + + function b(a) { + var b = r.cols + 1; + f(b) && g(function () { + var b, c = this, d = ko.dataFor(c), e = r.cols > 1 ? r.cols - 1 : 1, f = d.col[e], g = d.row[e]; + if (a) { + leftPreviewCol = !0; + var h = f < r.cols ? f + 1 : r.cols; + b = {row: g, col: h} + } else rightPreviewCol = !0, b = {row: g, col: f}; + $(c).attr("data-sizex", Math.min(d.col_width(), r.cols)).attr("data-row", b.row).attr("data-col", b.col) + }), d(), w = r.cols + } + + function c(a) { + var b = r.cols - 1; + f(b) && g(function () { + var b, c = this, d = ko.dataFor(c), e = r.cols + 1, f = d.col[e], g = d.row[e]; + if (a) { + var h = f > 1 ? f - 1 : 1; + b = {row: g, col: h} + } else { + var h = f <= r.cols ? f : r.cols; + b = {row: g, col: h} + } + $(c).attr("data-sizex", Math.min(d.col_width(), r.cols)).attr("data-row", b.row).attr("data-col", b.col) + }), d(), w = r.cols + } + + function d() { + var a = $(".column-tool"), b = $("#board-content").width(), c = Math.floor(b / v); + r.cols <= u ? a.addClass("min") : a.removeClass("min"), r.cols >= c ? a.addClass("max") : a.removeClass("max") + } + + function e() { + var a = $("#board-content").width(); + return Math.floor(a / v) + } + + function f(a) { + (void 0 === a || u > a) && (a = u); + var b = e(); + a > b && (a = b); + var c = v * a + a; + return $(".responsive-column-width").css("max-width", c), a === r.cols ? !1 : !0 + } + + function g(a) { + var b = r.$el; + b.find("> li").unbind().removeData(), $(".responsive-column-width").css("width", ""), r.generate_grid_and_stylesheet(), b.find("> li").each(a), r.init(), $(".responsive-column-width").css("width", r.cols * t + r.cols * s * 2) + } + + function h() { + return w + } + + function i(a) { + w = Math.max(u, a) + } + + function j(a, b, c) { + var d = q(b), e = d.col, f = d.row, g = Number(b.width()), h = Number(b.getCalculatedHeight()); + r.add_widget(a, g, h, e, f), c && n(!0), l(b, f, e), $(a).attrchange({ + trackValues: !0, callback: function (a) { + "data-row" == a.attributeName ? l(b, Number(a.newValue), void 0) : "data-col" == a.attributeName && l(b, void 0, Number(a.newValue)) + } + }) + } + + function k(a, b) { + var c = b.getCalculatedHeight(), d = Number($(a).attr("data-sizey")), e = Number($(a).attr("data-sizex")); + (c != d || b.col_width() != e) && r.resize_widget($(a), b.col_width(), c, function () { + r.set_dom_grid_height() + }) + } + + function l(a, b, c) { + var d = r.cols; + _.isUndefined(b) || (a.row[d] = b), _.isUndefined(c) || (a.col[d] = c) + } + + function m(a) { + a ? x.fadeOut(0).appendTo("body").fadeIn(500) : x.fadeOut(500).remove() + } + + function n(a, b) { + _.isUndefined(b) && (b = !0); + var c = b ? 250 : 0; + a ? ($(".pane-tools").fadeIn(c), $("#column-tools").fadeIn(c)) : ($(".pane-tools").fadeOut(c), $("#column-tools").fadeOut(c)) + } + + function o(a) { + $(a).hover(function () { + p(this, !0) + }, function () { + p(this, !1) + }) + } + + function p(a, b) { + b ? $(a).find(".sub-section-tools").fadeIn(250) : $(a).find(".sub-section-tools").fadeOut(250) + } + + function q(a) { + var b = r.cols; + if (_.isNumber(a.row) && _.isNumber(a.col)) { + var c = {}; + c[b] = a.row, a.row = c, c = {}, c[b] = a.col, a.col = c + } + var d = 1, e = 1e3; + for (var f in a.col) { + if (f == b) return {row: a.row[f], col: a.col[f]}; + if (a.col[f] > b) d = b; else { + var g = b - f; + e > g && (d = f, e = g) + } + } + return d in a.col && d in a.row ? {row: a.row[d], col: a.col[d]} : {row: 1, col: d} + } + + var r, s = 10, t = 300, u = 3, v = s + t + s, w = u, + x = $('
    '); + return ko.bindingHandlers.grid = { + init: function (b, c, d, e, f) { + r = $(b).gridster({ + widget_margins: [s, s], + widget_base_dimensions: [t, 10], + resize: {enabled: !1, axes: "x"} + }).data("gridster"), a(!1), r.disable() + } + }, { + showLoadingIndicator: function (a) { + m(a) + }, showPaneEditIcons: function (a, b) { + n(a, b) + }, attachWidgetEditIcons: function (a) { + o(a) + }, getPositionForScreenSize: function (a) { + return q(a) + }, processResize: function (b) { + a(b) + }, disableGrid: function () { + r.disable() + }, enableGrid: function () { + r.enable() + }, addPane: function (a, b, c) { + j(a, b, c) + }, updatePane: function (a, b) { + k(a, b) + }, removePane: function (a) { + r.remove_widget(a) + }, removeAllPanes: function () { + r.remove_all_widgets() + }, addGridColumnLeft: function () { + b(!0) + }, addGridColumnRight: function () { + b(!1) + }, subGridColumnLeft: function () { + c(!0) + }, subGridColumnRight: function () { + c(!1) + }, getUserColumns: function () { + return h() + }, setUserColumns: function (a) { + i(a) + } + } +} + +function PaneModel(a, b) { + var c = this; + this.title = ko.observable(), this.width = ko.observable(1), this.row = {}, this.col = {}, this.col_width = ko.observable(1), this.col_width.subscribe(function (a) { + c.processSizeChange() + }), this.widgets = ko.observableArray(), this.addWidget = function (a) { + this.widgets.push(a) + }, this.widgetCanMoveUp = function (a) { + return c.widgets.indexOf(a) >= 1 + }, this.widgetCanMoveDown = function (a) { + var b = c.widgets.indexOf(a); + return b < c.widgets().length - 1 + }, this.moveWidgetUp = function (a) { + if (c.widgetCanMoveUp(a)) { + var b = c.widgets.indexOf(a), d = c.widgets(); + c.widgets.splice(b - 1, 2, d[b], d[b - 1]) + } + }, this.moveWidgetDown = function (a) { + if (c.widgetCanMoveDown(a)) { + var b = c.widgets.indexOf(a), d = c.widgets(); + c.widgets.splice(b, 2, d[b + 1], d[b]) + } + }, this.processSizeChange = function () { + setTimeout(function () { + _.each(c.widgets(), function (a) { + a.processSizeChange() + }) + }, 1e3) + }, this.getCalculatedHeight = function () { + var a = _.reduce(c.widgets(), function (a, b) { + return a + b.height() + }, 0); + a *= 6, a += 3, a *= 10; + var b = Math.ceil((a + 20) / 30); + return Math.max(4, b) + }, this.serialize = function () { + var a = []; + return _.each(c.widgets(), function (b) { + a.push(b.serialize()) + }), {title: c.title(), width: c.width(), row: c.row, col: c.col, col_width: c.col_width(), widgets: a} + }, this.deserialize = function (d) { + c.title(d.title), c.width(d.width), c.row = d.row, c.col = d.col, c.col_width(d.col_width || 1), _.each(d.widgets, function (d) { + var e = new WidgetModel(a, b); + e.deserialize(d), c.widgets.push(e) + }) + }, this.dispose = function () { + _.each(c.widgets(), function (a) { + a.dispose() + }) + } +} + +function WidgetModel(a, b) { + function c() { + _.isUndefined(d.widgetInstance) || (_.isFunction(d.widgetInstance.onDispose) && d.widgetInstance.onDispose(), d.widgetInstance = void 0) + } + + var d = this; + this.datasourceRefreshNotifications = {}, this.calculatedSettingScripts = {}, this.title = ko.observable(), this.fillSize = ko.observable(!1), this.type = ko.observable(), this.type.subscribe(function (a) { + function e() { + f.newInstance(d.settings(), function (a) { + d.fillSize(f.fill_size === !0), d.widgetInstance = a, d.shouldRender(!0), d._heightUpdate.valueHasMutated() + }) + } + + if (c(), a in b && _.isFunction(b[a].newInstance)) { + var f = b[a]; + f.external_scripts ? head.js(f.external_scripts.slice(0), e) : e() + } + }), this.settings = ko.observable({}), this.settings.subscribe(function (a) { + !_.isUndefined(d.widgetInstance) && _.isFunction(d.widgetInstance.onSettingsChanged) && d.widgetInstance.onSettingsChanged(a), d.updateCalculatedSettings(), d._heightUpdate.valueHasMutated() + }), this.processDatasourceUpdate = function (a) { + var b = d.datasourceRefreshNotifications[a]; + _.isArray(b) && _.each(b, function (a) { + d.processCalculatedSetting(a) + }) + }, this.callValueFunction = function (b) { + return b.call(void 0, a.datasourceData) + }, this.processSizeChange = function () { + !_.isUndefined(d.widgetInstance) && _.isFunction(d.widgetInstance.onSizeChanged) && d.widgetInstance.onSizeChanged() + }, this.processCalculatedSetting = function (a) { + if (_.isFunction(d.calculatedSettingScripts[a])) { + var b = void 0; + try { + b = d.callValueFunction(d.calculatedSettingScripts[a]) + } catch (c) { + var e = d.settings()[a]; + c instanceof ReferenceError && /^\w+$/.test(e) && (b = e) + } + if (!_.isUndefined(d.widgetInstance) && _.isFunction(d.widgetInstance.onCalculatedValueChanged) && !_.isUndefined(b)) try { + d.widgetInstance.onCalculatedValueChanged(a, b) + } catch (c) { + console.log(c.toString()) + } + } + }, this.updateCalculatedSettings = function () { + if (d.datasourceRefreshNotifications = {}, d.calculatedSettingScripts = {}, !_.isUndefined(d.type())) { + var a = b[d.type()].settings, c = new RegExp("datasources.([\\w_-]+)|datasources\\[['\"]([^'\"]+)", "g"), + e = d.settings(); + _.each(a, function (a) { + if ("calculated" == a.type) { + var b = e[a.name]; + if (!_.isUndefined(b)) { + _.isArray(b) && (b = "[" + b.join(",") + "]"), (b.match(/;/g) || []).length <= 1 && -1 == b.indexOf("return") && (b = "return " + b); + var f; + try { + f = new Function("datasources", b) + } catch (g) { + var h = e[a.name].replace(/"/g, '\\"').replace(/[\r\n]/g, " \\\n"); + f = new Function("datasources", 'return "' + h + '";') + } + d.calculatedSettingScripts[a.name] = f, d.processCalculatedSetting(a.name); + for (var i; i = c.exec(b);) { + var j = i[1] || i[2], k = d.datasourceRefreshNotifications[j]; + _.isUndefined(k) && (k = [], d.datasourceRefreshNotifications[j] = k), -1 == _.indexOf(k, a.name) && k.push(a.name) + } + } + } + }) + } + }, this._heightUpdate = ko.observable(), this.height = ko.computed({ + read: function () { + return d._heightUpdate(), !_.isUndefined(d.widgetInstance) && _.isFunction(d.widgetInstance.getHeight) ? d.widgetInstance.getHeight() : 1 + } + }), this.shouldRender = ko.observable(!1), this.render = function (a) { + d.shouldRender(!1), !_.isUndefined(d.widgetInstance) && _.isFunction(d.widgetInstance.render) && (d.widgetInstance.render(a), d.updateCalculatedSettings()) + }, this.dispose = function () { + }, this.serialize = function () { + return {title: d.title(), type: d.type(), settings: d.settings()} + }, this.deserialize = function (a) { + d.title(a.title), d.settings(a.settings), d.type(a.type) + } +} + +DatasourceModel = function (a, b) { + function c() { + _.isUndefined(d.datasourceInstance) || (_.isFunction(d.datasourceInstance.onDispose) && d.datasourceInstance.onDispose(), d.datasourceInstance = void 0) + } + + var d = this; + this.name = ko.observable(), this.latestData = ko.observable(), this.settings = ko.observable({}), this.settings.subscribe(function (a) { + !_.isUndefined(d.datasourceInstance) && _.isFunction(d.datasourceInstance.onSettingsChanged) && d.datasourceInstance.onSettingsChanged(a) + }), this.updateCallback = function (b) { + a.processDatasourceUpdate(d, b), d.latestData(b); + var c = new Date; + d.last_updated(c.toLocaleTimeString()) + }, this.type = ko.observable(), this.type.subscribe(function (a) { + function e() { + f.newInstance(d.settings(), function (a) { + d.datasourceInstance = a, a.updateNow() + }, d.updateCallback) + } + + if (c(), a in b && _.isFunction(b[a].newInstance)) { + var f = b[a]; + f.external_scripts ? head.js(f.external_scripts.slice(0), e) : e() + } + }), this.last_updated = ko.observable("never"), this.last_error = ko.observable(), this.serialize = function () { + return {name: d.name(), type: d.type(), settings: d.settings()} + }, this.deserialize = function (a) { + d.settings(a.settings), d.name(a.name), d.type(a.type) + }, this.getDataRepresentation = function (a) { + var b = new Function("data", "return " + a + ";"); + return b.call(void 0, d.latestData()) + }, this.updateNow = function () { + !_.isUndefined(d.datasourceInstance) && _.isFunction(d.datasourceInstance.updateNow) && d.datasourceInstance.updateNow() + }, this.dispose = function () { + c() + } +}, DeveloperConsole = function (a) { + function b() { + function b(a) { + var b = $(""), d = $('
      '), + e = $(''), + f = $('
    • ').click(function (a) { + c = _.without(c, e), b.remove() + }); + c.push(e), a && e.val(a), d.append(f), g.append(b.append($("").append(e)).append($('').append(d))) + } + + var c = [], d = $("
      "), e = $('
      ADD
      '), + f = $('
      '); + f.append($('Plugin Script URL')); + var g = $(""); + f.append(g), d.append($("

      Here you can add references to other scripts to load datasource or widget plugins.

      ")).append(f).append(e).append('

      To learn how to build plugins for freeboard, please visit http://freeboard.github.io/freeboard/docs/plugin_example.html

      '), _.each(a.plugins(), function (a) { + b(a) + }), e.click(function (a) { + b() + }), new DialogBox(d, "Developer Console", "OK", null, function () { + _.each(a.plugins(), function (a) { + $('script[src^="' + a + '"]').remove() + }), a.plugins.removeAll(), _.each(c, function (b) { + var c = b.val(); + c && c.length > 0 && (a.addPluginSource(c), head.js(c + "?" + Date.now())) + }) + }) + } + + return { + showDeveloperConsole: function () { + b() + } + } +}, JSEditor = function () { + function a(a) { + c = a + } + + function b(a, b) { + var c = '// Example: Convert temp from C to F and truncate to 2 decimal places.\n// return (datasources["MyDatasource"].sensor.tempInF * 1.8 + 32).toFixed(2);'; + a || (a = c); + var d = $('
      '), e = $('
      '), + f = $(''), + g = $('
      This javascript will be re-evaluated any time a datasource referenced here is updated, and the value you return will be displayed in the widget. You can assume this javascript is wrapped in a function of the form function(datasources) where datasources is a collection of javascript objects (keyed by their name) corresponding to the most current data in a datasource.
      '); + d.append([g, e, f]), $("body").append(d); + var h = CodeMirror(e.get(0), { + value: a, + mode: "javascript", + theme: "ambiance", + indentUnit: 4, + lineNumbers: !0, + matchBrackets: !0, + autoCloseBrackets: !0 + }), i = $('Close').click(function () { + if (b) { + var a = h.getValue(); + a === c && (a = ""), b(a), d.remove() + } + }); + f.append(i) + } + + var c = ""; + return { + displayJSEditor: function (a, c) { + b(a, c) + }, setAssetRoot: function (b) { + a(b) + } + } +}, PluginEditor = function (a, b) { + function c(a, b) { + var c = $('
      ').html(b); + $("#setting-value-container-" + a).append(c) + } + + function d() { + $("#setting-row-instance-name").length ? $("#setting-row-instance-name").nextAll().remove() : $("#setting-row-plugin-types").nextAll().remove() + } + + function e(a) { + return !isNaN(parseFloat(a)) && isFinite(a) + } + + function f(c, d, e, f, g) { + var h = $(""); + e.multi_input ? h.change(function () { + var a = []; + $(c).find("textarea").each(function () { + var b = $(this).val(); + b && (a = a.concat(b)) + }), d.settings[e.name] = a + }) : h.change(function () { + d.settings[e.name] = $(this).val() + }), f && h.val(f), b.createValueEditor(h); + var i = $('
        '), + j = $('
        '); + j.append(h).append(i); + var k = $('
      • ').mousedown(function (a) { + a.preventDefault(), $(h).val("").focus().insertAtCaret('datasources["').trigger("freeboard-eval") + }); + i.append(k); + var l = $('
      • ').mousedown(function (b) { + b.preventDefault(), a.displayJSEditor(h.val(), function (a) { + h.val(a), h.change() + }) + }); + if (i.append(l), g) { + var m = $('
      • ').mousedown(function (a) { + a.preventDefault(), j.remove(), $(c).find("textarea:first").change() + }); + i.prepend(m) + } + $(c).append(j) + } + + function g(a, b, g, h, i) { + function j(a, b) { + var c = $('
        ').appendTo(n); + return c.append('
        "), $('
        ').appendTo(c) + } + + function k(a, b, c) { + _.each(a, function (a) { + function d() { + m.settings[a.name].length > 0 ? n.show() : n.hide() + } + + function e(b) { + var c = $("").appendTo(p), e = {}; + _.isArray(m.settings[a.name]) || (m.settings[a.name] = []), m.settings[a.name].push(e), _.each(a.settings, function (a) { + var d = $("").appendTo(c), f = ""; + _.isUndefined(b[a.name]) || (f = b[a.name]), e[a.name] = f, $('').appendTo(d).val(f).change(function () { + e[a.name] = $(this).val() + }) + }), c.append($('').append($('
          ').append($("
        • ").append($('').click(function () { + var b = m.settings[a.name].indexOf(e); + -1 != b && (m.settings[a.name].splice(b, 1), c.remove(), d()) + }))))), k.scrollTop(k[0].scrollHeight), d() + } + + !_.isUndefined(a.default_value) && _.isUndefined(h[a.name]) && (h[a.name] = a.default_value); + var g = a.name; + _.isUndefined(a.display_name) || (g = a.display_name); + var i = j(a.name, g); + switch (a.type) { + case"array": + var k = $('
          ').appendTo(i), + l = $('
          ').appendTo(k), + n = $("").hide().appendTo(l), o = $("").appendTo(n), + p = $("").appendTo(l), q = []; + _.each(a.settings, function (a) { + var b = a.name; + _.isUndefined(a.display_name) || (b = a.display_name), $("" + b + "").appendTo(o) + }), a.name in h && (q = h[a.name]), $('
          ADD
          ').appendTo(i).click(function () { + var b = {}; + _.each(a.settings, function (a) { + b[a.name] = "" + }), e(b) + }), _.each(q, function (a, b) { + e(a) + }); + break; + case"boolean": + m.settings[a.name] = h[a.name]; + var r = $('
          ').appendTo(i), + s = $('').prependTo(r).change(function () { + m.settings[a.name] = this.checked + }); + a.name in h && s.prop("checked", h[a.name]); + break; + case"option": + var t = h[a.name], + s = $("").appendTo($('
          ').appendTo(i)).change(function () { + m.settings[a.name] = $(this).val() + }); + _.each(a.options, function (a) { + var b, c; + _.isObject(a) ? (b = a.name, c = a.value) : b = a, _.isUndefined(c) && (c = b), _.isUndefined(t) && (t = c), $("").text(b).attr("value", c).appendTo(s) + }), m.settings[a.name] = t, a.name in h && s.val(h[a.name]); + break; + default: + if (m.settings[a.name] = h[a.name], "calculated" == a.type) { + if (a.name in h) { + var u = h[a.name]; + if (a.multi_input && _.isArray(u)) for (var v = !1, w = 0; w < u.length; w++) f(i, m, a, u[w], v), v = !0; else f(i, m, a, u, !1) + } else f(i, m, a, null, !1); + if (a.multi_input) { + var x = $('
          ').mousedown(function (b) { + b.preventDefault(), f(i, m, a, null, !0) + }); + $(i).siblings(".form-label").append(x) + } + } else { + var s = $('').appendTo(i).change(function () { + "number" == a.type ? m.settings[a.name] = Number($(this).val()) : m.settings[a.name] = $(this).val() + }); + if (a.name in h && s.val(h[a.name]), b && a.typeahead_data_field && s.addClass("typeahead_data_field-" + a.typeahead_data_field), b && a.typeahead_field) { + var y = []; + s.keyup(function (a) { + a.which >= 65 && a.which <= 91 && s.trigger("change") + }), $(s).autocomplete({ + source: y, select: function (a, b) { + s.val(b.item.value), s.trigger("change") + } + }), s.change(function (d) { + var e = s.val(), f = _.template(b)({input: e}); + $.get(f, function (b) { + if (c && (b = b[c]), b = _.select(b, function (b) { + return b[a.typeahead_field][0] == e[0] + }), y = _.map(b, function (b) { + return b[a.typeahead_field] + }), $(s).autocomplete("option", "source", y), 1 == b.length) { + b = b[0]; + for (var d in b) if (b.hasOwnProperty(d)) { + var f = $(_.template("input.typeahead_data_field-<%= field %>")({field: d})); + f && (f.val(b[d]), f.val() != s.val() && f.trigger("change")) + } + } + }) + }) + } + } + } + _.isUndefined(a.suffix) || i.append($('
          ' + a.suffix + "
          ")), _.isUndefined(a.description) || i.append($('
          ' + a.description + "
          ")) + }) + } + + var l, m = {type: g, settings: {}}, n = $("
          "), o = $('
          ').hide(); + n.append(o), new DialogBox(n, a, "Save", "Cancel", function () { + $(".validation-error").remove(); + for (var a = 0; a < l.settings.length; a++) { + var b = l.settings[a]; + if (b.required && (_.isUndefined(m.settings[b.name]) || "" == m.settings[b.name])) return c(b.name, "This is required."), !0; + if ("integer" == b.type && m.settings[b.name] % 1 !== 0) return c(b.name, "Must be a whole number."), !0; + if ("number" == b.type && !e(m.settings[b.name])) return c(b.name, "Must be a number."), !0 + } + _.isFunction(i) && i(m) + }); + var p, q = _.keys(b); + if (q.length > 1) { + var r = j("plugin-types", "Type"); + p = $("").appendTo($('
          ').appendTo(r)), p.append($("").attr("value", "undefined")), _.each(b, function (a) { + p.append($("").text(a.display_name).attr("value", a.type_name)) + }), p.change(function () { + m.type = $(this).val(), m.settings = {}, d(), l = b[p.val()], _.isUndefined(l) ? ($("#setting-row-instance-name").hide(), $("#dialog-ok").hide()) : ($("#setting-row-instance-name").show(), l.description && l.description.length > 0 ? o.html(l.description).show() : o.hide(), $("#dialog-ok").show(), k(l.settings, l.typeahead_source, l.typeahead_data_segment)) + }) + } else 1 == q.length && (l = b[q[0]], m.type = l.type_name, m.settings = {}, k(l.settings)); + p && (_.isUndefined(g) ? ($("#setting-row-instance-name").hide(), $("#dialog-ok").hide()) : ($("#dialog-ok").show(), p.val(g).trigger("change"))) + } + + return { + createPluginEditor: function (a, b, c, d, e, f) { + g(a, b, c, d, e, f) + } + } +}, ValueEditor = function (a) { + function b(a, b) { + return _.isArray(a) || _.isObject(a) ? !0 : c(a, b) + } + + function c(a, b) { + switch (b) { + case o.ANY: + return !0; + case o.ARRAY: + return _.isArray(a); + case o.OBJECT: + return _.isObject(a); + case o.STRING: + return _.isString(a); + case o.NUMBER: + return _.isNumber(a); + case o.BOOLEAN: + return _.isBoolean(a) + } + } + + function d(a, b) { + $(a).parent().find(".validation-error").remove(), c(n, b) || $(a).parent().append("
          This field expects an expression that evaluates to type " + b + ".
          ") + } + + function e(a) { + var b = ($(a).val().match(/\n/g) || []).length, c = Math.min(200, 20 * (b + 1)); + $(a).css({height: c + "px"}) + } + + function f(a, c, d) { + var e = j.exec(a), f = []; + if (e) if ("" == e[1]) _.each(c, function (a) { + f.push({value: a.name(), entity: void 0, precede_char: "", follow_char: '"]'}) + }); else if ("" != e[1] && _.isUndefined(e[2])) { + var g = e[1]; + _.each(c, function (a) { + var b = a.name(); + b != g && 0 == b.indexOf(g) && f.push({value: b, entity: void 0, precede_char: "", follow_char: '"]'}) + }) + } else { + var h = _.find(c, function (a) { + return a.name() === e[1] + }); + if (!_.isUndefined(h)) { + var i = "data", k = ""; + if (!_.isUndefined(e[2])) { + var l = e[3].lastIndexOf("]") + 1; + i += e[3].substring(0, l), k = e[3].substring(l, e[3].length), k = k.replace(/^[\[\"]*/, ""), k = k.replace(/[\"\]]*$/, "") + } + var o = h.getDataRepresentation(i); + if (n = o, _.isArray(o)) { + for (var p = 0; p < o.length; p++) if (0 == p.toString().indexOf(k)) { + var q = o[p]; + b(q, d) && f.push({ + value: p, + entity: q, + precede_char: "[", + follow_char: "]", + preview: q.toString() + }) + } + } else _.isObject(o) && _.each(o, function (a, c) { + 0 == c.indexOf(k) && b(a, d) && f.push({value: c, entity: a, precede_char: '["', follow_char: '"]'}) + }) + } + } + m = f + } + + function g(b, c) { + var e = $(b).val().substring(0, $(b).getCaretPosition()); + if (e = e.replace(String.fromCharCode(160), " "), f(e, a.datasources(), c), m.length > 0) { + k || (k = $('
            ').insertAfter(b).width($(b).outerWidth() - 2).css("left", $(b).position().left).css("top", $(b).position().top + $(b).outerHeight() - 1)), k.empty(), k.scrollTop(0); + var g = !0; + l = 0, _.each(m, function (a, c) { + var d = h(b, e, a, c); + g && ($(d).addClass("selected"), g = !1) + }) + } else d(b, c), $(b).next("ul#value-selector").remove(), k = null, l = -1 + } + + function h(a, b, c, d) { + var e = c.value; + c.preview && (e = e + "" + c.preview + ""); + var f = $("
          • " + e + "
          • ").appendTo(k).mouseenter(function () { + $(this).trigger("freeboard-select") + }).mousedown(function (a) { + $(this).trigger("freeboard-insertValue"), a.preventDefault() + }).data("freeboard-optionIndex", d).data("freeboard-optionValue", c.value).bind("freeboard-insertValue", function () { + var d = c.value; + d = c.precede_char + d + c.follow_char; + var e = b.lastIndexOf("]"); + -1 != e ? $(a).replaceTextAt(e + 1, $(a).val().length, d) : $(a).insertAtCaret(d), n = c.entity, $(a).triggerHandler("mouseup") + }).bind("freeboard-select", function () { + $(this).parent().find("li.selected").removeClass("selected"), $(this).addClass("selected"), l = $(this).data("freeboard-optionIndex") + }); + return f + } + + function i(a, b) { + $(a).addClass("calculated-value-input").bind("keyup mouseup freeboard-eval", function (c) { + return !k || "keyup" != c.type || 38 != c.keyCode && 40 != c.keyCode && 13 != c.keyCode ? void g(a, b) : void c.preventDefault() + }).focus(function () { + $(a).css({"z-index": 3001}), e(a) + }).focusout(function () { + d(a, b), $(a).css({height: "", "z-index": 3e3}), $(a).next("ul#value-selector").remove(), k = null, l = -1 + }).bind("keydown", function (a) { + if (k) if (38 == a.keyCode || 40 == a.keyCode) { + a.preventDefault(); + var b = $(k).find("li"); + 38 == a.keyCode ? l-- : 40 == a.keyCode && l++, 0 > l ? l = b.size() - 1 : l >= b.size() && (l = 0); + var c = $(b).eq(l); + c.trigger("freeboard-select"), $(k).scrollTop($(c).position().top) + } else 13 == a.keyCode && (a.preventDefault(), -1 != l && $(k).find("li").eq(l).trigger("freeboard-insertValue")) + }) + } + + var j = new RegExp('.*datasources\\["([^"]*)("\\])?(.*)$'), k = null, l = 0, m = [], n = null, + o = {ANY: "any", ARRAY: "array", OBJECT: "object", STRING: "string", NUMBER: "number", BOOLEAN: "boolean"}; + return { + createValueEditor: function (a, b) { + b ? i(a, b) : i(a, o.ANY) + }, EXPECTED_TYPE: o + } +}, function (a) { + function b() { + var a = document.createElement("p"), b = !1; + if (a.addEventListener) a.addEventListener("DOMAttrModified", function () { + b = !0 + }, !1); else { + if (!a.attachEvent) return !1; + a.attachEvent("onDOMAttrModified", function () { + b = !0 + }) + } + return a.setAttribute("id", "target"), b + } + + function c(b, c) { + if (b) { + var d = this.data("attr-old-value"); + if (c.attributeName.indexOf("style") >= 0) { + d.style || (d.style = {}); + var e = c.attributeName.split("."); + c.attributeName = e[0], c.oldValue = d.style[e[1]], c.newValue = e[1] + ":" + this.prop("style")[a.camelCase(e[1])], d.style[e[1]] = c.newValue + } else c.oldValue = d[c.attributeName], c.newValue = this.attr(c.attributeName), d[c.attributeName] = c.newValue; + this.data("attr-old-value", d) + } + } + + var d = window.MutationObserver || window.WebKitMutationObserver; + a.fn.attrchange = function (e) { + var f = {trackValues: !1, callback: a.noop}; + if ("function" == typeof e ? f.callback = e : a.extend(f, e), f.trackValues && a(this).each(function (b, c) { + for (var d, e = {}, b = 0, f = c.attributes, g = f.length; g > b; b++) d = f.item(b), e[d.nodeName] = d.value; + a(this).data("attr-old-value", e) + }), d) { + var g = {subtree: !1, attributes: !0, attributeOldValue: f.trackValues}, h = new d(function (b) { + b.forEach(function (b) { + var c = b.target; + f.trackValues && (b.newValue = a(c).attr(b.attributeName)), f.callback.call(c, b) + }) + }); + return this.each(function () { + h.observe(this, g) + }) + } + return b() ? this.on("DOMAttrModified", function (a) { + a.originalEvent && (a = a.originalEvent), a.attributeName = a.attrName, a.oldValue = a.prevValue, f.callback.call(this, a) + }) : "onpropertychange" in document.body ? this.on("propertychange", function (b) { + b.attributeName = window.event.propertyName, c.call(a(this), f.trackValues, b), f.callback.call(this, b) + }) : this + } +}(jQuery), function (a) { + a.eventEmitter = { + _JQInit: function () { + this._JQ = a(this) + }, emit: function (a, b) { + !this._JQ && this._JQInit(), this._JQ.trigger(a, b) + }, once: function (a, b) { + !this._JQ && this._JQInit(), this._JQ.one(a, b) + }, on: function (a, b) { + !this._JQ && this._JQInit(), this._JQ.bind(a, b) + }, off: function (a, b) { + !this._JQ && this._JQInit(), this._JQ.unbind(a, b) + } + } +}(jQuery); +var freeboard = function () { + function a(a) { + a = a.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); + var b = new RegExp("[\\?&]" + a + "=([^&#]*)"), c = b.exec(location.search); + return null == c ? "" : decodeURIComponent(c[1].replace(/\+/g, " ")) + } + + var b = {}, c = {}, d = new FreeboardUI, e = new FreeboardModel(b, c, d), f = new JSEditor, g = new ValueEditor(e), + h = new PluginEditor(f, g), i = new DeveloperConsole(e), j = { + values: { + "font-family": '"HelveticaNeue-UltraLight", "Helvetica Neue Ultra Light", "Helvetica Neue", sans-serif', + color: "#d3d4d4", "font-weight": 100 + } + }; + return ko.bindingHandlers.pluginEditor = { + init: function (a, f, g, i, j) { + var k = ko.unwrap(f()), l = {}, m = void 0, n = ""; + "datasource" == k.type ? (l = b, n = "Datasource") : "widget" == k.type ? (l = c, n = "Widget") : "pane" == k.type && (n = "Pane"), $(a).click(function (f) { + if ("delete" == k.operation) { + var g = $("

            Are you sure you want to delete this " + n + "?

            "); + new DialogBox(g, "Confirm Delete", "Yes", "No", function () { + "datasource" == k.type ? e.deleteDatasource(i) : "widget" == k.type ? e.deleteWidget(i) : "pane" == k.type && e.deletePane(i) + }) + } else { + var j = void 0; + "datasource" == k.type ? "add" == k.operation ? m = {} : (j = i.type(), m = i.settings(), m.name = i.name()) : "widget" == k.type ? "add" == k.operation ? m = {} : (j = i.type(), m = i.settings()) : "pane" == k.type && (m = {}, "edit" == k.operation && (m.title = i.title(), m.col_width = i.col_width()), l = { + settings: { + settings: [{ + name: "title", + display_name: "Title", + type: "text" + }, { + name: "col_width", + display_name: "Columns", + type: "integer", + default_value: 1, + required: !0 + }] + } + }), h.createPluginEditor(n, l, j, m, function (f) { + if ("add" == k.operation) { + if ("datasource" == k.type) { + var g = new DatasourceModel(e, b); + e.addDatasource(g), g.name(f.settings.name), delete f.settings.name, g.settings(f.settings), g.type(f.type) + } else if ("widget" == k.type) { + var g = new WidgetModel(e, c); + g.settings(f.settings), g.type(f.type), i.widgets.push(g), d.attachWidgetEditIcons(a) + } + } else "edit" == k.operation && ("pane" == k.type ? (i.title(f.settings.title), i.col_width(f.settings.col_width), d.processResize(!1)) : ("datasource" == k.type && (i.name(f.settings.name), delete f.settings.name), i.type(f.type), i.settings(f.settings))) + }) + } + }) + } + }, ko.virtualElements.allowedBindings.datasourceTypeSettings = !0, ko.bindingHandlers.datasourceTypeSettings = { + update: function (a, b, c, d, e) { + processPluginSettings(a, b, c, d, e) + } + }, ko.bindingHandlers.pane = { + init: function (a, b, c, f, g) { + e.isEditing() && $(a).css({cursor: "pointer"}), d.addPane(a, f, g.$root.isEditing()) + }, update: function (a, b, c, f, g) { + -1 == e.panes.indexOf(f) && d.removePane(a), d.updatePane(a, f) + } + }, ko.bindingHandlers.widget = { + init: function (a, b, c, f, g) { + e.isEditing() && d.attachWidgetEditIcons($(a).parent()) + }, update: function (a, b, c, d, e) { + d.shouldRender() && ($(a).empty(), d.render(a)) + } + }, $(function () { + function a() { + d.processResize(!0) + } + + d.showLoadingIndicator(!0); + var b; + $(window).resize(function () { + clearTimeout(b), b = setTimeout(a, 500) + }) + }), { + initialize: function (b, c) { + ko.applyBindings(e); + var f = a("load"); + "" != f ? $.ajax({ + url: f, success: function (a) { + e.loadDashboard(a), _.isFunction(c) && c() + } + }) : (e.allow_edit(b), e.setEditing(b), d.showLoadingIndicator(!1), _.isFunction(c) && c(), freeboard.emit("initialized")) + }, newDashboard: function () { + e.loadDashboard({allow_edit: !0}) + }, loadDashboard: function (a, b) { + e.loadDashboard(a, b) + }, serialize: function () { + return e.serialize() + }, setEditing: function (a, b) { + e.setEditing(a, b) + }, isEditing: function () { + return e.isEditing() + }, loadDatasourcePlugin: function (a) { + _.isUndefined(a.display_name) && (a.display_name = a.type_name), a.settings.unshift({ + name: "name", + display_name: "Name", + type: "text", + required: !0 + }), e.addPluginSource(a.source), b[a.type_name] = a, e._datasourceTypes.valueHasMutated() + }, resize: function () { + d.processResize(!0) + }, loadWidgetPlugin: function (a) { + _.isUndefined(a.display_name) && (a.display_name = a.type_name), e.addPluginSource(a.source), c[a.type_name] = a, e._widgetTypes.valueHasMutated() + }, setAssetRoot: function (a) { + f.setAssetRoot(a) + }, addStyle: function (a, b) { + var c = a + "{" + b + "}", d = $("style#fb-styles"); + 0 == d.length && (d = $(''), $("head").append(d)), d[0].styleSheet ? d[0].styleSheet.cssText += c : d.text(d.text() + c) + }, showLoadingIndicator: function (a) { + d.showLoadingIndicator(a) + }, showDialog: function (a, b, c, d, e) { + new DialogBox(a, b, c, d, e) + }, getDatasourceSettings: function (a) { + var b = e.datasources(), c = _.find(b, function (b) { + return b.name() === a + }); + return c ? c.settings() : null + }, setDatasourceSettings: function (a, b) { + var c = e.datasources(), d = _.find(c, function (b) { + return b.name() === a + }); + if (!d) return void console.log("Datasource not found"); + var f = _.defaults(b, d.settings()); + d.settings(f) + }, getStyleString: function (a) { + var b = ""; + return _.each(j[a], function (a, c) { + b = b + c + ":" + a + ";" + }), b + }, getStyleObject: function (a) { + return j[a] + }, showDeveloperConsole: function () { + i.showDeveloperConsole() + } + } +}(); +$.extend(freeboard, jQuery.eventEmitter); \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/js/freeboard.plugins.min.js b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/js/freeboard.plugins.min.js new file mode 100755 index 0000000..a5d3942 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/js/freeboard.plugins.min.js @@ -0,0 +1,764 @@ +!function () { + var a = function (a, b) { + function c(a) { + e && clearInterval(e), e = setInterval(function () { + d.updateNow() + }, a) + } + + var d = this, e = null, f = a, g = 0, h = !1; + c(1e3 * f.refresh), this.updateNow = function () { + if (!(g > 1 && !f.use_thingproxy || g > 2)) { + var a = f.url; + 2 == g && f.use_thingproxy && (a = ("https:" == location.protocol ? "https:" : "http:") + "//thingproxy.freeboard.io/fetch/" + encodeURI(f.url)); + var c = f.body; + if (c) try { + c = JSON.parse(c) + } catch (e) { + } + $.ajax({ + url: a, + dataType: 1 == g ? "JSONP" : "JSON", + type: f.method || "GET", + data: c, + beforeSend: function (a) { + try { + _.each(f.headers, function (b) { + var c = b.name, d = b.value; + _.isUndefined(c) || _.isUndefined(d) || a.setRequestHeader(c, d) + }) + } catch (b) { + } + }, + success: function (a) { + h = !0, b(a) + }, + error: function (a, b, c) { + h || (g++, d.updateNow()) + } + }) + } + }, this.onDispose = function () { + clearInterval(e), e = null + }, this.onSettingsChanged = function (a) { + h = !1, g = 0, f = a, c(1e3 * f.refresh), d.updateNow() + } + }; + freeboard.loadDatasourcePlugin({ + type_name: "JSON", + settings: [{name: "url", display_name: "URL", type: "text"}, { + name: "use_thingproxy", + display_name: "Try thingproxy", + description: 'A direct JSON connection will be tried first, if that fails, a JSONP connection will be tried. If that fails, you can use thingproxy, which can solve many connection problems to APIs. More information.', + type: "boolean", + default_value: !0 + }, { + name: "refresh", + display_name: "Refresh Every", + type: "number", + suffix: "seconds", + default_value: 5 + }, { + name: "method", + display_name: "Method", + type: "option", + options: [{name: "GET", value: "GET"}, {name: "POST", value: "POST"}, { + name: "PUT", + value: "PUT" + }, {name: "DELETE", value: "DELETE"}] + }, { + name: "body", + display_name: "Body", + type: "text", + description: "The body of the request. Normally only used if method is POST" + }, { + name: "headers", + display_name: "Headers", + type: "array", + settings: [{name: "name", display_name: "Name", type: "text"}, { + name: "value", + display_name: "Value", + type: "text" + }] + }], + newInstance: function (b, c, d) { + c(new a(b, d)) + } + }); + var b = function (a, b) { + function c(a) { + f && clearInterval(f), f = setInterval(function () { + e.updateNow() + }, a) + } + + function d(a) { + return a.replace(/\w\S*/g, function (a) { + return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase() + }) + } + + var e = this, f = null, g = a; + c(1e3 * g.refresh), this.updateNow = function () { + $.ajax({ + url: "http://api.openweathermap.org/data/2.5/weather?APPID=" + g.api_key + "&q=" + encodeURIComponent(g.location) + "&units=" + g.units, + dataType: "JSONP", + success: function (a) { + var c = { + place_name: a.name, + sunrise: new Date(1e3 * a.sys.sunrise).toLocaleTimeString(), + sunset: new Date(1e3 * a.sys.sunset).toLocaleTimeString(), + conditions: d(a.weather[0].description), + current_temp: a.main.temp, + high_temp: a.main.temp_max, + low_temp: a.main.temp_min, + pressure: a.main.pressure, + humidity: a.main.humidity, + wind_speed: a.wind.speed, + wind_direction: a.wind.deg + }; + b(c) + }, + error: function (a, b, c) { + } + }) + }, this.onDispose = function () { + clearInterval(f), f = null + }, this.onSettingsChanged = function (a) { + g = a, e.updateNow(), c(1e3 * g.refresh) + } + }; + freeboard.loadDatasourcePlugin({ + type_name: "openweathermap", + display_name: "Open Weather Map API", + settings: [{ + name: "api_key", + display_name: "API Key", + type: "text", + description: "Your personal API Key from Open Weather Map" + }, { + name: "location", + display_name: "Location", + type: "text", + description: "Example: London, UK" + }, { + name: "units", + display_name: "Units", + type: "option", + "default": "imperial", + options: [{name: "Imperial", value: "imperial"}, {name: "Metric", value: "metric"}] + }, {name: "refresh", display_name: "Refresh Every", type: "number", suffix: "seconds", default_value: 5}], + newInstance: function (a, c, d) { + c(new b(a, d)) + } + }); + var c = function (a, b) { + function c(a) { + b(a) + } + + var d = this, e = a; + this.updateNow = function () { + dweetio.get_latest_dweet_for(e.thing_id, function (a, b) { + a || c(b[0].content) + }) + }, this.onDispose = function () { + }, this.onSettingsChanged = function (a) { + dweetio.stop_listening(), e = a, dweetio.listen_for(e.thing_id, function (a) { + c(a.content) + }) + }, d.onSettingsChanged(a) + }; + freeboard.loadDatasourcePlugin({ + type_name: "dweet_io", + display_name: "Dweet.io", + external_scripts: ["http://dweet.io/client/dweet.io.min.js"], + settings: [{name: "thing_id", display_name: "Thing Name", description: "Example: salty-dog-1", type: "text"}], + newInstance: function (a, b, d) { + b(new c(a, d)) + } + }); + var d = function (a, b) { + function c() { + h.length > 0 ? (i < h.length && (b(h[i]), i++), i >= h.length && g.loop && (i = 0), i < h.length && (e = setTimeout(c, 1e3 * g.refresh))) : b({}) + } + + function d() { + h = [], i = 0, e && (clearTimeout(e), e = null) + } + + var e, f = this, g = a, h = [], i = 0; + this.updateNow = function () { + d(), $.ajax({ + url: g.datafile, dataType: g.is_jsonp ? "JSONP" : "JSON", success: function (a) { + h = _.isArray(a) ? a : [], i = 0, c() + }, error: function (a, b, c) { + } + }) + }, this.onDispose = function () { + d() + }, this.onSettingsChanged = function (a) { + g = a, f.updateNow() + } + }; + freeboard.loadDatasourcePlugin({ + type_name: "playback", + display_name: "Playback", + settings: [{ + name: "datafile", + display_name: "Data File URL", + type: "text", + description: "A link to a JSON array of data." + }, {name: "is_jsonp", display_name: "Is JSONP", type: "boolean"}, { + name: "loop", + display_name: "Loop", + type: "boolean", + description: "Rewind and loop when finished" + }, {name: "refresh", display_name: "Refresh Every", type: "number", suffix: "seconds", default_value: 5}], + newInstance: function (a, b, c) { + b(new d(a, c)) + } + }); + var e = function (a, b) { + function c() { + e && (clearTimeout(e), e = null) + } + + function d() { + c(), e = setInterval(f.updateNow, 1e3 * g.refresh) + } + + var e, f = this, g = a; + this.updateNow = function () { + var a = new Date, c = { + numeric_value: a.getTime(), + full_string_value: a.toLocaleString(), + date_string_value: a.toLocaleDateString(), + time_string_value: a.toLocaleTimeString(), + date_object: a + }; + b(c) + }, this.onDispose = function () { + c() + }, this.onSettingsChanged = function (a) { + g = a, d() + }, d() + }; + freeboard.loadDatasourcePlugin({ + type_name: "clock", + display_name: "Clock", + settings: [{ + name: "refresh", + display_name: "Refresh Every", + type: "number", + suffix: "seconds", + default_value: 1 + }], + newInstance: function (a, b, c) { + b(new e(a, c)) + } + }), freeboard.loadDatasourcePlugin({ + type_name: "meshblu", + display_name: "Octoblu", + description: "app.octoblu.com", + external_scripts: ["http://meshblu.octoblu.com/js/meshblu.js"], + settings: [{ + name: "uuid", + display_name: "UUID", + type: "text", + default_value: "device uuid", + description: "your device UUID", + required: !0 + }, { + name: "token", + display_name: "Token", + type: "text", + default_value: "device token", + description: "your device TOKEN", + required: !0 + }, { + name: "server", + display_name: "Server", + type: "text", + default_value: "meshblu.octoblu.com", + description: "your server", + required: !0 + }, { + name: "port", + display_name: "Port", + type: "number", + default_value: 80, + description: "server port", + required: !0 + }], + newInstance: function (a, b, c) { + b(new f(a, c)) + } + }); + var f = function (a, b) { + function c() { + var a = skynet.createConnection({uuid: e.uuid, token: e.token, server: e.server, port: e.port}); + a.on("ready", function (c) { + a.on("message", function (a) { + var c = a; + b(c) + }) + }) + } + + var d = this, e = a; + d.onSettingsChanged = function (a) { + e = a + }, d.updateNow = function () { + c() + }, d.onDispose = function () { + } + } +}(), function () { + function a(a, b, c) { + var d = $(b).text(); + if (d != a) if ($.isNumeric(a) && $.isNumeric(d)) { + var e = a.toString().split("."), f = 0; + e.length > 1 && (f = e[1].length), e = d.toString().split("."); + var g = 0; + e.length > 1 && (g = e[1].length), jQuery({ + transitionValue: Number(d), + precisionValue: g + }).animate({transitionValue: Number(a), precisionValue: f}, { + duration: c, step: function () { + $(b).text(this.transitionValue.toFixed(this.precisionValue)) + }, done: function () { + $(b).text(a) + } + }) + } else $(b).text(a) + } + + function b(a, b) { + for (var c = $("
            "), d = 0; d < b.length; d++) { + var f = e[d % e.length], g = b[d]; + c.append("
            " + g + "
            ") + } + a.empty().append(c), freeboard.addStyle(".sparkline-legend", "margin:5px;"), freeboard.addStyle(".sparkline-legend-value", "color:white; font:10px arial,san serif; float:left; overflow:hidden; width:50%;"), freeboard.addStyle(".sparkline-legend-value span", "font-weight:bold; padding-right:5px;") + } + + function c(a, b, c) { + var f = $(a).data().values, g = $(a).data().valueMin, h = $(a).data().valueMax; + f || (f = [], g = void 0, h = void 0); + var i = function (a, b) { + f[b] || (f[b] = []), f[b].length >= d && f[b].shift(), f[b].push(Number(a)), (void 0 === g || g > a) && (g = a), (void 0 === h || a > h) && (h = a) + }; + _.isArray(b) ? _.each(b, i) : i(b, 0), $(a).data().values = f, $(a).data().valueMin = g, $(a).data().valueMax = h; + var j = ' {{y}}', k = !1; + _.each(f, function (b, d) { + $(a).sparkline(b, { + type: "line", + composite: k, + height: "100%", + width: "100%", + fillColor: !1, + lineColor: e[d % e.length], + lineWidth: 2, + spotRadius: 3, + spotColor: !1, + minSpotColor: "#78AB49", + maxSpotColor: "#78AB49", + highlightSpotColor: "#9D3926", + highlightLineColor: "#9D3926", + chartRangeMin: g, + chartRangeMax: h, + tooltipFormat: c && c[d] ? j + " (" + c[d] + ")" : j + }), k = !0 + }) + } + + var d = 100, + e = ["#FF9900", "#FFFFFF", "#B3B4B4", "#6B6B6B", "#28DE28", "#13F7F9", "#E6EE18", "#C41204", "#CA3CB8", "#0B1CFB"], + f = freeboard.getStyleString("values"); + freeboard.addStyle(".widget-big-text", f + "font-size:75px;"), freeboard.addStyle(".tw-display", "width: 100%; height:100%; display:table; table-layout:fixed;"), freeboard.addStyle(".tw-tr", "display:table-row;"), freeboard.addStyle(".tw-tg", "display:table-row-group;"), freeboard.addStyle(".tw-tc", "display:table-caption;"), freeboard.addStyle(".tw-td", "display:table-cell;"), freeboard.addStyle(".tw-value", f + "overflow: hidden;display: inline-block;text-overflow: ellipsis;"), freeboard.addStyle(".tw-unit", "display: inline-block;padding-left: 10px;padding-bottom: 1.1em;vertical-align: bottom;"), freeboard.addStyle(".tw-value-wrapper", "position: relative;vertical-align: middle;height:100%;"), freeboard.addStyle(".tw-sparkline", "height:20px;"); + var g = function (b) { + function d() { + _.isUndefined(e.units) || "" == e.units ? h.css("max-width", "100%") : h.css("max-width", f.innerWidth() - i.outerWidth(!0) + "px") + } + + var e = b, f = $('
            '), g = $('

            '), + h = $('
            '), i = $('
            '), + j = $('
            '); + this.render = function (a) { + $(a).empty(), $(f).append($('
            ').append(g)).append($('
            ').append($('
            ').append(h).append(i))).append($('
            ').append(j)), $(a).append(f), d() + }, this.onSettingsChanged = function (a) { + e = a; + var b = !_.isUndefined(a.title) && "" != a.title, c = !_.isUndefined(a.units) && "" != a.units; + a.sparkline ? j.attr("style", null) : (delete j.data().values, j.empty(), j.hide()), b ? (g.html(_.isUndefined(a.title) ? "" : a.title), g.attr("style", null)) : (g.empty(), g.hide()), c ? (i.html(_.isUndefined(a.units) ? "" : a.units), i.attr("style", null)) : (i.empty(), i.hide()); + var f = 30; + "big" == a.size && (f = 75, a.sparkline && (f = 60)), h.css({"font-size": f + "px"}), d() + }, this.onSizeChanged = function () { + d() + }, this.onCalculatedValueChanged = function (b, d) { + "value" == b && (e.animate ? a(d, h, 500) : h.text(d), e.sparkline && c(j, d)) + }, this.onDispose = function () { + }, this.getHeight = function () { + return "big" == e.size || e.sparkline ? 2 : 1 + }, this.onSettingsChanged(b) + }; + freeboard.loadWidgetPlugin({ + type_name: "text_widget", + display_name: "Text", + external_scripts: ["jquery.sparkline.min.js"], + settings: [{name: "title", display_name: "Title", type: "text"}, { + name: "size", + display_name: "Size", + type: "option", + options: [{name: "Regular", value: "regular"}, {name: "Big", value: "big"}] + }, {name: "value", display_name: "Value", type: "calculated"}, { + name: "sparkline", + display_name: "Include Sparkline", + type: "boolean" + }, {name: "animate", display_name: "Animate Value Changes", type: "boolean", default_value: !0}, { + name: "units", + display_name: "Units", + type: "text" + }], + newInstance: function (a, b) { + b(new g(a)) + } + }); + var h = 0; + freeboard.addStyle(".gauge-widget-wrapper", "width: 100%;text-align: center;"), freeboard.addStyle(".gauge-widget", "width:200px;height:160px;display:inline-block;"); + var i = function (a) { + function b() { + g && (f.empty(), c = new JustGage({ + id: d, + value: _.isUndefined(i.min_value) ? 0 : i.min_value, + min: _.isUndefined(i.min_value) ? 0 : i.min_value, + max: _.isUndefined(i.max_value) ? 0 : i.max_value, + label: i.units, + showInnerShadow: !1, + valueFontColor: "#d3d4d4" + })) + } + + var c, d = "gauge-" + h++, e = $('

            '), + f = $('
            '), g = !1, i = a; + this.render = function (a) { + g = !0, $(a).append(e).append($('
            ').append(f)), b() + }, this.onSettingsChanged = function (a) { + a.min_value != i.min_value || a.max_value != i.max_value || a.units != i.units ? (i = a, b()) : i = a, e.html(a.title) + }, this.onCalculatedValueChanged = function (a, b) { + _.isUndefined(c) || c.refresh(Number(b)) + }, this.onDispose = function () { + }, this.getHeight = function () { + return 3 + }, this.onSettingsChanged(a) + }; + freeboard.loadWidgetPlugin({ + type_name: "gauge", + display_name: "Gauge", + external_scripts: ["plugins/thirdparty/raphael.2.1.0.min.js", "plugins/thirdparty/justgage.1.0.1.js"], + settings: [{name: "title", display_name: "Title", type: "text"}, { + name: "value", + display_name: "Value", + type: "calculated" + }, {name: "units", display_name: "Units", type: "text"}, { + name: "min_value", + display_name: "Minimum", + type: "text", + default_value: 0 + }, {name: "max_value", display_name: "Maximum", type: "text", default_value: 100}], + newInstance: function (a, b) { + b(new i(a)) + } + }), freeboard.addStyle(".sparkline", "width:100%;height: 75px;"); + var j = function (a) { + var d = $('

            '), e = $('
            '), f = $("
            "), + g = a; + this.render = function (a) { + $(a).append(d).append(e).append(f) + }, this.onSettingsChanged = function (a) { + g = a, d.html(_.isUndefined(a.title) ? "" : a.title), a.include_legend && b(f, a.legend.split(",")) + }, this.onCalculatedValueChanged = function (a, b) { + g.legend ? c(e, b, g.legend.split(",")) : c(e, b) + }, this.onDispose = function () { + }, this.getHeight = function () { + var a = 0; + if (g.include_legend && g.legend) { + var b = g.legend.split(",").length; + b > 4 ? a = .5 * Math.floor((b - 1) / 4) : b && (a = .5) + } + return 2 + a + }, this.onSettingsChanged(a) + }; + freeboard.loadWidgetPlugin({ + type_name: "sparkline", + display_name: "Sparkline", + external_scripts: ["jquery.sparkline.min.js"], + settings: [{name: "title", display_name: "Title", type: "text"}, { + name: "value", + display_name: "Value", + type: "calculated", + multi_input: "true" + }, {name: "include_legend", display_name: "Include Legend", type: "boolean"}, { + name: "legend", + display_name: "Legend", + type: "text", + description: "Comma-separated for multiple sparklines" + }], + newInstance: function (a, b) { + b(new j(a)) + } + }), freeboard.addStyle("div.pointer-value", "position:absolute;height:95px;margin: auto;top: 0px;bottom: 0px;width: 100%;text-align:center;"); + var k = function (a) { + function b(a) { + if (!a || a.length < 2) return []; + var b = []; + b.push(["m", a[0], a[1]]); + for (var c = 2; c < a.length; c += 2) b.push(["l", a[c], a[c + 1]]); + return b.push(["z"]), b + } + + var c, d, e, f, g = 3, h = 0, i = $('
            '), j = $("
            "); + this.render = function (a) { + e = $(a).width(), f = $(a).height(); + var h = Math.min(e, f) / 2 - 2 * g; + c = Raphael($(a).get()[0], e, f); + var k = c.circle(e / 2, f / 2, h); + k.attr("stroke", "#FF9900"), k.attr("stroke-width", g), d = c.path(b([e / 2, f / 2 - h + g, 15, 20, -30, 0])), d.attr("stroke-width", 0), d.attr("fill", "#fff"), $(a).append($('
            ').append(i).append(j)) + }, this.onSettingsChanged = function (a) { + j.html(a.units) + }, this.onCalculatedValueChanged = function (a, b) { + if ("direction" == a) { + if (!_.isUndefined(d)) { + d.animate({transform: "r" + b + "," + e / 2 + "," + f / 2}, 250, "bounce") + } + h = b + } else "value_text" == a && i.html(b) + }, this.onDispose = function () { + }, this.getHeight = function () { + return 4 + }, this.onSettingsChanged(a) + }; + freeboard.loadWidgetPlugin({ + type_name: "pointer", + display_name: "Pointer", + external_scripts: ["plugins/thirdparty/raphael.2.1.0.min.js"], + settings: [{ + name: "direction", + display_name: "Direction", + type: "calculated", + description: "In degrees" + }, {name: "value_text", display_name: "Value Text", type: "calculated"}, { + name: "units", + display_name: "Units", + type: "text" + }], + newInstance: function (a, b) { + b(new k(a)) + } + }); + var l = function (a) { + function b() { + e && (clearInterval(e), e = null) + } + + function c() { + if (d && f) { + var a = f + (-1 == f.indexOf("?") ? "?" : "&") + Date.now(); + $(d).css({"background-image": "url(" + a + ")"}) + } + } + + var d, e, f; + this.render = function (a) { + $(a).css({ + width: "100%", + height: "100%", + "background-size": "cover", + "background-position": "center" + }), d = a + }, this.onSettingsChanged = function (a) { + b(), a.refresh && a.refresh > 0 && (e = setInterval(c, 1e3 * Number(a.refresh))) + }, this.onCalculatedValueChanged = function (a, b) { + "src" == a && (f = b), c() + }, this.onDispose = function () { + b() + }, this.getHeight = function () { + return 4 + }, this.onSettingsChanged(a) + }; + freeboard.loadWidgetPlugin({ + type_name: "picture", + display_name: "Picture", + fill_size: !0, + settings: [{name: "src", display_name: "Image URL", type: "calculated"}, { + type: "number", + display_name: "Refresh every", + name: "refresh", + suffix: "seconds", + description: "Leave blank if the image doesn't need to be refreshed" + }], + newInstance: function (a, b) { + b(new l(a)) + } + }), freeboard.addStyle(".indicator-light", "border-radius:50%;width:22px;height:22px;border:2px solid #3d3d3d;margin-top:5px;float:left;background-color:#222;margin-right:10px;"), freeboard.addStyle(".indicator-light.on", "background-color:#FFC773;box-shadow: 0px 0px 15px #FF9900;border-color:#FDF1DF;"), freeboard.addStyle(".indicator-text", "margin-top:10px;"); + var m = function (a) { + function b() { + g.toggleClass("on", i), i ? f.text(_.isUndefined(c) ? _.isUndefined(h.on_text) ? "" : h.on_text : c) : f.text(_.isUndefined(d) ? _.isUndefined(h.off_text) ? "" : h.off_text : d) + } + + var c, d, e = $('

            '), f = $('
            '), + g = $('
            '), h = a, i = !1; + this.render = function (a) { + $(a).append(e).append(g).append(f) + }, this.onSettingsChanged = function (a) { + h = a, e.html(_.isUndefined(a.title) ? "" : a.title), b() + }, this.onCalculatedValueChanged = function (a, e) { + "value" == a && (i = Boolean(e)), "on_text" == a && (c = e), "off_text" == a && (d = e), b() + }, this.onDispose = function () { + }, this.getHeight = function () { + return 1 + }, this.onSettingsChanged(a) + }; + freeboard.loadWidgetPlugin({ + type_name: "indicator", + display_name: "Indicator Light", + settings: [{name: "title", display_name: "Title", type: "text"}, { + name: "value", + display_name: "Value", + type: "calculated" + }, {name: "on_text", display_name: "On Text", type: "calculated"}, { + name: "off_text", + display_name: "Off Text", + type: "calculated" + }], + newInstance: function (a, b) { + b(new m(a)) + } + }), freeboard.addStyle(".gm-style-cc a", "text-shadow:none;"); + var n = function (a) { + function b() { + if (c && d && f.lat && f.lon) { + var a = new google.maps.LatLng(f.lat, f.lon); + d.setPosition(a), c.panTo(a) + } + } + + var c, d, e = a, f = {}; + this.render = function (a) { + function e() { + var e = { + zoom: 13, + center: new google.maps.LatLng(37.235, -115.811111), + disableDefaultUI: !0, + draggable: !1, + styles: [{ + featureType: "water", + elementType: "geometry", + stylers: [{color: "#2a2a2a"}] + }, { + featureType: "landscape", + elementType: "geometry", + stylers: [{color: "#000000"}, {lightness: 20}] + }, { + featureType: "road.highway", + elementType: "geometry.fill", + stylers: [{color: "#000000"}, {lightness: 17}] + }, { + featureType: "road.highway", + elementType: "geometry.stroke", + stylers: [{color: "#000000"}, {lightness: 29}, {weight: .2}] + }, { + featureType: "road.arterial", + elementType: "geometry", + stylers: [{color: "#000000"}, {lightness: 18}] + }, { + featureType: "road.local", + elementType: "geometry", + stylers: [{color: "#000000"}, {lightness: 16}] + }, { + featureType: "poi", + elementType: "geometry", + stylers: [{color: "#000000"}, {lightness: 21}] + }, { + elementType: "labels.text.stroke", + stylers: [{visibility: "on"}, {color: "#000000"}, {lightness: 16}] + }, { + elementType: "labels.text.fill", + stylers: [{saturation: 36}, {color: "#000000"}, {lightness: 40}] + }, {elementType: "labels.icon", stylers: [{visibility: "off"}]}, { + featureType: "transit", + elementType: "geometry", + stylers: [{color: "#000000"}, {lightness: 19}] + }, { + featureType: "administrative", + elementType: "geometry.fill", + stylers: [{color: "#000000"}, {lightness: 20}] + }, { + featureType: "administrative", + elementType: "geometry.stroke", + stylers: [{color: "#000000"}, {lightness: 17}, {weight: 1.2}] + }] + }; + c = new google.maps.Map(a, e), google.maps.event.addDomListener(a, "mouseenter", function (a) { + a.cancelBubble = !0, c.hover || (c.hover = !0, c.setOptions({zoomControl: !0})) + }), google.maps.event.addDomListener(a, "mouseleave", function (a) { + c.hover && (c.setOptions({zoomControl: !1}), c.hover = !1) + }), d = new google.maps.Marker({map: c}), b() + } + + window.google && window.google.maps ? e() : (window.gmap_initialize = e, head.js("https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=gmap_initialize")) + }, this.onSettingsChanged = function (a) { + e = a + }, this.onCalculatedValueChanged = function (a, c) { + "lat" == a ? f.lat = c : "lon" == a && (f.lon = c), b() + }, this.onDispose = function () { + }, this.getHeight = function () { + return 4 + }, this.onSettingsChanged(a) + }; + freeboard.loadWidgetPlugin({ + type_name: "google_map", + display_name: "Google Map", + fill_size: !0, + settings: [{name: "lat", display_name: "Latitude", type: "calculated"}, { + name: "lon", + display_name: "Longitude", + type: "calculated" + }], + newInstance: function (a, b) { + b(new n(a)) + } + }), freeboard.addStyle(".html-widget", "white-space:normal;width:100%;height:100%"); + var o = function (a) { + var b = $('
            '), c = a; + this.render = function (a) { + $(a).append(b) + }, this.onSettingsChanged = function (a) { + c = a + }, this.onCalculatedValueChanged = function (a, c) { + "html" == a && b.html(c) + }, this.onDispose = function () { + }, this.getHeight = function () { + return Number(c.height) + }, this.onSettingsChanged(a) + }; + freeboard.loadWidgetPlugin({ + type_name: "html", + display_name: "HTML", + fill_size: !0, + settings: [{ + name: "html", + display_name: "HTML", + type: "calculated", + description: "Can be literal HTML, or javascript that outputs HTML." + }, { + name: "height", + display_name: "Height Blocks", + type: "number", + default_value: 4, + description: "A height block is around 60 pixels" + }], + newInstance: function (a, b) { + b(new o(a)) + } + }) +}(); \ No newline at end of file diff --git a/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/js/freeboard.thirdparty.min.js b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/js/freeboard.thirdparty.min.js new file mode 100755 index 0000000..4f14125 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/interface/sensor_interface/static/js/freeboard.thirdparty.min.js @@ -0,0 +1,16054 @@ +!function (n, t) { + "use strict"; + + function r(n) { + a[a.length] = n + } + + function k(n) { + var t = new RegExp(" ?\\b" + n + "\\b"); + c.className = c.className.replace(t, "") + } + + function p(n, t) { + for (var i = 0, r = n.length; r > i; i++) t.call(n, n[i], i) + } + + function tt() { + var t, e, f, o; + c.className = c.className.replace(/ (w-|eq-|gt-|gte-|lt-|lte-|portrait|no-portrait|landscape|no-landscape)\d+/g, ""), t = n.innerWidth || c.clientWidth, e = n.outerWidth || n.screen.width, u.screen.innerWidth = t, u.screen.outerWidth = e, r("w-" + t), p(i.screens, function (n) { + t > n ? (i.screensCss.gt && r("gt-" + n), i.screensCss.gte && r("gte-" + n)) : n > t ? (i.screensCss.lt && r("lt-" + n), i.screensCss.lte && r("lte-" + n)) : t === n && (i.screensCss.lte && r("lte-" + n), i.screensCss.eq && r("e-q" + n), i.screensCss.gte && r("gte-" + n)) + }), f = n.innerHeight || c.clientHeight, o = n.outerHeight || n.screen.height, u.screen.innerHeight = f, u.screen.outerHeight = o, u.feature("portrait", f > t), u.feature("landscape", t > f) + } + + function it() { + n.clearTimeout(b), b = n.setTimeout(tt, 50) + } + + var v, u, s, w, o, h, l, d, f, g, nt, e, b, y = n.document, rt = n.navigator, ut = n.location, + c = y.documentElement, a = [], i = { + screens: [240, 320, 480, 640, 768, 800, 1024, 1280, 1440, 1680, 1920], + screensCss: {gt: !0, gte: !1, lt: !0, lte: !1, eq: !1}, + browsers: [{ie: {min: 6, max: 11}}], + browserCss: {gt: !0, gte: !1, lt: !0, lte: !1, eq: !0}, + html5: !0, + page: "-page", + section: "-section", + head: "head" + }; + if (n.head_conf) for (v in n.head_conf) n.head_conf[v] !== t && (i[v] = n.head_conf[v]); + switch (u = n[i.head] = function () { + u.ready.apply(null, arguments) + }, u.feature = function (n, t, i) { + return n ? ("[object Function]" === Object.prototype.toString.call(t) && (t = t.call()), r((t ? "" : "no-") + n), u[n] = !!t, i || (k("no-" + n), k(n), u.feature()), u) : (c.className += " " + a.join(" "), a = [], u) + }, u.feature("js", !0), s = rt.userAgent.toLowerCase(), w = /mobile|android|kindle|silk|midp|phone|(windows .+arm|touch)/.test(s), u.feature("mobile", w, !0), u.feature("desktop", !w, !0), s = /(chrome|firefox)[ \/]([\w.]+)/.exec(s) || /(iphone|ipad|ipod)(?:.*version)?[ \/]([\w.]+)/.exec(s) || /(android)(?:.*version)?[ \/]([\w.]+)/.exec(s) || /(webkit|opera)(?:.*version)?[ \/]([\w.]+)/.exec(s) || /(msie) ([\w.]+)/.exec(s) || /(trident).+rv:(\w.)+/.exec(s) || [], o = s[1], h = parseFloat(s[2]), o) { + case"msie": + case"trident": + o = "ie", h = y.documentMode || h; + break; + case"firefox": + o = "ff"; + break; + case"ipod": + case"ipad": + case"iphone": + o = "ios"; + break; + case"webkit": + o = "safari" + } + for (u.browser = { + name: o, + version: h + }, u.browser[o] = !0, l = 0, d = i.browsers.length; d > l; l++) for (f in i.browsers[l]) if (o === f) for (r(f), g = i.browsers[l][f].min, nt = i.browsers[l][f].max, e = g; nt >= e; e++) h > e ? (i.browserCss.gt && r("gt-" + f + e), i.browserCss.gte && r("gte-" + f + e)) : e > h ? (i.browserCss.lt && r("lt-" + f + e), i.browserCss.lte && r("lte-" + f + e)) : h === e && (i.browserCss.lte && r("lte-" + f + e), i.browserCss.eq && r("eq-" + f + e), i.browserCss.gte && r("gte-" + f + e)); else r("no-" + f); + r(o), r(o + parseInt(h, 10)), i.html5 && "ie" === o && 9 > h && p("abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|progress|section|summary|time|video".split("|"), function (n) { + y.createElement(n) + }), p(ut.pathname.split("/"), function (n, u) { + if (this.length > 2 && this[u + 1] !== t) u && r(this.slice(u, u + 1).join("-").toLowerCase() + i.section); else { + var f = n || "index", e = f.indexOf("."); + e > 0 && (f = f.substring(0, e)), c.id = f.toLowerCase() + i.page, u || r("root" + i.section) + } + }), u.screen = { + height: n.screen.height, + width: n.screen.width + }, tt(), b = 0, n.addEventListener ? n.addEventListener("resize", it, !1) : n.attachEvent("onresize", it) +}(window), function (n, t) { + "use strict"; + + function a(n) { + for (var r in n) if (i[n[r]] !== t) return !0; + return !1 + } + + function r(n) { + var t = n.charAt(0).toUpperCase() + n.substr(1), i = (n + " " + c.join(t + " ") + t).split(" "); + return !!a(i) + } + + var h = n.document, o = h.createElement("i"), i = o.style, s = " -o- -moz- -ms- -webkit- -khtml- ".split(" "), + c = "Webkit Moz O ms Khtml".split(" "), l = n.head_conf && n.head_conf.head || "head", u = n[l], f = { + gradient: function () { + var n = "background-image:"; + return i.cssText = (n + s.join("gradient(linear,left top,right bottom,from(#9f9),to(#fff));" + n) + s.join("linear-gradient(left top,#eee,#fff);" + n)).slice(0, -n.length), !!i.backgroundImage + }, rgba: function () { + return i.cssText = "background-color:rgba(0,0,0,0.5)", !!i.backgroundColor + }, opacity: function () { + return "" === o.style.opacity + }, textshadow: function () { + return "" === i.textShadow + }, multiplebgs: function () { + i.cssText = "background:url(https://),url(https://),red url(https://)"; + var n = (i.background || "").match(/url/g); + return "[object Array]" === Object.prototype.toString.call(n) && 3 === n.length + }, boxshadow: function () { + return r("boxShadow") + }, borderimage: function () { + return r("borderImage") + }, borderradius: function () { + return r("borderRadius") + }, cssreflections: function () { + return r("boxReflect") + }, csstransforms: function () { + return r("transform") + }, csstransitions: function () { + return r("transition") + }, touch: function () { + return "ontouchstart" in n + }, retina: function () { + return n.devicePixelRatio > 1 + }, fontface: function () { + var t = u.browser.name, n = u.browser.version; + switch (t) { + case"ie": + return n >= 9; + case"chrome": + return n >= 13; + case"ff": + return n >= 6; + case"ios": + return n >= 5; + case"android": + return !1; + case"webkit": + return n >= 5.1; + case"opera": + return n >= 10; + default: + return !1 + } + } + }; + for (var e in f) f[e] && u.feature(e, f[e].call(), !0); + u.feature() +}(window), function (n, t) { + "use strict"; + + function w() { + } + + function u(n, t) { + if (n) { + "object" == typeof n && (n = [].slice.call(n)); + for (var i = 0, r = n.length; r > i; i++) t.call(n, n[i], i) + } + } + + function it(n, i) { + var r = Object.prototype.toString.call(i).slice(8, -1); + return i !== t && null !== i && r === n + } + + function s(n) { + return it("Function", n) + } + + function a(n) { + return it("Array", n) + } + + function et(n) { + var i = n.split("/"), t = i[i.length - 1], r = t.indexOf("?"); + return -1 !== r ? t.substring(0, r) : t + } + + function f(n) { + n = n || w, n._done || (n(), n._done = 1) + } + + function ot(n, t, r, u) { + var f = "object" == typeof n ? n : { + test: n, + success: t ? a(t) ? t : [t] : !1, + failure: r ? a(r) ? r : [r] : !1, + callback: u || w + }, e = !!f.test; + return e && f.success ? (f.success.push(f.callback), i.load.apply(null, f.success)) : e || !f.failure ? u() : (f.failure.push(f.callback), i.load.apply(null, f.failure)), i + } + + function v(n) { + var i, r, t = {}; + if ("object" == typeof n) for (i in n) !n[i] || (t = {name: i, url: n[i]}); else t = {name: et(n), url: n}; + return r = c[t.name], r && r.url === t.url ? r : (c[t.name] = t, t) + } + + function y(n) { + n = n || c; + for (var t in n) if (n.hasOwnProperty(t) && n[t].state !== l) return !1; + return !0 + } + + function st(n) { + n.state = ft, u(n.onpreload, function (n) { + n.call() + }) + } + + function ht(n) { + n.state === t && (n.state = nt, n.onpreload = [], rt({url: n.url, type: "cache"}, function () { + st(n) + })) + } + + function ct() { + var n = arguments, t = n[n.length - 1], r = [].slice.call(n, 1), f = r[0]; + return s(t) || (t = null), a(n[0]) ? (n[0].push(t), i.load.apply(null, n[0]), i) : (f ? (u(r, function (n) { + s(n) || !n || ht(v(n)) + }), b(v(n[0]), s(f) ? f : function () { + i.load.apply(null, r) + })) : b(v(n[0])), i) + } + + function lt() { + var n = arguments, t = n[n.length - 1], r = {}; + return s(t) || (t = null), a(n[0]) ? (n[0].push(t), i.load.apply(null, n[0]), i) : (u(n, function (n) { + n !== t && (n = v(n), r[n.name] = n) + }), u(n, function (n) { + n !== t && (n = v(n), b(n, function () { + y(r) && f(t) + })) + }), i) + } + + function b(n, t) { + return t = t || w, n.state === l ? void t() : n.state === tt ? void i.ready(n.name, t) : n.state === nt ? void n.onpreload.push(function () { + b(n, t) + }) : (n.state = tt, void rt(n, function () { + n.state = l, t(), u(h[n.name], function (n) { + f(n) + }), o && y() && u(h.ALL, function (n) { + f(n) + }) + })) + } + + function at(n) { + n = n || ""; + var t = n.split("?")[0].split("."); + return t[t.length - 1].toLowerCase() + } + + function rt(t, i) { + function e(t) { + t = t || n.event, u.onload = u.onreadystatechange = u.onerror = null, i() + } + + function o(f) { + f = f || n.event, ("load" === f.type || /loaded|complete/.test(u.readyState) && (!r.documentMode || r.documentMode < 9)) && (n.clearTimeout(t.errorTimeout), n.clearTimeout(t.cssTimeout), u.onload = u.onreadystatechange = u.onerror = null, i()) + } + + function s() { + if (t.state !== l && t.cssRetries <= 20) { + for (var i = 0, f = r.styleSheets.length; f > i; i++) if (r.styleSheets[i].href === u.href) return void o({type: "load"}); + t.cssRetries++, t.cssTimeout = n.setTimeout(s, 250) + } + } + + var u, h, f; + i = i || w, h = at(t.url), "css" === h ? (u = r.createElement("link"), u.type = "text/" + (t.type || "css"), u.rel = "stylesheet", u.href = t.url, t.cssRetries = 0, t.cssTimeout = n.setTimeout(s, 500)) : (u = r.createElement("script"), u.type = "text/" + (t.type || "javascript"), u.src = t.url), u.onload = u.onreadystatechange = o, u.onerror = e, u.async = !1, u.defer = !1, t.errorTimeout = n.setTimeout(function () { + e({type: "timeout"}) + }, 7e3), f = r.head || r.getElementsByTagName("head")[0], f.insertBefore(u, f.lastChild) + } + + function vt() { + for (var t, u = r.getElementsByTagName("script"), n = 0, f = u.length; f > n; n++) if (t = u[n].getAttribute("data-headjs-load"), !!t) return void i.load(t) + } + + function yt(n, t) { + var v, p, e; + return n === r ? (o ? f(t) : d.push(t), i) : (s(n) && (t = n, n = "ALL"), a(n) ? (v = {}, u(n, function (n) { + v[n] = c[n], i.ready(n, function () { + y(v) && f(t) + }) + }), i) : "string" == typeof n && s(t) ? (p = c[n], p && p.state === l || "ALL" === n && y() && o ? (f(t), i) : (e = h[n], e ? e.push(t) : e = h[n] = [t], i)) : i) + } + + function e() { + return r.body ? void(o || (o = !0, vt(), u(d, function (n) { + f(n) + }))) : (n.clearTimeout(i.readyTimeout), void(i.readyTimeout = n.setTimeout(e, 50))) + } + + function k() { + r.addEventListener ? (r.removeEventListener("DOMContentLoaded", k, !1), e()) : "complete" === r.readyState && (r.detachEvent("onreadystatechange", k), e()) + } + + var o, p, r = n.document, d = [], h = {}, c = {}, + ut = "async" in r.createElement("script") || "MozAppearance" in r.documentElement.style || n.opera, + g = n.head_conf && n.head_conf.head || "head", i = n[g] = n[g] || function () { + i.ready.apply(null, arguments) + }, nt = 1, ft = 2, tt = 3, l = 4; + if ("complete" === r.readyState) e(); else if (r.addEventListener) r.addEventListener("DOMContentLoaded", k, !1), n.addEventListener("load", e, !1); else { + r.attachEvent("onreadystatechange", k), n.attachEvent("onload", e), p = !1; + try { + p = !n.frameElement && r.documentElement + } catch (wt) { + } + p && p.doScroll && function pt() { + if (!o) { + try { + p.doScroll("left") + } catch (t) { + return n.clearTimeout(i.readyTimeout), void(i.readyTimeout = n.setTimeout(pt, 50)) + } + e() + } + }() + } + i.load = i.js = ut ? lt : ct, i.test = ot, i.ready = yt, i.ready(r, function () { + y() && u(h.ALL, function (n) { + f(n) + }), i.feature && i.feature("domloaded", !0) + }) +}(window), function (e, undefined) { + function j(e) { + var t = e.length, n = x.type(e); + return x.isWindow(e) ? !1 : 1 === e.nodeType && t ? !0 : "array" === n || "function" !== n && (0 === t || "number" == typeof t && t > 0 && t - 1 in e) + } + + function A(e) { + var t = D[e] = {}; + return x.each(e.match(w) || [], function (e, n) { + t[n] = !0 + }), t + } + + function F() { + Object.defineProperty(this.cache = {}, 0, { + get: function () { + return {} + } + }), this.expando = x.expando + Math.random() + } + + function P(e, t, n) { + var r; + if (n === undefined && 1 === e.nodeType) if (r = "data-" + t.replace(O, "-$1").toLowerCase(), n = e.getAttribute(r), "string" == typeof n) { + try { + n = "true" === n ? !0 : "false" === n ? !1 : "null" === n ? null : +n + "" === n ? +n : H.test(n) ? JSON.parse(n) : n + } catch (i) { + } + L.set(e, t, n) + } else n = undefined; + return n + } + + function U() { + return !0 + } + + function Y() { + return !1 + } + + function V() { + try { + return o.activeElement + } catch (e) { + } + } + + function Z(e, t) { + for (; (e = e[t]) && 1 !== e.nodeType;) ; + return e + } + + function et(e, t, n) { + if (x.isFunction(t)) return x.grep(e, function (e, r) { + return !!t.call(e, r, e) !== n + }); + if (t.nodeType) return x.grep(e, function (e) { + return e === t !== n + }); + if ("string" == typeof t) { + if (G.test(t)) return x.filter(t, e, n); + t = x.filter(t, e) + } + return x.grep(e, function (e) { + return g.call(t, e) >= 0 !== n + }) + } + + function pt(e, t) { + return x.nodeName(e, "table") && x.nodeName(1 === t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e + } + + function ft(e) { + return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e + } + + function ht(e) { + var t = ut.exec(e.type); + return t ? e.type = t[1] : e.removeAttribute("type"), e + } + + function dt(e, t) { + for (var n = e.length, r = 0; n > r; r++) q.set(e[r], "globalEval", !t || q.get(t[r], "globalEval")) + } + + function gt(e, t) { + var n, r, i, o, s, a, u, l; + if (1 === t.nodeType) { + if (q.hasData(e) && (o = q.access(e), s = q.set(t, o), l = o.events)) { + delete s.handle, s.events = {}; + for (i in l) for (n = 0, r = l[i].length; r > n; n++) x.event.add(t, i, l[i][n]) + } + L.hasData(e) && (a = L.access(e), u = x.extend({}, a), L.set(t, u)) + } + } + + function mt(e, t) { + var n = e.getElementsByTagName ? e.getElementsByTagName(t || "*") : e.querySelectorAll ? e.querySelectorAll(t || "*") : []; + return t === undefined || t && x.nodeName(e, t) ? x.merge([e], n) : n + } + + function yt(e, t) { + var n = t.nodeName.toLowerCase(); + "input" === n && ot.test(e.type) ? t.checked = e.checked : ("input" === n || "textarea" === n) && (t.defaultValue = e.defaultValue) + } + + function At(e, t) { + if (t in e) return t; + for (var n = t.charAt(0).toUpperCase() + t.slice(1), r = t, i = Dt.length; i--;) if (t = Dt[i] + n, t in e) return t; + return r + } + + function Lt(e, t) { + return e = t || e, "none" === x.css(e, "display") || !x.contains(e.ownerDocument, e) + } + + function qt(t) { + return e.getComputedStyle(t, null) + } + + function Ht(e, t) { + for (var n, r, i, o = [], s = 0, a = e.length; a > s; s++) r = e[s], r.style && (o[s] = q.get(r, "olddisplay"), n = r.style.display, t ? (o[s] || "none" !== n || (r.style.display = ""), "" === r.style.display && Lt(r) && (o[s] = q.access(r, "olddisplay", Rt(r.nodeName)))) : o[s] || (i = Lt(r), (n && "none" !== n || !i) && q.set(r, "olddisplay", i ? n : x.css(r, "display")))); + for (s = 0; a > s; s++) r = e[s], r.style && (t && "none" !== r.style.display && "" !== r.style.display || (r.style.display = t ? o[s] || "" : "none")); + return e + } + + function Ot(e, t, n) { + var r = Tt.exec(t); + return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t + } + + function Ft(e, t, n, r, i) { + for (var o = n === (r ? "border" : "content") ? 4 : "width" === t ? 1 : 0, s = 0; 4 > o; o += 2) "margin" === n && (s += x.css(e, n + jt[o], !0, i)), r ? ("content" === n && (s -= x.css(e, "padding" + jt[o], !0, i)), "margin" !== n && (s -= x.css(e, "border" + jt[o] + "Width", !0, i))) : (s += x.css(e, "padding" + jt[o], !0, i), "padding" !== n && (s += x.css(e, "border" + jt[o] + "Width", !0, i))); + return s + } + + function Pt(e, t, n) { + var r = !0, i = "width" === t ? e.offsetWidth : e.offsetHeight, o = qt(e), + s = x.support.boxSizing && "border-box" === x.css(e, "boxSizing", !1, o); + if (0 >= i || null == i) { + if (i = vt(e, t, o), (0 > i || null == i) && (i = e.style[t]), Ct.test(i)) return i; + r = s && (x.support.boxSizingReliable || i === e.style[t]), i = parseFloat(i) || 0 + } + return i + Ft(e, t, n || (s ? "border" : "content"), r, o) + "px" + } + + function Rt(e) { + var t = o, n = Nt[e]; + return n || (n = Mt(e, t), "none" !== n && n || (xt = (xt || x("

          sE;Wt͂ zs)zrt?Ɲd\s01n/?0$-/[LPM|bc2 +FuB/;oZkXl0kw{%:Q dx.tK7A-r>ҩSiɅ+͕hԅųPNSuiaWcϹR) ʂ:)uO$G R #]rE+bLzSF6F8(@N=BcK0WA|\c򃺪s3Nh%Y@6xhiNe9 :tz(ah Y_tt&@j8k$;m4FIR9Q Dh jO>B8WBLֹ1v/|P;zZR>j93DL@d=MHsl/C`Nӌ=d8 @p.԰ڒЮ;ĤYw6I"2 UL^{h܋';CO*,0P wPny +<]CN+L\) KewS(bu*Ȟ߅78Iqq\>ހ0 uɵ@ks%,]2HP?AҤ7?ߥGКNKUjEAy3ZjۉC@V Yr. TD}BC\R_2B‰W^z~a!l;vDTb;'K͘ PxX?|0G7l.S'* >-(@X}^JG@Oȟ[o:|dj.2ud6= o폃tL?nZ>l).( a*@&"@~4;a+Oհ:^q~6K}!~AYh +h_fu;aWn<#6j$!"ed9o ٜ=+_ V3%ˌ,L%'OٺΩ{3$PЅj0 4Oq/Ě G:ktD5&4V CR_q( s Z9|[S{׌ +6rQNPXncs3䑌] x=$T\U}&X:W&ל;YC,&j}Du0}n A R֥l ȍ,T$aײ&bwl^\Ҵ^>^fZ^8W3qdZdShyV|.R"6r4cWڳ,6Ysx~6ԢU/ Ⱥj2%Oc&jOe.R!LLG\ktCq,ă:e j4!8+/ռ.! Ai@鍢 |E3R.wKAB,Mu"j^~_VRNkں+nky{2LcHwm@Fp=nΕ-cZxǒBE]ح{@Fd-T#jWțqN .W ([2-B@Dt%kt[I^=6ʔX^f(L€ ‚0nyȊ(M +8^tn>"Xx`6S/r&Xm@#V4-UPQd)MN:yfIH < C(@ºp/wW;Meҕ;Y '1f ]C>j@t(AWҀZI2PN;XGI "#&s> nȡ/~>t=z;7u2.ލ0v*XaU; ޘ!^q+9(86 XIdeko}*Z Rڗ4_xa Τ7Υ-KI<(M_..W]"2Wz{a\ ˮ$bd@b7;>'#u}u.ySk ;)J9G6{MHNo[" 1=|;3?YP+JxDA 㭢d@Ər! i2gWn҂ B~|뎖u5uɩs~ϧ:2q{meI7nz[>V]Mvh\L;V՚[/3J~yWØqy᱊x9uvFG$uo\.k8.yaz39@_;s޸Z)RӚlwhSa2ܺm5|(ɛ +31uOcEGl\Ż$>ܘ:zJK #:}Wbşzݨ+<&WNbC͟MLBjHs)[+ΟPzZ[Lo]hDS=UWzֽu뢼 ͚.T +ٹR*OL *~ Ok/WsdA? #y.Q#1 (b+\ +M @T>LIvVG/iBֺ=g[wIW’p!}}Ȗ؍8pM9͘՗Oըȁn񹫼@jJM@Np*rF[6B;AsP^8O5\DAoK8yG$J ymvΠ*nU4H.1"VBV1@9Ep@/o!L|ljVWKVo/-4Ciw`yΕl<#p+(AFVt:ia~ǚ%wE"ei#~9<`BIH%" z.нn }AQR(w)d$A"tkri,Dzif$0=vk)"sz=HTe0ƋvP?$MYZ'B-!j EP#l<"H@}v3/ 1j,Q^KIG_!X`B dd,2aԧuĽ}k%F0 +a4| $hy +᯷z+DfP`$Ă"x\,۩l/ e'2ײ ܤqbpn⸍6H}YtQPʑy8{*~!nc~8И( + ;N_ūsE9zթh> G;|:C/Ow=Q=Va~NuWo7H cڶJtxäDb.*t |*p] %#_m.M,*N!K<%E }|59- zPaۮwt_PJB(لDLj_61EyHA>^m/5\2ME}5,ceH љH[ Ѧ16vY_Ӊ(;mos~f<;2+沭);z+%7"qI #]ZӃ"'jl +Nf]h 1xf2V{!d۫^8tJ+Jb&ℌZri)if@&Ak><"z)2$0&Nמ7(ixU6ų1L-\$a|rɧ N(֡gUw;L2-"tyF&$ɘ[JТEu̥{$/aW]h"j"6/iɸx+'Wp~"ѴɭNL2'*t3ٳ N:Zқq'kulg͇.A\r@XFDd ŭ&\Nur9|_unaunSJ!ahG[8Ϲ!=3T92z]Y1PҘAr{T }2MnXkh7fg,Ib&l"ۨS\PW7s>EhMz TC(Q8_]s ""ϫs`qj#هB%ăȘJY4@ n@c!Ƴ"V /L@9כ0st-&36"Ex [@P@YM>H?te~ok^S_]kᨇ,2Vk5xXI"+)׭W}u[hA{v4N0WJYLLu%He[b8?Z^4ŲSrK; %))wHC8k`=qS]h-z֦)![{׳d35`4)V&d_rKvɇ`X~  Gyn50'J:19ow@E2ڜzcX ?$+-GfJ*U kGR7)2N0d}5~kKȽ!KΆer{DY,8OX8E]5ߊVڏY]I+>Hfa!D&Uڞ>wfK +}cRҐ;|w?3Z3@38K{<%81Ϧ;BJ"1 5X~W kUEZzvkfd,Bm(JX+Q=@_L˪]l xgMYT-=F73ʺFOu-9;+o]jG4l|#>LH(C$Dϟ+ n@s::xy2'xy5 ; -YN/҃m78.QdP^P4rJGDRač[\)бgm%̓ܦYhsO&Gz@AA=POty3XDdR [𵦊h׀0zeۺ{~ _̥{wALsm_DJy@ƞʳF0J c{Sͪ(Q: g!r<,+O9E`VnFd( +{RM1]+I$q2~4@PШ慰}k-0˚՜`!r烛Ёr%Bi\m? WT% 2VA# 2 -U𸮇*`!.f=/@ Rd-m)u#Hټ_ += Z9!YJo. Wy9@4|dHm@D{Y;Ԅ9j6gWYsoANs_ tL +J2ieדL.&cW@~Z*2ڙ M*SW>=΀0_C͇F( q-E[<<ngDzGȧ񦩭:5RGw@pi}fx);<.KzJ|2MT8}"\{a ^D /)=Aj.hD1v?tUE,H~:Բ'L{D l2T,DWh(98DG]C` +Ʉw +&Ukd;* Jxp>~Dq9W(P':_˧Dy: 0c4&06K0_xiL%tm/0 e}vv޻Ӏ u%œLgIj鬵,2Q,/FnB Ngf$Tgy1 Ic@(7aG۷:U>ubdī)_s K0R1d9 K +bќ{sNmHJasӰslWp5%x @}B>4~&֡:%k"޹a~H2@B{#V/6;f lZuuB_7{Cԉ᛹UHLo< PRu?3l)yat(b~3bwikPcl ;#J"3jQPriWs $t_3̕К W_%7Y)T[3#Ƃ\+ ƥ +M+p`ܡ1f_sܔ8ߩt`<8R u!u°z\V75dD8w}1oc﮶fG KbHqsl~\*뗯mol6pT>jrNT_F<5NKB/PO-hý}Oډs9-"&ÎGRP25mAƱ5x\{1i{]}_8oU7C>-GR}C~$ShLܲC_L#|t|uP0VʗQY`Aj3{0s\aRA"Tːq@u&qUIY<:S E5,9nE[*z`c}ܶ~h~@N-@ehX<9uCY=9JÒֳX@^aǥUbGrBǴPӻyCƯh@ȋy,34R9h@= 1:ͨ]ߓs [ ho43uAEs!7S-NYU%ʤzt%|yubz<0w9˔K :oJ;-%x /V.=N q=bMVe Hyg_&֠^ִ(Vb¨Xr]Y6" XQ>GѩaV敃J\k$ +)DmJ`ӐÒ@Ƃ˶;m'dpk5 rB}n\F*s!2hꜨ==?d4dhyQ^TMaϝKa{2Kn$ysq#xB* T5%^,r:BYq4^y7/e4 RzTHq^Qxaj%d ΂Ⱦ&8?[>w h#_FCy^u*Rr}U&g!)h~Po_oQP=[˭' "eMD̅(_*V|_ oC+ބ-ʵe^6@CƢ}qێ%mzA]^0ӿH~N]&ѧܾ!<e:@%CHk4=X0&%SQ1jo#p+Sv0t%5 +]<arxGSj(رۨL.仙G!s[uh.u")LΐjZNA HvA^M r$oeRr/u 4(3T8&נaAN g׭fx=@FjJY~3YگxD䀿 s/Y G:^*wcXZ((ߞ./} b:O J:"szRew.QQN^Z 2/0X0Q C ;xG Kd+AoBp\@DM=,k +nEgq . +B:g,\U!g,U2 % AT`BDa-+lҀJ`"BA׷ZH$5Pќh"mW@nh6RAhӾ3By3% +; +*Jd5,3 |M}W|)mzP+w\݄5ȸyM# :%X%.U/F,Wa59wyȕ:{YЕA0K/TY&eZzr3W@鱚L4`5:ߦq0P;Ez~ŚEyNuȶk{+Z9PNg7HjN$n@fWe Ӗ H~Py:x +@dx5I.8%<ԓv*f3f{>t21匢E V4九Pҷ*scAɁ+g3$D + ka` Q]L|4CϾzN% +.yiwL[k㲌5Zx2 6>_uh}-_6Ox: <"瑐,$a)*큸= Jw%Kpf8tQBJJ?ݖ1.PYXg&7.+vdhie3YO*f 1&s}NPT/$CxnsU+D)XBŇDAZ;|PlyjflStס暣*3*}NoU%} e R9O{$OasGwgm21OJ,E"[kQ-i"@&GΜD C^jD(m3~PF@봏JsmIC&;|4+hp)m@`j7:=5 U$-Lw^7DV/ZXWY8)Ùn#*@f%֐ZD7,іtB2LHA}|OpE8<}Acm\鞮~ؽ~Y`vE? TifK!IO8[(hA͍D>#_aW9ޗlĢoK+`f6|_*('΅zhr᢮@ٕfFvÓvbŪ欱mϺ(RcUϥK=Zꄯ;At ʂ[:00Q`nJ`$T 90K!b4N5MKb+PP4U핱vC{Sމ̏$L`!tM.`0:L`xnKzlDCf7-=>ûBrղ#m)l^YMؚQxo*E97vX??ij9}H QIB~t-(fN:G{fa1nd+'M`  O2'|NPdJЗOZDz 17鴅L#:?|w1ec[bV#|5NrU;i䒴rT%0h-ȐI&8Vyа&i(O1e2+:AIR* s WAYނJ# 'EƄ. ^G!MZӁ8^Lp/%N.[;2:1n70[4t֤| I8/.E)JLh#AOp(e+ ioBQUjR_BRz\?a.9}&.Mh12r\f[6 QyjKɽ%H6@JsrVHW2a-ZKz8 +ܥI$LX"q//$T~yHWy"{ X(1V$F= 25 c-$'98g3~ٴX!Z~AT7܋rN]k +(G6s i]#(iA9LzCt.>ScU;lHrqw|N\[o[@u*  ~*IJ*?\Cm&چWQLAw3+3AآS,J쿁D*7} rә)ʢUh*fν@_}  +Tmx^8$@$*g"`g-s]81IWv __#ARs$Y[07/iC㩵]R1 8^f^5-:sJJIʋTjE+*&f>^N8N CW/B\΄vX@)GN>p^9bN,H C"bdsvOsʥÓdik[NNs2ޯbِ5͡5No~Ca="jn'Imjxz[AM$,;y"ۥ|1 on2u@^G?bM{+d%fCl-&8_KѮ;.d.k!6g3؟mGVT:kviy b R] .rgbǾh-tAp]~–XTP9e\?3q>gl5r u%  ƥ g6_30?8q,H)|9uvLk?d9[T:> p2gޤl6|N56"Tτ dys2?=ư yBcc&-V!uK T甆 _/js5UbiUiтߎiZS{(݃~8eP>HfoK%8sMPt5X}Q=XnswօBO{-xo %sޓ{K|M%<2G_FY&fq ,4$HD\ƊُƙPqs]hw}QC!}>S=YbՑڳ}Ga+R$|gb \ESj 冚'o>9yk)3 j(Y :λBbOG1cE]S#m6ŨMޚq +:K)XsQl24AO8IoUY)9^jSYŬ$uu5 /M %C@E?߃aOf50 pl!^ߧ[k0b^y>ey=BLw9ŬWǡvb_Ԝ$8svevefh f-tďeʺ?U3bN8/-F{tk,*B PZ`,[0O},<Jq=.u4SCȑ&Ry/G އ8X'kQUHޔ?̇: DI6DӋ$Qt~_̜ e73օOH < ^^cz x"g2exsC+ c/Z䤉km]ׂ "o +K5MK KqĺoL>FXK16PE)'vfK[@|^-Q'Dt~_LHɈ^y^p5zKU¬֗—sAJW!@Rvj$Qezhȉ +<@[_b6ެ$uonΉPpL |,"t[X.HIaN +[ A->0Ќ'XΗXdٻaًFϾre%͋׭b$@ syߍu')'lժ-{rh $, +hVtUeA>yjIIDEC(U5 'r%V6B J4LSPɔ0L_o%^UKH?&lL汎7$ eoDޝ SF)œ)ZR= Y7sX^;/o_σ'm1n $Fhf(f{3UղDs MU@-0n]xI&EϰC]v#),c|?Q>nm?1C4j_IJ`qy[r%7G$̋к 7Kes"Ə,D,<^cdAwsEc~+s *Ght T#znM&RP}3 K?U75ƶn@ćFwlNk5Vٽe +|ߟ{L麞N ՆlC!dTJ)GJ.XsSx3(wDEC*Mѝ!QmHrikEt;tQ$ujP\O=?AI:ыG R5w g^TM[Oh{?a`{K [11DRp$k} Kg;4Aiϝ$Gw{'D?RXָ]ul _p@Pyai=+ӻIJk? 4>vβ WcʚL5\mjUGx9Z̵9qmyiR!45+(ʌz6 tuAʁˏ];\ RDn!2 VQw:ѿ=Vɐ1LHBm3E{PPPo3hsDyK%N牗n)؋AՅg2tej9CV<)؎%*dGwM0rʘ/aA/Tۆ!g׺*Kc>/D-vb΢@eZ + [js_B|O(_ Ejv%q}kG] ()mi<5\BTܵy\^DK*1t="}V!2X]ql 0s9٪-qoWη<9.s^rbO(/H2$*.>(3Wծ enjbnbBٙ";Uq~[CNp5pkn)@s>+pb i"[5>QOIvfh\C{ s!;E]X&Ki fT*얳y_e'CS-iCdt d Eq7d^~, _9~ LaE9387d9۸2Qæv?+:d#b,E |vhB4p Dr=-؏]jˮWF` =R=T,( ;"c[PN}h c%Kw,+=:Zve{z%'Blo;:hqD?Q{c rY7klЉ6dXS:[Vp1ӏ]޳^܈K +9d d޵F'h#tI*!\\hh5 ^=9"ؐOJW|ұ5CcI fd FBԆܢ˂N$oc"buڍ `}Z>s5`[CNiCajN}4"תynKea* Uq?]s 7>L7EjG8wῷApI}jb% z.=>oۯEz=.6HWG3ly#yol>zt2gtd1ܖ[fJ9=z n=Sa0Y,$V%YI: ?jmxYsA;; Ϫ4_#YI8:f<%$Ya~ae_+3!6s7a/@CwaAԗqfnoqčVd%3/.DxE?k~1PZ,;oRqs]ǒ(֍%;k=*蝡)nE h{0_(y=5(⹌xm!syAwH % a*nIf5.±OWѨ=vx]37r  CC1cL݋@WKfgTD|Ce zX) +9~o61ŮNܵ{{9z}^ߙg=po%K!!tz3ø]9p ȃ{diS6n֞Qŷ!)l!xW1`](&dM+̈́ R.')3CKv߿*y1mb2hBi:~Hhm&WCjُ-)9ۋ(B>ڨ꫹ so|qtm&/ay{L:-+Z.Ո 9˪p;5 DP77>E(oŋ#&"H"|0L,HƤ5"$QGJ??&| vDR~F݇b`oG qQc?'^ķ qp'w{Ղ 4W[ -Q ;7NuBj-H=vynWx+֠[3QP\j1˶'ΝO ZU8mtBAȁ%daCà O/-cf$frhج.v!4 1b?lrRR/䥦P[506}]t=褡>H?bgY4+L-~ jTbDT![.'Ӯ~aijV櫚މxj",- 1iy6,%khtb C=0 +!FUwՎ*B#8.QDvQ_ &Фjtug J}71LW=XC %<2)1nݠ6 + +gA[Z~w^ b=b-* +IЛG]IZ1!l1rv0٘;8qȥ6~ wU?IЅ`k)uHETD0Ngr"9ĭ5;n?*E&Ik|c.QkP(?3.@O$!B͟tqcKu\>P$r˷jTH%XY#G #Tn7Nh5NMF‚6J!v Q_we\,YY9ц /k`*]S椦j'*5?P6U5 igG@~-K3}n,NEwtwB%tA(7떢-%E)n9%Lb`7o;B5j.n_8qsWڥ;o§K\mh}*;SܕZ?*8L% ů8dcK"!3E #?]j +'gJDmR]U!2d:"';qvOAIoU,XB71,mI2v}U973m M*fhD0Daׯ426+xK uof{-Hk~_ +(ꎡUzA|ݔ>~GѠ({զ ca9pU; `X28IJeU?u[r)[vQ/a -Mw uWzC:, d: TX[}KzIb_ߑ&^7<'aBpxRw d~彐q uIwb +.;t!JN֭|w}7*,9w+Kq&`nw2m@t]@*b@"AN0@?ɮl b~n mgg}=<< s/ QM}GMh+8\Κ& +endstream endobj 64 0 obj <>stream +#A3$Y)uWnT7c._Iy( (P94ȇ{DȨ W"C1lVQ/jq(Pܨ9>Z6TH0%~WFE]@S*냎T4iQA Uf lYEdd^Y#복Wqq aoaZu!nI3Hm4r"kBպ,ARƫ\:AQ[?zSgU6yrfb; < 35wV[c°MxD Fأ̶|v5XpcO\C\%xv~Պtcv2,. ^WX鲿BH|!RGs"#$1g-sv7 8LbrD|H*Ã&!~_?"Bj5E)4XQ6⎧a81^:&1%E9($OS^Ȝ[]]B=4([ ^HipFضA._]ujfAy)T|y[ՓN, [5oog5߸O۪@TGǂtE:Rp&j56AG/)rvwr2yT?mUའmy-?ԯO\H쮷(]1\HyLj&- $?o {5.%*"Lb#Zc^9rˀx)w?m%#/Fzc"@b]kPw"_ЭKgXb'`񤷦:86 J`m'ݣp;<3_S7ޗDs]ҋU žjˡa$Ir w$~\8)A[Y^͊г$7C7r@3waqچM5dgĥF r.D7뫘*=AJS6((=oԾ{D#Gx%ݢZA> a}WP]j*p fz-O)O~1b |EГH 2H F rV*#Nj}m`@ rtXxQ/jW1"Լ½5p%Y/B eSN +Xv-TʑCM[Y3ӼMag{hhsw*y~⛩QarksAji Ѳ>!yCiB RNjڬjA+% +d+50jCgn( }&<}S҂A45sUt?|y(pcow"|y!§XC˖BS.9454s%}|L5 H;5J%<\~N2sQbI?0@-a?]"05K@ +b S<n湆7wC519M.RY6t]:uz;'a}Dů +zi +4^cp> 5uBWI 8wp[cXv(}oɽ{/'d= k ft/_1+>!5vX5;TIk_9RDm9dyl$",b)a[M'Fd䮑?{R%_22^ u(BɝI (pE~4~\E㨨if1} OY=G1wP:Gsh^q矛xDqL,?WDrIN P M$fԬҿS{oL=$qDj T8e3u5:tf2*y\Hȷ[=_KW/N-c{~뀈>>/xρ5NIi +lT@$XKԁۣ4p2dpaoXDeQXFDAou Dž5TRv } ׹Ifp! WMrW 5F6Y?I&dQA#5*{(*C3O@>ThP󌬩KԦ=w4iVBF8P| [^Decw)? I bQ%3/DnbetԣaV> D^}tZ FeOr77 +BI@uEɞ )}t}z)aփ I$=}l`2˲0P;}QIġѱQƮb i2 -oݾ +zlr~#e +*Z3m!ԕBb5.x兣^Y6*VjGi\BԱ 魦(PB,ӧF<Zntqmi ]̭ٽ6jDG!JOpﶆ[L p€Ok%@JyϿ'sdχp{ + n4qi>o_dR.ܨ|gH!jL2ӑ|Rȴ2ip ETfw_}\'Fpu}&j Kt=os5H{"U%?'cP<_\'ÌR- %àXvpWJZX4 \AmLy<0USj"yO}oL@FpIO7P %s{Vk(dr>@2X8$2e~0I@ylM%H4g&ej ihGkma =1KWHS~B6Vhgz뱭X xџE΀X? @Ldt$yğ^%!hLx{!2k2Зm&?WP8Pu cql IuIbUɎ$DUAݻFWz^_CYf}zHJ&L =tЄ/VhtK$Nh`S#n#P Rb?5磐كf`0RHZ Ĺ9ۧoBc_Ё,{`jmS5^J_:m%oMtܟľ-?^NuH?kܝSdHM Yfks SmA@ Lo|Sf5Vg~_Aݳ00K"msKKH1̼D7`㰉L/%t\ciym0{>Cֵo_J#bA9O!+'@{Kk 1z}QZ(Re@9oy9վ56ƇTt|vd LΟ.O)xUu9h#3.y ,XI ˵]~[32 +o&_R8!SNr]9_7RVc❋DmT$Nd}?Wuk&\# \AF_ +8#-50(m=)F%hK8]{Wh<)x/[B| 5ȉ@nKrBlJ~0ju}OOl"q*pg"µ(L$.&O3҅,,1>R27k޵Bj9ѩ 75YWB(^}Q^_BԄp + +g w_wId&NMe}o?S/w jD}Jd=}PjZֹPhy.i\WD+]}5]c7,/Aol>Wc_$Kf݂.t vust Fo!DLps|'zxMo$|֪ˢBܳD$z[S0SAh>cW|pmO]9;!Ȼ9^oTLR0.v- +{|ۗ 9ݣ._xמLFV~NHJn{*T4qfu>vb |['Z `r5Wrk(-\pn]߄X>@ڡoY-PAPEv#q݄'=ZB15_P%p8urTBnusѿ.ŮOV1~Q pTd^n߽zRkx(e" wm!2@a䨋9Ն/P&% +bzQL݉seCZ腭r֪mnf_Tn3 W3U_:hO +rL/uܘEq2n%9Q!G*'2Y| lctP:8ӞTwM5=SPjPqLrC;}.h; |"Ky^PjpA A@S˛62uH!8ǹ@e[KABj7tIȚMt 9WdE69 +[-.>{j:X(nްD]V~} ?Rd uvxcvF]:Y;cOH&kU,ݮ&/7.WjPjA!, _[ kAJ&U uì~ԛ+i̲/3b0|eU=oɂh>}o1kun2tPX_Fz5 W24*/͗xv_TқLޓ ▅X-a\َ:7cgtؔrd֯񱆝 ZPM,uf/U^W~y5&mp A3 y1x W2ڕhij@M/jG57Qs]oPuŒ[66yA,E L6 +%n}ӹճRBz]*E|$cHs~XeCKM e1Q^ +ejxvB̤UjmjO⺬oaΦ,QMU pݘw]_ԓ{UeGl|o҆Y 50!Բc6Uq0\o3 +IcXR4os]oLg|R"s|pb R ˀku &ܳNeͼSAc]XJ`1P e(BIp \V۲pP= U T'RPE*4n x>oe>+EED +.=or -+Pj9Կ'H&A37p.Os=yc7ۖ?7j3pݴur3(5/ۧd/9 UjiwU?A9 p-d܃l.c=}IToҰT.nK󦥡bHilP cu [y{ AKI}_T:J֝AIC`t1hMzJHy!K2ZCˮ8uBg3ˬp/ԭ6~L38 A=/~!bu˷LL7-|/|BZ6DX~"L.@d7`PI5Bu'I F ǀ wyޠ)uKHa Yg5)sfp\$l^7_^+$<о]D`VKm7oocWd]b#Y/MV/rvͤН?Y- BsnRPƿ6P]OO]xA' E9;G;p'Q-ucx ȷF+Ĺ9%h<7N0 nN6mZ KK](pe9|R:W2;E!IYu>dq1&1, +6 )n[F +G@s Kv=9z8ŻP䕁) ry;)r=fIKiWvdXXz  ytяk[ BR!9^5dzUdWo(%| qBʠLP$.sEiED^䀷z ^sB}dyRy>$O:&z#Y{^.T2ƥt' I gh 0yqXk'zZ0 +^gcu0n19'Rwn9?SP#ź6.1)>Gҡum? ɏeh:m2-|us<֜;9~f^&/OwV#YlLJ =kARw>q>,TOQQF/|ʒ;wkZ八%⢍DA͂դr]敪TSHNM\ƬL(tʍa&H^8b D&*JsGX *Z Fv*=NJ(hyolCNT s'jyiGy2l8@R/# q ZL1%MyB5?|=c^bF#aya]}xVKtnbYpl&1+$m(V$VypN2 A.GKuU} =>#X)pl6'!M5j.C H&#ȥ0SgLBVP >x&B5Jˆ+.-Ma-~6f@ܕHxoK }ı!0)d\܁Ζ'gD +w ULm|K?UF9m\m:gR͛ǦJξHul*L‚r2qˋnQOY c 5`Kնv>?2lں+3`F6_!CfB(dG 9B_K~Cc%;aX.2lϔlӥ5>.1! 0GM9/jU2(fIO=O1od3k^y݆f-| |5O.7~l:-\nY[@`m+9^ P Xbat쑲o6ʷ*/hS{AwwՋĝߣzTpgulma}8 sòϵOΔZ٬kE QWzQ;70R'jަ#6OZ rwi3ܒM{ONHa<8%}>`SuN6ȼ?u??__l7|I9`En80~ߠn9P`8b`?E 1_<6+q,-Ĩ6!'jf:XH6ۜJumg-}O G&&̭ҌL̕ b6[m/ulFg~yAEۉ'(.Vk|׵{M 87m,켨cTHEQs93%-uIM0XaELhF^_[A* <']5GM0o\FU.W#?sY9UQ^-dwѷyF#'%U.__dymwo ?Tdw|.ӗK𼏕F \>Ҍy [TBh̩45p^3 k8_o ZEՆcYO ]Q6㜏o!-e!w|p2k?vV>wXR1]uTyP1 y'K~k]4-A-۞|(Qr=tOkR B￷kHCWfBP0by &ZM*T$=}=g;Ӱo|B!7sǝ 1/y[ؾc7sL9&61FeO6Q; \hҊdbr:N 6׷~-JѾ+9=Qx4#W,{+SFM|8x(׸·yܩ ({5fOsC a'U;ᴙ6+D(JF-8=W^jg_ UR1IݣMܼooU4|ځ ྜྷ/~NMNy'5ZLB1L]̈2Eʗ4,u۞.)CYpRxAU1ߍ>508 }Ck5|/}!Um–g.2a8R2l֌}w$}nc|= + _|煨tf/neZ@&OǒwD0ݕS8K4Iٸ3.^3Ų4H.D^h/0f6aDoޫ 0:w4V\v v5aNgI[ +(V7Spٗp̭0@ -fA }3~2(|'UWC[LK^ MÙ@&`dڠ8f˜toCbBQRZ#u +1U 1\Ǥ3#g7ѡC0{۠PNPv}xհW sMsoX{!El4ɭd &,{b;&yug>5s ĴR8ٗ=I815.шɤℊCB?< yOKL٭fibd?w 9iw(ȼp9{s~rh JgY "nL +8k(h槌zv0r MN (QT@M{0;T0GΈ(򡹶x4H{ 4%ŝ|-e{v3 mҬT&BMw65w`؃awc#'gHRMLN9dj;zU  +|G&_u'ufkZʴj׮P=czrKp)MFz_YG3{a]?.Is}j)s@^sK=Tފdk;HŒ2Ɯ+`*mIբOpzk&(!FeT +h'SȽ)|ޚ[6k5{e@zl=p_3w~QbXCYNpMhi?"ԉa)bْܳߥ'GGn9ct>6g-TTt;T=6=@iEWZWsA $RI)ZD0` Ll}<4wꅬcA!݈J) qTJ.]RhHLzEIq39c.ө/ǹ~7džs{f˩l) , +! ,p^rWy.˻ bTT}9A91Ni wd^''. }4H͊+f>W`gm7JV5*3H BL=ՌJ,${{冘 8;m8ryV kp@Qm%l5{E-Hީ(qoǰߒtL|y@Cx|9$H ԔIG{l%<Ay<D" O.='QA܆` O6L1*7H|RJ>WܽCR/1+_9;A I;=U< _qS+sC3]w_9J}1??/|륛f<^2֠ebF|؂ G. ߆z1D\ DᬜqU -ff8wçVMOpjiW Qdn)w+vD)}gf.&[-{jtg(1]fhmf^^S3dH/9t}<4ZO;∦@C- ~=|~7H գ9of{l9I2yٛB-0eZcefgNfXcDSR&5 +'d +Bm|*5mA_0G(PS',|UUaZ2NW +KY < ʄQT=NN 2ߕyߺ~PAy"=T1lѥ{`)f9GNJIҖ䧢5O맀!1#V*m0PP' ȣNr~{mpYo櫅7/c(0'y(.{G}ۙ݃5ҡ ^CkaqY'!1c\Yskݹvޝ[}&rU":1O3S^}\N [pJ{(B(XiOϰa^,T2)=[g)gw*CJ\`mՊXQ.vzdzaxv ]leō7V1[᧿f a 4vדVe]0un`] N w;4>Iy%=5>{o4۟=|>=u?޲|TgDο'Rͷ9R(xNh.0a;i1&|:Fk]PM=ڀP{nc]>p)QS/ iijO_#c9rB,X@GZU͍gݮÝa>BK/O eE;Hs';.e<Âtos ;||$9X؊'~\G^c/:@-='P +s䳏qAd0Y czQsBR'"B\nkCM 2X)JzJOPCQOMݥ2az[J-Óds-*$V /&0~4yV84< sJl߀9%e6142}4vޖOzհ/<)L:x4?+8,Noo͸P[qߣeH;XuF$9U\8āoG -,KpAOʩQʭ!lbf_~$nQdn@DM,F@`s>`0ț&^uAII@dI +zhAJضQvEcR _a~{M q;w^\P\ׁ=,ovϙv +N>XntK0o;i$0ܢRnV'[dpO62Ί3țJD%7J/ O/ͩ- Kk)^UD,oc3sz9!~~6yQ^ _T;+6Be=sNvQ~i#} Y9;6^I +[Ⱦ!&W JNfŮ3 ;+ڞͧ{T;@2Sp;Z*q@FԻᶟAėZV%Gʏq!n~쎗ؙA k4йu^.tBvq5>O7qh5K/3|&:tEF` whlթU5]u*}}B|8ωw%T*Iqa&9|=?޳Go7ZQ.G=Y$+1ȓ=toa;{(B8ΟY@lDmiU%67ٯ`"Fpg|n !mž:d_0Sh6X.4Wڇ] t̛~VXҍֆ>O2.vV ]q:U.):[l)nrw!ٖk$*0D@~\z۾PTLKkvQiNOi}O VL ;<tR,hAH)|d?בIxvAv)=A{!s\q dΙ9zmR#52sg() 7!spX꨹ݓ +FPz9X|E/^7'hZmS !q.ĂW+̽K+4̀Jztsw_zny0{$j/ ϫWW¯aGvڝ!Tju c\?ɻ 2m&.(M6?/)Zs_H()$K3\1-붌cc]uLܴʏјVtb-+qnޛ?œt_Pir_6{,\`<s}HW!-@Enjo)碓Ϫ1םe18W|{A;QeM8Z6nK.\7 bd1Z0ޣdH3>u]L8VbҞGNZj_Ɖ{!pY - +5a/K Hgɖ =8_-"mŲK[۞u?OFbZ8[6vـ`IXyΙCh54*y{27^~b۟t.@6ꗱdnqM`ͷ(W@^C.͑;Y66eG,t ǰ\#Y\xlx##OЋd ߃Տ򐣺r}.^Md?uyV"^>.9jh:PNng<bk'Rz&&/<7sMVɹMiM>l^.հ\h^U^]*GD +(rZqɫrs@J`Qh,e{5׾ӂ3EFxd66'I2eYo/l6v9.zR>FuB= u1=gw Vt7A[ҀcC v]&&N}ҥݚf\DyMCJs +u S7%f[rZJbz[nM1| 衝g׹cM?4K 3ً:ۥG^SŌndnOrx<";CcLjW+5? +̴ WB+З!]X`hb,pe̡r<c|;@g̖T(p!լ8D@s՟d~;S]1bu6y.9t؞~7o hsژ:Ŭ +tq%;-č2g̹pZj ﱄ'L&kꖙkr,GWG|w)ݕn|\_B_hHoj8z' aH$NIgÌ҉+ۣ1+֍p>{6cbj;+TЎ odxni*! A:} ≼3Ҝ,tטz}P$O`I&W>G> ?8{^ :fa=>qC{q]0R"ݵBԛr;E^Vsf$\E*dZNo +/Q-p1f?vm Dl4(n.;/@w둱8XҧFg~uX{F*h)c-cmnu*C#MJ&sk-@CojժG@@b~ +Qb")HM}7kUQqCByVK]e1m6[-; Fҋ4i|A*EmW]实Ycn'nm ƭmQXъ{ #0ܻe:7jzf aP5@ץ+SC(Bu%a.FW2+<&uT0qgqI5Ғ/ŕ&"RB7~6\c o"g~}si"l s$k6!gǽ<9q)]}}Ba0dܗ'uT#Dt 1x]6 dJ7(Aݰ6-\씯nԷ[ ekm6y.MLF&gPp}vO,XgI  h>0c6[km w2v&! 6ݔnlNP`97ϷvgcW)j9.5rd>w3#\PV|?F-$m&}[ YATcU Q:c+ƜK2k7JIFh@ӥ3"4/'ƥq_?vC[P?.]5T{_&p"\̈鄭aZKXu"J3KQX]?i~“_=8蕐mq_TKk"ЂA5%B&=|ݷJVEiR`&i.&E.+`d>asXPA-^Lr,YPs(N e 6DorJ,R3}#:/WwO ItnuKIUI' r2s6~A"M@[H`vR4҉0 8\ Dm[O,vWHEn3wKy,V||7Jb={"ɖ^ѧBv]8)6!d>+9)5YCqFs;h&BRXi $AvV)y4Gʤր'4ڤ[|NbNoI&.4VЊuI *jF7hOhl8Gn$ff=6F8ͤ߭>10ƕh!Ƨ @81.j6P!%q/2y7/%OF M pMEGnpjs +⃍)xBUt*hT1%}̶mւ~УFx(@9,R>CRv07ut\}_Os`v}D48[ 44Ww2 Qϧǝoz.SfgJz”sFÑ(Meqy`jPБ@EPj{awFqŸ[n!9B)^Bs%ؿ_;S=3 (`21"'1 ^"k> +#*︺!҂v)m|a ΐB[V{iB29.GI;*ɯ#J8y(s\ҹYkD@0 \_Qwz|)מR{e祮v)b} b@23&@<ǎY8j u^V`5"i4{3!o=tY`r + +׻@G3VV*nF='S^sdwB]TӚfеYtaZb'WG0=rd~xQZ:ċr}E?cC|cI3##`yֶVbz@̓Oݝ&(1=v3RFt}A:'y,yE`#ME pYIUNMDoޱ~T +5kV:u TBvg %m [RH4?ՃV#=SY0Sh/ 72QSn|i[|Q x}6'GRx߄m"cu`Iꘐ(U7e#`^Ǚd=VZb4:,63fPR=SROi䒆QϬwߓ~#Vs4ɛr-Aϥ2}l<+cKp>QAT>J\Q򯰵dgb8/AI<s̲VGӄF^@WUc8 Ejc3օXA*A2ZEԣ VCsB&a%"aɻ8GBe,ᛄB[]U4D'^_):E+D8+`Ѻo3u1jI?)G6zKne0_yY@Ḱ0M1Z *饨A'AH( +} q\GB7g®o<]^( vyLFg* y%|8yI1e1F0Sz2)W,M8X.?OUrfrY ag}yJ'Hu6ճ Ca7~s,>se{Mh%x–H ܴna; uBew$/@`5 q@K":;VH%؇ȓw *U`DЅy6#b[#6 iWZ6FdHiլSfI:`Hjא:Yo4E ~nk+eDŽӐ.1G{ayIiׂF]`^B LyUp +M2>g-L 0ఋSQ(^K ўoVDDP$s4doS}^ 5Zd[#.m٤Z|tGx15}E(/o߈:°j$Q.H"T>V s٫M:MxuĤNvW2A~ -6hIQZz+Z[g̴u./bvr e&eM(VjьE*4S.LuuDSk^r<xGɢ|ak6{\ԑzIT4_C۔BiwT!إ;bM$Km;s<&4;HR5\QPV]+g[eVֱBhÞa&tHmqJSu%H:b $GJm!~{)%~}9d&H5c Xs︛"6UZL2Zh')VtF3jGE?H6هbB6h+$yN̒O9J|Ą kxPdfo\848la>ukh8r/K{'JA[T69PIώrRD4E+&^&.X-E =v4^IkV MS+EJwƧdnCcǍ B*Z T1y' P XxWԲ ɵS֯q dNmH=[e؂eÑ &D]oIN9Z \4m|w$t!dz%lHs0@y*>Ѱ#k!l6TV&SRhF.{Ȅ(Oa)' kLrRGf'>H +g-&KżFgW +;R&7:liW&P932 +0QMјZ'E͛כ,b! 9u&"+L}=l`(s4PP-/os4ӦTZJ,!KjT,jM[)nC7 `Ge$۳ӼD$˧^l;"ň ]pv6 U|UkKb±l+㿵g\ +8մyk{f8B ,D,c Hou^lxv|0C~tt́>cdJq%&$4V2.}2j"VVI77 J|C^Cz^'&(Z$NW-iXu~G$Ė5d0B&҆[ u4c|'(Q"~Aj&E%ɈI>]"!`"h Yr{1{vZNQvz,l9& үT!0vKz'^!KUd0 i)Juȴoosyc%u-a˽I?/;[vc׿զѬgeJN(XJ׸6&Eqg9u?O6[ {=m^W\~g=Jѷk<9u FѹӇa:f,U%#oJPd*Ț6T\v1!wtA8Z D[I>Ym$_y1#N+$,aq-m9l +)`=Rݽq-'w%Vq秽-7LaHڦ2G +pކ!L(~iX ]2&sY`3$_A\s-'a")9M! ˒mh "5bqO:MzvE }O%Օ4L6FrA` +LEt4a[3st-d; +! +@G2:wB򤟙a2t9-NU"k^@)탟 OPvMo8љ{6'ݚ @i#lr5p R)|XA[AٔLj5# 7s> X"~NQNR^L?z ݢimnG`Oes6zFJ{>`  z^L  s3v4H@9aSđ氏^NX/1_*%3m83 ߌA=d"'ZTc,bzOmd1vOhJ//L&HmPC ܵM1G0&Ȏb$P1*:>`e3(H~+Xv{e`JyKd>Խ)mF@íz 'oپn":s0RM=>.mKv&+Ä9kR]ƭMPȢ E.s VT^&DĦ D:HB5?/?OܲAJVOQ' +Y9v #Xl~N&(nt_q%M#+րLhZ,#$Z1k0׉9WHӷê(ssǪH:׼ ugN >midiP4 CJ`Yv9 e))ϑQۆOV#I(iR9YH{5!9R(j1lpjBO$*ݧPU}2OeCѹLGk{Tj͛=`G0G^hf %3saŸQe奆{*4Jo9揃y= 0 ۍꓼ +9W={4qbCK3٬l]V%>ubQ)T} կ1%qpu *<ՅR0"䴢sӘIvUm?5d١j*'ɖ*@к\/h>-}m@T2~Ҁhs +3v$Pvצ e QhtC0ʣ]Mԩ>I DC:g&ٔ!\0%G:)"*tfM8A& $ $m[kžɊaG +kr>2 ~WH1 \9Pqٻ7Dp`]+.}C:B#bJfp'͌O;0G:0 m+E3{>ƿ ^刏+XQ\t?;"ޱH=  &/&$^RifT%|GAc_`CodE";1amJHR(v=LTۖ&GȻ)U'zDor߸O "Z+ =޻ SU!v&^.e"7wtAceh k}v +e;"t8zĵb˜e/HI7ou4;}Շ$S"e"˳/i$ 0h18{MO +o녦ūXКF(]7ɛ.\:PU|mOC*rۘND)xv +9I(@:E"csJk[reg ;`{6xȁG(3?UKzIHG㓎d@:?;$˦n'B,!Ň!>IIף(G%`Q;o#ΚRi;]Z3iYX$vqhPEX{[ +¸I5 "lUxPNj"Yh7f,5nR,.*K ug<1[#5wńoFadl?Rߛ.ʥ= lGwy|VRւI7{-h"a +JQzFD~sǑ*Uɍl7aH^^dWg}M"Ӈ#+@wmeJ2L!&}P[> =b Z8xٵ* Ni{ڕl[91d?m{G_0ZmܷsJr#\IHHsgeFol dM>}{ğɰQF!OE}7MSxi &EIia#@yAu՚'̝uMaw̞dL+^#uB-cVסc],3|Sn-mY17] O@6iyEeB,Pt(9RZ9.j(ް.L|T3P7ig2YѺu)m}MeX-Y:K Í+֐4R]˾₻4!ŜctD +v=;9=J[0 ːqE;61yZU yUkg6ήt[0)5;v@^L ͺ+]M,5F^ VDî\LDiE2.\1uPV&T9षp0ʸ +1ٽnP nP LWn=a"+դ[77nLf`U}N!y&tV +U1~ ٕy"s0hkFrϭSA 9 x\zb% +A$e"5+ݷuN^dU-}J !PqG)붫aү toSͨ~+*ףdGpY%ճLKJ]V$^w8{tj}PC#{b#[BzDgg+–%8O_V}g:V=#Jj2_Q +M'.)*I&Xd} +uIG,vEzz =@`,:} +*:0!~0\]G r'sm?,wW0b`\*A0-:q4aGbw?ļ٦i$h8O~@ש+U` Wy\'ߗ yJQ x[./sQT*iA = Y'Iw?+i1 !9zЅҨRWZB02 UҞc&Hw|kLX( G1@@ڲGnبnAQocT~ߴSTSP]ss$8vֶ(m Vëy1ӴX;u&Y<#/|J@>үGNTej%hԝ.(y=UF OM$3e8ֺ$DT;jm4(p(H޽dצXtR{bHA4@4pmяЩ* c`i./ 6*K*51wU47a)q;`Ҡ b$a(fx8U~Hw zf7=L8a;}=pazķkW>[onfRNifFYA?f}4k朩'YWUnd vfGh$xyK =Ifg1;?*!*[Pߠx%֬'./#;r".\ǰxBFϺ{ lQ6bJC^"gltV:߿9}o})!٭VLlu7ϸ0Ho. +xVҒ^5]+!h_ACŻT5iPMhZ=k4Oonh4F%wY0FYU5k/ƅvnf!M8ͩe}0^f&,ܶtTCkcKqS#4w;s0L +={QzCF?\8lH6R}i,{1}`u$d3<]-=$Rr5[ad /:YfUǚ U;{Zq _MsLnR=KD8̷:[4H +ekb=Irl8BhAMsi <a|+m F<(=\8zg/ݿtC{%Mz=[\x5j=/kfƮ~0hy*4J'7QMd5S AٷQ'iD2*cU|? giv]i[l6 I%2C˓-qfص#|LXxEٕ sL+2/r`!a-P@p)(ŅEG-[(6ҍB"DJ] +]:L?Ӵ@( ? .s_4)rb۪ wQ&F#W0ܝ#ASW2hx5a[_}l#$qSxIɲ8n>Ld` HGKtQ8L.PE^=$,qOJeYpȺ 3V˽|vk4.'Pv_cF"Bpd+Ss3Lݐ_i1٫Ln\G -cD*5oTdM+n~D/ +'ToKF |$摧'I(?—?~>)[w_]Ƃa +atpFbV^[NhFFW0~Wt`JvC&n +HxY\*kwa@܈A҆\Q41B{VH[ZdV_)j{h1Y&K릜Rh9P ɺ66Ԃ`9HT'nlƉ1G e^LtfTܽȔ/⧿/E +TLF?% Bҽ8%yT?K_1?}˿R$SLI;!1hRw\ʪ_ ꇅ}_J{V΋]|[ VKtб!$G~<XJ1:a)|3n_־Z×__3?}|߻ZƔ0W> }봙 `NM8"l_ΊIH%TosلIwCqlB2"*!t.*xlCr?s3NBσ}C.HynT'9ֿ̥WD-&|v ?"I>D, ăX܆E]>E i{'3%~oO}ƿgL]w:]qbrg#{5U߻kC`U˦Ƴq +nzI BCZfM +S䪂zH .3^]gPcѥ;jyL4 jfPLhy=9Ω·gpO?(DOvڨ#߯:g M ^*mm^mwyv dBac)}4hX@7&Vwdceΐ[\xs'x?WsE𚕺X1~ppp-%[r֤p"$kt>2gIX +K}M a^-g텧KB LzԼߑɺ[80]".C(-P xcQBcil+yVdu@aIdRZXF·N=ZȀ6c~r}&mLJ6"/qO_lŋky0~Nߎ;= o@9g@-Ͳ9MAz&H6#l&9E^)"<yMb+U42ow!r?jPA'˄z8hukg,_8Y4A%LSrK;%xC<:>,4K~Oр 5~_DEZoir0J; VfiXdp,k^M%): +iBmi]SF+[99B ++H*7:9uEtpoa)hR~Yz +,G Z{vm#$*`^K?l6ķ Hh|+bmA~[@&鯍;&f `a~>Ưnޜ4}5yl)~dBO6'F'}\is;d>~}>SޘJ~m (߲zW3Ywä rɛ ?2cϨG 'M `B*mg>4N^=mӖzPǘabY~m!neσ/ ?ŊY?l&R}4;'BLfUHʖjK~g<"|g8gl5f][7(٭w]]o'd;؅?\Jw3s^rNwrdH5ƘyvT>a[[ +.:~E5t|#0~2aUJ >L(MsT~$<ʛH3z  $a[JoΆQℯkY;oybJ\ԈeN8]d>ou?c7ƴNͤBGr)V W%܏*;c"J+&—8B(b@Tx^H6lm2-푦VzM}21YTC E"k HĽ{lFT{8X/,Y&]av'vbPAyAn?N٤ɢgttdUӺ@c׻"Z +SހzلL|EP/l#|gBW5%_$-y6cy/tg9=p_}(Z@6]qWrg?3;8_0/ˌ^_]x_}6gh{wLjjrKsK/ =*p^oNӔ4h<g;@oPBʥrBhroQ"V!5|k*|ͳ%rVh1ӾqZ9E7O+W>O+[]Tʁ{x a{rI$> endobj 17 0 obj [/View/Design] endobj 18 0 obj <>>> endobj 43 0 obj [42 0 R] endobj 65 0 obj <> endobj xref +0 66 +0000000004 65535 f +0000000016 00000 n +0000000159 00000 n +0000054125 00000 n +0000000008 00000 f +0000054176 00000 n +0000647611 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000136915 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000647681 00000 n +0000647712 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000647576 00000 n +0000000000 00000 f +0000138445 00000 n +0000647797 00000 n +0000054589 00000 n +0000141429 00000 n +0000138745 00000 n +0000138632 00000 n +0000136977 00000 n +0000137883 00000 n +0000137931 00000 n +0000138516 00000 n +0000138547 00000 n +0000138780 00000 n +0000141503 00000 n +0000141831 00000 n +0000143092 00000 n +0000154151 00000 n +0000219740 00000 n +0000285329 00000 n +0000350918 00000 n +0000416507 00000 n +0000482096 00000 n +0000547685 00000 n +0000613274 00000 n +0000647822 00000 n +trailer +<]>> +startxref +648012 +%%EOF diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw.ai b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw.ai new file mode 100644 index 0000000..bb94c06 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-bw.ai @@ -0,0 +1,2741 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[6 0 R 42 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + bw + + + Adobe Illustrator CC 23.0 (Windows) + 2019-07-10T00:19:54-04:00 + 2019-07-10T00:35:41-04:00 + 2019-07-10T00:35:41-04:00 + + + + 256 + 188 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAvAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXzZ/wA5b/nDrvl1rHyb5du3sbq+gN3ql5AxWYQMxjiiRxunMoxam9KdiaqvkJ55nmM7yM0xbkZS SWLda8utcVZz5Q/PP81PKjoNM8wXMtqlB9RvG+tW/EfshJufAf6hU4q968jf85qaXcGO1866Q1lI aBtS06ssNT1LwOfUQD/Jdz7Yq+hPK3nPyr5r08ah5c1S31O125tA4LoWFQssZo8bf5LqDiqc4qoR 39jLdS2cdzE93CAZrdXUyIDShZAeQrXviqvir5Y/5zB/NbW9P1Kw8k6JeS2UZgW+1aa3cxu5disM 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 uxV2Kv8A/9k= + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:b759eff3-ae99-9542-b199-9bc13a2a40b7 + uuid:2581e1c8-ca34-4ed5-bcec-94e2b3f0af95 + + xmp.iid:78824afc-a992-9845-ac52-4124f79a9a06 + xmp.did:78824afc-a992-9845-ac52-4124f79a9a06 + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + + saved + xmp.iid:d85e71a1-fcb8-c245-b84c-ac268702a414 + 2019-06-24T15:23:01-04:00 + Adobe Illustrator CC 23.0 (Windows) + / + + + saved + xmp.iid:b759eff3-ae99-9542-b199-9bc13a2a40b7 + 2019-07-10T00:19:53-04:00 + Adobe Illustrator CC 23.0 (Windows) + / + + + + Web + Document + 1 + False + False + + 1655.000000 + 1263.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 0 + 0 + 0 + + + RGB Red + RGB + PROCESS + 255 + 0 + 0 + + + RGB Yellow + RGB + PROCESS + 255 + 255 + 0 + + + RGB Green + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blue + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + + + + Grays + 1 + + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + + + + Web Color Group + 1 + + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + + + + + Adobe PDF library 15.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/Thumb 48 0 R/TrimBox[0.0 0.0 1655.0 1263.0]/Type/Page>> endobj 44 0 obj <>stream +HdK\D絊L-`{2UzRV1%}kGJ*s_#_߯?_rKjk߾=,~>{*^9|HO}\gN48-YcT縗rZW:m5c=NOkJց3K߲.-UױZl:9Z%K׿=N=S:-W)O)~C+6Κz9ǣ;r[ITչVK~ Lm5{λT?S&Iۍ$3|FDAik_nLlg[L=@ɳ֕"*s4LQEϴ +* +.{{LrW#IJ+9CZq}jёD9E{ٮG,zq6W,:O_Ckr:ӴFd*9bީ):YsFo^VuVOU`َį1sQ-ZwݟN}{Y^;95 ĩ.mOgЄy~.s>v]`dc&JS b#nCtͽAٖ6ppU5L4' 쀔RŲ`ܷV#.EIޛSZZ Y^Q5{ ²{Igh }ަ )*(qfZ10ȃLwsmHAWu.XuϷG&UD];"JQFfR8w02H: ^ɹnr6qzڗ޲E c[a5.$̓kc =4UEqpCos] e}âmGW"]R5$!8bxȢ,yTaꢽ +䒎IS^7 >E:=M-7$S_ٔy Ԉm;7`L`bLT>{e3_ +bw)Ȓ-ymz#!e"DEeHzxv?K[Ǘ>M)C;F +u򱄡*  zYphĶv^Q3Cz,A;&@"? BajT{~Fl0<#_Ǯo WdSEHDYMfp""s'd뫅SE-dNyG{/pƢhDphwW,m#jlfE\xHQ+T4UF}iE;lO'Z I&aU$KʒsXdU"n/R:vIC[5Vllu&7B@;Eq/xgDpm2صjFƦmf,rI#삢B2}SYgts4QVt =CR>Y,!Xo{E"8 W@!=~˒6rvk^8YzL:}e`ciꪹ$Y+f(Ri@џSI{ ޛ"ENmےVStJ5lj.Y8 ضtD0V5aB5Beiu症ς}BHYާC,^C{K'mX^i 1~X2xh_*}`̖Ԧ RS(ةQFB}:x|݌ۇ뀪SMZyb DZ,]o[SN ]v)-JӹMK@PZzw65- +*.:kzbJ·qs)B$G()D^>cbANQ#guOdj+FfY#?gZi4Gqt)T#Lc<oi8a&7;ŭ戺H,0Ji;zgB^ [6x' ] {wGpKRL¦'l 7xKNT5sn lz'F1ƖhNtSIXW;-ϸ_#ڵ7W2o]-Ds@4 ME-١"V$4S/(!?O &XJq}˟7"W :I/"d3dM⧉,] }/7}gIP[~D]E D^ztCᩲcLVCGrS3 &ǒr`APN ܈QCg8aݣ[\SGB&jpV)Q#9x=q;AWo?GEW'0&,?zZ#c8s]\)bEd_C ޯAhߺ~Fɠjml9MC DEKkK'V>ďM3a=*ojZhCk3'r(ĭԨ٤Oy\`Axf">}SCeJq2ɖסܫ ?b+i=5#.<)Q$&s +2GKN]G>Z4 +e+H@8 &D^%:3`S b֔85/ V J8 Tl-=qLi!(7Qq h͜9sN+U-RkEMGّM{$\gB<[q1'*86v ?9Ј"%ja|z +#xQȉ}CJyNBy^yywO+r8m}6wji3 +M9FH9L'K:`>t.:`|?Z{@Чg6*01 >bjXAsiE^5vT,=TַLt|_:zVqmɮNMX{,S[Wt?h|XUm M%Λ*;Πi(%Ԕ،6F +p#Sj(rb^@yBqQsGisO k6*՞v۠ܔ#O*m\m<1#ރչN=*W *-|KxMIxؤBz] +vo_zah&ZF9qK+65BERL;cd ;*U)Iܩ Tc0ݏxUY""gր7BC=(ʗ=3ytdJJ$x;gL0 yVW g)&O3Vΐtѽqi*)QcWF+qUKԹE]$fyEKL#IoO/yNFjU} xwu$ +A0lwfA$5#?7j MB$lIa3(][)ƪF3Q\ oDz-\/_kbK-4u>j\LCzCvO3tO6< HY,y%}I\L3bbc߸ɈԐTZ৤:b|TF x]e+pLs~#|r55b<-;$Q +s+>蘉BG=#9;]("VvnNX:Y7p xޮȊ}'ŭ-+'#!weeݻH\= ɇ`w%7-ښأF))w +:ܿd7%/)n8#cܨ{63vҮ'Tc{(w4f3`sVD[au^/h#SlTQIrSo:"1vw-wǘ8;ޒHWb*Ywqg@^_K#ѷT'1{[iQ-2oDA#Ȁ}7NY.qvIux=CfM:cNӳNssa }w6ޱe7]GZyV7; JifZ?N|rLj]{y2xmn=OH}Q{5]h+|W~޲VXӒ +q]L!扪#$g#އvG6@(e.7佸|]P~b> ͯ26R2"9FgRAD?7\ܗLPG>I9ǕɐXKwZ}SAtYd|G f9d60]B?bm _^x?qdঌdzqEIL*9ఱ-': г+Z7=B>gk3#&tQ)x]윙8=302123HoqL%35̚OiXu8%:dm$K$E}U?^qJV-k|t 򋾘J/FVK0,㾦!:ti&y| Iӻ)uKd*κz_ Xm$lZRs6e;Jfi6\}柣&sx)d쩡Y$U3F/ҵGvdA"#ˎJtbwҋvKfL@ &vJjQQ4w3C֫H?QX(CUH)"0:]*[41ЎЧbK?Gh~1ƭӜ2zSLcZIC[( hRL Z*2[)&(xJ¼[b:hrpCPcq.jN=CƨDIi֖xo@|a)pIPR3Q^e׳7tHã]6.Dzis& TCePLz6 _66X&q,ђ3JrYKu]e+yS-VӍ٪ccr,7&(#?Ͳ)9P asƼ&pȷ}X*bTNn`+9?ԯd8_'+)\Z2̲L$qUD?yW94=Pi$yN`U:R>Kb]W rnƺ"Icr[tZU>؅o*S`# +@^NdּerhY-j `;}qy2p|DPVH.ZD\ױKdBu%"pG<9;@^[4ȧb(Qv@`6G6OJYy;ql+#0m>7 @fz/DGڟ=VK(PoJ.d\VA`SmU,1.;i о'  q(f"P.ך9}-'+EJKG 7Gս/km9xm>xO9+65kP] =- ;5<-0(Zi=*H 5:A~!,;0<]lo){b)y6*ۤ>)43Nubu,ezLթL&5UW8LK̵9F#תU ^E^vuc_54ia@@ +KN>WfM͵ AWU8QZߤ] +8٢DyjVZiKYȵdA3Rp'hHtȖ0M )JxbbOfU' U=uT@ +uSHPM[e>dPJb(nJ63霂M::T@(@hj^Z~/:6RUXY=NTtɃ2H0GȨL`/vI1z-dtHģ)4d2 5BsN^81U +r/ed ѽNȒ);Zf}{DiWI!Etq9TKXOhݢIS7rHՠ%Z *ܘCY-ob#/'SDhO弧d.a^CyKք ㊓aJ{@fH6>VBB;{_%lK^ +(6<& AUV,^G/H8QAЌm?GhRӚ68@-{frW©paCVzNV` +ǁ{ʠp$:VNńpJY lr8 @+HtxMUvLpCȩd| +` +VMM +nRqnN8 ee\>bW4Xߺ)gt~3]S,]^ܴ}}Cñrn}";kKH93[kIw>lcٸT`C;i^?@ |b7K=Ԁ" %zn?Nw9Eg?=̏0T8 J&u] )uH*:Z +΄{N $*'cF"toZ:(| tt3O1QĽiBC|ơ֚ /trk9v g<^/;n=ϡ_=!hoJצKmm%x<Xnegt&E֫j8w-7y'!i3ѷ ]w7b#ﲼ/?!Wc5DFӁӐvd:Ô |- Z׭w.n2Oy>;^xдcDviܖQ$}1/alII4s6zҁ qN-!ӯB2@[^u)b1҆Ok _N|dHT|TgVgx{~aܪZ8dk=p?mQ9]l%VLԲFi$kn{xnjyOƄTO|f'LOnIhcrM̉5&CUNPh7 ɁûGq_3N Bdx&5B!C_=(k婩sb˧sXم^!7'Yy%, KAi?)=5B A<6UO15b5`~Qp{?9uvyPݗVm섔=zA]}4nY'~PzwE{@۷-Y w~zm?Tz n.%) ػ9ݴҸZix+*>Qjd_U*_ߝkRtwy~sx |i0KMOSSֱWZϫX@mu zVXW8gP'<Ç@y˩nX]@&P"%bGg.q[+$DֆJ!iNShG}Dz C؁ +^VGPhWk  |(*UV>NUx3EweOպåj$vW!p2] fm¤  +?ʙVhFrKHgA &.`ĸae<_sIym,~|-{Jt <8qV`ӛHw4i˥uˊ)j~@1S]e Wk):Ul֤Q7rV"w>~خS-)6&#ueZcf?ח]WHv\";W֕ Wl +JK0˂xU\{ز@,vʵ,hsEZKNVSG9+RTcAHo5.]b=kN5N4jGaeGN;x]v|YkNWKȥM `gN<.L15aS- ȭ5y;H/.XØ7nnI K^db=>)q-^)tʧ2\VOLKuDF OY`zEh&Bi' e}81܋]@}O4;,**{aekor}ؑ!oC&Ww1m+Q)ײ^lFG֤Ŧ~0hUevYMwٿtm_WyR[*ϵÒ㋑mUV1q>[k6[W+_nnIwdVٶߎNr3F^ Wy4]򬺴rWQփjy7,ϳDLlr'}T[b8:4oRtؐ~>g̮e׉˟5>_Mpٔ[CeCp@)0PCwn33~C+g~G6>3/D=mSTO_Zhեs<ܯ4h/wTw *DQ$\FCv(|wwwk̂n2vAfK: ]WoOԐC=6jo QYr0JGzџl3A]A埿n~Co7Ih ڹT秃FQvj} 4P[c;P$,lqC.{26B X@`QDa +9v; +fMv>7+&r$ B\[΅IÿHyCz`9'?6;>DkD۹Khc{t=?Y/% \=I>DSyCs]>O"gϿ.+KwaƲo·#-;Z|Xz)34`3c8$aW<\rMl\hwϽdߜ 7٥drޱU':ODy@rL3zT06Aia7R)[Gs +` ${MV*ɰ&HL'ޢaUMi +Ka[(lNʬFõʿ 7GnwEPLp-' +H4ހ +%%"mx ъZܩh,}ixqȿg_v=dcI:&q _е<8/:3VXt!;agv/-^_:V>ial.H"=xҪtld_8J Tvy{+%ilu9Y/:YHs`6Q/c, [^)lI4_ @.I[7,⧜Z䵂:?/=5I["mY[]T Y Qɝix;qvArFG?@؟b ;[gdqNt^=mY;sKs2LEY)t|M6+~ڎi+uMo0}NOލBn=WA (9r_D"r'˜ +]rwlކp98롍j|Hc"A/S^2(m KE6d%}Ym0rb t`Vꕚf̰DzU=@ dAoC“d|'6_UP*c⬔'cȀNHZHղSH3,DxG-DmSV[Ij;֊2r=c*5ZX*^zܖ0j f9edgQS3•E3؈ޣ+L)ytq=G_XleQs +mg*qmWh-ܝThLwX[a+LVM' Z0[mmhY̱` }#v6oH+UzPC:;T>M$bVEil&~)l+#-P~< }g`h<ؑ0<6D=R+ #L>`8Ed"%,M&mxi]Ge+aubWG3sYγٗ4onpk< +jbтm*+Z +i)L; 8Lj~GS2LV^GEVXU@!땥R6e06nJ0 3Kx $O-jJwi&[.SmN.!\T2@;[oi&+5tR :ِݴklp2@v<:";r6:n(? i퓧oϡ3`qGUq\ peΗXvS-޽"Ͻ'\4z1).B4?=%/^HAlʬ,M-f4 z!̈́ +%~x1Q"mQ[:͸YSX_ Km=BObo-'v- `Nj`{7ys+^yQW8JƉkrk-Ii~k&X?m(-ϗ0kl +f\#+%man;0k KgVñpY07ɍh&\4 tx♈1גtkv:mY{h c9c24;o -"pňG?N^c:fz<ᣐj-2M20%xQɪp{,703.xLDڥ` , cZВ^+pwceێ |M3DG` /uoŴ!҈y1x$&}Vw} Lh $n^ ߒ~(<^9׾\C[&oӺ5ymCV/=zPSs {VfBRuYl|ʦ-WI߹a) +Q{'C'['\UN*z&1v껺vkY-T ?T)ckI|p٭ϲ8y +a_i˩g /s7W%5}KHML|Ol?݋覾kYەCt.!w'4Ԇ}—sJ֏b[->߸b:\OxxNt;ťo-aB-q/ .oI >AUoD/UQ^)YL)Qj\S要U\ŻjJa NMADqsb1Nl)% /Bwuyc(Z*d[dsjy5ZZ! +.w (݄QWRp.Fu0bi ) 8gyȚ=%40oge_U HW?). Th1k2Rڧrd&7 #Diϓj*Ve:V^RH:4uS O{Hs;PS\Dz dLSVoܦlc;nKrC}u5Gu۰͙'arnloQ|{*D6L6eG0- +5AZﰏn֝+Y;lo*za؅ޟmOHGlw~֎*V hmdWFrxlA+{=P {Q̔GЄcD3G\V*(yKO,ﮨ^^k5z, 9ܲgGzl:6^S^\%yZsSA~OOuоv & +)m",=i-"#|?eQ>}2gNAݞq7>Mb79XqFdP1wV'5}uAf2FƗA*hB|.O% o_ E6(7B^5djiͤX3.dfZy~mB9xIrv+7:*ymztITOwtƱPL'.Vq%XS !3Ҋm3#yK1iZuHvT2j$ ui֓5@횠fz;y(zw AP2Nzu jfCStz~ g`C{MY-Xu!GOS.i2@T +hm:`e2nە2$*p$% \L~ +$aCih]U$E; U2$wm@^);B$ ‚5Bh4G%LHM4W]_S]2$sQC~Trf¯e t%z$@{5jYϸIhʰd@u7jί+WȔ?(.0r5ܙGVtP` ?:h~vYe:m4W?|G}%t&1[MќGtLfUeMz>|- C:mẃ™xR(belH35@H)9jٺI4#TO;pPL3WpB ;f6|f- fK7e}Qڋdƛ +;==ϔ%V-8QǦ;J2.H9og bJB4\Ԑ$[yVP&k!`lI|@X44apXEA@)mުRx^Yy%J3|`)1jmSƐRea}}rs?x:y?_k;̿0]نNlquUeCz^qrQv"$mSޮ9©{V7R`"^WJ-,x^9.`/f +R`!aUv7老Ky$ByضeJZ4Ѩ($X vWڨ~(iUL uO}?I.U[փDoబx &E=ȦeҥM7ZH bvJTb$ENE)OAEr%|ip[Gٺgs=}Iw$-Q{a\ 9z>e,O37ނt8M+a51ON%WjrwL[xiJ5*5\HV(]jر*Gq_]Πw5]9J-'0Ru-23#XdR?V@8M2MZp9ZR ZKlciZ>u+>>Lp\W=n Mȗou8 iJe>)KN5ϮK17nmPmnD uw$q`ÍeEr?} ^)b;JcC^7A^сA +)af_#7a ]aVo̓X,sZ Ҋ"[8Z-pZiy}2_tK.leOZ$jHΖՒ̯ؐ/kWeKHfQVBm`*i}cԋ +0""&'_pɪV+B.#VpݼZU`BPp 4Zv J$ MxuٮV~ FalIq]TvIưjh\u9Gph:!uQ + 9ݵy_lK~m40E[ +EJ!`]$u)T(xP'S!aӇрJ ]g# ܬND2xFm\D?zM4"w3? ?0L:QEnNu- +\l.[|?h Pʱն 3O4;=OA0lrpGL6 \57}\=V+gu}X|78?iJ/q0fxϭz2[=}1l&i +~v+g5|O;SCznc]k/ّunKQM2MN6(h*/P\^d3jS;iXUaAg"Hiݖp줗w;*:A#*兦oR˱%%1#̹lR3+XY[IE7$9%*Q^ނ&̲ĵ4/wW#є(s|Boj`>u€s܀f7Z]fX >ww-o2+˯`)?T$L<ە51(:  YfEZxZLCWsV!Âi[#ݜ[sٰv]m)ҤMȢrr)O[h}N#xâݯmXhAB~!50hl7ЖQ.Vr-ϕ!VӸP֩`(s^➓HwP^+ГfjVS)ÝF +kvN Zdh\xhP!Cʩ+WBdW6qD̻5H]]dq::`){CUJbŶ +I.*\Q:NEd%mIыi?U+RT $BU\m|'շZۇr*r$Gb辬xNOSiLzVL~"yOS{Mzg(=V Bສi:jBVƮ#Vê-g@$M u\ |Oj.>C 1߿_zNb6);ș&wYApyͦITgdpZ\ģ?I"U|!gpp'$4)LqȩS΀lь{fpCf#x;UA1OK+Q)?>z@zTY/lf։#^\ū/h UJ6Rb+fX:GTADonH{]q/oun^7kv!jsE^8;bD#,>)p29vR9.nhT/,m7]bIQU('YR-F J +Y# hczDQR"S=7=_dU.1I+>M/W^WGDjdsG,KI곎 .hDlc'='V"̓8q6= +)I)V6ϽMuݗixedqvd>!φ5ʫٷó +^8X)6SZ'YG >i 6ٮo]!z66W׵Lh K] YiFbsFUfj+iq ǻ)s\GaM9=!opV % QbP3@W(VNw…znyʫ&Fb/ol\>졊ĈyVϱzhG˷FB>f3=J:j^Xb-_`3)Λ'^~4l +r9ʜ?^oŲ"3ǝ#aW{h;'pV'`zo$9=tp(Nb. >.>d$`Kp}- u/q-呦!{{ 3{ =MFA`T$Hmx: Ʃ=zK?;Fgd[EP~ͼ}Fl# 7^o#n(+A^F}۹ut4RN/o-"u[`Oh/2w!GFMFzf_r3;%6LǓN*l2ˋla@XvE8%"MfVјZ|tO*#6廵 9u}x(3f%Ks+G%S}"l/ɦع *7@1rv'TE:?KO6w2SG噙q{0#$^Ϲ챎] =#/ҚC"nwoVOB;t8움5:}uf Ё#m-ByQuX)O9cy*u,翿n7ջB!7b.i]#^1VyPqьȃmWVCS +|AqǦ0Lv0__f2ֈSז9D[2y% 7C_7( +d -VYƌh2Fy%PcAhjߗ4Hy0WUgGP.}.òŦɝ)9(y +j6lO9J O|=EyO.!b$(4"4#yqWJ̄nCw-SSQ[5y~TJڈkZNG4/,]_̄}G4}Kw ̰9rjm8W0ɬ{U$kR0߂@|YD4[uYXSʖk߆f6^e^'|PY CR?&lj#*˛!@l]`!B27-;{uy\Iv$A)FDY0Q?YwK_:P a Z{`xC +\@egwUГ1_ug^ ~&\{aM5fU ?J5*l ǖ)*D-۟__CvVđ*i} +$o_#uGY`W>Rṝr0Lz+MNUCg[eS7 s#}$fa|AHd`-Wh{K2SZ??;2'?E"yר #$WID.9Ji0;rf +[]VQ`( le1[qn9ۍZ)jcg[-0WBK@)EST n - h1p]PC@ҷdu-#eۺbܭMVapxݻ Y#o?ڳ Z=\8ڮͣ%cш\ji&4UM"kOV|_N}+@Tϰv >q&;H=ݢ/~;vOrSNe7Շ L6kl)v.T4x]Sf8!z|Xv``dXΫg4v}P]266ffS4u)5H2l\v'C:^ԖvCnkCc+brY=\)pEwZiX=Zd|u_w +s)`Hv|\A,<;5w)іRk7#2,0..=@[qCUQxԈڥ?:gJU:2p +JAz2- 6EAsMcRcϏ n|a1n(СNh/0P^ӪYҞC+C +T+xmR F h=]9 _mk|I5<=ey-{iK_:z +/ծD itZ(z:`Um++1K2ۺnA .b='O6ؒJ<5nf{.$ˁ6I>)YC)9j` f&\>‘Fd%8v$QɑGE) +c Iq(wS[Hixjf2{56P:9sFi\)ph ,1m]nO%C9OJl1m4IFjd^mw+v$TLÖQTO-zrmWu^s":o/ժK,#%<*~т3Do)}tK " /+z c ,hT=TIE2M&xf4$Eoп#ŏ#9Uk6"5\sɵyu*0[jHr)zE"+a[Z8Ϩc<##[". GhӘh?&H7eF9ϢHxsɹ}D06);%VֿYr8PG%u˩7 mք PK)D) E3_?~ $%T-[^IcQ(CO^[ +4iw;l)Gj[A)m3+@h4ť+.\1W2o׻'$]:/ AFPM@`vv,<% 羡Dy1xf WnUI@ mP4αKkpC ^p% +L]oL,> V ss xK>͘@t+6D҃D]zW%yo#õ|-!w>jG wP&*E(0F| F>~`~'-7w~80f۾ @>XS*WHwJp-S=O_5WL<TAo&N3M,c4J3 lvMD.")߹H*U`VPҩ[QS[8\H3 a80@`ٰD7`Jpvj;t{+fkot+3Wzo^ER"G]@#<キF7鸞üM 7Rj3rU˯xGgO*+ Uᝆ9%YsL0$YH|']XWsJqGh A&c8|й.X$-N`xDrRn5DF*76zj(E +oi9HI#%- q BIm͝Z= +x  \,6'T*;o nj`VzTbX4=bT {~^A RY""!}SZ&᫒:ElU|K >/K"n۲RJV {-r=.HjIVZ V Y> B;UEDZnݿ"*v8e=i%K u4ԗs\quSQ'u%));q#Q?U)d +O !.="C98|PXlzuf×|m mh{Uf7QME+,6Lv ~!0x7]ʵ)ôɂVh6M}A)ʙ碰$ĄRy)aƦrduPqwnј ߖh +\ ѿmt^`^NGnm )5T춣""`rmhQIn| +@ڲŎ6nCgδ\{AL&inc|fxy/􌿦/̶*а׽lm +mMlQ֮aăQrVz'2hַNY0F-f:n*WmLS}DDzΝWt[uL71\ݰN9g0|-@8xol8Qk.c9r + +Y^,{P_S,[vBve&8 [Z6aԆ"wEmTbG=b3)5c,'yS'돨 +Cq%sE ps([ bU tlv)"cΉc2JcӊB # *M5o!#ԛ&TCGf>PB<pP)K:GY"L"B',!VMBF7o_zR@M2 x +LDӝ#JI(L2CDܞΏ +jK&$DF%GODPn8"q(ݸ+hArBdrn7" +2|Yͤ[8Ku8blHw9Tl)ku&Z_{QI"9A3 VR'G&܄f῁tPYto:^5B>ML!WTgC8vQ#3lo*Qe:F~:ĵPs:6|b |z?^&GgERm9:|.} WxcO';x~+NJ| ]-6|˄NH\ +FoxօY]r.F=SfΓF;%:[,FVUAmUfѕojjj*%ddI2k>^K zw4Zi![f^rׄJuj5~6?F5"wS wф[92lV 9 +pYab`Q3"Bwq97xU!Ż9~2 ްydp {=ebE].?Tf0\P5ߪ"[F:q wOB#.=$qu{%Lj"N#bE-agQwTAZO˹qc+" _}W?|NA`4pagt:1 C?zzרO?AD٥ڦ8cE(<=H'!n>=qU ƒZ;!+Vʮt"O6Q95NKb@3df Ry[ڲo+$ړвen9RuP易{|Wj!Zwa[YYo &ucZyCsܨ +OϛP*b&J2^\_KTJw.l v4\oUE7N`"]u]xL6ӃOHcY)\ aoqF VL; 5/S8u \'iy@GNHip; kiçU\ve@Gxv^->nحcXF9߲Ne!tYfE]BIGhyzVk?#J[G놏{+ OyGlD +aNfdst|%.R +q$\uh"&dװƂ ;".İ[RQ[ء#X ΚhO*V+:Pm( Y]oy`k +yuWZsxI\NE&n!}#ג3 ip2фu.]ۭJ\=KA@-oG`p#\=A78+  -~ӹU0_g$Wx[%ذ`"b,X@כJ1,ƱjyF\b5 ;LJ&rǶ!u5zc IM3]I8-Sw\;[sP~Is!Nɓ_ׇ|ڥ 50?u 'jnr-S2K֊\ݴxקʮr fͺ~n4C Pر%NkX#|-^`dr\YFNU(ZIcLPFdحlp MX G$EMt' w *03Hqj)[^Ld=} p<cR`mS)a +,,p#DAoBpdu-rjQMGvMO=O 28=x qy 5c /:쉼jix(JyW&bzhIyx*{@,z3˵/=409m{z 7m DzT5@)RE,ڣ +qݜq?5O6"ބ.>UOꂞd Ku;/9#@&xJĻvC l+A8 rC`g?RAD48JNH̕Q1`Ɂ?(n3MF3U,+Kz5},eP;.7sƒϭpF.)0EKpo47[ ;K]ԩf-t+B7{{_˜ +w1ӛsZJ4;ߎYUet"=KkDnbgz*@3<ܔ3S>y^2P/>bmDDX{s|kRy*i8Xh'ӒG@viٟ o&Typ@T+e82;4|CJq*5Rb`þ ' Q&E] DgφB>-o !G%o`Va,םDDЛ%ehxH OS"dq+ٗ=wEq ji +Ck${Gـz V^Qq@۰ 7\*iwh^-`EC)ƔG! +"~]z8 3顨Pf[i xS*KA|$CS +% C!i-ϠۙdЇgQC;w8XJkJ-ʰ O*.mG;Q?FWЄ&QDJQӐ {K=˶G*Lܥ('AߐNY/cnAò ؟s;։OFNn3s:? +yؽ!D&3:/}[{}j(Nsk@{m(pcX_LUp[FE8tjVۉI޷1?w _h 8=.}˂ yJDݲ^|ч9Ґb&Y fV9Lf͓̼a{Sur&ISW\j)C*W(ʰ+ᩣ/"]l T kc8Pgo2Zr\<| +] BS&4!嶉 Cy5lF/±3^ғ$uC#6T`Xf2bUs]8?3irN@+}f U47|00 a.2, vw5_$jd]Pw VdfuވG>Oax[ |sif~h~CE+wP+cm+P;*\(O.#֘^ W̉T.Pu;qTP`iBPd w&xPIo/,~sTikCBߏ^|T( ,jKIN>Cxqdfyqr7RF;{~?z?VpTB2ɪ@)!^_dJ{ %}_I ': phE-, +8X:7elao=g7x[|zzRwOsx6t۷Iu|âK &l*;Փ~}JHU!r;3D`4͙|4nL@*[Ř1PrBKKA$k7P&!ܾ|p%<!ÉhcP4$1̵gV:WWEjĝm`(^d]}zс TJ!2Vvtd 3+"ӪN/8g(f/M+Cs%x"ŷx+* (RApXފ+QیaX\+=+zCN?:V@h|,51 J9oNj57/ Ocw{kMJ~y;ak>ܕӗo_8|a8*CA7MXcX!TEӘ9 @QW;Yެ#8(yB*[Pw;˵?W@5A4>W[y*3[ ;]027x'}}qzgj{'0GST[N<]&az_U/r wR50`/R7+adJV$@T$^ҋ/QVhA`6ִ7͟S2?VGqMv-u9:޲ v^( +/ZZ\5^&z\kRh(n:WWYZn|hsf}Q ^+2@t8賣Cǰ.y W4q^5?Q1?%.pvo7;.D +akD>h5ֶa0i +׷'y-%=y2GZ0{ +jYkwe)P ύ)y i{V\,b0(l +_ \Ts.rưfe qe;nmB2Lv_f.FczrMFIXuWE6?1 mm>ɖ罡'U<ݝLޞ"C:Ge3uUclru:*z]]OC$˶,QdU&nz +AƸ~_uv~`MRG204W&%C`57ބAӖu;~"rUS!6|sVH}nh[h3`KE`u R +TB 7$YwgΧwBۨѸ*QwpP,}I{@ 8T!+Vc8†6 Vhl@(Q#`zKXS)to$'ygTL5Ry_C4k؇LǡK -U9 |ɟ40vEq,H ~N\Dt&OO˗ԚSݑSKv[uZL?oj ]RY4U &lU$Ė-|ٗrPErDQfE<#T,+_Oe +>3Ҫ'Ԩp+ƚH)˃-\ePAJ,r-#Hy,`9F!$/_|R%i% Pgf _ 8%]Z,oR#e#.yBGg?u.-&7Np*7|,[ʥ%Pǧǁyv,2hjn *ڐ9{Q|I:5>l_fW+"ܺcP-'+<F|1i%XӧVP'_lTxW|5tZntQC;2VS ^nW*bw|[jngFE^J_7|X_ߨ"h_72P%ik϶ṬGQ>~!­GkԳ9FXJVxuF [7uGe=.NI'j&u}fw (ǸK>U,Yg`ۡO2 +VzSg U)0P@?v<Ԯ5#C1tR#j֋h:5 ,gD 1;;8 ^ik'4$#eymuǎFU6_W8 "N2(E5dU痔̼ +}ͭQg NN>Hr(-g1T7=0D{@)ac,?5XKrt#߰~~k0=2r^~FUfXM 7\,D1eHsw2. +( +Ww "" {˪'lkˮ4+R,k~PugfH'gQ.9f d10,f<Qψ"~S${7^eϏfhۣv;Q-CTjqFkqlGg=,-@AكB6Smnybn a + #3.S&Qi>O(\mVHv${Dn@NDcV5|Qdn* nOkG<FQMjPƈq zDN$Po}YgTʌI[1X.!sa/jțѸ߬@=W8HPw<}kQzzrb,F/Ҳ["Է_]1{Wvi`v%߀D[Z\4-df:@pzgw1coSONtPDΗshdFѷr7ߥK ~Ij7p|rh;C7rwU ti5gDEYߕ9ʚjRsJJ˖HTCdHE# +zʶ[13SZOر RMo5]dICZ6P +2ExTx?4P/I}U?Q{}в`êy3oU?Q.PX '~xsniَ~Z?/DVzK 8BW*'W GO i ]?Q$u'œ%S;V4c-Sңgi.Msxan;}s: =V޶MB24x J[+F";_E z6J`&P'&KPj ]]t&/պHkIݻ-UKKVVAM(8S<ֵH"]gE (PbQY(=a]M1K~vzgAͬ Tլ||<" J-kt䵟oS%`!Q2fϏ'˥+ʘ\f~QGHR/@&eb ^-2mj b,].Yp z:V/IjrDbnd7$H놈9kv&ĺ uWq(ES4h}DCWx X҂c"`KRfH)5UJw-{@P{yVX?EwjV׃5m|bR5O()YRϏj>2uBNķuwLjrqb] Tui3$Yg~yTV.գPP&W8ɳQo,B je?s)0V7,^>U[&gM&LY|tE??h VJ,SgG`xb93A8XjyZB{=*UZFF/ːÖ +McO+P)ln]LTm{S[e|I4Ҩ.TR(6TLL#kTNE 5;1ќ1Y4ڰpf U`D_=sTiVXZ/|\5pL+T6h&nu +'d3h2xʛ3R;̪tPZ맥Y#>E=0/Ol.<8,P*+Gj6F >(UPPNjJp/Gr1QƓ܀{ J2P@Ӟ˿#̋AFcծyv'b$~Ч9 +Mq]ܹ>!5hj.nRjM}ww)ᅨ=bLmRGrU«wkk^*.HPV':1LfY˞з6K*Z} Xc(w4yDw6cHyRF 솦w +bݡ  XF͗D1#" ,HlbiU=K m_ + a}#z6+<$ |vQm@UWk嵩bzyΎ83 rZ)6 QؾnqX490Cmy@-&O-*>Y6ZWl-|Qhv_'(7ک(B+}U>PV$$YȈE{gQtΰ Bg*ꎦq\xh S-z6v.b0tYکD)Hߨ4Ϙ6pHnShi?R;-."c7\xRm/8Uz)b {k{=%s[`༻q 6;rϋW`!ǺA {( ZH՞kW ؼAH3 +2s*|復biT%5{Sq^qz/8{I NLVOv#( Y-6XU[wDJ'Ѵ(HOߣnI +)w .X`f +eQhL@_]%y=`ɲRbi7CMdKBc6Q"rTܚ@81F@<(X4D(`X;>)M!MbmYKLb"^L ҋ#5H]O;T:h-Q;j(އf1Gi?rԐ+҇e݋]]8+vQ%gwņ@=m=Ϫw&%!ۧ$S5I:bZbۆ5 Y-/,~97jJ] WWHI7}܉ڞ:75N\DhB*::tG>IC\IAǂ=3\f6I~cZ$ ⺞RU S?uBF2=謴 +#Ӛ4~Fįj?7Xv>u%5o]D7#,<- yz ޖ{Z dTaEowa﵌-HYcI#rdͷan*gu c@O/?6ѡ~@yXs0B 3oH +եuԡƖȕ6!󑿝/R|djzձ"R20:BҵTV'wvoj ץЁ"BQ3`/mC/%_b؃*Dt4ҐH,t58eڄBTID: 4?*%d4ܹ+[n^rڃf阠_.DDlLz(XAN5o2MY9\O3 ",~붿@:x层ԿC̋1!N-olg|T4o~JLqVݽoLN~6kcEo{ׅ~pZ$))t(oR&7ζf2 os}$5 mqmFܾŽXl ɑxh2+ՙɶ8(l$W /o0yI&'yܣCm#w8Lt>ydU &yT쁦uрPU,>&<Ŷ#@Hj}%QN3/cZGIMeVҧSE YRFK*if#JMr#NwB}"o:0P!9JMrodkWJQY_uS|*PF.51el>ptH @Nc%f 1VV‘bbԽѿcj^xZI*x6+ +۟l- #I}<zj+hrxf+E}us\-ЛI!Ew¦>*LEXmgqS3 +Z{;w#eq#66mPωb1`_A#Ú2濚';]KPw)hl;%FgSm[`INtc*(HfGHjD%#tt_ Mڹ֕2X]0t2XߕD^?ϛ5ՙae dE(oL7Pa Fm&55jt9t:LjȦ>YRD")eTaRqP]Y$[*^a*b H&j[$aw)B,h, +/_:#E_c/Tr8B{{{gd ?"~L7x҇wAXk@+aԩR-*8T"w??55 ?4O):}KQp) >0l1VPLH/%ZFd򊬮w lէHrFa>DlLJϭ8(#s.$Rnh${Q=)35Wf>niHDavUb%,k0\"!,\Arɮt )Ga +ÖkFx9pek9 -X9Ux񱒶HԿ9΋w,xz"&Ic^6g[g'$<ܯWN / >%(Ys;JAC(xQy,._"Lñ''ހ_Twܽc<\Ȳ]ބo4+Q/qD/љsc<,#۠V?^rS$ ӎی ZFDQ3̲xnyqp^H9Y&\{:(~.聝hޖfuI ]3 >U3f͜?": ''rrDyaPC|M ?2* dWz*0٧fe;Jvnqi+`[ ٩E 츳-QŢyk7x;B(\۩M[aFaWE5xAKzxrCrP8 H՚͊#P +E1:ҷB`1$C Y"p?d + =B#>'oj]AvBfwE?~Eµ2?Ǖӓ$ vJ9pt-_a8]ѥI/Cr&-` :ѤiK@b,؜ZV%>Mu?!K-nj78X>M>qaA2`{ D $aV9'|1PO ]uB8P|~)e{K[9_XS7/Z|sUmrŵ+Y6[] {5[dy/7IfҨJ.r(uc_b<6տ|||vDBo8 tjoY4=Jg?fvBXI .Nеv;f o?}*XohF Fn{/.w!#)5 #$g"ȶ[J/5yh\ 8Ǭץڄ-!r*5~sҬOR)=w{~'ݡcTכ=Z6I ? ^&ޭIN=zun{!༽\)V"0*de_-@aV~N|,2JMeZu63r/8\ﵟoK_Դ"#*Dh0] +vG} l]?eի5.zsٔ!|sHm`+F;CECV+kA۳zYkP(C-LgJ^ɫB3%յrg~mH J.:i=4rHV6i8w(K% oGFV;pGT~ +W֝.4;}*mʵ/fgoDvq) c'p_4G72&__0T[E Ph9Pm7sh7W߂X]&mˎh|:,]f˻ <^6%soSd5V3IXJ&N%)6B lY^_ ɉI]~TGRG\@쾝ZukϚ@b*\6F4d-ٟܖEd+X*စbKb6IO@\W5lHG ?t _sR8DYd o1 +q놄^,xg 3  v_f@q׹“ᥑlYV2,{ +Y`ݙ$| )_Y}k+/٫'&.$Kn^EDkVɢJEk1Mw/|WX~X X5bRDM8@NopCU7jRZF^y  ,pÑ=o&zA,"9J8QO/+ҠugʵL-m>6J@rW]*7C&iCbAkH=7XZH<Z& }O pSܗrd)84h[aMʴ7j]BSR|_|zS5UMlrқFFtoG٪-Gxkk)9\88D&f1ٍ7Nr$Zyo(;0߼1τ.Efi[_R!^S m}[|?3^Ts_TOCw\ͮ +Hϒь/MA]N#Wy;?B8Rl@|l2A+UG>AsNIKzU}(V@:u:mY#P[j)pJVz͉A%FKVZl>GO{Oii= iNgVͣiyPw_ݠHO;x-Y>1ŞXKl0#Hj!5k/Oْh Š];;ɦӷ4QedUץ c'%IBP^+dH8N+4A?W( |&:-ޜuEfhbHՋkKG^?{qTN)״Ҵj,ЗU}4~AF{ I5sY]T&~͂J݋'m-_ CZ.毑[ ujT6s,v&KwԦA9uKAZ-fH5Key2v\VȸAVyE +}MZe/Bvpu$ߗP]W`&7'ӬM$eDE00Tn]Q]r+h6Ё^p*X*}F*|/[2'ʶ$I_MM<>@N脨IvI{Df:iyt.EQM+>K)S* +$Lx>d8r6n7|Yh(]/um)o(Bb#Bk}9.͟kv||:A_^p} O`+ݠZZ+I[3>d9}Qvj We=!QR +7T[ 9i!H& VHW8Rd* vjgbSDUS}hLz +>־Чh 8eP<M>bQjm5 V0xJFDd)X;T@]P"K݌A+7#p7ciWӄH_Z۳dtj7Z[:(!`P(^3fJy(]3L QlV4 (z;!^׬!1^a ̯-"[y2U;qA *`wwf$]hRMᰂsO5 ~@2bMC +`.$?.E`L,*6+J +MlAo$D(2!r(L:b:*T_z2KLzձ9^Vs\$M5213/l}Zӛ2Ô4cl|u֟;,sWp(|_y i.hJ%|B#)Oaj-udRQC]ew Ap}.20wҵD}N|r_7xv?WsVT0[&09l;o29^{D +׃Hn/CYw^H`Lo]gGKsˋ.ʻ=|Vw! љ j4׶Zh[hvW?5 eJS"+䕻if3ON0rGabc.%|Mk[C{~uOr&kn,e`!W|MB13 K.ݼn= +`_n*Zh@Vv|#1\ kkrau•xJU wi\މ|Wy 9=tE=u٣0I= +;+2Sbs/r J)Q2֟ka2ڭҒ8a-(WJO'3lkA&l>r`9ga1sħ}û͖9; +$n#tx[/1aAᄝ]x*_"< +5)0OI0kLJ]bKn˒(4sםRQh^׃1t٘BQk(J) x1e.qgK(AW[km}B + ,,:YkGaw”:K9%)j΢+HԽ0^-,ݚaA0bNn?CFcgȆ UH1}Sf9'M^ m*ZMr71{7!xWP]RX,Z逤duA7YGQvMC#m錀)ʪ0}U\ׅ0KbSOƁ($`^-%6U/iFҜ/qBԀ$6X2c,̦R +kH4AŬ;7RŶ߱ڌs]}Q@l$Z$ +RWڻl!z<-ZOn7>JhO}(iT5B<&$ +&zaLjfI|jPt0@0Pu8;wRFT\4kP`{nYFS07@!2;)|ʳW5sb9Bw찙 Ar/h:^i&ԖsdcUHLS[yUn3|yr:Uo)Hh[,–&CUA[vp%Q7#"@L! ǩ^AL(ǽg1z-5Ond&-!jq,9iӦ/3 ,$L9eH0 [gK!+Ux\$/Em sxm/tu~@QP1- $|@K:=zcf5ܢa(7ł{q몢g.z! %7#B2eYa*K-@q.CNzjC\C.يʌZ) +l]FQ'i +ŇqK,ʆA2!e kÍl6T?}3itnՐ $.< Y :B{iS@9z(>nꙓ]Tql>+#&Ku"k1薷'#oLH<BDq۶Jm,<@Er*|&T%PG-:?)姊HצͧkZiLaqj!%YsPDi(-j"Dktɨ1@gxQAٽYE$:lԫl +s]MꗹfS+2f,O*x> +O[=KQKQ'Uo.}v8j"՘KAj] *( EWب" ܽQ7AO ʦ1챲hUվFGnfϯUYE|"XHh5FȑlCAJ~F$g?>~~f멏SMQ^bDTܑM%MURWd~oc{1L'pt-=LQ퀔O,‘H8sly +$2;L-%Yx;1M@6fx%@$<(E3?Ap|}>5*E_*crJY`(A/ ZH2Pt>m!gtv ϩ!d~ gzu #MnM`68j!;'hhM"6d3&ObϑV=/XV%5`{ϊrFfA?ʀqN=m3G~eJEFfd1 @$zt95Djiv+q®!VKSy6wjQrggo/;U~6ǁt=KethX!~DxWnm.U{?r<)1P/HkaHK&`:~x W|^lJ YM"!AÊ_0͙F~6u{7ݭ0o.)& R ߌFh$lDk4iF :ShLw&u'ͭCk{]~}}sh#r&4z8!qA^/ S6<*I> m4%]5?SmjlRT%o1W7d r]6T6FS ˱}K33.m|,Dl]{c(]F[k["6Έo..x>p\uϨ&Tq1wC+ JΈ5^ 3Qn 'L:4R`I9 v@x'ah\7+,F/gP'ä|Y40gH]8u_2S҇s=%0; +4]F8BSew#&.h-f(2'm(WaGe ;0Ƃ閚l:UA0Jm^2do)Z>'&Pîi +{EBCX7)YLIRe\%mF +2En&1J>iC_dG0Ћʼb6V6eck"a)04<$j۾'x9ٜÒ~+nW")aG6XV B>:{AlBJ*-yӰ:y! .CQs<q]-WU!XvE^EǦbx{-9n'ΞYÉ EqYg-SzsXRD &RA4[.ܙأԥ͂Fms;^JwJݯw]~<'M]"NKKm[of{[npW>杯.Y ޽p]ifWgfr;1P&Ugϗޯ=-)\ڸMwl#ʐ Ž7Q~@٣n%"xOK:(u$2 Lb-{)תK6ҀBX6JF ?TI-' DWdZA;:޷gnHPȽѱd\=\#}#5ngs'AO]uYT"JƬ85ll$Yz)wQLm4\ٗj1!7̼I*߽bmpji 1ToZ6YpSZ臷?t/"•>zda̤!QGàkIz> kbB4n&6i${ +22d$k~dv4Q! ?E‘M ,Uڃҕ<Ȇ]5L 3Nʟতtg&8:a֛65SRȢC3pΔ4Q1xc*qRU&LOB^AIq$Mmd}0L J%Vq.%&<7t +] þz`9J}yaG㚬 +{>JPlC#ɦx4uW 0Ň ˿ҁqsm"bzL -]ѻp^9axJ4-$yyRVzʰW)yN;uM\ ˒rΗ韕.TJ?>`*8k}*n{+$Uq Knf$rYϪ)/E-1Z-'&=%GNǕh6&= /Nc o)Tk˼tVBKw@<[NH2< IZiT +Ҡ2=*pPL,'Oj ;p;vќm~H)4$Mzԓo3U%qtF>5W kT /+>N8UdVQ3#Y N@֤> ]vu2+d&=Ig%bh0F3)I;;Lfnnky+ACnc>4?0$TLQm} `M6QD= 4"Z]Xl >p_3-E6$a,Z?g3tm }69x9!!9 |F)hzt4aMn[>̎jM}nyPf4۵k0 wю-^®+۹"5c2N nxZQFnf|R&-P+ lF`9 =JB[.?&y_MmKiPؚGeM&,ٕ]DSq1DHu$S-%͉poj4$s(@*PyHHJM}g"(:yJ_r&gWcRذYZ39Sal!Uf yhBoELA1aE}UI'MH`4K3Y:Kz`t?;Rk6&>SCjkJ»#i#kﺎb&B(c99#YDP?lm52oy稲q㩒P];05*3&&"l$k8l_zW\;68x} c,S{s$9,7;4$!\ϭ"vd}f<S+dLMNvptp c(&?P8V#r?ME}ݤd=hi%#ϴoӲnw#6>$ꝣ l;o 24'~,r:ջ_&@KfK}#TS Zpy{SPuAIUdj|r*6iR|)f1,(W>!=D4qWbF_2Cc?vv4m g=/NT'1U O{:FB}#&'Zuņ !zz=$Z[IYI0w Y]3~ۋ8ׯEWtMM ma~;S̕V?J{w:S-3mͷ.#Bߧ@!g7_T+EM9/O#H"GÁ1j-}B⓺z'譄~mO`̐ud,If YL{>ڄ9%Ĭ gC}fT-Jfe0x.1|qMY}^5N9LjK(1<a!=S,UAO>y])Y~80jv,}r6o +rI o4)?&7LYw=*62(J qRcsskYgZ-z]ju{FH|%fGH܊4P)zAz79Y '_5>qE2$*f;0y*CӗOǪ%{C[KI.MOQd^gn2c#WӲ" jqNMAd?ŽRg޽3' A EWSR ?$"4 +6XTZ"%d}ꪼ؏j8cv xX 6s=N~D`dxF8T )jx/n2&E½*4W.miĢSbz׎ot:'^%Q:,NM+I>XvN;&BZL`*N&/7]ѵdcjZ"[]D^H8>%} B䈋&+`Eoќst%H:M C'rELOGl!5q>Vu{U"k5m<0^B,v"Gx*V__s2Ek>#kBƇg]"zmh5qDFtmX[CHHJ 7G_ؐ7g6fٯɩ )%]G_Sc#ϳv}JN/ZFn^u'tۺFlj43EPFD^H9XqprZN'r\FTf %cU )^#i^_[^\2ovq}Lu;]|QO$ڪgkn]oHت&:M),y=q.q3{RS$^#CZ ԝy5OFvi[#f>9pYWKM> ;K2UT4[ !b~hrY]!68'"=WZ\Cd_Q[AaRz ц +Jols" + UHZF;!qp.2CШ pޫ "KB#X@O}W[$̛7*;kd`[v@(/R qB-v!ŢJ8lۡL8 KɗJ#L ,sJACLZ Z.%>9'ĚS&*|IPpSbv) 4FJٜ$&ԣKR{V,#[ܖF,ڑUU&6R6J0D~ '.G* ?%{:*f>3sbWXxDڎځ9_g+8@hG^t=mQ~TKOkɎev9nTc4 C)=~_P~>1\LpOK^Y +Yy9cvYJd["y`~]F{ؼ! ~psо&`7,*}"E7=qhX!Z`X N@2J$^OQt *TP*ub*Z-@h"2N9IekL4.@"Ydn Q u4$.îvC|9v#a^ 5i "ox RGLI}ȕ \v8C+##&{Q9J~ɑ-?L9q,;vS?~n AF֪sKvYLDЖT/d+1!,Θ_×JYg0n 8{DZvT1Ů*1H޿b{ N?oF, t!XabtV{ắV}uv%yE/ -E>~Yz*Oh|G:>ǷrEt9Ulirf c-%.zV;BS=.ĵVWߣEtɱ}6!qrg:$Uu$$n/<ʋ{5'guNxq?Cϱ<\}C*%pX=&8Q='tP'v򯲻eα [#OkԷ:ZtӚVȒtJcFh@[9jsQ'EVC"1Kx恈Xq?ށUK/kN͇(ӢF:|irgV\[i$Lw` ]_\3C!Fڻiv?LE PYj٩q &>Sѣ'? pɠ:m}C(gU2˴d5! Y1l*C>mHvzHe#c<˂QFWs˂iD3 +/fW<[t4Sӧ'kO"28BdUHIGyi4H:g f#=˕Wo )zu!7k4%9BZ<+:6BhAVؕK1Y/ ++Ml1?YD2idV4mHi0^tQqC}(9jv[{^|D`rP29r!_Yk3[Ӳ6nm8`?ZT: @=W9p'+bHqdX9L#nH-ι( ̖Za~|EQN4Gכ||6[amQ+ ?O9TܠJ<5<+42aR +ưQN乡Ն6>>ne>gtI0G+24K?o|y[ȧZ5r_dR\r}z5>>ssZt 4m]#<]FB.o(zڳoX6~S#> ?&U[}Z‰-v#AoW R= w]RN`xetiRܯx tʆ;mۭd88ݒ2a*a2l +܁+F碆:tW݅H["U}&4|kS@ @[5i猂1W*w{&>"0kZqĦ dXgP;Rg2zu +ZWk2fDԏ腢5|H8{n)qYª"2`TnقݩԘzO5kܐVdDJ5W :;{\=r5}`ɯU4M !%x!> ./7Y΢"dZwa]) `,#$ƿQ яbmԪn H \nNpaJ|Oސ.Ӏ7!C%=3ܥ"iZIrb{]J}َbhzG-`;#V՗P4v.^>U ij 3z2񸲟̉#t'Iᧄ9Jwgm!nC4l]\=DEc,l -SMX0rYEvUlsn{F  !3u ԝ$uyFH5]_[6_P(KeޫPGLDcbT2MVG*aV+t+4 +GO`~`S1;P!!eʄKWNHMx;RrzNcHЇTVzOOBJ_TV`H( B@-DaWC+ wEd&|2sC534;N$4K4`1`%PC* &BԘ]:GpC7PEA3~W<6ȕ +?'C# Vvd9UxV=b#Il)Nl> +RD&gOfTdQ᷌QLRn~ח)l{؅C# Z=l<03`n +1MRu;dݏ6..)xT T"alxݱIvׂ%dƿm }N!s Dd|8TZWT oTFFcPp DH}ݓ;&3O@~q,J }r霍ahSGoo{ϻ~K[_YWsf?_eFntFKdvH^څ_/d ES≨'[IiKl_?^?tUht_Sp0Ejw([x 4 +[)S !V|DcBhO2Y+7g-!*'4 N>DF5i@!z (*kEnyV\葊~CDdg7?c-YE?5b< ^u]#| .+lPuWGpް95UzRJׯF/~*j$s9|#i4 lޢ9F 輝[.Ht +U"NϨlE;:jPK@x*3pOA~/@*f ;6P$s +ىlu.oGFh叛4KM-Qөi+6/"(n&bgJ4 )훜E +E@o =ZXCw*;-m2 +V"qJL%\UgD%+1+ɰtdIgDʞ3&\uY}r/ZQIo|ߓ/WPe;2bĔRմb@^Hx l9~ՌK]EcŬeD@W=TjIb.CY4NܤBUd^b]郵c~R7U$O\!?Yܤ4 <_xgwwbJ`j3K"T^<.1I{BoGܗr.#"ݹ۶)X2穅eKY;V%,Cϥjm+U CBt +oW~ m)Dfi9Ϫf~> endobj 48 0 obj <>stream +8;Z]"CMj5/#_[X+$g'KEX6qUu)%7?T<>GO*@UMCh40R86*GOQ3@7*6aYS_j3A7S]l +5'#l\gEeD3>:\oA:4=U)05,5V%6Xq/eSUBlTYZt,2bB99ggE!9!L3ft^$bn-89h!t +%l%)##,ug>MPO:5"7"ue:c%8:EeG5,k8+61'[\_0+F#DfIUt0qUjkWS8cnGd-A$BW +2,-PgLBFr.-`hVOGV_o`TY-W[_B;F%TGdl;h_QM\R^\?^\DeQ$C/^32<#hAQER;$e +=E'Y'j^um43/8Vc@J+!Q#kYe&#RRLl,hbpI_4kZe4^Wt8ars+rIZ]4e;AhmH<$DJ) +)g+'Y"QQIPW,GZ-]">Jlf-K1_ubV9D\qFj'**'EAIFmi +endstream endobj 49 0 obj [/Indexed/DeviceRGB 255 50 0 R] endobj 50 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 42 0 obj <> endobj 51 0 obj [/View/Design] endobj 52 0 obj <>>> endobj 47 0 obj <> endobj 46 0 obj [/ICCBased 53 0 R] endobj 53 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 45 0 obj <> endobj 54 0 obj <> endobj 55 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 17.0 +%%AI8_CreatorVersion: 23.0.1 +%%For: (jason grover) () +%%Title: (bw.ai) +%%CreationDate: 7/10/2019 12:35 AM +%%Canvassize: 16383 +%%BoundingBox: 724 -4182 2317 -3022 +%%HiResBoundingBox: 724.838574504607 -4181.732421875 2316.94157384323 -3022.48168875685 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 13.0 +%AI12_BuildNumber: 540 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Registration]) +%AI3_Cropmarks: 689 -4231 2344 -2968 +%AI3_TemplateBox: 320.5 -240.5 320.5 -240.5 +%AI3_TileBox: 1128.9000005722 -3897.0999994278 1904.10003662109 -3301.89996337891 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI9_OpenToView: -10690.9042553192 2487.48936170213 0.081597222222222 1809 874 18 1 0 56 151 0 0 0 0 1 0 1 1 0 0 +%AI5_OpenViewLayers: 7 +%%PageOrigin:-80 -540 +%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 56 0 obj <>stream +%%BoundingBox: 724 -4182 2317 -3022 +%%HiResBoundingBox: 724.838574504607 -4181.732421875 2316.94157384323 -3022.48168875685 +%AI7_Thumbnail: 128 96 8 +%%BeginData: 7904 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FD23FF5227F8F8F8527DA8FD18FF2752A8FD5CFF52FD08F8277DFD +%15FF27F8F8F87DFD5AFFA8FD0CF852A8FD11FF7DFD05F852FD59FF52FD0E +%F8277DFD07FFA8A8FD06FF52FD06F852FD08FFA8F852A8FD4CFF27FD10F8 +%527DFD04FFA8F8277DFD05FFFD08F852FD07FF52F8F8F852FD4BFF27FD12 +%F827A8FFFF7DF8F8F827A8FFFFA8FD09F852FD06FF27FD05F8A8FD49FF27 +%FD14F87DFFFFFD05F87DFFA8FD0AF852FD05FFFD07F87DFD48FF27FD15F8 +%27A852FD05F87D7DFD0BF852FFFFFF7DFD08F852FD47FF52FD16F85252FD +%06F827FD0CF87DFFFF7DFD09F852FD46FF52FD17F827FD14F87DFF52FD0A +%F852FD06FFA8A8FD3DFF7DFD2DF8A87DFD0BF87DFD05FF52F852A8FD3BFF +%A8FD2DF82727FD0CF8A8FFFFFFA8FD04F852FD3BFF27FD3AF827FFFFFF7D +%FD05F87DFD3AFF27FD3BF87DFFFF52FD06F8A8FD39FF7DFD3BF827FFFFFD +%07F827FD29FFFD07A8FD09FFA8FD3CF87DA8FD08F87DFD25FF7D7D2727F8 +%27F827F8272752277D7DFD05FF27FD2DF8277DFD0CF82752FD08F827FD22 +%FFA852FD11F827277DFF7DFD2DF827FF7DFD16F8A8FD20FF52FD16F82727 +%FD2EF87DFF27FD15F87DFD1FFF27FD48F8FF27FD15F827FD1EFF27FD38F8 +%27FD10F8A87DFD15F827FD1DFF27FD39F827A8FD0FF87DA8FD16F8FD1CFF +%A8FD3AF827FF27FD0EF852FFFD16F8A8FD1BFFA8FD3BF8FF52FD0EF852FF +%27FD0BF827FD09F87DFD1BFFA827FD3AF8A8FFFD0EF82752FD0BF827FF7D +%FD08F87DFD1CFF27FD3AF87DFF27FD1BF8A8FF7DFD07F87DFD1CFFA8FD3A +%F87DFF7DFD10F8272727FD08F852FFFF7DFD06F87DFD0AFFA87D7D7DFD0F +%FF27FD39F852FFFFFD0FF8A8FFFFA8A87D52FD05F827FFFFFF27FD05F852 +%7D7DA8FD04FFA85227FD05F87DFD0DFFA8FD22F87D27FD15F827FFFF52FD +%0DF8FD09FFA852F8F8F8A8FFFFFD09F827277D7D52FD05F827F8F8F827A8 +%FD0CFF52FD21F8FFFF52FD14F827A8FF7DFD0CF8A8FD0CFF7D27F8FFFFFD +%10F827277D5252FD04F8A8FD0CFF27FD20F852FFFF7DFD14F8A8FFFFFD0B +%F87DFD0FFF7DA8FF7D7D527DFD04527D27FD04F8277D2727F8272727F8F8 +%F827FD0DFF27FD20F87DFFFFA827FD12F87DFFFF27FD09F827FD08FFA8FD +%14FFA87D7DA8A8FD0BF87DFD0DFF27FD20F87DFFFFFF27FD11F87DFFFF52 +%FD09F8A8FD05FF5227F827277DA8FD15FF27FD08F827F8F827FD0EFFFD21 +%F8A8FFFFFF52FD11F8FFFFA8FD08F827FD05FF52FD06F827A8FD13FFA8FD +%0DF8FD0FFFFD21F8A8FFFFFF52FD10F8A8FFA8FD08F87DFD05FF27FD07F8 +%7DFD14FF27FD0CF8FD10FF27FD20F8A8FFFFFF52FD0FF87DFFFFFD08F8A8 +%FD05FFFD09F8FD15FFA8A87D27FD04F85227F8F8FFA8A87D7D527D527D52 +%7D527D7DA8A8A827FD04F8522727FD19F8A8FFFFFF7DFD0FF8FFFF27FD07 +%F8FD06FF52FD08F8A8FD17FFA827F8F87DFFF8F82727FD15F8FFFFFFA852 +%27FD17F8A8FFFFFF7DFD0EF852A8FD07F827FD06FFA8FD08F8A8FD18FF52 +%F8F8FF7DF8F87DFD16F852A8FD04FFA852FD16F8A8FFFFFF52FD17F8FD07 +%FF52FD07F87DFD18FF7DF852FF27F827A8FD17F8277DFD05FFA827FD15F8 +%A8FFFFFF52FD16F87DFD07FF27FD06F8FD19FFA8A8FF7DF8F852FF7DFD18 +%F852FD06FFA8FD14F827FD04FF27FD15F852FD08FF5227F82727A8FD1CFF +%27F8F8A8FFFF27FD19F852A8FD05FF52FD13F827FFFFFFA8FD16F8FD09FF +%A8A8A8FD1DFF7DF8F852FFFFFFA827FD19F8277DFD05FF7DFD13F852FFFF +%FF52FD15F87DFD28FF52F8F87DFD04FF7DFD1BF827FD05FF7DFD13F87DFF +%FFFFFD15F827A8FD26FFA8F8F827FD06FF7DFD1CF8A8FD04FF7DFD12F827 +%A8FFFF7DFD15F87DFD26FF27F8F8A8FD07FF7DFD1CF8A8FD04FF7DFD12F8 +%27FFFF7DFD16F8FD25FF7DF8F827FD09FF7DFD1CF8A8FD04FF52FD12F852 +%A852FD16F827FD1DFFA8A87DFD04FF52F8F87DFD0AFF7DFD1CF8FD04FFA8 +%FD2CF852FD19FF7D27FD05F827FF7DF8F827FD0CFF7DFD1BF827FFFFFFA8 +%FD2DF8A8FD17FF7DF8F8F8527D525252FF27F8F8A8FD0DFF7DFD04F827FD +%16F827A87D27FD2DF827A8FD15FFA8F8F8F87DFD05FF52F8F852FD0FFFA8 +%27F8F852FF7D7D2727FD2EF8275252FD077D52522727FD07F852FD16FF52 +%7DA8FD05FFA8F8F827A8FD10FFA8F8F8F827FFFFFFA8A85252FD27F82752 +%A8A8FD0DFFA8A85252FD05F8FD1EFF27F8F87DFD0EFFA8A8A8FF7D27F8F8 +%F87DFD06FF7D27FD21F82752A8FD16FFA85227A8FD1DFF52F8F827FD0BFF +%A85227FD05F827FD05F8277DFD06FF27FD0CF82752527DA8A87D7D27FD0A +%F87DA8FD38FF7DF8F8F8FD0AFFA827FD10F827A8FD05FFFD09F8277DA8FD +%09FFA852FD06F852FD3AFFA8F8F8F8A8FD0AFF7DFD13F8277DA8A8A8FD07 +%F8527DFD0EFF7DF8F8F852A8FD3AFFA8F8F8F87DFD0BFF52FD16F827FD06 +%F852FD12FFA8277DFD3BFF7DF8F8F87DFD0CFF7DFD1BF827A8FD50FF52F8 +%F8F87DFD0DFFA827FD19F87DFD50FF7D27F8F8F87DFD0FFF27FD17F827FD +%50FFA827FD04F8A8FD11FFFD15F8277DFD4FFF7D52FD04F852FD13FF7DFD +%13F827A8FD47FFA8FFA8FFA8A85252FD05F8277DFD15FF52FD11F87DFD48 +%FF27F82727FD08F827A8FD17FFA827FD0FF8A8FD48FF52FD0AF87DA8FD1B +%FF52FD0CF827FD49FFA8F8F8272752527D7DA8A8FD1FFF7DFD0AF827FD4A +%FF27F8F87DFD28FF7D27FD06F852FD4AFF7DF8F827FD2BFFA852F8F8F852 +%FD4AFFA8F8F8F8FD2EFFF8F852FD4BFF27F8F87DFD2DFF7DF8F87DFD4AFF +%52F8F827FD2EFFA8F8F87DFD4AFF27F827A8FD2EFF52F8F8A8FD49FFA8F8 +%F827FD2FFF52F827FD3AFFA8FD0FFF7DF8F8A8FD2FFFF8F827FD39FFA852 +%FD0FFF52F8F8A8FD2EFF7DF8F87DFD1EFFA8FD1BFFF8A8FD0EFF27F827FD +%2FFF52F8F8A8FD19FF7D522727F8F8F827277DA8FD15FF7DF827FD0DFFA8 +%F8F852FD2FFFF8F827FD17FFA852FD0CF827A8FD13FF7DF8F8A8FD0CFFA8 +%F8F87DFD2EFF52F8F87DFD15FFA827FD08F8525227FD05F852A8FD11FF52 +%F8F852FD0CFF7DF8F8A8FD2EFF27F827FD14FFA852FD05F8527D52F827FD +%04FF7D27F8F8F827A8FD10FF52F8F8F8FD0CFF7DF8F8A8FD2DFF7DF8F852 +%FD13FF52FD04F82752A8FFFF27F827FD06FF7DFD04F87DFD0FFFFD04F827 +%FD0BFF52F8F8FD2EFF27F8F8FD12FFA827FD04F87DFD04FFA8F8F8A8FD08 +%FF27F8F827A8FD0EFF27FD04F8A8FD0AFF52F827FD2DFF7DF8F852FD10FF +%A852FD04F852FD06FF52F827A8FD09FF27F8F827FD0DFFA8F8F827F8F852 +%FD0AFF27F827FD2DFF52F8F8A8FD0FFF7D27F8F8F827A8FD07FFF8F852FD +%0BFF27F8F87DFD0CFF7DF8F8A852F8F8A8FD09FF27F827FD2CFFA8F8F827 +%FD0FFF27FD05F827FD07FF52F8F8A8FD0CFFF8F8F8A8FD0BFF7DF8F87DA8 +%F8F8F8FD09FFF8F827FD2CFF52F8F8A8FD0DFF7DFD04F85252F852FD07FF +%27F852FD0DFF7DF8F827FD0BFF52F8F8FFFF52F8F852FD08FF27F852FD2C +%FF27F827FD0CFFA852F8F8F8277DFF52F827FD06FF7DF8F87DFD0EFF27F8 +%F852FD0AFF52F8F8A8FFA8F8F8F8A8FD07FF27F827FD2CFFF8F852FD0BFF +%A827F8F8F87DFFFFFF7DF827FD06FF27F827FD0FFFA8F8F8F87DFD09FF27 +%F827FFFFFF7DF8F827FD07FF27F852FD2BFFA8F8F852FD0AFF52FD04F8A8 +%FD04FF52F8F8FD05FF7DF8F87DFD10FF7DF8F8F8A8FD08FF27F827FD04FF +%27F8F852FD06FFF8F827FD2CFFF8F852FD09FF27F8F8F852FD06FFA8F827 +%A8FD04FF27F827FD12FF52F8F827A8FD07FF27F827FD05FFF8F8F87DFD05 +%FF52F827FD2BFFA8F8F852FD07FF7DFD04F87DFD07FFA8F8F8A8FFFFFF52 +%F8F87DFD13FF27F8F8F8A8FD06FF27F827FD05FFA8F8F8F87DFD04FF27F8 +%F8FD2CFF27F827FD05FFA852F8F8F827A8FD09FFF8F852FFFF7DF8F852FD +%15FF27F8F8F87DFD05FF52F8F8FD06FFA8F8F8F87DFFFFA8F8F852FD2CFF +%52F8F87DFFFFFF52FD04F87DFD0BFF52F827A852F8F8F8FD17FF27F8F8F8 +%27A8FFFFFF52F8F8A8FD06FF7DF8F8F82727F8F8F87DFD2CFFA8F8F82752 +%52FD04F827A8FD0CFFA8FD05F827FD19FF52FD04F852527DF8F827FD08FF +%A8FD06F852FD2EFF52FD07F852FD0FFF52F8F8F827FD1BFF7D27FD07F8A8 +%FD09FFA827F8F82752FD30FF7D27F827277DA8FD11FFA87DA8FD1EFF7D27 +%27F8F8F8A8FD0CFFA8A8FD34FFA8A8FD37FFA8A87DFD38FFFF +%%EndData + +endstream endobj 57 0 obj <>stream +%AI12_CompressedDataxk\Ǖ-]C·싫t*+|c AATYf"gsNɪ")JnUH$+#2Nxϵ>>GuwO߼z||~5??=xTlu<.O7^|wzOYo^ܡ;>}<| *ϴQ:_K/ohM^}/<=9 F3aoƖd+Tcgᘝ&g-]!>$ώϯ}7}7\z7??\ï~ŋW;^<}|w9h+SyKm}?a+'?3-' +*+/NS)?|.+I_o1xk,Rm~uF=Zդ&⏏`Rƶq&5mF+'˻Crٟn=I?~a/߿~ o{tx^G/Oo^ūKO_>}__QtɆwo>ݿkI/I}16}zo>}g\w/t(=/^<ӯo|W/z;I:7_xW1O~=ً7w<_e-j@wjLO3glsS"|ḷWA4/0}r6_}5;99.k{t8^/W/{y7<Ow/|WŬ=zV%JޔU9Iϵ񶖛Ǭ])%hp*iU2UJV;3ʍ]ڏ]1?˧M\*Wr*OKkZL ܮ뼾u=tY%uΫƟq,˚jugQkS`{Yqv[uqIVyYԕݮf{tx)\)\RV+qef׵rbpk ke\TX'oʷeԺ2ȈW乷k r7Xz ::K +ڝݍtZ烏>+r8ƋC )\u8[liq1S9b@O.dtNn-6=!S8|ob@*^|uuuB:_\b+i;St{0h :]_]׷vZÝ:pt|s&07Dtܜnoponnn5n15uaP-dM,kfUΫr*Uڔ +zxR⪄MVŮ +v#z4l)Zz7\)ߧUZ*iS⪄Uim]*zURڴI?׫r*znWqvmն+]ztYv^g{aW8u&7sl ZKZTKj8);9Q(~NRjRR-88:"T d[K]]鍬I-:yY?l_ɾ2NfO|d6.ʻJ,oq%2J'Xqn0קHZi"@ HF-uɾ1YL DҁXLve!9M9zXJņ8cN 9a % "qb1x"@C ]&:czO W@  ׂ# ڟpqdpqXܜ-6Kr…qDp9\E%u +cĵp9\bƹk//cVQ \[mkږޕ ka(f{OpH 쳌=氻¾Z]#rK7ʠ +rc˝ W6ލ^ r/fr3{l<ll|p87gik\K!!{6` 'h醳4ZS~Cvh)k g\:z8{ȡH)[J0MbiUp^XFs]Snv&;[q.B K'8to^{YG +z?[GxV +"^S(4jQ~5EE[~XP[Fo&qMS\pS7ZR/^N;4 ?]Cf:PikФ ZS.Ӟ{hΆT:#4fy}uAPcow?MNׯ`bpHpvqZ cڞҫCGȏrcCAqWph3:$!9OXoӨ$_0FTF{ + L]hVy {}jyOFo(ȣ 1\A4̲F(#ҫ<ڣC~b=*нՋè3sr:ks08TcPi#}s-]8ZA.>Kl;w; —]+2;k8]eQ=Ccy-I[64z%$2Ť6[|}$E(Bsv8o|F=^{?>r{ܯ4AT|ċW +MTGQ)M*Q~o+HOՠk>,3+h͹/Q[&qD9 8^{rwGhH_Vݐ-fUQK/fGzyuߗfqթw~o1W|07պ;[{k]"1[ZȿEf 5Yx4ױHE&"Y]JƔAD>N"7 \dQN,.Z$&+me,uUtwlSee_IRiJ$&)c틬lr꼒XrDByǐE>^IȔ"#$H"#wburE];V'7Owl @c޴qYBVZVA Oq +ݴ:?[C y=aPB˒@,7Ї%a _=׃T$z +v0e ԕs'[GLg{ҵi7VyVB%$ƕ$-ۣL6_(T7YWfvvg+TT +*%]55]{n}s޹?Om*JC=^r5wr4yx/ s[˞+ZV~3UKxU߳UYvN [oZ); t϶M"P<~޾Svry(;Xw|TrdBS,)sBcT 䤨@1rt:fP-pcVoAS$:*$sil`8.#y|T <@>E?Ъ4 zA(o.A^wh}hWBExvI}F>z6JՊ|WwE1R%EV4X…CU@\KCM㩫6v -WC]E n ]§ׁ˅?أE2]2j&B>$ۮq"hNXAW/"4&f*~cգn)LkIZ*#;ӝZ]Nۋe^z9-=6Eyck[{oc AuMPNr})H)"R.rinA%tP%z*ȠVqS\V:rJ*-^AѬԸvVOy*ѓ5]J}џP{Rvd?À;T} D&(M[J[ѓUu-I&ݗ\$Fx% ]>Dd$(œ`%XH(!}V^5~aM,>[Gkej|a= +Ҋ[Z{]u*67>y=V^R~~3yL-Kyct&zbEoqM +[bU"HfrkDZd%|O?ԱHl|-w|-W<-dAx[i|+o%Y]&TlޤsӣJF]I70 xЊ'zYG*Kޔ7֡f-ˢB.zSNSj۲{rz{"W| +(^mhS b +;lpџn"mr*w9u*jg hP&b/ +8Q2UBnS;Rl S,ͲY-RWh]W^ފxjaE{[s:+hiDC[uJNBĐ>JV[Ϲ1'^UMn Y*xTbW" y-:1^^XKKqbx3[^۹Q!O>I['͏+l~kx2&T=,FOvT']-2z|G_|/GMΧk_=|-/ꊦ`| k;EMAZ!i'Cב۪p }WuŨy՚I ~Fycx}GfݬFyZpgj= }gv+u%h];Z0>0vяGpXR4ZK>>%INe|18]O|'4ivٓ1m>|oʮ>mY\sIkVI3@1@-2* }(Y]2*e;sG@ 1E"A*M'馨ÍHhW6-0 T*YsU=T% +[Y~)d-7..W0l3[܅ⷥ%\,r~IV*ʎ <0{b4n1trSĬdX8JE.E+*) (ʀ?SM;[uW +\[\sKT7bv؆LPUuZ+easJL݊JQƔiW)缦eőGd-ʥIXmqZuDbٱ +](-U)k[-޶DI %䋾VzK" +*QQ(J] S_J;mMkƼEiKoWZrZK@[enW? SfbYWSWcJu~z\)[}s{sD(e>W {JPN` \ӢXZ-WzT镐 @ סqjp8C/~Rs0׌rDn;"| 7PubpkԶf6Llh\Mkj~2.6&ikN3=xvcˈݺ[jΗ%T;-z\ ~(?R)ʏ}{HQ~(?RPD^)G4 AY?]$9uchR4k{'a}cU( D +vW0To` HuǠW`p4z MqC{\0+oa}qZߖ˥ݵw)M^d#` 9-Nc(A)a,+:f\^\7ch{ZC5ѭvOH_qVۤ`>as5t?VC+ء͖ )Ghm9ZGρ).GB5}>\Pݣ>wh *Q (*xRB]pƧL06uDG^۠uR7LJ|:>G0:wp>[K"){@$t9ű;Zڽzne%OؾM3u5mߛI]]t~%G C< =p>c IwZnX8`QLMZ]RM]}UnjopD< ֹG涌 ;%B3u1kS " ]!А +,8Z58RF*b5e(iYkجUW yZW˵~~ g.;;C GC=ȸ֜q\C{[ lB=u[# 퓀4BvTĖ9`XtU0/6ǧԿs]wMqՌߦhqrOE9α?B6 (qwBfMyBkBosoBO ihj֫؎VIת&K0NѰa-Rim ϼڒ=+Q=dQcIc>TˢH/Fչ` i>QUjjCG91nVQJvF7ZpUcʞ +[xq=~-WgI?gk9E}lsU7iQ75hQ6rrD~M9$\"M( WS{?;hn Ǯ5K%+q%=Ѡ +@))WE {'h#*vB6@ea$NupPT%7`,>K(j+2w-Nt{%k$iy)&z)FXv֠1KrnY2՟z\2wN??o,Y5pҀIrdX;.mW5Isd0L2,KN +X1jv\~tc_*v*= {XǮEٸѦSs:nfs14 sZ!5SOC[{tR6)n\qOs!(UsPY[KuqS/iw-]ݳD֌dVsJuJ&l^+Azb +e+C^Cnw=TwX>GHI~ilrms.ĭOU;S2hR5S[kɽW3jݓ\s +LBXnk8E$@MwHW tIt!zRk7[Sآ~Z,s'4bXG͕G,\Vpk1.(^Fxū)qpV ?{D@!-?<߾ǭhW";sГhWBV\|ɿ*Φ.nI\ޕ3|O=/P\[Hf3˴/e-u Lk,AiHo)5 +^%q$?IPt|fƾϐ=.%NFʆFRS \glqTAEPerBJ@K{jZN9jISCJu5>bO$/șpK’Ijˋf'}Mt~QQIVGjȸd!|x7wpz_x@7_ZN'enߒ{tyzأ'_TM]BB&}bhLjAzTU8o2Qs<̹۪i60-"0Co5I"T]"9oJwBVOx|ZB]%&㎸wy#|| vx8!~Hū9Eϒg/XIM{3^-V=+ih&h~ѡć.ѡeZu!=Vfe|7gx6]{^k1Eq$(-|m*^qסzK\)v;GW9=B&9#~?ď{=Αg'O߾~_~ZZl7o^'W/7O:|:+@̃aH~=΃qUo/mf?O):o_|* b9jY{_~/Ϯ^9?O_ի_y}r7^?9=}?qgo~z?v?-ˇ);@P`yk8hC5Aisw!=`JԔڭt&lj}T`9gOG . f@L1iTоc2*#f _OD$jCux&%U-s %{ƭL<|PiAr#(i% 2DFwhe.b& vxI@]]A`$0(3A0k[bPø,E~U{7i7? :0ء B \&/#'(c:𾘋pdN˃ J:8}]M!V;̈́ x6VqPWo oش!^1Ӷa )?p$:ey< +Ha"؏4 j6w#e)^|Lqpm:bSI]XG .yv 9G$_;F5NMt3@38NlcseX )* I1{؊|v y:׺6: ɶe1q7UM#ǶPFl!8l6wA|0:N6EeV=$Y@i_Y^sc)].gĈg ^ahkVa0S0UKQιbEqP,݅: ++N#.SÑa4 ]{ [ "A)t$b-W/EEyI7*\m"LBW8G qsad>fJkW >TF jHZzP֩gazf̣k ^qs.L2ɠwzpQؚtZWΕ)MV`tԍ 8530yZHb,9ut-`MOG{Y0y/y`_}'$/^ʺ 28dw!/I~Y +2L KIv൴M*|.⽂!!;"&'0]  Yn ɀc=H{M7Ox$e+Y4`g8Ԃ:PqvcRb  >q,V׆ZԔ=xDdX!a4r߅ɟy)*L8lWp_Vr2b! +qzxx Ky zٷϟ%%|||\}C]⭢a‹Rױ ,C"T^;t\,ش^yHe$j1TA%:V&8bKB'@qc;0 NǐC +޵ehDw{+vRMhD2H^{Zli,?RU.;QlF積vu1ZTWޣlFA2uPǢ~;XE1)k!C#:Mu|ZU0Q '쌯Vh|q"ڃ.#2HU +$ rZC,TQYh |Umk6,yXTh(p6 UQ{>nm|dHH֤,fb]<)6@F +xkv $}GDl +խOWqt!\V.ll +`. +[۟0Rt?<#7l7V?2pQF h!a +n'om,b*ff$eLx#RFlS4aXlj _38X@!n bï։9ye`Ї%oUydxox fˢ>f. +˽¶$C-unJ@Qi̐7:| tGU! 5` @D!k9;hfhW'ט9LT4Ӝ0=9_.Ҙ/pP^D76we$1ⴑ +[Άqaykho`;T͵t6=m,t-g=mowsXk%lMtsm5w}bseWW&Ubk Ȫbmkl~P[k/jMžÎ,hxF+M TU?Fo x!?/wM*b=d*gE?n K?]l!u%o(lTC{Wt|j*Wf#`IB8D/%@Su+r8`%QQدRI*=@I& xb!0{u1 M#Ua!DپU1[,yUEG#-NS3ܮ *WuT=3d47ۨՠ3DLZDelQ7d]:2u [oսGf8@FE;̃/Ո^qOo5gh^q0G+LC"p6 ,[\0v!z3p6xLS=#ُ̂ĥ\$){<)|d$kyȳ$9xf=h-$IcF)+Ya%;OI6NٸLXIM^qmkÒJ@?YՒ~l&KTRu$IF{Onh3J`yY ^%UࣙIb4;%=~S~qo`Ynޛk+>Dx-zAV?HB|'WDqo7)1 |d4 kjAvzqq<ҭ'bH+jڸ﫺ג|z Zւ 0:ifv<m*kr5R!@t)&؞AqI8‰y+V*OIÃ)-tgFR#EODʖyr4(&*p&S0q9Kvw[CM/j'QU`J)lorK2⎭Smv|*ώ]*R.G_p]fqj|Xi*ӌ8S}֝W՝L-yIX.{9? rp mho5ugi,=XxUʯ/)agV;|m0]oZ$/ft:٫PIH-4ZU|mM"۹X]}5 @#iߜbU*@@QahBzXqc Z +1)dniio$,D'9!$fSNt 9}B(XPw( 1qnQ5zUkylea3"AR/rV,ݛɧ(\L/gV +(|\ Ь{R<-x*1k$47Ӆ%>>CtQ=)6sW%w[T'h-!8a=t282ng sefPa<PjL/54xNq6<,xo|XʡL\p˧?(:*Y?fJ.8r +}D'}qrKSYlf}ލu̐څ|ofR o5ck I6F_ž/oZ ;ty+EM~ ʩ-[yK=NqO0MAķm(15kF?Y%xh6yzc-馱f4V j51A*A^hH85:lAJLfh=D?m4.eŽխ}8h{cq)B Fȣ6hZXC1$UF٨۬gp{̿>35b3Qc&L-v;4r0Ӯ biV- \ gAX67$U,c.je !:PKA1$-$ՄC\vCag]wyX:[Ӡ59B\h$Bźuڈil@Bؘ$vW%,x"FHK0 [~hη9 `S2A2Ǎ~+p (x S KLyxhwÙO]C7-*.$ĴǿQd %el0R} `J*;#=(`{E}47SGNcy`V r.ToTx{Ĉ.4տPawpP$HKcnjq=۹A ӌޥG.&s?N4cZ /54EFsq0RߐK ə&xC+ZUlrGzAШ;nQbL@u/&|1Q&{3Ib릊~7K7ҿLGMͨ j0܏2z{{k7o/ EǫD;^%CdA4un樖9qLy: &CnE`37?Mt9SN3g c·w׃i1U}5gCK`jsxMo5x&pi#TӝjA&-Kx>ϊ]Yq+>8%x>*me+XJ11$NJ-=/%rn@/Xt޻e0sZ*{9k>F?b-f%=U֌2:v4&8E[:ӌ7;nD ?xK.`q@8`xF:Y'y?ܼ[fվ@wH4-i!0+ fqC˱Rrpp4_0^j#b;N-|3lftq'X4lanZG xy; {;Zli0 ?P5xQw:bEGмA6{S7#ZQ2& JƄ8d4, "bbtt +$N 0q!'N Bqh`8 UqhEYDzG,8AXL q°縰qĢ3NL_15Wxň8X<| D ; q!A,&Dƹqba1 f_jb~ Jm :>NS16 q]1>._`"w4CiEPq(摯+{̌yh/YI zxH05Lls3q`yoL>RpR3Ւ>Xb:" +*@ ܢ3HK6{zo0S;pvr*`f +T,Т>jyNag(`miq,:Т>i21<*MKPQ`7hEO.48AgIpOфÒ͜`$*ulQ; F؏ +٬3N}"3}1X fqи6آ07s?CyhV KU%:<$냄{ ͸-(O@S2|18 Ԓ6T_ EN/*n8tq`jH-ۡ#Q>о3ZϋiC)`s+$GtV)O(j +-p08-mhŗHe?/]sG\,oIσZ ooY,8DIU6VC. 3u4M4ǽe|o+0vN|ssђ+B/t%faU\*jn#O)6TuwXv86^05# +(@< A˼!DW[GS0w4M4B9 5, T3V^QF_%HQ=2*coة:v{pӴbO/R';tuЌQª}I5 &uei2y}a?.#[;h`D25Y&9~?{ Y +YFN8Mrd&zQby~-܅8.hA$ TX}i +<?@qh$C鵉ihS0tDP37 ((ЅqnQ%@W(=7tI =sٰ72mmJ)/v0h!Ԃ[-yNQy d&%F[BӑtnDjp Ӫ%q#΁, ߖZ7mQ 68+Pa%PzDd rH] 6g5~l]fA֜`[ .>Fr I +f 09@jQ@ ܌3ȼ`7 i4-Gt4#n`,$$8BHbaF4\0]ݓwIw7і :̘Ҋa-үPڈLYZ*OlyEolyk}"]GDk*Ue, cQgm”И$5蝩t#H3)@MSg<ׂl _6|BݫR3 f/bg 2o2^BmbF2MF-fj0U:P.W%y,._~Bb|nFfT_f!cL>+BjqU.g.aE'f~CҒ  A> d!AvODyI9kJ^g?TeOVoO9KR;F-jisqy].Q-#2`F0^G&!MZ>T!ڃ&:}Nc2 c.2V2\…#\#Ȳ. 8~iIK퀼ԞSָNZ>cghE&'⭿ڴH\HOJ^d&OBwFw+hyЀociyk}"]eiRA@q;xG^| / W3qJ]v RԟSAGZ>Cgg-C9 1EʴJ_@L>hEHP pX|K1:7 O0 vivq!s4>0ʠJwq _|}o_ߞ|o\Am|~'l?yW}[S+g=wOo\^z_6>w1\VW˫OoV_]>yE~p?駟E"$xzJjA%g)b^_۞z*mL ӿᩇ_OϋL$#r;ïvMգ˷8uOO/ˎtdX"@g(+ L,Q{$xE*,0 +\/4'wju[@-kZ&4$ +&SaY:t-p3EI]{]HݦDRyP1s]uj%:yӽP_Be%ɂn%1OQhe"uJQޖtZ]\0ZT% D$}؝~N( xUF!SȶVXL`1lCrA[SQ"EZ!-1]\P[ ëIڙ īcLsE emHjp*/tFe3KGV\ :Ks3Ei2:4V͔_͢<7. +|)(SFaF!j FJI}yypIȔd]I^# b!r +Jpl NRH&|i. Sdn>T[aB!х(4G -ľ:ͭI@2$1d$qj'"ZPU[BR`h$zIH+h$@ H>^VCM*PA2N$I;EYfH!DIy.kmO)A0b\K%u>4_`-T@;M1~VDxf¸>qt7b +kdKnByz߈Ixz(@|O7>`g9 "#-:wtƋ+BcqCR 7Y*,Wqh +d'\Z1|*jjb/VPƗ;L / 5"0m+ý鋌\ ܵD=A/xVAu1v0![2J#]N(5ʠ#x%widK$5cqQA.x!`x)IHTserQ2WXWP4 YkE! +n,iXj,tH :^MvȔ鈋I[̞sqri $rOJ$?6#I]d%qi@3Oo,|nj +@`v@.N `,Z2+%U%BVzk +6o'HjY+yfX VL54.c<׊gMcIʂ"喯ySN)G젙_8%nI@("B}Hd_ʂ.n$@JvP,=kūRʥyfo'fCHU&j65agBm9M<åux}11 =83x}Y\Exy|< |no0雃燸ˆDK! \Ux\NJ$ޜ@mʊ :(=y~q9C; ({VHP  n +ȑ\B#V-p<6J1K40[0XF,>YrP*VKf42/%Dv*zWxaL]L &Q)x[eZV`֊.H#Hm]*$i S K\QBYlTV (3Պ<(%/߯:.62U\N8Yۃ\1Bx互;>aJTqZsr`(Q[]nId0P cd7T 1𶬕m)Kc +rH>O}EA"F5S-ԋ 1WJ3SmsAS"KATץU_>' +9}xޜj^Ѯ*#`Z Z=(PG>h=2-gx[ɏϹ-& %lխ<.GR7I%Yp.t͋,r\2.V@u)0ÊX3JXSQRkb1PR0J7bK"hA5#$PY"p2ekQ!zStVZ V|G +7[ Y//q ֋ص (#br؀R2#$H!Y٭fci,%059Fǥe/i."ڧ,V|B]AGHrXeT]rB2J +oLhXw#9l + +Hy?Qyb](Xk i_Wv8%h kQN cJDD8zqSBQiDAcI&|MNuybj&T&SIQ-'ˉ$Sd kJEIly[hS!P "s<뜣a%A'pqn\ G֬YuT7ϻzAFVJs\$(PAGmS-ݾgxƥA_2)A[eF +*m41wQ T:b6Q)'IKX 7@?PX)%AmKNn qGMPZ4TقM 'UPM. #-">^>Gx1Fn|-F`Cv8W3 &b IXdHЌVO2$h)ԄAQ)-B9GB֦Q,֌[Fs4O2n@Ms(8F\YŚk)m*V2]EaaHL'p\duLO4?%\ʈi +ڨ<]A1]߻:Lj~bق[Vvu,Vz)uPBըp* -wJ&XBK5[8rX*uXZV8+ x4]r.[G B-AuW +*_k!TQHjxq&rH3z(  uニ^vUQHv$CDZ0Xr J # A4o ,d!kT׻%ã:VEĈriJ3 2IèV_̳Bʘ34!07d^%"0m: 41-DԒ1IG@١VdOPzAjlɤ\"I1lRX_"",J Ci> +vyzdj)R;,JN$Os@G Ö3(dC+~Nx刡"_.θFZHJ$m + +>;ɮD,FW#8X%."a)‹ +ӅgTM(-8hac* +#uT Oԯc؀VW_q'#9'h-[b'aq .ם<O +H'6.hdT5NDUlq`Ptx@:HUp2Vf$Day ;XD*% +lQYz'$I2VBd~еst&+WMpe$*X5Ui̦ zBROq,˧NY(.XW +1*W\-؉30Cc%R8 $,2ĬO}]5VK[nLɦ6^rTMiJ-Vƒt:2CD5G$5Af 'FUbϾHbL{Z&ҍ/)EsLFRFŵiLI6M6+Gpl#vUpx D$Z/2hg-v@1 +7&c=$+iOaw@gG/yS {lEW_t2<ޖş&nP2x <2_>$ѷd}43o@cRBW fgv;;=t_i=t0N` m8A>EJUnO܍ ~,I%QZO:|]5jc7/}Q܀>ZMփZ$+XF<`=uqy4鯣ewP)pB +)+Ac%f:+Θ! +],jYHps.#Es`+];2G!a))XaZ!3 , "n^`nӨ휉uAF< :j52\y|N' )c5%ˈôHuɚ/ pQa> ,q s)d%&L=k~bT1bP JXG369(zGY{F_? FA+h6_Tu{LPRXlǁa_0Zaf1\hބ4F5h?~+&P۱wHK0b"q׃Շx #ru l#$BԤ!Ht$48VUdsү?,JJA۴}Kw=ajz yȍQ5J$9 AwƯ ~K=.zl% +//oQs"2DR^A>*GPK! 1zSS˜rOp7Hј'"o)lr6{Y3~;J5s1-$!Ui||~Z ȧgPĮl?;q=cs1=Rn9@*?nab.0'JnAxUX#@Us]<1eυ[C +95V =cȦ^bjmI1}728yyGYy{M)(c#{[)07\$xArbJ$ ` (Cq"e%7O*,?poc ؟ ;i^s_ݭEy fEʍڇ<ҨO0(U'(+q]]P gXTv c f^glͿDGCPဧUo3 b!Nhg-(#U6Z @%^VB$eYei1efΣ=ooArO7v~ޅW j{MS#r!Su+WR;AC9GJ'As lw\Fk0,H%<4[;&Jbѹs4zrxķYI^`_Te^sq{c?3ّOl.WfҮ)%<%z|};|{pYJ%?|?)f0q@p/t&ΓHa*@E_Em+xN#\( uV pW \0V_4:85T264f`cW[iGK13;68דfR+/ °ڙƙE.5f=3 dv q˙ NVP^(R$u{pð\ }40Hɘ2rk.9V0AOgby;Q1<4g:6}?B{;I|2E2 +Q'zZp' pِäuX#.P( . u]Nq.Sqs!`#6n%UvfL.eN?ePRq0;DDF^1E=4@0&҅:M0rtҰ-"!.{軙~-Ƅ +5?nWL2}K*V-F +t,k.|nؐ62I+| 0?OfYBPhft0s.vp];# [rWEVOS +g"d#aLUі>˦ 3)_C܋=Y`p\2h +Uc57:5@UI46|ɎpTVAJE! Sq8p V&y\ȏF$G)fDll$8@m__s>NR?HmbI5H{?\A/ DBGțv]5ʒݻ.ftr=&FJ-EQ +]f6h9U%+ϯɀpeSjb5&ÍH5`d/:qSgV&l4i%GZzƼ=缚H|QroSCn X 4s؆@TVUUk1hSsoAaRh+YÜ7Vcש?S}U]N剋ү> g4.0;hkFm qW&1f~-]Ł|I\߉s]E$Qq/jX# Dsu.ԩ"G# +wg75tɘ*[\!Mh2b9ǦǸB&*6݈hTZ/9d^G>L!v/$׿__Wo˟?[#ر6~QCj\BIRW KZ6E,>dZK`5FPX9j`]ƫ3]!uɤGyeJgAM ycoوF e; +X™lAnv9ßI>T1ɀ3$l(3GBYcs@vibB5T!eE>Ds̈́#Tѡ-XvA +K,[k +SLcmvG|_xC%c:R ! xN ѧzWZ*Q %0I!A}b\3FiQsGXK[+PI]M:/%n jFi, -( ضo@@gh5[0V+$vh@ĦyGypHvR AØu4rM< Rl| C)mv^7q3϶F?w =eLnZ.2Ǭq.k4\~Wm$ڙMk#vqbSCp;(q_OCJ ̆G޷ɋc?fa7 JXEED"H@≂ 0\(Q3vΘ29ԫ8 %q(Mep Yh@B!`KkEX.du_"+`("["U?Wc.Ü13P\1alw}/Sh\ơPIn njH&Vqkyy}߀QםljD .<L(/,蚻l)S$Px:"]5Yu3{HE6k ȔgFE@sb Qt\?.zWX}ԇ J1Hs ׺|+6YLf}:g1^S4~6̜s0^`'6M^%q +>"EN x@XԋEU# +\>6u JiãhD*BѰV[6P(͎5G1``@nd%Bs #/"L{EωJȚdbT:vRc>J㊃0,Ld٨U힔M +JLUk+Kª2b؋ve}O<kxE[H'am/ rzcFj Tȗ%t4/8H0I:בZܛI1 = <V'z[0'X@i_d gv a{F"rm"CHB/ժWv셊fe@:iQ 3zz_"-Y&^dep"è9,3&jnj.gBcxe5 EP$D/"zhGmiN`Э\r3OU: +NkGZHja]ۈb} t!VnTG5݅#*9 ϿO)ss(2tb>^gh֥9!Q QAcᏋ cg sw鏰ih![36ʭbrt,p(i{^ pAšs+ʴ%ai_@Fvo y@ck5 L r i2)f dRÃd@2XtPh A*?tkG"N*VP8Ii{(F+5EmE +dVdk9Չr;UaDH T੺4I j-[DQ4/t2G*C䨉"ܪR).lXzeO-Gg'LdA`9316xbJ:i2AlcL;XWm#ܞP0v`3Wly,rQ0*G`Qf +LYaL,IUw擗ķI鄲@Sk\0#:q =i,MZ^b_y) 'c%Di/hhjѴge_1LiCAm,ɭϒWsiS1"@N-֛&pUGDsκ Yf-¤t%xUp8dxmiJ!6߯¢dh\ hP"MKJ!_? i!iLzxr^8bt;{{̝,Y'ZEXgUn9va^^rckğț2Ѐ + ]bp< $[ @RoP%̱݀g=W6!`?ID1Ҋx0]>LX ^3,&}L9E=U۽|P+BΫߧ%xwWű9YGt5mnӜS 8G-I{ yRb"Wo;3f*Kv۞>5@7]L}qJQ:gK48c r37 <缎Px2cȺ+,a=w$p Ð nݨu)(#-l(`7N $ïNArKcO-r 9C|@ [*^B5Y^CRsKP'):+u c q*f>j&5v)xD<9ʽK3( J5+|L4FRC36kſh[q3_1_EH;H]A5ٵB9D~`WȗdLcEE%ɯאְ@M܂3t8bV,`*=1W6eDT&wuTO nSU`~S5pRmMLNHE.?)l]Lace`BAeSA^"!u!"G&]@E!{"i=C>y)2wPjhNq%H hB8:gtה8e%QԎ-K#bbZ#Z xd +o_ANica9$ɽSKM 8-?rGaү/.5+{PёgZy8([Z/t.V%Az`Vu4@Bh\z^9kP¸ףAhc#R& n S 8'8l$_n!JJ}0- _()T-mwK-f،1(# Rɻ¡?*.xv(C_*Q#3]O*(\vXL?8xM#CO*g7~KJG=rXaCQMS%" p|s=//,E(D`L}X}~}?vTGW~/}[O6}Iz +a3* +DTḳG(C%StE%JO~1Nĕ4ȟޔC +k ![d0]3WP󪡿{2YE[]X~M45AqkAޥ #}W L[pΚ*Ov_ʭi96ENv)DpglE(iUuxq|?B#>\NY1э}䨊*Zj _̗0+hD!~7so 䘊o+~.+p)>S[$YNͪLG6bDb(IֶvӦ`8ĕqJя^! `j) fMSrvLO3G5Iϗ$\@i)48SSРq&95VaCg4uT-OHG=Æ\2=5+3PR'0"+Wwo_Z8[DwW; d(ccQ |oYo[ 3ʼnkwğ{k-b"v ЍrcSB :o!iz0œBB @x3?ZjQ=>(Sbbs nj l|cƆ! +".RJ:!tc$%'J2zGvΓuU PMBygk\V7+76n/֕#hC rWre3Nxm:5`<'jx OUlz` 퐫eY3!:*˪c1|ePSWzdNk8;:$T.U_7o!ϹRƯ-QDiPoi;LLndUȚ +Ÿ 0=ð&dױtٸJ3*=5G|8 YrKu2ѵo)}WjQʢ^HF2 +o<7B5'*$!AUO5lm!ϵk0F +l(AA '.ėޥ:m/˟#Ԩ>B\]h`]|7 ic5]er+anC`}{Ez?zSȺRyx#:˘,{-QoxG+e)iPO[}s"5Vy;Z\^hX'зEs=1l{TxeW#S?aj`z>dnX~$YM=z[V2ӕpp7s my\a.w?ME%_/m!9]5%*Yy}3N^<^~6^DmNh.)PmIO 6SX,i/1|ڋ>goRHӌ]D0c/y=󜽗:bD(mZVJvTNdt[u$UTA +7utkiD ᝮ qmtX9mt| oQ"|9׼]&Yws}UAHBy\v8}2|*RǻiszF/r&+0&/W GK{nxQc&xU#=bRѨqmq68^+P-e(N3#p}8 5k6p> Cq G*Pĥ\r1Frz9c@`0H-oisy}  +4{{.͏..m⍡ow7ܡ̬?-5lu;u7ȽAw"Cdr,7n eŷV~mIG]r=y?ݴ)ا?fN}ygQ>N,^-kr$ຸCzZcG±}b U1uU)A58A5K8V_v pOߑPhϑW^]ɔ,~7^.i$n8C}+ZYtZvCz#=4@^%-!#_O;hW/EGJYЇa ka g°ܷϳUZΘ""5mǸqrܶ0Wpsf-$y|.H ˼Y,ô[j̚Lf̘9_4ZdbTMfj2{2+|f ^完viL`9٢(Ҵ {TA@˜"s P' ḙlA"0C^.d`W|NX6x 7=֘y8Oeb .էu18 c1w6M[⪈aۖ=7ko0?$aˎayV0\Y:%Ős_0f? SpI&mcL]󾿍Sh y‘Zr| 55FgZ>:˷/ ְZ /S ƜoG*mٰFb8r?H4h7\QЇjNVp5?8`N\? S;`V +4pNs҇~@{GnGsY3Ai#-FKd'9\/;aO q$W^&0 +!e/N1}+t-NȀєvŒjX~ ǫ1F ݏv¢! 5`MXV$Ij} +snXޝq2Q2犉h!~m&ō:o3azoa&$a&l'@mKp@۷ ྸkJ*|zC!Jɿ1*_nEu-y io]k f]bYfwءCe;'ҷeh8yo`Zk3/o`rOЗA0K_` |sDd O;t`*g/5oKPsva;^$cmKY/GߨiܧnBBԙ{(n ^o{rcu^ +}/cu:=z3/! y9Ys}x<Χ)"Ø3o 1.^me^\FQ~:4vJ}lC^bk%DRˏ׆C/Jk kauSeu(YmC(!/w#2U Kzۘ%㸣1/h1{ZƼP1%Wʴ>R1pb)W?ymUBy_ƼBƑJ6AEmK>yivHk-mg^ck+ZeZ4 +3?@m!xreMw`lBgz5C5kWӫ4j\^&0|0r{E +S׉W/`,y^۫5:۪y-iKx"(:mM U91l{\Z{:JК#h+!# wl|ý7Z dF+y:xK\۽ 艇{/;čYr * +l"{/ݽ2e p;N?<&iBpfDB\o_2FCR]-\|\]BןvjyWNxz̭;_>cH~v@=gk7̭}z)N.pO?_hRF,~S)1 - G_6k]F b{aˁe5x#_4P)/$%9xS0ޅ2]_GXZjՇ?AI<];Ϧ) 8)'EmMofJ~E^fP<3:nƚwN*'ݵZ0&J@~ +IOJюf7oyD͔Ew>gh`ineaz:R,R/حxNJ K ԦP6?K mm\B[}9m\JCƜX^O Rƥ4!i~*֥ƔY*uZ:aۘO;,&46ajEF5oӨ>(GXVfj:UK5)*VMĔ23ҷMLDĔB͉槉+2xo7SX|v3Wˣ"4DG"DQ#ԓP8 +/^.fAulٙpy~w44_;4=46Ud9el-Wt1[9Ҷ5=uuP۶So8pؤlM%(WVݾa6#lܽ}Mf@Zvv1GE^ +)[,v!(t/R*w i6i,"J9XXbl Wۻd)>ezV,K)>J UptUjGµ8}yZ6͢7LLeH*;>))hyv*ԧ(cT}Pآ +>E!^=\hb+oC1l\&0 Ihc3YEyxA@lY,P ~Ci!iyp]S-؟)#֩l侽͸OioEڏ1mg"]9i"LQL  ad~ձח=zwN/_GD4AƎ>B__Ǝ_?^]İ6vy-6UrZ4IՆeF{8Ƣ/ӬA":rP~2kz +޻Yt'_-%hFzD c]}|D}7-dtPk7#ԙ\x7UeȻvs#69r2s\o!?7JrD7EH0o:4$)2oT3 R2Xr_\4G6oT\ .Rtӆ9WIz3$U]ո~h|~83dp=ow\chweH5E*=b TBi8> +RZd5{N$޿ZFDTgۡq!RhCPZ%0?ւ $!B^Vk 6k7`ig(= 5Dp1W}]T7i{Ÿ_wʼgá8iLx[~m !Q6=H-7lr#thN9lq صe b|~oNt ̸ @0ӻ5` lG@.wFdjMH.j1%_ep=Mwz;RQ;仕_\~ +$漍AzMX|]-?O#> z@"^O!l0^FeȮLo$[Vz].FՊ29Ze'.|5]v[b MÇ%?RknBM˻t+g@EgΦ]QN|)݉jҔ7o0z˽O:>˫NΖE]|Zԕ;˙@:}E*GR/,ˏd7Ç ۭr_+1LטbDyՐ7^k\VOc5F2TC-}pߍ[<K՞#x/42fq} hc!ud/?2>H{۝9ۇzȹi6jIoVf9`c@l};adq)e{8"cRu.ɻءZtr*9v1kkxyN1>i2Llb zpĀUx7#=c!Fiل)[X;uZY^`?j +Ue~R"ӻWdbH\6](N:7PIxB^.>~.î[+|֗;%<eʅ2r :t +/Imal72s^nX]m,#9Pp8Y勥-]VZ,4ʤN+,+=b 2}Y1s|U guX8{yeՇ{9YuM%eUefjۢtmiOc*K,?*8HR^S_fS|+|*'h󽬥[1+5`Ǜr¸q ކQsFINO(ĉX.w(#/S(q R~[@kc~D~4-̾ 3};VVG['r٧xli'kReeѸnC5< `޶/uSejhԮiJeK%=Q{ZR.RƇRxoC%Np_>J!\~OjVTڷmR;ç[nx7Iz}Hm~YtGm$x2BXT" !m{TE}IH"{_ oȥ~sTAxA +em*yE(bqXU[)@#gnZi<0O JRec>j34v[ͩ V:R&PHxH Θ֩8UXf5xPUGuL(41E`=ޓs!7 +cO¯[PNGwRq}HpF #,4~Oї[ؒ!:zaȂicҼzPOkB\vK*crY91>U@,@%9H=U6TgczʼjB<,5˕( +=|eJ Ϡ"ˋWڎМիunN"&O&uYv>JmZy6!Y 2AA 5°h .>9 hGH51 IF3wAc5 ώn5uM<_t ?C)|Hck-/Ʈݐ3[ B2@C䤐+.U,z:vwB7{):q uhUY5TI _(r`v""*KaE{J?IR, +Mxۤ x2KjqRۑxƬ1} St|a ɲL`|`[!Lc.eLɸL'cM@$Qϸөu=kp*6!ɵNUBT!|0Kl7Z5{!:ڳ+ԍvz(iUDoZqKwt3X+}`ÃDٖw3 +\^lzqeW.=j|ntUX$^Amm|q jld2]XP,92NUylƫUW[`UYfxz;1ڽ/_4\X/#X2Q|JD6V)0tCab,c{s-$r+팹‹Zal*ꖚKt86(|GeyYGERK!L!(+FP~<{ܜB p=VpeqܻZ\&[rqn'wĕZ0 ĚBؾZBY#D$d*2WDDtR[8 Whp=]b_KK>bhqx%xHfBeA8(ז2[gƂ{nhpF-hIָT" Q?2=8v\Ř:yEF؊̭psҢCg^x"96`zL}&$(4 ハ%UL4VL6#O -TמOYada48b7S_B6G+v w&4I-ߐ8 ]5n\ 5%j +x\|Vi8nB+񮏱P {CI*.0eb" 2u1_6S?h"NK_޿,|u.̌rr/E\\/1IJF˝Ln 6D c'j$2Q<8"EŽ%$ + )㊉&9W||٦)/y +)>JL= ZNݹ*'zC= Ƕ#dK2ƽnG7b׆lxS`CQf4уT[[i+SfP&4K'gPKJb͂:~U#{ZoD=w@La@PX=42(kAЩ9?b4֨ fYiteB +܇@z:S1~TSm?SK4`ݾ#fzy>z%pZW~q^(y#toXwN"ϗXaR=r^@F9DZ!=ucnMI:\o%0*5<ΘTf}-?mLzN)w~i/ b x?y $q$x94zd3B]nʽa.9[l'/k6UD'< +E…TY}M. HщQqT S|N~7!Z +SyCJ6ث1M>CBUuu+6qQ4beF#z&ӳc5 l=<')tO7فu;9 4=*b/0%g>3]]wvH|2?(Cn؂bM ~=DbFy' xZM2n<8:3G)~0~YYn*neSDs*Wn@LI# ,Ci|-ܕIW|?' mL9.P=PZ <޶O*Oh, ?q*M6,s_t`8PƔu%OY\Tt fx ؄'$zxyJְB*+Ƀ(7֗(v) [O]H˞17#]y+FpH? C~ oeBY݌##xFX[߷cVב +zcV+8nhWAE{ckWFL }rE#4@s5݆$vzI,wCss߄aJxT!Fp 4EXNVw̃} ht c`G7%Np* +rPVoG2Y|.hڢ o~&eLdgvp#_Nᚰks"3m:Z +, qz~tK!uo H݂uåiHL}Cˈ">}ę;Gx,ͥp3d*@*;_ Vc.!% ##˚GI+OxX6 AYhxXؽj,Elj1-ΈHX"a:oz8vս+yL\(y ^[c Wd +P'\u` :?q@(vWF'#+^lB=7m-yWjV%+*W +x9ijHí"3֘JD5cMvh BE!AK/T-ÐkUNJ gnG +}2d>,14Lwfs87OqR3&0~sUX[.=ٱIS +kGة*[I6=P_3~I%t3@' 3Ȁ14J w+d,+ uK ӱ??ao[N N-e:CoIS*sOK&xaa2BbC `j ˶ܹ P̌SR~ +JJr^xȢ&U#LzgR/ n lC021TĂ +Gߞu)^8B#yuC@h%l,;ZG5Ay"1 +2Xױwv\ǩ :Qҭخr?Aۿ@}Kt!Ʋ :r(9\C!M28墇Ύ$QAo.4=O +j +zjϙ`{!<#:9*@ -݁VvƋ^)yM:rF j$!ZMDn( M[]#(N{} <YXT/(u5h@$˻c 8cE( ~ tϗ-`󡹍y:'CEZp{"@3d>!&gwZO(^mB́nTdTU6BB^DK@.2tDoL}qS|=2I,Ej"pKQ=3c7<ԍ8ZIWIm,ʶꥨ!<^v*1zǠ̲ޢ~E=~ +V 9ގNf#CȣuFdM?Iۓ y/ XO^M_P3HkqX1[aA:E_U5|5<DV~I/dfspÃG:c٪ +=bЖ:{\eRE +RCN;&ҭ!G8''S.Yz>I8/#Pa(W*8bQTY[!;Y 0ESWDp @*Hkk;d l' jsR +`aR/m~Op9P󙶮!U5b˛ޣEǻ 0/`&rFؘ>?<a껐kLDEhc +j+?"F75 st+fI8gNe"t(c9Д!μid5J[ P"C̢"8eGj`F$#*L~-@IT,blxDD`;iY'=KX} +2ݫK"4<ɯ\ 1ӼomHr:W-MlH(R8pognn4hGBx#dO!&Y2'Y1=CSQ'ez 1UC:%b[_~wC?ՙkJ1~Jqy]1`ۂ_ ԃWwt4SqTikEQ;ݚFUji AHjx hNڈ#iolPB=ngẇt]%b vSf0uŸ-fy&OZ_oDңS/f hcCqSJQ%>JiSiPZfl54>ml1Q :gu[[<5jt[2B|wf >veiʙtk4S-P0lBCoJ8$Ì!pF*<8%o4cT!uIz[ vn B?=^$x *5_{c&DBuN- yvŲi!Lꨱbm㴶4A]6ޤ|9؎Y#> -?ZMV$S ܁[۱91URq ib3![^k)|ÀD1:\9| Ae:v ݒg*y{;υRReX\S@ (^CMp?w:E +Si"wބimM;eV}rT!dkd* kP)hȮT)ؗOqr ꮃY6#nbK=٩s SFR stRE!Kɒ^tMw*2!\ }XGW 7WI4(UoabͷZ7E dG\ p\[Ԡ*BrݾgOVE=VLXBFl I>ͿPɾCvT΅``+]|&PuYgG`sW 7(mDXKۻdez-%\f9%l6vFn@*W%MYdeHvVFtLjc_GG%oDd8݃$$=kA4s +QC +h8 K +,k4]st;Un8D3a7} W ? a'b +\wZ=zbtC惹3?U%?ZmGgkq;<=5θ>A=ҨܽuğYۢB\ե&"u\dػ@뻃q;fS0b6_!CObNC m% JēD/RO_Yӛa_"Gr94΁Ma'N&IH!(|@d$!q%O]P骯4 *) fĆ?%9oRfDPZL|?x{OrjLl_FZQaEi$([!d7* *Q&*HCqtG Ga$ޯӐFM'=?;@,cG0Va!===LI M2VKv Ǯٹ/}vdNokOBdshyJh"_/:^(+!p5]k`Ë5z8l5nìJvcg 4Ĥ t7$WLbu-Lwq,`0/њyOaK&*y̡c oP=%K ? j jA* _L_/VhKr|zP"y[xm҅q97Knp/!׸:Тjmbf zVns܁\8T4@AA%!`ΊE^ Jh}"AS?z7kZsq'*D$.iBv~^t56fƓuU6DDj2 $qs]Q t#R25wبg$E[_+' mϐ(P*HaAjx))[ie{ +gAd9ÜRܗR\]Kk#X5;FT8@h q\-@Enюjz9,Jq,-Rxiuڵn74M~_t_3 vx0$D>jCN;2\9^,U(iN_=O_T+7/.=~ptE~Z)j=G8E[XԽX퍴0Ń(FCim"\._~a*8-޲åk޼ 7nTѤҕ`Η]LIEFDOM6"2$<i +p*ǐ \‡n٥Wȏ; n.xE]ײ6j)}3Zdf0X퇁J7&9+k ޻/R0`|ΰƦ2+P>h XB:3`;0CZ&v5tsn-& C. \ zۘqDB_V7U-w +*(=qRrL$_J9*G8&C` +zP 'z_KLq c'YdJ2 >U= tbOK$k;Ӥ*(yU46K`V_MQ27e5(-(;eH7pta zqhNJ=C2c##=BjCECY<6/u9!fJwkG}H=6X<9PMa1{mBp^2J%O$mi}`4M.buq: ]狔`SUB[l5"'s%)0Y̓Ohꉩ|0 ֳ,wSk&T5SՉT[ =$q u7"bW(e2VhCZAZS?A'oKb̡,MR]X[5մx[+ iF\;.HS3k ¶\M#q?p\ UN +3)Ss= bo6J.G;iU`!;;C>--C> 0]Wߝ{t_u+m^ +ckOD0 􎰷 ɆG*D > `㡀0=B%T$3blķG{q3I0]tpDIUl;dLۤG6,TU?J-r)9J;JET_ll`7m$& ND}ouy[D#/@H{Ug| sJ,fһ#PZ݀E@496F&l{nvVζ3N\k +t-8geDBoɜ64gk,Ze3uO%M称[ icn|BB,,,=„ZZ.t:n.bT,{iD\o0w;c&< +6dEv!T@t N"Պe\ +MҚv7vs^İLC f9Ah\i!x*f&`(2IZ9S2F 1>*Jɸ5 +7oGD(ZKak2{ apBlAGR4s7n^.# 2ch(kyYM݄b/ȡq7sDt;/˛+vpꔳy (|Y"׽\[3 SɤaLj;XZ]Dp2ܑD_{!\|9hI|(\^)IqZtbOjtԞ/?)HEYHN˾ +X#}F<%8ٞI<\|IbJJLDmW)X餈_)Gr!8`ϋ  vlBt:=d~YiI09!%/0=qa(Mu1(Ю-YGkwCYk,gцtP5=KHϊU>-&+fKY3^ G^ztkENi Y+h!eWل*ϫGÅ֥gGT![S +@R݅dLkh'eKUQhz!1@u;Yu{\Kk9#[Ȕ5m6Ek &@`˜(q\acw~&ouFb£u}kpw: MQ\ uQTB{)Z%;h s_c +MI +ʳϻڡDcS>uٔ 5zDt >YX/9\=$’;ReGMFn=RtASˑpvGb@yJ/<] T f&r|2"$vU3)3RK5& X,Hؘza7+6R;l!}R&fZD4C(Iq ):=0=)"=LTQn}7 b ~&zA[Gtض(஄-$"śn9,6EɮP̱Ⱥ0wu:\}9dSq9z}:9*@k +M.8CQ ')jRdjL[- +mHn:uF.,Wt-R~VK=Tn^|}XCE5\Ϛkx,]fAxEnxFvM`avz9$ )R|M=r,գ7hzWqCrb#W^"eZ2(ݦqk*UЂwL=FC3Efp:j:Ho"&R*q%5ث<ԹGK=uIIF4"w0K.͐}?`P6N-] +|O"?]Q$zm-8InB+ #v59)g +9B4 mWH.a.6]7Q^2N5e/W +D7&W o3{ 7^y\V,P.>P`faΫ%PoVV}!6S AbєHy#~jcPU07Āqo27Fӭh@͢葧8{yGŞjEvO$51vEn2;-TLʦ%+%@A̒ ϕm݇ zH_yF6KzhZ=}R̫r3ɧMgW"^~&iݷ4;ʮA'`?v IBKCx:5r6>4&&Ŋ2@N#*2qo#Y3aMUOYF.&$+!*Sse]Ajm@Áe1DIt`ϥ26=Ѵ%@Klʣ:ME9{O~nJ'z,a5e@d4d$z|^%T[ryd:⽰H(OpcR#1&j[D%QbJqaa60:&o'4Mi`)紗9Rd +t@܆_@Q@%}2Υj'NLeAwLkmO1WC]Pq71i-eA`V& +æ5E :*= W )'1E҃x@?UOb 芀@n@7s5]]!FcAf76A+WLl(w%[(gU$/"hʆ"l z]mx/ϒuF{H*)ChKKn+/onsrFG*׵b8(RT(F@E YR$@n }p_"Y5X`O?~_w_??_1_}~ogoE|"LU~73/Di}`6~ LG Qo !$/jY&n۷P(M8gRgTQt5|uׯ{"Bq{ R="5H&I, +EmCD8]WOBsƒ<}웎Fr^&h> T؛e&PGo<'nir"+mm{WőxDx&ưoYV:эf8[|L鮭? +iFEЛpTÌ'b=鼩| Jp 3<| +vR𿎢%Q b''w۳q_ +endstream endobj 58 0 obj <>stream +2mx ;nVIج>XA^S8Aɘo:ޕ&η%T%$YmSaтrt; kW< _#R2ݤ +G%g c_4 FI|2jS;"Ҥq@m|HX4s] ++t{'Yu}=^x&!JXz3_i[6XUoڻΔ*yΞE +,w?XLlFR3o";ي{vd1qG26EIWo| +D,(DUڷ5q%oPcz~+}P5׾VLذo6Mq`dQ{Pn8} ˉ[s\ү]F 5F*{փ#VW4`Z֪-׃hooռe8F >qۧOٺ4© `$3E yj]MKZ" 2/ +݈9C#^?>QTH.4M&_rke/ ,9ԽP 4XJV6=WTU*c;)a+!)IC~@R +aLJW+ ֽrDq^+Q\ V"x77rIUҝB_Edy9og=)svGcz^ hMv!Q;nϞX*oJVhxkeuK}=M/nڭ%!ts]2n'ƚzAر n8ETZ.t=o5tYp")'e V,Vla*2x6=DJyP琚>YjV\Gavro(9!!:*-a*׍HJ wc#.!.4M,Év^Pԧ*P[O |vXi:SǔN+kj>&QXNͻY@L x5&: +4x-jE%3^ Eg&K[|@B :oԊwbABک6قӪ(KIi:s<@ dmm`%k\]X+.) Ie/Z8/$F(hjj2KDjGݞkug,y,f]]TR FkIxO=9` +.=K0$ot2SS0Y2wT B[4>"% hz9{4rG46[| J{lv i9lXEot!`M}g7$_p?oBODG̼q.gQM@VZp޾"T&ŽUZC{^/[QF)&~;xy1ޞ$* au|eBf;L'*V M,Jũ֗.JLa+ +.jLlݱCGD_G(ax~i+?'4N=֩* b32kSU{ Dڹ0$[1[=)qُ03-pQv+R:z +hBsamR%ēؙAz]a"<\5qW2Z Y=LǠD!4_ןl2ʚ?sJAɐ?rKv(ؕ]gs@f\{c{ًdd _M0ӷ l%.V6-p>f bHx.T?{d3í`v?9jpH85VJ ƹb #.!P91QL7nH$s`9YVn֝<쑌2bMRN +%CL(WQ(X6$q Xrlc^h\bf&&(X<p^e{VK[QUiDG7@M< geez}kԛ*[Ru)ifIAJjېH»<;Y̧ʔw +553Hq/rCev-Ì=u +:VxE=mtr} ? %p)%=p&/梯g͝5L։%#IխMv1YP;9[ s͆vzxFQ"PPSKraUD^ + +ˈ.!+bH;DB פS\n}HL[wHs &AqCՃ][bĸ6Id]ӹMBQ*ɹ`cBx#Pܲa: 07W"ytu$xHdtErT*0ԦL؀7Ѭ5.ٹ5TDzLΥ}3_(*Z ș@*dd[+\N\Nt +\šA,VZ3乥/A>_o[e \/%ԶAvK3 fBWaE4 np +ZV㮙yR盶3A](Y\"H$,B' B]$9K͓P aTq7o|1SÛTkR D|2PT*TpGG3ڿṋ[dnY;TT|/_=qHI5CtO>: kR '8p.$)|1e107k# 2Сx@B\(@?&GL) +wd:Ie1-@5_%T露+2) p7;I? Fe~ղԄOѯd'4j*h.c'oϬ[i"bBsCwቫjAUpQ&9JTR1,QYg.dKeBxa{KΟf5$R=)p}&uoxMk+Hh\,%|@;: 6S!sQ(5?88ŃS IȲ%H:H&SVi)u[Z\H]'Ҹ%G  +2xs-k~w*HSnf^kj6rE²E׊tk%12X~@ɤdj,.~W1tuZSvarSfvľ^H\ds_Hz(^4\ C.l,V.[ CCe(n8?ŤL DnCg$ȥUTbr!z ӣ +o-GcJeyռdD|ZHL_lu0 {t)`r +ίb- ]q>E}mYl(ѸT| `uZ`-_J{U21əm^%nTK@.~&!\cE8POI(nBkn6!ϣt$fP{$1!#*+QSK*WpޒE]HhAUn_Iُ n#h.KmB4CecKʅXPkg#<.nIb!~XQh#I7)O + `%|)pm\t֪yN+ |D+l״M> +e.QʎFQŰ,`Dm+E1&57RQi.y'zV뱁xvM*2Q^R/u.!d,ʥfwu{WSD Bt qGr1!Xx+>{z]Y!9kYg~^Wtدv Kr@%qgg8(07$c".wIQ!d͕#\DfRm706YϺ. !6Yy*BLƐA#QhC:mՎy H/9*FQrHuÌTmPxItØs!etD8$8ΐ+R-G=O]g rK{ T'HC9u xW4 +5i1"/A kA3 }+AA(/^wF^@L?׻n3z_9^SB2 )mֹBPr)(T բ +w\u.}p)ո:@8";ai*)lգ9[D1Lf7B37)JiD$0ehAjk$(K# ed@-bubE_d91}Ah:9ax{Դ ܴi?Fp.%*kVby=ѩU%i-`PWQ!e8 "EySDŒP׮ Ѧ:d6qUpG҈5BXW;}od-v!lIs|~H,Cm(Ha-%[R=Nz+Nޮ3FRJf@ lVOEaDY$0"ФjXA[l &(yh?RSr*ɠ(Qĭrw6t!N"VSXӷp=4 #"YK/YTi?z$P$?7@ 9]_Eb(JO5ݯ\"Z"Á%yr&$DE6{ +!JpCcqn@eY{ U$ +BYnOl|D c$a[*g+\< hQ>+۰}8J"SVɿ Ol݁{`iz=$Jk!Z`H n[kX c{|޿ 0BØJ\> a 0t jM,g˚sTpEr(wKQ_j*-&]+[#2V*Qb[A[HuÑ>І]m$=J!{z'i/_C +9ʬvT}Oopى-_r3%bQRswۨ)Kvoa JI I*yʼܶx)sWԎnu&D hQClOS†%kI=⧔{eRN@9R֢rY;sVYڙv(z.;8UYd}wD%éf +axٙ##ʬr-zɟD#Bx'JBР_IU+XNyfdQ}y#X=7Gr'/θ!I!8?_^eXPR#af-WX2P ԯ\v"s5ġ( ]WцhU! bR,DC+'F= NkwC=҅S2Z̦ΐ!(-81-81=|MH@1rbA~·q s~6$pFpe8Jzr2~ݥ.vih|L'1G +哧&v{<;&XTʗLnzKJ +K`54m`]wF <7Us ڨ1tem|Sy#WX )T+sR1!'7ب힒W\k[Su.QçWC= ŷ%H@C)E+~j+)e&(Ж&Y6"P#VOZc\':"+e|ZHdQ"֤ؖ;tKbM^9z`f:dR+ud[Tl!Fr?fDT-ܱsU9&xk!/ t"LA1JNc4+ I +D9(Q ±Qe`CpFX%X( +nQAb})Nb䈪 yh&]{PW|*ً]6'3|YkMV0WtD5) c M=KyI|}>U?Y~Ĥ T Pp|OxDTmy| (֓,C4`5!Mvwib>$B)!=8 MkuZh T0I^F2E%)0Ӆ}Ӂ "|8Oj<ߟdpf#9=|pp?>.淤ef\F@ \RH~0j ЖFF5gߵ“)(@ ۔\kκFBK*qnݪ@M7+rlK^Onoo|ڇK)+X.qؚMc/&7 ?Q_|6eNLHBHwj,2Ӓ?^!BOYXT1oJ ·,5"Q\6M^.}RŸ;}0C %:u}%97Ů~Xa{M:nd؊!80 +aHK@D6۠xx}()ǘ6 *J+6p&@mQZуY#=Gِ@`F!2d sgl-G%MF5;hG5 2F+p\SPz3NH0\ +ecVHd=|-DCtTH} +%N$ &VxTc#l.)&[Щd26"C&x?p.sK}.~ɐk~.wSV+UNTUm3#zCcق&FͺYt-(^W +ڔa`R㉺wE8Bښx \mpȖM!5زIN*UYHF4JGHiҪx[ k!~K?ߞq{#~ Z'uEm7Mh6jB:l\'Ϧ +0\!E O(Jv9wPu2jwFHeg͔rM*MtCs;AH"?Wl#E,D!6MZT,r{=@H@339\zw{1N1”yU'9}TtkVd3t$:ԝno},X@ +JiC/ՔJ:0ؿzlUSK*CMZ#0q @A ֿFJb o:4˛ڋRDg$Y +7消ª(B>9;S^` +@O < n 1L/Фe{ld-y]hxr b$ \-J3 b& ,1K\K<bYsprNEh2N&(R`@fk%6xw54$EVz`2H )ֽ5-DYS + hZoLV83PY~Rk-Ec,y[G|"~l/u+]k}dtkwd8 +zɬњbZ'%Dµ +Ẃr%je&@$n9nݲ[ME1bן}Ӳse.xvW0!~ܗ{pct 5{ҙ,akț.+&^_سMQd(%Ii!jSFϰ=w8qD=HE*?_UBm]'lݠ6Ar6P s# fx3/3ws 뉋䐻oz㈣Ʉ{)N B 0Jp}hR0 n!IwaB # ؍0W-;FYFrb)NHi?RD%*C.D((!מHM®bpS2Zvô +\9XbqorXBZ^c Boq:oe6j7˕M.ECP@;{0D<{{i%pmd!hu+0:_\hi/F)\|x8 C/I(W:`4Bva4xa^[ש?~v~wůOկ~ݏogow^g5ʹD?p:_߾?Ͽ7?ǏYJu_ ˟_9^\;)#oϯܯY/]? ߿w7?W_廿ͯb54/?oz&nˑ?O:6}/og??_Ɵ򟮷w/J6]oۯwAkjokN&)jH}7~kgC+,sщ^PhoAs"M+a'K$>VVu0/Z=jx鰦Cty0+`~n>*j'C"bSFnL +?p t{e/V/'u}!MT܈S.a q?F=F^7&(d;/#ls׾+=܎Zuܻ\+jq9HF_~)Zx[8 CsB'[i +2l*ݎ,zxִz!O[6 y?qE{>WFbg1NZ&=(_=F6uNnE(D֬=%nqnܸb̷'P)P4γd4O .ׅf%3:cm2ۤzM[B_>7_أ|K4Nyn۳\Ïp./MiƿEnOw$zs<;Dшǯ-0/S8g.f]ًk|J#{{|r]gt\~{i/7+^3WOggn@NX΢!@3ڇGJcn6 `*jϐqӧs8J:{ CWr~Pvxj~њ{J>(9m/%s( ŧOn0ܝ5_sxNNS,;=tow)-Ec Po_(IXB}̀SW$D|szs>|SuLs̙1r)8&AW@jxN,oEwޫ8 =ўOO4ƒޝۙ%'W:E~JQķ>.`4s:HXcs2ܿhCi 1x~n"ww{LE?N}nOՋx,z1G}>l;`?jvB|u󣨩J<Ovߞmo_RTrtlK(OB7^oPnm |v/Í&9CxxjjS?~"ox#a,f:ǽٓ ˰ָ@3" v?3@ipQX^VQu7sۧ 0v9$VyW(Zl +CؖVQhWQF: _@DcoT-yrJ蚟Y+*'O=?';u=y_EE 멢hm}ZJc=𡱵 FK/q +܈FڞmA,@wj_/%K^>ޟKQ87lܻQ:O3r( OOS~{ォdd,?W\Js/|Y!P/M$8>"Agw:s;PjOɩg00a/ƌ,\"B&a:w9E;S> 3K>#[lɞ:wկxF(?Ƶį1Ȏ ؍˚_QJG~ktVR+&N#3uoicPܧ~y!6 ">I`P<q>?7u8Oc7'>WS0$z}/Uɜ[h7fÃKǎ;G< L~vX,p }(1t9gD;{-A%1i|'ygj !{N9YYO{;Ѧ8O3ql;>, +cFvB~A{=@ޞ1%u+r\cXΑv?3cdF!nLu9wPVy6nO^u>m-#$snϗ1'2Iŗr RܞvQݾA뉬+jƋ>c(Ɗ PO:q#ӄe{ yϨDAtCm/;2>'j)0t)_339B;s[o*{ +9-*뫱GR8x.q24tSdz#[{YD,$4OLe~ܾϗm=&fSh/@ ~ rhsvɬEƓbR>uFЬEK޹RN%[~A +"y|9O؞,$41FYZ]5y cɯ{bO%pBޙ +D7^Ѿ=)c,{s8x}7'NP%TDF;O*6:~2oDѳlKpنj #sѕvg_j96@O5ayGAK$Ӈ)r~."m\>[5Fz!t;AXN%!ˍ%Ŵh!VOL +Da@vٟ'8RW#t{nxݲ~؝$ej&AS"{V~vd2W191e˒rc?J{ ,OvpgDe({C#{1ufĜ4enɤ,=QlԠ,nY4%F֋}v8FHWc{s7\lzJ66n= 3S^΋1@4=іgItrzܽIUe%F/+ꞛzRYi0~ogwFn0x&2w꯳v9Y\y~뉒#ԳN9Tׁi+giOY7ƏmI4q::@|Fcs/K /02fˍIy%Sœ{C74^g?LF#)S')pЈIJD,]Ԙ;ySF RxTlƺ+7L x,Dx:k\.i(oB*qi_ |rO3}#]DywXTgbo'zk 1W)S?G4yPdH+j=Ob)ܗ)>( 0Z=!-e+kT+½S0ކ̸^36"}9͗SKm04Krzߧw_Gs#ǩ8^Q-//^<, [^5uh'NӤ*A]oe\R3cTZ-*} g%C4ϬbPݸq֬s7b0Nfiϒ;]PT@`/q$hcQC6H$a^Xh6q'\W[ ;6y`e ܼ$[q񥭽~~!Sb6ʹk7n4JeO^ӯC9a5=E(t~0\aO3ubNv)2ٗA*USAktÏ#ЛtFĖO_(;\wꉃ4>l3vHaߛG1ƞyK"ZYDʙmB8 <Юmϑw`]IoO*ioͮs+_mR].UUݷ8IiC~Gx)ձuYZ;_kPE|#)F_Rטў +K6!?~`viRIZlzrg\gƽD2l7oyç91xJC̩i2%|=9Igwzr> V;بt^uXvD6xq:gvF/!W깗&;SΞq݉|;c.o~J;ϻNI ;}kٙfmyM=+h;|;g97߰VA7ǔ(9ݥ^CImw7 $7w' P#r?wꇀU]j})|-&~-7%!~O#%2x>}v3 Ci`7N _$+p't]/#lo;y {7vhkGJm= }Om/4v"omO/3!{F /T(/ZVGj;9B|T=~F׽l#HVyИnpEUH~OLlg[V;!GFۛ.~yRUtp<ꢒ~K[/ϋLۼL~fZ>Lps_FnGB 3N]m#Zݸi4\wlyoqvư;-g_[jG%[=6K$>%ַ;p@\ε ĹCyE^rHbh|"&D=h>O~%(!E~}}j# .eϠk[z<(_coDZ ffǤ8+mL2vg%YL3333Z-bN 4]4n>P3l ͬdBB\ +Jⵔπ/c'sqLpk7tPTWu|T)l.!rK!o˃XDqiMTL3d_)zA]x|XL[R ++uۣ> XS#M4WJE/^jRct [vHi-X^TJ)x4 2NP=c Ģ2qϔLKe3G癙D*N8H1B2X, .؜٥`&8qF(5%1 B‡2 NG5B~L{Mz^} r)*z(-ڽR}oJV!$Y=;(eaJ2-<2f`M t9ujJ&`!8GR!2. [rq!..؞"+&U腠F sjR VTqxkBDo2S~%%,Dfh4Z˜V!hT3F!h cۯdqk5,V7Z j .VN{ }m2}ŲBJn\SsGӨpѝ3k\#] D8G| 暅1I +I5t =/p+ncL*` zNe (ȣnL$qrM΢Qu-p_uXoGZ# JJ`PT r-ga'}W.jkX%I&ד&s d -x3[ɄdfOVŢE$e)DL0{jf%Dz*IOg#Xt; q1¦A(#+PCH ]&QHDY0R[aL=TpI}ZH8B8j>EmkuFxL Ir}L6^iinuiCh8:*7L,%g iB9z!(F݂{ۙk<{z"tYfbI.JpB>.Tٮl.4m mci4J 'Ub*l6ӑ-r=7f-IC-)&eAWuYh/x0ՍT)]:!WaCU&ԴI f#q wRdbVy"JWPBSgze6qꍦg(! u4dF̬\vQ,GYh25b-[ۅIxT,Kc% +ѥBL>]#R93mX +fk=apfisuV4ܴ=c *~-\7wIB'i{6!V̴8?Q&L̞Y}ҖrXž̴p^yN,0,4o@V.^-1`gq5BMg͏"ʎ\I@ o22 FE+0qqZ*D/*jˤ07+-}(>^a!z6M֗l K}¦JY~(m +-]5 t&.qM@GʹmeKCIVzdRVmȚnNQ$zke&f\?͵L?H!+h} +- m +5LEՀq؃H(6FsK^6{ TjA.B!2gRul|/] +џC],3j;eFL*WUj. &5B`ȴhPP菶.1p +hh7ze.Ba.iҕyǏp`Q(kCރ^MhתnfJD32#nāTcd!`3=݈(VCA%a؃PrCbs=/Ա2CVB1#|@fxnp^2T(ij,D\ců댔Xd%wPi+B; aeR3"zȅz,!.m.1F.% ;R3b'Qa!n҆tMaO,Rh_P%tFj"*+4(x[eZjL\D&UqMVrdNSb31fC}c1Q!.I#]br֯ 2M_38tTZD,8JL,(I^* a)&+FT|0 u2P.^!ejk [A‘b$S-".zE` $H]{Z+p r+tmޫ[#y+-6-O+ j T(TE +Kq6$#Dwm4n%B +K=ڭJܨ%k9 v+gCVbXIa.}ba[!UXjh +KZiV9 PI>(zŠb\2^oq2qЇ`bf"RX!Q]Ox^e+'lSp(`P! QX#[ohi)'%=•r|6^Ӄ6zЕ"Fr݆d]8oq.FX[˙wqٸBɒ̅X<^Pm21Ct+d[jwjuYWN?l W!5-ÁuU%^Sh5h+"Q[JSdBIb]EmtTԬ99 ̅L{B*`jhv[(BIk)78_Zx@(KZJz35B|NMmfRC vN(es֕ʞ~^Y{m2{+XjipV=nãL*>$Tn%ΊSŇ 52P].V, ThX[<͛, NaKUHQitڅ?<Ƈv{Rbݎdn-t +rw. n/Vo.ݖjNg[w4ӕ7F{WX(c\uZf~MK/탉ۇ-;Јx8 +b0((q5%Ade!,4\]O*j=J&d Q*py* `ۉI238h5OOlӕ7am64Je#~q.r|;!I_/\uB` +h[|?`s\ȻM(-a)cⶔށIto?6 +j9ו$OtfޙVC<`ZҾQbo_C8ZtUpxHU BW몥 àQ,`!:ڛI$%.VW'%t-)~XA=2zX–lh :P.BOlЃr{ҝOvKMyVKMVQ, FPo\an)f`Xje d]VaJC BJTFޥsÁGdCI5]a"-k*U!Xca#UȅX7CBU??8ω#vxSm7 +.pnSKb#zS3Wt#RƬQ0bI +4Z@K 9aě +JϛZ\Sa n6A,F G⅂bQjfb"7k/onbfjքMM\){V+"e-nZoMc\۪_j?a~=r/_Ưj,ԊA/u rq[^mBԟ5F_h.xSR6Gjh}[YqC'osW&R3jPjUHɲ%k%֒lIeب{sƽՌdR{jVbЛpttmfl,[d#YJɪdk:``5%YNrd -= ݂ U~mܢW;Jڬذ.!FJ>NFxԇdقU觽Ď0 =b(`5k5vW/=7!i ?J]0FX7NGy0I!܆\p0.z"T;L\g§NbJrF,g<#r }|R ?4w8= f &ݢz;u1n}H@c#7ڇv Rثhא*g %B{AƤ{1Ɩ V:8(z90{Qa)Q1\ζY|ɔwd_;Ϋj%e]>Dq`a<9ƉlʖЌTH!j/AG$= 逄tth&zP; O$d,X;r a¼>d`˺6ENbc޹j[NBpFhU +V֚^ҞƖ,[Fb밾+/__>؞5Qq(ކjuۀ +.fhh,^a#Yk97`R4K X_;u*tݪ%6[Ø*1̈Hޜw/a 11dn2S2ސzWqZ!֗ NiOoB9d1t:0v1䍆0ɃU.Fs5X4$ I ƌuTP<1긪 |l8&$e0A`.r<4('={} #-ИOF Gsv~LJWfPqAιI\b$6m1,g e|Slr--_ЕgkPy;fcd`@3=Ilz>f"6۟F 'ӡCilx/kĺӱiHG.ؓhaFLAsbB{`:Fn5%S:R7R~p]z٪{e\dDQD~IЏʵˎqxF CHf}0q}xS 6!ٗN 8GX\D(>(o8;GRG]{Qitlh&g 6{t574?90lP>"o$3 +CzaGy|?+8jƧL#Fh\ +G-cL9}dhǖ݀u ҟsAd\1)`(җ 3|x*\z4.w,.m +W7f$ð!̇B2A@A_\X<1@昬-SNӶNƥѳ6_I8KGkn:y^ ĺ |*U6u +9Mm/D)? lRD6t W2 MFz J\<x<ϨA Wm$k%B](} c%nm##f!gt3\mQ[to+3T#[dp0RbKGգyC(x?lX;?ћ † QrUKWHT9Hr +4RqHn`{N.DG/:t#ӏF2v Dx6f!em1t5{1XX->tP .:w;,E Z㸬li| +؈B~!4PxLXpx'XK\ڦ)l޾9Lti {S6u#t,70 +e'RIA$wS,fM3:M?Gk# +G0CgcY1 +t7֩HUh< U~X@aCx}(u/{ҹw|(bDB=/ٗ@zQy~A?Fz C:j$YטTx0BX@aLn&mLgfɆ"]BiKat\ohhɇ= ;  e.uK7@/a3Be1ly<„5<#܃׆W,D$ :*zQ47`;C>l,p\dh.2{6 6dtAHf.:P\80ldp>s.ɄA7WXLxp=+. s9alʱ |)LlRxF Gd#f9gygS%ϧrͤcѱU׎3:6k4:iD&8B5.e2d,?ien ]7?A1t/̎LtALX0,AHfm!)Tq}I^$51.h4:,>KИSo@W}';xcBt#^oo 0y#k(ɪ2*l6h$5KgM.$ +؃1dJG{2%糅KkCkv,އp +2!|5/)C9y2.^18e"d=<;p7]0[xL,lH$ bóc3ƒ 눎XHΰ",l!idI4_<*%Yvd>Yt`ݎti (Yu% cF1=JG/s̠vO&PaHV s)t&HqTUc)MCs T?0|tP`?{0S:AK :FdI-CDFCz%sp7T[3cv{/{dm8qg`CG1c{ +#l좌w&5 u^:GhcUpK:s*f,W9.EE>4t 7<5 %#A*jC NF=`.`8R<`97 MnHDT5j^WT?l|j(>:Mju@Z h,B`d|N~784ll" zc$T\h -! E'?"vvQAv_IC4z;^`M~f[>gS좿ghP6(=7;Q2I9d 9#5 ܓ JGs8!pF +;F֍.r \O?62k8SX qdH"{S!h>8mNtk`O{ l:b'|td9fLG 9 Es1t?CH`t 4 8g+-ؖCkr6aP#MRNF 61S0nJCMtWl_=}&!pZƶidýoU X|XUom[TA?2U>JddGs(.dŏR9Z0\d >?n&0~ ṀKt5#䢳FaRP~ aMa6HIM|8–Q#^D; }[zЕ +LxF80Ahp:(o(qa23# !\McL2 +IBnHk dX8مUWK`ޕN2Ь0{ 6t +?ƌH0 u㙔Ldhnq}Hϸ*īup1.T<td-77c<=6PŢ 2֡)1co =#lOą ?`dVOuUJ$.?%9#dI rԞw]!ʮK8/ÀNjYtd9lƭ I-&^}T^}ب1WKtY)[3!ӗMlB\U-e['M㩸F F></d.an,Bc/݀JRT1 faPcas~IGU^[SJrvRב\^N  8'O,/XH: k0x 6/^z?]{cbMal x|F wJ&`(Zߏ ʺ$Wǖ]-fC.,u(`=6n<2 Ȥ5NR_ThMNB2dȟ-c~Y=8+{Α<oRY؟?!C/Cyf +7_goE6ct`6W'1B|څc+S0_O"ȧn.>0ޓ8A&CIE# U*<}(%:w,:e2OtyTJ `A/tޡ/g [VTJ$LL8eE9s*p8l^(9&غȆMw+YN&eJ̣Jc +~$o؞Fr9\y0ʪReKYzcu7k"KGu!lt >Fs^PaÄ́W#ߙ거ѵcÅUfн!yG|dJa &gmB/Gh6$a0&~<ĉD1Sr5쁇j +:a{R=/0Kp:&h8->1!6!9²q_SZ>琝c_Wrd_2BзAd"1 qY7ǣ!ތ} @ ?8t"Q{ђ*a>d:u(||B{qLiBT)}3Ȁ`wn@;yL6ӘK"enJ֝"D6s )aHNn-f/a3zD<[Fv*CG9UyF~/okUd֧ ?.o{ј_ּ_t? ҷLaS6ɄKnxLrx_Y~ڂ*~Y9UpKW6O O#/ؼ}_ p:U@%a81i.zΈ#3ڧb m!qܭ3_`?73-7l]*jˋU +2ot +ds`m3pɘ6d |<0G油;fqUX 1_gNg||'Ez*9<:-%:)1WCsc&Py.$o|EoZF4w/@d.=yN7qJfcRUKЉ'٩WQIH@#}3HAkoX;?b['&&@ -%~o;hp&3^Zn/&.8}mUQ]2e 9,mtuJ :d [|Д`I5X@]t~OdS#eӛL@0r`lȪX>sv΀ }vL +NΥ:LvUy~[M`&_K&P9GClvCw1Ñny?oEg5u|#rT#݋9/11!#iEۭSc v# +qOnHְ +tz> tƎtށcƘlxP``t +f. 0jmo~DZTQs|Kx$5Tրc"23khƎr,SAAF;W<M\Db(΋*GՁҥLsg!bL)dy/c^:) +iyXf#Ydd +; 㡀;; FC#*Fˁ@#7! d M#. ε\[Aqȶa{TH\+Uͷ7=]EXA2b0Ɯ_d#җǔ~o΅d ߚZO Ռ! +pGD٫x ׈ /A\M]Z7l)SvRb wrΐN2 2WYsԔmlZ K9a][wmqÞi:%@uܷv%, 9$C̎JbBeJ4'}ǴfV6w.3ۧBNGfj Y x)>{4p<>dȖ1;0ǥ\/1Zn5%/g}Gv7@ vt'w>(evAL/C_ImCL/`b_As bs#} L}rģOeZ<\kA.@v\WJ +08 1xS`.&o4e:ѦkanU]KՇ9=E{8ZklkIk*?qz 2jӝedtY9wc.>:?mIԞ$;PZ#P]d~ULLc +B6 R= lZ`' x\ l61 _Ŝ6gtrRr= +PUӅ̶.;rpEZ/bwwR,"6)> x7B!]ž*7N0aE#؊1X cǃ\>nFu`'Pi;Ph]FV$FraQn3c-n\ 'a@>id ?A \5)KH_0黦1e)9˘p.{xQևC +{*p&8@s i&H>8GC57<¯+&rgC~/Uy\13NBtQؐ:r !Go~>&vİ2w9"rWk&ൊ0/ĩCsٔwJ9UowdidT(ȉGҙV8\? r8M㾑QsZ:e&S!_ 'Lށ9TٯqNC"ӈM2[ޮe5qYV4?W(QS_ `]>17O-p"$mfw`<@印tR StY +km } 13C&_"{}/5k 7 +~ yOAAlQA ++eq`S3CRyd K&sH\CcjOlO6ЗS6Oesrͥ1fU6p܁/10X/$5MyKNYL6,ɖ{+_Gq ;4g2'dψߑ5'e8n1, q~h|Q,K`sr%U~2Q4uf#cƴfC'g[Tu.2|ׂP Ĥsf_T̖G-Vr_txY}AN4,9a"~,7u*9\/t%DÍ-S 1cl&Z_,&6ZH^8~VQ9iKgld1ֵh57¾. < &h:1J7aNZ@^t$˖s"lO?[Cu^M]F5?Y q 7z{|rcwk/M}?'2-TSB+ׁq9fc_*; 3vL#K'Um]-]+َ.f5Ū3]p+kbӅ;Bn}mMg(*stğƒIɔU釦7߳LyJߝɳ+z=.cWϲGɛso}a7p73'߸G߳ww=?}w\mw+H| JC5=^ms|`,g0+11u4 bǧd͐}q:Ԏ6wv'4}C=v߃9ĝ /'|l{ԞQe)I{@yIJ9]WS÷MO+[}r,4#7Xδ=x-dsz]B&C]NlZnEk,T^RrUΗkU{ޯ!v}\KhC}NM+8xzݍq9@^O~đ^؃/kY:IR}F#s;$mͶZGoyeM~%]57, ye5l))7}?؞Qw(_O^EDϑۏ_\_~{},OAӋON5oqYϜy]~>0W|g"\Q^l|]OzQ{G?3!=d|G;jde4BG.'=oC?QYI{f? dμQG̉.'ԙOnwWԕ7ԅsp#~Qyg8ə2r-z%u=:̙ZIv|Xj~RX$})r?ǫU[/aۨVyD_ڑ۟e"K  bX#\ +Uwos?#S|Tё9~[j(C)kmJHﶷ(k_9tj w/e;a +i$sw&s'*Z*n Dӕӳ\9̧/ooӸ׊wTwVe(+Y|WIۮ"gj^]^?*v ~NlmBTgӹ y3? | c/9Jgӣ˅ܵXn?`(xg3+ݡ{{ܙ swS<^ +D:ѮWy5zOd_^/V]̾fvgs:bqR]]yg/XkO]gAWjjUSD=9jhcOPƗ_SiG^tnj,U]g_~{į\'<w|sy0{ {K~s+ؗ8TyWO$G;bmM u`ݙ]{v㍔uwR5t4|W+;[or~}Ýzj6ο_.hؕxxfWO醛՗֏+ӏo^KL`vVm|UW櫎}Pz>;D :4+hl\q`#ryIKKZdW=Lr;n|Λ }+nV_ɭ̿]ziwԉ;^nm~uE"˯{[}PM~ݻwr?__^y^[cTr֗2b/=[rSUԣױO~ںlmְK7dOӣO4vn鬨͸WVFI{ŕYr3s7cJލ,u'ƭҫWc]/r-ZNmw?湼,0Wɶ{o=>%:;Z6VvM-*coUV>h zRQ~} +ug1~ݕ̉\UuohxfW3f^-z*vU.oT=A>|mdгz]uyG'jn4r]sݍě>/֖tIro=!k_8yí~ï~X~q'=n~9anMe =+ t.wG;ݹh_cʖY[Fwn_gt&ưo%o=lkJ]}aԪ##!}VF˫s/քu7m̻1nY/3WHw(suIG]Xwmm̓ڌy ̧\O_cسn5%cWmr"m`Uu3rJ{;/Td\/j+wz>~:t{6;TqJ\U{.$&WXRZ dc^,{3إJ;κz+CWxGt]?>&zco[ONj]U&\(90Øʢfo:8_oaO,\W4dgRo8bk$rb|Td|Tn#Y,e;kOo:UǴʲsUgrZϥUͯDy:2'{k./ӰBF+)Un^ 8ϡ_>ϔnTu㝑{GyYFamd6Cf%_N0L1-,- ! }LпgL2iŋY*.`:oHa$%U$ GK|&kd"wd<ɔ RɬY $2웣VzFB =̅_踐VsB|مegŔ_t#ZFm֭Ɣ[ M2jv9MYSv%zcGo$v(~(z?ߦX?Yy+w j6aLldև{?}d|ɔ_HLFOE0J2H2@2PO}HFJL GI0̷|Tj0E&.Yas{ߝ,f߼c:?]2WOɼ]PW!lZH/Vn9^儊ĕmRqʼn?K,;w%lʛua=/J~~|-e|lIڏ#z}D2cdܙe΁ҷN2rW&>c!@j޺?7 DO4KbjJ& y{1T~E퉼ʊ9gs*/eV֞˪t.rٴ}gR*OM8t6rRŁŖeʯy GG5?t#8+z˞u:zKfp8z~x> [ @x^ \ #0Hҧ0s`({EET(AE1`N(>D$%**1:P1M~}z<\-mC7NUݡNYh΢PR|TOB6Qa*nuŜڝW +v]o6լOTcu7_/jzy'eO6}~s:߄AVqgG6gsҚP#v/;]y\29WQXͽX흪"7onN}и91 }|yc#sg/~[zbnMoe)~^?/ ߄4_82=mT|E_t4i㖂VFfmg/l:y1ą'tb^M.5lVZ7Xu@iS퍍;qu;~@N]@aa9ak~ s,FcG1C?9ur58gF602y _zت@cddalEAn7ﲂ~]5zYc ?j J{574E쯇o15CnjuۃGq|pLfi>k?נ6nmret_#C6Hs[u3Xr+̖RÞUp&2w5ܿƥܦ]r~9j:w% ]-n$(R#mܧk8iH}-8M;$6;Kߟ6.m+ݺ9p=ԥ棗r:/gݮkG`UMw +C5 xϜݎ!kAYTtO4ZT3dm4Rs22аF:S4cU._}^0{w1-OhȽ]ݤa"㙪뱍i8me'v#`k &߁mϞ9g곺F߄0WSy) Kߠb+ #U6 ,DcM쑹d6-B&#!asdu#S}{hPdKå_"ß쯌bCarAϳEۿZomp'gw2 dAt[XĎ|~> +$4-gjǭDS\[Kd12pE'zqX4ۻ-z>0Wtv\pRn=^/qf.b7nd5zJ-kk.W]ܶc7c7p=@7_f6_Ӕx|o`Sh!3퉸Mcx4`g㐙 bi,LW (d0 +M]&)ιhª4dwMG6:4/`#NEwT\ئ:/p!rͷJ?imG2:%)si_Ib-ľL +~kd9 xD&cMDcDlc dj愣9h_UfW+~r0巧uo>Wٰta๼Gm7/ԞYnZ[?DVK~8d? p[p?YwDu]nm~0za{l6iG!3b?H̯GC D |4CFZB&Dod +kOk~?znaªo'W-swK1\{Ki+n:<? +qW9Ik=sCyrKe ̨}z#`N-O3snόMϾ'Df,89hLo4}-д4++ n,,2|n ͹Yg]TLQ#EY׆/N0̾ppqaaC3S~a y)} +|ok,Ю]8vιSUĈ= 垧<}gpU|øT'}v}8 F9Esb4*Ashan Ugp9[Vpqd\y9U5-٭"w`escǭs9.,_@xx> Om[Ї7&O_-;SRu^wUwPThh~C` chMT44[RfyGsVD46ظYyP[x| Wuu]N~-;۽5򟮕H5UΣ:#bM +A'2WB}lo+S%7k^68aK`UsR6{yi7YX,FS1Ȏ*DKL,Msi5Un iǓ_uK4O7AQyqwL{x%KzKc8g1y!7垖twD}{O(-|E#=N!q6ӗ<; p7CSgKqŜZR}`BBo`xKXVp:A]}{UuOga =1&z*IkePzFc_@%A%c80ӷS9G]~ {rg +MyW@,FL/kA165pc6h"/zi '2_ſ 1~? +aޏ-x P~+~$> + Ѣ[wZ׿-.ePU)].F DFqM!}vo/|yVx6=lsNpcNzUfw. "QY(nhzmQNOQkIyxOjwJj*Yp[p ;hōd]WvJvwʟxL_9ni+IRL1H;'!B. +|mg-^:'j~!r-gޮԧ6?| +xZp^/מ*woY󤒷K4eREk$dZ/cw:$Yu~2YF=# h-d=]B4_M% +5ƷcO  +*dʠxYQY3upy>kuo +XŃ'ʁg9я +jC7_X)`uV|ŭJR Zj7{lE1\QxEYTy`y@CFufZ"o| |s|$}f9}i:j:?G sJr5y}87//{,-O@,E@QQ!yS+c|$nXd?-QlaNMӉ#>dOtT Z|kWfY)}^~io.T͹Cxї>1%BUn-Xzջwc/Oa/NνmԻ_2| [DtXp}rhXEi_y^GM9Th*cgBmpfn煕0]Ou+gؠ뗷KD.KqɢUgS]c褭\Z&k%g[>._$^_IH Rԙ KH]~P"j;gK>-OUnjuX}ݕ'  }"{륻?B]Qg"JڨU;m!Qh+d<8'B9F>\X͑X=85IE#d5'gЅh2E)!UgHюeZ;I?LA8y`UuԆ);8xhWH]%4`el 5Lžitk'r2U*N iB'6WI$?|-PG%)D]Zͷ, ̉_9Yb*O$!RQ U~KDKD+g,D~N(Pmm6g*j ~y? +~+rzRVmI[3^`_lϯn/Z~ip>݌aFK/c|?IIjOu],>* .~/}v n{_'sM;+x_8gI+߸mx 8 /OwtdgD~MfrAC8"'j`3,(|mHiTeVϦ6u>XFu<_brZ̙Fs3o.O$MbD8T] v>[Ĭ5U_$ԧ .<),we{>Am:đ} 4)Ln86e1ReHo75`?룃d?soT̩7J@·R=ub| 5qZ ߢwzQ:TB>ۅ62iC6L27֕m|V +uΧeugK?8@䲰9A%ilI/ԢL4YGGj''ͤ*LJ"6O^Uf#w p<4d<- O?}9 7#qH,@6h-KSl{0uk:zBw?sn*>W)5OoPc-rǂ&L~?\^DJj{Kytkkwɗ}sTUwzo/-3A%ת{B)Tɚ SѲEN}RHІWlml&zk%p@ +%210sj͡t_SLVSf)kɛf6ŌЋg+HM^VX]OtˏLNϣkOa'ҥ'Kw^Iޏ9VLmٙx2$ Z]IE9@4iZlV[zĆjzhbOOוD$hh&kѩu&\YZSED49HQuOb[hcY[]+^PU=A|})sD띣dONғX駫=oD]؍lN پOv[8︿@\kH%Q]VzޯM̥%'R;:!9m'R*Lh~$Lt0L%Ml[w{`\8O Zu'[N̡UU\nڄ+?Xtz h~jN4u6|0;&[͉dZh:.]+#z;e_ېI[ a5:|ШN׆:iʎN+CSj~㙊-`HpN|D~tu>[m?Ay k=DoҰ^s/|كeJtGf3AwlԁԾ=e PY]氮&Km4+zbR=Ў*\ Ѡ6l1YtՅTDp/wAnǛG\b(nc$Ц +z&kiʥԙ5FgהjnVh+fp,m$׹@{hic_!mPd9Ll%t2~=/e)s˝~Ǖ;?ķ{UB}Ѕ3rLV'Q]ceG&˒ usfk}Yk*1eV" )\%ၯS/]&8^< +4、;9/hy&Â~,LF)لh0rq~ِIbĬ6cE#h상 UĪ5&PJ|pz^:1p|b./@cM* .o}cOCR@3NP +s @{ 4ΓT'wie0g@ÌLB>j q [8 @lI0FAC(&lM,*{8?mni~ +I qbbsL|ix7|H5|-,A{4]MВa~Nk7MK{fӨ3 SdkwŞTW#ÏN :t#yI(p_s2K/on zyj@D uc3GsٶvW*NM)(Fg.A8'M'7X.N`ؐTmО +m>rhEVpK@CM6$ *(<ХM%BG sgxLAkаg*pLY<6_[,XMmQll3lˌxЛLk#H>P!I&5qH#k$кnьJ4Cu?Z |‚jمwq~eT`4m\&71,L6 |lN'44\`Q':]# F^"95V:&C|:dJC&"}":Ehg՚q;&}&x0cf}eί;MjAц;樬-rԳ`8Ӄt\ lh0ɵ?vc*GZrYrtIBSx O:{q,cHy$oeAj Ӡ_ +tHPiU&Li`AnH+E ['л_{_'荇|1D-w'Hv S6l]`saњIxx|&H#&8JOc,pRv@Hlˌch68^UU?tYFiN|e)_w&  Gtu{3fJ9M)?X:qw|Cn0 (|- +LZ S' ] .06asjԚTm*bHq|h28#<}ք7S<O +y hK}uF2)Ƅan(gC`\{MXqύ?%p9#~TU\f N&=^J 4'ϖ&٭pn.nx>*ңcթTm*E93-:.g8(ZN1b6$UN>Sa +Q灶ymJԗ߲'?1S/9ė๡s/_{;;.C"+U&"'`2A؟R )ZD#:.COѡkMylK˕m-_υq̈́'j>tu)~}~qYU$zi yc9p5ŽPZt˥]$tw̺Yp&o$7l;/7=OSld.K'\t|̀hG @ʝ0Oa3Ʋٝ$^:5܁|||t^ ,Dyj W5 AG31cIb3؆W.|K/e=Q`|]oOsyl%|NXБ zg6wtD{s-34E5ط q@'xp`'.=0Nni;d\1-a:lџ7Et~|}9pYAs0Aǃ\i5hiJ-<5+-794=ք{Utyw|+1GWJ~\gM_TGn)z@o0HEoԇ\]q@[_o':NFxH1U@PYqdhTn}S|x*SuTmزCө'CNNRX-ə>=|i.X`}:6w`_ b*p'oNoi_$ܬJw0ЁyHWb?MY~uuݗK։`g.Е$i[VEk(uV(#sqB4e9iO47NAţ U_`q|T1:06*Mݓ▗JpWx\wcE8M[hqFx`?svcdM$x$FLMt,"Z~q%WQ=Vφ-iR'e18f-# eОtἫZ؏F1tցC(E\;֒d`gXxe^2fbgp ET5M҆ uFUoOxfU[̱ IF[ɛM<^Q1 4 bKJvϐgT3 v̎n|"Бv,5[S J=/_G">LW*Gb.\ rGX*09l3 !JF|$QEh(MU&r6S dа=R{j.<`$,!Yx}",OƊQѩz#ȇkqZX?݅m2_3P#k5k\ɵ^_|WyJ* +|-W>TM&1[#q)辍'UV8eT^`jy@zme4h'ܱ#,o=jHYlM{jv7EE: z.R?YC,?dg% c"5( +C m IL. +8#hPtp f xőL  RGd[՜n-x T`/r5'ĬNhxʑ9yX0?1`u~C # >0;M'ɜj*&Cޞ26ql |I\6d#8S [Q۟:;vhGH򙝵^GEY{ȫO*KFIeAjpۆ{1ݳ +;'$5=Wpi= +n a 'd[-;]k+sO`e:]\7 @K=*J.b}?EElHjM.q[/ù_rvgˆէóI"R`} srlE Z-{fkO*Kv<>Kuenpl-Z<3[=|Ҏmk;sH6! <ºWY]pe# +)[eFH0uY@:NZ%jlmeL-cy6|`/A{3J R8 4XM {~X +2m<د.y zךr b2a eX (n!AQqx!p +PSkN D%>@ N j, uG BU\5撱 l ⋦`|ro<~wPt"_'ta~]H}e})|zR?fd_8;ݼw:|pE&q]@˚!kΧvB`=ϒn&^`g 痀 +-I>0[ fNո%5_;EQwbtn =bCU6Wgõ8w\΁6YUGf8{RLj΄hU{gšb="ԁjpErók+K'$AV%irA)ڰXgTET2̄u[LX2M!q>/ mFau i2y s-5&d)Ϛ +qY}%yp?0cF)$އL^|ptDEݓ 6Bp]!%v1i0IKͥEVAфPmAO86uZړxix~f6kʃ*)_FMNXa1d=Ylݙ$okWRei2)-J|fq ܟ6`Nm=M늂C5C]kW}h6|\5 W={ )j8>p!cԁ_A*دW{XnǏGyVaq|OH8lpDd ggazl0e=lc'ak[bV\bcp_K=` +`Sɽ0 {3aqZ'SӒJcm{cLM_/O ǜxgy鰆 + !f'&#)N/y1%saO+O%|_cOʁe|E<" `m.i >r_`/lGEۭqBpl9a]v{q 10 +mw͓XJk7Mw=qT+N ܫ'R#aP^ǵ7}rK =;`967n a=g4-avN|Id*$UK\p &z3ǟ<*5EWoA϶__՟LH[Fƾpr>ܯ!WcEokC_/-.B-*|L6&UGq‡=$y&kS6P,mr۱ 7$ιMu% +c>ۨqdL$k|iK)q4&u8 rxri:dlc_3y~xf*_ + =[kػ +SL!w q$᦯/3"{1m +Vg +LgY-٭8FԘ z>š Cas[ #`bG8Wuv#ĄL˩| N~(aSJ ɽRM/1)8ކm +,:+te&'6`6I ] B/ڂR洍'~lm6uL"t5Lt696zalEk'\JWW\soj4&"YC }78=L'؃q%ɼ>:Wr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘ256%(1h.1Bw$h]bX]?R\DŽDȐȸؠT+{CyX[% nsVwY`k5Wme3VVȈX4$(:.FRT8%_ZU0 jE^¯[->byVl26Bw=9}\Ȑ0g_ۊ#M,i X (4]EF2k?+"՘Z @^sJ{WρRT lRV<D.e,؀M¯Ws&LDpeHrD#ɜl='29E@BNX(-dL H7$a|S&iJx 2Q F׏G~6GAdj’QS*p~ ˆf &XdsT?FqLK5"t  e\= ʹAKlTpB="^Cv4 NS&OOe2HJՁWUZ)iPZel&i t J)7Q$A#KM)~ _y|.WB7Su l{DEYFD>bTeP0fBy+R +J0fP.KJ%$('"% xvYTnH,1';E+I*)-ߴco +5E 5TRkMJ +&([ǁ*o5[ 6[imĺ{%ΜP=Hdxt.AyVK(3F)Y 7Jp_x!l3`|$u EM|$dd,4Q!ߏm%S!R)`mѠb4[$Cl:A)] icLтb[PEJ9d}q +c8)ِ'V;r(Չեj$^žHO`[6B 򄂑`Aޔ]ek(c')jR@PE'e[HYhTRMh>OPL%)6LQIq "eF#bH[A9bCh2C>z4H3OQnS\RB)#?DnHsVk +2R&KP ++/?4֞]%`PUym YeZ(7їgq%r07n r]SP%( @ك"S`0mЅ@bS*(j"E 7~u)Rš,]e54mr>EJ KH?-H.:*<~@f6ʭ) Pa)Z[Ukï`wVl9[Q TC[@;  ){k9?>50'Kg<}?c>}e"]wW;Guc1rreT&th0^,2&8GYGQlce[ +2PS}f`%p=b"B9d9++%ɋĮI +pdD%H[QA7 " $qI|4bb}nfb|)nr&> SV|dU\9ȼ ˨\Av96 px^[/p=$8҈cًӱL#A$ݣPϏ{%NFWH_7|Br#o5m~1;gj|dd&n6h5װ y=0Yy\Vd*' +N{瞱tWS_ZqD Gm\ե 0dAv + -r8M1H^R'GA+oG.4?T BN+_ug*K<,q~e2# B̀#H>8K + >.0$? |}9,Y`-Hqc(FV8W%鬭 р< +2+^ +O`\cIs if4ivs,kB60o-yfΡ;0HqX89R{g2Tރ; g!o"q qq|04 +r% +!8>=ӗ2f#xWU{C /xj0u+o5#^wWUӗ>^ xd`%7UL1a.<(9`R`gG< @&9{e؄gd8o31@Gt!xT+>dO;NI*k"_2vSOւ<') +CW`+ ~\Ox,@2FdpEE a9P,c[P9||\'o0籔 3 1 yS|9Y葲Kd{X  N^d`߁ àXu$[y+aęNgdP7,its=|O"+X8&hMz V^y`WWG@/ p!7xI{2 BO , [ j3β|`IT&#I3gGzpg +yj4t"a)AˑЛOM-G_է>M`d! XtX6D =8#i9Llڃ1dr&_K?s'obAY#F`GGof-ύHauyaP .= &(>sy#A:˓s h#C9;wZ `4@"6,"z.sgOU + +V0:,`@jzpe +"0 9EĨBI(o'F|}, dQ>Zs(ɀ.A\_ckB3ICC`앶J܋.N~&]$\AGFRcKw;WAFQh9j-ƀU:v6`+k3!}v,H1e;}Xl1j&|'Р,LS&TDʰL"+qb Ʉ+n +7w t=Y' q-(`NalKcos"rkxn>X B[@ +v{C(ڌN2R {Zal- +yA*bg:1a;*:0b$%J{^CCo;Bg}nK<0E\)X:=2x;yu{HOٯLۅ̂3@_d²0Q#>$ 2Зyg!, }q%mfK!$P^ 5xkXDzz8N%X .Hld&x&k%i_e.yLql{oX(cA׃͟&e.`A/_:2Yq6~h#Ҩag"btyx)<U u{lDv,rc1x0z)#,rq .z߂Xa<}( u7A/I}BgySD6|TcD9W YA?[/]-%ǘ]c+ ޤ6òވ/Fˁ|✖I"!ʷ# Etf Iu ЯBXϬ%GB t#}SGIJe}ݿl(X3DZ GuKb R8amJf3OהE ?W%Kz,FȷX:kO F:-ze/Cyhef +endstream endobj 59 0 obj <>stream +p>5~7W箅Hog_o`CLM`YRiG/1rMZLE) som0jEvY$tQ:$ kt╨f\@|VlJW_ؠ +$1 EȩyjWE&2 b|k+c#`)q?/s_|0SS6t'ʷEnI +b䅈/9G 5`j x-X14m+<"щ _ƞ 3l`70W u/@q81rN_,v `E=b ],K*A Pd/T [H&[Sv'8aYRsrs +_Lje,g@? Ń0:Ub"1_YxC<ȡ("j+XAo!\:A%n>6K(RΎJnUBd؆a2g{i)=m(DbC6_ IĕI69ӆsa`yYL-N~LLC^שZT@j(ct:-ȫ`iB!\lwr2fZ RDdM6X1v&R{K_utf-,LRYpo[q|\k4X-:9[:1G2_.i +0PA 2(X[ 6 %F"{Cmo{(: o W?m(|"`?xE\c 3060{$+Γfu:'l|=t獥߃ }h rj~94F W,yxw YK!wBxal^~%/V6܏88tO08cKT[capj{-$j:Ȩz:#a~YɐMإM{V}XXC ְ l Bö ^V`j&`ryA" hSDsjp &Hf }؆B&t)=f7V +v(_caQ(Wu ы8alx(sBlžnf^)iFS tA:[bIȰMlfHCކ5^)KEiU%M|N}:Kށm(GՁm(?衉.6Y tx6|.O䉏h*!Ϟ례;Z%ta)<:;a(}r44\8\ +&F ޭf?Ri +dr^6SP箅!iCaӆX dAo{O֔̓^(G/^̡#ŗga{sឱr+C r0,9E`W9E왴d1O627ZW[a| +ڸr%Iv%O\uzng] ꛳ +xoXˆ6=Zv}*{@ڬ^Z +k<11cVn/<%ˈ[%!q}GL|s0V5@AƊN(#LReSU +e_=aaF ̕t೵8G_606u`)&T+m7z=gO/M{vjlCa0(̕/66G`5eX">-O2u6ZMS$EL*Jo?Һ`ߏ+ `_}cT6k!>@5!TKz8Veɣü*0蠗$y | sSoST!޵:-My"TQ :c K}"X֎`oAuQ;yk$`M/~5JX_Ac { >>Y)a2KEO@`n6ebyh]աo"Mh<Ƞ:$N(ct9Xi cKf>,;b\Pdk:ڄv62j¥:ړNnRb EwW<`_X s}^ + +W.䞸,ӁOʶumua #!,98#<j%. ľW^l#3Ch S Q86w=ǹ81̯+7V=]w)f>`eE䒾 LGƗmo.#ga $3zهȃ\?3wWQ1Q/7 V }dlm`-XK|n{`8]u{{@ٯ+x.e^g1Xr0h.nm-?`0=a͏9j>1}X!y>.r}$  A%[w|u^81Xp^wB/ +7r`Z: {P|6rš5c +c% a/2܋+p[&Xk ~[@?ֹS`K4!OBl7O[L{-2E l#3g&{F8f/X +] q]/ۦP>%S 7Bb+|= +8K:զ +PB-]YAL) x ܀z1֊%|» AZM_`z,Jgj +v +/LL㽒SkB;+EvMl9 هs#xrLl*\1_7wGx؋}4щ=gFBootFziQ`](s&$3]X!^/G9p1Ŷw^f$vR/ ~iD΁3Avϣ +q Dܒ`^ +F'y筁5~ե`%[dž*b +8:L?>k008/8'†_ו`I +V>`ftx 25!XwGBP=R*1/u3^ EA6@? }l\S20hwzLlakӬLr~AۍYIV%Շ3EzW|=}KhPkZޏB=#֣ŊPC1*!yH DiЃb_l9kzm!鑷 a}NM쇀zMBnB|33ۿ {{1mgp洛:>3ɠ~6 h<)}Z^4'Q$5dRZܳƕ +~IjW_m54@:E~OW4vMX,c|s[2aQ` +tPC6esۄC G/;D;)*kPJl-Vfot{ Ɛ7OhH4dv>M$*6~Yr^ژIT!{TCb ~bڭ.hׂZav'ĦZ%Y%d2ԩe}lI-JfAW"3? k7{t;:ԭԝ)^zQ¾pL}Ht]J(?l=>lyc?+G>L +nL*[˫_hij)sU +%^ :΢\pz1ԡ;tJr$^ZQAy^0O*)dSk0UKիfj׀}oQK~yyRMީ%J{I򳿨vҿeP2(H^ g.e@}pۛrjbtHJqfx!POd]qeG1!a~ qIU96NI^ũCL߯Y_׻Ҽc> ? P2^ܮ>btV +|NTc!24;m0n~"~eouTn'|CQ/t#^  +邖Lch4L<(h,xu"eü;B|ҤCQ 4q.Gxx*H*/=~yI_=Z˿]M[3C>ٿbv4YmɽҢbkbCEneu'%[DNCUiOQc4&T]] .Հ,fJ}v* ?e~je{1gZӢ<+*E ,o :AqoiC[ŏﺄfȌ}5tD}?6,yla\X(}vBQ<KJv7D%%֒㚂+VKɫz z q~9Ue#ǪS(f=XƋ̻5Sΐ*?*hTKkE=Voqo?ޖ_7~ٟdٯf/CM>O5!f=cğZWRF>v#zYH] ω7(}Ya!ͭ:"d$}PcjtƄy!fzXUeiǝA/L\Ue'uT{x7Tc ۪*2Cnj;vGz}uVPDxwvAf2"ǛĹ ]NuNlNO?0Ѩ{]k6qCuyzv z#;\LBGo_4{FCOEF5D.sW^eњ-Aq{'7xǭ@uxp(iКP5='_? yuT^^#m5zwIQ_MU}]Ɵ):%(dY/żk?T[ +czaLw?ՖQ kpJz62cS+]c/$<| +n~}k?0|sJ(a /mGu~PCp \+ݫk6H$CMGES}j?eTU*)r>`"m dTQ|:DJݎpy<@h< g?|p0M$ϚNJ^5YHj/5gVCf_g~:՚jE뵤S%]tgs^$꿟z\K%Q{_F1m옒LYY3Z :uRsMo|w܉;$DǃD˖tXZHƠjJ;V!͗klB lCꬂkϕ֡eevay.>Mi1FEu~=O"Ȇ?p1Wv/Kb8F-s-w<љ)/l\t[Jĕv07"Jv u M*qK?8f1+|c=Ӌݣ"Q|%%Ty'@r}t¿}NjpM@N@m`E hFXYq>$ mo:W:߫ /n +Mmr>{7wܰx߹KONOjcc"3##6&GkL>њ!Pd,B9X9@+|aߵ=bRy%+Lkvwc4嬲jࡖKѣ:48whM1-C4F6Fx&WWC=4*vQ9g4E㘅 2{bb~-b}fEbֽ:Eeb>D:P{2M-o8uKcyhx+o# +}b} +#B + p9+VǨ*XXC}RzƦF ] 8wsUQP~{lz*NU[76}"b|bH9b!!G'fsC}z\be"BSl'!uݵ&OO#ߚCL#%fT ]N(XO,XJf`Au[ +ro?[w~S!mCXAmwI垱^ Io=cn1u{w%&+Pt]shL]ƶKAhœ?]89?pcuT]{rrl6.ʼR Kf Db1=䉙,b bvCbqUp_Ӽ_9k?a󐛨S+5qo=# +#EY1M}H#9E)t ++,uKpkmX|Nɮ09E6U73GlڥJX@]P39+qMN-sqe db,1EğuɢϟGg&~k4I?7}2iqMíE}Q]JdlWTzG{/ +# +v No¼ٯ]>ύ>䯟\.EǼnE5RHtSNo b圕(m zW2*`l&|C_ &܁IĘhYik*r )"#Ҽ#+Rk?{csP\{ˠVp߹S߲WP8 ]XGwOB4Et|?\_{Yh.wPmv[7c>xJ;M۞oˉ\kU5²(&a c`s_G*tqsdSctW}ct8֠;Ykr̈ih_5#Q?ܘezz>)j=ASeYRP+ߨ;oܣ8G=wyRSWѯ]"DTDVzEeV!Uq)<=T)yޞbf#a"1[f +q]1',Sa8G7<GṱsʪĴQKy E4FN`( %<7d[f$a(e+A_m"wD97Yc]zX/*C,3ޏDֿuwf럂>QMXB@RDl'؛-̙i'Ko\c$T8%=/t+tL)p kU`$n{nkskVl__p6Y_tƣW'i#fdSFȡqr.t@,*=hw +~AX!)1]c7N %[v:߾.ȓcqf΁spAt-piDT[nQs!1.m#>ek4ױ9|?geeCBjs3eNAc&E׶SŤ1w1@тX߁XGbUT̞f)s辒˗ +݋|KA11q%Q1=UENjrLo_ =TEx*dV|n7 Ē-}VRub3PɚXfCfK2dvOQ~­ {ϗ$凇>{X#Gz~sp +XB+pR;ܲ9s6۵|$ZQj#<E,3L9t}3&,B=&fDPXgB(7#m:I,D, 'inl6XSF8Ǚڴ_GTvjDV>}uȧzVZĤ2p׉c6r0Fkk3S6౒_bP◍ )zļZ\B~:!јX 9b]mMv](UqU_D:ׇVTWYėGM:gkgS y?&`? rGQ> + +9%J}1roH׹Jϸ's+$mή;{t{}+qs*s3/Ş&5GNX1pBZJ#J/-N3 G@~wbsZ X~9h?f{դu=J7%ʁr9 +zNCtp"N._ וSuh>m@h'@OCrEH~ߞ$4bɊC\1>KʄB5B~bYb=I%D!&-PzƧ۶ o4YD~Vi䈝\>yO <6#|rPWΘc"M/[ٲ x%uOaYoǨ P 0O"}\{\\v;sbٙs݃~̴c!EG,ZcL,~XnMykZ'lkՈ+ՉBB1;mObNU3L/:o>JvmVrZVr@yUi \oϾu9,ڴUc?]?h+$'vwĪr`hդEֆg:gLXJ̛H,bHl8El'݉=dȝa)qp<nSg*[|=/֚g g|3zu{8O0 Si+z90p>3;n{9-ټN.6ń$i}bO-',]c2_"z=jo])<?soax Kۢ˩ȩp +rp  r=Wvփ~ g + d})˨lAhp1itM"یӡӄNyK?yFTg "mY y^Ħ,YcMYI,&$% g<_|NY}h7\PϑzS4rAְ;_z/ .Oʯup:9**Q> MdȋdKE^(XRQlgX/|m& `ª3EƤ啿"@c6Ա !XZؠkMl?ykvʉ{njn7O_q{z?x*uyל:RikFt lvrg?o9ZcNTbNK6\&ODipo?4lG1a ;E-ؗlqIqi%}Ȭ.UG5/_pgOXb1ՌNw)9e폜3wNg3BZl.+mMMkv(k;7zF>;(j~t-+ժ%6p_^qEje~\f#NY5ڵ rG?R:~䥘|sچ:Io\'}|IZXw2[pkUts#يk,B. vHG(GUyUmiI?Qv7 ?v͝Dv|):-ov:yb&IN[Eܵ` y[ C epZP1qY_ľi=FY ڸC0S,iYزm|/DN#'~XM]EZXmA챸5}nF9VqƺK(Mc*0,i,svKrat^:=}\byxKN[ENOX~t&<_6wGZ-Yar0G }NQlaKQq92du{_¡#tcEnz]6}tDzG9=J}oAUMBm>πKLdR5n?p?`3?`+h 62OyR;x_w"%yumPCQyi'I~% g_5K}kwĬI +Č r>T8U;c/]ߜxo8b7=& BS<0>14um =%5BȘBX;5{Ul>8^7DyvOƖo#VҾwW0^V[Lj$lt..hoҺu{U%9CU)[ȧCQK{/gi.vh^ΙߴiVt]|cP$ x&>l%d_BXطz _08CgJmgSIEaq1#s>k{ - rзa_7u^LAԍ6Q6Iiqm,~jnƠ3K }J?W S7Sus[ ]֯Xcjttqz8mi=U=4ZBY-M b -}=:|i4si"hh] OG{Kd,z >i%~׉U,AJn2m/yUvC;G\(yYyP OEXpbmtRÒJW)}Ζ3秴=o,-æ 4(xEO=OYd׸;EBD6G2UszYr5e]tMjN%b݄vsCOd@( :7K 8Σ$8\m4Y"pR@CѢs=N殆'&=8{4KU5K$ -:c s6{>E/nKE?Y-{MǰORaN^gMW6E7q(%%}B@BI..FNU{%&v+g?G)B$559g;5uUp6H:8:tLV{/_*pܯ"H,(D^??QpOeI~nϺ$yfb5a.2_swAJV?T U2+ߨ1wN\e9}êI 3rQcC'y暶}n;t'K }*NU'T \^4m? /p]IϻϽ^]su.0g9?]u7{q +nم,*~p̠b`1QFﹻSpr?4 t~͗; 9'&E}31xHvVӓmq;~A2XRE]˺W[g]ɓϪsr[&i:'_]n}\a' 2'wwᥙ=bfV8޲G{V7{8Cqq*V<{K졻eϷFafXztp~zᥑ>Ӊkxv距|`uU7Ջ/ :r  +ziŲSs]o{}/Sخ1E|fN|\b=+0sC,s6hJ;ozb'tgDzB3lv 7̅z<)B^41v{?w~4w~>6N{7Sg..S +0?w7'~>7~~7[xϕgzyWQ/ f~÷oM~s Tp~xP}yXY)\XEړة= +ߌc)>U%۽ kh߭qټ_ 2Ü6fe9kW~y]K+0g8rm`_ɩEV/kDc%iPXw7ϼn6p1.7sOpO짵^saP?;qwx+=⇯? +,&n +" ms}fNo7tFc)ЍCrFx awD1[!cnE8g.2dž/%x~ǝ&rbp{wO{Io^[?0~Ux{o;1Zgw~3M2mmSclK Cv \Յ\[M%8zh,XY8[a +͖5{Ѹbˏ}%ٿ[GcOmp f?4pď;z 4<;rxx}+͑r[@K>^ _y +~+fGp |]k7 ҝ; wͺ33}|8sw}K.^ii͊5[Ҹ8NF$ղ StW5ނx 1>HY!d7M +;;oŃ;}|ݭebzD}@/^Lr)4i +V^Yo\(95/??W7v^ş|.́^o-2Yrv6?ASOf=?G]S+ _}A31|\=kEfvXtn&A{{MdpA|'??_#د?"&b~Mx@sewN%4M Nv!aK7]Ӈ[NK569S|S-wml]Ig~fZ@s}0-cGxK0(I%(يOmt*o,t] NjhH4E +27{gw@ |vD|x6tx8sR{(g ϵ_\g|,ZxGoӝb1qWwi_hvOǫu F_w>]4阬+<['ՎB3G@k>4t21' ="r>p/d;)s*֋_w ^}mRvNnhA{o6iXs'w^y_ /%o.ѷ@wqC5܅_=ssl53}5}|=/!m8SZ;e׎Go@65\hHwWA4I:w&GIK +]Gkt϶Y8~}FW:KW^ae_~Vi"|nt+dZ/0˟/]{]y ;4QBġܠ/Lї_O:\t.0[4з!Ȓc !U%Cz4UxPcta%cΟ]7 ͸'pEfʸR{!kP,/D+&')ỷcQqBRX7N.Y ‪bj#[\ovBC*AV||1 CbRhg= _{6HgҡFf4z'!TyfX 'Оgunܩz^nL|(m:n=b9Z5@bl(44l/>dk}DH> wJexjnw5\`\>:>[:Zd!i<03v-C{|@%dDCZ*\vr\7OR*.,"߻g0,턀KK}OHksAX7_|AfU$b.<}ӭzV?ߠy⑻]|4[lԸN7Fcs0;@j Z?CivЊbj#4q=˟GHWBJ\{k +fh U,lRL!KAE];m mphhr5cu9g؉Q%W8ЛLkMd1P/iL5fOXAK!u8Rr9|>?̂4qbF1e+2(!i#C|R(bH낢:ynN:=#x`ENqs'x+i>ar3}PX=N"HHV~vD|`.w@7Qj}opmi}k`~b[~gI5X"8(2sz*0_n!$75M^>lM 6jhRtX 7VriC*aA/?`CG@6>[g8l8BZJڅEm3{_7S}|yw'hJ:Հ;z0ഡ֮nZ "qX fֱc 6'i ]LU2&N#,xfcIEcxrZG"erh`U\YV_].0İkԉ-o.o3J/ ^7|gA3ٹ'BST1x"ncTh +i BT>( + )1KjM,ngp֟'AW`zW N!La4phեc1-1BJxbuNWK-$=)9{S(]M7W.e=ssb.W^\RV+N `;n䜶xmn{$jb;.yh=/vm}  X3Bח;}_mN(z"qKO:^l7t}&|=7tVX9WV =]ԡ>~C^M`JAN*:3Wo-R~O~#m/v<Cv^y Vz~1rePuotĦ2# f ;j~`V~Jc|)r[1Vl,v<ޡv?/VͨHZȈл>oƙ;;;מZ~,Qz( )~ ٝ3 )j>1z`K+'7|Amϯrw'JǦ*,/`eH5iq'IQ޻f|hqk&-޻ |Ǟ\'[H5e^ A#<{ ˭XKEVg,@P;z‘KQd+=(f)yg +,<Ÿ-m._mM-^ +6 0j`qYBupz[kvC-:CB0s1 JM(Co3t>v]{_mu/Zfys{!$ +qYqUJAa6XwjBAhBYBO],Kz1z܆"{CX'){0Z"MۼQ|dh }n0 KƂ Ό+O0Vm[bO~IUsTQ}ŭNr5^4˯،< \ 8x/\S|I=Y&vlvD,_YSݍ[^8ʕLbb&!g4Ć']ھfgm_^!;fk\+Fm5`5L@>tkBslZ_#ub[ /C:էH7*BWW} +GHw_t;>ÕUxQ|R,pmp%e#zxrN &bS(#mCq"<k%MJ#ϕ*f5;,VOLf!ŽYbd{^ +2 o,m^DJpa3Aӛtbq~1cˬ9Pn`- Ry#G^r";9̤MIgg\u\XZG#~oTFcD(ԘL;;a8A),<ta 0!5*wv$H5;+8s1kRw{|3Ϸ%nWFb(fT8cik-}C&*avduY<cz~Y=ӡY c3y=MН_Ο~uyux fOSfCSѓЇkyfzp +Oϑ܈9SAG:f ][PiR +{rc]i\;~Zh7~(/}xh'>@,⷟ϵ~H,n;kQ1rCGe?;쬘쬤_'Rey;r^sۧC $`Kl +=r({K?x~Օ%KL:ǃsUv-\;Ⓟ%[lpxG}׳-r8_γjT'D%-)-j/N34ӫGDAߋ\NLZ ^7qdbx!XW-ß1j98o?w^ v4#SmtR~gg%uvRwsP:V0ko{Ij~Es +oMxƱIf8. iكW@lIrz-˽NE[?*w+t|oyo= e񾤆[%sj[Nj [VM?ۊLb/ibg z]C9gQ #6o=BbŅ|B +uS-SkR|ouj,QYk(J%6{Ίaobt][ms1%mY<++ G.,Vsj'+x0KZnn;ډ%W|o$5ΑΑĺ7w8=s!v95k*86:1\dI/4Ӫ=_A310Uj֐Q; d%jWCY#R{Bc;h3?, B3dw̠qvduΧ_j jC[j.Jp i&,u:_I+ +ժ`࠿ib +W;8T,"O7D5q,`f, yte|Mv<(Vm-IhNا~ש=y{bN袮1=bl/%4ol=YSO}`gG.̇T<<[-kzη; *}/Y&v|ub#b!e:ق|X8qs\wi,g拇橍7I'H\[$3 λ.r|m|;]5WgxOjŵ冴BH\sv zG<"m=ɵ}NƢZR6#OhxcbojkHpsχX2uNxVz]l[0h0B<5(#i!e]`nŃ1cB}sD+1ٶr\(aĀaT_ bGR(G\\ t3z"Jql0EuE=J~40iΥu J"!r1ٽA*׳j4ıA^T,kOxi}2;>Z:zi)zůUF./R5ؿ"FMnb|<,p%6irݵU7~ׇYY/:du[3쬢Y`IXSͷ1ޞ^ ]Z&ll.,Գ:p%C.@ )FjV<ܡ{:n;칫זӹ1Gk\x}_.V5ٽd]y8&TJͧf%Ig 7XNM >gpDf?qfPi!$mc/ğ֡/:`F,O9[1n,0h΁ղEV`mz*5oZ^>bm,QRr~QhLଡY2ݵس"!zkբ6u9tǔ[:o|k5Mq@Z}r)>oa#R'\x/ekob@++ŎϷImoWˆ[QZu~(y'%xkxwLEv*.G.<%Ca3 1ηYu:% +bB>gX7#غ.Y~5'O,B3Gu8b?qO` ԽBpdNJ313OS {cBHi|S7^TY* 3*b19^zgfI p&BʶURd+m +}Lr;<"~X[`e: ː9F!>ˉfP2E|;p |Rr pk^\gB\G,i>j#>ΐϖY ʷSSOPKRU?&Y5 +{o/M)ivR{%j\|T4󱚉 <\#=_A.;$Jf4m05S +:g,i"7^_|<-ԃ8 ++)'P;#$nzb9 >#c{e>EJktәx8Jn8Ѧ'VW=bKLSsV,l)0;c " }DN(^aO≁ +0<蓧RϦ?m-aȩ` tڦp:\qf.λ! b}Q-!cťˈ ޳tk6i%|յEbJ#9zo8f'blZ=v[yI'^z5g֘Aj^o͎5n$ae3Gs5{\|5h c8d >lkEËmӬ<~OHB,#)~} w4{wZj_?p~W +3CR!sbH9#cn c $|#0Mc/+a8QMCaL`T?g`tr(˚K+129*˖)g%,њ'ysI6NoՏ`?&VͬZd홉1e_5LLyb#GƑQvt`p:EH,jKuBhH_C$]؜Q$ub2'9qtM0V{b +ƜpCƁ/‚!c56$}C|f>rL:-H$y@xu_hNгk2{`BX-Vj?bYooHzhp b{4׌ p5\5} HH GljQEb9  7sn!o#,CbrF)%c`s3:'E׳^RfO5u;C\FJ-wH6|X:]ߩ +$+OLSlRn5dWOHvlIAЛ +Zg'2GS )3 [A1_mE9b|(ZOP`dِ|PRS,[akHvј}>4R l#d g(՗9QvbL-#~*˜6:Dd(ئ=$}Qn#RIFB+3{ƒ=c4w6diKc(iERbX)rGh IZ9B/G{`ɱn%k\jF=`YJj/ xg?3]C($1"u^dWc-t*~1JxR;_Feک6S5U;IHy 1zvl IT: K$ t2&W` cSURu<%1^h8zmE*<7db\>w@?M#'31{%FH:lƐ\8c4Ēqdo/*ǫ s]${QMc4~d`<5.LCshtg6 2<9 y3Jm14.靭`##ٍ $ il[Bʐ qtYu1Xߐ|_,^+odQ3`C0ؕ>oNz~^y'VzC9I7-(KE{x5bn-@1? +cX[+Ljx1E"0jHqpj<[?$b/ID0_FB>A/R1<ji4?f~HTNTH`V +Ibɵ4g,Oc쾩'ΙjI\LܐZ7OI-;Ȑ\,1$֊F:@n!U5brbZ7!$Q&XFf1r‘{-'==a-adUqF0|dtrڧwCZbsG)90[, fCH`l(ȆEsr{THo8z.mD ~[p a6:`'B++d>K!fZ˽U*ee^5!AH.jŐײ 4\9'}t\zfXYY͓FLmpsڧ L$ρб: 0ȹqc̑j2#!#@GIOvb αkI ai6m>_{c)$aCWC fװ53rab/fJcH~B@%kxp| j 9\HjY]nKDoB.-}P+B91SnzX ;,ӥ̑#\$bX[SK:n?}tp8ثvd2I68Ao+f Mﯕj?X-%V;pAV@k@Ipv=z(>1 dfRcRleQs)Xr$kH@ڐrK:Ab +Li@,K(73m+^]!Ls ?Vat/?$CI%d k=\0`Ȼ;@m!DD_(̞?>@?P^1dY9W{@R c<[5&XT> ? +3dDRk -1)gdC$&R;4}¡}YMʁf$9ɾ'ba YI됁x AޏI:5|,޳Gqh4pz GFb h SxgI A5#q! ~)^Mǝ|×k:F3H G^*&A,߆| +Vc^3T*=sf"0Gq, ~O3XN>/ǥz2(?ߜjAL5NzbVdʗz)b$ Q2K)\ 4}{n[>(Y C9db-7\X +'> }VlP IrM|$ +VvT1Ô#X<~wdx~R&&9CWZ.%YY".RL1P*,jn.}KA/v7̮~O|CA'Ȣdv> RlHo;g`5j:=AHJlZ |=aH&!.U]'Ka6rJPH&S2R3~Z~$:0pIc둬IB-};Ww_2&|se!׍<׊ݱΙRyMӨґӋDcS  deKa!Q޸!T'X$Pe<($z=&Nc.#ِr:ZG)/Gơ*&D8o*.-'HQ8>9{ +rA/ 뻝łrFd\;JfI5|8y,)u:PZ폷򝏷IMm )hGh%v\wa9P"i5ȺAb5\_w?Brcٶ+"uI7Zr ؽAW1FIo1Ic|.d [+NbH|[LڨI' s?|Mdo#ӳE Mz=2_& ͡!jmn|{@ +9׸)$grÖG ' Y39Tf$oeςYg%N +pIzwY>{%u,%+S>5^;NˆyS5|MŨ+KO6æ ~ IǢYOФ~ZX~i[m޵jSSΈTK3Єd1jz5( 'A?di]&6z$HmzD3 Buۭuڣ}k#o-gأ_@2lշIy|L(_raj~3#bBxHriV[0!ĶSjn~DTyB.ĕ5F5p(ڊ6E4N>@#GՐMa?'6Sb17k\DHH;k Eg(,w#e5zC Ruj10eB[+3BYk~H)vthy7ױge(fLfITsD|"ږeY>IO2pV}"b̑Y=Nօ4.dؚ$Y@#c`_/j @TbJ&`Lhb …kr6i]|ՍpzV?p ػ6h|(d[}B_2$z3;mR] CI#RP3> +dP@pdx$Ui<2') & ⤑5|J _f{!ּEǛVHS@X3!SXK !Et?ܭ>r2'E d3CfTO@~\B.8=01(4}oM IKvSn?*N{UO,TJ'_PDBװ*F$pNG)j!뀏fs?zWi~WAgf׶UkՅ/fAL_YDH;sHOXDNR.$rܯnlM.o7HC'HQCpe45'}h+kkDmLD~r딖_DΉ^'] 7WG ES&)ңh$pu4;$ᷱbLe{{aN[~`#":Z? \&E-<4^J9I@EY."߄Ph-YJ9fq^hE:&38~jc oH?=vA_Z)8=Gj* }(6y!z a4ҹ ?BxO衩!)# 1ec'gIӸ;H caZ5ueW-~(NHB=,4Q55VlT8h-Z]*6|NeziՎtunu#\D핥\D︈E[}5lzk:x=a!yg7@M4HK5vEQ\*+!Hxwc^3'J%!woR<[x ֻ; r=w7O!ό%iũEPc5.B$\WݕWoR\GZs6qB۳* @;Ԝ[n(F2RZʃAg{ǽ?*w-u-tgػQ.>7kz _J|RQo-R8=9؇@B\VNdi?)#oB\- \3MYys߸DX;Ӵ?7?|t,0b; V=ꨪym3 QdE(^$ߐngB:.RTt?w >@ nȻ܏V0Ɋ9 +5C6N癫P*\ T!I9^AS?`-G].vN,>jMK|z,܎Yz^|}BjYW쌈#F$7WѹbaI%cgpE2WgaO/!ڰGv/qV >zj\ʶQY}zR{c a+NկUWH+UP_}cۧ&A/ +}Rj'Q3*Hw#-7|)MR}*Ow5vw~k1B7{?\H)C]7LDN)M{YJBE36G=obs|T-YjldX|aPф/lgʉk\՞_&1P<<*մw)}_^#N=ߑwO\9LZc1[$Ӌ ?OD3spFhA)i"rVTj3TyzJO=g5L@gactV3Y,G=Y'<,>98gJ,@?6h:F=p`A^[F} +/KLg>P gguYƪ+ˀ#Ao>d+Sa{CQଂZLʁv0b,J/D%32,! sԌj +,zj8+hT};Bt(1;ߌ ɷ&*=ւ8<*uWS~,rv ‘cp&„*bO(wV(n"dwLE|uwWQx##R gә>Eȃzŗ c5* ^HJ>l-CBk)Qwg:_Ož'tBdH:ۚ5 {}`; qF(r!ggkwY(6xCav*$O% +Ku+zePQ}e aMq#8k,`v}5WW)Wb{@//=S{i/=,<RJ8'a6Z{m%O>WQB_X_^:Ol D8;|rRmm@ʈiIu^~XmۅAog~}zO OȮ}mj6FzPh`TsVp_nﬢ4[8zܪ WLO771"w,yY/`= }VMxP= )b].PJؖI50inS Z~r~?ڦ# +b3ay8>/t>0%_z\t-f 8&R^t‰/7`-Mzsȋq6t/<ΥH2]cS5 RBӽ R=|+D +P]HV+G.00,2"KkHtNʃfB^ ؋T`]ׅ@\ cBմ]7z¾#z3)br|{[Ŕ}~觉np-'_㕕|+X <2bEAPŅE߯C,EPb+ڏV~n_z ?;n%?z 8|ǽ-,f>*ע Dz@P~÷,M£(.秝bpqUxrQ$#|K t:1ׅ{ȇ/(p>xЖfUVsf ad+,r3RbՕEqw8qIB\5;o{WˋzP$7=Jԩ7{,Z|{UUjt_iQzrCJ,}k>& yCӅ3⫳}Zy{Kw |!{ ^#S2߲?Ikgw@8[Kpe-Z&iez@XKK݁^ +uw.9gg{{{<ϛѮ }4xӍdZZf\֭+ yՊ)*]_%A_2RNHC&oREU)X +6Q]<j:uKv$Cp|e>TAAGBA‡udv.? ݯudsd䛭.tW ZAnM$ܪWuvu,9 ,v}P?M M&ݏlz6(^>ށm,Z$NQEk̼_ME_YؓUͱ_:7eON $d^ 3h~S&Q,(S#7ͩn-yE$O΅},y^ ,0 ID{.\B: 9,!x!ј](^<|0P~'f;yGcv8 0H)39я#+'=}+Q4."m0𥳐~"n ("|\j=#,K6[<|Ul^O/Ǔ֌9,8k |;u6f$$zt(d W{\QQe1V{~أ/|DlHB<{O6Ļ#dibȁ|/͌/dAV;{*unD 3һaW?i@%="уv ^+Eva{9]lɣ#Ⱦ%O vĝ~SFn7!f!xmj|4nwcxQ{ԏ/%DWl=KV"k?#z/FE~&Ő= udKyA_{HEh5A;pi[#{|3d2 a uM2tN0/EWq6qo]KP+q}IܤKF<Ȼ]͈3=%xjvRHr:1cw.fU>̋+]E/O =LrmHisT wܮ-'5?">{>U*>S >S_/Ѫc]SY5aI1՗ގG Gp_f>P! v{C^'؟1[՘ ?&5.~`^R)yyLzq 'Dmᢪ7{ayYqiü%aEy&&QqU-RcmiQIiL_ŕ5n)mvJ#%++P+o?̱_l_cAOQEÉgW~|kڍh>o5{U(yY )I[[EԓY?Em=%z|RN ++n=0RlEn¦oI{c +Rnd3*Q8$ V5:ͩTGX롗 ǻo8td%oIMrlJ?Ӗ.;ޕo6ZI 9} ZRz]_g|P#F k#ȷ~q7Y2vԼ}UwԢ$ĦYuA}+> xk: 2QQUx;i۲:Fym"Oo*͛%kR79;Bg6ݹS*+C ƙzi5P,el2;+./ޡ##A ֦(ήvx.B4j*lu>zĵ/Oωa"*6sc7#%]ϓֽjbڈ1ĔZ+)~:2Rm'F>w >u +uZ<;ۖ|+?bq Qߵț_آ.GA7P;PJ11^Xp7:1|qz!R{O(ۍ}7Wz + Zs~ǖo"mJ+`O0qSR?OV ?4U:472ŝ嗉s#eR֨-WbZ}{Is=bnz]  %1ra,58OT"Zjukp=k +;fc[0ov]O>q-ݡ#/;v!(|[71Vc4%ŹqrqUA2֬Dב'RӼ'4y|8$>}_uDy}y!u :⑦(ѧ(btW'X2Rm>T'%;ya>`·'$##量-W2u\{/* xx HzwiiKtIs6w%%Y[lwu>>5uOo#U]Gk +EF,D:ΘWY +߷jaWD|ѣn6GQ ɯXBkC2]RAqqoԖ=/!|[zƉiC'NJDZ_lOMi%6:t椋G*"fނdYRV{ : +cqzU&}Y%{V_P)Uɏ~ J/ vۋ*΢747嗠]'Dɼdi5!Dߠm):(YV]+--J11/ m~maa ]%P55qBǫ:[ 5ޱnљ G +_|8?i''/'к+ɕ~qKNǝiH8֑+ x&E?;~oH39:rS|(Hzg=,A +6 94+V~N#i}ܴcH=OKlYs%kڈm+K2#m+}iB|x_,Oo[j+}Τ63EF#hФme>c>O}`_xt"5yC}бT˩׫}ed⁺PAK7*lFiUzNr/{X$賟$#51V% Ei!ލ1's/6;kbl$w&9vd-`͕D[Jiѽ}QF i n_/׆$fJaܓ*Vڷ_KS-ןl`?Bz$7󖾪p-z{/ivMå1(׆ȞyJߖGBUY97$eIsMݎX~!I5.=0]:L.CwRȯFiu{t +D`!ع0ؽOl߭<6V[w!dN6Ӻ/ϪWo) gKކ&\é`h0Ȭ6hw EQUA)e0oH N ;` rJhJY̎B;TW3@c3ʁMi r340N~|5̝le pGa= w!-+ys_\no11/K=keO#m>z[P%ΉJT|DLW,7^;)a&0TئY3\s$fù 5[5Jz%=uVc:/4dM_\$Cٻh^ǿ*b oZ=zcEC߳5)0}v1ulL8Boҟ}6g*|9 lֽOOծ+"R^}wb'^I˼^Ix7uO\dYԧ6*1*(!rZXwxHoUyŦUsu_ӻuҰ(en0W~:c_ڜ< +چ8~>{?7'C:3V``En }x_^zZ3Q^J{Njq vR~~wl [QM>2")/D/7m=^??qLL=4 ާ3GlDf͙w?vGI?@;tދ:S }Sqž)% p [JSWx4V{$~3IO|Ji`-ަ&0s vO7Ԧ8x:Ø,[ԝQܡ"ϴMi/ HxWOJ[ߌr%>%q%R8tֆ.MZ߉46o7T`~?ܟMNrslE`8N*'-1~ PQZ+V7sz5o%j'[0] Xj62DU)1qÒa_]~!9;bM6YV0 +/cDhN^ Iu*0w0~0Oe/PQfM +f'om`hۭ\|z-mf_- +f/R`z6jOOPj#uCu)UUҬwOW}(OA㥪TTQDOЗ,M`֔`Bml-tv*]n S@L/`Upܽgʊ}d%޲w>)5/ٻw޲2︷П*GWHi[47x>>QUi9iNpN0oa`Xy+9@u,\CMFQGTч1/㘼ݕ%R'Kajoas +w^qJ=`h}#Wc]ON`<"9'1t0[~.7i-7s X00XI = ﴅq`,X10w V3m&MSu>zaƪCMfXʳI-oR/{S!P8Z8*mrOmLA9Zb5fOgrf?c{?? +? 挛L^MYT7C߼̙ ο}`ArR9̴mZsp,bօ +"gk5ݬ#yA(}_'SC{\wg2s=MY-nY0bOB:q-p&o~s'X00X+v;>`7X\u\Zn,jvU~_Pt':}Tlyz_qlWR7 ..G5CDu|[ -n:KwUmc"kF/E&/PU\hTYs`Wˠonj`,W,Ͷ`ٶ`!/ Mw6M>|^J<^"TCVD밸;/}[`*bV~w<^Vkcq:f?s|/ O5εYp 1,@ufTiA4..Ч@uP] T%3 ۏ(l?VKoרpq¶-JPiHLKw&4фzFfniu^h-IjIW,/?ǟcl >KkeK `;%ZW9sL8\[8 X00X.gEk|X63VO1icz5Kz4լa`Қ'o|yU-iC(nIta˥*S&2!򒓘, E`&970f :U{u\|!ʛbp^SXUVkYa`3!;>S;e#zdѶ!858pv}sNuX\Y˲7Wd'R,㼛b3/F׺D%6k1@2r/g)-9B8U:Y6yˌ +5~x(jxgZO=Lۼ!3yWOwC535봛h O'Ki3mRTϡ嚏QZ#-=n+3 U|mN3#D``#I4X5`MAm-(nx+zҮ)Z(۹x~کMMA[ +9Z&ZϨwBvZ/85$Ƣ+^uщl L4io /|j'k/v)όUa>C_ ?M +Z̯qL_6l]ʣ pvL^ , V0bfzSoZW|=G3ww}_ikSI?mv}D=q%!fuc.!mJxルt\[V񞻩, +/[p鐈i+`6 b=`&s/=L۟AB۫ƍ6if;_ޡ3@NuiW{j} ±Wh ڞ+zCz~5n-ino ԗM,;C]Q6u"6Յ3^V 9x9Fa7nSWMgkZr4K?ޭgfXr_h'ƨ&cUӘqmii}]MS>Gڽ_9W 1(^b6,F,nTL$.uhy*xgAi1{Ȱw[EP@u&vM~qB0c"uT}8W4+KiCA[ιT؀+,KgE΍n0;O[*1{}Bv{eUqBTQd;zӫ_#x/biV>;yٚL7e36n}TuGZb>c7lN&F+0rڥ`>+ SިB6|p~k }Q#DӰ 7Y:vR'is4}]My=Nrih4?x;;K IsŢՔYN3!yWb^U ytRP#wq>mLVrkѹ)|,ũ?XΙ,^69kߣ7 /5:Q2Fx(}-0 +3<:'c p˘ ,\c|`Lj/6\tac +q%+Hd/Z[Y^X~6z!^2fC 9hkZZCJ# +{*^Jj`K~y5\촌ӈhT-7齡>un蝋642oih"N읕쬦0̹c +6𸱈p82U_< 0^q9@$K, ߤĒm<;G;)ovaׇG\Wy%y链?m8fVUcU&ԬK\pwcLbg/O6˙{V +``ԥ@e`v+hxi iՋ&MoϤYGa_:LG?]g,~@801Mu=qfÎ]a3W})_BLV .XC^.\#0ʩS U)hz{ իI$7ģn_%!D [f,%WfA`څ+I^3(\ȟζzr&ɭɶ^'7.ap-G#Z,ZC]^45JSixڻ:_sA?̿ _Aej7rw>oݘP tHe ncܴ]7Y9h]N!wߠw꾥,_hmbBFWi9M_FODzrP0<`h_4lƑg &A"\s_ 0طxe $(k#D<;tNh:w"-%_֜|/]sT= %ee/cxs9q>F|-bc_dC$=rܧwq?е|:ڊ3G 訛6}j@swpHf [9xv:$OОt..SS^4Z٭r/s)b`𯶫9X2 sP&‹֣'V{@己ϪE͖C"? 55Mս|h蛱iI̩zhKV/m$eqĀ%uc$h#}1S7wC?huX@&0aBi澙+-֡Abh#mlQPwTXAH_[ΗoÜTxB..8G ^)h?3vr7e>TѼSCW5Ӥ쫣Yy_`.[JMk&6-i|k^*FpSY[ +blSLFN}>gZphn` n9eC,=S +bc1/{B&UAna,&;y3X@%C<C-m])g.7-^G5^M Avw?<80 󾺐ڲx1(w_{B5p^l3Z?&YfzY\+W%E~L^c[Gp> 4oXbf n1i(q % +CUgVW;Br^/.%<K^/?ruX{~5/t4b_a|#q:ڨW:ȿY+0 +Q0/\{lN%5l* I9#w7X㕹gi*`6(/ZĈp|s9L|\9}yۊ_$'!4i)h0`,~Pk%)l滦qsF;ˑVGtB*|m)*>~bYpHrJcZUǴiü;˹ܒgONFb8BC[=X +8al1 ſtxR~2Cqψ #ho\{֦th8)wBB +~!|&~Q:|:/au_B<㯆̩#؃]鈐{WM>` e!1?oṟ OռTTy/Ĝ,vz#`JakwqqV1 x:0wgذs!\ [y+&/)3Qv.)S{ k>S,0i!nO\C\CBL{*ݬ%~RfkUǮ^sĵ=򽳜6!#/e.ţ_m%ﮃy:nun|S8eЗ+xd3t`8[ h&\k9ϒ{"p՛Iʩ*`㌅?P~e松LY_y2 _'0? )9ȰƹBߘTD0ބƟTWـ;uB: +ęHw~Ki>5 3s=ZeXB.v)qƖxkA0&rNMdt lĹ󞀟gG(s<<~6f&ń Tˢk#ձCY_ߏ;LrHj`47  /-Ϲ]$ScYkM=+[mmm``0Д,벁!pN)c{Gĭ1.=<f7ٮguh f7=]Ihgo +A9+(/|l 4E" ~C{}>Qk+x)e;;Cּۿq^Umd1 c7[q,/(bӸ۶lYإ Ԍ7֊tՇ!^!/l0z^1^}_]8~i[cFXG]<&b*ċ'B=yL~n )ZŽ؊SpI#g%xvRcgQ!O6"Jb戎8O0;2QHYˋ8Od-' bcxPr,0ѨNv}T荵'gio6\^gM0!,i;)|~嶪sV^sc"~hs9*c#jx\N~p*3u *,gN{ OG{xypat'#f*co1=,:Y}|_G>5[5 +imѳHxU'Iy S"/\3qÒtrve#gbG#<ڇU>iۣ>ی;M1ŬX<3;;L[ /v}@gt.YS@dwk!b?X^eBt]bQ'Ż>AD<ڀs(n`?ʷcк9^>3!}h8#v$O皥v1R  zXc#Ϡ.g/GlJ/{ 9ԅYy''+rN* 'o#eoUW yM<*ZZCwXԓ3A}̇5?b/k? Zpp^`ktbi)HX|JcyNшm !썡YR6N;7n bQcQ߫Xޯ8NE?ފt^ +FDڗD@ +İ'BaNl+b*CxkYTDl婈; }d:`eM8)ȧ$3kОZ{KơI ;]p1HqQ*bq nA:4~2-G;[0f!!b}Z#}F ƾځ.f~n#b,XOK:%b MI 9e=T#+an}1)ęh +wMjcAco^fxbXjs`. sH[!&7O#~)bVxy9|r{ ۄǕjot{vFq._;HU6;zNɘHwGp# EF [鞓6'nsBq1Jh_ ay\Qpژ KI b # +61\fCJ *h(&BUݩqSGڀ? =\Z̪Bb2^ SxU(yRLxē9 0ؗH71S Y}dy%A90мPr1qRl49OC_zL,wRAwo +FoO>1nAtŃ1mgL'.Ĩ0iDnexRh3AVz#GޠKJnGv):g9XL@0eQIbf!M~j>,.bN: <f  cM'1[q NJl +V b2 y#X{ ݩŏ}I==>gwŌS,;8!Mf<b"X#7È>6r080?KS_k +"mAvM؞SB|02tV_G&J,ًgTD: b"eH@R}.ӧG4oyB9LY.ۀtɜ!C"oȈ )J.pysJSaO6ɭU{+騡1CkiMD^hBC'=30zTJ [On,h6&k#-Ds,/s b" EL`=W[A[m(j`gqW?BߤbdF J &' xmuɠiHOk=DQyC&h"4g|cZ!<O^;(cS.ؤ!mp@X9X`Dz:2}ZҨEhUfihCKQ'pM[벛uQ͋4к ټ8IM20>ut ^n:8hM񿨟/XAvAr1L:=ZsEm#2k5D9BV'UCTt&ĺo`t.['3}W?`݇Ky+]~[RTc#fGofc9\j]SX"u6uTqR Gi@Gy i ~8h$j|LC lڨ&ʨ'F2,d_4qF%N7Gٚa/K; Q, +b&=/D"#aXhnxKLA=F]zCJ>8M7_\i|C&2:wȼu&ue)60,c';JW|Tx,=QMѮk9Yi%̭`h/:Y+QG@Jj>x +I =HD蛿L}cqy+ fGDG}lGG|E) :6QЃ(S6rҼBZ 0.EL#8!]CQ*쯔6#QГ͈!8 IJs~g]FZb"3;²?+"-@`<~x5 +TkuصVu*[/OroiQ/6%[ȋEs<银!}ĿCdV6=11z:Яr)7'vF؞RBq::iwFm"wsa0"*r3Ye G|0g<igijrTDڲ|<.xSvޓ ÔtG1L[) SJJs# HHқL +m8-1tIiHSEx%k_,naX^q.ٌ6iJtw56W;mk-<* c4c63&bkF;KOYZ>DX+ +`msS6 pi#3D-ڂmƎ|h[Hk}G.F7c Mωx//Njdt" yi- 0İ Tӝ´zեHmS1cw~ptEVV%Dכdu̺!ywVfÊ6wpyE:uqV39 +圌^1E"[yȚ6.WύC> υ;Lطig ,9xO$,DX+{jg'&sal8e-ORWBeRmPeF1fM\t"gBLo{rF:[0NԥH-jJZAl^ + +6ʑѹ, L'' ~ gi>#5w7!f-ﵿ8: !95iGNMm6B냔Β8G:] CqHdaҟYsv+K;m=}0Nojg $F5i>< XK_}!Wdƾ^F߇p{{"ĬFMzLfiU),nʪ<wF;s[4w^]{%D1 ihS +\$.·+tX7#5+{Q+p͘í/r\@;QdtXOg؝f~굡9p=զt"=H[霳XGQ"9>Ylt0ʣ$q >:QlQ/ +H_aQe۶ĀbՖ6Z;HIs0眳Hd:ssyk,sϹn(k1Zs pnS>` eҫk,cS gwh +z xd m<$v_$ң Z@=k^Fr14,DƔ@z@'>˸6XRp53f6fcsU9h)TQ@y96E܉=8 {`28챧9|M|Лv1JΒwh~9r{_ھA \ }6Z7vA}cS9cڢ) G5 Nm ͧ +hs1d 6縓Rb4hR\IG|.e VUT; .,Y;˻jg#f[$ml!CokʀQRYQ,GP}k䌢|셷SKCW@ɳG {흄8^(k\ǖQQpe 4i- sh.S/<=J gATb,/=qr +!X>{`0==Y,jQ2ta26@aG[O,ԗ9@'K)gKch|/.,R&J#xan +rN-縰㵈"RNS!/[{A :|\Õ5wh e߫%mN5]©ֽ*D_H ˡrS.Bsgi,m5;)_pcfEtV> +'|RC#ʃA}y؁r S!X +qL\5$Q]b,YZs8jgA+$bB;+G;K9+-b )G&lf-2uǖ#DW|Ck&KgyWXs3DBh%Ɨ֯ʛ)PJ=1zvޓxj/4k-6v]_BHEs㳄;? +7'[3 +Վ^Oo|$A}u;eXV4R- =`ɇLI.#*hn =5(::B']==&g"{E=XG F5`-ɇfb=jr>1Gryw&"FWN77G|p_R7մ%bL5PI#3P!mSr}{A׏\'Ϛ|YiHGK#*i5oKf.0X5Y_Q/F/-y[xX!|qYI22{29B=h8IGxOomcN_R=[5СNg\^Jll}bZJ3Abݓ Sdr)$h^!lV(>7/;KI},Ov?y-{Uua5ɇVዤqd,5{W9{xb)4g.\ҳP9iSS ]eLfIcabX{>Ǹ.6b%H>BԠZĸʉз%I|v"bh@S9\(EZ[b\ʱ#FsJ^Qsh*GkФ*5ԶK&d\Z5+y&" )jdP+W_tLQ& cz" +FZl1 {+8xi;3G`_cQ؄+hj@uOJQJ5͡yK0Ŭɇc!|7X\ιkc}ʹ%?IIfKQC(N JYOׄW\^,93:-DWMWPMWϋ)T7M#ds)qe!9OC`7q@ݺ{N}e!k"Wֺ{=Y."YǐK=a_{]!/ +>M[i!EvؓZ8t8m=kk`"#l#v5fa=zI5H`F+b "1 禌3U̾19?)t7kDp:/t,}8)B=?BօWZ#MPoICIJ*}y᭥x^D!d K_~`ry%kЋʹ>&OLᰇ$vDbkx7w$ +Ehi<'Wzp&l\)ï?-v3yQI|TXZ#97A_М13M'a'6˻ irĈүGp ԑϳ,^AْwM +֋E<=T7;q(s-x$ qzħ~ztzد\H5%`ܢF0j5Q|z>yË́Pq>T?)qT +Z9&$.O`$Zf_q&d /,R{zb0<kAMzd>:ևm쥍!-~hQ2$G:mzҎϤO~W&B1(F JZ5KGfSMpr||j igg*OM|kþ1Ɩ6tB{=v =o:Or|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/ǗW|갺:n:f:MȏܣoqV{yojj\gWۑ+ܬ]ly%uՙtu|y狟 wN九y9szK) YmDϟˉְni6]knoɉϦ?,@|rKZ?[EKo"}+;f =<1:5Si@CF'z' +=]#YA>Ga鬥4it8M5Lͭ5 M%S](f1F>Z UKFGaC)nfg ~[1ZG# sX328@ -sRxj &|}{ n)iC8ר2]ZfZ6G8pfыUzb}zKN!Db@s}҇KAcatPLJ0ûp[/1"9JČ)%p3[eVy*|+}rSl  z6xtbmܴ)?s<}ܱwG QМ1=|R .A:mOF{+zqv}meb9ʝ9zkp=Hv~F2'+f~M)|<ʹPP=9 3bڃ3+'SڹОʰw`ig_S_2n/E,ûF74ׯ4 >r=cΒ\В d,id,0Ɔ\Mr$sFTb;o-g}Hkp}Lf&׀m~G0!K ~baA ===݄Wt/<,$G-{N%Jk`ٷzrU~)z z>zߗL=sgBƁ$ ' E&ܑ=Szrf.z>ѓ\їWpqߋe̾iʴS KӢj2$d33d8g过(wFA/FMD8>]!ވ_VH&m"z(?< ~ݓQ{&cIUX3EUBƂsH^=~9j+&fs\V2FcY')leJ{Mʿ,vRعB1l5Y;ެcH?SXhs b=s 5@ܑ< K=e( 7%MCa:r+^)|$R> #$g?pE^9Co[6-'O?D+RQ]=qrGR̮Iktd||rgPpqڴ` q[J#mCߌC|lt@< Tn +z8ĖJ2(#{ s bY8B^33(x<<:@ !v=b\$pT+cj'+Kǁw|H%z O{A-z ꑘ+:Y>ZWȭ=mu1o/x N Α`첖{[z_ +܀ +咣& z8>*puT~=bP> (ng hn*FlkėY2'-E C98;Mʱ@$g婭PkA\F?;0p8Pr OeugQ Cby0c=#c?H_S,nF^H0K&8 =M5Xڑ0@ۀ׋ #c1rF^tpUF}#E꣏sy M/bހFE_<)_xp~M?zuM4ģc+|&-EOfX8>Rbk:gz݈/'0~pr^T$fDpѠ/~OE%/b;RH<=BWԗ!ܽ'sc94H]p*c!*7/H|ӯCʹtn7;`!62.\ʱ|rtO +gYĻ 41v2#s#O]T7!|+d\I"Q +J{|gU \P/łB8ئ~[a=dh/.o6h_9qO1 nчK9!0^^ q/E<ʻ;c' G$xOs=C$dhGI<  G3,]bo:3i(4 ~BӁ /KyJDsԞ ف?-z4#J'g"cztT)v"0>| {{5$9ch? hlԆDkgaNbD\ߛ$I='~ܸ3QL|L~hONiÄ3参x8߬\HWx(JGC +X y]yB\ LJ + !q{0j$V >J$ߠ\n!ӢcͿјHW^`94ggI}@T>|p58HN5| [`tAb0?pxl$2ңqa9-SL=Np CCPNP78P,Bb'y/(2aCw``N? P.;zn1U~wEʡb|`|A5n뭍yF9%gB@fKrfK-w +ˀce喞4ףd~qC^#9HLb< bO~[`hh>TFrjI87y9@'MA 0g!&,OL8: \W J|?!kKnKfًƃm 䎾 >GszBmu쯰e|]t2am5!}Yzh˒r0F1N; N%/kyk u%ϖGzXE|wP6j8<o|885Kj'$wO?nhǀs +$&7xI%8|}5ZB^šI|ɹ夎D92//^l>1S#f5 +z;с܂u!D]3nbC 3B₠qs`pP\ K=zۤ> >i!qYj#n١ =pkx{M9T~'>pRH> iꑹ֠rW’1l4(&yJl.784^.zi\ +{ޘ2m#>uKN(]hꯁѨ'GŔ \'I . +v#; 7+/18 s. شӳ +{ +ׇD-jOТL&zɓkCrCq.` g/TH7!E㤈JzJ~ɠ/UNT6@5v&A=`|#&TOeշ+v=Yz\O܎sZh@ xͻϸ|::oG- 1\PIF?5˭_?Z)Vĕ±K);KcOSrn/101e. e=:+)GB~ʥﴳ/Os=<'qu;^?m{#x,; 6 >{3e04-8M1?X %pr[4Ձ]Z %%5AJ0܎ze{ gURCeoW#`&&ý\OP|0XZG )~tZO 8QK!xcBm\Mb*%_9 +endstream endobj 60 0 obj <>stream +TN>C_er3ULo%x}I3~C:?GCיON;5ڃW/ >LJ.[.kE!h4}z +1vU8MpNt>Xظ-n^Qθ>uŐQB9å-˽HVVsak#_琯#N܄<Kf |0008H/w$ 5Fs/-ʦ#$!}T_ʿKiG8}e[$[d$|aMHsZ+$Hk)YC>7lxUyܿjc!}YkAlBN'lK ?HXR./KF.ZIZWx1A8P#yϫ'_Es\aㄸ$wN`2~=\\h9|MҁrWr +?p[PʨoOx},#J'(n.pt*21 kэ{B#N\tAM#y%IZʂTشZ,y)#M;$qY$v_]\ĘAWW=|GE)uL漫%V85O,՗Ɠtfr+6FMp@Hhc1wJh ++m ePھtPΞ|wP ~:+Bc5Wʥw{y۵+>L{*D_9 lCso-JVpw|Nyf^S]R}iZpT ͽgXMs)ga +fX;j¿JG$5X֕[icmG$CwO %H9QGԍGl +zfqH6FJN?K@\XE1 #bGrOܑ֨2!wC 1'Ig/f HhMr#`09K})|'?0UP;t-hcԋsi=5?<՗r!s`6ۨ6F8f?|dLM%s8S1FCצS>oEʨSE]x?HINgdKw4{q'B4xjէ/ƛkظiӯڸW ?upAYgW~Nhe[^^ H)|{fAj(YuTSur>_zXCQ_W>Ilܨnv?3aˋd Qm 2Ag04dEwMCA/u(] 4g6Fx6jcxf&ŻX&q-ϻ' O9H)TZ~+EUK& +AcؚН9/8/ayPPt__!WG -S?${JA'xv컋c1g؞>i.9jnXg¬Zٴ1z(p'[`xw:Li>zj|F٭޽yKڥ \m2a/G(k+e?m'ffjcmi{,|R` ʠ1JntZ\p[\zI;GPN~칈_{~E)ngYyaw![֯P6 ekKKGFkcOm jcN`ھH^?E9ʈ4X&%d_$%Iq0to+BI~ [~%g6݈>8E^;Ey\)lYG%M.q`:ͱ݈I|~|qJ<#XMZ6rO GX+tlʹ_H;c+i ,lG{23`4Ēkk ~AoZ/4F__em / P#UT7sӔwԁv 5ܯGk{]y|U lڥ9oHh DDׁ 8d8ي5w n:"$KnAU#RuJȬkG[=?$. +N<9SV ք(B{s#(yFDlG$]G5'4&հ]/Q7Q?ȑ 'A- +},}GZy g-K}=;72S&-˔c3V>]Qu}}d]3j c?k$jt{.]'m _PTx#[ +}=k%?\Fn)*kOm K?4ͻ1[];*ipwWH%MҦ쮇cna9Eʓo:"DO(S.qU}Se V We@{aXvX3H,w ++$4jW8]7h<;z9#AcZ2\=NJ7{9hY3Vw5@VVlݣ9{ Gf.~ۑc~J#M=w%4,89zbDE5<:G^R6d/gD2nեETC)(c$4{CW#s/ͧuhiDm&]tetOc"NܡɊ] +oSN&9|P`W "D7?`]h'81ƬO_5l,h(C:WՅ9$hʝwAcilvХJ-K$R^|_"{ oE-5ToI5\±ԓŤ1XZ=@뗨b/h]kҵ|԰wg>CV֚aQӱU1_g]$fOET<,tlss j\|.}BG^|ry>Kzȷ)M>0 kT26=_,!/󢦁8l΍ElMe! +GW5E]c q%cF(ԊLׁ2i]N5LEc#NA;`/ +h2K=6P[tBX#w =ua㸌k ؼK1FzM c7ja,0MWؗ§_srF#sssXuRh|V5ZFMy)?OHN,Ɵ5ŞzIOo,8/k$}}rgR0/~ {3.-&_'utR/mhg5]iMkBXwD8|1~YQH4u$א:ŴۀnR4WwmUbkQ?v|5)6|/eBu1[j{ji}DQYKJEy{& H f(*jUNn4A˦jEū\ŸeZ JF1&OWUFЉFu!'0mԡ*a'H!c@V $ 8<9"&p'sɽ3(JG{ >md5:ى?W~T\=g|2|Z~?B:SƝW;YƖNVG]]% ڗdNR֨#]\}C57s ʷ븲ntXBGy~=Kig*oJ;VBzA3) ZKELW>fd6\6yՊluFDn KypMa'kEų;ym0f6wܢ͏'嵿οo?rw8pǟpA UimV"|EƝyokZ|+Ϸ8+O>Qmկ7jBM(5ro/ +ǟW2iyjsL}k3^y7[ֱXvl/,&^CkZgf!z_o|%VL8;_TLWPbM!(6fg<GMuCR~_ew}EC @8S0ړNP!5 سgߋwtCWˣlTU-ʢuG|qUŕ>Y)0H!>]/&\*x2(mնՓ,_U3:# w)ϟ϶9ڋ)5+J'z̜?ʏ7Ř;Lq}icdեm&+n׳w\E+as\yKzkgMc՞@UWT++m_5 y׫-~Xy=H~fFM3T7?*+'_lkLh{G%TO5b1gbMlū5?[fkXaz[n,{o>һ)»?ro?Fo W~K}}L@QyqՋO/+5E(W"\{$=W]nt*U[Owr:Ou'˅}/,T'[PiLj&;T7gxBUptJIyUvoީO=k/oT鷼p w{w'ww'Gō)j)ɚC>^nt?ܚ=Z~$/{ZX˟z&I'ۭc&򿼍޿ק9=UwT4fݏu0Wa4 ^UK;Sړ؇];~/Z^~RՍ!3N• +KIkY*w +W;\ź'۔NJw;zzHڼ][K=6*n4ygiVrE- :sfoħcT/匿6/ⅷҫd{nmq߬~5>(|hMP~jΰy*_Ԟ6>b/Rqߘ3ocӯU<\ωZ-/7P]:hWϿ˝Vw#7G3ߌޛs$Kax뗷)q}dvo/$H1b}/{' խl7,,~\RaaW[Y\ҹd-?ҶabhxEwm] M?.n|jVkj7v]d6>޽"sۀF k!N<麒Pwۮ]J,% :63OWzt-QuqTyS៵E<'6_|7:7^Rl3nۼ>|6Y{/,М]w#s=:n^q|z0_)Mzבlr.dfEod%/Naw\v.GyݝcYZ+w [V0틳@`R`ieXa|мoN ō-ő-i%;K_Wܘ)$U4YIS9ʋ͵~{&[Mm goNo/vj_Ҙ{S)'o_ܲLYԀ/nQwgb 'kkY_V˲n6Wߝ+?A|XbT]);JJF=L))k/yR쬋c=n:5>Ϳ~{]xo<ꢼ꡼`tՑ?;ďm_^Ĺv-]ѱԵ`A"[WZp7Vѥ&/\dǖu.rnܽg?;JU-*NUDǧ mqzzĻrW@ ARNԦ0AfԷLy1 ^ozzsC_{Y'냳sR +Ǒ3d.T_ -8_{^>*cg=F9VUW+5<PNMlH̋l(k((OnH*a_3ma Ecvݎ zC쫴41ԉP[F&Wdy]W7My*'ȇ'<.7dx!,hK`V̊.z\QVfZ-]-E$Q8 ٴxTw;ȵyPmF/-7 u+ v 96ft{-nisNT:4'8u- ~SWR}?B)Yx?z >j +WiMj* m.o*(>p#2lDžg_(PkȲyu#I+ZJ\s}vu ڈlȲu2imᎎ1O?*~ 0mc|؇e3 +F{ߛR+"$܎P'gWew޽|#q܁o +q|v(AjћawO =|+mܭP;Qyv/H}{; 51ܝZ5hߙ}gf{jTN֍܂k 7דb vpo)޼N|٘2+n<;[~1,2o|3?875h&k EfX}fB/=f<nje1_>~F߯_MfVMRUYfʐf4yhFWK3>3FfE+Ŧ/vg-^Vp';[Q7ngݪ κ^yNpviCD^^}LA\SrIDSzq魘CtL#ԅwbmysN-݇}&<-3'q420h6ٸ95lrT0厾ޟm:?ܑ?0j"7\F `1:14k`& g.5c~Zsaַwo0n?w7/bճdcS +nT^R&~1FtջAY"r?V_z#4ଊ91;R_zdԯے]ʳf5QW i_:E5{SsS=&g3LFEi"4?" WC^՛E@};@dS$i==Sx{;R})Y]p!)G}=Aw=!'NlN]7sv_9z-"0agg!sp]М[YME/] O +ٙ';3C66҉6záqn}Yiҫ'~_Mz5x%.Gc:945d3g-6Y=Cv$;w+szhVȜ;9d]՘Z`lFB!G sw&mK iK+l~mn׵W.a3?`{3䚆JjA[A]OF;=}VuYSMlν>-s\!X$ưf\.ĕ7BZu?([XD~sW7onMw/7g}5?L`YHm}fHAdIC|xfDḭ>af3,`F]|3`LcP]!F?w\N9v>ε7 +n7 )s#ͰwrzNH.Ͻ^{Ռ߄СR?8Ԟ|EḭEXE?2c&cM4eFO`FO2eFYnjf3v*6` ]y{bH[n眹&,7.JMpfr ~!X7Csn!רkei.'uuOAF1#4G1u1eƌ<[L֍Ȟ<13Df3j5ބ1rW1߇<]{n; )r]*||5zD1Wo %à{!t+'.6h>Ǟ;]!^̘{WյNRDb.kYWHGzEP ]cXc&c)&FN%9w>ϙ +d932xi,⛧2vCgaYڬ6zJ3IÌLf#-rIU7 GG?FxH/na}yŝv}rՍ'NlC<6X ++2lƒ2Vd 'f rn } dF a&1V0kb3`憟3\Va+ondf\U_qSƏ?%rn?-vĸ7 +Y-/n\h{ݶfOKG o۟ Ȟ7Gi$G[ p4co6C2vtfF٭`Ǝg̤Yf{13ve6Ìe(9 W?zV?UZFzqʮ47~pzC+v=\sJ6 oU=nkJꄇ:UGGorck!G$˘2 G{Ϗ%9ڦ Ў8fcc1F2%ɗq8Ίb͍c&,/b&63|kQG ]*[8HJx+vonT-/l{H+EM>oNv_綽~ʚ~6}:us?6#eA-ak4<;A?f$1̘9)̨ H7~'c?'̹:f^1-ӏXy[?EqQ6T_ijj;.\w +v~s/Ճ]?>ίo`-i3qѿ5nF9}XNeǸ1}y2#ƺ_Np3<#smę+{Wfx0gϋax0T5 831˺~KL++.75miW*z]-~r6_d}NaK{~_y63K, z$3('΍byf1]™S/GY$ļ葋HN)cqs$fV`3oa|`4kEG֯tJ*>JJ+~}EÍzG|s9񾖮K[:.ohIxҷ3ݺS솶ss33!=4締?_ښ8d4 Lf8?i%ɏ/o~+?OA>~]1bɖW6_]\|rq晁7~>~zS'J?] )۶CM\ j׫>^|󳼦'o}sާOO݋>wlXDfl?`3z,ft?fW23f&G523OϬtO2pvYLT2_PrAC.̺2`IAg_uS;^^~*z|̸9 kɝh!O*< 'w'ȕR]1_fOᮌX~*V23*f{e=e}z|_ b.5au[ 0Y^|jE3?^}F?'~Շ(~{.t[]'SצpK}5ܑU=& _Cs?J'_iugh>zNAZ#[9a=3z8c8*qC'8fg63SQNcf-a;s̔)̌5Xzfk櫺s}P+}(ӯQ_jTxJ/Y{{6w~7rgz^q[z&Q||?_nIīM×7YOZy^^vۛ͜w7qaHA9O ̨Q y^ [,qƋ]~oz\v/ٿ שq7[zyW<>Ļ~f^QL}_$/:0\yZ8诏>@y#DĚj?s4,Lk0u)O1.̤Jg\/,ՒN=E?9#G׬z_vK?[G?k7ov⻛o/b ŗ؞Ei->TRz{旻ğZpZk6Ǯ|ӥݣ5 CSNIs?ze)s{̘'gF mKB꓎p}?z;>6_X>u]u-/GoBŎ.BdzSO'kު sr2'~qhf@j01.?\v?Ǹ_J~wy{.s“sc:ئ{f2re[ekeLeEVN9_J/W˫Q,cXGJk"4=X$F$^"\4N͌}oV~C:Uw0zYzX1cY,n4p+0xzW)_k$r?R̟\2I&A'^y_/J~ەeWīS۸ޔn%߽?UvIR`>Hu>lep_auqF~qhp@2o[eZl\ŒLc]O7.M!F$ LvQ1t۾v^?~:o_q(pc ͸'~V>H5µ ˴7h؜;?7?gbFP + +n:lEF+Av\{^qwuXkfc$ϲCn^Н R#`{YͶ|@Ysh_VKo5DX ʌKb%=t2A}Y Sܮ\1c8_p=8Ox,[(|IR6P 5K[G)w\lhrG܎v^^}.x!r~)} %7^sw߼]niMSx끾 +6V·w #VWX2926I=@)sd[!O} O?rV䅭AkȵLj<7+t ~OS0Ճ\`$! +Qv\>Lx"~/kͶ\n:5xlduS;Zq%bakO溿^ŷ[5v滻'js|[!ɍ7l}Q>[7}:g >_YE>/G3H"R]҇+BڣQ_Y4q:b|&p 7H/J- K.4x)JgTR{BUw-þZ_<;^WOs{6!όmz?ƟSq{TY Ձ[?;{~_ZW>//^]o>Xddh,6Y."TH)C:"Q_]Xrm({^H,Su_zP_y\g+hTUG+s뭹4gEh uׯG_+OiM֪ȯ۟ +/?;#iW,}N(~gb/ }x`q_0@Ƀq_Yx)J5?s=O\UErAO]b {}e]``v?Y9ȥnb7[NNCQ zenEO=jO>^,Wu|L~=SG~?;Mt_|Ar/a_Cɸpxʕ2KeFCp=+ZoΑ~0Ł'I.{M/ ڠk!RYŞm6ݿ,NZϗQh*" \.f\&NaYyD/Xzڌj٦/}SK'KⱧttz&_6Jn&tڈmy8ڝ?*~qWR*wxytyT ++xhECw:;U1ߜ)~D~A/ @W0|a`fǐz/eݹIdCEx*$Xέ5t[Flf%GCT߸a`f[,%km5>/unv?BwV[wj#_}P3^7v' ڒqT@S=o3_KʮT~b}7زE-GOeez ~\#n/0PoVkr[Ȍ` #ul1ՌeLreVkDuqQGƙp\KwKRb%%[gX=u;\sm\"=u7<#:S|.Rvc7;9SBf i(V}o\wx:Z^z?|. +|͞zT͓;Z8Ul|Ej I6BGk?D+y*>ौffO`K~f<Fc\clFf*uiƮ<X걱5V|R"4BJ0פWYSͨl31Cn]Pb c2,}ocٸB36ܒ/"([}䦓َ[KΧ_ q#/UOCdL׮B-=uo+?y)?U1Xo}y +L$-(]"?JeFW`(3fxelfyի@f7m$? @1޾rFhj{=`-'pᆬ6ҐmPz~f7Tl x=|[ {Ģ`bIԧh4dl쾟Ƶ]k(4j8)w^w揼 +νPUW.A]/QV+7KɆyX1ToXgx 3{$fUJ7 4"׬?0EqS +讁C^Bcdv0\mqy;v>ZL{ޟbV=EtVwvtwAHWm~*zѿ_2\g7eA2igWeUwmRiX`i4rs W=2($x2?fٌ.LcpCU$-J,\sEt14()%"Äjk\W]F&:k`ptZ0FgJ 76WÞ7~*{>Wn' +WnC?|ϫ>NPF8RUX$5gOS~C{|Q)3lWr[;6PVaȸrf<3֗RI~أERG^2JMLK/r)|k!pⶐCbq(>V82Z\nqR(12urH=Ir=c#(K2yk%YPПC`5J&}OMj?%Y`&Z0_pW~vCt$){^a}%>=S gkʽOwqCQm1-u5U6̮ˑCmw<#2؜z _,\F HIqg<ؔbYXr-f[\ce\@ep"<\%H]7Ml`:}RuqXG)K +e|\o;3Whh~sRƒ7w@ҝg7jt?)G} YGj\`p2wыOY7ËcVdT5|7o|cFONPoF. + 6Yoc %Z9[tGK)âCD| l3v/Xt,H]\eŗ8K +>oٖj(}P>ޚOk*%Zr8 I0mvc{^!C6: Š]^h31$Å?tFsV^ʮgK1g0?Rd)9 oa|Z8 Rˠ&PwzHQO<5W&i_|>ŕʁU9rW@_>T[>"5j.j?X[1M,!5N4n&[CXh(K5Y`OE\ nb,n BV-6}ua'>L%|'|OKcN`$l``4@'TrBE] K0۟]~lڦ!ʄB3K-x26ZKMf WEgp'XaKġ~13JK962⼠ +T}p2xu$3E^g !X+/@`|q>.3:\J*$ƈ mcJۋ2ua@|#i De@  +ZFpՃTCZO4ςBRFibr@pa&/"uT8Xa̰N&b I`5ѹb,`4ً{&}%|b鹔yv=U؇"|趎!/U\vF,>|&]{>=!ė53H|5O*.wjU2fEFi&[NriCc\j&7υ(hC.lɖ9<>&nC%큧T .,oO:<;W1ޓ[b";'mήI5+΢p\S/HuH 5^hmN.2\LWI L(RbXc)Xz!̥Q#HLe&9dByUN .4DSpꄖOKuoدoXhIY?zo,pGnf(.> +LGj;kG\E&`ɵn*|v-_iH3VD56acr1̀]eJ;uV/Oj=3lzה9Q}8R.%mg6P M)'uS۞]w=-.%=ss~ǕE®P{ݏW:5BSFh1GO0'OsIm|V{$0|l,H`Feq&>2<ˤ 7p9 qF\F5>n(8`RjkM~B\f}lS(y` wb)%Rqk ʟm{c|R~ + ]|q1лcST ̺PCX LFz-m:|Zp҅&7@;\z1*$`h]Qhj0. ~zGlg[o8S]Q`sϗs+OL7]$5ձ)S=\goF?=ws[w,~BN;М}:zGB=e<_U$ 1SoNTjG% .RݬڡJ;03üӤHc\nEW/u=|BWN@;kM2<ڲ*1H%ǭM,[@2e2LEʴ-L $Q9:ЙmTiEu NNPhM {'}ϽtgGܸT xf|W˙~á DYOzzI˃@JYT+jۤ6Ն\ڞ1?Ҵ=\-z1 +!PEl ZxZ 9!Vvw ȼЗ׶[-u>*}c(ntbs/0+ỊyO|7ړOï^,} Oy(;Kou'g.-Z"2c29[!z&&PesI6.իtD:M&[{P +rmΪviJ3VKYB\U 'F +ZYaFbx X˂Zk5#qVfcC LoʽvaeqCgi<@.8afC",}{W<3%[H1,n?z{ Bk|MGgYhT7>Ǭ8j|b,I̳jr=,#A$ctp zaCL?C;JΊ5FpYW3_[bNur[GR ܍бoqK_G|!WuL z]`VþDbUCz&w y'Mwɝx߹W;;Ոi.4Śjm1m5b@P3NT=bh6_ s~i|%=ЖιO{xS,1P5"DY Pe5d#HQᣡM Gjw8 +fT\[qEhP>}Fk?0M嬋zӨf[EX~OZ)Xb&k';nI)2Z`*[m̆'S-'3iS;kםUR]oxN=K+vQvViv!qƈ/MätS]05ꬑjKwzf9[FG8C +@36Qk*vsj!ry{pՁi:;pL`SN,cG_Ob'L]O1V"{^ȤHQ0E.)%V +2<`x]6NWstQSmSĝSv@`M{ +P.·<WR 6vY៨v<6F^:$8."$l4$S!"D@'O{&@jtfmWm7CUl+rFyy>s nhwvCl U$(9Z$]Ius`hmlEHV~2JvV>8ƈHm!y;r^htIͨ"yI!Eׇ5bR!g?x}M sNАk/d1i1|aK?ծKȆDa9Gh6 7Q3 +;rQ :[#"~b lޛ +hsy?|[ qf)y%zsI-#e5P?bw?q1=-,ΨuksI6Zqcr0ԲY<κBi >ZIŖ\TEt S:O,/As+;4=bžbahy|~*΂Vֳj}Vus" ~,i ˋ#z+ksR9qRE85_;Q|v"k{.Cu>_u㦛ys9צӡg=i61765 "ĕmh!w"556!^_!myLptc14k>+jb̵m]w}.Z29 v8RI"khaz4Xנ993vj>R1L}N뗉Rr%0ClI]{d:gPABD&+M__5uExh~#~ A[(GC4^]@k6f`&c*{cX %5Z뻝oKT,nۧ 9M9@jYE q&TozPt#F 1f6:ʸ<2{Фj 5mLj{VTk4&BZ[o-sK:z'ikޛ c&qڵ}ϗYbJ )&LK1Qg4þ@푇j2Rك5;}rr&SMshޒ欵Gb!|x(h` [YL{-hL94 ~:|(SԖ;{BĿs-[:y:TS*۱e2 y2CSe> HC{&} @;?_&l4sK$z +{=5Beg퐳}!c{¾v|*7i1G&`O¡S$3Q*5s + >$U3:bǜ٦_YꚃS{)VThHnʾ >$GT1iD,Xo8}b/@Ak pۇΦ B zy Gg"lDjρ{Th5CJ94 '+wkH.]%fr]4({T+ښ=Z#U"V;t,WrqIbḻ~}Q> #w8ou IgPK@ +94zgK$ߪzDMɖQ^ٖSs+-\p7k 5$vd[?q5Ga=\)l%lՅ+E̠)gHᰇdxi-%m*TCKbnCOM_7NʶUY3jmnGu>R3z2?dѨMP#OVجmFm䚩K;`/gA +Pbϖ {70=pX37Hњ9|f[li+)bv40+Rn rb6چj5Q\5bO:WЊ:;c rJyl@b.6 IĠ +a`6Gg?!q`*LߛSwǻxw;wǻxw;wǻxw;wǻxw;wǻxw;?'z$DM d.x2 <]2<<<-%uuLxjLbBhJv\8?4+2%xN੎K̝L^Au Yg+"C#wGYJLtLyR.tY<|y ]/3y⹎/5oqox~?'k 2_8e@:-ryW3&.r^IkE~{5|HQ WPHL'.sE;j.\paͿ?^ǏE."CH_ND1K.\x0><0цxHa26 0( @e'1Q(# M7UE*"MdC7r7)2\A.0Pk+0݂oO92\P$(4Ɉ/1W0Ef)Y2œ2We-Tʨtk@ T2ml 1dL^CLbB|JH4rC.ȇ;! {T N7I|Tfm6RV9$67V`]*r;3m5;Gi;A8fڂH)WYն1.Ì0䴎$w5[..V7uԍvĄL3tPbIi;'g7% ҦdZh37ڂd@I J@CיJ: cć'PZdlR`.K]RKQfTu:4uR\9f)h]C>`,D&$^9Cugi3IBb9}Cve52Kئs,amhrsł~\jԒ @;S=+{< T-!Ϝvd[kNJiUCĵi aɸ.81o(1B.Ez(x2ߴ +)H%ŒL5fC!5 @?_F`DI2d·Y ++(BDt }lAm@,7و%fJm> +t&c-@|נPBI^[n$)5ď'זXh2iSj5y,3tpt@dUL;@@=sAƁR{2kl5Hat F$:ѡ"d +{E<0E<S5{6EK|2蠁]nU2VBl@tfeCJqR{<:~hjZPjo/kkl4UC)E^1ϭ{Þ򾉘k@u]c]c5mAѕuArT:h {~)h!4 T`P +̩ %9MoW ~D0|WNG.3`V&-v)c| N*آ7D^O|bFPAt|*toh? " S> [|61.$[蜢N; p~ZP@ CZg ڟj/M]lΆ$A$R:ls)eA 晡SQS -)'O Uch=sRXF=UD;ɸir :j*{&!c34N/f!KJ2\d b @Ǫ&g0CaP:y[Ѝ6 RbKE!?Gk@z9a.[U]s|m8]Z*CJ)UB2:,Յ[\{}y'e') +Ty " ++ӳc '昣TkAs`C`:15]) ĐY>8X 6m vcH*$j!jJE"Eo +t boA;Aʪ֖)pDW/n$Itaހʢ1j5CPhGcڽgj))L%l<>lAН]>]@Q$~ZVH)D2*@fA$r =)d M$E2j(]B6 c4v[KLsyxPg@E3Lk,uiXqөJRE vU)$&U[ϠEM"&` p1EfJ(NDeW"VHdSq + $4'U 1PA/_ N]ju)P3)v8gyTupPtáu!V(9.c@;‒aP]H%.9)}p&39jHA%~ R&[JxxFl3;.a?;w'坎!ȫACnEj15$n }"O +#oECd9gI|H|9e\hG;IB!(!3 94!SyJ[A_$$5/SRE8J"F[P휫;2d2w|hE;"g֯ 5spjF;j+踧>ujY68z3O\?uzk^@bCjX2"L93:*Rp!XKB^n3TѤYk:33Y$6SW 2q0ߏ5fU4d 4cM e\H:HGC= +N2ّdI. i*SLj22F*ORh_c,zU dR?l0y*28H@ٍrY2OLf#RLZ怔\` IFZzhu$'Hʳ$f#䬷A=%P1h@jm#r6 eہ.JlF}-YP.~J_lSbQEga7AܞgJ/I_SAPnמy|'5+P[q+.ފ[3! @vJ&9*GH^ JiM'c6%sAz?I\c0,P?&PiZ%FE")X H;.͎̥ k"5\I6Iۍ5Q::>lSCU:c:Ljź%|'iq|ucQ_BE~jFRx }d՟k cq2B48~3ԪE\lS;H!kOEA&M2@aA4ԇ2.+A +ASs,Xjr6ii #hۉ|9UD8뙔 +Q2N]w2\swnWcEby JPac@*𑳘c8C>&w hb-ܶ)Vl}z eҥ]b ("ݍt+\{c>;>E.|3ϸ6I;ȤUPrH`śuqB8T L2q9Fx),!.2[ +xg/d TDr` +QL?tn8 pN̟`"9!ĥb[`Z9R{ +&=d"L/ށ0Ls~A]Z*pFO]/0l>Aru0r$y!xG1;6hru[Qo$JQg.M3V,LLvs0=9L!tO"0)20Y 3KxuNqS?FLB+C]i7 +}2qQveZF&%υ)0U&9k_]UxNTo.cŸ` +u'MX 瓳IΆob]~(Ά>\M%ժ:=?>cs: |$Mk=RS9{X |``Iq~k<1b &L/^>])^*>1:? ~N&kFLFz6r*Lc05H-Dy5!٥?Q!B8όy$Gma0lS y?"'ur:K&Y9g,0y0p:!n.D´%Pb;$`2Oפ90L\/82uω|c%6aLcck#cf/e.y x&SM"9|k|n,N/^>.ZvOcF9|?;5a.FfX~c!AZr so9b,ӄK@ l&T(PƔh` #"ɹq +*K&|k{ P)q u_|0SDq0>GmGߊ%H]gc<&.)$_jE/ױ~Z"=ކL0 &fH~_r|  8*`qL'5`'fΩsNʄ[`jxoI3c>cWGg"J IeZjMoſL"{cq+s$'i)Łcg^L +#29 XA>I~WH/D(K_'|&k$|r'~A r됧$\ Ra\bYPB¾/stb$J9%9#N(>!PJ眮dJalL!Jc$g T Qpv +SOiskJ* qB&&C eg"L#XWAu>ɹrRۨ] jRDpܯ/ƫNlC&F&1ﶒ锰NnpGT"TȄ]ҌZS7Lī>n, w"2 +9S>1ARGI`]f) !P[PJ~אc%ž"Ȇ(!Bau/PK".%S)"CbK(Ep675 q#sO +FYIN-9O$y^_:3MgP? s##JxgYKwByc2 9}RKT9H>(Dm# 866:ͬ5 <(EȐzan7p +01"`m". vl" . H1'[\⛵ʘlp*P2߅ȜTTFP0 Uuy}&fɄ:PG&57P4XmTY`'Pʀ^ g_C9â} i1Tl0P>!> >$YʎZr Ca/p R%TlL6D3&h+֨AŖl4lKttRsu!O P22!S O%Β 6 )=7G zC`*r"JjGr]i SN>cOql.e=ǒV{D!O Vp@z;5'CoQ?"*4%)]_J"iEb3"`N6cQzv#hpvߩ$8#Q#ߘOX#J%u3ImL5$s}}S??DTkple=n&Ѧ *lDlK/y}<鋰 GՁ'?ȡI4 Sg8+QQ0ݝ>8S =e44u)2z(N&R Tsa iP%:9 k l9pf(4]TÆmFr6~Iz9`k +XKm%Jf*EXqz(E\ /Mܚ'zO0֔G͔A/AM@`)dB=\_JLE|YQ wP"L EQWWaAqژb5Yf@Xx +ͬу̐$ 0;k PK)%J;izfc:WR]̘50!)E0͕ۤ2 eq,X.~^}kp =^1qe\R&T g&$o-n$zqs!W_^^?]N|Ͻ%Dz_[`sC\T6.\8c1xXM#o$Vf3[ew+-d7ŌߓeMs&h"ug, 'La1e.51>ߐz +ƅ2+W<u I|80wgYMPQ6րR& =Gr9) d٫c$"w4#f'9 {cX_ypȭb*$Q8;߶q{3u$CL(;rYKkU{友e`˖\KVe$RG%n"ʎV +a5GP6h*E(M1^+-{D,z=[J"l&图r^RD)}@)BP $}eg0pIR!lI\b\EIRL@CNjw)Zc$`&>k&GKu5pvHMw +ri1Gܬ-:.{XWեg xNP5/:~/v֙&Mw=vQwG!3Nb[2 #-0a;g9mԄu6QB}%|zғnHəP̣͗>^(0R=(aM&8r6$yy\nP;N(1;d~yg*#-ѰKhynTz"5퀲߽Vˤh&XƅJ.Y"ȘGvo9:RWRr 'D1EAm>6:rqeP&nqD$K)ZD>1[摹_Uiqդڒ]Lj?L]A&9c?¶H][BpCP&"IA +r”=])O v֨\[Dݯi:|2m2r- ؆O;3jfbGIR+BW~X}D9P9cgr1|<䙁^5EЀ+H PJ; |O̎yх^FD@u=@ +{P*HUH_9:@ ļ0:?9zzx ^>8#\13Ar2YRkKeG`z*JkU#= +FC!clșdzہx}|-0(erVAm2(g%'K\: JAmd.X؄O"5Qqz( +)D}Ae3wQ/7P/֐ (K<D}rP y]_Jzz\N%N1{_Dk@U p٥3u2E|0,nBQSﶋTc|XqfBj~~[a#燓VDeO"rT1 < GCK;g +ۧ(|u ˎ(vnC2%K|/wB.Eoe/#&.2Z8 v}HsH|WBjDQP|!B-}. A^Rˇgp/N ~ 6`5Q|:Թܓ2AK7O l=*A g'Fk8f;! L +l iOr5ȫ59~B'-aZä524!ʺ_͹@zbkH^ MpP+&q6oۆ=_K7H, 9 a3~h˃WrP.t{BLb: rE , u `Lz]]Bb?FqA_ +b=1fA} +c +v }fn/j K.,@>|PʒzBU ffD.'wA焟^@/TCAmJ@y }P~. 9A ArI ~N*D=@V=ǂ%wWA> ~VR}t*Q ^ ~~:/g}} >*B޷؟޶[V^L CQB6I1kPMFLzn:nJǗn1K0Q1?^9o H-"9PPVgBǕna.% +:tlwҾNTg6}=luɬ]4<&e$TI5OÐ/pu@HRCF@zgct5U8sY%TwDOO1.YuԵO=Fk_D?W܏{^INnuO^՜?>li:\Իfȏڍ] 9]$Kה_-2K%{RJ)b$@ ,w#x%_ 3/N@sble|0`3ٔ-6e'M#RP +MnAE4hO:U | Шꏠv&RI%#y}d^JNiɤ7d6 @J7ک-`'`tr:0W؛Pf~);D[N3I7mGOYM|ߕݩ2n7$LI͹,Tz$sUe9edYUޥ+h +IkFlƕos;EltьlbNQcw3jfݩǤ}f߬u\D-FԴ.?Z; >B %8$h +ԘHR:u!^is,l#gIL{zJo{%傸%Su9N^Z*-r?bIR#'GVZӪ +-YBn6a=[a_'لfuFS+5$E[d%pEs׸2?{N4sK_  P^o5for-$架cW#GSN)wavMɽF,jŸ%VmQR6*C_`sl``c̕vmqZkř`FUFMҦq)%4A͂JFwfb27: }͏^9N~Qƽ: i#xʥpv䘅Q?3\77H/zwɻc;rj!ѥ ]eNܫa_Z9Т)sT`PZYkfnfDLˮ2F=IFީy?ZJW廋BU.>A$zLr0(w vA57<%h8/_X=ݘo.€]܈K:?jKՔ{(e^#<$-;%$߮2)9e“{r*㋖(yZPSuMѕ!9cqFC&+"[nTʁo2)ZBZsI n0>${QwTtwW.~rRq}-gpg\^!6>M~$A:}of_t' ㄬsKdR-۩O<AT`ݫf}*MSl,X[v0eo0-zԝnR;hE{y+i}q-p-o;E?9,&yAD=5lmq{Yi?!g6[u>:.c]4eP$RW\8M&{Szыsjm6r:ԭoYq#UCխ*Eد+h,V)1+.pyny٭$Ք`+:^] UTmbB~d?;I??}~\bzܥ}3Î7Dxń\:v3YhaҮ&?YkSv~+e>QTJE GCW]4C*}_omT/-n ~xTRFVT`^wQe S6+uZleGeyE''33M"@]VpZ')]г_R)( TJ:/{/K;}v¢Y0~}9|xA_%Td J)py)gwSoW3Vժ=ɳ:+g/JNȳԙWXݩ`H{d%ɫ;.}QsLQ%u!O˽l]TW:/[tp'hcUzI<%U̫s}Iټm[nƝhL9Ss:&T}b@]T !#9h)}6Aڧ]KlIGU6y@˖0|}mO#W4؉ +[5 + 53C c q1G]ci*h˭3ězA\n5Ғl|^?k^-U3wDvI~kw=Ғm.*GwO$λfyOo-] #6Y~)<[ĉƤH}[nFz{_Fu}6ހ#ʺ?^\Ii㶃T++EϾ +og1ZǚuW\t WmGĒ~7=wGز3o؎gؓ#$L1N\gѷ5\^_MɥQqen1UܪO7&[u܏}) ~nj|k CY=B?]X݌|2.``W6S{M2u5Qf5"YbW|J_#}|ԬUV\(~e!u(pf *I?%.v;igb?ɇ*Oг~ ~.ў~ɲKLMiwa.uAIj/GԹFW8eV9(s T;ܷrڨ=]B.w8Be ٛsҧu wT[p_/m̊=x%DՄ7emLÂDU?R?d71|ktl0q]=]{;_DM]clQIJLجUrSu܎8P3 )vaў>垡aCsTUYWZKm.;{EK2}(xFqR!do%m{W?I_W7F\vV/no?zJ.WVoyoQywyn/|zU7$4}Z[{9tcƕ"d^:EfMShT`{ +j:WAojBK.wH-qH,u, 0.&EKWy >4w^M)B7?P>M*GS >l'{SVc/j2dʰd0qnaozڍ_qCĤ#7̻ /̍4) ~ ۙaWU)#Q>kq9v'֭/ν':9F}\wC}zYr!ESBLj;EaZ%|ŭ ʊ⼖Ңjk:kii8a]DxzGE;WE'G3]Φy?t'pl_ AeF; _'oXWufU{v$WWj+.-9VrΡw.Y'9DEb4QwyhQEn#O&M<Ԙ&z`4LU(P'kl?e/}gl(?Ր|13n;Q{z)zՆt|v+²ai+ش?n۽hЫf5_F6CWZhk^YunCexRxhdYgޙiԔȺNե%8UۖGwx)Ժ6gH쨳 >5U!GZ2:.2mmz;KC:sdƜmuj;>_۾ yKH^fiYʺ1/|R +]p QYz!-Ԫz(vٲ>q|?WxN{7a/ۇfq.aO:s׎clOAW2' +3** o8_׹D~ LgߌRUp>q]Xv]x@g{{/C7a_?Ս8vmکoفT7DkU5 +UuZQ.<%56ɱ884奈C#s"RÂ|#/bp>#ZeQrN4EA^qo=S߻FdaY 8OXfsS˜#^b:vuVGeìOkK2e4wT4MEh/3Ъ Ν+#wUܲA '(h:hT4^a6X)_T&Dsף%Kh)[ +x3[~m2ߺGuy[WlChBkddgrxQȞżR'aT/癞n QU k3Kqիwgrz6i N{en7=E,TDUV!1hFRB4 +Z0VT?lFl,^ L ocJk8a8w +\^x֏8&ᗞ}%ߠzv͠5[4Ѣ*hH⤂թzn铵*.ƣh8}^"~z0hF,AJVGam~-oX3<7nv-D ïJfB?o +d5pƠa&cP)hڄh冽hgTA#Q=Eg溇9u |}Lȋ`2hA%1`8y]~%#\K/[c}@LŇ3!NƿGwEV^0c&c?AduAn${SY\Rnu_jںfrxD | W C棙J⭇Ev-M}nw|U_q)=e+1 +m#d;b^[e9ams\ĆNqU%:GbxW֨Д1uwoP>~1qz4g-Q?ImOg~ݼ+ ]ĕ&:%r :T 4^,SqWظ?hUhŕ fw{-1#Kr;+]%.iΩUIqŎvǿ p +4ajE8~*ľd62x14l94bb$|8##|HFơ) + i;Ђ2h14wK%h\M[Hi%-4cnUHͱz^ǨgYd>Ecj_!CcT_}To]t_}|Uc`Rl՞G0ڸ?@̃71ԡQ Kĕ7/AS'o3>qR MMy9R'EsWEKw7tLP,U>\ {teKT-ާbbX8s)-I-;b.Yo_LmkEd MT&*b$|&+ߛ=I)㵭ESb6if5GTO9;#EK¶_k߄x }W^ۃp+.th)v(un)}y26T-uuCkq2LA)X!޻Q\fN݁fϥмuh Zf٠YZ'-;XV)lj_bwq0-74<k^{:Gg(>SyBm||yQ6`Uv,L`DX6JyHi\gcBls~0o6j4jM<=BsA;Fh/ZauKagu:Ge=W =KD-^[QSȓ"6Ab{K*BMt]!%XxޭQM{8\BJVRmPvZi5}9_)@Jsjs4{ >s~h;lOW+jMqĪeؼwFXhdcC\{}Bw} NImeK +mlM_ׂ%H' 4GECM}: i 5;,%u<ZĠkZ.h( :ֵdƑ[?mK1cg>V7}n3ky:$$XiGjAS׮{z1kmv5mj;/LR3\@lA!xɑeA&}:n95Vh5Z-X"@sgoG9q C36aLi,gМPZiV2hkFoz4?;y+n0㱿fњȽCgF'rq]ա%%=e6A{xzqmCzƐ<)1`Q#`𗓇DG%4q\*hh}4O o꙲?[)#~ѶĿM=iS`DŽ%74|w~ɮj^\Ӣa0sk>Chqх}eN Uc/ N'?c9' ca3h2}B$ZL۠EVh}^o~?b?Ő %#74U;zûֹö_ߦv8U3_S"^bsQY`];;G3&Hp'y b: 5AmR)JOSGSgk!&hΓh%剖S*IZwFۮ^)7,7[3A`*Z/!۝jUy#~-'?r_ +;ynߢY M w0u[eGyMɨ7U*NVCM>c'x-ԶA+h3hhz-Z/FUHam FL\ +^S75-/ZoK>(Z~u^brzbĸge8W_m}t4Ҳec/Sg-xD?qneŶe s檨v c|:'fTE ֙:GFm#7_?K>=q~-3ןEWh6?7 2^Sao/OYh+k&kӄxSpmOק$nodbؽHjiI$3/Jx6OJBs/G_ :vKmo\2|VX ik!xzu&]XS<&w}qNYq9Gho7lZ4s T8 cq b,Aa$>;'~~ M; hR}mgٷCtѦI_%~aes^}ϙ,AxM1c*ypx1nW9~Of_KMpܥ|s`ߠk{u&uy 2:qzݒwN'2vD\x^Ǖ^g>Ս_FFmkMB,4yc7nK$4;o*B"f1u[kߌ _ej3TmМIV$A4^ǵiТ"I;H=ss~f-CW^.GߋPqMLu9}ԫߤlA1iuщR S5͈MC$*y(*w-٫*7cq?ISr2j"cV8Y@e6}n?>m!}:~ i&Zm;qsخ{2.xΠT憷`]s[SL戣m钴PY}@6Ι̟d޹Qѹ%j1O8ad8c@z;`,,Yqb8C ~IДh؊3SToW+w^2^CrS7@Yô?x̯+>Wq ^0ϫDu6I>ezs1mSGTf3g"nɑVS_ωżm9(-+>E ƯZ" E>zcңZB ii"KB˳CDO !Ͻdv?.=i[sz +"ޯ>Z`үj߳Z9gNju9ZcejhZ'xF@~k~N.cܵP$#\L5 :7yI)덯vmXB%OFMl1f1vוc>cvk"m;@+ ,Dr 5f0*0:o0.o=p(*[ZŤr%q}OGYqek_B'Yn~-x:QznS/SqV +M& |ūSx~^_>ҽ: ^u^1f|/z?YJ'~`0sc44TB6"#5-$fg8y!B -V.@,f,b/]$ImԳ̨q[ S ":m'[zRQSH*} %>7!rM)-^G=g +ކq뼅?xYώn6I|xu=HGz`alrV\vyKM,yFbb= mZ X@RKŽg'Zvx4:V?5rZTgAfŔYOn++/u>Hwv^0q3y}.s&db|^@q\ߦmx։̑:i{ ȟ^>A9oi1uR7kB[Z8΄NmPti"#x&]@xRkvPJuKV58sc)RxD\gpYƲ%%92Yv.Wm.JhƦkAϧ]iߴ)-[KE! AcL1j-7tftLdHv^Qp6|mߨwː.R_l5E#>c4DZFHhL#RXsWA2`exƑb`qgMCTOԏꢰ5ԹI㾣EWP6ft3Y8%x|}.7vIRyݙgTMk_LcW](cشo2ӂjqeS$o^4yɅI"۸)sALnF,FW"|胎Y6';5 fS!WY{Uj1w߬2=TȃsL&d +4mtRl8kT^Mqg7MaG5/;] W|R|DxNis v#K.kxA^b76zkE,7tQit1''7u~OIO*,톈6)hloRx>=^Ѯƈ333`n1`YR)ebuQJ6i7̀ߪ :5鋙*c4=u6<s|7]=Y0Uc>[\~ҧIW~^A:6H_jhLU00;Ht6b砱jFhIh +M&4B[!C}c2Xd>V$8'/;2k1ϱ0wKvehxf˨4YJo7ɩ+Ev Skǭe"=@a[iW>i}BrW1)hI쥬0;zkj靯Zw2Csk,)㞣`_AD|lSi`\P}eH$98(1[Fu <; z6<ĖmkP8} +㜠̞D@ۆM8٧.LdzW]tׄz!gu\n~*W(C~+\u'uc!g1"\Ձg8[s%d:j~QD2 (pIabtM-oET5ƖPw mucd s:OSg(q1sc +!-ĸ?o%<\g,8Nfq<`T&lGg/J2I;mtf}È)4DI DWz9 < B߮| +':n?HѧA] s3) ){ DaV R:\&<=Q[<m +m]ڵ ]qlXϔCzF ڭmv "됉0{ < aK[*P{} +D?.*ܰNiԀ QO|Zflʘ9EπX"INL$envS/:LS%h:se0zVI^t~/$wo4M">dI=A&{w|\յ?*ۀMse(b$`,[I[k:4g5 Es֜^k(Oǎ uVilU7M+fQ zU>9+onG5C + e j|esK] )؁|+^[wJ{_Ϲkwax ;y+]F=L9軔w_gvk{k=Ooga5#Y6ʳx˸ܱnsݳl4ޅ_yr7'{L9ʗv-z+ܑ/_~ CJ]K/~Q2/'~|7__*\+^J>ϽDf\`h\Ө $yZ}L:zق{zFU:[qYW6-sG[ve\ݻtsﷻ[_]uRצ7u/}Še+u[ux"֗#IΏ ϒx3KЛݯlo v?/б|\pWz`;N^xމzwwΉ \X&?v1I'.%9uxp)랹ڿKI.e{M.?ۛ\7{V 9\ 1^`XwOˈ2ϞqU/z\/}_  +sa!Jkω8ۼ{z֝u Aʪ6sSdyQ`鞉(cW\]g fɏ!V +m;qS`̭>I5Gܣ$6 +Y/o8۴?IN>'>sf=y~i ~?|Pg?_G~|ſV㻸ޗ߹'.9[vxGs|\?9_̳e-o^^ΪD2oCFn|#Xs#ᡭk/ۂ/¼06o<s{_ݮgZ"6/Y.p/ _>g.0g4B8ٿs=y`B}?xٮ#ss&'D̿ox:] d8F1'uFbw1ū>U0 l~e3o]V Xi^2:08%֌C ,O4պd칁yŕ{sz#QKOg?{ɥ7!ؤWo&RzS~3Ow)ֻ뿊}1䣀/ߕ\%W>{CbS]Gr{ۏn[ᬪڲ[o@L9ݼw9ՈG\Y۔5fsg jӻlɝx8%C߳swђ3n Mojq`ÜJ}ﱾji ]9}Cʿd 7tY]MQӹy<t=|+ +tqvu[/be.qu7l;Py 'ıµG;`q k ޷Bˈ|!*nyFW6Bɑ̵qHΨ%'bC>/@`OuOX79{bgx+cl$kB#A7#D_R-6 iWK;b-gHgc+F26Xmw4ArQpK 9zWd#GnY>׵|_3]$OQs}q`3C~M?]ÿ3-{ى}>u7]wG $7X}?ЖuSH{zcW=eux +_jV]E#TGyku|T6yeu-KG;Θk]KZwdӘs{ӣ]޶ަ'zFԁ|K_[HO^}_'n~c;O|%յue;#\]1ԕ^$8eWj,bszQUœP5`i` +ؒS0V0wQI^fMIߜJ9B*,9\nfo:'|u#GW %٫`^"NjBK 0bx@9S}vOonX% &1E=c_ us #{煘=uofݾ+`"`tr@-_`9xex˓I>)\ +?im'{ g$_W`<:|/ܿ{"bʸ|!{Ysukٻ5UO^m3c'oqEk^JQݣ *orlflQu-~>\G{w"vg^3?Ty>QanᏫ03Mq4ݿF|ow!是 07F΅koA?Tĉzrlw]wՔ!'"qBLHw.sFb.o#:@ҳ=$!xO3GxwOj90_Ю7*>) |g[7Klރ_?N}\M~ +&oWyӱmg15Ȉf:2iX w;1/ĵu2o}4bTwX$h]. ش0QcU\eG>^?w{ +5BecU$_߫Wo S[c"d -ۦy_ub'b^@kbtGhX}Ѱ+16o1z^;pLjvma.n7;|bRNVeŜs?r:̥:xKOAݰ irω_C~w7icxZ#߻ٻdxOXן\5}s\{{ځ9ў`1w2w}ccly{/>a 90 .?x9]wUC1/bfYp>G? pYX3C}0O(ru_^9#0C}/4wykNoҾ#U\x_fzJF1]`ܫMߝ:=3=Gx{`㫓בvSo~3'H<ӱu@ 5#0bkADwuwHcVޤ6yX `}$qO0=q @^O}97'Q=$c`l?rpzݹ$c?~:G1.yF#1g~\^ͻo7 TMo}}/w]RֽUޝ:}?cs!v73d̻fZ?\} h7m#V + ؊qޅk n;9V1/7u١a>?> ~ bg-\7ռdb˺3#1w}rؚqqBr6u k!9<~}s#Dqf}61Vq pݳ7.{& JkC[s o[xgԖ)8MO\@$֗o$xبzv/k8~; l6Z2r׷쬰 ;Ua|[=WR6m^5)6 c L{;Oh[uv Lėof! G-#~ boy1$o:L̫8l;`HyϮyyV_77g_n8럽ڻdd]q{ǵh(uz`y+9 ^1"&bu+B|={c tKzL҇'bг_#Y@vC]ǚs/bgՁgzE .; u4bq|U{. yJԟ䲳 m񟈈Cwm0n +}G =Jy街o"m_{YxJ1w`N7 }R\ V Ws#kkp`:zs=Q l&v֡+G? R4,x.6; 163*Y a ,ss;_>O\E{i;.x ڎ`3 o~",1o8t-&}k\U^)bE Wn=Y<x&w +-#ak"xD\ʆ{_z=={.m\q§гb vo"Y}FVC3\ 'GV?s%&>G?*Yf쬤L_c b0"vꧮވ> bworV !A{@\*?Dsae}8O:1C+?mЗsOx aF3G?_)s54 ޷}"# 5 ĝs&ī@lesǺA4ɈKJA'AB,I0*|]M0GzlT:`g No:厌#6/}Ini\ZoM^B4WvqiH.{+ {. ޷|G;[>;۽r _?d0<{ oy% ?.7G5,Z>+O|p+`e|I;G>= zA`at9ۺ̺=giY_iI/q9wvxsh-݂ؕY1nR[#l|ҁ!7_)jǥCX)6 +>gwsG,5;A$9`8 X p/|ex_l?:2m'1-kooL} /q bN<ᣟ#yqbg6M@[OQjQg~/v~偫Fpvq6< +~|;"\=oSCPK>تWiܸ7 VE \T0_P E?u;b@0Q| kX f01} +>" v< Ώ[SDl|7w p.|ӹ @".]%R?O| vV_Os'bgyi +ܵUG\>X!MG')YGTBA[ׯw%5A#f þwߛ_p5wI\oXbm919pÊ6SPoތxvxOo9=q}tn5x/"kǾ?  b,kl}_|i'Eʼ KF"KO& jxq~]x䷵K澝/xhA-n۾20ucģu cW0 >x%bn7<{-cB֙֞Ώ/+]}aRh+7~xO<0߲胅6v_N5І"7o?8Bb1~w.߿tEڤbqBꀆ5m9Ļc=z\ĂC;_/cL1YȚնS =<}w +;G>#^94 c폍t7t|D=+ɻ' Y +1xd#G/U|W9ρ)30@*9ο|ؙ y-M +?rW{'>15E#< s'5xX}rc /M4Ͼ?]T|وo9;Iϐ<ܵE`Cyb* !6mO}fs{o_o*ԱlsӄP k:pY烘Pe5sUWr <ҍ1~w2{0ii7ߛc?c?c?c?c?؟S4ifeF$?*@tcqjE*=#֜%TcU{pLsLDST#811bM5B ur2cj]4wLV*vT-9N[.J,ys2+9αNVdx=NP;v86UNYᑐd\fi%}tz[9bӔ,5kTuH"h"삹.Yd6#4GۣHG)6ʡJg|ͻW ޴v)R1ٕh@u(8b҉yyVV:D4WK9=PA-vPX":J#H.VNGRRX ?I =Y +5lpp],RQ[%-0ٌEO ٔT"k]]7Sb1bfVk|Mf+T QU-)VkqKE"X v˩jI4Y.'|<|O.Y`sJ䒕)d\',\,ݣK *?dA锘gwKmKR=d5}v>t.ѧ%+:T̠}vVV:D4qvy]Z)SVGtuSBgл)9  \+4 - DK,F*cEU孲bjQբ_բm8<PlgvK\+FqJV'O)ڮ*JVR$JѼh0֍K$퉗.= +i=T=6x)AUEuVΪmR[#=ߎ X3h*goF3X1)Ty3iՋENGu:9-7 I~mIR@Z'9*zqAMw:>iykFw0r/I,1gJR}T"cvڏ,dg,@۝XL=RZJ$5"A  p,#Y [W Н%J(GRhڂ*]l5&+E<()bm. :~[6f4ڻz/|\*eb?5\ٻ9ws2hRj5W/բXwI{0䲆(QX''f4k[ʛ1Kp.W0! !J& zKX,Yo%R ZJCWа~V;MUE{U^UJ6z*ZTE{iT4lt:%d-40ciy>P5Svjv:PraZbdT_2ҖXiv:#T~FVX;" Lc\ _p#c'Γ#;̐I*Rjz0GՄ'5=Nq7'ԴxytBJvDciVVX;=q a;qWbnRv{D0_ VJF4M:I(O +endstream endobj 61 0 obj <>stream +3VeD#VܐB P1ڻ\ͿGUd3z4#h]X+iZ8$2e e|#/?g#b]V6t!m8\YZ0)=שfĈ=w˩l!ժgQ~~I%ob!&K; !Џ6[KA\Z!vTl0;%30KhX(oa[8-p4@ΰ ؒh*q/ bkz ;Gi P2f9KFbȶM6قv,l#&}J&[Vz9R渰E$o\6vnI9`a8JNicJy[F9Jx{4ʂv>Y4hd$hNɻ#W sS IPs%l"#P]9JPɐW2==R Ŝt%{NKS]*sk(]b*O8co,8Op~V:Sm, a8mQNF^+a܉[nאpFSbAY*Ž}ƑJ:z-.f*H +ur#qx%=i[%X9 SDg!8; +Ja+?UJ> +C㷗}2r|"*5SO~ 7bM5Lz#q~2Q e*2K?v~RioJơI--Y%*bXWDǏRs +H˲QDs䠜4'J,%S+'ǜp)JK"s2%ayFh JO G)!4^ ASyP=hvƏ-'0`hse۝4Osrs2+9vDH"cPHt4E8(cfp4"(G oHeyG(N '#@JBNC 2JHYk&E#Aa9N0@L0)cNF(< 5`4Q/0X3 M;AխzPk9&Oq}s2 ͠h.}5Ҙt-HbkshIuۤ´+HMj̥uGei9s tP.#@nIj<Boj(i+bS&T##Uie3C/ CrzŔ vV>GJenl"ǓuG[*f/ic u'A +'5'4Q?ߞ]=/~0u* ne(\2*+afxpʁ5MS$>ѾܫwTS%k,)ì:i=#ΊE-:d*@"DZ%q @-C3$P"ω4`JfxPEl(st@]TܿrA0p:RD|n6xF( K,+jCi(lS4.9D%Cj6IE^pOW00p%g̋Ɛf{ίʼkLSL$n ~Tpf*Á`E6VdgF(͕,/trdCP\nAI8 )lLshחN$]E^[*^~dTcJS n91ۋc:*Ǽʱֳ~'=Y +wu~eQMk3krG5eUuEbV1*Cr=c{R}R*Yuߴ's/ۋ\st~!˨ÒQ)e=yU3+);De0 +/JQJsRGj/Vrͼ^lQ(q9C0~Y)UfvV#ɡ=9C߸߸̐!+W9Ck6q}&ٔ^aEP!xc7(М(Bp% q}=ǡ#Q2p`3Z"ݰ)J8ae-3RBF(mCp;*O 9-)}k?OJI_ta:A]zI%;Zoe,RdZ? 2ONƴg R3M"D8\ VޡpMQMPTF4_^DYIoFPFEIVoo)+d@"jwq<.6 @qsYt]9jmh +ʔ=*V55j)FxK)X1Gn6=hsBWP a1 q P,4&MS ?uyD,JƁR5|QG>@%c X׫’2B9u Z X{Ta4Vj5^}Q+\ GrGslnnYm">iV)~[? ";zͧߺ^MMQ7ؒʔTq + `ʲ]6)l[fٚGMB5ФIkle:V1>El|s~H]qT>8R+TX2JIoknDVT3Q=9 #,K + ɔJ֋  d }y_T\_JiZ<\tmh +6rgkV@"HDdg ٙiȢ^&I5$<έZZ^4;:@$$f2IJvg!.vm5a4ʩNQJovI`+"h1Z5DHk̞QN^A !%UxcFY|(]e搙mz9ͱkf4L4Ej]SiƊ^NV zfi4Em҅9Wfi^YzT9f,;dARӪ%=,9fiuM]te˘*͘Z6&IE\fi^Ps5Yx:$=MQZY3cڪV>m 1m{)3IepE4$:2N4i !:3WI@ItZ3M8H!HRZ[odw&i$9!Ҹל&4$4Hժ]$ H/Vo&ii3IK@#L5iK?gFtCI&iޔIXå4LT6 K'2[ZsMgdzBYV+5]k-L$+<|T"4$,K^zmN2e") jڃPmIZz)iVZVoTcp)uC l,81 K߄$FK"m:Dzoc䌾,sj7i4cR*pԤb0ׁR@)Ɏ sw9u۸B.dG)Ӌlef(דKƄ"mmSP:@ϹԋlaJr@hNP/ \nK>FQ/"(k ."62gٛF\жQ. /\IVv0;y=%B.lWWED["vrI_vʤ񄹲sl=څm>aO60{2\&T+\SU*|=*,KI{ +YީBj{U9֯smbeRPYY,<ʕIw; Bj[Z9dֿKc+n˱ExrY{^ԼwKY^j}+0[b&M1mZ2yٖ6Lδiy*_VL5me,q3ޙɝΔqAg&9S~t G!|Lf3\6%gJ6)Ⴖr,?(d'0gJ8W)vLr/]QȮ\%g ;!6Lnp ۸3\ y- g-`op|3Z g=l9g?ΐi[!Sۀ!!v 7CmL -4 c-~wvyBMނܿ+/p:9EAв)JgSHʹK`)hbQF䉐EmU(O& ,C3!pr +€'(~ RH^8#YA!)%yPPJQDrSQ)E4URrьzEBh@EYP[fWcظ/:y#G@>+djAL^8%:8ڏdwv(?*VWIͬzV7UVv㉹mYZ_#enP2p2pw@wr3G-甲tX-$=)KR:{NIs;c|/7TJNLh&/qK'_ P]R`b +hzw#T.\eTV'ՇVk_[R3&I]W |70P1!DAeT8U'J)Lb溩WeD aPI*nUeHһUmjsSdiWgۤ JoIr 3Aty<ށJk=ўI3MCԋZ'jCFUݫojIлadE޹!tK T^}w~ k(v/קIܘiYuà*CӘPy0ՏB愁qi,/3cz~~Ϛr72UieB2JJ&hءb}hrzGiHaaTuuee ֹO[v:4N ' w +4""h2k߫Ƞ U$ܼP3 #,q \#ӼSeHu +.T>"*9)YI% 8MnʦhJGnLyW\*7gʦ,rT+Yd1y'+r*ZBUΰI9ʔxL0ZW fN6\ɩ>YUށ8rR%U$FTvsV@$$ҹjvQm3G}Q` ^9iὯ3+EXrUSS"ֶcrFmʕXY#N .K]C3XC4=YW$^†6G˕0h&~YmMr1@9phgAŁ/D%y˿2Mz(f&p`#8Z4fB8NyeԂMhxFh&7i kUs? {S=sf89&7Rh#8A^ cð/A-J49!`QNV%VЉՄ1DˊN)EQ-`Hm _&/vUFsv@'CpJ8 em-'H'3xr4h,ƒ"ZcԹ)OR2`UBsE׊D;4 s&RuXI y2Qk%6Cr*gޚ_eF=yj=vyV+-w>n@y'PQ[9Fj#ңٓ3{:x5/2x8܌V ՑMity&du4jf}[ u3MCQ)Nj*)D%g4&&L,/BB@r``)41ap; ;,Hu:8!s2%}xh9Z/$l䨊XS9, JE+5Qy54nFPF: #I0.KA:#:R$J6ih4m@ɡ'xt.#h!vgJ 5R$( ap8e}Pv׫h$!jZ;{,Ay7eKaթ]Ojj pCU +KhKv>]+-CqƀɃ[(R(9dDqT|M05n,rK`xk/m"֗L=љK ?BhI9%J"eX^%B EEY$"Ùj\ j:eMșI-P"; Ɠ+]&ZNI}YF2ef.6wacI9TmKA˞ahZ3B*Tm E89JG51& Tkҝ&`̈uv#=SneÜҨ5XNScO>f,g$P4+P,Ca9+ld4 iikNNtsуeJ%6lm5JCTYajxEA, %U}ZSs^k(FVBtȶ5iE[րQe+-&";3'i +h ( m4%ׁrSC;5j_%y7&N<6^YM0 ,%0E C -4|H`e }6t%EH\ia4U (%$N&Rby4VAxm5˒%-z]r&oa"p(/Lc8.9h"#hLG4/D HKqJ"<"QLDiTa^jyq'Svdxi7dYM <(dh ի(^c:8j^*_{J)v@ΑXI/5%B F +bihFBlHr~PÌqfyq0p<7ćaX Mpe68㳜A4,) XmPƙboYYZJGwtiX 2+`\B} ˑ:iQ is>7@ +RCD{. z%HiOx@'ȂiR4 +v2؋, M$7[n/ݡGN7j-64%M"kKbB~fNvjo|*sRPW=a̢/lu/RgUدv>?v?$V%a<Cg w{`\0"@1@UC_> +UEg CPWz0X^&CS$++<$,MX:@x"WG!*!`:+?Qq`&=:Cr=#a,.d!g,ɢdp_Jg4Xl;>H&}gHA >F+&|,o@>2x~I Q()%U. +$>ս_M "<n`0T;ZFB\{&eqQ4 0.' 4B0 ;.dU*DeaA*0 !A^FOo= t(uMA` L=k"K% aV BD,ÐAx8IfJh\ jA1> ё)@qhY^%`ޕR2d@ \~DeӸ +AF8TTIT 0ɏI"!:Ȁqƀj)$v8ce'k=bأeHHD(`h`` 3IG F!ߟdIGTIɊ# G"Fdt_q>A2>`4Ҝ5|h(a^AT+ 9K21Ɏ<!c ~\A"€t&XR;DHY! Jv x )m(픠O]^ $E!K h( $E\,h "{An!,ۀ؎`4 UAYA{{O>N TH+o_ H]4z{T,!I8+eY`pg4C󠗂FTi,Ii+%(5Q|>ب IOIΔCh#h yTQ~DlB>&(0)e~N0Y;T z 9Y& 0$-uǧ`\oY^ H.#؜.ǖX*T0hfƳ Q8`$@NH(*#@vA<0 ZA!e Y|,g2LlBŒ'>9/(``\MP4a .#?ID&eJe2ůD"2%HPlYy1T + T +.dW0eNXJ D'E +F9N pGagGtpB=MFb_9%RBѪA1$:GYw0PGoXMXFi frRA$v*vbKs1B@:VB#v۹hQ@v31} WucIjQŇ>S,RΠ"0}nÆ_m, +*n#2F sH +)Ɔr neQ #aa{xcA9@+ ZJeTH̀6Xb_0gL7d! eVܰ0>ǿ\W\JSNr6tԘ}JZuO:7^H17QV!p U;-g⪎7N&nuv"p-o%fm6}-O-QLtGƀNG#L1l(#@"B;)})ȂdžtrȓVt()k" htlj*9o(pg3Ə|~?I'ŹxI~=wX|3 ?r7RRd3Vt2؂]bAV@'_dYPhH3oFh7 1,w ?E*TUGyF-UV@3Nssɧ}~h8  +z hsd&Hd0Q((0he~ZnWQDj$LaY o"M/PX`n+`yt~ + $ b 8M@1SA.8snP t1f>zN`Xic j +~8NrpLDˆكq{f> WA*-Wr2ClBV.YA_"J!$ {-OBHȋ#[m@uD /H8r=D(HǹgE~!Ґ80#G}0"N[ =1l`e"1$Ħ)ݽ@2i hr/+hl4(RW +Td4@͙{,@4>1f rP%ʛ(nyl^K +{\aSWnWa.O6[IBA!Q$_ +g͈2FE7A?=86w3nv5;dgvOmA}6ru~u{j Ueg;Niv2Ab?^:>~0^V(~h"1lY$s~0`=]{P*Jj@?A_ E)N&K"|Cob VJ``rjK-zpefuu=s*|] 觻$^Q(GiߎQK?1Hn S[n&h1Sߕ&R0.ebϓ 0ͣRL |( As_x:JeyބEf(?ب4\ׇo߄r1Ѓٲ7EM|K'؝,0`R$f=S꘨%H!Nw6zV:!/B Ah`l@[I4W|So(.V @of1fQyo/MDۇ6O/]s9I{o[̍"$8==7o1:r >9X@6uoDeZ[|meyG%NfR7-8Px,ඳ `Qhܦ57Rctƿ Eduz:'n[߮;ͪ=Y"~Y^ŲxP,/=z~lzϺRI[ iN擿q%o50qN\`0oIQk 2ULx5 zҿL>I^`&嬳\uQ53_/iZuV55̈́sU{.r| ܖAis"tPoL`=V0-Y}6OZg͝վi'qmDWi$m%x.YVAJJ3`Ae{g/x}G? ˲)X#۾7+d7Ebfѿ2W-cIvx~3*$62 M dZ +\'6l.Q +Z  S;VFDaћ}Ԕ{J-W#G)ME>ئōړEt_rKhOB7"Yt@d@2 &K8-8CNySc˯PhE=qdyO;͕HцuWKzMz^IЋhI=Q`S}^/A +L=ebT{G 9q 8EG+yKfO 2ᮤg&H* u vhLI^hXuzK0SmgH'd_lV)Ϊy}U=I- ~.B&JsKt/gE<'ut5Xogrz4?[j\^IHDgj':ry[[Y84;MRv\[d3:d_.kb(' +> ki@r3-?";$° JW/d~D;lg"R-,5Kzs +&S{0.oeF^˹VXeO\ Qj= og(;_W|"+k앺$]o!y9a7"N%N 0 eSGRSxCQ䐺9ذ +RV}~Y…pZ5 l"9D|auzgwWFDh4FȑE>-pV8VR:T0x@0@j FK=T}M-)jȚ?٤ם?jHg3 +RLlz#D0Jo{3VbR*kT-IɈ$eg\))ma >VNSlDT":H ^ fxN7V-YU}02{حp\ +&pUbԑSvqI-.7Z~!OIZܢ4 In6kxCh`9'nMSa-XzN :7!z"ZC;.3@[uE@5I)m䶈ذpno3)Bj +Fh@Fj_oAf$LJF%T{ yBbà#t@KЧZ & ,76$|-FUo'F3yw25Ù>]$h! +*5j}w}'n)'zl9`ej5y(/P_Wk!CL˝xiʽO:hW 8LJP2OeWpu"p[tʩt;vF#LE@A&L*^j f-d]vZ7\Nå2Y.&uFnducTc1Z>x-mG.l.7ۉĶZg]WbmB|Bq=7`0ho< r{e*6d5:[bPa 6͸d [Ea f:JU)f p&%VW\zI ሔdSgEp߼ňNEхM"4`0Zd-+:0Ɉi1'&:^h:O܏5`dDv{j- BKT}'0`Mq_n=d.TO7dk<7g:6f,G.|$+8I(J越 ,BA2J̗]6-Tk&|șMuf[6zKglfXZC+HMF}_b`sfd +GnDhy LL9kXCD`=(=1ipZKh5ڝܰmښ 1-q ,6н26kŊUM+:2Ӑ 9҆Գݐ͆l+n_^ d(w Csnq 5 S0uCP{Cki4<,]{t<ًܳwzX ~l/;[B aY _aFC3VɊђ4Yýљ!tF*V1ZcN_?~SzØ}+X~W~gmi|$h|oލ9 qrMW( 0[=c26fw36'ݶ`&~ i +;S#<4Omj7ܞFM;uMv52:45O `LzjlX#z34[]p7/s2Sij lu&jn{B9U3wBgRyy ]\[nΝ嚼,myĮİqߍ+z׏lu0ןհ7:Y[Ⓞ XrLdk[k/k{b[Yvu<:rݺo4Ƣg|1A&d~L6`5 ӳm$6Y2ڭAM9kv\o6{+<Ӿj?}k"0YN9˳7yԑǝeq<.o_c|vW'X;ycי [WzlWΎqs<έݔtQ­+^>2UmL}׼;m9lȝp'nlt/]qO={7z"_ﻏTЙ BSZ>3398K֍أ=Kz]^  y ߆w9c|V5< &sy/H0v~}GjAN?ޞ}[S +n^u[Vvt`z [ +>}zĺ?o="ԢO,WoXm?a]Ut4Ex\[t^}y-# +s5*DAˬ?mt"qGƇyl47*[\XmA"c%_=/]XvY(jZP0_]3X=m !J>%ҸDIO8j(P_Ym.w-=f/W>Q:yw-٠7k٤',OiPQ4 ,YqғCJyן者\,{wQDqj-\4E_\U{8[_jGR5Bju%9L +8Z$O9jMlfAe]A᪳\mǃ}vՆ/s>zBy9y<>:Js>Hvx7.:CᩑN7aAe)%q"BhJNRXp~Aԥ,PpԟT Nl_ܦ_3[E$] E/zC2G9;gਥ8ș-)UL03]jZKT2U$P1*>û5b=Q*qr:9:mØB\ _zc_Dgz"VDyL<\6Vmr+#A#5zi::U?@6Om5{rey(4cg1iY&=$]lpȶ_͔U.L3w]׻-H͢09ަ)ȇ%#_ȍuޤFoKdB;iN4ܦ7N`6g/Rc{8-mgS#*^3E&̰<@î'Oήoe(7,_hx8FLO,zֹ3Z {Kt"ٺ .{cM$"$glm|O"vt1iCT-aJ1aB̴BU,93=e|5UNĒ58 ^pCte#OvĵO2\o#U +~ XEoF}Gh$}ëy1WMy0*Y< UiQ7$h<1D3LLc5']$~%6Q3*&E#H&xyZߦBogq62}RcwL6Jgy'{_ҾO L.orlJ.F=*nqQWhٲ$]ͭ1,nwؔ? 7LrTAfYScGz^A->\Hb?eKt׼%+԰ RMX*C.9cmsf[>%MST6O{Tӹ`Epz1 㕷'62vAgw+IYS̈́\B^Wx́vDdgT䡎^@mD㣘N,Кgro5 l&p`"N"r*ZRY z3闅eĴZY&곕CQhÓ(=6]v"7x7YK5UjⰤ D%Գwa'x1weOy@ #zj5̸( ,`vƢ Q&w}49jLJyw6S9{(e~I }页0g-؋z /Rػ &gԏH@qn &{j4lDe# N%XW'@!j-?k nIj|eY8?QXSAc>oٝܶO5\@)U +7lJ` *OvIto :C0T5\3ӻGQ/uCnXYv|ɤ4j.nPT=K1&#`gD;W|Y}$0?&2#JLɊ 3ZJr^uoI{@H+FG@iBS~x0bhw'%#5vP-@պKs{h-8hDK5QxEy#[b41 +_Lt8/>JF4X{&s%5w{#2^L>êYܛGT j;f'QS-$x$:m{ԑ@3[KLTD}}O .|D#$#vuF˜M]:J0#bJ:bDvf֐%FϵA jŽYlRL0/c| vɣILŖhs*}X)UL,l$aYDS$oۙoZ!I^tֶ#ō9RۼOފ}hn^G7t`F,=wo ؄l'ҿpz\ű +bQ +&VCKWuyGacZ{ɛ7iPho803S B߻XfDz f*U`Gک={sX }B;z ˲$d[rTޘ6E~3|Hx졊~N4wƼ~n3w4#݊km8`Mk"*M'A;l}&gYڱ]hiYϫuJˀT8ۇ-,hj}͸v$5ƍboSpɜ~Igb]D0 ?v}vz_fmC|c0_A%Wbf~ 7ԞnDW4=3ƈk2ab_\A~{/6{OD1s`0)_Fr+[&^3DuM6sOnB\۷.Zp5l4" qlv^wPuoK,#ltFͳ -$Vq2Z,: ggf>oKk6X+b "+QHoA;iDlLq!"0VD acB.~XwLqio\N2o{pw܏9p?'!심s1B}^fzݟvQs9o7?e܏Qצ"F 57Թ@Dȣ:rD4*rYGlkV֚Iwq*qj'Mj%ړk)BfP0Úo% HIc>;Ic!?]ōF+%]4 | =wa6GJ#n/:YQv͕ ^ue2LsȀb`-+s>lk[އ7./F)^+.WU\7lPrP(&p{萼%N~ sq);gY&;Un8YLg':6?^'H$sj\MT(}a~C~P +.=T?bt2@@>͟p#S">@:&\bHۓ]>Z~>6DGY 3JZ=E?^Ð.%UGKCZz ͟!l 4eӲ&&nL7}cGiy^7,P".:~g *`zr=t9sr9 շ7jPF}KF?_yA͛f]!M8bxޘZ5ewQk,z.*Au{ +T? +w97t}DpT} V *mT6bH$Ԡ~9ӽ2Ԝ;n-t=JPڼ|v=*[Z:1TnFWxڏVRN[mIAEPq~\x9cVƀP7WZ j޷|~\*Cm+kYc$׻ny~UꌄjseL 3-EjH6fkmN *]NP- 6t}"wgzR^6q=]ɠnwÏn`iM72J>ňr!H#_/ySJE0d޺jP߈PZ>>YhUr*NEl'P[X jhYc2 lEmwˢ +MjP'ē+to OCaS5VTNC3kQoo 2ԪӸrWA?T^NI+L7b0Au1O;HiG.Z{ӠCm 띝1Tly 5gh cmzJ7fnW=S& ;<6T +;""cxml#@0TA56MNP7*]ԶGsm(L8p Gzq6=5PP)+j.g UH?m,M9}|x?f#Si +OF4ƙtuQ=*I=7xsvOY)b!MA~Vv?}ڪS|꯿OAbJOyz3W |OocR id+V}O g?}_#`Ħ|\("=>]|4$qG»Q=YUYQ(|NFh>jq֚>d"&rMIk4f@%pmњɐ$kD[Y=J4o%Cj0|T  )@ЫXE*X+Z*-\57CbY᚟A[,&*r<{pLK7)C_աNƾ +Tp7P +Ƙ33ž +T0A Pɷ:TdhH ʌ{+JS:Epxщ0At{8eB8`!EYoB -\.܎C5ޡW^vgr(e2 +vg !FT&8R(?[ӸI +P_\+I$: R(&;fkCJBe\Ұ$cn4d"] y=}|f?7LI?{f $m$gZCQi 1 H1j[(ٵg!LQZFb9h/u@lS%yPI< +{tp bI Ô@L +e^bR (8sE]k #@cጵce]. +:Oq/cϷ K"{r<ɹJ;f U4&݂yILt>VfӚWdٓg^nٔ$@'&?J݂y}sLobHǍ 1G9;iOgE{K>*f+ޛ;ƜSʀY}N0`i3wb +<+ n<ܪG=qbKcPΨ`, )Y)L"6 H~fjJJ4T:7`WiU9>ƗC5a j3~1!CO]{VQpB56N{7PE83sqޛW{`(qFoEF^iEFi{M'7ױw;}k'p}r}E!dʴA̞a{nogxgWҒ  " byHg~uDb`Fre#Q:a02[#,Sx91o=;R]k`hV/E- 賠+;9xHv~,ıNT|z*7:-m3ԠjGFi/﩯#!kcE(T Zfk~z i.~O\OQ7kH9v-߯iI~PΧ]'ېF9}ϟU!ޑN;bOѝINSJ$J--!Vl.x >*8-wBUC;M*vT&UYK0}l'Tu*ˋ">3GG3/RlcE7O=5ZhS{J8[F&ge}N% ՠw 0GL'&`J1Q+;H'\,;i Few?l=V~ܨVh{)VHq+,:S.AyJ}1ޢWV{R_Z@|id I7| el ׃\~ig֣)c+dMtoY6D65r|JyhL&1 '[C{ySk4+u3j?]:MQo530b.4͊ ɤyӔŋ/.XR|x;ϤTmLT,KhUWTݞ'>j$sBV'̲oymxBCj(%h,jyډ +JNl4jإ2J;R4Ft9yZDNmCcr8žg^m S!"%P' +Ȳt٧yћØΊhJWF͍FohspFogEo~V=341/oׁ,YtF9tC⏣7N1BqH_/Y,i +J7Ja;]U`ThBgUلj[yi4=4x THF3ԼUǞ J:tgy=ZV I;dc*$*ם{Uwlr,;7a^BUr2aG:sm + o[ĹFɋ.] JNeb2,leޏaW6FGN%Ե+dSVv:Ue_2Oa?6ʼ_ u NcvR/V'TlH +z{ bIo^q7pGu`~pA~<'KߓV eRqW̥ +}pMg[b#9?^d-蜺L5;1}?כmyǨҬ|%;QYH2Eđ/dIܵ"Y*:~Mdۗ*m_H}"ٶAbPG%td]KR KIdp5hS{/[M^E](7NFQޯ](uX{^(O1pY ɂ!^NG數Vվy$@ooѡ/c٤<(r8H dnP +4&YȒ,IwݣHE_LmFje fpt| +}z4ƟM'np_ {?WmIn8%czu +l$<5kV<߁Ms2ԋ錮K\dw.t^Lno31O٠NB.vj`_ Ox;+ߓ6udl[d2[r9x>Q1>%/x\O)>&]O)T}H\aRVQ& $|s¾3?)S%\^OD&w +yK)y2y>2Uqg}JU}+/|oi.SZaQ\R}JU}[?.SE ֐㛋2.Tاԕf us .YH^a.\اTKw>%@]OO/PاQr>4{¾S^Oib}z}im_OEJTatgfnRG#YnX(~>=UNǕTJR<Tx}cJ:V;=ή=q}*py)%SKZzSkL:znFg-a}T-5zGB*Z t}}6>=vڻ?zS42'f}"*h(+|xtn8b@ruJE"ܺT;AWïzݭ<[j꨷MeTtAaj1e"K +<-o3S&28Ja Æo>uw?}{E]NţcQB/T1/ ԼJ$WٺTKk^{sB%Ip-ZIԜ5[?]@{QӨ "94\tݫǎx۱RTB Z"A(A 1teIܫa؅ +F>݂EG>ė:MjXt[ާעP˞,RuMLj]A/q5\tpɵn3ćIEyq9^~H-U#ΚD.޸জp* +ǝQJ#n_%s4^_]8q%e%+ȽCxK91؃Ͱ… =Q< +[6p+2:O͇ +W|a28B_UdЫ#9]=pgۥ 2j5= Zgae[tsj.kv̙UWgmY+H}}C5(w:1sGR|ïHˊ#gd} mρs\F|<5G~vj,woS-.˯A}<\Gw`yۜ/xږ[u%+~Qyܷ*Xv%<\Y_oD0>~\5p1Rρ&)} +|{8MxwuzL_ei _e~ý0θ <\.j/lWUsa)#[ZҘs}V~b^7xzi7ŝ3pV-f,K,ky˽_1pu~tw{\i2Kv(xں|lmf>.+ZQ!Tlx[c}%W}tx(zW;!`ጒo1pudB&\ka9KWm R]9ww-ݟ{\H\%G<+^HJޒ.g6\IYb:-Z]hz_Wu`Eհq.;DOyzÇsw?8y;8zC_ֿ{>p{B]U jϿ#u×S;uEu^tT;z|zzmzvc'Ɖ|<||z?s*5sÉCܹxOu}asqOoxvL8O/7߾uܯg_(^s?.oϲCzy_ ]z;Z~md^Ϟ8kmzճ_N_:[u޶rýW\Zd?lnñB7?|ݑm>z1Br^[fbzCwɍQ=f:y VI#xIBO޽'N}kdttPCBؐ]F4|ďI.WOHs۟wBWOrdOǭÏ]w_9wM6Ϲۗ/J'~ N__YlO1<_xSׅ +Աj-}uZQ,pĝH_)j(v7Qn۠d|Ĺ×251\پpJն}~}/;sWXN44G?́|/_[=|Ĝ^/Wq7Fx3G*뉖[h%޼Ci<~X7llwؾym8@<"K??= +je/(}E_8Iz^ +G"7.꒢Skw7c#ӏ^texH:"V{ռUv)Dn<O+踐W r= ]ya olաsol2fz &^}dZq5D5qB11/-x~[([??6("5Fp ~8t_po=eV=񁭚s篨W]")NJlI3z}\q N +S7>>w~p4Rwt%pI|jYmfcKU"e/jûflGGWY\ w~v#[w1Poz(~x8)|sh~.&C٤(],Lӱ^xiRe."/-a'Pn"8pX[yw'/}ޚ[21ij7igz3H YC7/uphQaXcg=)98#vzO:fA6+qt:OL~OeL}b) .!r{83NO5}Vs[;Xҹk?n߼07xC%!d/ % љsCKF_0܈6'Ǟk2_#ԋ4¯"9jN;Ԇ_r_L՛c#׃u{t̫߻v4(˧5 uARqG +݄r>%#:~ù;Ə1koGկ={Yz}~&~p^..ѥtJN:j."1_=HiN{}|HyaޛoO?U-P}Bpޡ-S?z~vvu>LI[%/8)P{xɌczӿ.=ww_b=}ٟ⡌}q+q_k/o>O%-A&vϣ::?R3mKYdkp2.D}{絔THly:{M`s2,ۺcy,0#''g]8]GNBL/~R-u駳B J塨q}pJ_=(Ӣa%=nNOŅ̈́McP"uavS9>^n~Ͽw?^λW?~w^too]K_`,'yH!roȋ3^yso?<ܢ? G?pCGNۇN^x?>-^Gm+[.<=.}ٟ*_z#>_z|ÍW/l~:Ӆ͏uߝ?H8Q`=]TՂ_ %&p?|M\9ZEE8-ʕH1^(6 :_Oc}MQ& Yk1Trn&=5ܯ _0^ +C%6FR6dQ:Y.(vuKf_(C=[G__y0G-ht뺍O.$-c'u{Iu ֽͼEc|-rw40|âo>T_yRnV*59&݌w+smeĺ><'c]e$/:Ur 2En?`zX޾ݬD|glԮhMrmREs&.avޟ8sq].SGR\<=KߺI~8=㟎\=ѝ9!Ã1O;I~?? r_ˌ)5% &cHt D,QC69>$pC13?wh0U:Օmѷ9}y"'qI}Nvr, , V_?o%`E8;i87.OJHfY߲Oj87E"<@b_썺["Ĥ╱}f:,޿~3/WWlXr7EerS~ᎌ)ao:\FYa俟 J/r|kh2t1w5o,]܌s&bjs>"`PWyIQl_LlBvwO_c7N{~?  +x~jȃ{[V9x~k :<ҳ_U*Xț}>~xF"ȑGqޖ8^}%KzZ "+Ղ蜻/|ܷ|W]y/w/סWm_9xHaJ7o>4?Oo4=~xAB]ky{hf]CɧJ>}sS5 thG>蔃3s_ߌZ/)9 #~3YZ?nC!jbkEڌϟL5ﬥʉsz͙)?q̧썸/,2̛x,=y*yE1B%KA1B%\oY̳P[P̳PS#]߶ggo[̳Ps W*}br͗V)-8Jp"yc@u\cZuHYtqpZtF?af=GKV(ħ\|-m;";=nZxsIݳ::UQNo+S$SiuUb 16ß79eB 1NJNP$/Zƶ᧊ƠJ}+j}z+__~? ?Ͽ]^8>jzߝdzwS>]姿޿{<ÿ;. ^wvA";t?daRXq7) eFWhiwNh]fV L({aU7:.+>3>إLy7WR3NKƠ#Zez G}emoʛc!}3M;;픍ABjpvĮh9SleZ շAʷH^N21>Ab+%!c5>AEK6t}!m>QN|]fP3V9#9N# k ?C:i?|")8H$o#?1a64H{6}ۙX'< .'tz ލJrڜ!4ƛ@t"ܾ e1}^c$rrg`aZpOe t?F#FAk1|BִM{v0!V2V:D: +eU;2iK, cIr."=ʃS!3>y蛋NuCRN迴D4zIcXU m$ <8{"rYs/2Sf> `Agmt厰t$諨IX5?vW@9g㝹tI ZjIJ ?qY|{һhj!.EbB=ݝL:utuF/ތۂ"eeLi7d 5n9x :3iSyXfQY)[V]*Ů m6Ϡ\Iha)-=hHHZ*k?l1]+{ENJEU&)dGa:B 7H+4LwHƢ ֛,0@/yt٢vnPl1t7ڡ l6?*gN$X*9IsŘX g"諐zH8D7#t9-&K&y]Lma{:eW*҇Hƻ ޜg)DIgY#8oϤ"q#YH˲cG_· $zARI Dw\^ffCgRHr6)!_޹JP}o B:9a2C;ꅱIGXУf2=A nL1U ;}P_,C\b N|aL21 !Oԑ4W]T/?E;w[vL0?=-'YC6Jdh`ժUG}!B&x6 ] !G!sI8tt_f)2ЎZ(Uc2wJT Ēh!ZBs? b }á@4%Y@> rV2U;27&@E!Yߌ/o]AOUo`{\Av#:E-a ZMJV2d;  jyC8:"ѡ[k Ȯ$3Ivsr913LR2P܌t<)>{$!\D6]Zg(;0"U/L\V%-˛@<6g& +t C2s gQtEqf.I$Vh{ aD8F Lmwb C*6'Mm$Sd=ψ ]$*6R2{%ـӄX$!*iŢ1#{xv!ZI/2@:vpViT&e} MF\PS6 R%3;$#bRB:EYs,'K=@Xp:ZzFf2ɋHD5*{cgc|Ɏ#rd5[]dVҍӋK 1]:J} A4ix҅̐*}52HiMPtƄ®;(2H $P8 RL)h0iir& M/>Y)v4UAbSRZ#jFH~' rO[m}{OAKe{Xvv.Sn WSRxJ̓9BGFpi}nG;<[ty)Mb[_.#2/agxK瓕0RBwR%kr 5wJJCv835bJxeH r@`f?*R]vӾ#GDe=$}Hd'pADM3&ȼK CWqԩpҢ-6=!DI1)ڢQa h2DHhYfyEiqP3GTKiĭȬ, #ق&V; H`Ж)ѻݧ fGmzϞn\ژl$ ӎ1-,b )I@]k(6`B(`9d(1 Hs ^ĹӴvY7i3vQ2AXc|0Ų o>_Orb*OɌQ dI%{EIkRfL1@z-^'}$Sd5#[D^=I +hoIHBI=Hc )-lxRW|E,]hf2SSp*I7$b[ m4 tlFƗfz{<_w@4Ij +"{â@8**3"qr zZ.6A^+AcBu1=k{1+y*'G;Ǜ  _ N^:=}.?lq_q%ޝmUh&I`|tҤIb@A%n w!iQA"}I Y -Wh42O }hv\D3YWY]jb9\rBɇgdYv0r"Lj쭚 +48 &,,Std0mHeS>g?iQas*y0|h3E9}̲ \оlO, D4Ej +v +qVkظ-#`eh-[y1&IF:_]q Uy6mcU\m -~҅@1 =EO2,$" \T(ڼ3l9ByiV*p}M>2{oHYnƚ5HN( }sg&f5SaY䠄01y@jcID=hOvtN<~1'э9b>ٮ|!s1QA?=\Y@#,9qa7\u.}DdȌ+ .ǁwm$(jF,4ӤLyQA BN"C t=K !ߑhۅ"W#-fwN(AWy׏$Ud ;לҵʻ3 %JDxɾVIuhK +kP]L O Ɵe<GH2pV3,%"(W!aUQd|Ozs,!E5]ahQ 'd"e Ġ&uSW~e9if[pR%S"'b@}9peWOXP{W$Ce!Se֡n¥Tːez;"]#/_>P|PReTpEca 92I$Kw˾_Y0qNiBaotF" &FVLnj]j&[s\q̠a̴A!&Ֆ̴AmB EF2 +:[PY7W5.49 brE/G9&9LzQFPLdt!ZyM[&hyMR_yۅf/bj:4W}YY!;Tߙs)eVSXlƾzXu*oX:p*ʔnTEY2 BVSG(SbB)'||5kf]S" ]Z"-D% +߷JH.3Ș`'mδ &A$ρ*}!tFA5;d.%RN\uO{2lU3? jv:p6wX.~# +6꠾C)MQJZi]T`<]NX3)2gvBf6WUנr՗Dmq9xf6/I;KY@̺p9)2 +r#CB('-4^g2) +0 ,I +`[hfĪC2k@eFP:")j$t.< 49|4"?Vi]MI0Ҫ.p],@H}-p>oؔcDYU)Bp/OZ4Ѻ#R^T0>1@\)['+ !rX2 rPI N"?Nɾ$TjD2J !*B/6ҤI%o݈#j1nf! &'SF9S"E +%V ȏ)=KiGDŤ o)!`!=Cqq8wΔV;j #;fiK:o~kV.DE_DdP2DWuXaD5 5tNdt15Fƈ:yx&YTd1q\ yϙAX]#[0h =W̩ U$CQEDXYh)n@6xG[ܳh!9 +NHIz0 DCQ):^̷^w@4lG2vaB2HW=Q* !U.E$͋Db^i?S&FC7|Zܴ9h'MƕY2(j''וWOr!sQ,D3Yŕ(D7)0|Ɲ6סv# D9.]qWYd 5aXPOBV3$iT}yhQb+;KA%K@Q}d9O(1YNCROy`ΰ˚ :(:ZENFD{+D3)dۏ@p3qB7$-Q!?AehBD٢@OhN$GPhwxA^Nم@TXJatcf+.^b3%F hQT #łB P~!hL#G +ʹ 2I"o3׺Z&_g$4*e!9m$G|pGQ "Y$fDK]xfPB+E'BY; -kTC['T{VV K8${b50 r&J&yr# J|!c`ҭJ8 M\<3YV~M[F!cPhS.է/ =8IR# D2H6QDl+/btX&fި0Ypd7@HN+ RuD+ Q +> bVYGCjh#4wAX(7D 2脺ndKdy@@?6KYW /7I5is_eP"!Ya6[Id$Ux(ylDԬb*3 Qź~>D !R-QMAOEꍈMgN~16 P̞ڃ1HO2k ff sMbB9]p|tc " W|@{VBL<X60\+@NHrYxIv +hMwN(~U^F*8QbP&A ,:3leNr٫&j'AjW@MhEAd$fi!Ajkh.AF +Ice8AXĒC΅FWuB4LZt:eR4e@^He?(M_tM`4]zW6l5_ZÝlA4mIe $T(% yy)>u LVCb)=I{\0wyP SRnjVsUGQDUR<7^..-!;N!(4ݷg" e/NQoكWӐ( sAQMH&~hGGB$5\0:P:g,4{S 쏴BF9 iaCS46x0Hb2r>=jS9x"ǻs~)%+9*s)DD`%a0 rxUT$b:`e4hdWDJD %4YQaedkUG B ^dsXQbr6XOs!DF-A3M^vvS4|RGPD~qE,b,YN?ئ}U$$2E9]ZPC'nr* y&M4R"AyQX=@jpRxЖLԂtlT&!Y6K͡f5W^d!U2v)<:g5Q23ұ:YN$"mZɈ ]1R(,!g5_e&j1<I' V !@"O[#W,!x06)0.V[qeg%6jQQ6IDlIEڲA}&@f24 }E`< Jt^ݴ/3gvS3VQr쌝59tb('{^>~7 1{4Y(<~,u"UdU{y4a+Wي!CxN:ϛiTLqSD^' (\(8.$W BETFSUX""ˈF%\B焝k'KFRV]j4vQkdA"/M ʉ6EI5DqEh9ܓ]x@ ѷyI 4c((!KFPlNit,Qt-zM #{#J'=z3}Cg  hbJ*CͤFTJ7u虤eF@Ѐ7 p|5Z_Dv\֜HFhBw"'/ttWsy1n Mdh6K5>VذݜT!F/[vO(DnXhoY `5wCk-Lkb\/u]".[$cX { xʌ%Ԭv$3עUI92A?%ksrV7;]N sCb”[)YQb])HT i9u꼂Ȳ ";HBv4`b_93E*i?,eiƠ$ $*j +=\qe$enEP[^^B4\e-:9[^a0S*HUsL]6Hڙ-H>h)Z[6-(Z`aRT| +4Q\"kҦH%fb”ڄ͸OܻYT +n`/ 4+#]ju'aT?H<{6eXfQr-CGhG:(v$ –toT4ձ %Sn ʏp4]nyX"%r %S,o1/T t +vO&>DZXjo05d,BH]h9lOvy!"]h'51H6V ]"pHt1^[hZuijܣ14*Q}`6ˈ + g>Ԟ"K $K+=s Q| B&*c3Y$E1 :)*1`'3@e՚TP`I[ъ溝#U xfP3V$4<;6$ˋv3{IזQ= .C5>_Ԙʴ)2~j5TNfHáQIV]׾r[{{Dx%4>e)~ +it\u7jؼ%;&xP!C Wt%d2QRIBw(% -I /Qvf@IF +P}58P& h ;}.$FYi5d7-,9~pxDfjoxExٳIW!^: H-cwhP5GB9ΝXHTMrA*D3vXhh+Fb1$"\t1 +wԇԲٛ YX A[󣪀s?]EHܔ!1 EfҨE}0bI`,IÛF3)21^bt/BqT81j" 1Թ<(+'5I,,3hYRݡ>#)= ݎ +(jh Tg u}%'Bt9xٙz71Le1,䢹cJ+s(G%Z%jT0hsJ`Bson4L 29$AOHQGErj2DY fKsMb4OmLqU? m+Ď?`A_{:ZOBZ :g@ HzϠbuOת 6zs#nqr }/v8aDpE . _ .tǠ\. ڍg)CxЍM9*v#zAF7|!#>Q!̵x fr>2XGdI WcY[:Nz-漌<'d{e4i:Ɍc䃖,O2dmF'iCD:z05kf\` Ɖ3Wq雡tl$ ( +5fmށ +OM.aHɊ՘Cɛ!9zN&q̠b CVUh!m} 7IӠIXZ%p$r^q֌N05.w#A[+$uFh0*dBz2u5I; + dS?iD4X-W$,'37ӰI2$BM`YV${Elq"5\9CY܊?5,43A f~0i'Xb!܌j b[]561pE Г kF :L[afJjv!:)ݸ "-]E\e Ťe-mԳ Nzn-}lS<ѻfId^YKu;i>Q#8?"ɁwMD4 <ʊ>CĴl];ׁXQ&aiϥv@X6ɟsd½IO[۶DqFBd0%p_vv1P^&S}DB(iҹ$ {_(w6{e eM^IRX4x'hmF,ją/E43(b)}vhDPZTAա=b$}:P4v1hK? DL m uKYRVC킂L>Ȃ]@nHRLdA3 Vq$'58)"l7%S,T45^ +OΡf꺫ܯWمf3bbϋTJ({H${妄LS$T/!< ㈓`E<4ӴLTrl(_bEhj9)S,ޑY[@nel/6S@0Ok VՂUCƢb0|5hr<ZTLc \ߌXz޳k.Yj4+w>1R<4IJ*#FMt\#~ڜC=G'r#Y !j @rp6vm'#Ef*sXxxETfąZ MgU @w)Q)D@Q˴Yxf3T9գk/=$(0_2\;7U<) R5 iJ&ʌ;D9|*HutheOa!0+D,đ16!<4ӴLT=dS[-E1Hr􊑧u0K&E$uQ\nk.43HYQi9vDj YOtPWlDRVj#HۍAjʸ ji"a jQ( b\gX9e>gzj-kkrCS(.2p}DG)܈g-́`TORh> Q5B4MWE Uo,YY-vOa1"Z*HNɁ1 c6ep"U֑o6 Jv3^#LБv|bESވl3oEz P~]M B_|:v-K_ e~(uZ9F7R2<@*-H @2IGuV]S#h:w@!0ZI|ѱ]a7Yz/Ӌ&L2R :V1\ 'F|68:A$GU=0xxf3UQ?ֺE] ?kLV7 9Jc/>Zpr,D3ș`pC+1(q"ְs z ?eFb7El G3&nLU?,'z%.ݎ%2-m YSl;u0AZ?F$P._#c mjAi;f}B1}%U0ZjBTƊM`*[4 DZq|w9J_GZf*rgb"1k + 03_ CL-IPp U*"W(fa դxKNfC wQ3UaN]"a(_k96Y j:AZ D3șt!9ITbpȽfZfPW\^%G+/LF=ֶ>D[}8nZܫ?>g&󴿑}eA4}65N BΆj}P??,ΖVtܽOkYfr.pLn5Нi|LBrh|ya~&2`c'%HD$(diP|c)6D-yo Kk_n-mi3Sr!".n].F$'s=ժ9ذ}qkq,*߯K;h.Օ證Yu 0JD˽79:Ԯ !`[~#w1!i(l6`Z}@'SKh76eln04 +S9-BMT֔84ϧ6ϝ +|qdI; \8G'ףMB#Hs/&[_$x;sU澗 ,H5 y3*44PƜD]dL}!z6oL nRLΟ8T%IU}] ^Q'Hv>6܆6y28b NyZ<[vK&ZR +@!Xtt>y@DJ_=}]f +ɵad$^T5hUmcJ;|/?>x }]U@hJBt y! 表tڰP@,]"՟AXCRQUAg4j7eSQN2A Zx}áZ|HE q9iKa. +⌸K[ߣR([gUPw/wcP)5]O5 ¯Ai"GC R48$KK>1VT2EF]Af 0$l,iꃫ0YU(S~c'.ᡖ6cLW*"cDm{ҕPz"J mcJ8`CWO^-.Aǂu2tn鉟 [suN9(:p|w쩂90Vۉ`ds,= ՒP:9 ACZA/eY +>{I:prbĂJB|Ո9>t L_ДZv]d.Ȉ.) E;$!XTS&( W-&]ۛp#C+ez':p R=`mվK{=w" ~'|A2nqV~GF9LߨљJ8z{4fDTʼw,vJkHFs3i/6)WV\^mS -R0kE2~twuHsgG8x\hu0"!/c\N#TInW}֪2d&žY+?`:V/hZ 78&-xFH5JAJL^8D^д3H OO">5~wbʮ'1KPq#,oW==xR HSb=-M&l1GID?!MWB6{WW 40=VN˯^byӭ?G )BK8.dRFڂhA4CCimsU1A"&>2;uFV_ֿ|ſ*3 GZ} 1e9[*m9@ Gfh ]쁱 +6VB"EFEhAڛx^$/=nօlSlz+sg|Q&oC!NSeJX:}Ꟊ@ULu004拊(vj̛c"%:Аs܂hej@$hI1TңQ)7$T]pXCKV(¶Kۈ_HmQ&^R0 +liJDD#ǀdȬw!M5*/U'tŨ[hl.,xtlBQ +U7F37RS "0z ":+*?vZXRD!e|(': fHJxC'ES [}% {3!tpZvM|צFtZwx<kO!ВD+:'RlW`@y-ZK#=NQ݉%@4 .&߰eʄk;Mxu4 PՃ5ۛ0{!ʭņs|.,kScTMD3JMM\yP$I$\W}Dțvl%=h$9i[lu:q QVF:)<%=v39L@ FYm>H&慃;CƵ-7݈]h20ucނhL4RZ.^ϥȩ.Z}`9m4?=s-@~5epwMBJۏƨc/*ɉ#S heQ3A#PJbD}tN"qBV-1Mb뚅 6Rh12]$h4KuAQc0.4ר8TZD_"v4RPg Qpyxڬf TpL'\Hw3G- R")%3"V{.q0;;'%MPahza-w՘ .ϗ9jNjҲy`ms~̒[w=HuKc+5 H.Kpdg!)gĥr "L:H}ِYX/>ߐo7{tb oZgHP2{waSΨގ%d8vzafd@}ͮ],|n1*;?KH[wa\"?+V 3fr?P*${xT$]\!1E0*$P|?:7gQɒMegI 02Cꔔtַ[:Hw xthˤ%d.64mf_}-,[ֿ[m׎a*+F?~xVS2w5Sp`r9&d-9l&8X.UsT , yܷҎ, ắa\."zJJۄd]왩ڶku$K *+ٻ@>˜ Zfpr6ZN%hQwZ?i 'F@F啗 +D..9w;BI!#pvxv؞qX1DԔZt󣄥Bh{+lF Ib( Fw |PO>stream +ߢse?.հ箶^u_*Ӭ)yi3{LVՀ|2߻SZ"fxXshL^xHwkiNsP /(´Ie2h Dׇ}z__ęJE@^dX0 +CoFd$)O=.w,Xjh㎈Ǹ`@^"JhN;M,Z+}y~%=İM>~rrsHU6 eo y;o2!2NG+@T7p @kʧMyrQ9&D0h&wQ6s>X$t7~^gvtl?2E"פnnfq1^b1z]^B9C1)NVng_U]Nȧ||21-H!ggW~ ѳaTc\ (Bm~ikZ[ _\/O1YvuT@D &ݡ4¸l) V8(}MT?QG2pp7Z&ĭ罤9j>5x4e8zqP33K1JՁܢ(9$; .l_G3n4@u\~C! M7׊(w}.X0v,`X>mU7zPY5 +w>wʿ ំF} 9Heּ#HIkD\udvm&lGIz7OO*?JG/+.3#+@w{DZl^M6OZ@pAsŒuV]o.3/k:< WgTa6ah*L/nYEå>K/!+}#2`9|de`n-5瓻g閏Wja3R4K>oEB/w1[B}RϏo7ˊp4EHΦAKG=>a"DFyQQ3~(.ɈẔꜣ9dջn +B# o%lԽ5ez, PkyM79,XI~n` P)6ODz G IKB->e,d{5Vޤ58vh&kNZY\|)3QOIZ+Y1JJ?(kS\bֲw;UH_2.TwHm֙ٱX, !YAijɅ|7Rwɵ ¹)=W(:Ӫ i0A@t Wgڠ%ͳKZ>)k'p6fYQNW߼:6xcWUo.ȯR0Bd\(AZe HOser]iB (`z锥#`X[1~R΍ ќ/1Lbu<1,Vbxg K +U)Of25p +vY~ >!.f.VK 1~xӯ}M6r̭6"Mh7ݙIoWC20GaXMð]轴 [g5KR*3֖dU~;eRGؕ" p[b IO@5m_d⪱63(u"ø]$˺ظ2+u5 JY_BҤo@q[PB8?s +JH6]h 6DNэNI +re%2]& ],w/ʝܶηp ']߳}W/h^]ٙ1ĬՊn? }0mX$.4|kُXnZ}Hsr\nUipU]!x z# -j?g:{%CWKZ"rp>D2>v ev}q33jHNVQLn*'GsTve.5!be~Uy$ɓyeѽPΧ8, ]YOeH9tڵg [zZxCu4u9ZۗB]M{fmI՘YW-6b#%AO&F:D8lОЀWe+"A:0TvSΏ8NzF+ 9)?,0"!t:cci+cRD4]gP:ߓ-^5}/nqqUP|R[Pm ڲt]ep.!s*bλEJ6٫Vi}8״fNe$h +l[ WJcfǚJ)/WP{e5ȻquV)hCgvg@:~:zdNN,V"cNW[p=ҟϴVCҏ*R#"ܻaثJQߧ5g"bs;5Er"O,k%^7g;O-g?]$}t2+[ F)ꔯO@/Iݮ\[?NC>xu +W2TgW^ֿtu8ؼ|,a;zQbe6UՊ"etٍ,zϗDĮMlt$ `?]yXT"y'ɭu Gi A\ յ! QqG1??JI ŌyTL&;Ng]9$jAg~8X[l.ANa>i9zD"/KRW8WF4Ee69 t6hcES4{,7_1BY7>3]hɾCU +ƽ *̫Y6Nt~gVkKҮ1vOBOF :%{Lsv|.fmꎉlT[K&F7O2qCʀvM4SD,-Q nBc\M\iz/sz~\.f5t^_"Hhv`sS[n:=&ṭ$|06T )dW:hB#6b]>!7~yֿ#}8c1tMQ&k ?'FՐ+wj7dXe @.0<~ch +WΠթ{N K]0}Qm b>[ d27m$PV?U<kE .5inJ|] pwRj] +lvIH_}L&A.1M3" fi&2f)g?~f˩wΜڶ*]o6tCרWZ]F|?QZˋ= óSįN F58̨ \0U~'|_8N*Be&*$dMivl׆nŌ)rٌB +ct;4ֶס*3c^`yױw^NoXVϸUGKxhFsSc57Xb.ذ{+߻ML̫nxDGΘ(85Hґ"ge8. )"&vbHF[2pg6.V'F 'yh1EѭMB|k5dLLP7Vmrzq]W`"a90wV4CkOl%Y&kW҄?7G<]E\{.oAIlb -\n}+B34_eQ~$1a" [$Re"]Xܧ /&?}`Hl ΃78QKS`",z}PA6S+FqtsNH/kRSfi:j#|<5Hn+rh6σ{+4tՄ: D,lX +Ƅ$lFxMj渴6w1Y1 ґx$XDU`~kgBqJZ `;-G{aׁ3PBy0Ɲ~9;/w5+%SxN;$8M_54@ioC/~{DܱYrB=ø0~R\o6|ޭ]6g-fͳ0<.*j3`zo˵iR`ɓpRgc+cnEƓc1~}k!WeԸ/lm*]Ԏc\-z2╦llJ]-v'V$="a_s|I9)nBJJl& ,iCMQ4,tW'ECxb٪n4 $rUd Gqqe$WAG% FvccjSUAgg+"N-y=bʸs>dֈ!OGu rVcX6cBg&u7:Hk9v`|bTmOU":w}Q0y}/!YQ_|&JF~ZA ;5~FgR1@0}eLڇ$A M >RIJFu^.]m;vE>x?޺ZJz DRpi#( c?zig]}?1]_{k;cq%Zt̠갻b3M5 @}m}~*_;ι:eӇ`Rk0K15 e14炞M#6 h@jQ(]pմgG`ʷ. nyQ,M}]Y-I&NND B6D dFI ڸ=K&)ԊV$c%tݢt:۸lU(݄:z]7x{sMX4\w΄è)- +9?5QZ^GMӥ\JQDrFfOm_#4hfVLPܤ ۓy m 1 LN$t]^~ :tv +"&$ Uӎ 2wOv¤SRh?TWˀDf Ip%PZ +ײIx, w1kplZT^uިTbqb~](ܸCNn?O"}ʄ"ߖ=B?,c$]O$?k.2Ҡcd¸yN;ˏL5@pfu!ywaw.c<kنfr~^b!(8iol zde:UڰMC?N!"hDUvk h|֏Awڮm4UknB'UrVFS3(쪪/Rw=mk~S:vNu#e7%>IHW8e!,g#z/|kΗk7Ҵ]10B>EH +i+DyգӾK&D1 +H˽0*!bP sNٮGQVՓ*;no01MOws9;yDѴʺPԈxyl>ϒ9«iqTzr?nP?m%zްq7 ؗ(9.1"15Wd%#B.~m5A+)6OmE D3^u*OnbV$f>~,R"g 3)sX՝5ٓ +g{P* /A &EBQ] 019K{T*"Y1]J|r?ފq صr?-xL.Gҧn1V~dȝQh_-w弒X XȚ8ƺzY_ R?[qiiLIېW>-I}Α^~|!Cq秒j왯i]tR3};1zjBiR]ZRpYs5ǹiщ)Qyw0*PdzU_{nZ & .}WvוH|p7c}odGP_vn~8)^G"'^[^xtWKʋX@=C %_ 'zчjAEղ^vZ+c{M9@}sN{qg uw13{"ԉbRFG_8J7#];>GU=a5~}:1 d_k$Uq1>AKd?NDn#Ww n{meVo,/r/Tw{b}uPb^Zlbo \ HJS1=/ߘ[\ +Ȼ UJ +aL>ر< +7afuN3W/of{q̗㒰(`?c^ `@s5:-ecvN^;i~ E'/'6>B|Kc.AA4B 'j?US$OffQKbFvb o0ƍi`F_,#fVjݳAKYй)tZ-riym/] +wYbw/?0W_*;[uB +AM"zNIj릺@ۇL-q(C  +ulBSfpߑ-tn'h;kGб-Y;qW~dFq~ 6v 0&#d]=]&[/DpqJ"FQξJi\nT|:.O%iͺhNMm>rƵPXVFڋsTl5$AɒivVл&8H7C_`qgd};T>JoÇ?l/A'5q,j2?&Gcd 3_կ$tƾ9=aXCBII?oxeAL~K(}qr!sdXHIDdv4hVoZ(cd?\:(ϫxc5'Q+(+h_H瞋3CP#bQa嫮E*M&Y wjU#@_~^^u/&gwm0PqfpxBmLS<6S.Ĵ-Z:%w^'Ҿ#u%t"gho?]EzJfxs?J Hqk:&շn9Z]D7+خbcp39?FF3yH'b#jamz֐*@L$A5EOPa|h m5"/2o;SFh%iA+)H:/b1$G#/vJ)@s7f|H:z⁇s4 /mhEDyv\wZPUaDt JoC.lclʇ Xnȑ:NU63iɚ-fk5~|-en?gP +%(?O'Ӧ YE;30ANni!gmn_Iύv"K% I:;Iew9`*xSV +бW٥9F-{H&]olJI%kx;cQM[pRd|fM*'mމfLJ}?]any%ŷ7`< +(EWCwu~Cyj_wU?5`hܱ|ng wX-yΆz9C`& hbDԷ̱L텍%c1xuWUzYn*eIl8$>*A= YD p#%\tcqDg)/d]vYE㸔0VY${*noO^`l#]p*}"`NoYOI̚FlFݱ%ѼD]v5DdzX4uITKޱ+35AslG؋#Zkz^dL +FFّ{ 6t7b<)Y"plwxv~wK @k]X Cmi!$ڮvG3}C篐(N,8]Kbl[+?o} *\;fηyMhQ5wkr4)9ݎȻR%4U1͜%cܻ) tk"-sl ؄ BEQxDq:#Yzu$X)wI{\jH/-&*կcƈ{ijk;?dݠ۝<2bl1jZ^8bqafr-l>A%K!DW]U%3I6$*q[b1X汐o:Vt8e7ڱ/9_{%*k3[R)ϖ׽&IإΙ ~wγگ8jN"Vz77*6A5^$ؗZmP|PY2K`QvaĎխ TگJۥks ww|Ni1;ZiRՠX+vMyˎ绿fH6"ĽP_z\ǎSe,`W=美em:,p795 Es씫%2 ݅_ a[HmHty +~I@ ;N*9)jAl[8a:k60r2@ճ`yI8_F*nqͦN&.Z]V iA('0SM&٥ c)oɝ क़%" N'.vOXIAiyq)Ur0Ie*wPIuV|jY*w!zҜɬ0eZQwyhPE|;QJR8;^f^+4q/mwl}-nD2/` WPo!tLNi/A\ Pݛ}83DW,P$Jƚ,MmEMx/gc+4++]XyPM}4{?y"p-KP]}A2x+H\&;BaY5t9Ʀ5,k'C@1|s&pP>/M029=kw ]:p-iOң O@z&*:A1Cmo߅=_vyH e&Esɔ6%] zg{9%[s{KK;Dzwe fw^1zi&QSs,7zj s&7yF]72 1-{[eAs# y,Oa~wR[Po8⊙L*X;mK$2).!m~}5 GЗ x=Tqة8"kw B + D; XzvkJn.dEA55!/\xhv )umC%ld]}Lv.f̘ n&~R0ҫG`Fiie<\8HEHat: bbBoۙe#TQf:,ƋJ`tp},d߉zz_C7iRu6%|mCl:Yu˄hN8is a}4z̘$Р?ݵKrW~}0͢%AO 2/ȈZCےȔg˯KiJN%S +S05ܝ 2qjkz(;>ϨW9Nv 乷IM5|XP}@sR1to[8fǗ ϧxãbAa`ħ4q + |* n {*MB?ZmP(}b,O\7Dp@iWɥ@;do$VouB^PD+AuE3qPҭ^tJWQBF_>)輋EM@ r}BU1E(t6=NcBE,eiae/V}FM)c9/UdĚ<]A \zIFEItzPY@e4HSH@Zuҏ&Zn㱡|Bg1eXeR+ge}6>(C7aȕ~a/t71P\oyf|r;G/GΕ:F80In)9ɺ (bfKv_9A)5lk[:uKEf|uhsqb#Isy,T,^)Sy3M8Zxͥ6DY1F7sT±';bù?L!jTjRU&k5AT1D:QXp&~"Y i$?'dĆg;rV؅z̘EьySoq,[S 5p!Jc>ʗ~ +j8YnVJɠHdZ} ]KVcaXnhshR r3?0bm7JB}s-N2!IH7 |H!)-@ cy-xAs"W q^7#ڿ5&n>rHF/d]9)t06 +nnhs +Cw0]17{*OLHR 5hjAaN~4/7F|Fl + 56tTWc0d)_U1{ +Bbtjjb|x9Slq={r+x7v_@QVduPA#';K xCFD[kWF՛ PW߿wa} TŋCAŝ9QyHO`TʂeX>| ՠdUTs| q٤m Epo jh Q  +Tj:dܜ"V2]Z68΁d.R5c`l] r~56v-[sZ+8;Gzamؐ&9;irLxr̪"17 WMV +RM!Rr#}oMlBBn +M.cha7qh!j C,rPc|-cGQ(@Gqi՗T*QfLVD8K+Lhsx76~KSJP J}Doy(Õr[S:ʸ+Y~&rLPV> gw3քΎ '[j?.?J'\_CvNꎏam.[(.<vVaEgPGg)>*rBS/6=4n{U](ۥWm+)u}c Pvimb8V+VRT#hRZSwrkQ-0Ƽ89_iR Mrď`ƎRפ?2wzO E֣AD(1;a,qcyA NV籞o9:Syjɿ說 jR{1jj[6MT rZq&#Cxe7`bf(!Y/{QB# ZoV:(CEւ +>n;Im6n{۟(b%]*DzŶnFk WEĹ8rM<}j 0/= u7 +zjZ_iy^ 7o# JB߅ +eGX椄E(l,ٻr 8Y+G +{LWQQ69,$ +&e:+W*y11[,tLPҘPAO]ZyzAh<.zGκ9J?rEcQ Ȉ/hթnVzηk]4qWA2Z(VʚŦy +I;ak)\k")ƽY0$.&\W5$_1:Z +oD~SSxPjRhuesy~Zv3DaԴ,knapnVQ(V9>Y&jk"/*V="hǽ6V>nT6aNS) +Үq}@Aowśn-/[Ra$T`UXUޤL9uy4z +mӭﺿTV +yuSk%\YҪtnY,EP?owltj-0ͱ'B# PӕJ2b"zzP_DMKԜѼK/ԛZcÈiNuޅk$o=G|}EZe(MLxT(%#;pBNm4-H< \'q O+Z۵A1^2|)]H]׏o)GMFf#no@|?va5-۴\k ]҂ +Tٮy3nO};5~u ϱ]żlLBLbrigd^_ v2Mfϗ?toOjV%L FnzMW9D˙g=dy{0̖f>DY"FedCuϱu8%+)}Gd^-[wIKלvNxA +_ zK񶛐^ŒSKeE(Vv +9"zkNPϮ&bk\1ғr ;Qqo阸h!JoSHn^:\&[O+0Yoty׋W~QML@4`nhn;_{wWz}]@U[x!'׬KNg:QgUE -ڎֱ ۴ +;c wkFX^@[M﷪XÞjXZ(9KTM)b'lhqEj&`N]^(XގY]g\h-tHىhzv;O`D?ųuh_t$V|LOo2HHSD${7KiL6gt.KlrXĸ.6oq4gFgdN0G6!}Aw齊 +#I`Nfm" +٦Hr>@76mj( +^oMUY9;qDD Yc>>p[iDdl1G /{uKJS]&ޔl&]QE0qEE˩%u0iO9J"C||Z7HʂUW"7O Ӧ$K^:H&_<1n"F^QJPt7(c=PzReI%5W= yb_}A>VE}FZ#1Oh;T |&[Klٱ f߀ƃ8iv!NhOJ~k ;Q\3gF| ɜlafk_[#֪eʩE},~C\ +HwnXxf}aܕϮzҳ42Mf1|HoZ;ވmDDn@N}T7_zmu|-h\?(){4vAY%ZNZE}::N*k''ڛ}y`#jH{ni\2OKDe,uk̨[pkNH}RԿ6QN탣<"'{osŹxwz4rum^%SkOgGpA{S-Jy$>j r?ˆ#I{~5y7=-ނڵe{n PR<{FhlG\!d<T$=ip9/:|Nf@6ZNMuL@M|=uQG7!([f^̟Nzʲ3ʻ+B-2UiL:2.o34^Y'Ox˘6`{hnDݱSaQ>3Ў? 6' וa:~)ΰTc2??? ٶćڞۖOsu܁^5޴|%;WCyTwP7P3vfM'ʎp s(ysֳRY,C=9 V4za8xW@kO&pzX"%"OR΅ +fx .˕-MY컎ɏ {p/ܠ+ rv;(MpU_9g>yU08+P%+/N׸zhomԼkjKFf?:{vEUp4tggV$mR]P7Dӄ1ANnyIv%:y_߅S-tMpFE_cyZZHY +$Bt٘E\36ljUK n{þ ϷxbkP-h/mP'J9Eȅ: ཥ|W#>Q\g  EcQ:fnO7*D/.JtfXV'FT;aDף,ӂTBŸ)Pf4H 5JR~eu-wtk,)E{fuhX Uk'.dW>!t4.(x&:V1V:jvJoVuSmްv5%m:;eBk+5OTFeץLI{j%Ij[ǝG=GBfYjd șxA~7*Z}P9]Ϳ-?+M~( \VO16i^14wm +zBڷ |(k7l=5..]y@"6!q=fyՃk4P'Mwlj~ܵA>}swNSM +:LP.Blcy 㽯*nÍʟ +`Р+wADzoҜo'8ln:P+@&g H+8Py/-(Gf9<,ߍs(AXf-IaԪB#IGq-gF@4`n^юΡW Ɖl'X639>pPw .F+삿#j鮽4f@ʷ{<>T$BeaLPP='V"=\ +vC?iT `ddw3-kzX?r(#Upj!J(^I'DFBi9*@uuHd!@(r۩%6GHႤ2Wk<7Y(;k`B]b^CcJ %=ˠ|P{T~Qv +ju80"7O%M__ƍ8 5ƎMvTD@ȑ0;72W/x D1!~Gұߧ*yℲ ʛ0>JԮ1Zbjr ?ژ.((-dn bIʨ3` gcq(]?$n >!@BWuf e% ׊W \9>Kᝳ2kz<'ZЄ^{,(,99!z4l|'D^/Lo~|I]r[2vr>o^| p gD>.Q۵!~ XU>޻c,ۯt8gm8s(:H*Nn +dHdoI;igAbT=cv,ىGWyl5uEGH{*Gk6|j$ `A_ZОτSnu|.m(xȯ?eJ&PhjDZP]sOr:Pv\VWF&HЖWǔIky$z,yr IsX#aʰ14"𼱽}|7}Uu~I8E#eSjLP1DJ†:Hy$tM lF4}lp/=,AsctyHϢIeuM05 .u+ GJQl|mF HA>ؿ~̔A%fS)r*h玵!<->" {s:u?dj?- X{/5NPpƬ޺=[%4ޏ+"ߕVN:Jelm +HP Uu=a/ʕԸEkTۄ$d\Vyj q:%<*]lˬ]_|Z,r jL67  [pהdQ&rtXQ9yjDjp/vKO;=ޯ넕W}ܟ>D֢-\:$KOuKOQ6ҊE%OPFv6)mwo~E4G|--:ۈ zegNP$ e 1~Ae|YɆی2n͆ X< +gL&VN-]L|>@"ͽ wung]7/^OkAK'c%akuˆJl!P66p 5D]}d:'&~d qH,SyVunjPnq4bx_8v~p|cG~T;mtP%\Bi‰RFaTHEAxvف6m%,i/̄?QKO}ay{߄y-#%_+1AigϹXfoL0 ߓt' <5tߘM[)) `h-x + [0:ZQ]/ EDC{h15T +pM`w(e# T c,4;w¥-x^{#L}<*H>ڰC5$Z}ـ=Αzc }8"Bj+L j%*Y̋FvSnT.֍aؐ>ccsԳJyWj=Lj[uvEjRgm^?)OucIhp.3]_mgn= +^f<(l HqEr|Ewhcn; <_grtVӛ5woЎ ʯ6y8ݼM1퀄/iK"{ ?jNؽts|XWi0QGt+jFMLș`_y;*` śۀn016IcR[*qqNtO+dLN&nj }ʭI]?{;Zx_UB}XEeQ* $/[0]b 荛 "|s8 QStCM]M$6 aۑs릐p&}7m|dޱRw$p>5/hM4^c a7_ 0GWumOpޝԖ*=]9MT.k^=%؀zwvڏh"H9"3G3N n:Vl`WS"uF؉{aJ}cY֋`좬'Z "jDҮk3A<@'@<w32a,T80>6ˠ>VRWKy#وa3'IQIiAH + vٴ,v ^bn-{sCn O*AG 7=af {wMVY?tԓ}|Lb}m}>$(@p> ;A\3 +^7-^\65NGD<[J*,s¼w9ʀ!2k|nVd&-B{‰~CށCIG*H.82^U,&ztpFh!٨}(]@ޫç7bN d_>pW}xiT{5{ P&Z@ګ# fw AFM`k,4Ȁku;d:(a6/hb\ J]{dABCvG+[^UӿR~4 @%U6R`5g + B9OǺP*c[ ˉb>s$;9Q0[o-ML(JD.2XFS M y]l0~Wͧ&SЙEqHWCS=)5>2׼U_u YZҪfS?[Z[=fEL/i?}GvѯΑ̋w6^Lvvڇbq'qX @GjnaS{<0'pЩݪ?pKOS~gӬNTNVPNx>hvlX1pwVg7Zg:Yu$a+!Xg\B"9_.}g==.O'I]"QJR(XNr ]gql^ }@Ƴ9Rw6&!r^] +]`]<{ y:~Z=:co9/ FwKwPGܭ$I?E* ] &d ~epB;zR6;g>;]ֺ[d'Jzh~^w릟۴w zQ@W[D;X*5'X9i"nʠQj/ ǓGnAڰMS29j4⌣5u^+_ݕl(:.`,o}},ʻ!ݸX} {`w+1C`6Ǐxn1g+FJjkN为XjA#̒Ok|ʴr2eб[Ң ũ ˠ\g`~.N"+O6Gibnh%OԮHQGP舝ﳡ:ZU%ul?4⬃f=Np +Mo1^bXU\o;zaݘ,'9Ϯl k ,)!6C^uz0XڍAYv N(Ş0VC{x 065q2=X.uNBIkh@Ԝ@MCzVi':^=`PI%UX@1SyRvW7ōܰ,hQӸB |Dt^ QY"] c0C;v M'-QVSbfnYԷe2;RUTo-Jv8kh]5 hI hta?^%xs}^T~Hdb:6˽] 8ZX$j>1╢VH;&aŵb'!fA[چHÆ"Ű'_;Cdkc3{EϼlTN X {9OϵyP)Sql`cc +bH#K:f00 T[Ej-9_C_''?_XȃKBo \{yxloQNʌ a<\ e9:D\w~ Yi:*Zwvߢx] ]*Mmh??V@'`JA*BBWFWrxTE{—>!gg j]XD##EWr +J:{l=4Ѷ94b}C}i( KޝsTLH)flD;'lcޜfӞ-(=J|^Ӻׄ"?d>h,% +nZg )VU*FBE:=~ٽgι<'|g;9ngk,cL%,7R3@`P{D9}mEBUb7t]0XC k̮#8bR]y"CI?Ɯ +,;s{ +n8O#ΕAK|6F'l}j܏eZ4_c"MNnبݡŽ.]pky6Z bҷWҚU|7ʐ4scNlgKr`Ye`Nrw@([kΏJ4+8-χpf 6Zfi#FBG%bd1g75L(נ3 }8F`$܏?N*81?o^%BjcA>9 WȋkEV1(I8]#vQ!%#V֧CvT_؂>yzհZE*!HOOeYq]Gw@)bJ^o٫ + +L f P8*B +r֮gR7u0*~"g4i@:dӌBzu= Ɋ_(B;娧ЛuCqf) %--@q (k(IL~wR8νDU) ULI{t4N-ULe搫xӣ4rDgojWl.Phv'^)dTRXk+gWTP`fq|wyȳo#x$w)4t6u3u#o(ْZsܱ`,M1܏\ ) 2%>`VVf{0# О-{O2YL#|keF;j8]B: +,w8L9[T"N?wq&YU8v$/Mŕ܍U{lRxJ ul@$tPg/c/O:'bt}T? H?"lÎzݔsC0R㣜B;vA5SغbUBtE^wЉ9\Pd/s*iʼn)ASQK7iV&gq2c:,(Z1oІRU4X޲rTW7^¡NlIs3A]p X>Ne2\康˼a4&DƹE d> kq +'2z8D̄{K&FYޞ2k NV;4| +=Ts  +,k.KK^9/֧-ʹdnU_h=&_Z!6 uϗ 7QhжvT^ mcJ6!ݰơ3w$]/ߞ PXUA39652b SeB +x͚|FJL8JrZF4O}aC=Ob `b?X&Ixoď飪*XuT&ێ*fJIqrμv6h6Wa; +**G c ]fV#=@yhʥwh!O,Z| #H[҉(D+}CrIIpNސ8w)aDl>{zpg6V粻Wb_P@Ac"]}Gu\OtO߽zn~I?hbOŃ22֍ɷ[{ v"?`@NYI<_œC}KKz0G@cA.i +}R~14UZSA IЈv +qCT8^@l-1~SOJԨʈC+.QL|lD:^-Wm=TgDXYClz,X({94:+ kAw>WUd+j0-6Ng߄| &! H1lzh{Uwl楔wHc9B8cMh F&^m .&A`lv56ۧިd9ﳋXoy;ʸuf{#6Uщ6֡tS6ni\SQn(j߻h%6'aHO(ү%DC w,%4I)4"L~C9Af U]O=tTqZPjJab ۗkd],nwZGەuH*~fFAh(V*iF+ߦ~V|7},8.vLǵ Oblݼ4ΣKrY)@1ӊALIh8_pPPȲktA+3bY#Ր5HEoiZ#҅F;$ ױ4cՂd!GX-2T1ɇ* ~>fvG8DJ3ps9{ZWmhfn3zK}m+6|&$n]ݺa%ʬ{̬3UN2"9S4ʖq93DJd{Ft3.i2J]ЙYb(K`y!΍Nϛ/(6x9lEUGN4 +/n<5\H&#Aw Zg:_Ђ#{:}h[8fvJs'2FK/mc7n3pj!nlcWd_ ͿP6Rt[qr}55i2 X_\b-ǤkՃDDTݸY@SlM9Ę S|9֓ o*akrXOSŜrhQ1vY'X_+LH_ +wqH>$5 W2;q ?vGA0vHR#3~S~z#UZDmMfHVVt( lr1vnvܐP^^3oTYQ + QT_=U{N٫R+A>.iY{{EπzL!V)葛 Cj|p +xũ=xiM+x6/ DArJ t4HSB'-i'PW6=QC M^O[ (?q]:,DC7ks2#MͲsmyBMHyYm7%azdx>W3[4x +k`usl21ș0" 0nWlӊ9@Y^1 WUf@ۤd)(-=.2 rJGH=%50eo𑦼WKUYX wbt,'DhgfgBާE`s-QiJ= g`>@!=k]k/EkSt7!C4|$҃X2.oJ(j m@rv9dM[M؅ ю7Eb/TEӒn,lK"g8ur e[IS@t9gS%\,rQY[5c4cǼ64NRmP&`Ldh +6G ǩןC=I6TBߵ5ړtnPkc9OF+Ցy0JdE !m@ lv"T &N*׶3ql R< 2!XBo6/ʃA^XzĕDs$t'])rWP +C, aJVkצm?^98 $׈6[t- tM2};6t*dOm:]"E$2Ɨ^-'T K~/AjGq,xv%!]'~/Zlʢh_M7W>YpE.'1z8VLLãSgվd">'w1ȔskCy:e{"[ @894n>Ao(%i% 9W@|^?{|_HY?+ +R]Υ@8l/2HsƂ|TE1Z>CI۶4J2Nv&Dp$Ҿr!yv.NFQKy .d`kv9ͤ@?cS|cAkEPf?v5Oy'BxP%hOԈKAb Nu+rV8GB@mR~k6ifav}jg5~t{ [>P9D_`qĺI@#/Wa+!/{ + +/kwiD](R]%]P!lҤP"f3= +9~DyV=N =oSZPȔQ}QH҇()]{@LKE9 8=N;fGw}`44=mvPL?:W ebϋVA4]N{ȼ+v3jD\ wU_ +be;ŨCe4QѼ%IKW/_'3 LmGX5MsG<4퍒6\]4Zw|  S\ (yjܝ\'nžV4,'iۥ'βBj%Hڀ/HE,)$JKƎ%{T\l(NIxEEjfo^x=\ϑMԥFQ^F#pDZu#y3Q8 *v OYu;qNXHڔ)UzX; 5{q#gZf-:/ xJN*Y7yos$%ڱS}3H_з!GcU5H׎=0xZZ%wwӓz<]k.gJEԫY/(_x߱!޷ +۲x8iC͂4Y6PrޡUTL UR !z+s(PM5@<$$LF +5SH|E) OVm&>Qy%w-ǖ=v5tqԴ]LcgDQ>1fv2v<Bk.XCu|R\3m^anR hZ}*a݄`A%WYp1=tbSCAi!dvIvogEWj3r.*p")a߰QkmU|e8׉R19?jGW^wb!Ny}ܖݲAF8փ(cq6h:anzx'='$z 2WL4dLۙȳ2ltd\n9P}D\3PwZ U}ܷ^uAT#&Ϫls(wI2/=+"!TCD(]sd zL O։AU [ 5XߣlGNmw gL5*sD?ar65@ *cy,ۜ0?pe]7d*釻*b +j` +Zi`q!X&EPX7E?@=`q.c +~c <TaM_`ccފ86|,- +6/c Oh4"b>1$J ) 'jQB$L8nѼ8[[@Efe"-G9&%+ӣ]ѩHVXqQPu&!1Jw[ ~L0|3.RSs[GrRуL'~eUy z݅>䝃 }>G=-;"ʹB|nVh@ƺ +A 7Ajyv$Wl,Z%vҠDP!tD!i؃j$i\<zxKcu%@ lV ρ>B u}8L&X|ʷpFÕHN%/'_@24f%/xՏd-bll\5s'ÅP;zhp5ȃmW #l\Byi Q'oY9-_ACc5dS[{@g5WeeIBޛ||<["L}Bdwb{- X<"Ask GT~'9'S2X~P#}HJ>ʍFwILjhrdLOMz"{TAX$BеЂB{ k@*sLNsv17Gw=л#s,k=9|͚IǕf/g'{L.= 6$\Ɣnd#bmO%aiBI<$'?G[細ut]`E;]afc3:Y幐]"Rh?vV qm4nos tv 5#m bhdh1}z bOaAT +Z3?$րUϝjnzYמE6NzuLX$jLT3tz= %Z3h.ə2{~?)zNR!&6ӉQ;{[ ;u4e-ξ<5I +2C&$Kۘ 50(etc^/*bDD4R"=4*_GׇE_Ku'9,PM:giW@1JgGAUt$,V{uyO9G=:m +|do۬;:u#<<1=nҕ +#GArҫU_/>w +dYR5i}mbJc>Ue ݺ)MiF;/Q lGěd-hAGY "J}BX-/!6챢#I$"_$wb!sAM!KtRb*akZ(bK#z +#.$χC1#x@O|H2]Hdj.]ٸE5 c#{65 2Qy@t;O-VNvPdjbĉf=ҭJ4i81$T(ҳ Ҭɣ"60k9"^UQ4~"uk'9kJK RcG N1k32z AH|F}X]Ar6B3MMvrt݉T}zBM9.D h&ʁɘff {P BE? ;ɑoAKyD2Jb肈˄#d'Jzt4g,O GZi5ΚXXJ)oLE}a |k †X uBhq68 Hl-yO#ՓF \ OoJfwiO@T/q FI{>JٙKr둣=3:V=?ǢE%at߬*8;?M>Ol/(c* ytcO_lfQګْFiNJI AR&ju x(x7VԴ+OVvc +RuR5^ᐇgj?*kZv8ҾȭQ˺4`I6ϗݳČi=_WhD%JstP<uAteD)Cm"%7Gzmbn<=f>ط/ =4ky\GL$?u u1gn9Р5PI ;dҮ~RBkɣA X HC%D&G0 T>rgaAQk -s,wոbfז+-@6p4FA@mg(1?G?ۍEKC*@ ¢J@8W̡ڷwLXwM(lBoes"bO!Tj@O! +t(:a)c0d<8|B.@nU`?U,` :q|W0WiQzkj\׏X^,B&9 .P7#%:[Bi=DɏЖA3в3BBŋeB-j-.Zp/CavDE +jeG%U$F$%~X: 1C#!,T4DGFhg¾^5E#ՏPfIXDqF-8=8H~@WNG9dC42deQc6BC(]ul?Z6@{ B;b _>^D0 `h?ǽ e|aOO uT@Ӟ{ Oi 1}XՆX)KNdum ǜuWgt>(\1ZN]V0fM^u}Q +ՏCO2k"!αQ-0cٔFv\FoH)V[Da^+Ԅ(9\47a¦6t$!RR$<{^3GK% `w&hE4phetjHm<r_#j^«b"0/ GXZMD)EPSip c9wC΅#ӾU9O:qh_~Ek(ܩj?>F/ܿH]wXr2SнGllJ>fНz.Tr-O +gM"^$N--r di$H{+dsZx  zmq8mtPsX'.vDO7fU)Orӂpd'≣?Kto{ +Cu\1s9&s Fy i)^Gϒ$i""kjQ%Y; LK;#9p +k䘠Jp +G{M|INT#sC̲rl_ "AڏisT#2oɞ^ԹTA05*E;۹USa Y^7\HgTddd_ -9hBӇaMJ^WPM룧>]q/dR" Zxe?奱&zPBjjݪ]6j8)iL$5Lc1K(OB/#<Ж!S"-ë3l!f Gw3?G3Op@"8Æ2әs84U%%9NbU9)\-+_fL /u3;I kO_qn9q k#kj`l  +BBjTm!;h(D}֖Gۺ\`1I5;`oȓj왰FIK4MŠȣ [4fS)Zluc˥IoˌZoncv4Fc1߯KWw8\jSR>X4I +`9fz.q/۫+AY5zPC$e15K'xPÌXJ5I +'"ح]Q^/@Ɛx܎*@`9iSl?f)c?/%Ts~Rl-׍,h0 :(^79:SccGwLJTS'罭1ёEI%*E3P{nwPǮz$ֻZSzƏ7(́~e ``@vI7y6Fkt ڻq#yGPR)2e9#ű{_NbxSL帅 ,-4Or -x0r\g#x\VL(#hН |_n3IQym +Zhk +) H_Y/;*.vR>:WҎSuy͡sF ݂m …0',@\ZLfnZX pDq Ju ncqAH2g'},X<6dj'fd=Ȫ](m} >V?BJJK|:ڠ/$G"'"@96iwg>HT1s:օu܏_6"0*>հxp4n1 @>'|-BXc6U6p/xSRn5/""ƹyD88 +2x?wC?;W FI";ɠ ܹzV=Aj\ s(]i1ȵ<=*oUd5SQ]X<ur?"ND5שM, ,]}AjՊUD]lY2uU1Gd \ 7DW 0!2"I|jD;ADUZ oBʵ}q5إU(H)ك$ü!:^m1dhx}ZґXþ^` ʥ$',!zP5Ln{Okocb8ƠO7DrҖWPng Bf/B=!=#12}5C;*j狏)П)qQ9C[Y}Fs.N_hGIa^[7D?u|W W| ԜBҁ  +,0cTQG: d=͡_ZjjBLAHqA>$ ++4ۛ.w)$845MB3@FYXaZ%c1U; Y7^U6F|3~0Ҏ̟?rE9fWy BH,Y1H$_A{y#y{L \GKf:ɩH*}Tmꟽ oPユ+\!>hj{i#!tu~cstJMHB h%p?j7 +׶-awB7uZ[9EhɶdѶfAdR|QebH7B+?;:4sh S?!XrTv.NCGV"ZEaڣ:\ i7Wi!RʏɟgfԬ"qMj"uX j&:$.nxYOOSCTBGp,3ğ}T e*Nj'z@w~3SiYiLi3[|h-=l1&uE,km@>i` {(R(ьRRhO:'d\*"nGù}&Js J^xn]5Xitӡg$g֒w(B*P6A"ߍJOVeHV֯ 7 =L v8Qidߘ23TD4 ݦ\X}AH(!2Dej{U;=^P[e56ٜ,M n$OX PO 4%73C q틮> ;t%Qhߝ_GC +DDAbҮנm=?A;lc])H OŶb47ܮEQʑF Fb*і+,pO %ʘ( 99LRL"ssR R^]|4N*U +tI Gm)Nm#- ^{c|*icյvBJaC0OS;Qѱٌ9 AT=F܏᷂kS(vɏ)`ɱeѨ1G3}BU-A !vVcS(WX~C@uf^aV;ISp Mi(">drti;a|uڔ#OW" vs 7Nۄٴ=/16U<$]2j>$^?/*XG=~꒮"U5|xΎ9}oSs +ȌE2$,㽺VO_(&Y2yS*|\B\-V.^Cf Py`%=iէ(*W3[ [#~QdP>2U}O7'/T>@pfJWwV>W q f{q;f{0^DwG=EݶHl 7)iCYMert+u 3Z(\FˉZ*4rq[;$38G[4ISSnn~_lm |(vxKn|gE 㮢C +o|X凕I#F~;%C l+&|%8flA<r$<:f6aێȲXN>MLu1:E:Q>QgMkS[. +"b^\MPSAigT΄"t9K:U1#Uf=-7]nWw v8>Nh4s7% x5Hlݜtd"BQyI7$P?we3.l(ĩ͞:'JβѻtG*PngZ|eD.yn Y|'\u* U3PGhh͝bY.\;EQb~$ÃjqL?^&V}N(x*fzZ(5lXöAJAP djXPʮ"zВ3GcS;/ c6Hc7(^LoZ^ڞ\[Oxωgpq2,jE[ģ% =[ ڇ48u'E?۝ym)A.Ke% {GG~wTCR>hطd@/mI79qk4l-\(Mi/|CYYKYzM{kyDXZI֮,-Kig^ Tf V) !BiZԈ$s#Ir" 􄌻&qt|!Lmp̑ޏ!:=p͗m˂jYmV IQӂ5V +6̶QƯW NO "elO 8qG=ORvBhAd0M9+ #[ XiQi" ZH}gc2y.(qw}LlU!t{ՁP$]$ 05Xaض,u28˷{ +;FD$B1q-2@lk +s&W+jTf#8`j2 *&!!-D%S 2",wZ%V +>Uf*E~~9i^ H6D;}mAW(,Xo5-JW :ۖ5TId1If ]e/2ZC#}@laˉ#(jEd(cRN~O3cYo2mt{^n.c~ozAh|bs* !'|@JVkoh g:e/1%p6$nC,CWw*J>H6Uc=% [i@'G+@Nk⺜;D>s,\<uEĚ`N66{T!Oh&MqIl]ސwظ*UOc˘MsH*_]?~"<,+E +c4DRdc%ZPT4YpOHiQj?!~i)GyGvOhj <kR)[X2mGt!SAduQs{`:ߡ)? :%"oԒkymBƮNrXkġkTc \#Ll}@l6\W"wK62Β,+q׆ +l@"WQuy^=mjLzNZM=O:Eۿ1>5nŰ= ڵfǯ|qNpVͻ.RW}wrYjq!7:Cc^4-OhSHp%o5\^> nrفM%ܯ=@EL~GT~/Pwz+.A׎~.d ɤ#}7ۆĚG'Fx(L .#و!(Am$ r_|=$[j< DݪU eEanpc~]rdXusp^rXީxǼթ|6'mߥ3݋ڼ{O粺zg92Y4PIӦz`[dbmz87 N=Q754Volpoگ|#v 7-ڒx6q?L1p`qGRױ[ C_~Q+c"򏕬>(+BZ[U iks;D1H? +Ti3fH!'H9ziYM5heBD׭~~VDo%%ѺF(}ܼ׽GdCxǣHJs:pFyAB?F_j-Yk'r`rAzz3nǵj zVkLA~4$hF#;tOYzAh:< !{2= W 5!Go};zO->vhJv"0ȗ9xDEH6aʏH^fAfyQׯoys/[gILwc,c}?OyvL럦YcxLy_s&{TEIo3_&m4Es|T f&ɼBl8|&3u`IF?nR/=7=ioY?U8R0fy(H;I<5A,I<^mwO|Rs$tϽ`#1O2{[ 굖<.Kk-c^5y>qK zOCaјl^?c5 㭏߲!'˙SO圣͛dX+X{_?@BHsf 򻾊o +rFD|xz`;6s/) }&igrPdgAg:0I>~ 8QL#{ɡd^\puϒ,{bnmX@%^k4D!NL/żn^"hd+ +dcA]zB"G7 ҼAp8~Iv]7ek0ZAb~I$h h7A  `BxFh#Gs ug%KpN#~BKdF6 ++rmG3AHy~:w4 ȴ|*U$OVؓlZV{Kn9&~jXKZސğO1D gX\uC+  btP4DWfk0RcLGԛ>' +W\M{~%Ok"z|dKv"3q'\.$>#>aɊD akE'?{ uPNs:/pǃf/<[uu(h]$-qo,X$ {dTk6Ƣ㡊c.! ꆌ_K-PBk= ֈ#V ;fБhb;4pkظ`-7/k*7ԧϙm9 zw%߃q\j$VzXmŢ.Xj+Ξ5ސnۧwelfF%ylN4j ma?q.{Sե\zw&' nJzٝTrkVKmCI2XD/<|v:GC_]Q|J.(ŏy$[E^w@$Ǖ1 N^"k~'!MP[.B*όx7 C#JMy`D+/=́OO#Ƒ>$iAKP9WkP0wPR-'ce&?>[j\ 3oi%43dų`9>#fV5Z!9׭h=Ӳ?^ze=(]''7am)IgxaIYf< [G`Z3~=5[744J9Vn+Yg…K1uq ҂€yy;MbP~S/DAoakBӀwv;{(">q,[9´Z4c!b*nEڪ!JM <5:4{3 ݺ"أ!pŌG4; i֤dHkoa'yo=7 Hi^ 3yJV^*D=YEsm%ڥi_(wհUƶ"+vr|ixʟ;ZkyK!q@Ōgw<ޭg}` "SyW:\;bTV#P'D Y3T^b$%-ሹp^qޒ 6W R޺nJ3 n'0 +ۇI *Y9];!f 8A8; `,Eg*oDUDrVC,:k.12gxu +#=)B1^r+w6@4Lټ~{C^AS=Zr}"p"fcZ*K9y&1w=)gdFdrTG{f-Á`#ۄkڎ[@@d1Y呿+c"0ϭzo!Ʈ%cM"ՏEq=X,1lF]]܆ޖI,eK\|?eGT BL@Rnr_SbDz":D}MQRIdh{^];]fL ttgq70~=;_ԋkr]І2H|7ݩ +M`vn.!О:*?mkͲ,iKwM(iMefܛ ZH5Q*Z?ydW-*9k?bDAeLz^ +ΐk&^ B5 2CȖ}3A"װQ"|Ckp9Hl=(<rplT5HvuM^i@mb0D?7vp8xPbڅiÆMY&=pOހ&h)C-N:HD3+YaxvJn7\^!=rymNY3 Kiqg1*CL~4(j?R"Ƅ'3xm `*ZOl~{3? ټP4Cg8 S>U AKkc5>2q3\?]Goy1HLjQz@6d% zb/3L+zdu>Tz.p.7oS) SبݽY>}&_@=ü(;!|#{s ٪&-.qD&iy0Ӫ6ӸTKsC +3l{ K U2/#Eټg~3N?SRvsz0n5~& nyn+ķ(iMŻJ,=TbԏRԊ9~w6Č؃Dkde"?{n6kg$/L?B1=; iv䍩g0&:u){~tak>X'cq +bV/o\{?&0# qL<dh핒i$'y=PA;`PRUFY5c%Yet!Nņum/zV+j~ f!z 䐗=ۼr,0t%6om *+|_s 2AD&{:p Ǹ1OhxT unmi =s蒮"vt wzA (> +-?Tg~{u8JsY=TdIt}dbLr w\`M;6>OyoQR3b?\]7; tc rSNM2!ڰ:dzxRb`T󦺚cڇ7Ⱦ[> hϵr* +pW033:O"hO^Bm^3OhAampu7HyF}66rLLH?M 2%jL\!pXw(DfDd_dH +*˾0lX{5#c ؈u!Gf#Ctf=ֱrPnX-Ǽ:]oO0⾧5hW6ЕhjP$h6=Ű9G08nz5EږD- DZh$D@ZE);pRP! <ݘ~Z O Ҷv1LL"tw94?r=L Sրo 8f^q%1LhoΏTjW"TY-dz %(e\twR$"ht@îKEG߄k^>T}áqXg/(g9OQDNΓi~3-q{婪L zk{bNMqkՑE3ܫ gVYHhff6},@d6yrA݋*ɕ ^ i3h*,ݵVzrT0`4W}KxHŒ_]s\]]ĉƔ6iQRm@\q(2S9͏׀py\_Fs$uaBRMpi ND b^?&YFw&Ny_)wq{f$kw)G䖘M䶀BQź'ƤO7lLe4Qv^#IHf~l] IQttjKWyz$]7CM"Wzrq/C>W^8Fby5{^qɻj=F.0,)g̵/I"@?zL +R!ͯzZ]/iEsR běP W3ST5@&P[i׼RC?>Z+T3L=eN!kѫZ +Vd^;,Ѐv5C`WK-{ =|Ed{h{GLBL&Z֧iF4}RAngYN'iŠPTMl,S'{8Wv;%<9 $\}p⭜}*%ʹHklƳ-=ŊrTݡAl(۶>/4%s|So_\}Ar\BݫY@$p瘺~&捭A&ѼTJ^nDo:!Ρ s QVoy~0L+sN:7F|亢@rBB<5۽6&D{=h|ODR̀(eϽ +X)cUE`{ڸokXŅ2JWIFPm8){^^k0;4SEny;@v :L#if{:+ Nc^3Qd^XyŗkG%ZKL;H);1p{}pl쥐Ɉmr}ƀ FG,G1 @ +gL?dӏ)(b>>!߽ !ɼ{5^);2vOq=>H~ٟ;kRAw8P:-nUB;%|eB̛s8c&yعAP 28q#$McJU`ma(JIg_uHpt/Sb +1$Cl2L: +Y[M<5_9ܮ=d&Z_m HY27֕A oGfeR/%#=hMܿ6qRqd1Dg\l~ +g>*"2}PC8 v/͝3?SDyM1+nb@UU8( {:|!.:2.54YF)C֌Y> #lwpN B綉V< rΧ%GLVu*f-_˩J4Y6EO27s8M+Qeu݄ot @~AoqalV Kil%9OƢHхrTћkO4Cyd[/s'zB{FD׮"p!BbHi1&bI@E: Df(>r4uσck7- +)ڻoqnԼ4!D6U U_T}.Uܟ}:QEd%JN$M ԤXD9/g>!ߓi1 +g3Rb&%̤C_',hYLߥaޣ-fqlCI83^q}OP2> %|{nuM}qʙFYTԎ0W/b-fdh$k.޳i"|xtH}/XId,/mjJ"/1&lgM`VwF< +#XF,]_dپHlQ"㨾Ra3fM<ҿ%8_̜mxl)ڔ/}$P73nwnK.=_rmX"f_ʢuLVBAo㯆$6YXH~B4f҈2Bp6T\i= IQ^*&[>N&cP]!7c1<*'<;"ss'2Qjj "nU"rQb"RVg,/};i8T#NLD uG9>stream +U,0D|Dhh6edB,W^phBsaz|m/s3eFnH=]p_٢GNfa +: (CKll]acpv՜Dй<x(̻8徝COpۍ>/.D$gT>YCqƯL(7>TV2@9JJ-4_I6l(1)jVP>(y#ycs#1 +Dˆ?S/5Ņu>۝ykbtQKM5ȡE׮S8=w$Z,!2DqI:Qaiy D42. "DNBo;8__3lg&3 +;2kV`σ'Ԛ/O x0j?PNYqi$%q=_ĘB9^.3HJb]#YȊmQ\ R:JS߰(a\ ܱ:ؤ?1]+O"j$!AwO?v6i0EW9e8E@dn] U]HK_ #4fQ+f(|S٨Y(i9Kz3/?^_ày:X!i>ŋc{5E8Ms}K떜mO6xkuZbpj57nuszԼ]}O^ ;"^@KUUaEs/S9>V%BG5ʬDƴWz(wbۧ$a>cLȡԙ>D[L3ne%RΚe&".A&-W 2τ,B1FT$Y$<8ݤl{:)\x5^N>mj'[B6qQp̨rD>EV^I*/\Jxy;%2¶YU'w[PP[!=fS6+|^ZT)ZmFMOe(%FJ:EZ*Tdœu-TtDFUTkjvP@YcStwДdNC|msPٻ X͐㴩P>CpH)сCy_K;(m*%glTbkiT =Ar1IKub\O=NQz< qBr뼲iGF&&l(+7΂1QWf + aJ~YWc:LQy"pcaH3)&=9o> +9RD,iB$6\OA{?!MWxXӖIM8@9oa_Cae(X'Ԃ)1xiz4=7 %?5|kTtxhzl#3>x $!K#˽EnlyݓלIIއN1}񋣄;MMd#1js {sDfF ЬtJU1Z.i>^zWc[ەC*ejR3 {-Dz0f+>M]wI\;!p/C:d +eEAP dj0Xʑ,6 r7yʹ$ +^=& ZtZlHO/}Bn8jg)Mf2+ZIz !$g'XL"aΛeUSsI 13W w +#^q"|=:Xbjj[VBLJ4"GBw-0'ѯ3Jf4B7GIhZR?.; `9(o f:+A|J%ɈΓV&>* gG&<h + qho?r.SW0\4,Z" %-܈b3;&a>nO/wbb)63q<շ=k|&P6)CAmt` + ge ;2P{-"*bJb'.5hScCKEuT ~XP)Z`3IUAUݬ)UDdʤ# +4\4!L.P9=6 lӝe2rrG%YDgT_ yͿRUuR)4ޜ1Sn5(QZ:f~O +bs2~1Cۍ?-rhϩocyn5sn|#LG'|"r>;A Wn ծlԧ`Lޙ{{#\!ȫ##|!Wk^/+q[kѷ#3- \ԛ1v2/ ~w a|oO l5=Ax1><ж0,gy2`*mRm>'97jPDvD1X +dAN]ʸBιhkZ$eOJu PXe:c@JC 1t!&ٓC \hhgKD 1ñI}?A݅ (0k'yT䌻_CA[()oS6s ̳@37E1ύ<3} WtQ#{eRaFP5@<Rsq?վZ;A|4}0Q_͌%CQ\nYD7y{О,\?vT."3jFAVYȡ͚G NnW1vjh?yUWϩ)33s(^AP +|9*L>Fg>*YwfwG_QGNyorƙ S KXH(ܷ~Au| 9Ҽyok~ 2~z\H38@pr$L.ҙ5#qJc <@ OA3qaҥ17G6&;l$ֹF؜;g;&8<*)o(qгE)W:%Dsz=4Tb Qכ zTM !`y 6=gV살\6{ذNlYApUb;`U0 {cz|JT> ~k|/d2b[,ˁ5:wY3--xv~ d-E.h"R b&g:~Ku?)_mă<(0o76/aץ1> 12y0)C"R s6u3= +/hPҌq/$ZQӽ7}}*;kQl46|0 +%G{!dj)7iϨaH~hVC63=,(T7>QO35T#Gkgh%zǙ 1DҀ% ̴~Pq'[T^ +@4msg+QfڻhsW 4:+&(8|zLLw6@6>|K]@<3+o^> pV~<]M@Rxfo|Vc_QX6J XC'5ff/ GIhV`2# +d "8[=g,sLQK@J`bY<QUȦCešeH"4ϼ,'9/ܶH6XJ3{^,a݄!]6ッ{*FH\fxolBa/y48?ˎ^߂9 3eOޕY3h]Pq2Ti +dfd\L\60y?'.'<[u06>Z!Zp&vCꗹ-#~&ۊ·yboh<e Ys %LF\)(͏j33-p)X +-vV1/ȼBЌO)(Kۈ=)HȔ!v\>@Ֆ'5LF8u6HGЀ*@9io}fWq ADt W3yL:9?sG;9f~h?{T_4ŀxgV~%~{2SyL~K:2l#{O ""l;ˋHp +7?@# $@^&/&U(({0ˡdP3/Qb8xo+ݾ=^ix@) -%#{W! o&{-P uU: 9!JF^^(>LMˢL +>: mՆ @Mb!rB癹ɡޢ692wg%8t}8z%j$,IċD- XKFuĝ'Bz\W |rΆPL6{򟆄_x +?~:Q DǺ ߌCL1DթjC^g (`o4]}$m- PyV6.1"5Do#1L!!qf$6E4Z2 a&2E ηSxnL^1\6du@1dfrI ٠@t;?j n&x^yYyɿ#8Z x_cvlJFR܎UPmOfVR*2G"H$KzÄ֒ bq'p.As{ 2VnnaZL!\NQ.MA./N@Id"WХ N@(ə$A(Cݪuk̉Ƒ6s"6K#+b5 RЂ r k0 qAu}v<;18n20g6٫}u 3ȼ->}dAt2̣Aoiw5ϥ<;t:=0p>H3f'Zxc`*`y8R_pbxV(#ӄ?Df\}X@$]؞_UYV;,0[m0D=ψ@f~Rzɻ@3?^êDZ*KwxtG3M|8n16䯲,ޟ;&D{Q8kw[~H5XdKGtA>kPߕHVa#$ Zi$<ćYJ=Q=%Z 4;mB &T}ʒq' i Jd3?#VY/o="CZd6Y7سAF+S )"ǘ/cmn·?x֨jmw M+nLHڎmA;څSh^ͳ?r;hc2\O~8m]bY +:&** Ƴ%*%7f4S>v3tL0jt*U 0ƛImWݜjC]yBE +{ DzR SDMܦܴ΋ge]<:PY^7yBf\Uǘ?d,O,reoC-*+yf7_>相 +@3윗iBżr^amS;|:a6s[c}h)֊ ;vTϨc_xZ +Z3B&gH&hAdťs- ze.I]XHdz&e~5 rZOٕ/W:(zwzr#QE5F5:a.AKR ݰ|a =?ݿ lr\5|.~1}/ۿwe]eZ{yuW8լĿKbg2zo7ύ? !.dr$o[qffӘ9揗ٯ&Z|v+no1n*_ENz p55^<~_M0jE4h?-]۔#;X?Njbc<I5kxϏY[F8 + 5?{>?[oPg2GK1/b)K틿(@]>Mkzo3d9'Y:!u~OXztѫ?!pY֕KM}&;`Xo~u[ 7 ?.x>Ww/1flo|sϞ[Dvʳoim~-O%jX#z8MdQz8l#WA\pX~Y!+v8 v >.׭Dp$(ComfBo?@ y>} g1U^w\Wa}_uSl~}T$(D?Aߊ~+k;w>LV͸~e~,t%^NO"Ctwէ/TmӋ +ViqozU_ E_^@?rI|l?oWo~d:D6-:I',ym'=?+= +/c:dM+hZTk-T-.;ɶ!)mr_ L=z24f#nPRFdxenv!2̦(ah xF|i e_V [.lJA"ua-eąԟ wXDą-Aq N\Xkm]ϴϴ}$ZC'{΂{CYx!BY@vLXxA\>ڮ>'\FSGckS(3dn Ͳ+PýkKMwPrHx~觸b+a8R\e-LܧBq*sn̎ޏ΋8|_zXcz;?X  l-)˴$3V2L;Gd)8*x=Q=ȯXI7_yяoݏ}V%+-=qLm SzA7H%Ap( vKO3uD=h'ۣ2y2#:h׍J(h$xm(;z 9MۿXB|,%Sc"X <ŷT=:A|ǠR9NQca:| !饢 j!V!_H)G'Vbn?13%餣pe#՛ev 9y)ߤX{ 2|]!p~!:%1\:a;Y^4 F T/zvR뼗ɩ{9ϧN^^-l&ӏ/ؠ6? JxTLq<V S R}˼RԓU:c]3"~yVb2ڣG2+#Ov{ Tvl|5-b>LKts:mQW;PGdl橐bB6Px:l{z b$[~ӠP-a~8IXq!w b_$oQ|{ި )P1MCߞZ&(|"dR_IK"EYNBy$ue>P.}KPԛHxnSR}~L"*|5t~()uݮɋl*miv߻Lb7c.>[ j^M2dnRX78U*̴(awTWYŬ80% Saf N;}X6ᚨǖ(>gG[TN5oеea.9I^6nSNqe@!P:_=ꪲy{hΨsmt4+u`^fN3bԙcakgxZv7ҼkUkvB;zx-xzx.tC]-wV8y=h;ʌL~y%R6,5q*;P7Ӆyj}ٺ7##jp%e *͆I#A{%?PYި_7>)nK5b׏CE GF6u;kq9wdZ% zɒ ُ%"lU+D'JƜB&<|eE%Tӱ 5٦ydBPlYf(V2ɦnIm$>ZK`s'ʟ] y8‹ʗzC|?1#ݯKl[ڵҤ7iPV ˱ycGll!Zb I?N|nr$u2O%?wvC p+6ʰ$~:GFҚ!+1D2=E#2sM 0b&hh-Ր ג[~A}1һ+%ggI$E/6H; m<]da/"̲ ܏7Iۍj&\xzk-fX̅?M]aLDbƎZeleBvs,9=l@̻40[Ƈ* ֌U߭u%uEVXAV-yl^B0./ř u?oj2~nh]ʃ4JST=Ǚk6]_Im !MOl/&IZGl.l:?9neS({ȟS(0f" d4)pT聿ҍa ~yQИ *2 C Up0v6JW aBcmds"^/+](0noCJϷ +\ḇ-^<\}*n^_ 5_MhS:.xΧA/5M 3wmm,2.J#`Xix!){OfB5GeBHnMn/r8߫P^)3w+!?|471CKz>vcYB4Hn湸1 :ofC.IR 2lo=Rw^H_FN}2ĽeQ-E&&S>O1rSwSxޝmBͷPF,6ULi a=Y~2X-P Ktqe|rah|k%42ua,b;T4GCf]Zsni4s¯nW;bт "dng\kъ8m3S>J9Єr/6nؒ.U_ט܌|Iv }0 ?s[Y!W7sm;i dŽ +c&wx/pB":} H7]+=q УZ20IxƨR0QZ +>': +<hRGJsSh=b 7<~ +b{YC+im.j +h[PVu;W-îudhA:-HyeN j Bף= c )v2!r"(%6!4RK8W@/ 3m͖|Ҷ>;i]-g"FpS+h&ayʷ0;z+u<7@wFhki@)QtiYrSV%SJNQyQٮõ7o)߮?~zXsк-U3hBs ݛOM*i]ܦ8YD'66>ֵ1q/|Q;z[R>j93DL@dĽMHs/!i^2xlXmI TmbR.N׫M1mH H<#)˾]WvʽxPsr5M]%e| +ePq'&w1KU0#JX*ýk(A} ۀ6Эu,;x)Ey#[yA> j +kseŰV@ + sQL 0f'PjX\j/ЃK}#^ ,4ytMV0]z+wDJ^Y5yP2zU*@'cC'E/dWC&ݙ%,L%ષl]vW +Ju{- % ,>B&S| Dz9BmNZ(E ra&$GAZTWA#H\_|kO1_|j#7E %~pC6+0ml-ufv<w$ʑ< +BݢB35D2oJTsUMPHYm̃: Y`V IÞm/6^M4!,U&Z9R'Oe7_L{| ^W3qdZdSh}7|.^R"1yr4T,6ͬŹo<evM h {L Ә:Sys Ϟ4=}\?nr63-'AɛetBtrs(azh;&ow{(yBk)CdAq=7ync%_ȭ˹gZ h2!ݵ óBV2byV*%l{[ROZ4i0GGNծ7+"hm.W ([2-B@Bt%ktH^=[eJ|,3ޔBT&aBvIaCflC4 4?k\ C1HcUP/IB{ 1@z>~y(Add5A Hw?Iq[['2k׭ִ[?tH# [XAPueRLr +\_wY%U}I8LzC\";ċR- b`r͵: (kƏj+,uq1 .p1'AHݴ +з9O]$;ot:)/J9G6=\ŦC7Ds-E[^i>񝙟 +lXc|<"Ss zű(g @L;+7iwxXBaeq9܃O ~>%3q).h7Dc q}Va?' {!Rx0; ?3 ܛ5.](w]o gkG4uJ]GB(.X^j"^t2AMUÙ\Ҳ˞b۟qǦcVj6(e`3'yΐ>g`(Q>JlSX5I2Αw;2=l7쭜 y$ ,euB .$ziZA)d(L.#'L>?gf᭺R]ʣ6CRVHUpRY7ChA;7uᴝOhq׈[d/?9q +]oaeC|OF +enIlCQ6H>T]}n4HSEB9y¯b`pcrxL)m4̤DŊ?QOxL RW.fCML/BjHk)POhi =_=JG%/Z+є/`WU }y o`)/Bf;BcvT~ͧ[&|EdRn682cۃ@l1ʕOl-٦ + *^$Y3P9嗴 ~k݉i9$+aq8됾>HhFQ|xa.̧ըȁnBZJM@Np=*rG[BAsP^8O5<DAoK8yg$J ymv*nU4H.1"VB51@9C^8B.'ɲZ}Z}}S >}iHVwWHQ̬JtZ5=KJD`F75s:yڳ N 2?l6DOK6^DZ{ Q2j)d$A"tkr,Dzf%0=^ِ$2Eh(_.kBiev"s_~PH!H@,g]bzT dГ"6K`XdèO}J{J[4ahX:I>Bv_z+DfP`$Ă"z\lۭl/ $ֲ ܤqcpH}YtQPʑy9{*~!nc}8И_( + ;N_ūkE9zթh> bD;|ꟅC/O=Qva}NuWo7H cڏJt|äDb.*|.p=%#_.],*nE>fLfPǖ=(m; O`Rs$;ҴШ$Da$ZkM5Ƹ(oO4H=ZSܱ(%tQtܧ?X2V +$qZpjcc7X:]rf6Lg'ꉹla JIdjcHV i&ӤT@ZDG i:?&n?Os>Ho323kn`kA9= 9|2Ϡq ,gl‚ꔃ ~p?")p3yBN!>^LrCO礣;~; ۈťb)DkgLsIU/j D *R^8tJ'Jb&r)ifBگM4j><y"z)2$02&Nϙ7Z(iUvų1,H]md0KslLDbt[Ы;ZW ӲLy CI2斒qElk1IK55Z@4d^iQ7\߂H4mraoP,%I; +Ìά1.9GI&g.kYxKy>n|05P%V}$,Q@2Gqn쾖!S;E@C'm<1xe_:0LqxؔaH$*#.Q-.s`d|C!U^W8d 4fikU*:䆽.|cN6;!̓@yP %b4h I"cPEd/F9`*zDV gh3|H`GaKR4aFxL d-<}D@sWm:{NLB&"@]@7~^Cdu-s=SS>*!DEP͢zp$Dh 1MDE-/+Id4v{x?ݽ/2iA;bk$HK+,&}&:]2/{A-?\Ac/bY)pꑔ;!50ʞ8 ط!F4}fkӒY2™UK#MIٗe\R2G!X>l>Ej6mQ{ D=#pnL2PrL6+E&?js 1J{FˑR +m7Q_4LeJ -8 Y?kR6E/ro`Fnm~D 7+@QL⤕`VzW>DWleQtU':O}%Bt_l-4]ό PL8!pcD9òn!%d~W› kUEZF:vke/^ X($Q$dO{U9ΚLH(؋[$D?O܀t^uFI +Rc9Ce9ׄ\۰QV/&ݪc!Cf86mFkn)۔4+:'d73wy"hAofUM*z;(a*WÅ՟IJ(M&bR[[^k>!=4j$Rz4 I&<k2_tї5Ѡ5Q%բ!+f's?+.2Gtn]:>;!=Y./2k78.UdP^ۊp(X_9`#Ck)S 0"VoBU:̹yj:Oj<+{^z]69:;27O r * `_Yk̻ab5V'" !e _kLH!Ov '\{kZ~s 1rkq}\9dߡOAPE#H d:dδxۇhebB,rWZLY"9[.GFt3qEMzx! ڴvPkKQ z6/.qXҊGE2!{Ta}i){N(V/4(.0cDd&dM-@F,$=<bYA(I5<'Oat&m8CyBqc,kvsb僅}nBʕ +1{ qB #ۙGyij@&Nԑ]*\hZG{Y6_˒҅-Lh|2NH46A7Gؾ%6· AG +nW4 Z!Qq 1]F0{*/˺ [ZvDto"]Ɩԁ + %粂چ !L!Su!NiͶ.̹kBPZ>>tWp%ry>Ԁ}PtBP{!k{XKbļ->U8  +h;uj3AJA +Az0)CJ\&zO;w0,߃ Xq +RHN/fE= 7;*,vK[s"f*- nĵT~/خ6pT>jrNU_"{%Sd!khaocl8U`6$M +UP]S"ڐۜj3'9l"Fsx_D1}pxя4N"w9%ٮ7TSCъey߀S8na㆜Cpdi/1Oe=Ba!p3dSWMlc7`s"g6`ςf66]rgǻ{D:PRwHC\H-:04~K6( ]3+?'a(3'kxNb?]j%VP-\LHbƪLC;4rDFJ3OBP+@"eTG8ʒ5ʮY'w%e^´I +v2C2~6g=HXf&fU;nW'frv]պ6:'r.ЭzsxIq?M*bMVdo!SMID7u)Z*M9uhzfYͫChCgF阉} <sT?_"O5fUŐ"Y^vUt'f=oڽ"Q篩>f^;* +M!D%{P)PQ)ڡtIdjH~h]  @V")9iNpV54InizXz'x$PE,q+%e`#}FǴgnoWjRB86=SV儒 =sXԺ*^F7̒슄Ixʶ8: xQy +.N|1,4WpŒ_w@bN<6i}[ҙj ܐeOkzce;6trWpc5 v<C<ؖO/y 9Dž:@W6{EV ;-=Ϋ֎s.wl4D*qH7j0*o8CܭuKE_?/88<u+e&g$c[mNqlNat +y0jqyסM`=HC| U$57-Qs!ik#roRqvΉ:AFK{h!{WPϟkb~97*, C\:G#~ +X5Ȟͯ=)J({7v>uYFs v/]:V9ڱOF\R>J&w6D<%Aَ[O3>xp^frPJݕ,Ě> 4- +g= +}¬=!LFDBqVCAH9Ľ iO<*"AEZ|Xπ?~Nb3y] _17a*Un/ !Ե+3w}ɏFjoBp\@D`n5tKG5B n +B:Ys$sW;HTJlQσ ۇ=PUG9?SD(a$ޒ#&hN< QN*gYmYmwKF5oT]®0;&UEi5m?HhϦ/D6gJE#7;4a 2~[02H +XBK2;}Co^XDXCT-F9>wcoh  x,SĞ.r '9C@=u:AjpsU%I &aRBGA 1XcsT)ԐRO}3ko:='$f)$>lbGۉ +@ ܒv=szr OFocƄD6AQGOH+xB?Wi[=>ذH ]1AI=Vqj&;~g( QOc1Ǯ~v;خ/\n9Jͫ嬜R},2C(^Zq ++1?׉r~?)Ƽomo؁?@8De2G4P2gPѣ&z>_T1 "j"J=٭}T[)20*8\U޿f` +g^ 9M1 +z:C“V˫k +ϳN)/ƽ)}+̷RYJp+ƣ#qwMU@95ؓ1N2 P3q ɂhBAu- ,5L:u~vsro>֫0芗v`m~\Ym>נڇׂ(ezg}1Hy-rrQB}}d +%:-0%.+vdhie3YO*f 1[*H^H!P1+f֫VS܅ҷ ++l1w ئC5GUvgbS{Y2ܝ?tJ> =§<6+@r +8$O^))jg;Dd.b(a YEķ!Z2Ӓ%DzA7~)Lҏ9-t)X{EG'ՆP f 7T~P F@)\nI,d|b1䮠}m!sh͓Sۀ*-#n|[jMY@'lbχ4[oQ%zºIΤEu%L͘Qv7+X-"VMgkQgE +R6(x+wէU C_~won +Ot^G+gLc7[ +X\MzB'EA{^3'݁nOZC`WgQ7&$жvy.0B!:c7%c><"u,N2(ti꛹:^S7XyU~]o1.af?i;Kb ⮃\S JV=RqʛRLr'ݭ`7rW U,ko@m ɡ 4K,%HN ր'eL8~l//HXxAvTH8ޣ;bRwany%,#_aW'9ޗlĢۻ%ac3/yW ғZ~BRD\=4pQg~J3J#vUIcM;1bmsXH6g^kDk{ȱ*ZRBX%ĞlA uW ~`peBjנ c.V7%0by%1%s`1ѕt(E~(X;{ Y)|{8c"$ X]jK8!'0/4;xD7إ~L=6"SơGM֛ƖR}nc|Qu]E!9ijڀ{d>{X#m)l^ʙ&lMR(teB@1y L I@X0kA7;cN[420c·}X15|_,Fm@jĽ/7ɟcPnjgt:d($ U D *xezd$Pt*c*'0bŊ,H ")_9k\Sby@Z48.A +lE$&au<1FNȱլ=+q˦ +Z =Ԇ^ wMU@i "| M_?_2*\v=Qo>1' Z$! 1b 1E'B'rtr5Yڽ1zDG-YX/NNs2|>u ,9_?Ų!}k??5NovWCa="jl'I½% ՜UwA{p٤Wy0?8q,H)|1uV~Xɜst}@tdȽIlZO뉹N56"vegn29jkcX^yBcc&-V!uKT甆_)^vjľӘ=:sG g|;iٶOtT)A$6|[.3V; +oA¢:D-/zgjtCw.WӅFE/2p +t k(| cL!QίA +F놨C759` F0&5؝/Vmܨ۞KLkɎbKJ»Ҡ:pv91w/jHLӏyƪ'ȩНKwo.ԓJ7*o C1aur_K޹ɦQ(:JSQ,.T ݵuP{nӞq[ IJd{cqkJ$QO ~WIqbep0n[g$A 2V~4ĆbD3益G džt="8r}8zĬ#K g.W Hp]!5Pc5>B߅J!, 5Nt'~>sNDw,r ϫNP r[!$$~3] ȿB6yk)PZ/`[,E (D5>$qUJg79Sr8>|YI 8k%z ] J +E?߃a@'@gpsnE7V%CP:F)ԋ7H]]fdUXtV=Ɠ R?{Z^G,%5^ڋ%ͱiuw݁"Ќq[/,ؽNr:)ŧ%[l@i^BP7ڄ)7JnHz hc .5%.f*iMn8 9E |NQCp )kz _8D U$B/˜lgeo~1i0yP /QlB!8OXg+2gĺ QXݯrw'GӦi`&6T;#F@lJn N T@2]e1>50 pl!ߧ}[k0b^y<eq=BLw9ŬWCy-h.Ԙ$8svevefh f-tďeʼ?U3'bL8</Z=:5g\!B(w`,[0O}L8B~/u4S7q(#M'E އ8=Y'kQUHޔ?̇: DI6@Ӌ$Qt~fL̅ﲛnZTGVH/1 @xhbl EVNe6/Cx-]lyUgR>!0#'#>Jv?j&Y/)^/'$OB&HGI!'*PoO]q8RM%w#,浳C,'C4ؙVeZuP@Ő[G*mL-lYI]7AΉP8bYPEL:\2Ü->0Ќ'XΗXdٻaBm{g_9V1@l ^sqߍ-u')/lժM{rh $, +hVtUeB>qjIIDiEC(U5 'r%4m*i-EhD uy*SBm rDŽ@#ECir.T!TVi;MX͛,];9UKsHKL׍#: G'*rם>^%^Y@ϭ~<^MA9Rx_HMFAL;n\0WL&)s(dJEh/Bīj Rr [SyFUD&lȻs?Dxh x2EWGПy8x~*Y(]}==i;k4\}6HF3@)t579SU-[L$(#^Q~Z&K7ojd`R Do8a釖<a56 i&9*[F;mq`IO ǔ)ԝmwv=dJZ^)0\Vkz>^z@.U`U(h\)7$ qI>mhn&$zhu˕|St4ycy@!iKVԉ+c]Bnď) b/foLf')@H~aJS~~$9:(HԕwW,^]mjXBI<~v4 j c0%.KRsUXRKKBB/XdT.R(shu'hSԦǶmsҿyj k+޹,ĝTbJ:ztEe.B4dcyw~ı!P&dv5 +߾]9W9x, s\ټԿ׫>ǣ.efI4FU\yp\QV~xp\FHQ/vj@&w>@|fŭoBw: A;!vK]:ܟA^)m_'/-bYPQC49h U:뿛.N(LмhYᘍDc) V,@r6ԋ{^[vx24Ւ6d,@&M?!̡(lя%BCss09"Rs.fq:d1۸2ӷMW uF=Xȋ h'"z[j^jn)>MqMӯ I5z< $5Q1֙{}YQ6ToX/sfA:RJr,+=: Zve{z%Blo:hqD?QǺ1aqH}śU6D}2w)]-\+J^yG.ti,7|gP!瓬W"Yh7-d]JJ.4Y4MʚKgҋr€~l`'+DvC4uCcI fd F jCnQWe~'_1V:m^0K>-9hq-}MtSP6ƽS~XUZ  3=5tGXo.oʂ&.⁓F)CY1ke>".! ۳S ) %Bē|R)؈Aq1ܞ7$lEp4G+xq9? trUp,;6L(DlW{kraDAsb(,B̕>)D_Oe8D.v*/ %;Nt4 +iͷ^$KgGFڷWǢU=YyX$ +#Ic-?,S̔,ds{qdt=SatcXH6JJmi&z|D+E?: ?jmxYcAzXIǝȆϪ4^#I8:f<%$Ya~ae~FWgBz݈K ]O %ZцփQ_Cշu6+t{'n%\.Dyw"ǓPx[׏!b} C:Dn.Y'@BkC.An7?H .~'|G2r㵅̩fszH %a*$'ͻCh;a/hYVᴁQ'"hbt' k: ޸a q`Lt)<'~d -6k}C C1lI6B)/䥦2Ql[506}t-褡>H?bgY4+L-~ jTbDT![iWnN|z4V櫚މxj",- 1iy6,%ihtb C=0QtћRx|NRUr}!VjZ튔d RnPL`p[.-?몰W%7 g@GVm G̤t&4c'/9α'l1*mO1{5}?3.@O$!D͟tqcKu\>P$ηGym~E*,ĬaU[3K y4a izOMF‚6J!v7nw;.we&?ޜhiX+h9i=@7Oowə=U,!%¤63I >&GO +#Dƭ\BCXtS<\QQJ'֟Mxt@U&db@y0]DE>4K/VltfIm:QgUM˄(y@]8O)u)0w`j?封E@Gb~F/]waW/ s'G=,O_e m~$dc!*( s u4h tOs ~P cCTukH{e?뭰߅uB,δT;e ѣWY$?sJTfPaľ͋qȃǮIw߄O`0vAiU$vZ۹)۵?*8L%n_񕝏YSN/{XBΆ̌{-Kw)kYX&(JuVIć +[99މ+_ʕ7TVł%tajiR")C@޳Yo*L[Cۘ@taJtYֺU(#wZnlw~7؎M]#H+3ܒ& njhn`E=YT}Pec̏b KJSBDCܡJ$62 9}#r2rA 8^=qcbEJ)^_@W'cf1RtNe:<ptۜd^-썷=h8$(>%sgd~E{@Ϣq5aVc@-(cꊕfJaIƓ4j'}(a](jU1ќbDHX,),[~^ 8Z74vF[y!?c%Ts9[=q_,^j x=Q%M'w6/<$%VS+ּ?w%y:=E'_^ O4ɭclk]>-7*]6xj[86v nhD [d0c:t蓇jq6yAQHޗm\-H:W o[3*Rv<|e547*Glw:LQgͲJ&?A ]iB2z ܨ~vS^ g+p}Eك6f[CI o2ٷ\vPe;CNZݒCNѷز܍偒>akG`P BtG,u9ݘA'h!w] 8oޞm%ԒI_jtXRuH +s2} wTX[}KzIb_He{EH$yy >ԃw.)ynT,\es.DbɺFܑ1n%~)dMz( cD{mL7k[.[d[]a+] 9@.a}t ίyϳԼ= c/QMY#}zdl?l.gMWǑm,߅y< %ƘŅ8i= q"9 2#Go2*Als:?:P$6@ 2!A.{rH2TC(񒊕hXU{o "(1v:Z6TIyJ$McsSQ<#P A Ox* ɠ*YYEdd^Y#복Wqq aoaZu"$ǎ6Mb9OWqjB Z)R.Cy =3L*s<9uu%GBj0Ͼr0]׋ZgUY ZS_Vclw!dnUg,8!fR,$)bwڨ *ǔ,P + ¥Jh)7W~2v0 -4&XH o@1l"j,4cMT{c;iꄙhnwVc0R'Hbsf^>j,Ym'.!B^;?jE1;H^.U+a_L鲿BH|"RGs"#$1g-sv7 SC&1_@jp9">{qKA\ 5N< F'62$,Hp)FOs"EOC)Um{hg1-O2GN1]AP`V¤uOpM7Wd%H$'2PBȆ" sO#;mmA;nGc ,>ʜ3W. )q(]TŴ_ r8| ` GNBw<7F-ޏ㕬cY[dBD 9eArAb7G=Ug nTm= ri]m--ϙ u}RsxlܪdppKK[6|6?Y~'V<?ldק_b1H讱 씀=ڕ|iߨU4OٕSȸ?繩p~oemƼ@SJoxRB2fw=DGeR3i y}kqp)9VIa"<5i! ͑zw3^]]mPź$kPw"_KgXBexҮ Mz_*w 9#{Nw'05mm2hKZ_ w91 2$In0>A}C  N~{Ж|W"l= =P]X\;c0AS g,7ql{\˵M*f%Jtc&B p$ + Jϛ#="ܑ#PO50jCgn( }&<}S҂A45sUt?|y(pco}*E|YS̡eKmTUz5s%}xL5 H;9J%<\~N2sQbI?0@-a?M"kj5b@n  vB<ybUV!soRjbs8\Jm6鼬:u + vֽNB=0ȉ^ů+zi +4c?'|-_%6T&H7Ǫ1Q%P" ޒ{ iN25fnNNx3H:ŗԕQ}XwvLHƜjͳH tjmD{7!BΒ;GzH |LWȤ{UJ'=7M';@0X(pE~4~\E7㨨ifyc"xXw2fӭN7)<q?<N?_w9J@.ɉ\ ФKKRhA+?gfANV0OSp:Z?CW1~ii&"U4|9zp2g]DHGw=w/ +okĭ*Q`.IRRGeMidZXDeQXFDAou Dž9TR6 } ׹Ifp! W{'+ @#uY?I&dQA#5*{(*C3O@>ThP㌬KԦ=74iV c#{L J(@>و-^Decw)? I b˷Jg,U'mQÉb< "l7-IrJ幙ZY9@ĕ %ꃀvNs+,Tyno0)B* +yl(Z1P nӡh]]̱o_¶5D紮vC9k@dmĭ& vgGLk9PBk1ζ Q&jTit2--O493TL!E~ ĩ S菊'x4 ihJۮK2HȂw`ҫȀhvFo/T-f3ǀ,S׌Vm z`>%S|VǑA@>LI#7ɺSCj-Ykvik6S}^+*Εfyyw3zdyWAVm/?s^:6]q.ﲡeczw-Q;F6}A tHx4pd'PMr15 ƶ[SK˅v $g3Máz'] n9qXk犪[ l:<0=2VKϱҷkY5A ơ,=pi0I N"g(}9&嗿qۂM-X;@®F+aMKb99Y8c*:*O2BMwz#|:RȐ0k{>1cC??ϖڬ*/yP'c䠞i±_Қjj"JQIˀZ'BYzR,d͐~d`2ф;V^' +kAʧD JK~j<)J?-ϡ!EhgHTyfG#B^' Z{$CqA(PR]%D!{~B,Oi-թń&LEಅ|F<(o69{@' +8hR nQ͍ٓº;QnPvDlii]dQgecDZYO/%,Z0## ,@fYjg ՞>(qz٨O+y+]5h*.[ P﯂&_w{[Y2^T\kc98䃺RHpK;F`[2M4kD 2|m^No5EQ%2}Zoc5O7WLЖ9*nNdqn19nkπ Pk ' HJap zMo@h^2g@pr89H_|H ӖPدxNpxKy'rFcE?+D% Qc)$GMӯK8&.RL0a-=.NڰDK&tϞۨȇ5FUMzT| XsUq@o<(uR< l}eI +ZO$|ٜS}JBw8C` DSxƽA(jCy=9\`k29K>P Lٳ+ &h3;-㻉;r:@}73dý`O2j4h4ƣ5ֶ0@%et+)M?!ggrd%i jڂ3;Ŋ?l]b_-DU|ANZߩ p&XDM(_&ƂI E%Pׇn$zZBD($Z=ҐpwR룋*}0Q D3!oV=`=}So¡9m{`"E+/e".Ȝp,?˞N̵K8\:(Bml\hi {tz'?8Q + T9CQo=t9^g!olz |i,8/J3%;~7W-~ o/5D?Mfu ϕMT"xOu]2u1.$=cC]Ҿ}qugdGwB*E?!#+=v 3?[=$g-꧒ Bri$4 Z:nB<0+ H+pEk)fz QzAwaA`(j0/(qnB!e0+t A{~aA"m }05H6G&:Oib/ҝNuH?kܝƞUz2$&,|9YEߩA@4!; )lU߅"hy6f鳠Cx.xi)晙膒Bv6b":v䑆s" 2g92QQ>| />͘XCkQd|`wuZi6;9K4Q>B^byu6I*݇֎x~(wA eCc0/tgאJK ʑ j7Ok,Օ ̟C3P급͛C7Y*lI+km)ozvpZvە]! ЧI*ٕn]Z2}0`:}"$%~][ڷU|!(<56Ɔ> ث7\C/'^$ઇ-uX ;gc7HE݌-3P_gOU_j) jݪx~>p_8 +`^7ø]Gl/7#{w$[CЯ 2DUi VckB͆S|ʀs8Nr}s(mMP݋ ]Ο.O)xUu9h鑂emxd.9@LDx9T +'Pyi_+Ǽ}ߐ_7R1❋DmT&$Nd}?WukINb\A4Gj_ +8#-50(m=)F%hK8]{Wh<)x/[B| 5ȉ@㴄nKr@>`&ՀDz/D;WMUע0X»{?-Hd-1-7_i %WzTCNqgtΡȺj x}w>?/ ˉJ_ (+~%:ž7 L_9Kq_݁ jʓ)ͮj:PӂΉBtI{џ +9 uK$A_g]cauͯ]1vE|A"Mjdrɬم΁ 4=Tv7W>揪MϹPiDOW>'zV=/c-dmZuY[{DN%8f~* =t£O4ؕSt AUzr Ee*qk V}Y\ؐ<}~Ob?0o4a _iG{7vNb?$*:O--N_ BuxRb_U!@)e=&cb}rQ\[.PWaqp"ŷ6m_qLS=qJudPcI35N4 q]0"s,,9@Z'IM&qN-owֵ#n[KABjDd D[tr28wlr]-.>{j:X(X;,Q_j2Y_uخOP`9flus3}KKFzeJsRm7Hv#yE~Kw~\Bya9;@ #߅JYPf<>s޴XIg}Q8jW%,ƸWyw}@#;Xk S'.Fz5 RfPje=z}ׅZ DxgEVAы#؂z7Qc]Ig(:}aƿ-QuME =s;&$wxB [DtlT٥Rˇ@b84Yx\&[߅Vd.PvcByak(*:M1Vu E՞uYw +MwYV@Gݘw]ɭ*ಂ#6}a&*CE 7F;0 % tlWo^k7󮐄$ncoY3/D`_Se@W 5[Qp{5`yfHQK-ju[Ė ++ Dt %]Z಺Xt~{TkYZq",.5Nn[?Iㆹ`VV퓸2 XԺjꥈHa%@gn,pm.W_RkΡ~A LgoXƤ{NDŽo$\;-)~n>gFi:Lw{eAO~g4T&,3v$/p/¡ds%sSJRt-7- eGJc/ݟ0VP]*@\Kh|I d~Idy 6i;]&=%,gw浴P+Τ{lvFЙ}2k/5~y~.ꥃ/X85Sext ,? ӯ"L.@dI5DuT5Py/0B*_tkuݾqVNOٝfE&ACKpTW֗ +{ڷտZh,s)NB򊀌Q[(,—&hz9;3)4gY- Bs^&]m؟29&CBct[q3ow8Xk'zZ0/?^gcu0nzcCs%O6?4ߦJݱ-@~LqsBy>ŸlHH~,Ci6ikߨ!>еܩ4:4h|i~ +Oe;ҳw8~QJ<<'J>)q3x1J8Qy 6Nd8Vye h#QpP`|5)wyE?f-F.TcVE&tE:p?bU0W +^8bD&JêYIH>*,hq~8qG)ڸIve5JM6޹>uNu=% O]3irT /qǰib<<.6"p0A "<VavVx~LQdS>9 +Z9[,=h4WNT s'j^x56dzU!p> _F AA8@<Ιb}=8R*;g誘c!&ɶn`sz|L)ba[_ukI+neexWc"%a^tΦ0\P?f3 ݕHxoKc]=^C`R!ȸ~-܁Ζ'gD +w ULm|K?UF9m\m:gRǦJξHul*L‚r2)nQO,ɱBBhd#eR-GFM[׽0;?fTa KRd(LB[he6ugPNX,`-.")3%ti K}&2/긻)yQ%?'F O&5SNNg^ -l${$]yה QOIF0 TfCe5l7/ʲ3_+n]S퐖 pQo,|Y*%]5Q؞wͅz*W@E&6B$B5K ?//Oy&qi{W땶b 7 %mᄶ!b  m:*Y8w$ה!4VBxv1@GC^$2A iH$}U)q /9O ΕcPOut/xGABA1+Hz +vjAx+ K=]+\^mh^s%Qotc`2eƏ-VDz%~kY:(QOܲ<:G{n_90˜ŦH (c}۴QU]lA;G"<" p@Pa}E}rf^[ >0 %_GI_iTwo`nOոMGl ab'l %$Wlkׯ?9!MypK|kؕ67d\\_o_?B9:|I9`En=0~Ҍߠn9P`"mxb8l%݈rƱs8憠o׍`̭CNJET[N=?l,qƆ2 +)42&b6[m/ul G޵OPh]#.%k?_uM 87m,켨c~I* ̨LrIt^E' VXQ #-ot.VwЄ'㤫h 捫0hTrm?ch9΄ m!k]G[6{=(% 0~p˖o|e~Zǵ +~{|_](/9q+%(9} & +4S2hよ5p^3 k8/L7Dn 28:l1iSW!-tBp̵};+;F,i}a )bDUT$X#8|£z“`co͋es e۽' J܃a^5\ +ek'@4`byڼ &ZM*T$=}$Y6xM#Vȶ"IJ3zܹ`"(7v 5z3{1!cbcTdkCCxͅ&H&`*Gsa$ tuw}e P! +fdec/cv%|~S), +5!0vw\sx ^ws]A`cW a'U;ᴙ"5Qka+cOZYWChCU:oTn7*X`BnxqǷྜྷ/~NMNY-&&.fDgQKPz-e=]R.\CYpRxAU1ލ{=508 j}CkR_2CP9n–g&2a8/|և`ݛ>1[gB'-߅YZvtk4,|G3M֮|:߳D;# ;S,KdB䅦}1WFTƽ/(]F#nee@aWaTqykj1݌b{3?}i 7\ ؂^n&$~ 7'r18~qRu9cyɫ=vI6x8 ]oLc-ې@usHB vgjBi1Mt(LǞ6:=~] +dm,@ &lPu]G+xaؤX|K=ߧf`lS +!RGáf,pL6 hdRqB!I܃'vYu%lLa&eV|4dz9ī29!14HsJ2.:f/o}=Z7˜OZpCҘ}VEŮIgͲ~"CSؘ)%**b{f +fQB>4v=8x;i7cWѲlfq'G4+z0IPfSsv =~=9Gl2X'eJmv`%S/< +|Xk4*=׻ytcß~ݞGיi**}mG#%^-aآ6bgAH hB70Ju$ ymlZ-L疌{4^w&%eB9WTڒբoj&(!k*sǕRJ\)m>o[wn{e@zvz4fņCYNpMhi?"ԉa)bْسߥ'GGn9c3@**:z7IhHG}O2=yXj"a[w>gC~.4OCك,'ӃE#aMr򄺽o؜dW[ Mj. dU3vbjq/~15E!,! -Q&"h"6 me{NV''Ur==gGLȷ*ソ{, sb[AƔ̍'ؿQOTp>y ڊqF+UYA~%{޽ux9cVdS6"N8 Wۅh6a;2(oZh*8P(NN\ԩfqWP V)ߣo,skT1.ܷвSxo?Ki2 )nM5|e{%58AƖ9r:h0A +WߵVqF.2nZ@;KM,D Uڝ LDCif෉BN#RuՠZ=]{ y0؍H)A=^B"5J~X +oڼy=TO():>9ڼ 8εS?6SܣFqw9"q4Eqc`_¢r %j9}qU粼 ުj1{k.tZi{w5)2q`5{WKu}Ij,i!wM諠ArhV^a0\%;t*U:XlC - ] I2 uD,$[X) 1pvqz-|3l&1[w23%zYNI"B#tVؿ L(N Eszu{ncA]4졊~&d.{7K069:VTN$?qZ?LR ?8o)*4"e>ixEuke{|0_- 2=Cq8ngaK6{I\ ?ˌϲ?!7~=E07nvݝlݸg/gkY-s n&|if*Ԫn<_s8Ƚ)B(XiOzYdRz&S(eUб 2۪(\0&T>d+K/7n:ߤ|cC~~=fyq+2cy:ߐ`] N wʚcn>Iq֒|?5>{o4۟=namz`E >Vop >s63"ZzA n +\Ո_ѥ&lC1-9FքO4Y]g4hCkJG{!vߍ5kG.3y{8!-ڒ3X {y7fy9%e[Y v>;oK'jS E&[<|ڽ8,Nohf|P%j7=ynGːv8A_`vn=Yoþi) O> ×$@Cr&n A{v\+/@jO95 QVIm8"Dǂ -~n!y("Ʈhb"f j]|UIkY 5"O`}KoSوF޸OdW5/62n%dlG0@ IB4 {{S5a\@YV=C wW٤-eY1- -}/x dWY8`ڄn1{mdƱ +gH>X[e^].BXI^ +7>!&,qzM7iBF~8 y]i<"RI]XOCӋlckMVS +Y7no#3=ʃ!~6 +=af3O7@n𴀕ַ3GJ9)}.gڈ3o}Ѹ:*o}*s@EžȞ+%'T~vŪ3Bʹ+Z=,;@Sp[ZTd^h-ƪ/w{Bx-h!K-Hɽ} o%vb;ȂMt\ NO.@ 8Bfq=!k|.!qhW cΉӢϓ)gB6QV-/2m{Z3e9WBNRTgHZ"s_O=1-iK;e,[hS8Y;w {,1yF\]Ip{ve}BSۀ΄(J"TMX+nE힫9LҚ쾛!$GG. u~@K$r*-"h5AK.9okK\a!a7> ~?H-1_ƍFazJIȂI֧g#mWAƗ'UY0AW9e:'ݱBش $@s(osM1N4 ?o37K%6Wr6kH ߚmľ*d?Si/Gie4+a#5cV"t.B2ݽ,eIA?]zTvAե +pN[|c6הn swdqޖH@EaUfiF};]}ɭP(#vQ5 iNj}v>.Ɠcabme$E9B6^JS%91!|c~52#:pËH Ooe,d2kBƞhv.jFfL%aJ5m;j{rSA골L^K4DEFJb'D,z|%ܫNp 9Bnx0IKwC ^>mOd!QO ϻBV)+ؑvgJj]!c;zWBg52̑]'LFCpQ*Z1oV0[HExJMz|nNH~K_66>V@$cU~ƜDNy3GݕSI(UeXoq plگZ,6jUo)ѧvߟUc[bq.{zA;Vfm8- +ûB6mP${XptpoH87٤ݷܴUhW=xƽ!; (. {Ǒ-;>zp/?"mb>†!#;3԰1{̩HJe2O 3pZM8&rKS#8i*]yKU/㡹AĽlkjBϣ3^U\m6;U##nyhovp kbMia+hWL3r ٮJ~ ^LH9u0+{>4r;_k8G96#(7V {k{o(mǰz'jPci]@Qymɛ4RX K˅|S嫹U^tRehF:1F( սr kًpl!eeˀ>Vl6v^Ncq*PW\ucByGMw)n hPMin>hMo4enªp*StF" ֹq( x[:ubW-PV9-Do<%jV+5iЫZv`*xKԟR7Ek/tS4G.#?0Ԡp䢎vX;.)-@p[1)x% qox.5h +F6 ^|~eiW+TA9]=0R0rkgLT(6 +BB!~LAvK)Ez^;nގ8 mL#1k]\8?QT 9{g/&s1z`~<%8| e7Y TSf<@z~=gc98i] 4rR@+݂<[K~O~ jui? cW媲EJ"w`0"Lq1ڇe`}rB_hPǮ[p6&,H @ eeW6GcoaCK-6!KԖ;U/#-!9H0\tU@I4wp %!ͬ3Z9ľaTD^F!"s0h(Y!BT#Wsw)!n:ԣ%a.&W2;l#,g^(V']Mߵ{Ɗ|IF\Tزclaȟ8,ɫ#Zbu# HB&\*%v ޛ-[\`nE[Qy$6R-[ڔ߅^-ſcC&@Z6 PM,3Ԃ94*E>䒼bFysmro.!TqPLv,M9DѪ{LoDj*,RL3=v^@۹9-'W& +28"I=<rdՀXik +NF*Vt&+\ut;(FLS \f09HxΏo2 [IwL oPAHn)(\QX%!ȋSpmiٳI'2٤>FkAhf-LE&ڱ.ɔ\Ǭ +4+-F1 -aRڵ7Z=+${$%営٬Y?6#zB3)W5'ظ #5V?qQ %rD ~r(6bOi:Hk.2=L^"ϼfGUW3qMC;R vW cֱoI(Z*JOcӂ<29L.jܒd;'Mw78Y"pq1>V1av;7`o\Hz|(^`TvV>\Djx^ ƌ'űǿHl8j º/+G}sUY긯h^k>C.?ϣUQGIn܀)hc嚤VzZCj>[_uL+U>vrz ǪOtҹ'^[+R}7|c8%;WPLx{Yߨp@SON3XRorZ=< Nxe#M% pXISNK_Dnǿ) ͌ +^LWEjSBԡMaKQS;4k),@5`핝ƂFۼdͱZ# HsNk)nQC4H#GW{OH)&l|J#I +ef#`t)vH ѭkT Ϯ%a1"N\QꯨbgbL8~,A)SweYe#"ɉ"y K* cn5}u1$?@ь͢uad#4+XH†bÿ^-í\!_JeD`.͑p٦Jl8 +Bt%Xi\4FF9njRBFɬWBb6גqRJl_O/)iioRe3ߗk401Y *Gу?`D+uzts*Ƴ{n:Ϥ&BIg&1Tw,] " S2L$iq.Qu]uqs\,CР7S P#aHA;0u> "?0#]j+jH$?!a͓\?fi:0)5gĩBX:.KȇCaT B(_%N*ZBkJ2vR(K. \lcwy#lX-*d!!UHHퟠ*ߣ=H21J1;=uHqMS([ʼn)NdYHsߞ1hԏ*wqO%mMD?q{"Tuf"%.!/mP qt-:a캥X3Bq$$lF̙ gJqmQש]cӳEܽ R6CT2W3~BNH8ZDd)X4ty]Q>e .l'8éKJcx. 4ѷh}Ҍ=N^C +Z/4_.g!Z-ן1kwqƻ:XG~zs q7'S /ӞߋDV;l;BH 2AKI^A(qK QXNsg l#w;P.0&"cayf[bM9oJ g,RZr@rqtIHavO 6~ fA#NX'׀͑rmHGCo41ʠOۧ们 &L ufVӹI&FК)3[dge,-oÏR% AF\G5l~9J;9,()BvO&DH\ 2RbSӾq87Qlfa7`ͬ/8jm%#N2qUw>2U.p#ámBq.Qt/=w[6%Ιj`a2rWzK`tv8[1Z'-Hi$*/|С|{fmA9k:+z hX]"z +~Nâ:i –RҬk!PP/P oTPw&,`S^*esLlœ?.~K)vq9 -=)ACk$/[}ݺؚd-q +S#b뾷atY4l stJE-^|DLw˩?/Fyy6FUn$\E}j!4y/W;:Cxt^$d3Nv+ ?JāB9ZQgV iNJF댒-WB.B,䶪CPԩK3U"d}#zbcLKmpͨgkBRp(Gj{lghbfvx ta]E/ud' =mnS8/@& +#Lx9[҄Bxň׼ /is##\m!u\Q~IT49!RwFT!إ;b&]9Ojk< +he~CrVyGTQi3]n+.[#={4V[A<9>Bn0)\L!DqǽEV[1{/o6,pi^}B0$MC +P^F j$b!c[cMl&~0(`"DaV'> +۠-?n4.Й2"r(rĄټ2QɜTfo\~uZF_O)0tyn@=n^l6tqV󞓊 Hde}2ʉ3K0ӂTLL.D-ESv2^I[#f@cyӷ+E vG[X2yȭ|- SmRê s\p Xy5VaZt-ڥ۷Zl6YV(˲D@n]BD$;qjmncrd yy1Og4Z  իɜ~e"7SL5Ef9#3'>(f-!v', ]2yVa+ +ݩe57nED]hF*TLB!L0*M:XeɊ`!Ҟ]g!qϒ}o\2j7 +5HDސRGH .ӍYՖV+* o,@"RC;aHZ@Lz]zn#!v6ZU|{\V%c}{QHũ?|[j=[77qY`l&|TGDVB@zkjejk# j °߅1cd_ |;’D^+L>opU8#b-&WcHDdhvU_BfލkviZXnuyG"V5TB&҆ u>OL(qyAj!EHH>ݾa!`$0$4NvQvz"lB9!\@a0fxMޟx\_AAL*|I& I:[!ǁ/;}D~7э*%$k,q%khr"8g z$k#M<Þ#e6O\zT"o;טe;s-sP; +F.s#$t)Vm>L @!!RLbkHPrmCF_&hdSh|*j$~#O/X qJFU{j؄D=S Oi-'w%Qqקv4IÄ$>d/RoѬN"旲:-Ǘ/h_: 9~U dhd1qOhJ/WY&?!H}P ܽ1GfNb$P1:9`e3QP ^V;uUPJy+;+4O2UwJ]z׭~ ;oվ":s0J]3>.\JKv!F3r pӷW$.u6BOMDH6ɀ`E{V2-:ɍ##UۺfRAHϡƃ'n ~H%OQ'Y9 +v Xl~O!hn\q#+րJhZ,#5HZqW/#$_'FJ^I uvo{Z -kƱryqsMkSUuUii+$,K(V˲YPu,IyLP6zzV-SnDM7^V㘊hf?hXHʫRܽ[%36$FJ0?Q}(w'{a>u{x4U@pޝ[ wh5.c\jt[(kזpcG_zB/)t0S ^ۍ드ƅU;G=J8Hj#K 3٬l]V%4>!&Gpubݙs%Ukf(B?m[a :. WW͠h/31*"LM+6߮ 0uz/YAjHHrl +T+rT&Q 'As~CEph+)(o!D+  +qcQfN?A4s6Rm2W3>a}@+"3k A\ F(]A׬u#V Y\(+F@yoKFF;om׭k"K#8TG3Mbn)N߱CԙŭVfkնb79w.]0-&K*n8z[$FH >VWCܿܓ6ʨk7D9F^!$s4B!.ƭ[djN QX^1G:"#:V:R*r/=!& -t1u"u=LDßʳ"=񟉑z.`l/]C坸< x4-Vk.;$L6E^`n OiEch7J\!vj) +-YMi/53.r|G DZ/odE"E?*rU%Jܸ&*nmKe#!q?877I!Quo/{|&L˥*X4aH& XhދMs̻iuQaaW4 Τ6q/X1nf R2B.@)a <6t:9 +xkUhݔ"|9u"N!# N>!Pp*Ԅ|5h 65GdUzHeU3`{I@mG$3"S .@ MO:RyhTOB)X݄C'"=,G!BHEף8GNj%`QO#ΞRp4ӭ,, +m;u8<mwa$B d5w5SHhM% {lĥ(>Yxᾠ.3g9f#rɵvWMG{s4?ಚ|TQ._&~T RݶBƳYw^)N7ӣ3Jnb;TFe!k6mvy盐MdD~GV́/djCMxz)7@[==cZ8 hk5 .JIC6`J&ȶkk,e-[F9A'z +endstream endobj 64 0 obj <>stream +Y$"M۹Aųc~2#7@-PᘬGqlo^7Sq+$^z)ߞEquay=4WA>P~+˴N`L4ķ0I#2՘C +ٲtHk #叟ƁiEMugF6OL>˔ACpf- ͘^m1Bnp!M;Vi3ZHȪ@If|+}_Ne[j4Bkђ`ʻp3ܴb I#ݵ+.nېOQ9V2H*Wj<sz[%!·apm3Xm!:Gv8lrxFժ!vX5aa3jv8j;RZv)쀽4eD0S9+,=FFY 6LîP\Qf!4Ǣ>Nvnp(T9S8Ae_k`ROh HBOD{F3r͸R[zc*x_@Fq+ߒ[TZl 2.uۺ&/6f9\!pqG*<뾻2>Wsh~+j7nj4KFg%JZ]6,^Vv8stiL=PġS=]w#[BߩE6-Kp1t[\z-o(L\x(&+וFO\S\sJxٟF,qM@ۍYAyƁTtni~7[1TU4t`BC0\]#[ rr-~Y,raD!1)T4sI#`Z)Ek -:q4c[bq9٦ivIg %{XL׀}(2DRvOkBT? uJq md[-/sQhA<3 YȧH+F +t4jX-P- @c"BM`i\n1-ͮ~pE۽+XA̼oƩOPSp]x_sI|Bڝ{ni`M5:~gk統.s O8eVc' b +:|DJ.r.$yt UN OoL$3I$|Z۲ ^& g0X'Z_qYx%;…| ꀋw,ltǬK-Νcb36:TӝYTO)C6R"C^̯j{iטqa#57pn$b1ʽ%+a=jX'aك&tݠ]FzC:RZoڛ*=ҧ:ijqA"]L(1ku./4CpS Ux(^f!,ܷrTkcOq}']xFx2e,v&X s͸̇} +LmGu + 3yxaKDSKgڟʮ#!jT{KMlQ83 YfuǺ>q/w($:0j z tGxqo}ot>C|Fb=[Hr8 wьAMsi <f|x^t suyn.=]Hɐvpx_ɬfl>|2Nccm BCc\cZSg:9Oe ƚF@]fKxtA3zʹ['z)ܦ:6&C"|JrC~z3<4A=)?3E22iCy'pfصy1#a\,Ԣ쓎|6J15.4 ˢhw +v%le1Ձ t WRXd+iEXi8%.#^%5ӯ2dS/\vF.NC葪,?d|$(PhWW2iϚkX}lϕ6/ETl~YčחL "txw,N} TyQlKyd I%XPrݏ֢gFLrOW qx$?+G9%Ie"xf2ݸh!AZ8 c_0TjT_fo2ݦKOlDu, +TOdD )X#1I( ?ů?I?/oҾCn^'ła +QtpFbV^[MZMRuAy+ Vt`JwC&*y_(xY\*\Ľ@T Vk.1WM,PpN +)5YLf~y)'EsmoR-fd @}ۜS +tŐ尩LD?vfc!7M92{2hع;ؔ3o/?=G1(B+Ytnw?y7~gM)a@%3 b7vqS ŵ}c8+ʗ"u\^Nϝ7~S|Y q9L#Ň$dDȁs/pS6D+Yϩb:=7>BΙ |t%RPXDK:hX3~3@QXmWGlwCK̂ <8jXԕ\ds'dϞ 7??~/pO_w:]qg 8 {4M+=g鲩qoM\7ݏI BCZf@$)r5AdEh+W٩F <GW_}㺖)9B9|g5ϺY zMa>^-W큧KB Jzp\Z^nd#l.[C(-P@m汨1tuĭ_x >lz'}Jke +;/me֌٩ӟ5Ac<9d)ub뾸_N@|w:{3Pi#FKAlj9h8r&c X9=Ғ ?߼ w˾3ED"_l|RF>]xa]j^F' OSL9oHt.s2k8 '꒖`*%LSjK=Yo*^ %gBƗ_x|,DK(qZW*4' ,_`,!WNPwC@P'`UEK'%//i:'S +pHj u/ ggGOJrY۟-g?~H9^k6Ldnxbbfynd㯷nމOw:Sd[ _2h^A>ncߒ3.kJ} [o|;O?渌K L)ϊMEVԻgAܰr_B?393n.{s)9@cSi +a9v}#-E}Y}|BR,+-$fX!)!ں.@9nz?!ϳhV ݑK.(VWȨsR*a[[ +Qv}DW4qC̨^wwe/Taqɔ+L}nun(ō~)˝;,L&6~rxRE`ԎWL~?MI7NBDJ2jV=R.ۡtdWu[YW47WoNn$J "ۍZYK[y>ܢ$/;'B,Oz%$n=IVLZ'KN A)\ó\KbG1;}~:(~e~?H6dLKIx+!^ŷLBг7ߕ Hije^|$X/,^!7ȟ'vP\A9|~jI[K%ϒ!o4?I?m?u#7J .W:7wڤ,U;C ՓVe Jn)zꖉ|%_ K}Pbxt%]ٽ?k3~x|q |E/ MSWʷ . M +endstream endobj 40 0 obj [/ICCBased 53 0 R] endobj 6 0 obj <> endobj 17 0 obj [/View/Design] endobj 18 0 obj <>>> endobj 43 0 obj [42 0 R] endobj 65 0 obj <> endobj xref +0 66 +0000000004 65535 f +0000000016 00000 n +0000000159 00000 n +0000049360 00000 n +0000000008 00000 f +0000049411 00000 n +0000596897 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000117315 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000596967 00000 n +0000596998 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000596862 00000 n +0000000000 00000 f +0000118723 00000 n +0000597083 00000 n +0000049824 00000 n +0000121707 00000 n +0000119023 00000 n +0000118910 00000 n +0000117377 00000 n +0000118161 00000 n +0000118209 00000 n +0000118794 00000 n +0000118825 00000 n +0000119058 00000 n +0000121781 00000 n +0000122109 00000 n +0000123363 00000 n +0000131511 00000 n +0000197100 00000 n +0000262689 00000 n +0000328278 00000 n +0000393867 00000 n +0000459456 00000 n +0000525045 00000 n +0000590634 00000 n +0000597108 00000 n +trailer +<<33CE0CCAE34AC0418BF71A320BBA6690>]>> +startxref +597291 +%%EOF diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-large.png b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-large.png new file mode 100644 index 0000000..96b24eb Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-large.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-small.png b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-small.png new file mode 100644 index 0000000..e7c2265 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-small.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-w-text-large.png b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-w-text-large.png new file mode 100644 index 0000000..1edc8fb Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-w-text-large.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-w-text-small.png b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-w-text-small.png new file mode 100644 index 0000000..da57105 Binary files /dev/null and b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-w-text-small.png differ diff --git a/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-w-text.ai b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-w-text.ai new file mode 100644 index 0000000..40e5dc4 --- /dev/null +++ b/Vagrant/resources/malcolm/sensor-iso/docs/logo/hedgehog-color-w-text.ai @@ -0,0 +1,2699 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[6 0 R 41 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + color-w-text + + + Adobe Illustrator CC 23.0 (Windows) + 2019-07-09T23:58:59-04:00 + 2019-07-10T00:34:52-04:00 + 2019-07-10T00:34:52-04:00 + + + + 236 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADsAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYqk vnPzAPL/AJavtVCh5YEAgQ9DLIwRK+3Jqn2y3Dj45AMoRs0+X9U1fU9Vu3u9RuZLm4ckl5CTSvZR 0UewzeRgIig54AHJE6R5o8w6O4bTNQntgP8AdauTGfnG1UP0jBPFGXMIMQeb0Ly/+fepwcYtdsku 4+hubf8AdS08Sh+Bj8uOYeTQA/SaaZYB0epeW/O/lnzEn+4y8V5wKvayfBMvj8DbkDxWozAyYJQ5 holAx5p7lTBCW+r6Vc3k1lb3kE15bGk9ukitIhH8yA1GSMCBZGySCi8ih87fmZ541i9833UdlezW 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 + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:31d99a91-2f8e-c54e-9b21-e8d06276344a + uuid:1a6f0365-b243-4643-a545-8e0e3ea2e6b3 + + uuid:62f1940e-f87f-4ac9-9629-c4d5c83fa796 + xmp.did:d85e71a1-fcb8-c245-b84c-ac268702a414 + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + + saved + xmp.iid:d85e71a1-fcb8-c245-b84c-ac268702a414 + 2019-06-24T15:23:01-04:00 + Adobe Illustrator CC 23.0 (Windows) + / + + + saved + xmp.iid:31d99a91-2f8e-c54e-9b21-e8d06276344a + 2019-07-09T23:58:57-04:00 + Adobe Illustrator CC 23.0 (Windows) + / + + + + Web + Document + 1 + False + False + + 1961.000000 + 1961.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 0 + 0 + 0 + + + RGB Red + RGB + PROCESS + 255 + 0 + 0 + + + RGB Yellow + RGB + PROCESS + 255 + 255 + 0 + + + RGB Green + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blue + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + + + + Grays + 1 + + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + + + + Web Color Group + 1 + + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + + + + + Adobe PDF library 15.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/Thumb 47 0 R/TrimBox[0.0 0.0 1961.0 1961.0]/Type/Page>> endobj 43 0 obj <>stream +HI} +^TɀWax4<,<*o Zz)PIrǧ|o|}p;•K ۧ?8R5BG%_[Wq䫱`t11>=1+g7=_%u?oz<ϷrQFFk8UH1\bv+rv[6 H +ю#%NHZ;y[AnOq,2o5Wy>BΔY^.V|m AmW2ȩH٣v>zVM9Rjz۩i5`QYR%es(nvu^Fb^f|7.笓43 H*;%:'@__OҥLx +-$|~lHyD\XH̅u:iGTQIMSP\ǣRRT89':ij-l:$-v"t,LJt%( +NF.䯦?6Nӯ +&J;Uhђ+UcYyzcHeb݌ϓ/~ 챺ΡcʟQK)\E6J㜜TɪSnyYѕ~ zOz7JH85 uX6E"Y:xkdF8;)Z]6BXsL :iFŁMAJnǏhBS=#% S bU9DUf,&F6e + u6z|/ݣJ7򁚺ëoy9)Y1_"s؊e9mX-xtu}qX'"jrkrGcO&թ"r9[mGzJ -l@2cNP z)=K#- 5`{#` oPMFxXCy7CCtf 9NQζk86'n瞣lcWĠuшHS]gA#yҘTQ_____h !;dxOJ6?6MkT}v8OQG!J#-`FYokTO;AcExJNB#=]r #+Hd́᤿!i}> L[%nb,H$Ϟ$( ++ULPԐ08`Cbo/ 'pYS9zSJ!LKM?@c +U1;9՝UB̋Ԝ&_R76_6]Ćx14_t=`r F%~Πtqi4@a\Z" (0Œ+qliӷ);mbYI?%Kn@ z|<y7ݒo>a6r#N_R4Ȼ_j ˪`j!*/POTôF)eiˬ[/ޟxDL>>u&DCгSߖ"'(=6 sRy^G T7 >`m^vtT /`edY Ǹm% '{19PI]`e~YniONbÍ :S͋'͐VZ}Hߞ\辆)}Jq2 =txF$Fd`=v$v~΃r.AUfC_!= +\xfQ+DM1 - E%tDzH'SwDzrJqT gc(PYFx4 `O)|׵im#O%-u< /#W+ϓh~Az߯P<}?ޑ-NI󏱢Kk;cx/xFCSw`K + +^&%lzqg(O- '2zM[7 ι#=e +@"ͱGi ~<e3~iR"h%dgN +QiD<;l鏅7rWG혩0jEOwF螸~l7Wi[{xeW"- ^[޺w]JI6ם\Ӵ-qD؃3+Ƿp*>1CjIQbG@Ip tewj$NqgM܉$_V_*/:C{ʚ,~J`S2!4B[fKuCOFVD8 PzJGk>a7b.j9@):pe3ua&cR˱민ܿ=OusVL5WEg{L[ޑqOetFm,r~˙QCW<GMTxϐz +^\땒5*Yryk(JR2={fuu{&$JH]yB60sKks7%=',sI>.8`?ك+";-:n)fT4#1lGuW(}q!LWi˳svXWzؼ+l68l'oSc87~ӌ}}މZU"zv[Ey#hOp{}[΂|6+I=zh'ٮfjؽ/솷s +Ar}?I|)1v{)Gt#Vʑ5jEP +?ӏ_>J/bW,lYcreӶfᒢv +"獜(h\Ұ٦& ?zd8ͥ>ST-s+M+g-4 "RS WCGS%awu=$1v$Kh +fA1its`Ԧĉd|V9o=UXBIّ$Ss"|imO<ʴP8Jxǀg-P|,)ϣ{|8Ѕi.BsҞPtY3 6,+Ol]ߓd뜁p 7(m+uhFR[A8zJc=Bhq 77\pPGב"Mg>Q,)F43Z;1oC9GtWR5?L<~9>nX ;aWrAv, 7rlpe@fS_33\R)|˟3nHrGXȰJ⸹!I+dz(zKS13>E1;WE"Œ^5SDW֯[&\[NgЅ+"`eksatv}dXuיƭjN7ծ[ w+L(RK.eMcrH쒜o% +m?ŵRe')AY=S8j=W܅۬I󬉅a)csr\vz!<;hwW;^ =T|*̸'ʈ;~x캢8h-s᳆3P"Z}˅\}Lp}Kgtvg@N9ISf{UԿ#:50L9#-2b6t*z gS|1c : OJ*x.,IRh&FWrL +`lI?.>bZt)C*mYOd|_ +Q /OANdqO5fiɉcϮ`DCOډ~1xuڛ!Yua|.loc&4]+]޾jU$OWZˬ0xYT,ݫTX' |^=?чIF?'N 꺨Jl)rQ&=HM̖_潨꜋+rnu<6ïB(IyCar1kq6.}7 kD3ˣΟX,Wk{{4 5:N_y=΂úw\q_|n~^%>RO`pw9j>6B\Y(L !BtYߣ8`RK700~[8Uq^/? N +Zg1]8nfܺ胄56$R?F|ZeM!Wt;5Y2H>9gVxbjs|d!7QʋLQieNfŭؠON=gpc0-i~k%oǤOQtE>)sTI9-Ψj'Ie}y'-<}y.[@`avi. Y$uD IGt^__HC ?T^@\N|Y/ؽ\_&ȁA5rN4^0%In[/Lς-&A7% 5 ɣܤ zQL|?XsRXlR}Y2>nHd,$;K8G߃e@@4RSlj 毉J]" 6ĩ"7\n<0XoNG&1y؃0:N3,Z6.;9 %8լx l5 _2ቑZaU+E>GdAjV!;m9|- '%)=dd]=("F.ٺQSfax53|ݹQ<.D7l  +IWJIbd*u1$oA;m$%dvt{g@Z_Ae<6`]kLqW%['g_vM!B e)͍`ӾV&CH7,)({/CYޫV!"D[wF O UDxHLW2 ,J [ ժxB> h˙75pȬ%&7]|=rNWqs]^ KFuډM5R1D@+ycś;G$h9ʹ +YIeWg[p8־AHw[U^¦]h@0 JRĎZ9@zN%9٥"qN]a+XA9s= 2mbt'j ?dSGzLS﹟dG/!߫)fm0}>\_o[gE XWHtj=r +dKe8q?A֭{ԧ0k槓 [_b1̄}Yjzdȵə]㛈:+#qD0ӒOlqMWwE['9ZQhD+ o!{=/Nn{Ҋ*NQ̗'o<}m @$ Bw4Hq(@# QD´І[c%L LCFrJ$E 3G?/n}߅g],߂;p߳*p*{b}U=g$YY1ʋ>#W58@F]`hp̼i g{wӪ([iUO š2Nin1;}NUx6C_u9eY;7_a:5xR؟]sG^,Jy3^ϋݺM JctxzΑ뒩8>rj\B62h#GS@VHkur` SML7z9$K`Cu[-vW.ح/7u%[9g>Po=[36 +H~9?Dd/qRO /ʴeg%oX蜚*W]LDsf{/zDĖ+H9pkh&K %=Ib}@ڛF22פƆ,"O u䚨̩}(O9JzCIz22ovfKNdwScGHdQ(nT?}dhy2Uk'جz&zU[Pq 3-dk}n,E)~z9u5l@/ڒ3fMdLY򤸒x- F4sr<_w=(A6R"UOGרYS̎>aToN}är:,{zm+I]o`hhVM03@>l*<ŕ&}`l"U $gya{ (/``Gt5y+Ni>-)N3釃 @zK7쀰7VrRKYpd( àJ7t S[k9$Zo/Zufb )J8g=,ZW k%ĔQ7q%$VEa@/blq,m: p*׵{(ԠKhԹA _S@b< 78,#3o`[3;/k"U$GPG4l7UőR꫁+l 1nKo +;5@P^Jpqcw*B7Q@tS 2}(OvmwJn Yu̔xfoњ><@捫ܚc<器&vեӃ=HzM>|Ld +F;~:Hǁxͳ: +trK@{o 4eØxwi3cVѻ~ԩ6os#"y̖h0CYg*lm7zvI3}jJf{ʅ/ dڬqZk(7>2+nNOr+q'M yP {JkS\f;@dv@V@buFF7҆Nwmf\ rIdRc-1 Pх==Y&}~qcWo/lт0;š^{|] `mYz1Ҥ x4^OJɧ0@ P@躕4YxJ4%i~* la'yvܓM u S>8 ej9 +ݾ\1'@+'8sc&e~Zt;JɄ&XpLm-ĭdyt ;'"sI$R4zn.7ePz[Pr 32JaO=]F[R4'LD8pgeңdL!?S3⊮|\;;} Aw-ĨNgm=4 r'W,PW &hՆɒMޘWNv/ŧN>3i'5@$_]~_xN.(nR"M1G~@722&V6tjE2Ĥ85&}9e*F6@0y.,rsX>$*URmFw_`e/9x<߈;w˝@F}:4X$\xt7YMYz)ލaJ0QxʀNf# ~IqYK~֟Wú ADG>FLlQ}ٜ$DLQ>$ה~j;& ]y! !EX!UI6fRyo֍ɖwbћݮ龋X.o[|Jzz@J('7$E? ~R_}ܴn' +IʴO٤MХ $Mky:t'aLV2^V4dy*"Y͜C՜ۓqJQ6~HE$`ޓHd0l6RaЊn#J&V3[t)֬+IJ,ugehĪ 5uy!{R=\*!x߲$]՜nYVp,#:'Z,$Zyś(ZeKتy!>Dsj֜E H¶A@n$Rصn_Iv}5!~Q{e.P-}& LuR͗ʒ[-,C;W}S5%j27cgX) |An܄l';;,5t#QKv,k$NBNE=,†Zt J/8Xo +\ Hz604hoܚx~-҉Dtө2%{UZ"#]BXHk'#";[`Ͳ?*-$=:E=H*4Rig"<:n[_vyYV$;W6@%r7h$+)!?J D]. wYDV@OI2)Ey4%pg9B/:ELBԕZ"삁9;QYjf4BNiLϨqr Vr:]r=5*9ʢ@Y?$o ZTT5iVLHSE{5av㰸9ejlBD1:I4K0Qdnlfo{ bmEyިCq׊HW`N}V24 aT+ƶpS.D߳3!vhn(J%yh()bA5(?4u)S+ Vfʗ+j(gDHrsJ_ +*T&m-E#\׆%+\'Wv/5<878BZj !SU% +jҘ'<]Q_}u.9:KԊ+Ze/!}sxFIPށ74޷H<5}_)2^ɳ +kʇza+.ϧX*RZB52!{1Ռc.;hM_{jfSlCREjCeݛF״hyX}I +UrW`Jm%?CHѻp)):.&H>e7###avp<^^{W Rnwd^oבVs_Fj<S)':=PkԖ?oB9~ /,7IIv G1%ҰSqM ޯ3gPp=դEE( V P-LZA}Xyjh:Aۓ7n/I +]U Dnq~kYij~j,!KzX&ƅ9)·H~$\-HzCc#Fm=;~v1sh>D58 ШzUWIԴxsڸW L]BЖG95@!phCG4Z#wʉYv>I+kh-J}cuhbs40J9Ul̉-PP&&UPq}Gr (eB11o]!>?a|Iens-rsWAGb{?h=нx*_Zth_|A8D,Bk%%DLD˹b؂Ft3 %) ]LRӄb1,!EI5%AϞBEW=kPy5w> z86uӸ7Kg.Sd$Kvΐ+ jm*7 4ⓔ,:?5ߎ 5, +z|IJz;Z"\&yFP&*-E2:h^?-7Z6PM2ZO4;N$KpC-2_jqY>LUw[إگ >]kzDtH*ҬL*N:pd8*E`AO ?H5Qre瘎(f{W%|6Í++JdӔxn|O@^xӏV7YXEZ똻9/ ܄*LF1p..S4!! q#QE<wǭ{Di^E?TDO.,Ǝ՞"fbh][k\m:|*eZZe@E}iz2Mbyu ˟zR.xQ堇0?,uQ^Ct dLh%5S6 +#-RU]%j"Qʰs|1E'Nc\@Ei`U^eg@ZߟUOύyZicK;uΊ'bI 8]:-C2t +֧xixb7YH{!aQUQrkHu &e*hC; +Xp_sШrA$(#/Ff ҇iL2fm=.( h)@@KYu^A4^4*V@+7O vP]g+'/h20`8t@LZ6Y#"JˏQG͊)ԭՖE j# \aT%1.qA9@:jo-m30 )vus- 7i9 RQvSCjD/BHUˣ6S0CrU5@(-i|HwMCI Mdd`$(e^)/\ahJCː%\2(n`Eє4WRENrEe%w90x#!9$g ;,BigY)_3HH7M7AGk?u`ik됒2x@YRCme%V.gF8p [r̲}̒ R}rE! ص(EEC56>i|^J+%Cl3юkgVq߰q9D)0jz֗cLf RՁ']r^5sjπ*b{oقs~: +>84^hz,DмϘg'}s"~r̀6۞4]`!gR{i,'UgCʎs(E 1$Cve+ =u+j;saCHez\Nx!\!3tY{EH݇ݾ`YT2@݌EX^c;[؇POZ>=DiLQd%T'c m hAB~)u{ʇUTn5\Q{&y\ _Y$UI4Ch*JpBzѬHkwp`=_%zKM#7,d+U4n[u>Ip +>s=$wnm~Ĭ`38iSWO.чTtͤJaFc1e׭8!IE]>T +oo|9378X :{MTH1Q[RExz`s<7pTz-{VMMwyCոwV h%&t+@(?@UlC6]Z{kCD\:|$r5ȕjdV@0`>{z?}L': +ؒ=8Y?>k\tZ";ʫ +F W@Ԉ#B-,hЊXėԼYiP+i<(J?*w8T0Axc:< EU;Z uwkra2rX7gpJP6p)[?#k={p25qBl!K_ ֘z"/bhCH&IH@3ԀH,xTkyeTJ8߄ s !Pvj$pơS|vT`ћlȊNEzn̮XH +Sk\s;8IPP_o5P.^ +Ϳ^ KaHƩ5";j#5 r@VRM<~a1q&$䀱רɉӞP &%K]Hmá$Bc.4RQExFAomC0 l/H^kaP^.]0{%C_%[cH%fq\R׳BԺ *th=}xaQtEaHTq"Pg VZ`־GN>N֥ޞM:;9Q{^ BƘs4u6>HCҊƂEΩF%)W:jĄ\I +OÐ˔3րsE 5*IҼ$א$my_ jze+dzžm'.;Llk Ѡ'{ {~5v T1zF~ 4h=\Aۖi%1,{ Rl*h9!$PnяPn^7UAY|t) m;3( c *vDrk3nalwLH:ʑ<]qR<`+o"j^'}c,Gmxs 09Sm 2򓣏珏r#1U梽١ Ljt}pL&(ɐȈXuIz_,-9!]}ChXJd~ +hzA VZlA#,(*sT[utyv|DAD6ˉ$ڗUp}&&!_HrȺ0_9umF%W WBb,e9Dcak8*w5v A;\I7>ƴOх K6#5kq(Qh&]=zN`k]gpq,[D0+zkȁabL6*Ɩ3{#X;r]Np<>0I4Rh*70Gl$RK`B434f`L0?t7cu4{Z>oqY[GAՀCA_s6kiT7eB~ALX)xjcM +it{wK('z#vM4iC%0$J#" Nef9ڊ y淧쭂JtD aqD [ͅN(s4tAd-U“uRDa0p_S%&)l$3ۇJA~eKmFK*堰::Zj4z=re]JB Ou̞M +C9I׊zܛKvM FIHc i,6}'$..Wݥi1$!kP9%F=2@MMkĤO h}qY(Kp#3pC" #cP/A5L$ƀ{F9)9e U(襜\;1G 3ŻBʃ*´(})j0Ir 6Kޯm#=yIl]g$N7} û@O !!4FuVI~7 ^/?uGIR^ L!OC'+7Iu0`d11˥ّrR<^F +W>b'=HyI1lAQzkkyBZCiϫg ,N+ApiYI% x%L4y KK'/٣2,.b$s˹39W!UG5~ב@u؎کfL ye=`1Eo] #səϒEs S>.Σ 2zHAӘ[~d<!G_w_k/Bt{I*8loir K1AZC1 =@D ^@laAܢP\wer$k"{%1:]!jK@} @h9C;Q k=i@ %;产G |.dH"8l-48mO H|v<~@r'N"p>T/@d6/xZ@%16Þ-py63 oR$$K@y&nERE . +_Z0.{5>&I +1 ^jjPo9*X_ M)KG5CS{DcWRw9Y4TWwSA&v^=] +ϩT᫥r9@v)?%1b +u/5Pb50-!Q`*b(/$1CPn~q{ 6?nL[Y?Ʃ>yhÀԲ(N9 (рL}y%6x4mOP戈V?4h"DgnVkOC[E{c(h}*A-zlB +|NG =wbπl9gjE~'|&BT xsq6v3Z:# ˻&hy];L\d&`KC f!`ЀI@\S3p#P`wY<"{swsuJJ PT:uǜ:ل`nQ{%;KU>.$ bq  4*} @J)U4P} 8>`isrov^u)4M9b8M'sXܦ&}hMTt/{C!\wAnsNjO3/ ՄQۻtin3$OxPoO"[jL(\Rv~ndw);a%H+ش# ~gZu/HagB!o8 mɷx,p}ytaXޯF*',Qqm2,FLi ~'r[Ah˫&:[IoC]3ܜcMoI.ͳmh9w=3m +N锌>_Pa~G4D3=\\"B\*ɡn"/?j=(<KN\»Cokw;B{W'R< V(D[R0|^ OC 'xl{;`۵ [TH=#7 JP\}i +ٞE]LRNqpZ,o*OJv sDtʡwh$> Gb!WwEBq8 HAh0DO'iI`w&'Uoqd'/Hp@vvJlJxl͔@+!>Z&``7`͒ѕLOahIUPR`5%5 :y34(] leɥqH6 c!://W(ƛT #2Ymá` _Lj婍}(Cufo]_ C?eWG"6] +8LjɮJ%4q m0uMu e <e#QJF>TI*[lIDu'2ւZ J-@@{TU+"|43t5VuͲ㵰j5^ h eܫjϑ!\VEΚ;?/mQ?5V{&R8xoɾECb\4EI1{N "veLipع%PG58^ڸf9kPg]q$GYUmkBGdPZLp:tfXGJ-~ +Qz=& t:J9}=Ga4>vaG"<*).z>'%tU8 o3nBiexLG9kyT+,5Ej=Sg%O}*Nf$ D@ y/<.Po6/iy^Pi[_! :ʉ-b]1EͧiSF?m{ļ婟,qGn7I-hyzzWi$N8܀r %r1a +oCj6<C<\73mqoA?7yS97ڑ06zRsܬ8oIP-NrE/Q tM' PsIs9یsosaԻR"r:24J]>ӑT%r~&%'ЮKеk ZŮve.zz-prm3y fHKƖͽV 2}@lߎX E?prxzY./fE/QGNVt>1nQu2I1zc*ʮ/&^"+Bf3Fot0Sh@(3Z ^ +Q;zTUv .I +#B:|m1wB<,%\'B*im_1ѕ뺏rz>w{Int%;D75Cӕyp5:XaMui&`~W+ԫϴ̑oK[51!.kSsң":꾤ƫJ/)GC}s}|oϣ-IZz -d(Jn|jpn,k>ąj2(t +F+pX6!o2WXEhZT"m}ԃêR~fkδ<˼yp)M48s ]@9b,Wn TiZJ4[ܡ1Zvt(8]R/II_0NT]+x+Y]J-40fQNL,Ww&?_yƿޕ_鏗(;i|EfQ^>ryA˽u<ͻrt?2ޖl~d>N,́Ot=Qݥ̢@; ^G^NZhw)>@ohjg)o1܇EsT/,q <Ô4{H/AFiwI:loNΆ`uH2M4MD5JSyD5+2.e'_gj'Nf  7}O> endobj 47 0 obj <>stream +8;Z]"bE_B9%#2Bf(fp3BMOCPD9NF_JC?L17+G%=Y4ZR^pq%+So&\gO:@`7#=q`jIl +Hi3eZ`Ln0^hG:e;+$XeNUS!3Pe>)nB38+ZR"f\'\?f4I) +.PK9WY$!+$0DjP>;oC<,F385agV\V0%e1MjD=q;Jb%<3f#qA=CCn'"U##l='8):Zj +Ko.Dc1*tO)mLT.3MD2qi0Qf1/L2pl.!7idjY:D@C#K%sdf&noe8>5%!(c_eZ9Y0up +]YdLSXN3o",U*'2pKkV,n(3LB4`<:pVh4Z6P)h,Sc.*Sac_jg.8PP;W^#%(2.f9#? +42-3?8_r3ImY$$5o4]!(3RT^td$/mKN*=(WHCi!;pD!C_[eE'aoBj&.J5T+/hfXTt +c('^Y;`g*B7Of0&%3$*nNEKudN8DDZ[P,e*; +YpCT?go4tUHU=Dtbc&YQdYKgKlj9Iu5)D;U4R,Ai_*1rgHL3h0&>H[5cQ4U94Z#dK +K\DkEKlU^i:ssI\O.e,4(>C."1f^GLF`A$CQc9=8Mc@iHae^"fZLl]:m%KB3V`p2$ +@taLGLTe$#@H.r$ljQ0W4%Be'!M+h`kj%K^O+SXbL1sV`n#$#lYc+Bk8#*F^B>D]n +kmX+K+%"E`R41AWe'T$hH1pm3HcAaO4WRa`[1tq$"[Z)6G6f@@M%I*rHs$rAknO&d +@Z9t]r,e]+NfEJX](OAc3L8Bc.E],Ratnq9\\\Z8@ZB*!,;moZ@PP=*01[SH56-g- +lZjbJ]"4(3Q-4G@3C9du#`.8=bp0c?2$f"/>MSHM,-?Z)bamL+)`@A%0f1fYM\`\W +E:6EL<,HI,gcJC0jSl>a"M5k]bJ2$M3+i+CeHkt7@-iZ'%Gr83X=1g%mOS$5W_r5_ +R=gCpS#\2Ee-6jL?s/O?MX+`Z:do5p%b]&l73UsOP7Bu':lB0ta*&_!FWtF!)!)@, +-:OE^6dK.@;>oQ-.Wq+c;OpdO@S#OAPUZ,_W$pg@;P)7aa.3?2hGA)e?FcN=J'O4_ +QC/UZ*BPN#Pt/ +endstream endobj 48 0 obj [/Indexed/DeviceRGB 255 49 0 R] endobj 49 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 41 0 obj <> endobj 50 0 obj [/View/Design] endobj 51 0 obj <>>> endobj 46 0 obj <> endobj 45 0 obj [/ICCBased 52 0 R] endobj 52 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 44 0 obj <> endobj 53 0 obj <> endobj 54 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 17.0 +%%AI8_CreatorVersion: 23.0.1 +%%For: (jason grover) () +%%Title: (color-w-text.ai) +%%CreationDate: 7/10/2019 12:34 AM +%%Canvassize: 16383 +%%BoundingBox: 775 -4742 2345 -3022 +%%HiResBoundingBox: 775.00001249289 -4741.103515625 2344.91690555004 -3022.48179284205 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 13.0 +%AI12_BuildNumber: 540 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Registration]) +%AI3_Cropmarks: 503 -4865 2464 -2904 +%AI3_TemplateBox: 320.5 -240.5 320.5 -240.5 +%AI3_TileBox: 1185.9000005722 -4272.10003662109 1781.10003662109 -3496.9000005722 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI9_OpenToView: -10690.9042553192 3369.87234042554 0.081597222222222 1809 874 18 1 0 56 151 0 0 0 0 1 0 1 1 0 1 +%AI5_OpenViewLayers: 7 +%%PageOrigin:-80 -540 +%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 55 0 obj <>stream +%%BoundingBox: 775 -4742 2345 -3022 +%%HiResBoundingBox: 775.00001249289 -4741.103515625 2344.91690555004 -3022.48179284205 +%AI7_Thumbnail: 120 128 8 +%%BeginData: 20132 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FD21FFA2784D7877A2A8FD17FF77A2CBFD56FF774D4D774D774D4D +%4DA2A8FD13FF774D4D77A2FD54FFA8774D7853774D7853774D7777A2A8FD +%0FFFA87753774D777EFD09FFA9FD49FFA24D774D774D774D774D774D774D +%7777CBFD05FFA97DFD06FFA24D774D774D4D77FD07FFA8774DA8CBFD46FF +%7E774D7853784D7853784D7853784D774DA2A8FFFFFF7E7153A2FD04FF77 +%7853784D78537777FD06FFA84D784D78A8FD45FF7E4D774D774D774D774D +%774D774D774D774D777EFFFFA24D774D77A8FFFF774D774D774D774D4D77 +%FD05FF774D4D774D4D77FD44FF777753774D7853774D7853774D7853774D +%78537777FFCB774D784D77A2FF77774D7853774D78537777FD04FF784D77 +%4D78537777FD43FF7E4D774D774D774D774D774D774D774D774D774D4D4D +%A877534D774D4D77774D774D774D774D774D4D77FFFFCB4D774D774D774D +%4D4DCBFD41FF7E7753784D7853784D7853784D7853784D78537853787778 +%4D7853784D7853784D7853784D7853784D777EFFA87853784D7853785378 +%77FD41FFA84D774D774D774D774D774D774D774D774D774D774D774D774D +%774D774D774D774D774D774D774D774D77A2CB4D774D774D774D774D7753 +%FD05FFA27777CBFD37FFA9774D7853774D7853774D7853774D7853774D78 +%53774D7853774D7853774D7853774D7853774D7853774D7877774D785377 +%4D7853774D7778FD04FF7E4D774DA8FD37FF53534D774D774D774D774D77 +%4D774D774D774D774D774D774D774D77464D4D774D774D774D774D774D77 +%4D774D774D774D774D774D774D4DA2FFFFFF4D774D774DA2FD36FFA24D78 +%53784D7853784D7853784D7853784D7853784D7853784D784D4C4C785378 +%4D7853784D7853784D7853784D7853784D7853784D784D78CBFFA8774D78 +%53774DCBFD35FFA84D4D774D774D774D774D774D774D774D774D774D774D +%774D774D77464C4D774D774D774D774D774D774D774D774D774D774D774D +%774D774DA2FFA24D774D774D5353FD24FFA9CBA2A87EA27EA8A2A9A8FD07 +%FF77774D7853774D7853774D7853774D7853774D7853774D7853774D4D22 +%4D537853774D7853774D7853774D784D774D7853774D7853774D7877CB77 +%7753774D785377A2FD20FFA8A277774D534D4D4D534D4D4D774D7777A2A8 +%FFFFA24D774D774D774D774D774D774D774D774D774D774D774D774D774C +%4C22774D774D774D774D774D774D774D4C4C774D774D774D774D774D7753 +%774D774D774D774D78FD1FFF7E784D774D7853784D7853784D7853774D78 +%4D7777A27E774D7853784D7853784D7853784D7853784D7853784D785378 +%5377464C4D7853784D7853784D7853784D784C4C4D7853784D7853784D78 +%53774D7853784D7853774DFD1DFFA94D4D4D774D774D774D774D774D774D +%774D774D774D774D774D774D774D774D774D774D774D774D774D774D774D +%774D774D774C4C224C4D774D774D774D774D774D774D77224D4D774D774D +%774D774D774D774D774D774D774D4D7EFD1BFFA94D7753774D7853774D78 +%53774D7853774D7853774D7853774D7853774D7853774D7853774D785377 +%4D7853774D7853774D785377224C4C774D7853774D7853774D7853774D4D +%4C774D7853774D7853774D7853774D7853774D784DA2FD1BFF4D534D774D +%774D774D774D774D774D774D774D774D774D774D774D774D774D774D774D +%774D774D774D774D774D774D774D774D774D4C214C4C774D774D774D774D +%774D774D774C4C4D774D774D774D774D774D774D774D774D774D7777FD1A +%FF7E77537853784D7853784D7853784D7853784D7853784D7853784D7877 +%774C7877784D7853784D7853784D7853784D7853784D7877784C4C464D4D +%7853784D7853784D78537853774C77537853784D7853784D7853774D7853 +%784D785378FD1AFFA24D774D774D774D774D774D774D774D774D774D774D +%774D774D774D77464622774D774D774D774D774D774D774D774D774D774D +%774D4D214C224D4D774D774D774D774D774D774C4C4D774D774D774D774D +%774DA277534D774D774D774DFD1AFFA27753774D7853774D7853774D7853 +%774D7853774D7853774D7853774D77464C227153774D7853774D7853774D +%7853774D7853774D784D4C224C4C784D7853774D7853774D7853774C7753 +%774D7853774D7853777EA978774D7853774D77A9FD1AFF4D774D774D774D +%774D774D774D774D774D774D774D774D774D774D774D4D224C214C4D774D +%774D774D774D774D774D774D774D774D77224C214C4D774D774D774D774D +%774D774D774D774D774D774D774D774D7EA2A977774D774D774DFD1BFFA2 +%4D784D7853784D7853784D7853784D7853784D7853784D7853784D78774D +%224C464C4D7853784D7853784D7853784D7853784D784D4C464C46775378 +%53784D7853784D78537753A8A8A97EA278784D78537777A9A8A9774D4D77 +%5378A8FD1AFFA8784D774D774D774D774D774D774D774D774D774D774D77 +%4D774D774D774D4C214C224C4C774D774D774D774D774D774D774D774D77 +%4C4C224C4C774D774D774D774D774D774DA2A2A9A2A8A2A9A2A277784D53 +%7EA9A877214C224D4DA8FD1BFFA8774D774D7853774D7853774D7853774D +%7853774D7853774D7853774D78534D224C464C4C7853774D7853774D7853 +%774D785377534D464C224D53774D7853774D7853774DA2A8A9A2A9A8A9A2 +%A9A8A9A2A8777EA2A95346224C224D4DFD0BFFA8FD10FF7E4D4D774D774D +%774D774D774D774D774D774D774D774D774D774D774D774D4C214C224C46 +%774D774D774D774D774D774D774D774C4C224C21534D774D774D774D774D +%7EA2A8A2A87EA8A2A87EA8A2A87EA97EA8A2A25377537777787EFD05FFA9 +%CB7E7D4D534C7777FD0EFF7E774D7853784D785378537877784D7853784D +%7853784D7853784D7853784D4D464C464C4C77537853784D7853784D7853 +%7853784C4C464C4D784D7853784D784D7EA8A9A8A9A2CBA8A9A8CBA8A9A2 +%A9A8A9A2A9A8A9A8CBA8A9A8A9A2A9A8FFA8A97E4D224C224C22464CFD0E +%FF774D4D774D774D774C4D4C774D774D774D774D774D774D774D774D774D +%774D4D224C224C4C774D774D774D774D774D774D774D4D224C214D4D774D +%774D774D777EA87EA9A2A877774C5353A2A8A87EA9A2A87EA9A2A87EA9A2 +%A87EA9A2A87EA8A877214C224C224C222277FD0EFF7E774D7853774D4D22 +%4C224D4C774D7853774D7853774D7853774D7853774D4D464C224C4C774D +%7853774D7853774D7853784C4C464C4C7853774D78537777A9A8A9A2A977 +%4C224C224622A2A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A94C4622 +%4C464C224C224DFD0FFF7D4D4D774D774D4C224C214C224C4C774D774D77 +%4D774D774D774D774D774D4C224C224C224D4D774D774D774D774D774D77 +%224C224C4D774D774D774D7E7EA8A2A8A253214C224C224622A8A2A87EA8 +%A2A87EA8A2A87EA8A2A87EA8A2A87E7E4D4D224C224C21464CFD10FFA278 +%53784D7877774C4C464C224C4C77537853784D7853784D7853784D78774D +%22FD044C7777784D7853784D7853785377464C4C7877784D7853777EA9A8 +%A9A2CB534C464C4C4C464C7DA9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A8A94D4C224D7EFFFFA8A277787778777753787778777E7EA27777 +%4D774D774D774C4C224C224C224D4D774D774D774D774D774D774D774D4C +%214C224C22774D774D774D774D774D774D4C214C4D774D774D774DA2A2A9 +%A2A8A2A2224C224C224C2177A8A87EA9A2A87EA9A2A87EA9A2A87EA9A2A8 +%7EA9A2A8A2A84C2253FFFFFF774D774D774D774D774D774D774D774D774D +%7853774D7853784D4D4C4C224C464D4D7853774D7853774D7853774D7853 +%4D224C464C4C7853774D7853774D7853774D714D774D7853774D777EA9A2 +%A9A8A9A877224C224C464677A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A87722A2FFFFFF4D774D774D774D774D774D774D774D774D77 +%4D774D774D774D774D77464C214C224C4C774D774D774D774D774D774D77 +%4D4C214C224646774D774D774D774D774D774D774D774D774D774DA2A2A8 +%7EA8A2A87E4C214C214C217DA2A8A2A87EA8A2A87EA8A2A87EA8A2A87EA8 +%A2A87EA8A2A877A2A8FFFFFFA24D7853784D7853784D7853784D7853784D +%7853784D7853784D7877784C4C464C224C4D784D7853784D7853784D7853 +%784D4D464C464C4D784D7853784D7853784D7853784D7853784D7878A9A2 +%A9A8A9A2A9A277464C4C77A8A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8FD04FFA9774D774D774D774D774D774D774D774D774D +%774D774D774D774D774D774C4C224C224C4D774D774D774D774D774D774D +%774C4C224C224C4D774D774D774D774D774D774D774D774D774D78A2A87E +%A9A2A87EA9A2A27DA8A8A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2 +%A87EA9A2A87EA9FD05FFA8774D7853774D7853774D7853774D7853774D78 +%53774D7853774D7853784C4C464C224D53774D7853774D7853774D785378 +%4C4C464C224D77774D7853774D7853774D7853774D7853774DA2A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9 +%A2A9A8A9A8FD06FFA24D4D774D774D774D774D774D774D774D774D774D77 +%4D774D774D774D774C4C224C21534D774D774D774D774D774D774D774C4C +%224C22774D774D774D774D774D774D774D774D774D5353A8A2A87EA8A2A8 +%7EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8 +%A2FD08FFA2784D784D7853784D7853784D7853784D7853784D7853784D78 +%537853784C4C224C4D784D7853784D7853784D78537853784C4C464C4D78 +%4D7853784D7853784D7853784D7853784D787EA9A2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A2FD0AFFA277 +%4D774D774D774D774D774D774D774D774D774D774D774D774D774D774C4D +%4C774D774D774D774D774D774D774D774D77464622774D774D774D774D77 +%4D774D774D774D774D774D777EA87EA9A2A87EA9A2A87EA9A2A87EA9A2A8 +%7EA9A2A87EA9A2A87EA9A2A9A2A9A2A87EA9FD0BFFA2774D774D7853774D +%7853774D7853774D7853774D7853774D7853774D7877784D7853774D7853 +%774D7853774D7853774D774C774D7853774D7853774D7853774D7853774D +%7853774D7EA8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A97EA2777777A9A8A9A9FD0CFFA8774D774D774D774D774D774D774D774D +%774D774D774D774D774D774D774D774D774D774D774D774D774D774D774D +%774D774D774D774D774D774D774D774D774D774D774D774D774D7EA2A87E +%A8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA84C4C224D4C4C4DA8A8 +%FD0EFFA9784D78537853787778537853784D7853784D7853784D7853784D +%7853784D7853784D7853784D7853784D7853784D7853784D7853774D784D +%774D784D774D784D774D7853784D784DA2A8A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A8A94C464CA9A8A9A2A9A8FD10FFA8774D774C4C4C774D +%774D774D774D774D774D774D774D774D774D774D774D774D774D774D774D +%774D774D774D774D774D774D774D77777E777E777E777E777E77774D774D +%774D774DA2A2A9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87D7777A8A2 +%A9A2A87EFD13FF784D774C4C224C4C4D4C7753784D7853774D7853774D78 +%53774D7853774D7853774D7853774D7853774D7853774D77777E7EA9A2A9 +%A8A9A8A9A8A9A8A9A8A9A2A87EA277774D777EA9A2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A8A9A8A9A2A9A2A9FD11FFA8FFA8784D774C4C21 +%4C224C224C4C774D774D774D774D774D774D534D774D774D774D4D4D774D +%774D774D774D774D787EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A8A2 +%A87E7E77A2A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2 +%A87EA9FD0DFFA8A87878537877787778537853774C4C224C464C4C787778 +%4D7853784D784D7877A27EA8A2A9A2A87E7E53774D7853774D787EA9A8A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A8A9A8A9A2A9A8A9 +%A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9FD0CFFCB774D4D77 +%4D774D774D774D774D774D774C4C224C22464C774D774D774D7753A27EA8 +%A2A9A2A8A2A9A2A8A2A253534D774D7E7EA9A2A87EA9A2A87EA9A2A87EA9 +%A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A8 +%7EA9A2A87EA9A2A87EA9A2A8A8FD0CFF7E7753774D7853774D7853774D78 +%53774D7853774C4D4C774D7853774D7E7EA9A8A9A8A9A2A9A8A9A2A9A8A9 +%A8A9777777A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9 +%A2A9FD0EFFA24D774D774D774D774D774D774D774D774D774D774D774D77 +%4D7777A27EA9A2A87EA8A2A87EA8A2A87EA8A2A87EA87EA87EA8A2A87EA8 +%A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A8 +%7EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA87EA8A8FD0EFFA27753784D78 +%53784D7853784D7853784D7853784D7877774D787EA9A8A9A8A9A2A9A8A9 +%A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9 +%A2A9A8A9A2A9A2CBFD11FF4D774D774D774D774D774D774D774D774D774D +%774D774D7EA2A9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87E +%A9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2 +%A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A8A2FD13FFA24D785377 +%4D7853774D7853774D7853774D78537777A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9 +%A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A2A9A2CBCBFD15FF774D774D774D774D774D774D774D774D774D7777A87E +%A8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2 +%A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87E +%A8A2A87EA87EA87EA87EA87EA9A8FD18FFA8784D784D7853784D7853784D +%7853774D78A2A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A8A9A2A9A8FFA9FFCBFD1EFFA8774D774D774D774D +%774D774D774D787EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2 +%A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87E +%A9A2A87EA9A2A87EA9A2A87EA9A2A87EFD24FFA8784D774D7853774D7853 +%774DA2A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A2CBFD25FFA8A24D4D4D774D774D774DA2A2A8 +%A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A8 +%7EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8 +%A2A87EA8A2A87EA9FD29FFA27E53774D7777A9A8A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9FD +%2DFFA8A27DA8A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9 +%A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A8 +%7EA9A2A87EA9A2A87EA9A2A87EA9A2A8A8FD30FFA2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9 +%A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A8FD30FFA8A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A8 +%7EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8 +%A2A87EA8A2A87EA8A2A87EA8A2A87EFD31FFA9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2 +%A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9FD +%31FFA2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9 +%A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A8 +%7EA9A2A87EA9A2A87EA9A2A8A8FD30FFA9A9A8A9A2A9A8A9A2A9A8A9A2A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9 +%A2A9A8A9A2A9A8A9A2A9A8A9A8A9A8A9A2A9A8A9A2A9A8A9A2A9A2FD31FF +%A97EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA87EA87E +%A87EA87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8A8FF7EA8A2 +%A87EA8A2A87EA8A2A87EA8A8FD30FFA8A9A8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A2A9A8FFA9FD05FFA9FFA8A9A2A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A2CBFFCBA2A9A2A9A8A9A2A9A8A9A2A9A8FD30FFA9A87E +%A9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A2A87EA9A9FD0BFFA8A97EA9A2 +%A87EA9A2A87EA9A2A87EA9A2A87EA8A8FFA8A8A2A87EA9A2A87EA9A2A87E +%A9FD30FFCBA2A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2A9A8FFFFFFA9 +%A9A2A9FD0AFFA2A9A8A9A2A9A8A9A2A9A8A9A2A9A8A9A2FFFFFFA8A9A8A9 +%A2A9A8A9A2A9A8A9A8FD30FF7EA8A2A87EA8A2A87EA8A2A87EA8A2A87EA8 +%7EA8A8FFA8A87EA87EA8A8FD0BFF7EA8A2A87EA8A2A87EA8A2A87EA8A2A8 +%A8FFFFFF7EA8A2A87EA8A2A87EA87ECBFD2FFFA8A9A8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2A9A8FFFFFFA8A9A2A9A8A9A2FD0DFFA8A9A2A9A8A9A2A9A8 +%A9A2A9A8A9A2FD04FFCBA2A9A2A9A8A9A2A9A8A9A9FD2FFFA87EA9A2A87E +%A9A2A87EA9A2A87EA9A2A8A8FFA9A87EA9A2A87EA9A2A8FD0EFFA2A87EA9 +%A2A87EA9A2A87EA9A2A8FD04FFA8A9A2A87EA9A2A87EA9A2FD30FFA2A9A2 +%A9A8A9A2A9A8A9A2A9A8A9A2CBFFFFA8A9A2A9A2A9A8A9A2A9A9FD0FFFA2 +%A9A2A9A8A9A2A9A8A9A2A9A8FD05FFA8A9A8A9A2A9A8A9A2A9FD2FFFA2A8 +%A2A87EA8A2A87EA8A2A87EA8A2CBFFFFFFA87EA8A2A87EA8A2A87EFD10FF +%A97EA87EA8A2A87EA8A2A87EA9FD06FF7EA8A2A87EA8A2A87EFD2EFFA9A9 +%A8A9A2A9A8A9A2A9A8A9A2A9A8FD05FFA8A9A8A9A2A9A8A9A2FD12FFA9A2 +%A9A8A9A2A9A8A9A2A9A9FD07FFA2A9A2A9A8A9A2A9FD2EFFA87EA9A2A87E +%A9A2A87EA97EA8A8FD06FFA87EA9A2A87EA9A2A8A9FD11FFA9A87EA9A2A8 +%7EA9A2A87EFD08FFA97EA87EA9A2A87EFD2EFFA8A9A2A9A8A9A2A9A8A9A2 +%CBFD08FFA8A9A2A9A8A9A2A9A9FD13FFA9A9A2A9A8A9A2A9A8A9A9FD08FF +%A9A2A9A2A9A2A9FD2DFFA8A87EA87EA8A2A87EA8A2CBFD09FFA97EA87EA8 +%A2A8A2FD15FFA8A87EA8A2A87EA87EFD09FFA8A87EA87EA8A2FD2EFFA8A9 +%A2A9A8A9A2A9A8FD0BFFA9A9A2A9A8A9A2FD17FFA8A9A8A9A2A9A8A9FD0A +%FFCBA9A2A9A8A9CBFD2CFFA9A9A2A87EA9A2A8A8FD0DFF7EA87EA97EA9FD +%18FFA8A8A2A87EA9A2FD0BFFA8A87EA8A2FD2EFFA8A9A2A9A2CBFD0FFFA9 +%A2A9A2CBFD1AFFA9A9A2A9A2A9A9FD0CFFA9A2FD30FFA2A9A8FD11FFA8A8 +%A2CBFD1CFFA8FFA2A8A2FDFCFFFDFCFFFDFCFFFDAFFFA8CBFD1AFFA8FFA8 +%FD58FF7D4C4CFD1AFF77227DFD38FF7D53A2FD05FFCB5377A8FD14FF7721 +%4DFD1AFF4C2277FD38FF4C224CFD05FFA82221A8FD14FF77464CFD1AFF4D +%217EFD37FFA84C2177FD05FFA821467DFD14FF77214DA8FD19FF4C2277FD +%38FF4C4653FD05FFA84C22A8FD05FFA87DA2A8FD07FFA8A27EFF77464CFD +%05FFA8A27DA8A2FD07FFA8A27DA8FD05FF4D2177A8A27EFD08FFCB7DA2A2 +%FD09FFA2A27EA8A8FD1BFF4D2177FD05FFA821467DFFFFFFA24D21222146 +%4CFD05FF4C4C2122214C224DA9FFFFFF534C2121214C227DFD04FF4C4621 +%22214DA8FFFFFF4C4622462122217DFD04FFCB772122212222A2FD04FFA8 +%7721222122214C7DFD1AFF4C4C53FFA8FFA8FF7E4C22A8FFFFA84C214C77 +%77224677FFFFFF4D462277774D224C4CFFFFFF774622777777464677FFFF +%FF4C462277774C2177FFFFFF4D224C4C774C4C21A2FFFFFF77224C4C774C +%4621A8FFFFFF77224C4C7E534C21A2FD1AFF4C214C224C214C224C22467E +%FFFF77214CA8FFFF7D214CA8FFA2462177FFFFFF77214DFFFF7D462177FF +%FFCB4C217DFFFF772222A8FFFF7D4621A8FFFF4C2277FFFFCB22224CFFFF +%A2214677FFFFFF4C224CFFFFA2214677FFFFFF462277FD1AFFFD044C464C +%4C4C464C22A8FFFF4C4C77FFA9FFA24C22A8FFA2224CA8FFFFFF77464CFF +%FF7E224CA8FFFFFF4C4C77FFFF772277A8FFCBFF4C467DFFFF77227DFFFF +%FF772177FFFF774C4CFD04FFA2224CA8FF534C4CFFFFFFCB4D22A2FD1AFF +%4C2177A8CBA8FFA8A221467EFFA84C224C214C224621227DFF77464CFD04 +%FF77214DFFFF4C464CFFFFFFA94C217DFFFF4C4C2246214C22462177FFFF +%4C2277FFFFFF77224CFFFF532177FD04FFA84621A8FF772177FD04FF4C22 +%77FD1AFF4C4653FD05FFA84622A8FFCB224C4C774D7753774CA8FF7D214D +%FD04FF77464CFFFF772177FD04FF4C4677FFFF4D224D77774D7777777DFF +%FF4D217EFFFFFFA2224DCBFF4D464CFD04FFCB464CA2FF53464CFFFFFFA8 +%4D22A2FD19FFA84C2177FD05FFA821467DFFA84C2177FD08FF772221CBFF +%FFFF77214DA8FF772221A8FFFFA84D2177FFFF4C224CFD09FF4C2253FFFF +%FF77464CFFFF77214CA8FFFFFF7D4621A8FF77214CA2FFFFFF224677FD1A +%FF4C4653FD05FFA84C22A8FFFF534C46A8FD04FFCBFFFFA9224C4DFFFFFF +%77464CFFFFFF464C4CA27D774C4C77FFFFA2214C7DFD08FF4D217EFFFFFF +%A2224DCBFFA24C22A2FFFFA871224DFFFFA84C224D7DA2534C22A2FD1AFF +%4C2177FD05FFA821467DFFFFA82246224D4C772277FFFFFF7721464C774C +%4C214CA8FFFFA222462121214C2177FFFFCB4C214C4C774C4C4CFFFFFF4C +%2277FFFFFF77464CFFFFFF4C222177534C21467EFFFFFF7D462122212222 +%4C77FD1AFF4C4653FD05FFA24622A8FFFFFFA84C4C2122214677FD04FF7D +%224C2122224C4DFD04FFCB777D77A24C4677FFFFFFA877224621462177FF +%FFFF4D2177FFFFFF7E214DFD04FF774C2146224C7EFD05FFA87E77A27E4C +%21A2FD1AFFA87ECBFD06FFA2A8A8FD05FFA2A277A2A2FD06FFA97D7E7DA2 +%A2FD09FFA84C217DFD05FFA87D7E7DA8A8FFFFFFA2A8A8FFFFFFA8A8A2FD +%05FFA87E77A2A8FD0AFFCB222277FD40FF7DA2A2CBA277224CA8FD26FF7E +%7EA8A8A84C4C22FD40FFA84621462146212277FD26FFA821222146214621 +%7EFD41FF77774C4D4C77A2FD27FFCB7E4C774C7777A9FD73FFA8FDFCFFFD +%93FF7DCBFD10FFCBFD0FFFA8FFA8FD2BFFA8FD26FFA222A2FD10FFA24CFD +%0BFFA8774C4C464C4CA2FD0CFFA84DA2FD05FFA271A8FD09FFA24C7DFD05 +%FF4C77FD26FFA821A8FD10FF7746A8FD0AFF7D21777DA27D772177FD0BFF +%A8217EFD05FFA221CBFD0AFF4C22A8FFFFFF4D46A8FD26FFA246A2FD11FF +%A2FD0BFF774CCBFD04FF7D21A8FD0AFFA84C7EFD05FF7D4CA8FD0BFF464D +%FFFFA2227DFD27FFA821A8FD10FF7746A8FD0AFF7D21CBFD04FFA84653FD +%0AFFA821A2FD05FFA221FD0CFFA8217DA8464CFD28FFA246A2FD10FFA221 +%FD0BFF774CA8FD05FF4C77FD0AFFA84C7EFD05FF7D4CA9FD0CFF7E224D4C +%FD29FFA821A8FD10FF7722A8FD0AFF7D21CBFD05FF4C4CFD0AFFA821A2FD +%05FFA221FD0EFF4C21A8FD29FFA846A2FD10FFA222CBFD0AFF774CA8FD05 +%FF4C77FD0AFFA84C7DFD05FF7E4CA8FD0CFFCB464653FD29FFA821A2FD10 +%FF7746A8FD0AFF7D21A9FD04FFA84C4CFD0AFFA9217EFD05FFA222CBFD0C +%FF21777D2277FD28FFA846A2FD10FFA222FD0BFF7D4CA8FD05FF4C77FD0B +%FF4C77FD05FF7E4CA8FD0BFF4C4CFFFF7746A8FD27FFA821A8FD10FF7746 +%A8FD0AFF7E22CBFD04FFA84D4CFD0BFF4C46A2FD04FFA222CBFD0AFF7D22 +%A2FFFFFF4C4CA8FD26FFA2464D7D777D777777A2FD09FFA221FD0BFF774C +%A8FD05FF4C77FD0BFFCB224C77A8A2A24C4CA8FD09FFA84C77FD04FFCB21 +%77FD26FFA8224C224C224C224C53FD09FF7D4CA8FD0AFF7E46CBFD04FFA9 +%4D4CFD0CFFA84C222146214C77FD0AFF774CFD06FF7D22CBFD19FFFF +%%EndData + +endstream endobj 56 0 obj <>stream +%AI12_CompressedDataxk\Ǖ%]C ؃Q:*+<ۆEATYfwsNɪ%JnUH$+#2Nxϵ>>Gux?ۻg޼A>>˯z䳟t<*ezZ[ۯ^yAG[~'7_}׻?=䧬w/P7o?ۧ?OFOg$LA[wyϾ:dׯ?ӛEEg0Ze }5<*hIYZY}0wǬCV{\蒎hׯ^7/g_{Ϟ߹zճwmeN~/^~O_fл}*W=y|WwwPY~qZJɿ}v YJ͗ 7wokr^}"f:bb__Zc4:c+A&LR66&SrX}vL__zw+9ʟ곯_޽/|Tw/񍥋ۗd~q;˯nO)X_=W]ׇ˻׿/2O;9 "|ꨒ[:a2RtÇ M? D>$r+7o_|?MiP/޾|7RCqL2Jc*OĠ}8N&ݻmpun^~Wr챟_c|E]~:tu~䃧6}5;~?/F/޾_ӛ'о_x}w(Ϟ}7o_ݳ(}:_=mt/wAq>?_ o=1בӛ{˻1=nW<ê,]ݻ?